diff options
Diffstat (limited to 'arch/arm/mach-tegra')
-rw-r--r-- | arch/arm/mach-tegra/board-harmony.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-paz00-pinmux.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-paz00.c | 64 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-paz00.h | 8 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-seaboard-pinmux.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-seaboard.c | 81 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-seaboard.h | 12 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-trimslice.c | 4 |
8 files changed, 170 insertions, 13 deletions
diff --git a/arch/arm/mach-tegra/board-harmony.c b/arch/arm/mach-tegra/board-harmony.c index 93c793f48ca..f0bdc5e3fe5 100644 --- a/arch/arm/mach-tegra/board-harmony.c +++ b/arch/arm/mach-tegra/board-harmony.c | |||
@@ -49,7 +49,8 @@ static struct plat_serial8250_port debug_uart_platform_data[] = { | |||
49 | .membase = IO_ADDRESS(TEGRA_UARTD_BASE), | 49 | .membase = IO_ADDRESS(TEGRA_UARTD_BASE), |
50 | .mapbase = TEGRA_UARTD_BASE, | 50 | .mapbase = TEGRA_UARTD_BASE, |
51 | .irq = INT_UARTD, | 51 | .irq = INT_UARTD, |
52 | .flags = UPF_BOOT_AUTOCONF, | 52 | .flags = UPF_BOOT_AUTOCONF | UPF_FIXED_TYPE, |
53 | .type = PORT_TEGRA, | ||
53 | .iotype = UPIO_MEM, | 54 | .iotype = UPIO_MEM, |
54 | .regshift = 2, | 55 | .regshift = 2, |
55 | .uartclk = 216000000, | 56 | .uartclk = 216000000, |
@@ -117,6 +118,7 @@ static struct platform_device *harmony_devices[] __initdata = { | |||
117 | &tegra_sdhci_device1, | 118 | &tegra_sdhci_device1, |
118 | &tegra_sdhci_device2, | 119 | &tegra_sdhci_device2, |
119 | &tegra_sdhci_device4, | 120 | &tegra_sdhci_device4, |
121 | &tegra_ehci3_device, | ||
120 | &tegra_i2s_device1, | 122 | &tegra_i2s_device1, |
121 | &tegra_das_device, | 123 | &tegra_das_device, |
122 | &tegra_pcm_device, | 124 | &tegra_pcm_device, |
@@ -140,6 +142,7 @@ static __initdata struct tegra_clk_init_table harmony_clk_init_table[] = { | |||
140 | { "pll_a_out0", "pll_a", 11289600, true }, | 142 | { "pll_a_out0", "pll_a", 11289600, true }, |
141 | { "cdev1", NULL, 0, true }, | 143 | { "cdev1", NULL, 0, true }, |
142 | { "i2s1", "pll_a_out0", 11289600, false}, | 144 | { "i2s1", "pll_a_out0", 11289600, false}, |
145 | { "usb3", "clk_m", 12000000, true }, | ||
143 | { NULL, NULL, 0, 0}, | 146 | { NULL, NULL, 0, 0}, |
144 | }; | 147 | }; |
145 | 148 | ||
diff --git a/arch/arm/mach-tegra/board-paz00-pinmux.c b/arch/arm/mach-tegra/board-paz00-pinmux.c index bdd2627dd87..22257697d3e 100644 --- a/arch/arm/mach-tegra/board-paz00-pinmux.c +++ b/arch/arm/mach-tegra/board-paz00-pinmux.c | |||
@@ -145,6 +145,9 @@ static struct tegra_gpio_table gpio_table[] = { | |||
145 | { .gpio = TEGRA_GPIO_SD1_WP, .enable = true }, | 145 | { .gpio = TEGRA_GPIO_SD1_WP, .enable = true }, |
146 | { .gpio = TEGRA_GPIO_SD1_POWER, .enable = true }, | 146 | { .gpio = TEGRA_GPIO_SD1_POWER, .enable = true }, |
147 | { .gpio = TEGRA_ULPI_RST, .enable = true }, | 147 | { .gpio = TEGRA_ULPI_RST, .enable = true }, |
148 | { .gpio = TEGRA_WIFI_PWRN, .enable = true }, | ||
149 | { .gpio = TEGRA_WIFI_RST, .enable = true }, | ||
150 | { .gpio = TEGRA_WIFI_LED, .enable = true }, | ||
148 | }; | 151 | }; |
149 | 152 | ||
150 | void paz00_pinmux_init(void) | 153 | void paz00_pinmux_init(void) |
diff --git a/arch/arm/mach-tegra/board-paz00.c b/arch/arm/mach-tegra/board-paz00.c index fbc9e0ed926..55c55ba89f1 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 | ||
diff --git a/arch/arm/mach-tegra/board-paz00.h b/arch/arm/mach-tegra/board-paz00.h index 42ce8639b90..8aff06eb58c 100644 --- a/arch/arm/mach-tegra/board-paz00.h +++ b/arch/arm/mach-tegra/board-paz00.h | |||
@@ -19,11 +19,19 @@ | |||
19 | 19 | ||
20 | #include <mach/gpio-tegra.h> | 20 | #include <mach/gpio-tegra.h> |
21 | 21 | ||
22 | /* SDCARD */ | ||
22 | #define TEGRA_GPIO_SD1_CD TEGRA_GPIO_PV5 | 23 | #define TEGRA_GPIO_SD1_CD TEGRA_GPIO_PV5 |
23 | #define TEGRA_GPIO_SD1_WP TEGRA_GPIO_PH1 | 24 | #define TEGRA_GPIO_SD1_WP TEGRA_GPIO_PH1 |
24 | #define TEGRA_GPIO_SD1_POWER TEGRA_GPIO_PT3 | 25 | #define TEGRA_GPIO_SD1_POWER TEGRA_GPIO_PT3 |
26 | |||
27 | /* ULPI */ | ||
25 | #define TEGRA_ULPI_RST TEGRA_GPIO_PV0 | 28 | #define TEGRA_ULPI_RST TEGRA_GPIO_PV0 |
26 | 29 | ||
30 | /* WIFI */ | ||
31 | #define TEGRA_WIFI_PWRN TEGRA_GPIO_PK5 | ||
32 | #define TEGRA_WIFI_RST TEGRA_GPIO_PD1 | ||
33 | #define TEGRA_WIFI_LED TEGRA_GPIO_PD0 | ||
34 | |||
27 | void paz00_pinmux_init(void); | 35 | void paz00_pinmux_init(void); |
28 | 36 | ||
29 | #endif | 37 | #endif |
diff --git a/arch/arm/mach-tegra/board-seaboard-pinmux.c b/arch/arm/mach-tegra/board-seaboard-pinmux.c index 0bda495e974..74f78b7e3f1 100644 --- a/arch/arm/mach-tegra/board-seaboard-pinmux.c +++ b/arch/arm/mach-tegra/board-seaboard-pinmux.c | |||
@@ -49,7 +49,7 @@ static __initdata struct tegra_pingroup_config seaboard_pinmux[] = { | |||
49 | {TEGRA_PINGROUP_CRTP, TEGRA_MUX_CRT, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, | 49 | {TEGRA_PINGROUP_CRTP, TEGRA_MUX_CRT, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, |
50 | {TEGRA_PINGROUP_CSUS, TEGRA_MUX_VI_SENSOR_CLK, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, | 50 | {TEGRA_PINGROUP_CSUS, TEGRA_MUX_VI_SENSOR_CLK, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, |
51 | {TEGRA_PINGROUP_DAP1, TEGRA_MUX_DAP1, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, | 51 | {TEGRA_PINGROUP_DAP1, TEGRA_MUX_DAP1, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, |
52 | {TEGRA_PINGROUP_DAP2, TEGRA_MUX_DAP2, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, | 52 | {TEGRA_PINGROUP_DAP2, TEGRA_MUX_DAP2, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, |
53 | {TEGRA_PINGROUP_DAP3, TEGRA_MUX_DAP3, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, | 53 | {TEGRA_PINGROUP_DAP3, TEGRA_MUX_DAP3, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, |
54 | {TEGRA_PINGROUP_DAP4, TEGRA_MUX_DAP4, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, | 54 | {TEGRA_PINGROUP_DAP4, TEGRA_MUX_DAP4, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, |
55 | {TEGRA_PINGROUP_DDC, TEGRA_MUX_RSVD2, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, | 55 | {TEGRA_PINGROUP_DDC, TEGRA_MUX_RSVD2, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, |
@@ -133,7 +133,7 @@ static __initdata struct tegra_pingroup_config seaboard_pinmux[] = { | |||
133 | {TEGRA_PINGROUP_SPDO, TEGRA_MUX_RSVD2, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, | 133 | {TEGRA_PINGROUP_SPDO, TEGRA_MUX_RSVD2, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, |
134 | {TEGRA_PINGROUP_SPIA, TEGRA_MUX_GMI, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, | 134 | {TEGRA_PINGROUP_SPIA, TEGRA_MUX_GMI, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, |
135 | {TEGRA_PINGROUP_SPIB, TEGRA_MUX_GMI, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, | 135 | {TEGRA_PINGROUP_SPIB, TEGRA_MUX_GMI, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, |
136 | {TEGRA_PINGROUP_SPIC, TEGRA_MUX_GMI, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, | 136 | {TEGRA_PINGROUP_SPIC, TEGRA_MUX_GMI, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, |
137 | {TEGRA_PINGROUP_SPID, TEGRA_MUX_SPI1, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, | 137 | {TEGRA_PINGROUP_SPID, TEGRA_MUX_SPI1, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, |
138 | {TEGRA_PINGROUP_SPIE, TEGRA_MUX_SPI1, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, | 138 | {TEGRA_PINGROUP_SPIE, TEGRA_MUX_SPI1, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, |
139 | {TEGRA_PINGROUP_SPIF, TEGRA_MUX_SPI1, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, | 139 | {TEGRA_PINGROUP_SPIF, TEGRA_MUX_SPI1, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE}, |
@@ -167,6 +167,8 @@ static struct tegra_gpio_table gpio_table[] = { | |||
167 | { .gpio = TEGRA_GPIO_LIDSWITCH, .enable = true }, | 167 | { .gpio = TEGRA_GPIO_LIDSWITCH, .enable = true }, |
168 | { .gpio = TEGRA_GPIO_POWERKEY, .enable = true }, | 168 | { .gpio = TEGRA_GPIO_POWERKEY, .enable = true }, |
169 | { .gpio = TEGRA_GPIO_ISL29018_IRQ, .enable = true }, | 169 | { .gpio = TEGRA_GPIO_ISL29018_IRQ, .enable = true }, |
170 | { .gpio = TEGRA_GPIO_CDC_IRQ, .enable = true }, | ||
171 | { .gpio = TEGRA_GPIO_USB1, .enable = true }, | ||
170 | }; | 172 | }; |
171 | 173 | ||
172 | void __init seaboard_pinmux_init(void) | 174 | void __init seaboard_pinmux_init(void) |
diff --git a/arch/arm/mach-tegra/board-seaboard.c b/arch/arm/mach-tegra/board-seaboard.c index 9e98ac706f4..bf13ea355ef 100644 --- a/arch/arm/mach-tegra/board-seaboard.c +++ b/arch/arm/mach-tegra/board-seaboard.c | |||
@@ -25,9 +25,12 @@ | |||
25 | #include <linux/gpio.h> | 25 | #include <linux/gpio.h> |
26 | #include <linux/gpio_keys.h> | 26 | #include <linux/gpio_keys.h> |
27 | 27 | ||
28 | #include <sound/wm8903.h> | ||
29 | |||
28 | #include <mach/iomap.h> | 30 | #include <mach/iomap.h> |
29 | #include <mach/irqs.h> | 31 | #include <mach/irqs.h> |
30 | #include <mach/sdhci.h> | 32 | #include <mach/sdhci.h> |
33 | #include <mach/tegra_wm8903_pdata.h> | ||
31 | 34 | ||
32 | #include <asm/mach-types.h> | 35 | #include <asm/mach-types.h> |
33 | #include <asm/mach/arch.h> | 36 | #include <asm/mach/arch.h> |
@@ -41,7 +44,8 @@ | |||
41 | static struct plat_serial8250_port debug_uart_platform_data[] = { | 44 | static struct plat_serial8250_port debug_uart_platform_data[] = { |
42 | { | 45 | { |
43 | /* Memory and IRQ filled in before registration */ | 46 | /* Memory and IRQ filled in before registration */ |
44 | .flags = UPF_BOOT_AUTOCONF, | 47 | .flags = UPF_BOOT_AUTOCONF | UPF_FIXED_TYPE, |
48 | .type = PORT_TEGRA, | ||
45 | .iotype = UPIO_MEM, | 49 | .iotype = UPIO_MEM, |
46 | .regshift = 2, | 50 | .regshift = 2, |
47 | .uartclk = 216000000, | 51 | .uartclk = 216000000, |
@@ -62,6 +66,12 @@ static __initdata struct tegra_clk_init_table seaboard_clk_init_table[] = { | |||
62 | /* name parent rate enabled */ | 66 | /* name parent rate enabled */ |
63 | { "uartb", "pll_p", 216000000, true}, | 67 | { "uartb", "pll_p", 216000000, true}, |
64 | { "uartd", "pll_p", 216000000, true}, | 68 | { "uartd", "pll_p", 216000000, true}, |
69 | { "pll_a", "pll_p_out1", 56448000, true }, | ||
70 | { "pll_a_out0", "pll_a", 11289600, true }, | ||
71 | { "cdev1", NULL, 0, true }, | ||
72 | { "i2s1", "pll_a_out0", 11289600, false}, | ||
73 | { "usbd", "clk_m", 12000000, true}, | ||
74 | { "usb3", "clk_m", 12000000, true}, | ||
65 | { NULL, NULL, 0, 0}, | 75 | { NULL, NULL, 0, 0}, |
66 | }; | 76 | }; |
67 | 77 | ||
@@ -117,6 +127,22 @@ static struct tegra_sdhci_platform_data sdhci_pdata4 = { | |||
117 | .is_8bit = 1, | 127 | .is_8bit = 1, |
118 | }; | 128 | }; |
119 | 129 | ||
130 | static struct tegra_wm8903_platform_data seaboard_audio_pdata = { | ||
131 | .gpio_spkr_en = TEGRA_GPIO_SPKR_EN, | ||
132 | .gpio_hp_det = TEGRA_GPIO_HP_DET, | ||
133 | .gpio_hp_mute = -1, | ||
134 | .gpio_int_mic_en = -1, | ||
135 | .gpio_ext_mic_en = -1, | ||
136 | }; | ||
137 | |||
138 | static struct platform_device seaboard_audio_device = { | ||
139 | .name = "tegra-snd-wm8903", | ||
140 | .id = 0, | ||
141 | .dev = { | ||
142 | .platform_data = &seaboard_audio_pdata, | ||
143 | }, | ||
144 | }; | ||
145 | |||
120 | static struct platform_device *seaboard_devices[] __initdata = { | 146 | static struct platform_device *seaboard_devices[] __initdata = { |
121 | &debug_uart, | 147 | &debug_uart, |
122 | &tegra_pmu_device, | 148 | &tegra_pmu_device, |
@@ -124,6 +150,10 @@ static struct platform_device *seaboard_devices[] __initdata = { | |||
124 | &tegra_sdhci_device3, | 150 | &tegra_sdhci_device3, |
125 | &tegra_sdhci_device1, | 151 | &tegra_sdhci_device1, |
126 | &seaboard_gpio_keys_device, | 152 | &seaboard_gpio_keys_device, |
153 | &tegra_i2s_device1, | ||
154 | &tegra_das_device, | ||
155 | &tegra_pcm_device, | ||
156 | &seaboard_audio_device, | ||
127 | }; | 157 | }; |
128 | 158 | ||
129 | static struct i2c_board_info __initdata isl29018_device = { | 159 | static struct i2c_board_info __initdata isl29018_device = { |
@@ -135,12 +165,56 @@ static struct i2c_board_info __initdata adt7461_device = { | |||
135 | I2C_BOARD_INFO("adt7461", 0x4c), | 165 | I2C_BOARD_INFO("adt7461", 0x4c), |
136 | }; | 166 | }; |
137 | 167 | ||
168 | static struct wm8903_platform_data wm8903_pdata = { | ||
169 | .irq_active_low = 0, | ||
170 | .micdet_cfg = 0, | ||
171 | .micdet_delay = 100, | ||
172 | .gpio_base = SEABOARD_GPIO_WM8903(0), | ||
173 | .gpio_cfg = { | ||
174 | WM8903_GPIO_NO_CONFIG, | ||
175 | WM8903_GPIO_NO_CONFIG, | ||
176 | 0, | ||
177 | WM8903_GPIO_NO_CONFIG, | ||
178 | WM8903_GPIO_NO_CONFIG, | ||
179 | }, | ||
180 | }; | ||
181 | |||
182 | static struct i2c_board_info __initdata wm8903_device = { | ||
183 | I2C_BOARD_INFO("wm8903", 0x1a), | ||
184 | .platform_data = &wm8903_pdata, | ||
185 | .irq = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_CDC_IRQ), | ||
186 | }; | ||
187 | |||
188 | static int seaboard_ehci_init(void) | ||
189 | { | ||
190 | int gpio_status; | ||
191 | |||
192 | gpio_status = gpio_request(TEGRA_GPIO_USB1, "VBUS_USB1"); | ||
193 | if (gpio_status < 0) { | ||
194 | pr_err("VBUS_USB1 request GPIO FAILED\n"); | ||
195 | WARN_ON(1); | ||
196 | } | ||
197 | |||
198 | gpio_status = gpio_direction_output(TEGRA_GPIO_USB1, 1); | ||
199 | if (gpio_status < 0) { | ||
200 | pr_err("VBUS_USB1 request GPIO DIRECTION FAILED\n"); | ||
201 | WARN_ON(1); | ||
202 | } | ||
203 | gpio_set_value(TEGRA_GPIO_USB1, 1); | ||
204 | |||
205 | platform_device_register(&tegra_ehci1_device); | ||
206 | platform_device_register(&tegra_ehci3_device); | ||
207 | |||
208 | return 0; | ||
209 | } | ||
210 | |||
138 | static void __init seaboard_i2c_init(void) | 211 | static void __init seaboard_i2c_init(void) |
139 | { | 212 | { |
140 | gpio_request(TEGRA_GPIO_ISL29018_IRQ, "isl29018"); | 213 | gpio_request(TEGRA_GPIO_ISL29018_IRQ, "isl29018"); |
141 | gpio_direction_input(TEGRA_GPIO_ISL29018_IRQ); | 214 | gpio_direction_input(TEGRA_GPIO_ISL29018_IRQ); |
142 | 215 | ||
143 | i2c_register_board_info(0, &isl29018_device, 1); | 216 | i2c_register_board_info(0, &isl29018_device, 1); |
217 | i2c_register_board_info(0, &wm8903_device, 1); | ||
144 | 218 | ||
145 | i2c_register_board_info(3, &adt7461_device, 1); | 219 | i2c_register_board_info(3, &adt7461_device, 1); |
146 | 220 | ||
@@ -161,6 +235,8 @@ static void __init seaboard_common_init(void) | |||
161 | tegra_sdhci_device4.dev.platform_data = &sdhci_pdata4; | 235 | tegra_sdhci_device4.dev.platform_data = &sdhci_pdata4; |
162 | 236 | ||
163 | platform_add_devices(seaboard_devices, ARRAY_SIZE(seaboard_devices)); | 237 | platform_add_devices(seaboard_devices, ARRAY_SIZE(seaboard_devices)); |
238 | |||
239 | seaboard_ehci_init(); | ||
164 | } | 240 | } |
165 | 241 | ||
166 | static void __init tegra_seaboard_init(void) | 242 | static void __init tegra_seaboard_init(void) |
@@ -182,6 +258,9 @@ static void __init tegra_kaen_init(void) | |||
182 | debug_uart_platform_data[0].mapbase = TEGRA_UARTB_BASE; | 258 | debug_uart_platform_data[0].mapbase = TEGRA_UARTB_BASE; |
183 | debug_uart_platform_data[0].irq = INT_UARTB; | 259 | debug_uart_platform_data[0].irq = INT_UARTB; |
184 | 260 | ||
261 | seaboard_audio_pdata.gpio_hp_mute = TEGRA_GPIO_KAEN_HP_MUTE; | ||
262 | tegra_gpio_enable(TEGRA_GPIO_KAEN_HP_MUTE); | ||
263 | |||
185 | seaboard_common_init(); | 264 | seaboard_common_init(); |
186 | 265 | ||
187 | seaboard_i2c_init(); | 266 | seaboard_i2c_init(); |
diff --git a/arch/arm/mach-tegra/board-seaboard.h b/arch/arm/mach-tegra/board-seaboard.h index 15b6c57361b..4c45d4ca3c4 100644 --- a/arch/arm/mach-tegra/board-seaboard.h +++ b/arch/arm/mach-tegra/board-seaboard.h | |||
@@ -19,6 +19,9 @@ | |||
19 | 19 | ||
20 | #include <mach/gpio-tegra.h> | 20 | #include <mach/gpio-tegra.h> |
21 | 21 | ||
22 | #define SEABOARD_GPIO_TPS6586X(_x_) (TEGRA_NR_GPIOS + (_x_)) | ||
23 | #define SEABOARD_GPIO_WM8903(_x_) (SEABOARD_GPIO_TPS6586X(4) + (_x_)) | ||
24 | |||
22 | #define TEGRA_GPIO_SD2_CD TEGRA_GPIO_PI5 | 25 | #define TEGRA_GPIO_SD2_CD TEGRA_GPIO_PI5 |
23 | #define TEGRA_GPIO_SD2_WP TEGRA_GPIO_PH1 | 26 | #define TEGRA_GPIO_SD2_WP TEGRA_GPIO_PH1 |
24 | #define TEGRA_GPIO_SD2_POWER TEGRA_GPIO_PI6 | 27 | #define TEGRA_GPIO_SD2_POWER TEGRA_GPIO_PI6 |
@@ -33,10 +36,11 @@ | |||
33 | #define TEGRA_GPIO_MAGNETOMETER TEGRA_GPIO_PN5 | 36 | #define TEGRA_GPIO_MAGNETOMETER TEGRA_GPIO_PN5 |
34 | #define TEGRA_GPIO_ISL29018_IRQ TEGRA_GPIO_PZ2 | 37 | #define TEGRA_GPIO_ISL29018_IRQ TEGRA_GPIO_PZ2 |
35 | #define TEGRA_GPIO_AC_ONLINE TEGRA_GPIO_PV3 | 38 | #define TEGRA_GPIO_AC_ONLINE TEGRA_GPIO_PV3 |
36 | 39 | #define TEGRA_GPIO_WWAN_PWR SEABOARD_GPIO_TPS6586X(2) | |
37 | #define TPS_GPIO_BASE TEGRA_NR_GPIOS | 40 | #define TEGRA_GPIO_CDC_IRQ TEGRA_GPIO_PX3 |
38 | 41 | #define TEGRA_GPIO_SPKR_EN SEABOARD_GPIO_WM8903(2) | |
39 | #define TPS_GPIO_WWAN_PWR (TPS_GPIO_BASE + 2) | 42 | #define TEGRA_GPIO_HP_DET TEGRA_GPIO_PX1 |
43 | #define TEGRA_GPIO_KAEN_HP_MUTE TEGRA_GPIO_PA5 | ||
40 | 44 | ||
41 | void seaboard_pinmux_init(void); | 45 | void seaboard_pinmux_init(void); |
42 | 46 | ||
diff --git a/arch/arm/mach-tegra/board-trimslice.c b/arch/arm/mach-tegra/board-trimslice.c index e3d9ec2f0fe..1a6617b7806 100644 --- a/arch/arm/mach-tegra/board-trimslice.c +++ b/arch/arm/mach-tegra/board-trimslice.c | |||
@@ -32,7 +32,6 @@ | |||
32 | 32 | ||
33 | #include <mach/iomap.h> | 33 | #include <mach/iomap.h> |
34 | #include <mach/sdhci.h> | 34 | #include <mach/sdhci.h> |
35 | #include <mach/gpio.h> | ||
36 | 35 | ||
37 | #include "board.h" | 36 | #include "board.h" |
38 | #include "clock.h" | 37 | #include "clock.h" |
@@ -46,7 +45,8 @@ static struct plat_serial8250_port debug_uart_platform_data[] = { | |||
46 | .membase = IO_ADDRESS(TEGRA_UARTA_BASE), | 45 | .membase = IO_ADDRESS(TEGRA_UARTA_BASE), |
47 | .mapbase = TEGRA_UARTA_BASE, | 46 | .mapbase = TEGRA_UARTA_BASE, |
48 | .irq = INT_UARTA, | 47 | .irq = INT_UARTA, |
49 | .flags = UPF_BOOT_AUTOCONF, | 48 | .flags = UPF_BOOT_AUTOCONF | UPF_FIXED_TYPE, |
49 | .type = PORT_TEGRA, | ||
50 | .iotype = UPIO_MEM, | 50 | .iotype = UPIO_MEM, |
51 | .regshift = 2, | 51 | .regshift = 2, |
52 | .uartclk = 216000000, | 52 | .uartclk = 216000000, |