Merge remote-tracking branch 'stable/linux-3.0.y' into develop-3.0
[firefly-linux-kernel-4.4.55.git] / arch / arm / mach-rk2928 / include / mach / board.h
1 #ifndef __MACH_BOARD_H
2 #define __MACH_BOARD_H
3
4 #include <linux/device.h>
5 #include <linux/platform_device.h>
6 #include <linux/i2c.h>
7 #include <linux/types.h>
8 #include <linux/timer.h>
9 #include <linux/notifier.h>
10 #include <asm/setup.h>
11 #include <plat/board.h>
12 #include <mach/sram.h>
13 #include <linux/i2c-gpio.h>
14
15 extern struct rk29_sdmmc_platform_data default_sdmmc0_data;
16 extern struct rk29_sdmmc_platform_data default_sdmmc1_data;
17
18 extern struct i2c_gpio_platform_data default_i2c_gpio_data; 
19
20 void __init rk2928_map_common_io(void);
21 void __init rk2928_init_irq(void);
22 void __init rk2928_map_io(void);
23 struct machine_desc;
24 void __init rk2928_fixup(struct machine_desc *desc, struct tag *tags, char **cmdline, struct meminfo *mi);
25 void __init rk2928_clock_data_init(unsigned long gpll,unsigned long cpll,u32 flags);
26 void __init board_clock_init(void);
27 void __init rk2928_iomux_init(void);
28 void board_gpio_suspend(void);
29 void board_gpio_resume(void);
30 void __sramfunc board_pmu_suspend(void);
31 void __sramfunc board_pmu_resume(void);
32
33 extern struct sys_timer rk2928_timer;
34
35 #ifdef CONFIG_BATTERY_RK30_ADC_FAC
36 /* adc battery */
37 struct rk30_adc_battery_platform_data {
38         int (*io_init)(void);
39         int (*io_deinit)(void);
40
41         int dc_det_pin;
42         int batt_low_pin;
43         int charge_ok_pin;
44         int charge_set_pin;
45
46 //        int adc_channel;
47
48         int dc_det_level;
49         int batt_low_level;
50         int charge_ok_level;
51         int charge_set_level;
52 };
53 #endif
54
55 #ifndef _LINUX_WLAN_PLAT_H_
56 struct wifi_platform_data {
57         int (*set_power)(int val);
58         int (*set_reset)(int val);
59         int (*set_carddetect)(int val);
60         void *(*mem_prealloc)(int section, unsigned long size);
61         int (*get_mac_addr)(unsigned char *buf);
62 };
63 #endif
64 #if defined (CONFIG_EETI_EGALAX)
65 struct eeti_egalax_platform_data{
66         u16     model;
67
68     int     (*get_pendown_state)(void);
69     int     (*init_platform_hw)(void);
70     int     (*eeti_egalax_platform_sleep)(void);
71     int     (*eeti_egalax_platform_wakeup)(void);
72     void    (*exit_platform_hw)(void);
73     int     standby_pin;
74     int     standby_value;
75     int     disp_on_pin;
76     int     disp_on_value;
77  
78 };
79 #endif
80 #if defined (CONFIG_TOUCHSCREEN_SITRONIX_A720)
81 struct ft5x0x_platform_data{
82           u16     model;
83     int     (*get_pendown_state)(void);
84     int     (*init_platform_hw)(void);
85     int     (*ft5x0x_platform_sleep)(void);
86     int     (*ft5x0x_platform_wakeup)(void);
87     void    (*exit_platform_hw)(void);
88 };
89 #endif
90
91 #if defined (CONFIG_TOUCHSCREEN_I30)
92 struct ft5306_platform_data {
93     int rest_pin;
94     int irq_pin ;
95     int     (*get_pendown_state)(void);
96     int     (*init_platform_hw)(void);
97     int     (*platform_sleep)(void);
98     int     (*platform_wakeup)(void);
99     void    (*exit_platform_hw)(void);
100 };
101 #endif
102
103 #if defined (CONFIG_GPIOEXP_AW9523B)
104 struct gpio_exp_platform_data {
105     int     (*init_platform_hw)(void);
106     void    (*exit_platform_hw)(void);
107 };
108 #endif
109
110 enum _periph_pll {
111         periph_pll_1485mhz = 148500000,
112         periph_pll_297mhz = 297000000,
113         periph_pll_300mhz = 300000000,
114         periph_pll_1188mhz = 1188000000, /* for box*/
115 };
116 enum _codec_pll {
117         codec_pll_360mhz = 360000000, /* for HDMI */
118         codec_pll_408mhz = 408000000,
119         codec_pll_456mhz = 456000000,
120         codec_pll_504mhz = 504000000,
121         codec_pll_552mhz = 552000000, /* for HDMI */
122         codec_pll_600mhz = 600000000,
123         codec_pll_742_5khz = 742500000,
124         codec_pll_798mhz = 798000000,
125         codec_pll_1064mhz = 1064000000,
126         codec_pll_1188mhz = 1188000000,
127 };
128
129 //max i2s rate
130 #define CLK_FLG_MAX_I2S_12288KHZ        (1<<1)
131 #define CLK_FLG_MAX_I2S_22579_2KHZ      (1<<2)
132 #define CLK_FLG_MAX_I2S_24576KHZ        (1<<3)
133 #define CLK_FLG_MAX_I2S_49152KHZ        (1<<4)
134
135 #define RK30_CLOCKS_DEFAULT_FLAGS (CLK_FLG_MAX_I2S_12288KHZ/*|CLK_FLG_EXT_27MHZ*/)
136 #define periph_pll_default periph_pll_297mhz
137 #define codec_pll_default codec_pll_798mhz
138 //#define codec_pll_default codec_pll_1064mhz
139
140
141 #endif