aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/serial.c
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2011-07-25 17:16:50 -0700
committerColin Cross <ccross@android.com>2011-07-26 18:48:24 -0700
commit6ac2566c20407b9198b0fc0711337ff2b4b43fdf (patch)
tree9e22a82fc7f62a425f1eed9ebbfe3b557780eff7 /arch/arm/mach-omap2/serial.c
parent94aafceb0be30f7035a4c0536960a0440d885120 (diff)
downloadkernel_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/arm/mach-omap2/serial.c')
-rw-r--r--arch/arm/mach-omap2/serial.c18
1 files changed, 18 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