struct notifier_block freq_transition;
};
+struct rk2818_gpio_expander_info {
+ unsigned int gpio_num;// ³õʼ»¯µÄpin ½Åºê¶¨Òå È磺RK2818_PIN_PI0
+ unsigned int pin_type;//³õʼ»¯µÄpin ΪÊäÈëpin»¹ÊÇÊä³öpin È磺GPIO_IN
+ unsigned int pin_value;//Èç¹ûΪ output pin ÉèÖÃµçÆ½£¬È磺GPIO_HIGH
+};
+
+
+struct pca9554_platform_data {
+ /* the first extern gpio number in all of gpio groups */
+ unsigned gpio_base;
+ unsigned gpio_pin_num;
+ /* the first gpio irq number in all of irq source */
+
+ unsigned gpio_irq_start;
+ unsigned irq_pin_num; //ÖжϵĸöÊý
+ unsigned pca9954_irq_pin; //À©Õ¹IOµÄÖжϹÒÔÚÄĸögpio
+ /* initial polarity inversion setting */
+ uint16_t invert;
+ struct rk2818_gpio_expander_info *settinginfo;
+ int settinginfolen;
+ void *context; /* param to setup/teardown */
+
+ int (*setup)(struct i2c_client *client,unsigned gpio, unsigned ngpio,void *context);
+ int (*teardown)(struct i2c_client *client,unsigned gpio, unsigned ngpio,void *context);
+ char **names;
+};
/* common init routines for use by arch/arm/mach-msm/board-*.c */
void __init rk2818_add_devices(void);
void __init rk2818_map_common_io(void);