[RFC PATCH 00/18] OMAP: GPIO: cleanup GPIO driver
Charulatha V
charu at ti.com
Fri Apr 22 07:08:14 EDT 2011
Modifies the OMAP GPIO driver to avoid usage of cpu_is* checks
for different OMAP architectures. This is done by moving some
architecture specific code to mach-omap* and call them from
plat-omap* using function pointers. Also remove the register offset
macros from OMAP GPIO driver and handle the same in mach-omap*.
Avoid usage of gpio_bank_count and gpio_bank pointer array by
means of maintaining a list. Removes the bank->method flag from
the GPIO driver.
All OMAP1 SoCs has one MPUIO type GPIO bank. OMAP2+ does not have
any MPUIO type GPIO bank. Since MPUIO type GPIO bank is the same for
all OMAP1 CPUs, they are handled in plat-omap/ itself as
there is no common gpio.c file for all cpu types in mach-omap1.
They are identified by using bank->stride flag as it is '0'
for other than MPUIO type banks.
Patch series is based on mainline rc4 following commit:
91e8549bde9e5cc88c5a2e8c8114389279e240b5
Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block
Compile tested for:
- omap1_defconfig
- omap2plus_defconfig
Boot test (success on the following boards):
- OMAP1710-H3
- OMAP2420-H4
- OMAP3430-SDP
- OMAP3430-Zoom2
- OMAP3630-Zoom3
- OMAP4430-SDP
- OMAP4430-Blaze
GPIO module functionality testing (success on the following boards):
- OMAP2420-H4
- OMAP3430-SDP
- OMAP3430-Zoom2
- OMAP3630-Zoom3
- OMAP4430-SDP
- OMAP4430-Blaze
PM Testing (success as given below):
OMAP3430-SDP: retention, off_mode, system_wide suspend, gpio wakeup
OMAP3630-Zoom3: retention, system_wide suspend
using the following:
echo 5 > /sys/devices/platform/omap/omap_uart.0/sleep_timeout
echo 5 > /sys/devices/platform/omap/omap_uart.1/sleep_timeout
echo 5 > /sys/devices/platform/omap/omap_uart.2/sleep_timeout
echo 5 > /sys/devices/platform/omap/omap_uart.3/sleep_timeout
echo '5' > /debug/pm_debug/wakeup_timer_seconds
echo 1 > /debug/pm_debug/sleep_while_idle
echo 1 > /debug/pm_debug/enable_off_mode
Charulatha V (18):
OMAP1: GPIO: Fix mpuio_init() call
OMAP: GPIO: remove get_gpio_bank()
OMAP: GPIO: Move gpio_get_index() to mach-omap
OMAP: GPIO: Move gpio_valid() to SoC specific files
OMAP: GPIO: cleanup datain,dataout,set dir funcs
OMAP: GPIO: cleanup set trigger func
OMAP: GPIO: cleanup set/get IRQ, clr irqstatus funcs
OMAP: GPIO: req/free: Remove reg offset macros usage
OMAP: GPIO: cleanup gpio_irq_handler
OMAP: GPIO: cleanup set wakeup/suspend/resume funcs
OMAP: GPIO: Remove dependency on gpio_bank_count
OMAP: GPIO: cleanup set_debounce, idle/resume_after_idle
OMAP: GPIO: cleanup save/restore context
OMAP: GPIO: Remove CONFIG_ARCH_OMAP16XX/OMAP2+ defines
OMAP: GPIO: cleanup gpio_show_rev
OMAP: GPIO: move omap_gpio_mod_init to mach-omap
OMAP: GPIO: use dev_err* instead of printk
OMAP: GPIO: Remove usage of bank method
arch/arm/mach-omap1/gpio15xx.c | 110 ++-
arch/arm/mach-omap1/gpio16xx.c | 174 +++-
arch/arm/mach-omap1/gpio7xx.c | 132 ++-
arch/arm/mach-omap2/gpio.c | 476 +++++++++-
arch/arm/plat-omap/gpio.c | 1770 ++++++++------------------------
arch/arm/plat-omap/include/plat/gpio.h | 108 ++-
6 files changed, 1380 insertions(+), 1390 deletions(-)
More information about the linux-arm-kernel
mailing list