diff options
author | Olof Johansson <olof@lixom.net> | 2016-01-12 13:14:52 -0500 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2016-01-12 13:14:52 -0500 |
commit | d0ac6119aaae419baf824b996d1690fbe926971e (patch) | |
tree | e502b68de00024cd4ba74edf202ef55773ba912c | |
parent | 3e9121950c92a65e33e0163d2ba111b4d9293d4c (diff) | |
parent | a262e87ff354f12447bb6268bd63edf7ba1c20e0 (diff) |
Merge tag 'tegra-for-4.5-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into late/tegra
ARM: tegra: Core SoC changes for v4.5-rc1
The big thing here is Tegra210 support, which is really only the Kconfig
symbol. Other than that there's a few miscellaneous fixes.
* tag 'tegra-for-4.5-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
ARM: tegra: select USB_ULPI from EHCI rather than platform
ARM: tegra: Ensure entire dcache is flushed on entering LP0/1
amba: Hide TEGRA_AHB symbol
soc/tegra: Add Tegra210 support
soc/tegra: Provide per-SoC Kconfig symbols
Signed-off-by: Olof Johansson <olof@lixom.net>
-rw-r--r-- | arch/arm/mach-tegra/Kconfig | 52 | ||||
-rw-r--r-- | arch/arm/mach-tegra/sleep-tegra20.S | 3 | ||||
-rw-r--r-- | arch/arm/mach-tegra/sleep-tegra30.S | 3 | ||||
-rw-r--r-- | arch/arm64/Kconfig.platforms | 12 | ||||
-rw-r--r-- | drivers/amba/Kconfig | 2 | ||||
-rw-r--r-- | drivers/soc/Kconfig | 1 | ||||
-rw-r--r-- | drivers/soc/tegra/Kconfig | 83 | ||||
-rw-r--r-- | drivers/usb/host/Kconfig | 2 |
8 files changed, 93 insertions, 65 deletions
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig index a90f3556017f..0fa8b84ed657 100644 --- a/arch/arm/mach-tegra/Kconfig +++ b/arch/arm/mach-tegra/Kconfig | |||
@@ -13,57 +13,5 @@ menuconfig ARCH_TEGRA | |||
13 | select ARCH_HAS_RESET_CONTROLLER | 13 | select ARCH_HAS_RESET_CONTROLLER |
14 | select RESET_CONTROLLER | 14 | select RESET_CONTROLLER |
15 | select SOC_BUS | 15 | select SOC_BUS |
16 | select USB_ULPI if USB_PHY | ||
17 | select USB_ULPI_VIEWPORT if USB_PHY | ||
18 | help | 16 | help |
19 | This enables support for NVIDIA Tegra based systems. | 17 | This enables support for NVIDIA Tegra based systems. |
20 | |||
21 | if ARCH_TEGRA | ||
22 | |||
23 | config ARCH_TEGRA_2x_SOC | ||
24 | bool "Enable support for Tegra20 family" | ||
25 | select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP | ||
26 | select ARM_ERRATA_720789 | ||
27 | select ARM_ERRATA_754327 if SMP | ||
28 | select ARM_ERRATA_764369 if SMP | ||
29 | select PINCTRL_TEGRA20 | ||
30 | select PL310_ERRATA_727915 if CACHE_L2X0 | ||
31 | select PL310_ERRATA_769419 if CACHE_L2X0 | ||
32 | select TEGRA_TIMER | ||
33 | help | ||
34 | Support for NVIDIA Tegra AP20 and T20 processors, based on the | ||
35 | ARM CortexA9MP CPU and the ARM PL310 L2 cache controller | ||
36 | |||
37 | config ARCH_TEGRA_3x_SOC | ||
38 | bool "Enable support for Tegra30 family" | ||
39 | select ARM_ERRATA_754322 | ||
40 | select ARM_ERRATA_764369 if SMP | ||
41 | select PINCTRL_TEGRA30 | ||
42 | select PL310_ERRATA_769419 if CACHE_L2X0 | ||
43 | select TEGRA_TIMER | ||
44 | help | ||
45 | Support for NVIDIA Tegra T30 processor family, based on the | ||
46 | ARM CortexA9MP CPU and the ARM PL310 L2 cache controller | ||
47 | |||
48 | config ARCH_TEGRA_114_SOC | ||
49 | bool "Enable support for Tegra114 family" | ||
50 | select ARM_ERRATA_798181 if SMP | ||
51 | select ARM_L1_CACHE_SHIFT_6 | ||
52 | select HAVE_ARM_ARCH_TIMER | ||
53 | select PINCTRL_TEGRA114 | ||
54 | select TEGRA_TIMER | ||
55 | help | ||
56 | Support for NVIDIA Tegra T114 processor family, based on the | ||
57 | ARM CortexA15MP CPU | ||
58 | |||
59 | config ARCH_TEGRA_124_SOC | ||
60 | bool "Enable support for Tegra124 family" | ||
61 | select ARM_L1_CACHE_SHIFT_6 | ||
62 | select HAVE_ARM_ARCH_TIMER | ||
63 | select PINCTRL_TEGRA124 | ||
64 | select TEGRA_TIMER | ||
65 | help | ||
66 | Support for NVIDIA Tegra T124 processor family, based on the | ||
67 | ARM CortexA15MP CPU | ||
68 | |||
69 | endif | ||
diff --git a/arch/arm/mach-tegra/sleep-tegra20.S b/arch/arm/mach-tegra/sleep-tegra20.S index e6b684e14322..f5d19667484e 100644 --- a/arch/arm/mach-tegra/sleep-tegra20.S +++ b/arch/arm/mach-tegra/sleep-tegra20.S | |||
@@ -231,8 +231,11 @@ ENDPROC(tegra20_cpu_is_resettable_soon) | |||
231 | * tegra20_tear_down_core in IRAM | 231 | * tegra20_tear_down_core in IRAM |
232 | */ | 232 | */ |
233 | ENTRY(tegra20_sleep_core_finish) | 233 | ENTRY(tegra20_sleep_core_finish) |
234 | mov r4, r0 | ||
234 | /* Flush, disable the L1 data cache and exit SMP */ | 235 | /* Flush, disable the L1 data cache and exit SMP */ |
236 | mov r0, #TEGRA_FLUSH_CACHE_ALL | ||
235 | bl tegra_disable_clean_inv_dcache | 237 | bl tegra_disable_clean_inv_dcache |
238 | mov r0, r4 | ||
236 | 239 | ||
237 | mov32 r3, tegra_shut_off_mmu | 240 | mov32 r3, tegra_shut_off_mmu |
238 | add r3, r3, r0 | 241 | add r3, r3, r0 |
diff --git a/arch/arm/mach-tegra/sleep-tegra30.S b/arch/arm/mach-tegra/sleep-tegra30.S index 9a2f0b051e10..16e5ff03383c 100644 --- a/arch/arm/mach-tegra/sleep-tegra30.S +++ b/arch/arm/mach-tegra/sleep-tegra30.S | |||
@@ -242,8 +242,11 @@ ENDPROC(tegra30_cpu_shutdown) | |||
242 | * tegra30_tear_down_core in IRAM | 242 | * tegra30_tear_down_core in IRAM |
243 | */ | 243 | */ |
244 | ENTRY(tegra30_sleep_core_finish) | 244 | ENTRY(tegra30_sleep_core_finish) |
245 | mov r4, r0 | ||
245 | /* Flush, disable the L1 data cache and exit SMP */ | 246 | /* Flush, disable the L1 data cache and exit SMP */ |
247 | mov r0, #TEGRA_FLUSH_CACHE_ALL | ||
246 | bl tegra_disable_clean_inv_dcache | 248 | bl tegra_disable_clean_inv_dcache |
249 | mov r0, r4 | ||
247 | 250 | ||
248 | /* | 251 | /* |
249 | * Preload all the address literals that are needed for the | 252 | * Preload all the address literals that are needed for the |
diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms index 4043c35962cc..2c0411670f82 100644 --- a/arch/arm64/Kconfig.platforms +++ b/arch/arm64/Kconfig.platforms | |||
@@ -86,18 +86,6 @@ config ARCH_TEGRA | |||
86 | help | 86 | help |
87 | This enables support for the NVIDIA Tegra SoC family. | 87 | This enables support for the NVIDIA Tegra SoC family. |
88 | 88 | ||
89 | config ARCH_TEGRA_132_SOC | ||
90 | bool "NVIDIA Tegra132 SoC" | ||
91 | depends on ARCH_TEGRA | ||
92 | select PINCTRL_TEGRA124 | ||
93 | select USB_ULPI if USB_PHY | ||
94 | select USB_ULPI_VIEWPORT if USB_PHY | ||
95 | help | ||
96 | Enable support for NVIDIA Tegra132 SoC, based on the Denver | ||
97 | ARMv8 CPU. The Tegra132 SoC is similar to the Tegra124 SoC, | ||
98 | but contains an NVIDIA Denver CPU complex in place of | ||
99 | Tegra124's "4+1" Cortex-A15 CPU complex. | ||
100 | |||
101 | config ARCH_SPRD | 89 | config ARCH_SPRD |
102 | bool "Spreadtrum SoC platform" | 90 | bool "Spreadtrum SoC platform" |
103 | help | 91 | help |
diff --git a/drivers/amba/Kconfig b/drivers/amba/Kconfig index 4a5c9d279059..294ba6f36396 100644 --- a/drivers/amba/Kconfig +++ b/drivers/amba/Kconfig | |||
@@ -4,7 +4,7 @@ config ARM_AMBA | |||
4 | if ARM_AMBA | 4 | if ARM_AMBA |
5 | 5 | ||
6 | config TEGRA_AHB | 6 | config TEGRA_AHB |
7 | bool "Enable AHB driver for NVIDIA Tegra SoCs" | 7 | bool |
8 | default y if ARCH_TEGRA | 8 | default y if ARCH_TEGRA |
9 | help | 9 | help |
10 | Adds AHB configuration functionality for NVIDIA Tegra SoCs, | 10 | Adds AHB configuration functionality for NVIDIA Tegra SoCs, |
diff --git a/drivers/soc/Kconfig b/drivers/soc/Kconfig index 4e853ed2c82b..a8d72baf16ea 100644 --- a/drivers/soc/Kconfig +++ b/drivers/soc/Kconfig | |||
@@ -5,6 +5,7 @@ source "drivers/soc/mediatek/Kconfig" | |||
5 | source "drivers/soc/qcom/Kconfig" | 5 | source "drivers/soc/qcom/Kconfig" |
6 | source "drivers/soc/rockchip/Kconfig" | 6 | source "drivers/soc/rockchip/Kconfig" |
7 | source "drivers/soc/sunxi/Kconfig" | 7 | source "drivers/soc/sunxi/Kconfig" |
8 | source "drivers/soc/tegra/Kconfig" | ||
8 | source "drivers/soc/ti/Kconfig" | 9 | source "drivers/soc/ti/Kconfig" |
9 | source "drivers/soc/versatile/Kconfig" | 10 | source "drivers/soc/versatile/Kconfig" |
10 | 11 | ||
diff --git a/drivers/soc/tegra/Kconfig b/drivers/soc/tegra/Kconfig new file mode 100644 index 000000000000..d0c3c3e085e3 --- /dev/null +++ b/drivers/soc/tegra/Kconfig | |||
@@ -0,0 +1,83 @@ | |||
1 | if ARCH_TEGRA | ||
2 | |||
3 | # 32-bit ARM SoCs | ||
4 | if ARM | ||
5 | |||
6 | config ARCH_TEGRA_2x_SOC | ||
7 | bool "Enable support for Tegra20 family" | ||
8 | select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP | ||
9 | select ARM_ERRATA_720789 | ||
10 | select ARM_ERRATA_754327 if SMP | ||
11 | select ARM_ERRATA_764369 if SMP | ||
12 | select PINCTRL_TEGRA20 | ||
13 | select PL310_ERRATA_727915 if CACHE_L2X0 | ||
14 | select PL310_ERRATA_769419 if CACHE_L2X0 | ||
15 | select TEGRA_TIMER | ||
16 | help | ||
17 | Support for NVIDIA Tegra AP20 and T20 processors, based on the | ||
18 | ARM CortexA9MP CPU and the ARM PL310 L2 cache controller | ||
19 | |||
20 | config ARCH_TEGRA_3x_SOC | ||
21 | bool "Enable support for Tegra30 family" | ||
22 | select ARM_ERRATA_754322 | ||
23 | select ARM_ERRATA_764369 if SMP | ||
24 | select PINCTRL_TEGRA30 | ||
25 | select PL310_ERRATA_769419 if CACHE_L2X0 | ||
26 | select TEGRA_TIMER | ||
27 | help | ||
28 | Support for NVIDIA Tegra T30 processor family, based on the | ||
29 | ARM CortexA9MP CPU and the ARM PL310 L2 cache controller | ||
30 | |||
31 | config ARCH_TEGRA_114_SOC | ||
32 | bool "Enable support for Tegra114 family" | ||
33 | select ARM_ERRATA_798181 if SMP | ||
34 | select ARM_L1_CACHE_SHIFT_6 | ||
35 | select HAVE_ARM_ARCH_TIMER | ||
36 | select PINCTRL_TEGRA114 | ||
37 | select TEGRA_TIMER | ||
38 | help | ||
39 | Support for NVIDIA Tegra T114 processor family, based on the | ||
40 | ARM CortexA15MP CPU | ||
41 | |||
42 | config ARCH_TEGRA_124_SOC | ||
43 | bool "Enable support for Tegra124 family" | ||
44 | select ARM_L1_CACHE_SHIFT_6 | ||
45 | select HAVE_ARM_ARCH_TIMER | ||
46 | select PINCTRL_TEGRA124 | ||
47 | select TEGRA_TIMER | ||
48 | help | ||
49 | Support for NVIDIA Tegra T124 processor family, based on the | ||
50 | ARM CortexA15MP CPU | ||
51 | |||
52 | endif | ||
53 | |||
54 | # 64-bit ARM SoCs | ||
55 | if ARM64 | ||
56 | |||
57 | config ARCH_TEGRA_132_SOC | ||
58 | bool "NVIDIA Tegra132 SoC" | ||
59 | select PINCTRL_TEGRA124 | ||
60 | help | ||
61 | Enable support for NVIDIA Tegra132 SoC, based on the Denver | ||
62 | ARMv8 CPU. The Tegra132 SoC is similar to the Tegra124 SoC, | ||
63 | but contains an NVIDIA Denver CPU complex in place of | ||
64 | Tegra124's "4+1" Cortex-A15 CPU complex. | ||
65 | |||
66 | config ARCH_TEGRA_210_SOC | ||
67 | bool "NVIDIA Tegra210 SoC" | ||
68 | select PINCTRL_TEGRA210 | ||
69 | help | ||
70 | Enable support for the NVIDIA Tegra210 SoC. Also known as Tegra X1, | ||
71 | the Tegra210 has four Cortex-A57 cores paired with four Cortex-A53 | ||
72 | cores in a switched configuration. It features a GPU of the Maxwell | ||
73 | architecture with support for DX11, SM4, OpenGL 4.5, OpenGL ES 3.1 | ||
74 | and providing 256 CUDA cores. It supports hardware-accelerated en- | ||
75 | and decoding of various video standards including H.265, H.264 and | ||
76 | VP8 at 4K resolution and up to 60 fps. | ||
77 | |||
78 | Besides the multimedia features it also comes with a variety of I/O | ||
79 | controllers, such as GPIO, I2C, SPI, SDHCI, PCIe, SATA and XHCI, to | ||
80 | name only a few. | ||
81 | |||
82 | endif | ||
83 | endif | ||
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig index 3bb08870148f..95e72d75e0a0 100644 --- a/drivers/usb/host/Kconfig +++ b/drivers/usb/host/Kconfig | |||
@@ -220,6 +220,8 @@ config USB_EHCI_TEGRA | |||
220 | depends on ARCH_TEGRA | 220 | depends on ARCH_TEGRA |
221 | select USB_EHCI_ROOT_HUB_TT | 221 | select USB_EHCI_ROOT_HUB_TT |
222 | select USB_PHY | 222 | select USB_PHY |
223 | select USB_ULPI | ||
224 | select USB_ULPI_VIEWPORT | ||
223 | help | 225 | help |
224 | This driver enables support for the internal USB Host Controllers | 226 | This driver enables support for the internal USB Host Controllers |
225 | found in NVIDIA Tegra SoCs. The controllers are EHCI compliant. | 227 | found in NVIDIA Tegra SoCs. The controllers are EHCI compliant. |