blob: 25091501585f5531ecd01ab165f6fc63f1330455 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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
|