diff options
Diffstat (limited to 'arch/arm/mach-tegra/board-paz00.c')
-rw-r--r-- | arch/arm/mach-tegra/board-paz00.c | 64 |
1 files changed, 61 insertions, 3 deletions
diff --git a/arch/arm/mach-tegra/board-paz00.c b/arch/arm/mach-tegra/board-paz00.c index fbc9e0ed926e..55c55ba89f1e 100644 --- a/arch/arm/mach-tegra/board-paz00.c +++ b/arch/arm/mach-tegra/board-paz00.c | |||
@@ -26,6 +26,8 @@ | |||
26 | #include <linux/pda_power.h> | 26 | #include <linux/pda_power.h> |
27 | #include <linux/io.h> | 27 | #include <linux/io.h> |
28 | #include <linux/i2c.h> | 28 | #include <linux/i2c.h> |
29 | #include <linux/gpio.h> | ||
30 | #include <linux/rfkill-gpio.h> | ||
29 | 31 | ||
30 | #include <asm/mach-types.h> | 32 | #include <asm/mach-types.h> |
31 | #include <asm/mach/arch.h> | 33 | #include <asm/mach/arch.h> |
@@ -35,7 +37,6 @@ | |||
35 | #include <mach/iomap.h> | 37 | #include <mach/iomap.h> |
36 | #include <mach/irqs.h> | 38 | #include <mach/irqs.h> |
37 | #include <mach/sdhci.h> | 39 | #include <mach/sdhci.h> |
38 | #include <mach/gpio.h> | ||
39 | 40 | ||
40 | #include "board.h" | 41 | #include "board.h" |
41 | #include "board-paz00.h" | 42 | #include "board-paz00.h" |
@@ -45,10 +46,22 @@ | |||
45 | 46 | ||
46 | static struct plat_serial8250_port debug_uart_platform_data[] = { | 47 | static struct plat_serial8250_port debug_uart_platform_data[] = { |
47 | { | 48 | { |
49 | /* serial port on JP1 */ | ||
50 | .membase = IO_ADDRESS(TEGRA_UARTA_BASE), | ||
51 | .mapbase = TEGRA_UARTA_BASE, | ||
52 | .irq = INT_UARTA, | ||
53 | .flags = UPF_BOOT_AUTOCONF | UPF_FIXED_TYPE, | ||
54 | .type = PORT_TEGRA, | ||
55 | .iotype = UPIO_MEM, | ||
56 | .regshift = 2, | ||
57 | .uartclk = 216000000, | ||
58 | }, { | ||
59 | /* serial port on mini-pcie */ | ||
48 | .membase = IO_ADDRESS(TEGRA_UARTD_BASE), | 60 | .membase = IO_ADDRESS(TEGRA_UARTD_BASE), |
49 | .mapbase = TEGRA_UARTD_BASE, | 61 | .mapbase = TEGRA_UARTD_BASE, |
50 | .irq = INT_UARTD, | 62 | .irq = INT_UARTD, |
51 | .flags = UPF_BOOT_AUTOCONF, | 63 | .flags = UPF_BOOT_AUTOCONF | UPF_FIXED_TYPE, |
64 | .type = PORT_TEGRA, | ||
52 | .iotype = UPIO_MEM, | 65 | .iotype = UPIO_MEM, |
53 | .regshift = 2, | 66 | .regshift = 2, |
54 | .uartclk = 216000000, | 67 | .uartclk = 216000000, |
@@ -65,10 +78,48 @@ static struct platform_device debug_uart = { | |||
65 | }, | 78 | }, |
66 | }; | 79 | }; |
67 | 80 | ||
81 | static struct rfkill_gpio_platform_data wifi_rfkill_platform_data = { | ||
82 | .name = "wifi_rfkill", | ||
83 | .reset_gpio = TEGRA_WIFI_RST, | ||
84 | .shutdown_gpio = TEGRA_WIFI_PWRN, | ||
85 | .type = RFKILL_TYPE_WLAN, | ||
86 | }; | ||
87 | |||
88 | static struct platform_device wifi_rfkill_device = { | ||
89 | .name = "rfkill_gpio", | ||
90 | .id = -1, | ||
91 | .dev = { | ||
92 | .platform_data = &wifi_rfkill_platform_data, | ||
93 | }, | ||
94 | }; | ||
95 | |||
96 | static struct gpio_led gpio_leds[] = { | ||
97 | { | ||
98 | .name = "wifi-led", | ||
99 | .default_trigger = "rfkill0", | ||
100 | .gpio = TEGRA_WIFI_LED, | ||
101 | }, | ||
102 | }; | ||
103 | |||
104 | static struct gpio_led_platform_data gpio_led_info = { | ||
105 | .leds = gpio_leds, | ||
106 | .num_leds = ARRAY_SIZE(gpio_leds), | ||
107 | }; | ||
108 | |||
109 | static struct platform_device leds_gpio = { | ||
110 | .name = "leds-gpio", | ||
111 | .id = -1, | ||
112 | .dev = { | ||
113 | .platform_data = &gpio_led_info, | ||
114 | }, | ||
115 | }; | ||
116 | |||
68 | static struct platform_device *paz00_devices[] __initdata = { | 117 | static struct platform_device *paz00_devices[] __initdata = { |
69 | &debug_uart, | 118 | &debug_uart, |
70 | &tegra_sdhci_device1, | ||
71 | &tegra_sdhci_device4, | 119 | &tegra_sdhci_device4, |
120 | &tegra_sdhci_device1, | ||
121 | &wifi_rfkill_device, | ||
122 | &leds_gpio, | ||
72 | }; | 123 | }; |
73 | 124 | ||
74 | static void paz00_i2c_init(void) | 125 | static void paz00_i2c_init(void) |
@@ -94,7 +145,14 @@ static void __init tegra_paz00_fixup(struct tag *tags, char **cmdline, | |||
94 | 145 | ||
95 | static __initdata struct tegra_clk_init_table paz00_clk_init_table[] = { | 146 | static __initdata struct tegra_clk_init_table paz00_clk_init_table[] = { |
96 | /* name parent rate enabled */ | 147 | /* name parent rate enabled */ |
148 | { "uarta", "pll_p", 216000000, true }, | ||
97 | { "uartd", "pll_p", 216000000, true }, | 149 | { "uartd", "pll_p", 216000000, true }, |
150 | |||
151 | { "pll_p_out4", "pll_p", 24000000, true }, | ||
152 | { "usbd", "clk_m", 12000000, false }, | ||
153 | { "usb2", "clk_m", 12000000, false }, | ||
154 | { "usb3", "clk_m", 12000000, false }, | ||
155 | |||
98 | { NULL, NULL, 0, 0}, | 156 | { NULL, NULL, 0, 0}, |
99 | }; | 157 | }; |
100 | 158 | ||