summaryrefslogtreecommitdiff
path: root/include/linux/sprd_2351.h
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2017-08-30 08:25:59 +0000
committerYuval Adam <_@yuv.al>2017-08-30 08:25:59 +0000
commit8e4bff4cab0ddac6060645b0715210484d02ff40 (patch)
tree3a5c3024371a04692a3a6d9974d001cdff8ebf84 /include/linux/sprd_2351.h
Initial file dump from open source releaseHEADmaster
Diffstat (limited to 'include/linux/sprd_2351.h')
-rw-r--r--include/linux/sprd_2351.h87
1 files changed, 87 insertions, 0 deletions
diff --git a/include/linux/sprd_2351.h b/include/linux/sprd_2351.h
new file mode 100644
index 00000000..25091501
--- /dev/null
+++ b/include/linux/sprd_2351.h
@@ -0,0 +1,87 @@
+#ifndef _SPRD_2351_H
+#define _SPRD_2351_H
+
+#define BIT_NONE 0x00
+#define BIT_0 0x01
+#define BIT_1 0x02
+#define BIT_2 0x04
+#define BIT_3 0x08
+#define BIT_4 0x10
+#define BIT_5 0x20
+#define BIT_6 0x40
+#define BIT_7 0x80
+#define BIT_8 0x0100
+#define BIT_9 0x0200
+#define BIT_10 0x0400
+#define BIT_11 0x0800
+#define BIT_12 0x1000
+#define BIT_13 0x2000
+#define BIT_14 0x4000
+#define BIT_15 0x8000
+#define BIT_16 0x010000
+#define BIT_17 0x020000
+#define BIT_18 0x040000
+#define BIT_19 0x080000
+#define BIT_20 0x100000
+#define BIT_21 0x200000
+#define BIT_22 0x400000
+#define BIT_23 0x800000
+#define BIT_24 0x01000000
+#define BIT_25 0x02000000
+#define BIT_26 0x04000000
+#define BIT_27 0x08000000
+#define BIT_28 0x10000000
+#define BIT_29 0x20000000
+#define BIT_30 0x40000000
+#define BIT_31 0x80000000
+
+
+#define RF2351_PRINT(format, arg...) \
+ do { \
+ printk("RF2351:%s:"format"\n", \
+ __func__, ## arg); \
+ } while (0)
+
+#ifndef CONFIG_OF
+#define APB_EB0_BASE_VA SPRD_AONAPB_BASE
+#define RFSPI_BASE_VA SPRD_RFSPI_BASE
+#else
+extern u32 rf2351_get_rfspi_base(void);
+extern u32 rf2351_get_apb_base(void);
+
+#define APB_EB0_BASE_VA rf2351_get_apb_base()
+#define RFSPI_BASE_VA rf2351_get_rfspi_base()
+#endif
+
+#define APB_EB0 (APB_EB0_BASE_VA+0x0000)
+#define RFSPI_CFG0 (RFSPI_BASE_VA + 0x0000)
+#define RFSPI_MCU_WCMD (RFSPI_BASE_VA + 0x000C)
+#define RFSPI_MCU_RCMD (RFSPI_BASE_VA + 0x0010)
+#define RFSPI_MCU_RDATA (RFSPI_BASE_VA + 0x0014)
+
+#define RFSPI_ENABLE_CTL (BIT_23)
+
+struct sprd_2351_interface{
+ char *name;
+ unsigned int (*mspi_enable) (void);
+ unsigned int (*mspi_disable) (void);
+ unsigned int (*read_reg) (u16 Addr, u32 *Read_data);
+ unsigned int (*write_reg) (u16 Addr, u16 Data);
+};
+
+struct sprd_2351_data{
+ struct clk *clk;
+ int count;
+};
+
+extern void rf2351_gpio_ctrl_power_enable(int flag);
+int rf2351_vddwpa_ctrl_power_enable(int flag);
+#ifdef CONFIG_ARCH_SCX30G
+int sprd_switch_cp2_clk(int cam_status);
+int get_cp2_state(void);
+#endif
+extern int sprd_get_rf2351_ops(struct sprd_2351_interface **rf2351_ops);
+extern int sprd_put_rf2351_ops(struct sprd_2351_interface **rf2351_ops);
+void sprd_sr2351_gpio_ctrl_power_register(int gpio_num);
+void sprd_sr2351_vddwpa_ctrl_power_register(void);
+#endif