diff options
author | Colin Cross <ccross@android.com> | 2011-07-25 17:16:50 -0700 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2011-07-26 18:48:24 -0700 |
commit | 6ac2566c20407b9198b0fc0711337ff2b4b43fdf (patch) | |
tree | 9e22a82fc7f62a425f1eed9ebbfe3b557780eff7 /arch | |
parent | 94aafceb0be30f7035a4c0536960a0440d885120 (diff) | |
download | kernel_samsung_tuna-6ac2566c20407b9198b0fc0711337ff2b4b43fdf.zip kernel_samsung_tuna-6ac2566c20407b9198b0fc0711337ff2b4b43fdf.tar.gz kernel_samsung_tuna-6ac2566c20407b9198b0fc0711337ff2b4b43fdf.tar.bz2 |
ARM: omap2+: Allow boards to override default uart pads
Some boards don't use the default uart pads. Allow them to
register uarts with custom pad information.
Change-Id: I042fa711954226ae7cc9c9c8b398661ce824766e
Signed-off-by: Colin Cross <ccross@android.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-omap2/serial.c | 18 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/plat/serial.h | 3 |
2 files changed, 21 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index 279f464..61f2d84 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c @@ -175,6 +175,8 @@ static struct omap_device_pad default_omap4_uart4_pads[] __initdata = {}; static void omap_serial_fill_default_pads(struct omap_board_data *bdata) { + BUG_ON(!cpu_is_omap44xx() && !cpu_is_omap34xx()); + switch (bdata->id) { case 0: bdata->pads = default_uart1_pads; @@ -337,6 +339,22 @@ static int __init omap_serial_early_init(void) } core_initcall(omap_serial_early_init); +void __init omap_serial_init_port_pads(int id, struct omap_device_pad *pads, + int size, struct omap_uart_port_info *info) +{ + struct omap_board_data bdata; + + bdata.id = id; + bdata.flags = 0; + bdata.pads = pads; + bdata.pads_cnt = size; + + if (!bdata.pads) + omap_serial_fill_default_pads(&bdata); + + omap_serial_init_port(&bdata, info); +} + /** * omap_serial_init_port() - initialize single serial port * @bdata: port specific board data pointer diff --git a/arch/arm/plat-omap/include/plat/serial.h b/arch/arm/plat-omap/include/plat/serial.h index 44a42aa..8c97647 100644 --- a/arch/arm/plat-omap/include/plat/serial.h +++ b/arch/arm/plat-omap/include/plat/serial.h @@ -104,11 +104,14 @@ struct omap_board_data; struct omap_uart_port_info; +struct omap_device_pad; extern void omap_serial_init(void); extern void omap_serial_board_init(struct omap_uart_port_info *platform_data); extern void omap_serial_init_port(struct omap_board_data *bdata, struct omap_uart_port_info *platform_data); +void __init omap_serial_init_port_pads(int id, struct omap_device_pad *pads, + int size, struct omap_uart_port_info *info); extern u32 omap_uart_resume_idle(void); #endif |