diff options
author | Arnd Bergmann <arnd@arndb.de> | 2012-03-04 15:48:42 -0500 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2012-03-04 15:49:02 -0500 |
commit | 849ad9d819f668d4bb6314f102bd92d16ab98622 (patch) | |
tree | eeec804cc045d6fc022e778b2dacf68e512f3ea7 /arch/arm/mach-tegra | |
parent | 61b80086a525c8a6081257ae40da5dee2bcaee16 (diff) | |
parent | f6a1ba67362fe78a1ec81c355ee638c70689b5d7 (diff) |
Merge tag 'tegra-cleanups' of git://git.kernel.org/pub/scm/linux/kernel/git/olof/tegra into tegra/cleanups
Minor fixes that weren't urgent enough to go into 3.3. The two paz00
patches are in mainline already but got merged after the branch point
for this branch, so they're duplicated. I also ended up merging in
rmk/for-armsoc into this later on to fix a bug introduced by it, so it's
included but it's not the base of this branch.
* tag 'tegra-cleanups' of git://git.kernel.org/pub/scm/linux/kernel/git/olof/tegra:
ARM: tegra: Enable CPUIdle on Tegra20
ARM: tegra: export usb phy symbols
ARM: tegra: build localtimer support only when needed
ARM: tegra: select CPU_FREQ_TABLE
ARM: tegra: select required CPU and L2 errata options
ARM: tegra: paz00: fix wrong UART port on mini-pcie plug
ARM: tegra: paz00: fix wrong SD1 power gpio
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/arm/mach-tegra')
-rw-r--r-- | arch/arm/mach-tegra/Kconfig | 14 | ||||
-rw-r--r-- | arch/arm/mach-tegra/Makefile | 3 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-paz00.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-paz00.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-tegra/common.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-tegra/usb_phy.c | 11 |
6 files changed, 32 insertions, 8 deletions
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig index 373652d76b90..d2cb4b037f7f 100644 --- a/arch/arm/mach-tegra/Kconfig +++ b/arch/arm/mach-tegra/Kconfig | |||
@@ -10,6 +10,14 @@ config ARCH_TEGRA_2x_SOC | |||
10 | select USB_ARCH_HAS_EHCI if USB_SUPPORT | 10 | select USB_ARCH_HAS_EHCI if USB_SUPPORT |
11 | select USB_ULPI if USB_SUPPORT | 11 | select USB_ULPI if USB_SUPPORT |
12 | select USB_ULPI_VIEWPORT if USB_SUPPORT | 12 | select USB_ULPI_VIEWPORT if USB_SUPPORT |
13 | select ARM_ERRATA_720789 | ||
14 | select ARM_ERRATA_742230 | ||
15 | select ARM_ERRATA_751472 | ||
16 | select ARM_ERRATA_754327 | ||
17 | select ARM_ERRATA_764369 | ||
18 | select PL310_ERRATA_727915 if CACHE_L2X0 | ||
19 | select PL310_ERRATA_769419 if CACHE_L2X0 | ||
20 | select CPU_FREQ_TABLE if CPU_FREQ | ||
13 | help | 21 | help |
14 | Support for NVIDIA Tegra AP20 and T20 processors, based on the | 22 | Support for NVIDIA Tegra AP20 and T20 processors, based on the |
15 | ARM CortexA9MP CPU and the ARM PL310 L2 cache controller | 23 | ARM CortexA9MP CPU and the ARM PL310 L2 cache controller |
@@ -23,6 +31,12 @@ config ARCH_TEGRA_3x_SOC | |||
23 | select USB_ULPI if USB_SUPPORT | 31 | select USB_ULPI if USB_SUPPORT |
24 | select USB_ULPI_VIEWPORT if USB_SUPPORT | 32 | select USB_ULPI_VIEWPORT if USB_SUPPORT |
25 | select USE_OF | 33 | select USE_OF |
34 | select ARM_ERRATA_743622 | ||
35 | select ARM_ERRATA_751472 | ||
36 | select ARM_ERRATA_754322 | ||
37 | select ARM_ERRATA_764369 | ||
38 | select PL310_ERRATA_769419 if CACHE_L2X0 | ||
39 | select CPU_FREQ_TABLE if CPU_FREQ | ||
26 | help | 40 | help |
27 | Support for NVIDIA Tegra T30 processor family, based on the | 41 | Support for NVIDIA Tegra T30 processor family, based on the |
28 | ARM CortexA9MP CPU and the ARM PL310 L2 cache controller | 42 | ARM CortexA9MP CPU and the ARM PL310 L2 cache controller |
diff --git a/arch/arm/mach-tegra/Makefile b/arch/arm/mach-tegra/Makefile index e120ff54f663..829066fdc2ad 100644 --- a/arch/arm/mach-tegra/Makefile +++ b/arch/arm/mach-tegra/Makefile | |||
@@ -13,7 +13,8 @@ obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra2_emc.o | |||
13 | obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += pinmux-tegra20-tables.o | 13 | obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += pinmux-tegra20-tables.o |
14 | obj-$(CONFIG_ARCH_TEGRA_3x_SOC) += pinmux-tegra30-tables.o | 14 | obj-$(CONFIG_ARCH_TEGRA_3x_SOC) += pinmux-tegra30-tables.o |
15 | obj-$(CONFIG_ARCH_TEGRA_3x_SOC) += board-dt-tegra30.o | 15 | obj-$(CONFIG_ARCH_TEGRA_3x_SOC) += board-dt-tegra30.o |
16 | obj-$(CONFIG_SMP) += platsmp.o localtimer.o headsmp.o | 16 | obj-$(CONFIG_SMP) += platsmp.o headsmp.o |
17 | obj-$(CONFIG_LOCAL_TIMERS) += localtimer.o | ||
17 | obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o | 18 | obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o |
18 | obj-$(CONFIG_TEGRA_SYSTEM_DMA) += dma.o | 19 | obj-$(CONFIG_TEGRA_SYSTEM_DMA) += dma.o |
19 | obj-$(CONFIG_CPU_FREQ) += cpu-tegra.o | 20 | obj-$(CONFIG_CPU_FREQ) += cpu-tegra.o |
diff --git a/arch/arm/mach-tegra/board-paz00.c b/arch/arm/mach-tegra/board-paz00.c index fcf4f377b1dc..330afdfa2475 100644 --- a/arch/arm/mach-tegra/board-paz00.c +++ b/arch/arm/mach-tegra/board-paz00.c | |||
@@ -60,9 +60,9 @@ static struct plat_serial8250_port debug_uart_platform_data[] = { | |||
60 | .uartclk = 216000000, | 60 | .uartclk = 216000000, |
61 | }, { | 61 | }, { |
62 | /* serial port on mini-pcie */ | 62 | /* serial port on mini-pcie */ |
63 | .membase = IO_ADDRESS(TEGRA_UARTD_BASE), | 63 | .membase = IO_ADDRESS(TEGRA_UARTC_BASE), |
64 | .mapbase = TEGRA_UARTD_BASE, | 64 | .mapbase = TEGRA_UARTC_BASE, |
65 | .irq = INT_UARTD, | 65 | .irq = INT_UARTC, |
66 | .flags = UPF_BOOT_AUTOCONF | UPF_FIXED_TYPE, | 66 | .flags = UPF_BOOT_AUTOCONF | UPF_FIXED_TYPE, |
67 | .type = PORT_TEGRA, | 67 | .type = PORT_TEGRA, |
68 | .iotype = UPIO_MEM, | 68 | .iotype = UPIO_MEM, |
@@ -174,7 +174,7 @@ static void __init tegra_paz00_fixup(struct tag *tags, char **cmdline, | |||
174 | static __initdata struct tegra_clk_init_table paz00_clk_init_table[] = { | 174 | static __initdata struct tegra_clk_init_table paz00_clk_init_table[] = { |
175 | /* name parent rate enabled */ | 175 | /* name parent rate enabled */ |
176 | { "uarta", "pll_p", 216000000, true }, | 176 | { "uarta", "pll_p", 216000000, true }, |
177 | { "uartd", "pll_p", 216000000, true }, | 177 | { "uartc", "pll_p", 216000000, true }, |
178 | 178 | ||
179 | { "pll_p_out4", "pll_p", 24000000, true }, | 179 | { "pll_p_out4", "pll_p", 24000000, true }, |
180 | { "usbd", "clk_m", 12000000, false }, | 180 | { "usbd", "clk_m", 12000000, false }, |
diff --git a/arch/arm/mach-tegra/board-paz00.h b/arch/arm/mach-tegra/board-paz00.h index ffa83f580db6..3c9f8da37ea3 100644 --- a/arch/arm/mach-tegra/board-paz00.h +++ b/arch/arm/mach-tegra/board-paz00.h | |||
@@ -22,7 +22,7 @@ | |||
22 | /* SDCARD */ | 22 | /* SDCARD */ |
23 | #define TEGRA_GPIO_SD1_CD TEGRA_GPIO_PV5 | 23 | #define TEGRA_GPIO_SD1_CD TEGRA_GPIO_PV5 |
24 | #define TEGRA_GPIO_SD1_WP TEGRA_GPIO_PH1 | 24 | #define TEGRA_GPIO_SD1_WP TEGRA_GPIO_PH1 |
25 | #define TEGRA_GPIO_SD1_POWER TEGRA_GPIO_PT3 | 25 | #define TEGRA_GPIO_SD1_POWER TEGRA_GPIO_PV1 |
26 | 26 | ||
27 | /* ULPI */ | 27 | /* ULPI */ |
28 | #define TEGRA_ULPI_RST TEGRA_GPIO_PV0 | 28 | #define TEGRA_ULPI_RST TEGRA_GPIO_PV0 |
diff --git a/arch/arm/mach-tegra/common.c b/arch/arm/mach-tegra/common.c index 2db20da1d585..fac449e84d80 100644 --- a/arch/arm/mach-tegra/common.c +++ b/arch/arm/mach-tegra/common.c | |||
@@ -95,8 +95,6 @@ static void __init tegra_init_cache(u32 tag_latency, u32 data_latency) | |||
95 | #ifdef CONFIG_ARCH_TEGRA_2x_SOC | 95 | #ifdef CONFIG_ARCH_TEGRA_2x_SOC |
96 | void __init tegra20_init_early(void) | 96 | void __init tegra20_init_early(void) |
97 | { | 97 | { |
98 | disable_hlt(); /* idle WFI usage needs to be confirmed */ | ||
99 | |||
100 | tegra_init_fuse(); | 98 | tegra_init_fuse(); |
101 | tegra2_init_clocks(); | 99 | tegra2_init_clocks(); |
102 | tegra_clk_init_from_table(tegra20_clk_init_table); | 100 | tegra_clk_init_from_table(tegra20_clk_init_table); |
diff --git a/arch/arm/mach-tegra/usb_phy.c b/arch/arm/mach-tegra/usb_phy.c index 37576a721aeb..6091cf3d8e8b 100644 --- a/arch/arm/mach-tegra/usb_phy.c +++ b/arch/arm/mach-tegra/usb_phy.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/delay.h> | 22 | #include <linux/delay.h> |
23 | #include <linux/slab.h> | 23 | #include <linux/slab.h> |
24 | #include <linux/err.h> | 24 | #include <linux/err.h> |
25 | #include <linux/export.h> | ||
25 | #include <linux/platform_device.h> | 26 | #include <linux/platform_device.h> |
26 | #include <linux/io.h> | 27 | #include <linux/io.h> |
27 | #include <linux/gpio.h> | 28 | #include <linux/gpio.h> |
@@ -730,6 +731,7 @@ err0: | |||
730 | kfree(phy); | 731 | kfree(phy); |
731 | return ERR_PTR(err); | 732 | return ERR_PTR(err); |
732 | } | 733 | } |
734 | EXPORT_SYMBOL_GPL(tegra_usb_phy_open); | ||
733 | 735 | ||
734 | int tegra_usb_phy_power_on(struct tegra_usb_phy *phy) | 736 | int tegra_usb_phy_power_on(struct tegra_usb_phy *phy) |
735 | { | 737 | { |
@@ -738,6 +740,7 @@ int tegra_usb_phy_power_on(struct tegra_usb_phy *phy) | |||
738 | else | 740 | else |
739 | return utmi_phy_power_on(phy); | 741 | return utmi_phy_power_on(phy); |
740 | } | 742 | } |
743 | EXPORT_SYMBOL_GPL(tegra_usb_phy_power_on); | ||
741 | 744 | ||
742 | void tegra_usb_phy_power_off(struct tegra_usb_phy *phy) | 745 | void tegra_usb_phy_power_off(struct tegra_usb_phy *phy) |
743 | { | 746 | { |
@@ -746,18 +749,21 @@ void tegra_usb_phy_power_off(struct tegra_usb_phy *phy) | |||
746 | else | 749 | else |
747 | utmi_phy_power_off(phy); | 750 | utmi_phy_power_off(phy); |
748 | } | 751 | } |
752 | EXPORT_SYMBOL_GPL(tegra_usb_phy_power_off); | ||
749 | 753 | ||
750 | void tegra_usb_phy_preresume(struct tegra_usb_phy *phy) | 754 | void tegra_usb_phy_preresume(struct tegra_usb_phy *phy) |
751 | { | 755 | { |
752 | if (!phy_is_ulpi(phy)) | 756 | if (!phy_is_ulpi(phy)) |
753 | utmi_phy_preresume(phy); | 757 | utmi_phy_preresume(phy); |
754 | } | 758 | } |
759 | EXPORT_SYMBOL_GPL(tegra_usb_phy_preresume); | ||
755 | 760 | ||
756 | void tegra_usb_phy_postresume(struct tegra_usb_phy *phy) | 761 | void tegra_usb_phy_postresume(struct tegra_usb_phy *phy) |
757 | { | 762 | { |
758 | if (!phy_is_ulpi(phy)) | 763 | if (!phy_is_ulpi(phy)) |
759 | utmi_phy_postresume(phy); | 764 | utmi_phy_postresume(phy); |
760 | } | 765 | } |
766 | EXPORT_SYMBOL_GPL(tegra_usb_phy_postresume); | ||
761 | 767 | ||
762 | void tegra_ehci_phy_restore_start(struct tegra_usb_phy *phy, | 768 | void tegra_ehci_phy_restore_start(struct tegra_usb_phy *phy, |
763 | enum tegra_usb_phy_port_speed port_speed) | 769 | enum tegra_usb_phy_port_speed port_speed) |
@@ -765,24 +771,28 @@ void tegra_ehci_phy_restore_start(struct tegra_usb_phy *phy, | |||
765 | if (!phy_is_ulpi(phy)) | 771 | if (!phy_is_ulpi(phy)) |
766 | utmi_phy_restore_start(phy, port_speed); | 772 | utmi_phy_restore_start(phy, port_speed); |
767 | } | 773 | } |
774 | EXPORT_SYMBOL_GPL(tegra_ehci_phy_restore_start); | ||
768 | 775 | ||
769 | void tegra_ehci_phy_restore_end(struct tegra_usb_phy *phy) | 776 | void tegra_ehci_phy_restore_end(struct tegra_usb_phy *phy) |
770 | { | 777 | { |
771 | if (!phy_is_ulpi(phy)) | 778 | if (!phy_is_ulpi(phy)) |
772 | utmi_phy_restore_end(phy); | 779 | utmi_phy_restore_end(phy); |
773 | } | 780 | } |
781 | EXPORT_SYMBOL_GPL(tegra_ehci_phy_restore_end); | ||
774 | 782 | ||
775 | void tegra_usb_phy_clk_disable(struct tegra_usb_phy *phy) | 783 | void tegra_usb_phy_clk_disable(struct tegra_usb_phy *phy) |
776 | { | 784 | { |
777 | if (!phy_is_ulpi(phy)) | 785 | if (!phy_is_ulpi(phy)) |
778 | utmi_phy_clk_disable(phy); | 786 | utmi_phy_clk_disable(phy); |
779 | } | 787 | } |
788 | EXPORT_SYMBOL_GPL(tegra_usb_phy_clk_disable); | ||
780 | 789 | ||
781 | void tegra_usb_phy_clk_enable(struct tegra_usb_phy *phy) | 790 | void tegra_usb_phy_clk_enable(struct tegra_usb_phy *phy) |
782 | { | 791 | { |
783 | if (!phy_is_ulpi(phy)) | 792 | if (!phy_is_ulpi(phy)) |
784 | utmi_phy_clk_enable(phy); | 793 | utmi_phy_clk_enable(phy); |
785 | } | 794 | } |
795 | EXPORT_SYMBOL_GPL(tegra_usb_phy_clk_enable); | ||
786 | 796 | ||
787 | void tegra_usb_phy_close(struct tegra_usb_phy *phy) | 797 | void tegra_usb_phy_close(struct tegra_usb_phy *phy) |
788 | { | 798 | { |
@@ -794,3 +804,4 @@ void tegra_usb_phy_close(struct tegra_usb_phy *phy) | |||
794 | clk_put(phy->pll_u); | 804 | clk_put(phy->pll_u); |
795 | kfree(phy); | 805 | kfree(phy); |
796 | } | 806 | } |
807 | EXPORT_SYMBOL_GPL(tegra_usb_phy_close); | ||