From 3c3682a34cbbeaff8ef3ec9d6b9a8cbfb5f3b03b Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E8=B0=A2=E4=BF=AE=E9=91=AB?= Date: Tue, 25 May 2010 14:24:18 +0000 Subject: [PATCH] add gpio expander pca9554 driver --- arch/arm/mach-rk2818/include/mach/board.h | 26 +++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/arch/arm/mach-rk2818/include/mach/board.h b/arch/arm/mach-rk2818/include/mach/board.h index d98c1f56825a..0f0f666246b6 100644 --- a/arch/arm/mach-rk2818/include/mach/board.h +++ b/arch/arm/mach-rk2818/include/mach/board.h @@ -74,6 +74,32 @@ struct rk2818bl_info{ 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); -- 2.34.1