[ARM] pxa: allow platforms to control which uarts are registered
authorRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 9 Nov 2009 05:34:08 +0000 (13:34 +0800)
committerEric Miao <eric.y.miao@gmail.com>
Tue, 1 Dec 2009 01:02:55 +0000 (09:02 +0800)
For some platforms, it is inappropriate to register all PXA UARTs.
In some cases, the UARTs may not be used, and in others we may want
to avoid registering the UARTs to allow other drivers (eg, FICP) to
make use of the UART.

In addition, a while back there was a request to be able to pass
platform data to the UART driver.

This patch enables all of this by providing functions platforms can
call to register each individual UART.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: Mike Rapoport <mike@compulab.co.il>
Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
52 files changed:
arch/arm/mach-pxa/balloon3.c
arch/arm/mach-pxa/cm-x2xx.c
arch/arm/mach-pxa/cm-x300.c
arch/arm/mach-pxa/colibri-pxa270.c
arch/arm/mach-pxa/colibri-pxa300.c
arch/arm/mach-pxa/colibri-pxa320.c
arch/arm/mach-pxa/corgi.c
arch/arm/mach-pxa/csb726.c
arch/arm/mach-pxa/devices.c
arch/arm/mach-pxa/e330.c
arch/arm/mach-pxa/e350.c
arch/arm/mach-pxa/e400.c
arch/arm/mach-pxa/e740.c
arch/arm/mach-pxa/e750.c
arch/arm/mach-pxa/e800.c
arch/arm/mach-pxa/em-x270.c
arch/arm/mach-pxa/ezx.c
arch/arm/mach-pxa/generic.h
arch/arm/mach-pxa/gumstix.c
arch/arm/mach-pxa/h5000.c
arch/arm/mach-pxa/himalaya.c
arch/arm/mach-pxa/hx4700.c
arch/arm/mach-pxa/idp.c
arch/arm/mach-pxa/imote2.c
arch/arm/mach-pxa/littleton.c
arch/arm/mach-pxa/lpd270.c
arch/arm/mach-pxa/lubbock.c
arch/arm/mach-pxa/magician.c
arch/arm/mach-pxa/mainstone.c
arch/arm/mach-pxa/mioa701.c
arch/arm/mach-pxa/mp900.c
arch/arm/mach-pxa/palmld.c
arch/arm/mach-pxa/palmt5.c
arch/arm/mach-pxa/palmtc.c
arch/arm/mach-pxa/palmte2.c
arch/arm/mach-pxa/palmtreo.c
arch/arm/mach-pxa/palmtx.c
arch/arm/mach-pxa/palmz72.c
arch/arm/mach-pxa/pcm027.c
arch/arm/mach-pxa/poodle.c
arch/arm/mach-pxa/pxa25x.c
arch/arm/mach-pxa/pxa27x.c
arch/arm/mach-pxa/pxa3xx.c
arch/arm/mach-pxa/saar.c
arch/arm/mach-pxa/spitz.c
arch/arm/mach-pxa/stargate2.c
arch/arm/mach-pxa/tavorevb.c
arch/arm/mach-pxa/tosa.c
arch/arm/mach-pxa/trizeps4.c
arch/arm/mach-pxa/viper.c
arch/arm/mach-pxa/xcep.c
arch/arm/mach-pxa/zylonite.c

index f23138b8fca318f72c04a55cd7aaada478623544..b8cd07ca9380366e2f0ad2f050da618f7aa1d347 100644 (file)
@@ -306,6 +306,10 @@ static void __init balloon3_init(void)
         */
        ARB_CNTRL = ARB_CORE_PARK | 0x234;
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        pxa_set_i2c_info(NULL);
        if (balloon3_has(BALLOON3_FEATURE_AUDIO))
                pxa_set_ac97_info(NULL);
index b50ef39eabfcdadf5751b34d69d79bdeb3fefaf2..bff6e78f033d250d803c9a9bc82474ac3804b317 100644 (file)
@@ -453,6 +453,10 @@ static inline void cmx2xx_init_ac97(void) {}
 
 static void __init cmx2xx_init(void)
 {
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        cmx2xx_pm_init();
 
        if (cpu_is_pxa25x())
index 06552ca91814e75ec2e9992c67b527eb1a94ee6c..7f2e87839a8f10107c06104c44ce538c24e9115d 100644 (file)
@@ -438,6 +438,10 @@ static void __init cm_x300_init(void)
        /* board-processor specific GPIO initialization */
        pxa3xx_mfp_config(ARRAY_AND_SIZE(cm_x300_mfp_cfg));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        cm_x300_init_dm9000();
        cm_x300_init_lcd();
        cm_x300_init_ohci();
index 01bcfaae75bc2d03b56aec59f8f68dadde9c84c1..061c45316de8cb732b20ac43babefd9735c88c8a 100644 (file)
@@ -130,6 +130,9 @@ static struct platform_device *colibri_pxa270_devices[] __initdata = {
 static void __init colibri_pxa270_init(void)
 {
        pxa2xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa270_pin_config));
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
        platform_add_devices(ARRAY_AND_SIZE(colibri_pxa270_devices));
 }
 
index 37c239c56568418bcfb437bc8e085ffd66991f97..45c23fd6df31e9696d2b0c42be0752cba1683217 100644 (file)
@@ -170,6 +170,10 @@ static inline void colibri_pxa310_init_ac97(void) {}
 
 void __init colibri_pxa300_init(void)
 {
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        colibri_pxa300_init_eth();
        colibri_pxa300_init_ohci();
        colibri_pxa3xx_init_nand();
index ec0e14b96682a9b6117ff70420803d280d63a120..ae835fad7d10a7b644ff725b2948688a39a3cd43 100644 (file)
@@ -199,6 +199,10 @@ static void __init colibri_pxa320_init_uart(void)
 
 void __init colibri_pxa320_init(void)
 {
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        colibri_pxa320_init_eth();
        colibri_pxa320_init_ohci();
        colibri_pxa3xx_init_nand();
index b536b5a5a10d4d8f4420c37d06d54dce780814d4..74446cf8ae69ad941dc75c2d10d5a89094fd7fc3 100644 (file)
@@ -671,6 +671,10 @@ static void __init corgi_init(void)
 
        pxa2xx_mfp_config(ARRAY_AND_SIZE(corgi_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        corgi_init_spi();
 
        pxa_set_udc_info(&udc_info);
index 965480eb4fe67312c24c0647d2e101bc900b7539..88575b87bd330d8dd7ca53d11a813a29757d7b48 100644 (file)
@@ -268,6 +268,9 @@ static void __init csb726_init(void)
 /*     MSC2 = 0x06697ff4; *//* none/SM501 */
        MSC2 = (MSC2 & ~0xffff) | 0x7ff4; /* SM501 */
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
        pxa_set_i2c_info(NULL);
        pxa27x_set_i2c_power_info(NULL);
        pxa_set_mci_info(&csb726_mci);
index e2b427fa55e560a0df3726771533f16c08c082d5..d4cc41d04b255f037bf8391dc531d16d22d234b3 100644 (file)
@@ -167,13 +167,18 @@ static struct resource pxa_resource_ffuart[] = {
        }
 };
 
-struct platform_device pxa_device_ffuart= {
+struct platform_device pxa_device_ffuart = {
        .name           = "pxa2xx-uart",
        .id             = 0,
        .resource       = pxa_resource_ffuart,
        .num_resources  = ARRAY_SIZE(pxa_resource_ffuart),
 };
 
+void __init pxa_set_ffuart_info(void *info)
+{
+       pxa_register_device(&pxa_device_ffuart, info);
+}
+
 static struct resource pxa_resource_btuart[] = {
        {
                .start  = 0x40200000,
@@ -193,6 +198,11 @@ struct platform_device pxa_device_btuart = {
        .num_resources  = ARRAY_SIZE(pxa_resource_btuart),
 };
 
+void __init pxa_set_btuart_info(void *info)
+{
+       pxa_register_device(&pxa_device_btuart, info);
+}
+
 static struct resource pxa_resource_stuart[] = {
        {
                .start  = 0x40700000,
@@ -212,6 +222,11 @@ struct platform_device pxa_device_stuart = {
        .num_resources  = ARRAY_SIZE(pxa_resource_stuart),
 };
 
+void __init pxa_set_stuart_info(void *info)
+{
+       pxa_register_device(&pxa_device_stuart, info);
+}
+
 static struct resource pxa_resource_hwuart[] = {
        {
                .start  = 0x41600000,
@@ -231,6 +246,14 @@ struct platform_device pxa_device_hwuart = {
        .num_resources  = ARRAY_SIZE(pxa_resource_hwuart),
 };
 
+void __init pxa_set_hwuart_info(void *info)
+{
+       if (cpu_is_pxa255())
+               pxa_register_device(&pxa_device_hwuart, info);
+       else
+               pr_info("UART: Ignoring attempt to register HWUART on non-PXA255 hardware");
+}
+
 static struct resource pxai2c_resources[] = {
        {
                .start  = 0x40301680,
index 74d3f8987c5cfca1529574e76f8876fd36e225ff..8fde3387279d43662a16262c787716e3df3fd3cd 100644 (file)
@@ -55,6 +55,9 @@ static struct platform_device *devices[] __initdata = {
 
 static void __init e330_init(void)
 {
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
        eseries_register_clks();
        eseries_get_tmio_gpios();
        platform_add_devices(devices, ARRAY_SIZE(devices));
index 08003627213140840716ea94388bdffa4e3a3576..f50f055f57208e45dfda5087dc5c8ce8c152ce9d 100644 (file)
@@ -56,6 +56,9 @@ static struct platform_device *devices[] __initdata = {
 
 static void __init e350_init(void)
 {
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
        eseries_register_clks();
        eseries_get_tmio_gpios();
        platform_add_devices(devices, ARRAY_SIZE(devices));
index ed9c0c3f64a2016fd8d0cb4a8ef5909ff0bcee51..55b950f128443b2eefd8f05105c07af84e7f2168 100644 (file)
@@ -130,6 +130,9 @@ static struct platform_device *devices[] __initdata = {
 static void __init e400_init(void)
 {
        pxa2xx_mfp_config(ARRAY_AND_SIZE(e400_pin_config));
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
        /* Fixme - e400 may have a switched clock */
        eseries_register_clks();
        eseries_get_tmio_gpios();
index 49acdfa6650d3e7827807156fc071c1da0d49db1..94b23a9e3877ed053e42170803b8519029076bf5 100644 (file)
@@ -192,6 +192,9 @@ static struct platform_device *devices[] __initdata = {
 static void __init e740_init(void)
 {
        pxa2xx_mfp_config(ARRAY_AND_SIZE(e740_pin_config));
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
        eseries_register_clks();
        clk_add_alias("CLK_CK48M", e740_t7l66xb_device.name,
                        "UDCCLK", &pxa25x_device_udc.dev),
index 4052ece3ef4981e03f488be70542577670b05085..5eccbce73a3300621ef3beecd4977054f4bc32dc 100644 (file)
@@ -194,6 +194,9 @@ static struct platform_device *devices[] __initdata = {
 static void __init e750_init(void)
 {
        pxa2xx_mfp_config(ARRAY_AND_SIZE(e750_pin_config));
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
        clk_add_alias("CLK_CK3P6MI", e750_tc6393xb_device.name,
                        "GPIO11_CLK", NULL),
        eseries_get_tmio_gpios();
index 9866c7b9e78416efc55a2f810e9ccee8359f5dfd..aad129bed19928ed61cd531269b5ffc8a6dd8d2f 100644 (file)
@@ -195,6 +195,9 @@ static struct platform_device *devices[] __initdata = {
 
 static void __init e800_init(void)
 {
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
        clk_add_alias("CLK_CK3P6MI", e800_tc6393xb_device.name,
                        "GPIO11_CLK", NULL),
        eseries_get_tmio_gpios();
index aec7f4214b1435bb5d3be865076137ac097a4b17..e0b0fda9e67e1ce45946657fcaca25ff60972f58 100644 (file)
@@ -1286,6 +1286,10 @@ static void __init em_x270_init(void)
 {
        pxa2xx_mfp_config(ARRAY_AND_SIZE(common_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
 #ifdef CONFIG_PM
        pxa27x_set_pwrmode(PWRMODE_DEEPSLEEP);
 #endif
index 588b265e5755e150dad5bb049fec275867515d20..48c17372bc1c9c6c8dd0e2ac03948c451a9ce156 100644 (file)
@@ -693,6 +693,10 @@ static void __init a780_init(void)
        pxa2xx_mfp_config(ARRAY_AND_SIZE(gen1_pin_config));
        pxa2xx_mfp_config(ARRAY_AND_SIZE(a780_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        pxa_set_i2c_info(NULL);
 
        set_pxa_fb_info(&ezx_fb_info_1);
@@ -754,6 +758,10 @@ static void __init e680_init(void)
        pxa2xx_mfp_config(ARRAY_AND_SIZE(gen1_pin_config));
        pxa2xx_mfp_config(ARRAY_AND_SIZE(e680_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        pxa_set_i2c_info(NULL);
        i2c_register_board_info(0, ARRAY_AND_SIZE(e680_i2c_board_info));
 
@@ -816,6 +824,10 @@ static void __init a1200_init(void)
        pxa2xx_mfp_config(ARRAY_AND_SIZE(gen2_pin_config));
        pxa2xx_mfp_config(ARRAY_AND_SIZE(a1200_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        pxa_set_i2c_info(NULL);
        i2c_register_board_info(0, ARRAY_AND_SIZE(a1200_i2c_board_info));
 
@@ -874,6 +886,10 @@ static void __init a910_init(void)
        pxa2xx_mfp_config(ARRAY_AND_SIZE(gen2_pin_config));
        pxa2xx_mfp_config(ARRAY_AND_SIZE(a910_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        pxa_set_i2c_info(NULL);
 
        set_pxa_fb_info(&ezx_fb_info_2);
@@ -935,6 +951,10 @@ static void __init e6_init(void)
        pxa2xx_mfp_config(ARRAY_AND_SIZE(gen2_pin_config));
        pxa2xx_mfp_config(ARRAY_AND_SIZE(e6_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        pxa_set_i2c_info(NULL);
        i2c_register_board_info(0, ARRAY_AND_SIZE(e6_i2c_board_info));
 
@@ -971,6 +991,10 @@ static void __init e2_init(void)
        pxa2xx_mfp_config(ARRAY_AND_SIZE(gen2_pin_config));
        pxa2xx_mfp_config(ARRAY_AND_SIZE(e2_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        pxa_set_i2c_info(NULL);
        i2c_register_board_info(0, ARRAY_AND_SIZE(e2_i2c_board_info));
 
index 485fede83d979e23b512ecd24930105b702a1b4c..890fb90a672f5e957af6f9d75f78425f4d371fd5 100644 (file)
@@ -67,3 +67,8 @@ extern struct sysdev_class pxa_irq_sysclass;
 extern struct sysdev_class pxa_gpio_sysclass;
 extern struct sysdev_class pxa2xx_mfp_sysclass;
 extern struct sysdev_class pxa3xx_mfp_sysclass;
+
+void __init pxa_set_ffuart_info(void *info);
+void __init pxa_set_btuart_info(void *info);
+void __init pxa_set_stuart_info(void *info);
+void __init pxa_set_hwuart_info(void *info);
index 1708c01098444321d82257a1ff40ede8281f0f63..96c3451291358f74ef6fcf288dc9d489a397ef0a 100644 (file)
@@ -211,6 +211,11 @@ static void __init gumstix_init(void)
 {
        pxa2xx_mfp_config(ARRAY_AND_SIZE(gumstix_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+       pxa_set_hwuart_info(NULL);
+
        gumstix_bluetooth_init();
        gumstix_udc_init();
        gumstix_mmc_init();
index f3d220c32e0783e423bc2e3e7a5e3050a4c6ba2b..c1cab0871c996de961920257a3f5140f2af98a0e 100644 (file)
@@ -193,6 +193,9 @@ static void __init h5000_init(void)
        fix_msc();
 
        pxa2xx_mfp_config(ARRAY_AND_SIZE(h5000_pin_config));
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
        pxa_set_udc_info(&h5000_udc_mach_info);
        platform_add_devices(ARRAY_AND_SIZE(devices));
 }
index cea99fe65b974949586929f958582bf31f6aaf17..f9a2e4b0f090aa3661b701bb70ef1f93e176ff04 100644 (file)
@@ -150,6 +150,9 @@ static void __init himalaya_lcd_init(void)
 
 static void __init himalaya_init(void)
 {
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
        himalaya_lcd_init();
        platform_add_devices(devices, ARRAY_SIZE(devices));
 }
index 83bd3c6e3884594c2beac41e777220080865339c..6b3c90ed5f2899ed0fe6e65fa3101f68b0db988c 100644 (file)
@@ -849,6 +849,10 @@ static void __init hx4700_init(void)
        pxa2xx_mfp_config(ARRAY_AND_SIZE(hx4700_pin_config));
        hx4700_gpio_request(ARRAY_AND_SIZE(global_gpios));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        platform_add_devices(devices, ARRAY_SIZE(devices));
 
        pxa_set_ficp_info(&ficp_info);
index b6486ef20b1703404cb4263a90e3a65724216dd4..5c9e11d74f4930d527a753cc2abba2589ffec4c9 100644 (file)
@@ -179,6 +179,9 @@ static void __init idp_init(void)
        printk("idp_init()\n");
 
        pxa2xx_mfp_config(ARRAY_AND_SIZE(idp_pin_config));
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
 
        platform_device_register(&smc91x_device);
        //platform_device_register(&mst_audio_device);
index 2a4945db31c50169428490fb2b3aa2bf813496bf..5b0862df61abea46173d079f328bfdbb37bfc75e 100644 (file)
@@ -554,8 +554,12 @@ static struct i2c_pxa_platform_data i2c_pdata = {
 
 static void __init imote2_init(void)
 {
-
        pxa2xx_mfp_config(ARRAY_AND_SIZE(imote2_pin_config));
+
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        /* SPI chip select directions - all other directions should
         * be handled by drivers.*/
        gpio_direction_output(37, 0);
index ce5e6175a050b6d9505d8f7f1af6cda7f958a44e..f28c1715b910f385ecfc062519b4a2df19c858b8 100644 (file)
@@ -413,6 +413,10 @@ static void __init littleton_init(void)
        /* initialize MFP configurations */
        pxa3xx_mfp_config(ARRAY_AND_SIZE(littleton_mfp_cfg));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        /*
         * Note: we depend bootloader set the correct
         * value to MSC register for SMC91x.
index d64395f26a3e101d0f8826701da811c4a9e1ae42..1373c22dbb8304eba48ca95a18e28b6ebaf4a2e4 100644 (file)
@@ -455,6 +455,10 @@ static void __init lpd270_init(void)
 {
        pxa2xx_mfp_config(ARRAY_AND_SIZE(lpd270_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        lpd270_flash_data[0].width = (BOOT_DEF & 1) ? 2 : 4;
        lpd270_flash_data[1].width = 4;
 
index c6a94d3fdd61c0c3a13484372434e5f0cacf8954..98ee7e590299adf930086c63f3142a06b40200f7 100644 (file)
@@ -518,6 +518,10 @@ static void __init lubbock_init(void)
 
        pxa2xx_mfp_config(ARRAY_AND_SIZE(lubbock_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        clk_add_alias("SA1111_CLK", NULL, "GPIO11_CLK", NULL);
        pxa_set_udc_info(&udc_info);
        set_pxa_fb_info(&sharp_lm8v31);
index 5360c07f5138fb0af5692f1dcb04f4e76b8cf110..8a38d604dc77a09558583a4460cfefac3fe41f99 100644 (file)
@@ -742,6 +742,10 @@ static void __init magician_init(void)
 
        pxa2xx_mfp_config(ARRAY_AND_SIZE(magician_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        platform_add_devices(ARRAY_AND_SIZE(devices));
 
        err = gpio_request(GPIO83_MAGICIAN_nIR_EN, "nIR_EN");
index a4eeae345e643f92f2c8c77d08fc46deb586db47..851ee0fc32e2faed3b93b26aacb9af8298d39a66 100644 (file)
@@ -576,6 +576,10 @@ static void __init mainstone_init(void)
 
        pxa2xx_mfp_config(ARRAY_AND_SIZE(mainstone_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        mst_flash_data[0].width = (BOOT_DEF & 1) ? 2 : 4;
        mst_flash_data[1].width = 4;
 
index 3cab452e556781526beaa8c38567b5396c4c9ca6..2466a44d8fda3cec1a04c6976c237be3963aecae 100644 (file)
@@ -798,6 +798,9 @@ static void __init mioa701_machine_init(void)
        UP2OCR = UP2OCR_HXOE;
 
        pxa2xx_mfp_config(ARRAY_AND_SIZE(mioa701_pin_config));
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
        mio_gpio_request(ARRAY_AND_SIZE(global_gpios));
        bootstrap_init();
        set_pxa_fb_info(&mioa701_pxafb_info);
index a65713ce019e763caa27a9a5f48f8ee1848d6c4e..6d4503927a760dded47a892847310a03dd6fd058 100644 (file)
@@ -84,6 +84,9 @@ static struct platform_device *devices[] __initdata = {
 static void __init mp900c_init(void)
 {
        printk(KERN_INFO "MobilePro 900/C machine init\n");
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
        platform_add_devices(devices, ARRAY_SIZE(devices));
 }
 
index 1ad029dd44382f63ea04e6b27e3db5ad34165ab8..59140217890a8be8e6bc568ac74cbc5c276e5089 100644 (file)
@@ -530,6 +530,10 @@ static void __init palmld_init(void)
 {
        pxa2xx_mfp_config(ARRAY_AND_SIZE(palmld_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        palmld_pm_init();
        set_pxa_fb_info(&palmld_lcd_screen);
        pxa_set_mci_info(&palmld_mci_platform_data);
index 2dd7ce28556b4962a241fbb5ea085a0cb5b0f297..7f89ca20f13af6f69e6a12c702e764e7df2fd8d2 100644 (file)
@@ -419,6 +419,10 @@ static void __init palmt5_init(void)
 {
        pxa2xx_mfp_config(ARRAY_AND_SIZE(palmt5_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        palmt5_pm_init();
        set_pxa_fb_info(&palmt5_lcd_screen);
        pxa_set_mci_info(&palmt5_mci_platform_data);
index 0b92291a58f61b8c922b57fb4a89848af52129ca..30841759200787187005e45e6e6a0df1893e048f 100644 (file)
@@ -416,6 +416,11 @@ static void __init palmtc_init(void)
 {
        pxa2xx_mfp_config(ARRAY_AND_SIZE(palmtc_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+       pxa_set_hwuart_info(NULL);
+
        set_pxa_fb_info(&palmtc_lcd_screen);
        pxa_set_mci_info(&palmtc_mci_platform_data);
        pxa_set_udc_info(&palmtc_udc_info);
index 277c4062e3c6b8cf399f6afb892398d13d3076d8..265d62bae7de47133570df7bdfd429d28f665dea 100644 (file)
@@ -373,6 +373,10 @@ static void __init palmte2_init(void)
 {
        pxa2xx_mfp_config(ARRAY_AND_SIZE(palmte2_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        set_pxa_fb_info(&palmte2_lcd_screen);
        pxa_set_mci_info(&palmte2_mci_platform_data);
        palmte2_udc_init();
index c071b60ebed879023ac50822332f79b1f71d8e30..606eb7e8a17ea1fd231bec6930eea4a410eed54c 100644 (file)
@@ -653,6 +653,10 @@ static void __init treo_lcd_power_init(void)
 
 static void __init treo_init(void)
 {
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        treo_pm_init();
        pxa2xx_mfp_config(ARRAY_AND_SIZE(treo_pin_config));
        treo_lcd_power_init();
index 76a2b37eaf30baa57fd14b1c9a82a80af26c9469..7bf18c2f002f66939171c7c93f0181055941ac18 100644 (file)
@@ -570,6 +570,10 @@ static void __init palmtx_init(void)
 {
        pxa2xx_mfp_config(ARRAY_AND_SIZE(palmtx_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        palmtx_pm_init();
        set_pxa_fb_info(&palmtx_lcd_screen);
        pxa_set_mci_info(&palmtx_mci_platform_data);
index c2bf493c5f53fe7d91cc4a65742b0fb109ceaaa8..d787ac7cfdd808cac37939c226a1c233ab222915 100644 (file)
@@ -491,6 +491,10 @@ static void __init palmz72_init(void)
 {
        pxa2xx_mfp_config(ARRAY_AND_SIZE(palmz72_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        set_pxa_fb_info(&palmz72_lcd_screen);
        pxa_set_mci_info(&palmz72_mci_platform_data);
        palmz72_udc_init();
index 6abfa2979c61f32732d93ec8e5e258dba465c94e..2190af066470e546a151293801f75b2311ed474c 100644 (file)
@@ -227,6 +227,10 @@ static void __init pcm027_init(void)
 
        pxa2xx_mfp_config(pcm027_pin_config, ARRAY_SIZE(pcm027_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        platform_add_devices(devices, ARRAY_SIZE(devices));
 
        /* at last call the baseboard to initialize itself */
index a186994f77fbf852af09ba646e8215ff8c2c70d0..e5eeb3a62d0177324b6e7d922d79319aaad77011 100644 (file)
@@ -449,6 +449,10 @@ static void __init poodle_init(void)
 
        pxa2xx_mfp_config(ARRAY_AND_SIZE(poodle_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        platform_scoop_config = &poodle_pcmcia_config;
 
        ret = platform_add_devices(devices, ARRAY_SIZE(devices));
index 77c2693cfeef4c811ea553322a32a3e4086245ea..2c1b0b70d01d0520b6b8facecd88c05884c319d6 100644 (file)
@@ -322,9 +322,6 @@ void __init pxa26x_init_irq(void)
 
 static struct platform_device *pxa25x_devices[] __initdata = {
        &pxa25x_device_udc,
-       &pxa_device_ffuart,
-       &pxa_device_btuart,
-       &pxa_device_stuart,
        &pxa_device_i2s,
        &sa1100_device_rtc,
        &pxa25x_device_ssp,
@@ -372,10 +369,8 @@ static int __init pxa25x_init(void)
        }
 
        /* Only add HWUART for PXA255/26x; PXA210/250 do not have it. */
-       if (cpu_is_pxa255()) {
+       if (cpu_is_pxa255())
                clks_register(&pxa25x_hwuart_clkreg, 1);
-               ret = platform_device_register(&pxa_device_hwuart);
-       }
 
        return ret;
 }
index ec68cc16b4e3347631ee427854b99d505e551692..6a0b73167e03b9bc4529c8e73060117f7fc02190 100644 (file)
@@ -364,9 +364,6 @@ void __init pxa27x_set_i2c_power_info(struct i2c_pxa_platform_data *info)
 
 static struct platform_device *devices[] __initdata = {
        &pxa27x_device_udc,
-       &pxa_device_ffuart,
-       &pxa_device_btuart,
-       &pxa_device_stuart,
        &pxa_device_i2s,
        &sa1100_device_rtc,
        &pxa_device_rtc,
index ca536f2b2bf9aedaefe05856d48273839c36a960..3198680626ecbf6e92d909ed89f547895c5d0f25 100644 (file)
@@ -555,9 +555,6 @@ void __init pxa3xx_set_i2c_power_info(struct i2c_pxa_platform_data *info)
 
 static struct platform_device *devices[] __initdata = {
        &pxa27x_device_udc,
-       &pxa_device_ffuart,
-       &pxa_device_btuart,
-       &pxa_device_stuart,
        &pxa_device_i2s,
        &sa1100_device_rtc,
        &pxa_device_rtc,
index 3cccb085b979f426898479588a6a2d16f703c796..115b6f234bdd0e5ae0cc1fd4e3195177605d844d 100644 (file)
@@ -583,6 +583,10 @@ static void __init saar_init(void)
        /* initialize MFP configurations */
        pxa3xx_mfp_config(ARRAY_AND_SIZE(saar_mfp_cfg));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        platform_device_register(&smc91x_device);
        saar_init_onenand();
 
index 3da45d05174398d0b2767f5efc0ab8efa0d6691d..bbd7a855ae2dbdc837b6c2bed763172b4a8207d0 100644 (file)
@@ -768,6 +768,10 @@ static void __init common_init(void)
 
        pxa2xx_mfp_config(ARRAY_AND_SIZE(spitz_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        spitz_init_spi();
 
        platform_add_devices(devices, ARRAY_SIZE(devices));
index 3b205b69f3fb23aacdc3f9883fcc8a298bac972b..a98a434f011163321a6f1b79cc13e36b5159156f 100644 (file)
@@ -760,6 +760,10 @@ static void __init stargate2_init(void)
 
        pxa2xx_mfp_config(ARRAY_AND_SIZE(stargate2_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        /* spi chip selects */
        gpio_direction_output(37, 0);
        gpio_direction_output(24, 0);
index b75353a2ec75ad5398d7f9e5723731952cf22d86..f02dcb5b4e97e53e14212e0b61892abc8f3f3046 100644 (file)
@@ -477,6 +477,10 @@ static void __init tavorevb_init(void)
        /* initialize MFP configurations */
        pxa3xx_mfp_config(ARRAY_AND_SIZE(tavorevb_mfp_cfg));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        platform_device_register(&smc91x_device);
 
        tavorevb_init_lcd();
index e81a52673d49ad0dfb396511ebf2e131f01ec8c0..c854c168a451a4eaa5a7d8e8e053cc0f54f0ef75 100644 (file)
@@ -825,6 +825,11 @@ static void __init tosa_init(void)
        int dummy;
 
        pxa2xx_mfp_config(ARRAY_AND_SIZE(tosa_pin_config));
+
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        gpio_set_wake(MFP_PIN_GPIO1, 1);
        /* We can't pass to gpio-keys since it will drop the Reset altfunc */
 
index 3981e0356d12d21b1d75cf236bd3dd33a233284c..0aa858ebc57345e625b62c9c945b0cf4a9dfd7b6 100644 (file)
@@ -524,6 +524,10 @@ static void __init trizeps4_init(void)
                                        ARRAY_SIZE(trizeps4_devices));
        }
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        if (0)  /* dont know how to determine LCD */
                set_pxa_fb_info(&sharp_lcd);
        else
index d33c232b686cae8e06726f8b134148d5935499ab..6c36bd9f3b55b759a2fa6a5c7b518779b769d671 100644 (file)
@@ -908,6 +908,10 @@ static void __init viper_init(void)
 
        pxa2xx_mfp_config(ARRAY_AND_SIZE(viper_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        /* Wake-up serial console */
        viper_init_serial_gpio();
 
index 3fd79cbb36c81cb8b3637c5bb6e7fbac90511288..d3b4e3f2e033bdea1f0cd726cd73314be23a7e5d 100644 (file)
@@ -165,6 +165,11 @@ static void __init xcep_init(void)
 {
        pxa2xx_mfp_config(ARRAY_AND_SIZE(xcep_pin_config));
 
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+       pxa_set_hwuart_info(NULL);
+
        /* See Intel XScale Developer's Guide for details */
        /* Set RDF and RDN to appropriate values (chip select 3 (smc91x)) */
        MSC1 = (MSC1 & 0xffff) | 0xD5540000;
index 8fcb69411cf7762781a3096fd726d87746e2a837..b66e9e2d06e7ff2e2a5f9fae6752414ed631e80d 100644 (file)
@@ -444,6 +444,10 @@ static inline void zylonite_init_ohci(void) {}
 
 static void __init zylonite_init(void)
 {
+       pxa_set_ffuart_info(NULL);
+       pxa_set_btuart_info(NULL);
+       pxa_set_stuart_info(NULL);
+
        /* board-processor specific initialization */
        zylonite_pxa300_init();
        zylonite_pxa320_init();