From d263011106d0cb580a25dd3ae774c87a56a2b3b3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E6=B2=88=E7=9D=BF=E6=B1=80?= Date: Thu, 29 Apr 2010 09:10:42 +0000 Subject: [PATCH] update for gpio --- arch/arm/mach-rk2818/Kconfig | 4 +++ arch/arm/mach-rk2818/board-midsdk.c | 53 +++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/arch/arm/mach-rk2818/Kconfig b/arch/arm/mach-rk2818/Kconfig index e12193100199..bd9c54ee6dcb 100644 --- a/arch/arm/mach-rk2818/Kconfig +++ b/arch/arm/mach-rk2818/Kconfig @@ -10,4 +10,8 @@ config MACH_RK2818MID help Support for the ROCKCHIP Board For Rk2818 Mid. +config RK28_GPIO_IRQ + int + default 16 if ARCH_RK2818 + default 0 endif diff --git a/arch/arm/mach-rk2818/board-midsdk.c b/arch/arm/mach-rk2818/board-midsdk.c index 15b42ae5a6b3..97d89ccc18cc 100644 --- a/arch/arm/mach-rk2818/board-midsdk.c +++ b/arch/arm/mach-rk2818/board-midsdk.c @@ -30,11 +30,61 @@ #include #include #include +#include #include #include #include "devices.h" + + +/* -------------------------------------------------------------------- + * ÉùÃ÷ÁËrk2818_gpioBankÊý×飬²¢¶¨ÒåÁËGPIO¼Ä´æÆ÷×éIDºÍ¼Ä´æÆ÷»ùµØÖ·¡£ + * -------------------------------------------------------------------- */ + +static struct rk2818_gpio_bank rk2818_gpioBank[] = { + { + .id = AT2818_ID_PIOA, + .offset = RK2818_GPIO0_BASE, + .clock = NULL, + }, + { + .id = AT2818_ID_PIOB, + .offset = RK2818_GPIO0_BASE, + .clock = NULL, + }, + { + .id = AT2818_ID_PIOC, + .offset = RK2818_GPIO0_BASE, + .clock = NULL, + }, + { + .id = AT2818_ID_PIOD, + .offset = RK2818_GPIO0_BASE, + .clock = NULL, + }, + { + .id = AT2818_ID_PIOE, + .offset = RK2818_GPIO1_BASE, + .clock = NULL, + }, + { + .id = AT2818_ID_PIOF, + .offset = RK2818_GPIO1_BASE, + .clock = NULL, + }, + { + .id = AT2818_ID_PIOG, + .offset = RK2818_GPIO1_BASE, + .clock = NULL, + }, + { + .id = AT2818_ID_PIOH, + .offset = RK2818_GPIO1_BASE, + .clock = NULL, + } +}; + //IOÓ³É䷽ʽÃèÊö £¬Ã¿¸öΪһ¶ÎÏßÐÔÁ¬ÐøÓ³Éä static struct map_desc rk2818_io_desc[] __initdata = { @@ -98,11 +148,14 @@ extern struct sys_timer rk2818_timer; static void __init machine_rk2818_init_irq(void) { rk2818_init_irq(); + rk2818_gpio_init(rk2818_gpioBank, 8); + rk2818_gpio_irq_setup(); } static void __init machine_rk2818_board_init(void) { platform_add_devices(devices, ARRAY_SIZE(devices)); + } static void __init machine_rk2818_mapio(void) -- 2.34.1