aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-tegra
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-07-23 20:34:48 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-07-23 20:34:48 -0400
commitf1d2c07d331f717da79a42952be7dc1c0d35f846 (patch)
tree5bc98d2d63a37b688b40a4641855c512b385d0ae /arch/arm/mach-tegra
parenta17f29a5e98c0a32a900a773083c719e27f4bc0e (diff)
parentd003e09891fdc0c170b99328eba7ed004809ef5a (diff)
Merge tag 'boards' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull arm-soc board specific updates from Arnd Bergmann: "These changes are all for individual board files. In the long run, those files will largely go away, and the amount of changes appears to be continuously decreasing, which is a good sign. This time around, changes are focused on tegra, omap and samsung." Fix conflicts in arch/arm/mach-{omap2/common-board-devices.c,tegra/Makefile.boot} as per the 'for-linus' branch. * tag 'boards' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (39 commits) ARM: EXYNOS: Add leds status1 and status2 on Origen board ARM: S3C64XX: Mark most Cragganmore initdata devinitdata ARM: EXYNOS: Add missing .reserve field to SMDKC210 ARM: EXYNOS: Add DRM device to SMDK4X12 board ARM: S3C64XX: Clean up after SPI driver platform data updates ARM: SAMSUNG: no need to set the value for clk_xusbxti when it is 24Mhz ARM: EXYNOS: Add framebuffer support for SMDK4X12 ARM: EXYNOS: Add HSOTG support to SMDK4X12 ARM: S5PV210: Add audio platform device in Goni board ARM: S5PV210: Add audio platform device in Aquila board ARM: EXYNOS: Add audio platform device in SMDKV310 board ARM: S3C64XX: Don't specify an irq_base for WM1192-EV1 board ARM: OMAP3: Fix omap3evm randconfig error introduced by VBUS support ARM: OMAP: board-omap4panda: MUX configuration for sys_nirq2 ARM: OMAP: board-4430sdp: MUX configuration for sys_nirq2 ARM: OMAP3530evm: set pendown_state and debounce time for ads7846 ARM: omap3evm: enable VBUS switch for EHCI tranceiver ARM: OMAP3EVM: Adding USB internal LDOs board file ARM: OMAP3EVM: Add NAND flash definition ARM: OMAP3: cm-t35: add tvp5150 decoder support ...
Diffstat (limited to 'arch/arm/mach-tegra')
-rw-r--r--arch/arm/mach-tegra/Kconfig36
-rw-r--r--arch/arm/mach-tegra/Makefile13
-rw-r--r--arch/arm/mach-tegra/Makefile.boot10
-rw-r--r--arch/arm/mach-tegra/board-dt-tegra20.c74
-rw-r--r--arch/arm/mach-tegra/board-dt-tegra30.c8
-rw-r--r--arch/arm/mach-tegra/board-harmony-pcie.c15
-rw-r--r--arch/arm/mach-tegra/board-harmony-power.c25
-rw-r--r--arch/arm/mach-tegra/board-paz00.c7
-rw-r--r--arch/arm/mach-tegra/board-seaboard-pinmux.c197
-rw-r--r--arch/arm/mach-tegra/board-seaboard.c306
-rw-r--r--arch/arm/mach-tegra/board-seaboard.h47
-rw-r--r--arch/arm/mach-tegra/board.h9
12 files changed, 126 insertions, 621 deletions
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
index 7c407393cd0..9077aaa398d 100644
--- a/arch/arm/mach-tegra/Kconfig
+++ b/arch/arm/mach-tegra/Kconfig
@@ -66,34 +66,12 @@ config MACH_HARMONY
66 help 66 help
67 Support for nVidia Harmony development platform 67 Support for nVidia Harmony development platform
68 68
69config MACH_KAEN
70 bool "Kaen board"
71 depends on ARCH_TEGRA_2x_SOC
72 select MACH_SEABOARD
73 help
74 Support for the Kaen version of Seaboard
75
76config MACH_PAZ00 69config MACH_PAZ00
77 bool "Paz00 board" 70 bool "Paz00 board"
78 depends on ARCH_TEGRA_2x_SOC 71 depends on ARCH_TEGRA_2x_SOC
79 help 72 help
80 Support for the Toshiba AC100/Dynabook AZ netbook 73 Support for the Toshiba AC100/Dynabook AZ netbook
81 74
82config MACH_SEABOARD
83 bool "Seaboard board"
84 depends on ARCH_TEGRA_2x_SOC
85 help
86 Support for nVidia Seaboard development platform. It will
87 also be included for some of the derivative boards that
88 have large similarities with the seaboard design.
89
90config MACH_TEGRA_DT
91 bool "Generic Tegra20 board (FDT support)"
92 depends on ARCH_TEGRA_2x_SOC
93 select USE_OF
94 help
95 Support for generic NVIDIA Tegra20 boards using Flattened Device Tree
96
97config MACH_TRIMSLICE 75config MACH_TRIMSLICE
98 bool "TrimSlice board" 76 bool "TrimSlice board"
99 depends on ARCH_TEGRA_2x_SOC 77 depends on ARCH_TEGRA_2x_SOC
@@ -101,20 +79,6 @@ config MACH_TRIMSLICE
101 help 79 help
102 Support for CompuLab TrimSlice platform 80 Support for CompuLab TrimSlice platform
103 81
104config MACH_WARIO
105 bool "Wario board"
106 depends on ARCH_TEGRA_2x_SOC
107 select MACH_SEABOARD
108 help
109 Support for the Wario version of Seaboard
110
111config MACH_VENTANA
112 bool "Ventana board"
113 depends on ARCH_TEGRA_2x_SOC
114 select MACH_TEGRA_DT
115 help
116 Support for the nVidia Ventana development platform
117
118choice 82choice
119 prompt "Default low-level debug console UART" 83 prompt "Default low-level debug console UART"
120 default TEGRA_DEBUG_UART_NONE 84 default TEGRA_DEBUG_UART_NONE
diff --git a/arch/arm/mach-tegra/Makefile b/arch/arm/mach-tegra/Makefile
index 90aae34245c..c3d7303b9ac 100644
--- a/arch/arm/mach-tegra/Makefile
+++ b/arch/arm/mach-tegra/Makefile
@@ -14,7 +14,6 @@ obj-$(CONFIG_CPU_IDLE) += cpuidle.o
14obj-$(CONFIG_CPU_IDLE) += sleep.o 14obj-$(CONFIG_CPU_IDLE) += sleep.o
15obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra2_clocks.o 15obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra2_clocks.o
16obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra2_emc.o 16obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra2_emc.o
17obj-$(CONFIG_ARCH_TEGRA_3x_SOC) += board-dt-tegra30.o
18obj-$(CONFIG_ARCH_TEGRA_3x_SOC) += tegra30_clocks.o 17obj-$(CONFIG_ARCH_TEGRA_3x_SOC) += tegra30_clocks.o
19obj-$(CONFIG_SMP) += platsmp.o headsmp.o 18obj-$(CONFIG_SMP) += platsmp.o headsmp.o
20obj-$(CONFIG_SMP) += reset.o 19obj-$(CONFIG_SMP) += reset.o
@@ -24,6 +23,9 @@ obj-$(CONFIG_CPU_FREQ) += cpu-tegra.o
24obj-$(CONFIG_TEGRA_PCI) += pcie.o 23obj-$(CONFIG_TEGRA_PCI) += pcie.o
25obj-$(CONFIG_USB_SUPPORT) += usb_phy.o 24obj-$(CONFIG_USB_SUPPORT) += usb_phy.o
26 25
26obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += board-dt-tegra20.o
27obj-$(CONFIG_ARCH_TEGRA_3x_SOC) += board-dt-tegra30.o
28
27obj-$(CONFIG_MACH_HARMONY) += board-harmony.o 29obj-$(CONFIG_MACH_HARMONY) += board-harmony.o
28obj-$(CONFIG_MACH_HARMONY) += board-harmony-pinmux.o 30obj-$(CONFIG_MACH_HARMONY) += board-harmony-pinmux.o
29obj-$(CONFIG_MACH_HARMONY) += board-harmony-pcie.o 31obj-$(CONFIG_MACH_HARMONY) += board-harmony-pcie.o
@@ -32,14 +34,5 @@ obj-$(CONFIG_MACH_HARMONY) += board-harmony-power.o
32obj-$(CONFIG_MACH_PAZ00) += board-paz00.o 34obj-$(CONFIG_MACH_PAZ00) += board-paz00.o
33obj-$(CONFIG_MACH_PAZ00) += board-paz00-pinmux.o 35obj-$(CONFIG_MACH_PAZ00) += board-paz00-pinmux.o
34 36
35obj-$(CONFIG_MACH_SEABOARD) += board-seaboard.o
36obj-$(CONFIG_MACH_SEABOARD) += board-seaboard-pinmux.o
37
38obj-$(CONFIG_MACH_TEGRA_DT) += board-dt-tegra20.o
39obj-$(CONFIG_MACH_TEGRA_DT) += board-harmony-pinmux.o
40obj-$(CONFIG_MACH_TEGRA_DT) += board-seaboard-pinmux.o
41obj-$(CONFIG_MACH_TEGRA_DT) += board-paz00-pinmux.o
42obj-$(CONFIG_MACH_TEGRA_DT) += board-trimslice-pinmux.o
43
44obj-$(CONFIG_MACH_TRIMSLICE) += board-trimslice.o 37obj-$(CONFIG_MACH_TRIMSLICE) += board-trimslice.o
45obj-$(CONFIG_MACH_TRIMSLICE) += board-trimslice-pinmux.o 38obj-$(CONFIG_MACH_TRIMSLICE) += board-trimslice-pinmux.o
diff --git a/arch/arm/mach-tegra/Makefile.boot b/arch/arm/mach-tegra/Makefile.boot
index 435f00ca3c5..7a1bb62ddcf 100644
--- a/arch/arm/mach-tegra/Makefile.boot
+++ b/arch/arm/mach-tegra/Makefile.boot
@@ -2,10 +2,10 @@ zreladdr-$(CONFIG_ARCH_TEGRA_2x_SOC) += 0x00008000
2params_phys-$(CONFIG_ARCH_TEGRA_2x_SOC) := 0x00000100 2params_phys-$(CONFIG_ARCH_TEGRA_2x_SOC) := 0x00000100
3initrd_phys-$(CONFIG_ARCH_TEGRA_2x_SOC) := 0x00800000 3initrd_phys-$(CONFIG_ARCH_TEGRA_2x_SOC) := 0x00800000
4 4
5dtb-$(CONFIG_MACH_HARMONY) += tegra20-harmony.dtb 5dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-harmony.dtb
6dtb-$(CONFIG_MACH_PAZ00) += tegra20-paz00.dtb 6dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-paz00.dtb
7dtb-$(CONFIG_MACH_SEABOARD) += tegra20-seaboard.dtb 7dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-seaboard.dtb
8dtb-$(CONFIG_MACH_TRIMSLICE) += tegra20-trimslice.dtb 8dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-trimslice.dtb
9dtb-$(CONFIG_MACH_VENTANA) += tegra20-ventana.dtb 9dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-ventana.dtb
10dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-whistler.dtb 10dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20-whistler.dtb
11dtb-$(CONFIG_ARCH_TEGRA_3x_SOC) += tegra30-cardhu.dtb 11dtb-$(CONFIG_ARCH_TEGRA_3x_SOC) += tegra30-cardhu.dtb
diff --git a/arch/arm/mach-tegra/board-dt-tegra20.c b/arch/arm/mach-tegra/board-dt-tegra20.c
index eb7249db50a..d0de9c1192f 100644
--- a/arch/arm/mach-tegra/board-dt-tegra20.c
+++ b/arch/arm/mach-tegra/board-dt-tegra20.c
@@ -64,6 +64,7 @@ struct of_dev_auxdata tegra20_auxdata_lookup[] __initdata = {
64 &tegra_ehci2_pdata), 64 &tegra_ehci2_pdata),
65 OF_DEV_AUXDATA("nvidia,tegra20-ehci", TEGRA_USB3_BASE, "tegra-ehci.2", 65 OF_DEV_AUXDATA("nvidia,tegra20-ehci", TEGRA_USB3_BASE, "tegra-ehci.2",
66 &tegra_ehci3_pdata), 66 &tegra_ehci3_pdata),
67 OF_DEV_AUXDATA("nvidia,tegra20-apbdma", 0x6000a000, "tegra-apbdma", NULL),
67 {} 68 {}
68}; 69};
69 70
@@ -81,11 +82,6 @@ static __initdata struct tegra_clk_init_table tegra_dt_clk_init_table[] = {
81 { NULL, NULL, 0, 0}, 82 { NULL, NULL, 0, 0},
82}; 83};
83 84
84static struct of_device_id tegra_dt_match_table[] __initdata = {
85 { .compatible = "simple-bus", },
86 {}
87};
88
89static void __init tegra_dt_init(void) 85static void __init tegra_dt_init(void)
90{ 86{
91 tegra_clk_init_from_table(tegra_dt_clk_init_table); 87 tegra_clk_init_from_table(tegra_dt_clk_init_table);
@@ -94,10 +90,74 @@ static void __init tegra_dt_init(void)
94 * Finished with the static registrations now; fill in the missing 90 * Finished with the static registrations now; fill in the missing
95 * devices 91 * devices
96 */ 92 */
97 of_platform_populate(NULL, tegra_dt_match_table, 93 of_platform_populate(NULL, of_default_bus_match_table,
98 tegra20_auxdata_lookup, NULL); 94 tegra20_auxdata_lookup, NULL);
99} 95}
100 96
97#ifdef CONFIG_MACH_TRIMSLICE
98static void __init trimslice_init(void)
99{
100 int ret;
101
102 ret = tegra_pcie_init(true, true);
103 if (ret)
104 pr_err("tegra_pci_init() failed: %d\n", ret);
105}
106#endif
107
108#ifdef CONFIG_MACH_HARMONY
109static void __init harmony_init(void)
110{
111 int ret;
112
113 ret = harmony_regulator_init();
114 if (ret) {
115 pr_err("harmony_regulator_init() failed: %d\n", ret);
116 return;
117 }
118
119 ret = harmony_pcie_init();
120 if (ret)
121 pr_err("harmony_pcie_init() failed: %d\n", ret);
122}
123#endif
124
125#ifdef CONFIG_MACH_PAZ00
126static void __init paz00_init(void)
127{
128 tegra_paz00_wifikill_init();
129}
130#endif
131
132static struct {
133 char *machine;
134 void (*init)(void);
135} board_init_funcs[] = {
136#ifdef CONFIG_MACH_TRIMSLICE
137 { "compulab,trimslice", trimslice_init },
138#endif
139#ifdef CONFIG_MACH_HARMONY
140 { "nvidia,harmony", harmony_init },
141#endif
142#ifdef CONFIG_MACH_PAZ00
143 { "compal,paz00", paz00_init },
144#endif
145};
146
147static void __init tegra_dt_init_late(void)
148{
149 int i;
150
151 tegra_init_late();
152
153 for (i = 0; i < ARRAY_SIZE(board_init_funcs); i++) {
154 if (of_machine_is_compatible(board_init_funcs[i].machine)) {
155 board_init_funcs[i].init();
156 break;
157 }
158 }
159}
160
101static const char *tegra20_dt_board_compat[] = { 161static const char *tegra20_dt_board_compat[] = {
102 "nvidia,tegra20", 162 "nvidia,tegra20",
103 NULL 163 NULL
@@ -110,7 +170,7 @@ DT_MACHINE_START(TEGRA_DT, "nVidia Tegra20 (Flattened Device Tree)")
110 .handle_irq = gic_handle_irq, 170 .handle_irq = gic_handle_irq,
111 .timer = &tegra_timer, 171 .timer = &tegra_timer,
112 .init_machine = tegra_dt_init, 172 .init_machine = tegra_dt_init,
113 .init_late = tegra_init_late, 173 .init_late = tegra_dt_init_late,
114 .restart = tegra_assert_system_reset, 174 .restart = tegra_assert_system_reset,
115 .dt_compat = tegra20_dt_board_compat, 175 .dt_compat = tegra20_dt_board_compat,
116MACHINE_END 176MACHINE_END
diff --git a/arch/arm/mach-tegra/board-dt-tegra30.c b/arch/arm/mach-tegra/board-dt-tegra30.c
index 4f76fa7a5da..ee48214bfd8 100644
--- a/arch/arm/mach-tegra/board-dt-tegra30.c
+++ b/arch/arm/mach-tegra/board-dt-tegra30.c
@@ -36,11 +36,6 @@
36#include "board.h" 36#include "board.h"
37#include "clock.h" 37#include "clock.h"
38 38
39static struct of_device_id tegra_dt_match_table[] __initdata = {
40 { .compatible = "simple-bus", },
41 {}
42};
43
44struct of_dev_auxdata tegra30_auxdata_lookup[] __initdata = { 39struct of_dev_auxdata tegra30_auxdata_lookup[] __initdata = {
45 OF_DEV_AUXDATA("nvidia,tegra20-sdhci", 0x78000000, "sdhci-tegra.0", NULL), 40 OF_DEV_AUXDATA("nvidia,tegra20-sdhci", 0x78000000, "sdhci-tegra.0", NULL),
46 OF_DEV_AUXDATA("nvidia,tegra20-sdhci", 0x78000200, "sdhci-tegra.1", NULL), 41 OF_DEV_AUXDATA("nvidia,tegra20-sdhci", 0x78000200, "sdhci-tegra.1", NULL),
@@ -52,6 +47,7 @@ struct of_dev_auxdata tegra30_auxdata_lookup[] __initdata = {
52 OF_DEV_AUXDATA("nvidia,tegra20-i2c", 0x7000C700, "tegra-i2c.3", NULL), 47 OF_DEV_AUXDATA("nvidia,tegra20-i2c", 0x7000C700, "tegra-i2c.3", NULL),
53 OF_DEV_AUXDATA("nvidia,tegra20-i2c", 0x7000D000, "tegra-i2c.4", NULL), 48 OF_DEV_AUXDATA("nvidia,tegra20-i2c", 0x7000D000, "tegra-i2c.4", NULL),
54 OF_DEV_AUXDATA("nvidia,tegra30-ahub", 0x70080000, "tegra30-ahub", NULL), 49 OF_DEV_AUXDATA("nvidia,tegra30-ahub", 0x70080000, "tegra30-ahub", NULL),
50 OF_DEV_AUXDATA("nvidia,tegra30-apbdma", 0x6000a000, "tegra-apbdma", NULL),
55 {} 51 {}
56}; 52};
57 53
@@ -74,7 +70,7 @@ static void __init tegra30_dt_init(void)
74{ 70{
75 tegra_clk_init_from_table(tegra_dt_clk_init_table); 71 tegra_clk_init_from_table(tegra_dt_clk_init_table);
76 72
77 of_platform_populate(NULL, tegra_dt_match_table, 73 of_platform_populate(NULL, of_default_bus_match_table,
78 tegra30_auxdata_lookup, NULL); 74 tegra30_auxdata_lookup, NULL);
79} 75}
80 76
diff --git a/arch/arm/mach-tegra/board-harmony-pcie.c b/arch/arm/mach-tegra/board-harmony-pcie.c
index 33c4fedab84..e8c3fda9bec 100644
--- a/arch/arm/mach-tegra/board-harmony-pcie.c
+++ b/arch/arm/mach-tegra/board-harmony-pcie.c
@@ -27,14 +27,11 @@
27 27
28#ifdef CONFIG_TEGRA_PCI 28#ifdef CONFIG_TEGRA_PCI
29 29
30static int __init harmony_pcie_init(void) 30int __init harmony_pcie_init(void)
31{ 31{
32 struct regulator *regulator = NULL; 32 struct regulator *regulator = NULL;
33 int err; 33 int err;
34 34
35 if (!machine_is_harmony())
36 return 0;
37
38 err = gpio_request(TEGRA_GPIO_EN_VDD_1V05_GPIO, "EN_VDD_1V05"); 35 err = gpio_request(TEGRA_GPIO_EN_VDD_1V05_GPIO, "EN_VDD_1V05");
39 if (err) 36 if (err)
40 return err; 37 return err;
@@ -62,7 +59,15 @@ err_reg:
62 return err; 59 return err;
63} 60}
64 61
62static int __init harmony_pcie_initcall(void)
63{
64 if (!machine_is_harmony())
65 return 0;
66
67 return harmony_pcie_init();
68}
69
65/* PCI should be initialized after I2C, mfd and regulators */ 70/* PCI should be initialized after I2C, mfd and regulators */
66subsys_initcall_sync(harmony_pcie_init); 71subsys_initcall_sync(harmony_pcie_initcall);
67 72
68#endif 73#endif
diff --git a/arch/arm/mach-tegra/board-harmony-power.c b/arch/arm/mach-tegra/board-harmony-power.c
index 82f32300796..44dcb2e869b 100644
--- a/arch/arm/mach-tegra/board-harmony-power.c
+++ b/arch/arm/mach-tegra/board-harmony-power.c
@@ -20,6 +20,10 @@
20#include <linux/gpio.h> 20#include <linux/gpio.h>
21#include <linux/regulator/machine.h> 21#include <linux/regulator/machine.h>
22#include <linux/mfd/tps6586x.h> 22#include <linux/mfd/tps6586x.h>
23#include <linux/of.h>
24#include <linux/of_i2c.h>
25
26#include <asm/mach-types.h>
23 27
24#include <mach/irqs.h> 28#include <mach/irqs.h>
25 29
@@ -110,7 +114,26 @@ static struct i2c_board_info __initdata harmony_regulators[] = {
110 114
111int __init harmony_regulator_init(void) 115int __init harmony_regulator_init(void)
112{ 116{
113 i2c_register_board_info(3, harmony_regulators, 1); 117 if (machine_is_harmony()) {
118 i2c_register_board_info(3, harmony_regulators, 1);
119 } else { /* Harmony, booted using device tree */
120 struct device_node *np;
121 struct i2c_adapter *adapter;
122
123 np = of_find_node_by_path("/i2c@7000d000");
124 if (np == NULL) {
125 pr_err("Could not find device_node for DVC I2C\n");
126 return -ENODEV;
127 }
128
129 adapter = of_find_i2c_adapter_by_node(np);
130 if (!adapter) {
131 pr_err("Could not find i2c_adapter for DVC I2C\n");
132 return -ENODEV;
133 }
134
135 i2c_new_device(adapter, harmony_regulators);
136 }
114 137
115 return 0; 138 return 0;
116} 139}
diff --git a/arch/arm/mach-tegra/board-paz00.c b/arch/arm/mach-tegra/board-paz00.c
index bbc1907e98a..4b64af5cab2 100644
--- a/arch/arm/mach-tegra/board-paz00.c
+++ b/arch/arm/mach-tegra/board-paz00.c
@@ -148,7 +148,6 @@ static struct platform_device *paz00_devices[] __initdata = {
148 &debug_uart, 148 &debug_uart,
149 &tegra_sdhci_device4, 149 &tegra_sdhci_device4,
150 &tegra_sdhci_device1, 150 &tegra_sdhci_device1,
151 &wifi_rfkill_device,
152 &leds_gpio, 151 &leds_gpio,
153 &gpio_keys_device, 152 &gpio_keys_device,
154}; 153};
@@ -201,6 +200,11 @@ static struct tegra_sdhci_platform_data sdhci_pdata4 = {
201 .is_8bit = 1, 200 .is_8bit = 1,
202}; 201};
203 202
203void __init tegra_paz00_wifikill_init(void)
204{
205 platform_device_register(&wifi_rfkill_device);
206}
207
204static void __init tegra_paz00_init(void) 208static void __init tegra_paz00_init(void)
205{ 209{
206 tegra_clk_init_from_table(paz00_clk_init_table); 210 tegra_clk_init_from_table(paz00_clk_init_table);
@@ -211,6 +215,7 @@ static void __init tegra_paz00_init(void)
211 tegra_sdhci_device4.dev.platform_data = &sdhci_pdata4; 215 tegra_sdhci_device4.dev.platform_data = &sdhci_pdata4;
212 216
213 platform_add_devices(paz00_devices, ARRAY_SIZE(paz00_devices)); 217 platform_add_devices(paz00_devices, ARRAY_SIZE(paz00_devices));
218 tegra_paz00_wifikill_init();
214 219
215 paz00_i2c_init(); 220 paz00_i2c_init();
216 paz00_usb_init(); 221 paz00_usb_init();
diff --git a/arch/arm/mach-tegra/board-seaboard-pinmux.c b/arch/arm/mach-tegra/board-seaboard-pinmux.c
deleted file mode 100644
index 11fc8a568c6..00000000000
--- a/arch/arm/mach-tegra/board-seaboard-pinmux.c
+++ /dev/null
@@ -1,197 +0,0 @@
1/*
2 * Copyright (C) 2010-2012 NVIDIA Corporation
3 * Copyright (C) 2011 Google, Inc.
4 *
5 * This software is licensed under the terms of the GNU General Public
6 * License version 2, as published by the Free Software Foundation, and
7 * may be copied, distributed, and modified under those terms.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 */
15
16#include <linux/kernel.h>
17
18#include "board-seaboard.h"
19#include "board-pinmux.h"
20
21static unsigned long seaboard_pincfg_drive_sdio1[] = {
22 TEGRA_PINCONF_PACK(TEGRA_PINCONF_PARAM_HIGH_SPEED_MODE, 0),
23 TEGRA_PINCONF_PACK(TEGRA_PINCONF_PARAM_SCHMITT, 0),
24 TEGRA_PINCONF_PACK(TEGRA_PINCONF_PARAM_LOW_POWER_MODE, 3),
25 TEGRA_PINCONF_PACK(TEGRA_PINCONF_PARAM_DRIVE_DOWN_STRENGTH, 31),
26 TEGRA_PINCONF_PACK(TEGRA_PINCONF_PARAM_DRIVE_UP_STRENGTH, 31),
27 TEGRA_PINCONF_PACK(TEGRA_PINCONF_PARAM_SLEW_RATE_FALLING, 3),
28 TEGRA_PINCONF_PACK(TEGRA_PINCONF_PARAM_SLEW_RATE_RISING, 3),
29};
30
31static struct pinctrl_map common_map[] = {
32 TEGRA_MAP_MUXCONF("ata", "ide", none, driven),
33 TEGRA_MAP_MUXCONF("atb", "sdio4", none, driven),
34 TEGRA_MAP_MUXCONF("atc", "nand", none, driven),
35 TEGRA_MAP_MUXCONF("atd", "gmi", none, driven),
36 TEGRA_MAP_MUXCONF("ate", "gmi", none, tristate),
37 TEGRA_MAP_MUXCONF("cdev1", "plla_out", none, driven),
38 TEGRA_MAP_MUXCONF("cdev2", "pllp_out4", none, driven),
39 TEGRA_MAP_MUXCONF("crtp", "crt", up, tristate),
40 TEGRA_MAP_MUXCONF("csus", "vi_sensor_clk", none, tristate),
41 TEGRA_MAP_MUXCONF("dap1", "dap1", none, driven),
42 TEGRA_MAP_MUXCONF("dap2", "dap2", none, driven),
43 TEGRA_MAP_MUXCONF("dap3", "dap3", none, tristate),
44 TEGRA_MAP_MUXCONF("dap4", "dap4", none, driven),
45 TEGRA_MAP_MUXCONF("dta", "vi", down, driven),
46 TEGRA_MAP_MUXCONF("dtb", "vi", down, driven),
47 TEGRA_MAP_MUXCONF("dtc", "vi", down, driven),
48 TEGRA_MAP_MUXCONF("dtd", "vi", down, driven),
49 TEGRA_MAP_MUXCONF("dte", "vi", down, tristate),
50 TEGRA_MAP_MUXCONF("dtf", "i2c3", none, driven),
51 TEGRA_MAP_MUXCONF("gma", "sdio4", none, driven),
52 TEGRA_MAP_MUXCONF("gmb", "gmi", up, tristate),
53 TEGRA_MAP_MUXCONF("gmc", "uartd", none, driven),
54 TEGRA_MAP_MUXCONF("gme", "sdio4", none, driven),
55 TEGRA_MAP_MUXCONF("gpu", "pwm", none, driven),
56 TEGRA_MAP_MUXCONF("gpu7", "rtck", none, driven),
57 TEGRA_MAP_MUXCONF("gpv", "pcie", none, tristate),
58 TEGRA_MAP_MUXCONF("hdint", "hdmi", na, tristate),
59 TEGRA_MAP_MUXCONF("i2cp", "i2cp", none, driven),
60 TEGRA_MAP_MUXCONF("irrx", "uartb", none, driven),
61 TEGRA_MAP_MUXCONF("irtx", "uartb", none, driven),
62 TEGRA_MAP_MUXCONF("kbca", "kbc", up, driven),
63 TEGRA_MAP_MUXCONF("kbcb", "kbc", up, driven),
64 TEGRA_MAP_MUXCONF("kbcc", "kbc", up, driven),
65 TEGRA_MAP_MUXCONF("kbcd", "kbc", up, driven),
66 TEGRA_MAP_MUXCONF("kbce", "kbc", up, driven),
67 TEGRA_MAP_MUXCONF("kbcf", "kbc", up, driven),
68 TEGRA_MAP_MUXCONF("lcsn", "rsvd4", na, tristate),
69 TEGRA_MAP_MUXCONF("ld0", "displaya", na, driven),
70 TEGRA_MAP_MUXCONF("ld1", "displaya", na, driven),
71 TEGRA_MAP_MUXCONF("ld10", "displaya", na, driven),
72 TEGRA_MAP_MUXCONF("ld11", "displaya", na, driven),
73 TEGRA_MAP_MUXCONF("ld12", "displaya", na, driven),
74 TEGRA_MAP_MUXCONF("ld13", "displaya", na, driven),
75 TEGRA_MAP_MUXCONF("ld14", "displaya", na, driven),
76 TEGRA_MAP_MUXCONF("ld15", "displaya", na, driven),
77 TEGRA_MAP_MUXCONF("ld16", "displaya", na, driven),
78 TEGRA_MAP_MUXCONF("ld17", "displaya", na, driven),
79 TEGRA_MAP_MUXCONF("ld2", "displaya", na, driven),
80 TEGRA_MAP_MUXCONF("ld3", "displaya", na, driven),
81 TEGRA_MAP_MUXCONF("ld4", "displaya", na, driven),
82 TEGRA_MAP_MUXCONF("ld5", "displaya", na, driven),
83 TEGRA_MAP_MUXCONF("ld6", "displaya", na, driven),
84 TEGRA_MAP_MUXCONF("ld7", "displaya", na, driven),
85 TEGRA_MAP_MUXCONF("ld8", "displaya", na, driven),
86 TEGRA_MAP_MUXCONF("ld9", "displaya", na, driven),
87 TEGRA_MAP_MUXCONF("ldc", "rsvd4", na, tristate),
88 TEGRA_MAP_MUXCONF("ldi", "displaya", na, driven),
89 TEGRA_MAP_MUXCONF("lhp0", "displaya", na, driven),
90 TEGRA_MAP_MUXCONF("lhp1", "displaya", na, driven),
91 TEGRA_MAP_MUXCONF("lhp2", "displaya", na, driven),
92 TEGRA_MAP_MUXCONF("lhs", "displaya", na, driven),
93 TEGRA_MAP_MUXCONF("lm0", "rsvd4", na, driven),
94 TEGRA_MAP_MUXCONF("lm1", "crt", na, tristate),
95 TEGRA_MAP_MUXCONF("lpp", "displaya", na, driven),
96 TEGRA_MAP_MUXCONF("lpw1", "rsvd4", na, tristate),
97 TEGRA_MAP_MUXCONF("lsc0", "displaya", na, driven),
98 TEGRA_MAP_MUXCONF("lsdi", "rsvd4", na, tristate),
99 TEGRA_MAP_MUXCONF("lspi", "displaya", na, driven),
100 TEGRA_MAP_MUXCONF("lvp0", "rsvd4", na, tristate),
101 TEGRA_MAP_MUXCONF("lvp1", "displaya", na, driven),
102 TEGRA_MAP_MUXCONF("lvs", "displaya", na, driven),
103 TEGRA_MAP_MUXCONF("owc", "rsvd2", none, tristate),
104 TEGRA_MAP_MUXCONF("pmc", "pwr_on", na, driven),
105 TEGRA_MAP_MUXCONF("pta", "hdmi", none, driven),
106 TEGRA_MAP_MUXCONF("rm", "i2c1", none, driven),
107 TEGRA_MAP_MUXCONF("sdb", "sdio3", na, driven),
108 TEGRA_MAP_MUXCONF("sdc", "sdio3", none, driven),
109 TEGRA_MAP_MUXCONF("sdd", "sdio3", none, driven),
110 TEGRA_MAP_MUXCONF("sdio1", "sdio1", up, driven),
111 TEGRA_MAP_MUXCONF("slxa", "pcie", up, tristate),
112 TEGRA_MAP_MUXCONF("slxd", "spdif", none, driven),
113 TEGRA_MAP_MUXCONF("slxk", "pcie", none, driven),
114 TEGRA_MAP_MUXCONF("spdi", "rsvd2", none, driven),
115 TEGRA_MAP_MUXCONF("spdo", "rsvd2", none, driven),
116 TEGRA_MAP_MUXCONF("spib", "gmi", none, tristate),
117 TEGRA_MAP_MUXCONF("spid", "spi1", none, tristate),
118 TEGRA_MAP_MUXCONF("spie", "spi1", none, tristate),
119 TEGRA_MAP_MUXCONF("spif", "spi1", down, tristate),
120 TEGRA_MAP_MUXCONF("spih", "spi2_alt", up, tristate),
121 TEGRA_MAP_MUXCONF("uaa", "ulpi", up, driven),
122 TEGRA_MAP_MUXCONF("uab", "ulpi", up, driven),
123 TEGRA_MAP_MUXCONF("uac", "rsvd2", none, driven),
124 TEGRA_MAP_MUXCONF("uad", "irda", none, driven),
125 TEGRA_MAP_MUXCONF("uca", "uartc", none, driven),
126 TEGRA_MAP_MUXCONF("ucb", "uartc", none, driven),
127 TEGRA_MAP_MUXCONF("uda", "ulpi", none, driven),
128 TEGRA_MAP_CONF("ck32", none, na),
129 TEGRA_MAP_CONF("ddrc", none, na),
130 TEGRA_MAP_CONF("pmca", none, na),
131 TEGRA_MAP_CONF("pmcb", none, na),
132 TEGRA_MAP_CONF("pmcc", none, na),
133 TEGRA_MAP_CONF("pmcd", none, na),
134 TEGRA_MAP_CONF("pmce", none, na),
135 TEGRA_MAP_CONF("xm2c", none, na),
136 TEGRA_MAP_CONF("xm2d", none, na),
137 TEGRA_MAP_CONF("ls", up, na),
138 TEGRA_MAP_CONF("lc", up, na),
139 TEGRA_MAP_CONF("ld17_0", down, na),
140 TEGRA_MAP_CONF("ld19_18", down, na),
141 TEGRA_MAP_CONF("ld21_20", down, na),
142 TEGRA_MAP_CONF("ld23_22", down, na),
143};
144
145static struct pinctrl_map seaboard_map[] = {
146 TEGRA_MAP_MUXCONF("ddc", "rsvd2", none, tristate),
147 TEGRA_MAP_MUXCONF("gmd", "sflash", none, driven),
148 TEGRA_MAP_MUXCONF("lpw0", "hdmi", na, driven),
149 TEGRA_MAP_MUXCONF("lpw2", "hdmi", na, driven),
150 TEGRA_MAP_MUXCONF("lsc1", "hdmi", na, tristate),
151 TEGRA_MAP_MUXCONF("lsck", "hdmi", na, tristate),
152 TEGRA_MAP_MUXCONF("lsda", "hdmi", na, tristate),
153 TEGRA_MAP_MUXCONF("slxc", "spdif", none, tristate),
154 TEGRA_MAP_MUXCONF("spia", "gmi", up, tristate),
155 TEGRA_MAP_MUXCONF("spic", "gmi", up, driven),
156 TEGRA_MAP_MUXCONF("spig", "spi2_alt", up, tristate),
157 PIN_MAP_CONFIGS_GROUP_HOG_DEFAULT(PINMUX_DEV, "drive_sdio1", seaboard_pincfg_drive_sdio1),
158};
159
160static struct pinctrl_map ventana_map[] = {
161 TEGRA_MAP_MUXCONF("ddc", "rsvd2", none, driven),
162 TEGRA_MAP_MUXCONF("gmd", "sflash", none, tristate),
163 TEGRA_MAP_MUXCONF("lpw0", "displaya", na, driven),
164 TEGRA_MAP_MUXCONF("lpw2", "displaya", na, driven),
165 TEGRA_MAP_MUXCONF("lsc1", "displaya", na, driven),
166 TEGRA_MAP_MUXCONF("lsck", "displaya", na, tristate),
167 TEGRA_MAP_MUXCONF("lsda", "displaya", na, tristate),
168 TEGRA_MAP_MUXCONF("slxc", "sdio3", none, driven),
169 TEGRA_MAP_MUXCONF("spia", "gmi", none, tristate),
170 TEGRA_MAP_MUXCONF("spic", "gmi", none, tristate),
171 TEGRA_MAP_MUXCONF("spig", "spi2_alt", none, tristate),
172};
173
174static struct tegra_board_pinmux_conf common_conf = {
175 .maps = common_map,
176 .map_count = ARRAY_SIZE(common_map),
177};
178
179static struct tegra_board_pinmux_conf seaboard_conf = {
180 .maps = seaboard_map,
181 .map_count = ARRAY_SIZE(seaboard_map),
182};
183
184static struct tegra_board_pinmux_conf ventana_conf = {
185 .maps = ventana_map,
186 .map_count = ARRAY_SIZE(ventana_map),
187};
188
189void seaboard_pinmux_init(void)
190{
191 tegra_board_pinmux_init(&common_conf, &seaboard_conf);
192}
193
194void ventana_pinmux_init(void)
195{
196 tegra_board_pinmux_init(&common_conf, &ventana_conf);
197}
diff --git a/arch/arm/mach-tegra/board-seaboard.c b/arch/arm/mach-tegra/board-seaboard.c
deleted file mode 100644
index 71e9f3fc7fb..00000000000
--- a/arch/arm/mach-tegra/board-seaboard.c
+++ /dev/null
@@ -1,306 +0,0 @@
1/*
2 * Copyright (c) 2010, 2011 NVIDIA Corporation.
3 * Copyright (C) 2010, 2011 Google, Inc.
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 */
16
17#include <linux/kernel.h>
18#include <linux/init.h>
19#include <linux/platform_device.h>
20#include <linux/serial_8250.h>
21#include <linux/of_serial.h>
22#include <linux/i2c.h>
23#include <linux/delay.h>
24#include <linux/input.h>
25#include <linux/io.h>
26#include <linux/gpio.h>
27#include <linux/gpio_keys.h>
28#include <linux/platform_data/tegra_usb.h>
29
30#include <sound/wm8903.h>
31
32#include <mach/iomap.h>
33#include <mach/irqs.h>
34#include <mach/sdhci.h>
35#include <mach/tegra_wm8903_pdata.h>
36
37#include <asm/mach-types.h>
38#include <asm/mach/arch.h>
39#include <asm/hardware/gic.h>
40
41#include "board.h"
42#include "board-seaboard.h"
43#include "clock.h"
44#include "devices.h"
45#include "gpio-names.h"
46
47static struct plat_serial8250_port debug_uart_platform_data[] = {
48 {
49 /* Memory and IRQ filled in before registration */
50 .flags = UPF_BOOT_AUTOCONF | UPF_FIXED_TYPE,
51 .type = PORT_TEGRA,
52 .handle_break = tegra_serial_handle_break,
53 .iotype = UPIO_MEM,
54 .regshift = 2,
55 .uartclk = 216000000,
56 }, {
57 .flags = 0,
58 }
59};
60
61static struct platform_device debug_uart = {
62 .name = "serial8250",
63 .id = PLAT8250_DEV_PLATFORM,
64 .dev = {
65 .platform_data = debug_uart_platform_data,
66 },
67};
68
69static __initdata struct tegra_clk_init_table seaboard_clk_init_table[] = {
70 /* name parent rate enabled */
71 { "uartb", "pll_p", 216000000, true},
72 { "uartd", "pll_p", 216000000, true},
73 { "pll_a", "pll_p_out1", 56448000, true },
74 { "pll_a_out0", "pll_a", 11289600, true },
75 { "cdev1", NULL, 0, true },
76 { "i2s1", "pll_a_out0", 11289600, false},
77 { "usbd", "clk_m", 12000000, true},
78 { "usb3", "clk_m", 12000000, true},
79 { NULL, NULL, 0, 0},
80};
81
82static struct gpio_keys_button seaboard_gpio_keys_buttons[] = {
83 {
84 .code = SW_LID,
85 .gpio = TEGRA_GPIO_LIDSWITCH,
86 .active_low = 0,
87 .desc = "Lid",
88 .type = EV_SW,
89 .wakeup = 1,
90 .debounce_interval = 1,
91 },
92 {
93 .code = KEY_POWER,
94 .gpio = TEGRA_GPIO_POWERKEY,
95 .active_low = 1,
96 .desc = "Power",
97 .type = EV_KEY,
98 .wakeup = 1,
99 },
100};
101
102static struct gpio_keys_platform_data seaboard_gpio_keys = {
103 .buttons = seaboard_gpio_keys_buttons,
104 .nbuttons = ARRAY_SIZE(seaboard_gpio_keys_buttons),
105};
106
107static struct platform_device seaboard_gpio_keys_device = {
108 .name = "gpio-keys",
109 .id = -1,
110 .dev = {
111 .platform_data = &seaboard_gpio_keys,
112 }
113};
114
115static struct tegra_sdhci_platform_data sdhci_pdata1 = {
116 .cd_gpio = -1,
117 .wp_gpio = -1,
118 .power_gpio = -1,
119};
120
121static struct tegra_sdhci_platform_data sdhci_pdata3 = {
122 .cd_gpio = TEGRA_GPIO_SD2_CD,
123 .wp_gpio = TEGRA_GPIO_SD2_WP,
124 .power_gpio = TEGRA_GPIO_SD2_POWER,
125};
126
127static struct tegra_sdhci_platform_data sdhci_pdata4 = {
128 .cd_gpio = -1,
129 .wp_gpio = -1,
130 .power_gpio = -1,
131 .is_8bit = 1,
132};
133
134static struct tegra_wm8903_platform_data seaboard_audio_pdata = {
135 .gpio_spkr_en = TEGRA_GPIO_SPKR_EN,
136 .gpio_hp_det = TEGRA_GPIO_HP_DET,
137 .gpio_hp_mute = -1,
138 .gpio_int_mic_en = -1,
139 .gpio_ext_mic_en = -1,
140};
141
142static struct platform_device seaboard_audio_device = {
143 .name = "tegra-snd-wm8903",
144 .id = 0,
145 .dev = {
146 .platform_data = &seaboard_audio_pdata,
147 },
148};
149
150static struct platform_device *seaboard_devices[] __initdata = {
151 &debug_uart,
152 &tegra_pmu_device,
153 &tegra_sdhci_device4,
154 &tegra_sdhci_device3,
155 &tegra_sdhci_device1,
156 &seaboard_gpio_keys_device,
157 &tegra_i2s_device1,
158 &tegra_das_device,
159 &seaboard_audio_device,
160};
161
162static struct i2c_board_info __initdata isl29018_device = {
163 I2C_BOARD_INFO("isl29018", 0x44),
164};
165
166static struct i2c_board_info __initdata adt7461_device = {
167 I2C_BOARD_INFO("adt7461", 0x4c),
168};
169
170static struct wm8903_platform_data wm8903_pdata = {
171 .irq_active_low = 0,
172 .micdet_cfg = 0,
173 .micdet_delay = 100,
174 .gpio_base = SEABOARD_GPIO_WM8903(0),
175 .gpio_cfg = {
176 0,
177 0,
178 WM8903_GPIO_CONFIG_ZERO,
179 0,
180 0,
181 },
182};
183
184static struct i2c_board_info __initdata wm8903_device = {
185 I2C_BOARD_INFO("wm8903", 0x1a),
186 .platform_data = &wm8903_pdata,
187};
188
189static int seaboard_ehci_init(void)
190{
191 struct tegra_ehci_platform_data *pdata;
192
193 pdata = tegra_ehci1_device.dev.platform_data;
194 pdata->vbus_gpio = TEGRA_GPIO_USB1;
195
196 platform_device_register(&tegra_ehci1_device);
197 platform_device_register(&tegra_ehci3_device);
198
199 return 0;
200}
201
202static void __init seaboard_i2c_init(void)
203{
204 isl29018_device.irq = gpio_to_irq(TEGRA_GPIO_ISL29018_IRQ);
205 i2c_register_board_info(0, &isl29018_device, 1);
206
207 wm8903_device.irq = gpio_to_irq(TEGRA_GPIO_CDC_IRQ);
208 i2c_register_board_info(0, &wm8903_device, 1);
209
210 i2c_register_board_info(3, &adt7461_device, 1);
211
212 platform_device_register(&tegra_i2c_device1);
213 platform_device_register(&tegra_i2c_device2);
214 platform_device_register(&tegra_i2c_device3);
215 platform_device_register(&tegra_i2c_device4);
216}
217
218static void __init seaboard_common_init(void)
219{
220 seaboard_pinmux_init();
221
222 tegra_clk_init_from_table(seaboard_clk_init_table);
223
224 tegra_sdhci_device1.dev.platform_data = &sdhci_pdata1;
225 tegra_sdhci_device3.dev.platform_data = &sdhci_pdata3;
226 tegra_sdhci_device4.dev.platform_data = &sdhci_pdata4;
227
228 platform_add_devices(seaboard_devices, ARRAY_SIZE(seaboard_devices));
229
230 seaboard_ehci_init();
231}
232
233static void __init tegra_seaboard_init(void)
234{
235 /* Seaboard uses UARTD for the debug port. */
236 debug_uart_platform_data[0].membase = IO_ADDRESS(TEGRA_UARTD_BASE);
237 debug_uart_platform_data[0].mapbase = TEGRA_UARTD_BASE;
238 debug_uart_platform_data[0].irq = INT_UARTD;
239
240 seaboard_common_init();
241
242 seaboard_i2c_init();
243}
244
245static void __init tegra_kaen_init(void)
246{
247 /* Kaen uses UARTB for the debug port. */
248 debug_uart_platform_data[0].membase = IO_ADDRESS(TEGRA_UARTB_BASE);
249 debug_uart_platform_data[0].mapbase = TEGRA_UARTB_BASE;
250 debug_uart_platform_data[0].irq = INT_UARTB;
251
252 seaboard_audio_pdata.gpio_hp_mute = TEGRA_GPIO_KAEN_HP_MUTE;
253
254 seaboard_common_init();
255
256 seaboard_i2c_init();
257}
258
259static void __init tegra_wario_init(void)
260{
261 /* Wario uses UARTB for the debug port. */
262 debug_uart_platform_data[0].membase = IO_ADDRESS(TEGRA_UARTB_BASE);
263 debug_uart_platform_data[0].mapbase = TEGRA_UARTB_BASE;
264 debug_uart_platform_data[0].irq = INT_UARTB;
265
266 seaboard_common_init();
267
268 seaboard_i2c_init();
269}
270
271
272MACHINE_START(SEABOARD, "seaboard")
273 .atag_offset = 0x100,
274 .map_io = tegra_map_common_io,
275 .init_early = tegra20_init_early,
276 .init_irq = tegra_init_irq,
277 .handle_irq = gic_handle_irq,
278 .timer = &tegra_timer,
279 .init_machine = tegra_seaboard_init,
280 .init_late = tegra_init_late,
281 .restart = tegra_assert_system_reset,
282MACHINE_END
283
284MACHINE_START(KAEN, "kaen")
285 .atag_offset = 0x100,
286 .map_io = tegra_map_common_io,
287 .init_early = tegra20_init_early,
288 .init_irq = tegra_init_irq,
289 .handle_irq = gic_handle_irq,
290 .timer = &tegra_timer,
291 .init_machine = tegra_kaen_init,
292 .init_late = tegra_init_late,
293 .restart = tegra_assert_system_reset,
294MACHINE_END
295
296MACHINE_START(WARIO, "wario")
297 .atag_offset = 0x100,
298 .map_io = tegra_map_common_io,
299 .init_early = tegra20_init_early,
300 .init_irq = tegra_init_irq,
301 .handle_irq = gic_handle_irq,
302 .timer = &tegra_timer,
303 .init_machine = tegra_wario_init,
304 .init_late = tegra_init_late,
305 .restart = tegra_assert_system_reset,
306MACHINE_END
diff --git a/arch/arm/mach-tegra/board-seaboard.h b/arch/arm/mach-tegra/board-seaboard.h
deleted file mode 100644
index 4c45d4ca3c4..00000000000
--- a/arch/arm/mach-tegra/board-seaboard.h
+++ /dev/null
@@ -1,47 +0,0 @@
1/*
2 * arch/arm/mach-tegra/board-seaboard.h
3 *
4 * Copyright (C) 2010 Google, Inc.
5 *
6 * This software is licensed under the terms of the GNU General Public
7 * License version 2, as published by the Free Software Foundation, and
8 * may be copied, distributed, and modified under those terms.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 */
16
17#ifndef _MACH_TEGRA_BOARD_SEABOARD_H
18#define _MACH_TEGRA_BOARD_SEABOARD_H
19
20#include <mach/gpio-tegra.h>
21
22#define SEABOARD_GPIO_TPS6586X(_x_) (TEGRA_NR_GPIOS + (_x_))
23#define SEABOARD_GPIO_WM8903(_x_) (SEABOARD_GPIO_TPS6586X(4) + (_x_))
24
25#define TEGRA_GPIO_SD2_CD TEGRA_GPIO_PI5
26#define TEGRA_GPIO_SD2_WP TEGRA_GPIO_PH1
27#define TEGRA_GPIO_SD2_POWER TEGRA_GPIO_PI6
28#define TEGRA_GPIO_LIDSWITCH TEGRA_GPIO_PC7
29#define TEGRA_GPIO_USB1 TEGRA_GPIO_PD0
30#define TEGRA_GPIO_POWERKEY TEGRA_GPIO_PV2
31#define TEGRA_GPIO_BACKLIGHT TEGRA_GPIO_PD4
32#define TEGRA_GPIO_LVDS_SHUTDOWN TEGRA_GPIO_PB2
33#define TEGRA_GPIO_BACKLIGHT_PWM TEGRA_GPIO_PU5
34#define TEGRA_GPIO_BACKLIGHT_VDD TEGRA_GPIO_PW0
35#define TEGRA_GPIO_EN_VDD_PNL TEGRA_GPIO_PC6
36#define TEGRA_GPIO_MAGNETOMETER TEGRA_GPIO_PN5
37#define TEGRA_GPIO_ISL29018_IRQ TEGRA_GPIO_PZ2
38#define TEGRA_GPIO_AC_ONLINE TEGRA_GPIO_PV3
39#define TEGRA_GPIO_WWAN_PWR SEABOARD_GPIO_TPS6586X(2)
40#define TEGRA_GPIO_CDC_IRQ TEGRA_GPIO_PX3
41#define TEGRA_GPIO_SPKR_EN SEABOARD_GPIO_WM8903(2)
42#define TEGRA_GPIO_HP_DET TEGRA_GPIO_PX1
43#define TEGRA_GPIO_KAEN_HP_MUTE TEGRA_GPIO_PA5
44
45void seaboard_pinmux_init(void);
46
47#endif
diff --git a/arch/arm/mach-tegra/board.h b/arch/arm/mach-tegra/board.h
index 65014968fc6..f88e5143c76 100644
--- a/arch/arm/mach-tegra/board.h
+++ b/arch/arm/mach-tegra/board.h
@@ -46,5 +46,14 @@ int __init tegra_powergate_debugfs_init(void);
46static inline int tegra_powergate_debugfs_init(void) { return 0; } 46static inline int tegra_powergate_debugfs_init(void) { return 0; }
47#endif 47#endif
48 48
49int __init harmony_regulator_init(void);
50#ifdef CONFIG_TEGRA_PCI
51int __init harmony_pcie_init(void);
52#else
53static inline int harmony_pcie_init(void) { return 0; }
54#endif
55
56void __init tegra_paz00_wifikill_init(void);
57
49extern struct sys_timer tegra_timer; 58extern struct sys_timer tegra_timer;
50#endif 59#endif