ARM: Tegra 2/Tegra 3: Update bluesleep/rfkill registration
Matt Wagner [Wed, 16 Nov 2011 22:33:40 +0000 (14:33 -0800)]
Modifies the bluesleep and rfkill platform driver registration to be more concise
and mirror the style of other similar code.

Change-Id: If5100248d0fe9cf00c1b78acbc72e3f45d173fa9
Signed-off-by: Matt Wagner <mwagner@nvidia.com>
Reviewed-on: http://git-master/r/64601
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>

Rebase-Id: R0ec1bc987d0286bfdff3a5db5ccd142050a38872

arch/arm/mach-tegra/board-cardhu.c
arch/arm/mach-tegra/board-enterprise.c
arch/arm/mach-tegra/board-ventana.c
arch/arm/mach-tegra/board-whistler.c

index c2d9090..a590f96 100644 (file)
@@ -124,7 +124,6 @@ static struct tegra_utmip_config utmi_phy_config[] = {
        },
 };
 
-#ifdef CONFIG_BCM4329_RFKILL
 static struct resource cardhu_bcm4329_rfkill_resources[] = {
        {
                .name   = "bcm4329_nshutdown_gpio",
@@ -141,72 +140,41 @@ static struct platform_device cardhu_bcm4329_rfkill_device = {
        .resource       = cardhu_bcm4329_rfkill_resources,
 };
 
-static noinline void __init cardhu_bt_rfkill(void)
-{
-       platform_device_register(&cardhu_bcm4329_rfkill_device);
+static struct resource cardhu_bluesleep_resources[] = {
+       [0] = {
+               .name = "gpio_host_wake",
+                       .start  = TEGRA_GPIO_PU6,
+                       .end    = TEGRA_GPIO_PU6,
+                       .flags  = IORESOURCE_IO,
+       },
+       [1] = {
+               .name = "gpio_ext_wake",
+                       .start  = TEGRA_GPIO_PU1,
+                       .end    = TEGRA_GPIO_PU1,
+                       .flags  = IORESOURCE_IO,
+       },
+       [2] = {
+               .name = "host_wake",
+                       .start  = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PU6),
+                       .end    = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PU6),
+                       .flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
+       },
+};
 
-       return;
-}
-#else
-static inline void cardhu_bt_rfkill(void) { }
-#endif
+static struct platform_device cardhu_bluesleep_device = {
+       .name           = "bluesleep",
+       .id             = -1,
+       .num_resources  = ARRAY_SIZE(cardhu_bluesleep_resources),
+       .resource       = cardhu_bluesleep_resources,
+};
 
-#ifdef CONFIG_BT_BLUESLEEP
-static noinline void __init tegra_setup_bluesleep(void)
+static noinline void __init cardhu_setup_bluesleep(void)
 {
-       struct platform_device *pdev = NULL;
-       struct resource *res;
-
-       pdev = platform_device_alloc("bluesleep", 0);
-       if (!pdev) {
-               pr_err("unable to allocate platform device for bluesleep");
-               return;
-       }
-
-       res = kzalloc(sizeof(struct resource) * 3, GFP_KERNEL);
-       if (!res) {
-               pr_err("unable to allocate resource for bluesleep\n");
-               goto err_free_dev;
-       }
-
-       res[0].name   = "gpio_host_wake";
-       res[0].start  = TEGRA_GPIO_PU6;
-       res[0].end    = TEGRA_GPIO_PU6;
-       res[0].flags  = IORESOURCE_IO;
-
-       res[1].name   = "gpio_ext_wake";
-       res[1].start  = TEGRA_GPIO_PU1;
-       res[1].end    = TEGRA_GPIO_PU1;
-       res[1].flags  = IORESOURCE_IO;
-
-       res[2].name   = "host_wake";
-       res[2].start  = gpio_to_irq(TEGRA_GPIO_PU6);
-       res[2].end    = gpio_to_irq(TEGRA_GPIO_PU6);
-       res[2].flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE ;
-
-       if (platform_device_add_resources(pdev, res, 3)) {
-               pr_err("unable to add resources to bluesleep device\n");
-               goto err_free_res;
-       }
-
-       if (platform_device_add(pdev)) {
-               pr_err("unable to add bluesleep device\n");
-               goto err_free_res;
-       }
+       platform_device_register(&cardhu_bluesleep_device);
        tegra_gpio_enable(TEGRA_GPIO_PU6);
        tegra_gpio_enable(TEGRA_GPIO_PU1);
-
-return;
-
-err_free_res:
-       kfree(res);
-err_free_dev:
-       platform_device_put(pdev);
        return;
 }
-#else
-static inline void tegra_setup_bluesleep(void) { }
-#endif
 
 static __initdata struct tegra_clk_init_table cardhu_clk_init_table[] = {
        /* name         parent          rate            enabled */
@@ -772,6 +740,7 @@ static struct platform_device *cardhu_devices[] __initdata = {
        &spdif_dit_device,
        &bluetooth_dit_device,
        &baseband_dit_device,
+       &cardhu_bcm4329_rfkill_device,
        &tegra_pcm_device,
        &cardhu_audio_wm8903_device,
        &cardhu_audio_max98095_device,
@@ -1185,8 +1154,7 @@ static void __init tegra_cardhu_init(void)
        cardhu_panel_init();
        cardhu_pmon_init();
        cardhu_sensors_init();
-       cardhu_bt_rfkill();
-       tegra_setup_bluesleep();
+       cardhu_setup_bluesleep();
        cardhu_sata_init();
        //audio_wired_jack_init();
        cardhu_pins_state_init();
index 5a9cc3d..f951580 100644 (file)
@@ -118,7 +118,6 @@ static struct tegra_utmip_config utmi_phy_config[] = {
        },
 };
 
-#ifdef CONFIG_BCM4329_RFKILL
 static struct resource enterprise_bcm4329_rfkill_resources[] = {
        {
                .name   = "bcm4329_nshutdown_gpio",
@@ -135,66 +134,39 @@ static struct platform_device enterprise_bcm4329_rfkill_device = {
        .resource       = enterprise_bcm4329_rfkill_resources,
 };
 
-static noinline void __init enterprise_bt_rfkill(void)
-{
-       platform_device_register(&enterprise_bcm4329_rfkill_device);
+static struct resource enterprise_bluesleep_resources[] = {
+       [0] = {
+               .name = "gpio_host_wake",
+                       .start  = TEGRA_GPIO_PS2,
+                       .end    = TEGRA_GPIO_PS2,
+                       .flags  = IORESOURCE_IO,
+       },
+       [1] = {
+               .name = "gpio_ext_wake",
+                       .start  = TEGRA_GPIO_PE7,
+                       .end    = TEGRA_GPIO_PE7,
+                       .flags  = IORESOURCE_IO,
+       },
+       [2] = {
+               .name = "host_wake",
+                       .start  = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PS2),
+                       .end    = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PS2),
+                       .flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
+       },
+};
 
-       return;
-}
-#else
-static inline void enterprise_bt_rfkill(void) { }
-#endif
+static struct platform_device enterprise_bluesleep_device = {
+       .name           = "bluesleep",
+       .id             = -1,
+       .num_resources  = ARRAY_SIZE(enterprise_bluesleep_resources),
+       .resource       = enterprise_bluesleep_resources,
+};
 
 static void __init enterprise_setup_bluesleep(void)
 {
-       struct platform_device *pdev = NULL;
-       struct resource *res;
-
-       pdev = platform_device_alloc("bluesleep", 0);
-       if (!pdev) {
-               pr_err("unable to allocate platform device for bluesleep");
-               return;
-       }
-
-       res = kzalloc(sizeof(struct resource) * 3, GFP_KERNEL);
-       if (!res) {
-               pr_err("unable to allocate resource for bluesleep\n");
-               goto err_free_dev;
-       }
-
-       res[0].name   = "gpio_host_wake";
-       res[0].start  = TEGRA_GPIO_PS2;
-       res[0].end    = TEGRA_GPIO_PS2;
-       res[0].flags  = IORESOURCE_IO;
-
-       res[1].name   = "gpio_ext_wake";
-       res[1].start  = TEGRA_GPIO_PE7;
-       res[1].end    = TEGRA_GPIO_PE7;
-       res[1].flags  = IORESOURCE_IO;
-
-       res[2].name   = "host_wake";
-       res[2].start  = gpio_to_irq(TEGRA_GPIO_PS2);
-       res[2].end    = gpio_to_irq(TEGRA_GPIO_PS2);
-       res[2].flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE ;
-
-       if (platform_device_add_resources(pdev, res, 3)) {
-               pr_err("unable to add resources to bluesleep device\n");
-               goto err_free_res;
-       }
-
-       if (platform_device_add(pdev)) {
-               pr_err("unable to add bluesleep device\n");
-               goto err_free_res;
-       }
+       platform_device_register(&enterprise_bluesleep_device);
        tegra_gpio_enable(TEGRA_GPIO_PS2);
        tegra_gpio_enable(TEGRA_GPIO_PE7);
-
-       return;
-
-err_free_res:
-       kfree(res);
-err_free_dev:
-       platform_device_put(pdev);
        return;
 }
 
@@ -563,6 +535,7 @@ static struct platform_device *enterprise_devices[] __initdata = {
        &tegra_avp_device,
 #endif
        &tegra_camera,
+       &enterprise_bcm4329_rfkill_device,
        &tegra_spi_device4,
        &tegra_hda_device,
 #if defined(CONFIG_CRYPTO_DEV_TEGRA_SE)
@@ -900,7 +873,6 @@ static void __init tegra_enterprise_init(void)
        enterprise_gps_init();
        enterprise_baseband_init();
        enterprise_panel_init();
-       enterprise_bt_rfkill();
        enterprise_setup_bluesleep();
        enterprise_emc_init();
        enterprise_sensors_init();
index 53fe7c1..461e4b0 100644 (file)
@@ -96,8 +96,6 @@ static struct tegra_ulpi_config ulpi_phy_config = {
        .clk = "cdev2",
 };
 
-#ifdef CONFIG_BCM4329_RFKILL
-
 static struct resource ventana_bcm4329_rfkill_resources[] = {
        {
                .name   = "bcm4329_nshutdown_gpio",
@@ -114,77 +112,49 @@ static struct platform_device ventana_bcm4329_rfkill_device = {
        .resource       = ventana_bcm4329_rfkill_resources,
 };
 
-static noinline void __init ventana_bt_rfkill(void)
+static void __init ventana_bt_rfkill(void)
 {
        /*Add Clock Resource*/
        clk_add_alias("bcm4329_32k_clk", ventana_bcm4329_rfkill_device.name, \
                                "blink", NULL);
-
-       platform_device_register(&ventana_bcm4329_rfkill_device);
-
        return;
 }
-#else
-static inline void ventana_bt_rfkill(void) { }
-#endif
-
-#ifdef CONFIG_BT_BLUESLEEP
-static noinline void __init tegra_setup_bluesleep(void)
-{
-       struct platform_device *pdev = NULL;
-       struct resource *res;
-
-       pdev = platform_device_alloc("bluesleep", 0);
-       if (!pdev) {
-               pr_err("unable to allocate platform device for bluesleep");
-               return;
-       }
 
-       res = kzalloc(sizeof(struct resource) * 3, GFP_KERNEL);
-       if (!res) {
-               pr_err("unable to allocate resource for bluesleep\n");
-               goto err_free_dev;
-       }
-
-       res[0].name   = "gpio_host_wake";
-       res[0].start  = TEGRA_GPIO_PU6;
-       res[0].end    = TEGRA_GPIO_PU6;
-       res[0].flags  = IORESOURCE_IO;
-
-       res[1].name   = "gpio_ext_wake";
-       res[1].start  = TEGRA_GPIO_PU1;
-       res[1].end    = TEGRA_GPIO_PU1;
-       res[1].flags  = IORESOURCE_IO;
-
-       res[2].name   = "host_wake";
-       res[2].start  = gpio_to_irq(TEGRA_GPIO_PU6);
-       res[2].end    = gpio_to_irq(TEGRA_GPIO_PU6);
-       res[2].flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE;
-
-       if (platform_device_add_resources(pdev, res, 3)) {
-               pr_err("unable to add resources to bluesleep device\n");
-               goto err_free_res;
-       }
+static struct resource ventana_bluesleep_resources[] = {
+       [0] = {
+               .name = "gpio_host_wake",
+                       .start  = TEGRA_GPIO_PU6,
+                       .end    = TEGRA_GPIO_PU6,
+                       .flags  = IORESOURCE_IO,
+       },
+       [1] = {
+               .name = "gpio_ext_wake",
+                       .start  = TEGRA_GPIO_PU1,
+                       .end    = TEGRA_GPIO_PU1,
+                       .flags  = IORESOURCE_IO,
+       },
+       [2] = {
+               .name = "host_wake",
+                       .start  = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PU6),
+                       .end    = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PU6),
+                       .flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
+       },
+};
 
-       if (platform_device_add(pdev)) {
-               pr_err("unable to add bluesleep device\n");
-               goto err_free_res;
-       }
+static struct platform_device ventana_bluesleep_device = {
+       .name           = "bluesleep",
+       .id             = -1,
+       .num_resources  = ARRAY_SIZE(ventana_bluesleep_resources),
+       .resource       = ventana_bluesleep_resources,
+};
 
+static void __init ventana_setup_bluesleep(void)
+{
+       platform_device_register(&ventana_bluesleep_device);
        tegra_gpio_enable(TEGRA_GPIO_PU6);
        tegra_gpio_enable(TEGRA_GPIO_PU1);
-
-       return;
-
-err_free_res:
-       kfree(res);
-err_free_dev:
-       platform_device_put(pdev);
        return;
 }
-#else
-static inline void tegra_setup_bluesleep(void) { }
-#endif
 
 static __initdata struct tegra_clk_init_table ventana_clk_init_table[] = {
        /* name         parent          rate            enabled */
@@ -464,6 +434,7 @@ static struct platform_device *ventana_devices[] __initdata = {
        &tegra_das_device,
        &spdif_dit_device,
        &bluetooth_dit_device,
+       &ventana_bcm4329_rfkill_device,
        &tegra_pcm_device,
        &ventana_audio_device,
 };
@@ -639,9 +610,7 @@ static void __init tegra_ventana_init(void)
        ventana_bt_rfkill();
        ventana_emc_init();
 
-#ifdef CONFIG_BT_BLUESLEEP
-       tegra_setup_bluesleep();
-#endif
+       ventana_setup_bluesleep();
        tegra_release_bootloader_fb();
 }
 
index a2caa65..9f95120 100644 (file)
@@ -163,8 +163,6 @@ static void __init whistler_uart_init(void)
                                ARRAY_SIZE(whistler_uart_devices));
 }
 
-#ifdef CONFIG_BCM4329_RFKILL
-
 static struct resource whistler_bcm4329_rfkill_resources[] = {
        {
                .name   = "bcm4329_nshutdown_gpio",
@@ -181,72 +179,41 @@ static struct platform_device whistler_bcm4329_rfkill_device = {
        .resource       = whistler_bcm4329_rfkill_resources,
 };
 
-static noinline void __init whistler_bt_rfkill(void)
-{
-       platform_device_register(&whistler_bcm4329_rfkill_device);
-       return;
-}
-#else
-static inline void whistler_bt_rfkill(void) { }
-#endif
-
-#ifdef CONFIG_BT_BLUESLEEP
-static noinline void __init tegra_setup_bluesleep(void)
-{
-       struct platform_device *pdev = NULL;
-       struct resource *res;
-
-       pdev = platform_device_alloc("bluesleep", 0);
-       if (!pdev) {
-               pr_err("unable to allocate platform device for bluesleep");
-               return;
-       }
-
-       res = kzalloc(sizeof(struct resource) * 3, GFP_KERNEL);
-       if (!res) {
-               pr_err("unable to allocate resource for bluesleep\n");
-               goto err_free_dev;
-       }
-
-       res[0].name   = "gpio_host_wake";
-       res[0].start  = TEGRA_GPIO_PU6;
-       res[0].end    = TEGRA_GPIO_PU6;
-       res[0].flags  = IORESOURCE_IO;
-
-       res[1].name   = "gpio_ext_wake";
-       res[1].start  = TEGRA_GPIO_PU1;
-       res[1].end    = TEGRA_GPIO_PU1;
-       res[1].flags  = IORESOURCE_IO;
-
-       res[2].name   = "host_wake";
-       res[2].start  = gpio_to_irq(TEGRA_GPIO_PU6);
-       res[2].end    = gpio_to_irq(TEGRA_GPIO_PU6);
-       res[2].flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE;
-
-       if (platform_device_add_resources(pdev, res, 3)) {
-               pr_err("unable to add resources to bluesleep device\n");
-               goto err_free_res;
-       }
+static struct resource whistler_bluesleep_resources[] = {
+       [0] = {
+               .name = "gpio_host_wake",
+                       .start  = TEGRA_GPIO_PU6,
+                       .end    = TEGRA_GPIO_PU6,
+                       .flags  = IORESOURCE_IO,
+       },
+       [1] = {
+               .name = "gpio_ext_wake",
+                       .start  = TEGRA_GPIO_PU1,
+                       .end    = TEGRA_GPIO_PU1,
+                       .flags  = IORESOURCE_IO,
+       },
+       [2] = {
+               .name = "host_wake",
+                       .start  = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PU6),
+                       .end    = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PU6),
+                       .flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
+       },
+};
 
-       if (platform_device_add(pdev)) {
-               pr_err("unable to add bluesleep device\n");
-               goto err_free_res;
-       }
+static struct platform_device whistler_bluesleep_device = {
+       .name           = "bluesleep",
+       .id             = -1,
+       .num_resources  = ARRAY_SIZE(whistler_bluesleep_resources),
+       .resource       = whistler_bluesleep_resources,
+};
 
+static void __init whistler_setup_bluesleep(void)
+{
+       platform_device_register(&whistler_bluesleep_device);
        tegra_gpio_enable(TEGRA_GPIO_PU6);
        tegra_gpio_enable(TEGRA_GPIO_PU1);
-
-       return;
-
-err_free_res:
-       kfree(res);
-err_free_dev:
-       platform_device_put(pdev);
        return;
 }
-#else
-static inline void tegra_setup_bluesleep(void) { }
-#endif
 
 static struct tegra_utmip_config utmi_phy_config[] = {
        [0] = {
@@ -441,6 +408,7 @@ static struct platform_device *whistler_devices[] __initdata = {
        &tegra_das_device,
        &spdif_dit_device,
        &bluetooth_dit_device,
+       &whistler_bcm4329_rfkill_device,
        &tegra_pcm_device,
        &whistler_audio_device1,
        &whistler_audio_device2,
@@ -549,15 +517,12 @@ static void __init tegra_whistler_init(void)
        whistler_sensors_init();
        whistler_touch_init();
        whistler_kbc_init();
-       whistler_bt_rfkill();
        whistler_gps_init();
        whistler_usb_init();
        whistler_scroll_init();
        whistler_emc_init();
        whistler_baseband_init();
-#ifdef CONFIG_BT_BLUESLEEP
-       tegra_setup_bluesleep();
-#endif
+       whistler_setup_bluesleep();
        tegra_release_bootloader_fb();
 }