4 #include <linux/types.h>
5 #include <linux/init.h>
6 #include <linux/device.h>
7 #include <linux/rk_screen.h>
15 struct rk30_i2c_platform_data {
18 #define I2C_RK29_ADAP 0
19 #define I2C_RK30_ADAP 1
24 int (*io_deinit)(void);
25 int (*check_idle)(int);
32 unsigned int cs_iomux_mode;
35 struct rk29xx_spi_platform_data {
36 int (*io_init)(struct spi_cs_gpio*, int);
37 int (*io_deinit)(struct spi_cs_gpio*, int);
38 int (*io_fix_leakage_bug)(void);
39 int (*io_resume_leakage_bug)(void);
40 struct spi_cs_gpio *chipselect_gpios;
48 int (*io_deinit)(void);
49 int (*pwm_suspend)(void);
50 int (*pwm_resume)(void);
51 int min_brightness; /* 0 ~ 255 */
52 unsigned int delay_ms; /* in milliseconds */
57 unsigned long io_addr;
59 unsigned long disable;
65 struct rk29_fb_setting_info {
76 enum rk_disp_prop prop; //display device property,like PRMRY,EXTEND
78 struct rk29lcd_info *lcd_info;
79 int (*io_init)(struct rk29_fb_setting_info *fb_setting);
80 int (*io_deinit)(void);
81 int (*io_enable)(void);
82 int (*io_disable)(void);
83 void (*set_screen_info)(struct rk29fb_screen *screen, struct rk29lcd_info *lcd_info );
86 struct rk29_sdmmc_platform_data {
87 unsigned int host_caps;
88 unsigned int host_ocr_avail;
89 unsigned int use_dma:1;
92 int (*io_deinit)(void);
93 void (*set_iomux)(int device_id, unsigned int bus_width);//added by xbw at 2011-10-13
94 int (*status)(struct device *);
95 int (*register_status_notify)(void (*callback)(int card_present, void *dev_id), void *dev_id);
99 unsigned int sdio_INT_gpio; //add gpio INT for sdio interrupt.Modifed by xbw at 2012-08-09
102 struct gsensor_platform_data {
106 signed char orientation[9];
107 int (*get_pendown_state)(void);
108 int (*init_platform_hw)(void);
109 int (*gsensor_platform_sleep)(void);
110 int (*gsensor_platform_wakeup)(void);
111 void (*exit_platform_hw)(void);
115 struct akm8975_platform_data {
116 short m_layout[4][3][3];
117 char project_name[64];
121 struct sensor_platform_data {
126 int irq_enable; //if irq_enable=1 then use irq else use polling
127 int poll_delay_ms; //polling
132 unsigned char address;
133 signed char orientation[9];
134 short m_layout[4][3][3];
135 char project_name[64];
136 int (*init_platform_hw)(void);
137 void (*exit_platform_hw)(void);
138 int (*power_on)(void);
139 int (*power_off)(void);
143 struct goodix_platform_data {
147 int (*get_pendown_state)(void);
148 int (*init_platform_hw)(void);
149 int (*platform_sleep)(void);
150 int (*platform_wakeup)(void);
151 void (*exit_platform_hw)(void);
154 struct cm3217_platform_data {
157 int (*init_platform_hw)(void);
158 void (*exit_platform_hw)(void);
163 int (*iomux_init)(void);
164 int (*iomux_deinit)(void);
165 int (*irda_pwr_ctl)(int en);
168 struct rk29_gpio_expander_info {
169 unsigned int gpio_num;
170 unsigned int pin_type; //GPIO_IN or GPIO_OUT
171 unsigned int pin_value; //GPIO_HIGH or GPIO_LOW
175 struct rk29_vmac_platform_data {
176 int (*vmac_register_set)(void);
177 int (*rmii_io_init)(void);
178 int (*rmii_io_deinit)(void);
179 int (*rmii_power_control)(int enable);
182 #define BOOT_MODE_NORMAL 0
183 #define BOOT_MODE_FACTORY2 1
184 #define BOOT_MODE_RECOVERY 2
185 #define BOOT_MODE_CHARGE 3
186 #define BOOT_MODE_POWER_TEST 4
187 #define BOOT_MODE_OFFMODE_CHARGING 5
188 #define BOOT_MODE_REBOOT 6
189 #define BOOT_MODE_PANIC 7
190 int board_boot_mode(void);
192 /* for USB detection */
193 #ifdef CONFIG_USB_GADGET
194 int __init board_usb_detect_init(unsigned gpio);
196 static int inline board_usb_detect_init(unsigned gpio) { return 0; }
199 #ifdef CONFIG_RK_EARLY_PRINTK
200 void __init rk29_setup_early_printk(void);
202 static void inline rk29_setup_early_printk(void) {}
205 /* for wakeup Android */
206 void rk28_send_wakeup_key(void);
208 /* for reserved memory
209 * function: board_mem_reserve_add
210 * return value: start address of reserved memory */
211 phys_addr_t __init board_mem_reserve_add(char *name, size_t size);
212 void __init board_mem_reserved(void);