#include <linux/types.h>
#include <linux/timer.h>
#include <linux/notifier.h>
+#include <plat/board.h>
+
+struct led_newton_pwm {
+ const char *name;
+ unsigned int pwm_id;
+ unsigned pwm_gpio;
+ char* pwm_iomux_name;
+ unsigned int pwm_iomux_pwm;
+ unsigned int pwm_iomux_gpio;
+ unsigned int freq;/**/
+ unsigned int period;/*1-100*/
+};
-struct rk29_button_light_info{
- u32 led_on_pin;
- u32 led_on_level;
+struct led_newton_pwm_platform_data {
+ int num_leds;
+ struct led_newton_pwm* leds;
+};
+
+struct hdmi_platform_data {
+ u32 hdmi_on_pin;
+ u32 hdmi_on_level;
int (*io_init)(void);
int (*io_deinit)(void);
};
-/*spi*/
-struct spi_cs_gpio {
- const char *name;
- unsigned int cs_gpio;
- char *cs_iomux_name;
- unsigned int cs_iomux_mode;
+/* adc battery */
+struct rk29_adc_battery_platform_data {
+ int (*io_init)(void);
+ int (*io_deinit)(void);
+
+ int dc_det_pin;
+ int batt_low_pin;
+ int charge_ok_pin;
+ int charge_set_pin;
+
+ int dc_det_level;
+ int batt_low_level;
+ int charge_ok_level;
+ int charge_set_level;
};
-struct rk29xx_spi_platform_data {
- int (*io_init)(struct spi_cs_gpio*, int);
- int (*io_deinit)(struct spi_cs_gpio*, int);
- int (*io_fix_leakage_bug)(void);
- int (*io_resume_leakage_bug)(void);
- struct spi_cs_gpio *chipselect_gpios;
- u16 num_chipselect;
+
+struct rk29_button_light_info{
+ u32 led_on_pin;
+ u32 led_on_level;
+ int (*io_init)(void);
+ int (*io_deinit)(void);
};
/*vmac*/
#define INVALID_GPIO -1
-struct rk29lcd_info{
- u32 lcd_id;
- u32 txd_pin;
- u32 clk_pin;
- u32 cs_pin;
- int (*io_init)(void);
- int (*io_deinit)(void);
-};
-
-struct rk29_fb_setting_info{
- u8 data_num;
- u8 vsync_en;
- u8 den_en;
- u8 mcu_fmk_en;
- u8 disp_on_en;
- u8 standby_en;
-};
-
-struct rk29fb_info{
- u32 fb_id;
- u32 mcu_fmk_pin;
- struct rk29lcd_info *lcd_info;
- int (*io_init)(struct rk29_fb_setting_info *fb_setting);
- int (*io_deinit)(void);
- int (*io_enable)(void);
- int (*io_disable)(void);
-};
-
-struct rk29_bl_info{
- u32 pwm_id;
- u32 bl_ref;
- int (*io_init)(void);
- int (*io_deinit)(void);
- int (*pwm_suspend)(void);
- int (*pwm_resume)(void);
- int min_brightness; /* 0 ~ 255 */
- unsigned int delay_ms; /* in milliseconds */
-};
+#ifndef _LINUX_WLAN_PLAT_H_
struct wifi_platform_data {
int (*set_power)(int val);
int (*set_reset)(int val);
void *(*mem_prealloc)(int section, unsigned long size);
int (*get_mac_addr)(unsigned char *buf);
};
+#endif
-struct rk29_sdmmc_platform_data {
- unsigned int host_caps;
- unsigned int host_ocr_avail;
- unsigned int use_dma:1;
- char dma_name[8];
- int (*io_init)(void);
- int (*io_deinit)(void);
- int (*status)(struct device *);
- int (*register_status_notify)(void (*callback)(int card_present, void *dev_id), void *dev_id);
- int detect_irq;
- int enable_sd_wakeup;
-};
struct rk29_i2c_platform_data {
int bus_num;
unsigned int flags;
unsigned int bat_num;
};
+struct bq27541_platform_data {
+ int (*init_dc_check_pin)(void);
+ unsigned int dc_check_pin;
+ unsigned int bat_check_pin;
+ unsigned int chgok_check_pin;
+ unsigned int bat_num;
+};
+
/*i2s*/
struct rk29_i2s_platform_data {
int (*io_init)(void);
int disp_on_value;
};
+//added by zyw
+struct atmel_1386_platform_data {
+ u8 numtouch; /* Number of touches to report */
+ int (*init_platform_hw)(struct device *dev);
+ void (*exit_platform_hw)(struct device *dev);
+ int max_x; /* The default reported X range */
+ int max_y; /* The default reported Y range */
+ u8 (*valid_interrupt) (void);
+ u8 (*read_chg) (void);
+};
/*sintex touch*/
struct sintek_platform_data {
void (*exit_platform_hw)(void);
};
-struct mma8452_platform_data {
+
+struct bma023_platform_data {
u16 model;
u16 swap_xy;
u16 swap_xyz;
struct ft5406_platform_data {
int (*get_pendown_state)(void);
int (*init_platform_hw)(void);
- int (*ft5406_platform_sleep)(void);
- int (*ft5406_platform_wakeup)(void);
+ int (*platform_sleep)(void);
+ int (*platform_wakeup)(void);
void (*exit_platform_hw)(void);
};
+
struct cs42l52_platform_data {
int (*get_pendown_state)(void);
int (*init_platform_hw)(void);
void (*exit_platform_hw)(void);
};
+struct rt5625_platform_data {
+ int spk_ctr_pin;
+ int spk_ctr_on;
+ int spk_ctr_off;
+};
+
+//tcl miaozh add
+/*nas touch */
+struct nas_platform_data {
+ u16 model;
+
+ int (*get_pendown_state)(void);
+ int (*init_platform_hw)(void);
+ int (*nas_platform_sleep)(void);
+ int (*nas_platform_wakeup)(void);
+ void (*exit_platform_hw)(void);
+};
+
+
+struct laibao_platform_data {
+ u16 model;
-struct akm8975_platform_data {
- char layouts[3][3];
- char project_name[64];
- int gpio_DRDY;
+ int (*get_pendown_state)(void);
+ int (*init_platform_hw)(void);
+ int (*laibao_platform_sleep)(void);
+ int (*laibao_platform_wakeup)(void);
+ void (*exit_platform_hw)(void);
+ int pwr_pin;
+ int pwr_on_value;
+ int reset_pin;
+ int reset_value;
};
-struct rk29_gpio_expander_info {
- unsigned int gpio_num;
- unsigned int pin_type;//GPIO_IN or GPIO_OUT
- unsigned int pin_value;//GPIO_HIGH or GPIO_LOW
+struct rk29_newton_data {
};
struct tca6424_platform_data {
void __init rk29_map_common_io(void);
void __init board_power_init(void);
-#define BOOT_MODE_NORMAL 0
-#define BOOT_MODE_FACTORY2 1
-#define BOOT_MODE_RECOVERY 2
-#define BOOT_MODE_CHARGE 3
-#define BOOT_MODE_POWER_TEST 4
-#define BOOT_MODE_OFFMODE_CHARGING 5
-int board_boot_mode(void);
-
enum periph_pll {
- periph_pll_96mhz = 96000000,
+ periph_pll_96mhz = 96000000, /* save more power */
periph_pll_144mhz = 144000000,
periph_pll_288mhz = 288000000, /* for USB 1.1 */
periph_pll_300mhz = 300000000, /* for Ethernet */
+#if defined(CONFIG_RK29_VMAC) && defined(CONFIG_USB20_HOST_EN)
+ periph_pll_default = periph_pll_300mhz,
+#else
+ periph_pll_default = periph_pll_288mhz,
+#endif
};
enum codec_pll {
codec_pll_297mhz = 297000000, /* for HDMI */
codec_pll_300mhz = 300000000,
- codec_pll_445mhz = 445500000, /* for HDMI */
codec_pll_504mhz = 504000000,
codec_pll_552mhz = 552000000,
codec_pll_594mhz = 594000000, /* for HDMI */
codec_pll_600mhz = 600000000,
};
-void __init rk29_clock_init(enum periph_pll ppll_rate); /* codec pll is 445.5MHz, has xin27m */
+void __init rk29_clock_init(enum periph_pll ppll_rate); /* codec pll is 297MHz, has xin27m */
void __init rk29_clock_init2(enum periph_pll ppll_rate, enum codec_pll cpll_rate, bool has_xin27m);
-/* for USB detection */
-#ifdef CONFIG_USB_GADGET
-int board_usb_detect_init(unsigned gpio);
-#else
-static int inline board_usb_detect_init(unsigned gpio) { return 0; }
-#endif
-
-/* for wakeup Android */
-void rk28_send_wakeup_key(void);
-
#endif