]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ARM: tegra: paz00: enable WiFi rfkill when booting from device tree
authorStephen Warren <swarren@nvidia.com>
Wed, 2 May 2012 22:05:44 +0000 (16:05 -0600)
committerStephen Warren <swarren@nvidia.com>
Wed, 20 Jun 2012 18:37:42 +0000 (12:37 -0600)
There currently aren't bindings for a WiFi rfkill button, and defining
a good binding is non-trivial. Manually register this "device" when
booting from device tree, in order to bring DT support to the same
feature level as board files, which will in turn allow board files to be
deprecated.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
arch/arm/mach-tegra/board-dt-tegra20.c
arch/arm/mach-tegra/board-paz00.c
arch/arm/mach-tegra/board.h

index 777138611c77ef24c8cc0d6455d02554dace83e0..8b4e6e1f0f7b30ffd7b97a89658fc49dee529213 100644 (file)
@@ -126,6 +126,13 @@ static void __init harmony_init(void)
 }
 #endif
 
+#ifdef CONFIG_MACH_PAZ00
+static void __init paz00_init(void)
+{
+       tegra_paz00_wifikill_init();
+}
+#endif
+
 static struct {
        char *machine;
        void (*init)(void);
@@ -136,6 +143,9 @@ static struct {
 #ifdef CONFIG_MACH_HARMONY
        { "nvidia,harmony", harmony_init },
 #endif
+#ifdef CONFIG_MACH_PAZ00
+       { "compal,paz00", paz00_init },
+#endif
 };
 
 static void __init tegra_dt_init_late(void)
index bbc1907e98a69875144b32e367629a9f8b2739f9..4b64af5cab27bdbbb4251053c1ae9e702b1fbcb3 100644 (file)
@@ -148,7 +148,6 @@ static struct platform_device *paz00_devices[] __initdata = {
        &debug_uart,
        &tegra_sdhci_device4,
        &tegra_sdhci_device1,
-       &wifi_rfkill_device,
        &leds_gpio,
        &gpio_keys_device,
 };
@@ -201,6 +200,11 @@ static struct tegra_sdhci_platform_data sdhci_pdata4 = {
        .is_8bit        = 1,
 };
 
+void __init tegra_paz00_wifikill_init(void)
+{
+       platform_device_register(&wifi_rfkill_device);
+}
+
 static void __init tegra_paz00_init(void)
 {
        tegra_clk_init_from_table(paz00_clk_init_table);
@@ -211,6 +215,7 @@ static void __init tegra_paz00_init(void)
        tegra_sdhci_device4.dev.platform_data = &sdhci_pdata4;
 
        platform_add_devices(paz00_devices, ARRAY_SIZE(paz00_devices));
+       tegra_paz00_wifikill_init();
 
        paz00_i2c_init();
        paz00_usb_init();
index 097e0e16eacdfd0311ce56f8705aafd48b22e879..f88e5143c767989e7cc8e634635d858055f9de61 100644 (file)
@@ -53,5 +53,7 @@ int __init harmony_pcie_init(void);
 static inline int harmony_pcie_init(void) { return 0; }
 #endif
 
+void __init tegra_paz00_wifikill_init(void);
+
 extern struct sys_timer tegra_timer;
 #endif