diff mbox

[v2,7/8] arm/tegra: implement support for tegra30

Message ID 1320242948-21061-8-git-send-email-pdeschrijver@nvidia.com
State Superseded, archived
Headers show

Commit Message

Peter De Schrijver Nov. 2, 2011, 2:09 p.m. UTC
Add support for tegra30 SoC. This includes a device tree compatible type for
this SoC ("nvidia,tegra30") and adds L2 cache initialization for this new SoC.
The clock framework is still missing, which prevents most drivers from working.

Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com>
---
 arch/arm/mach-tegra/Kconfig    |   18 +++++++++++++-----
 arch/arm/mach-tegra/board-dt.c |    1 +
 arch/arm/mach-tegra/board.h    |    1 +
 arch/arm/mach-tegra/common.c   |    6 ++++++
 4 files changed, 21 insertions(+), 5 deletions(-)

Comments

Stephen Warren Nov. 4, 2011, 8:43 p.m. UTC | #1
Peter De Schrijver wrote at Wednesday, November 02, 2011 8:09 AM:
> Add support for tegra30 SoC. This includes a device tree compatible type for
> this SoC ("nvidia,tegra30") and adds L2 cache initialization for this new SoC.
> The clock framework is still missing, which prevents most drivers from working.
...
> diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
...
> @@ -17,7 +14,18 @@ config ARCH_TEGRA_2x_SOC
>  	  Support for NVIDIA Tegra AP20 and T20 processors, based on the
>  	  ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
> 
> -endchoice
> +config ARCH_TEGRA_3x_SOC

Wasn't that config option already used earlier in the series, e.g. in
[PATCH v2 6/8] arm/tegra: pinmux tables and definitions for tegra30.
Should this patch be pushed earlier so it isn't used before it's created?
I'm not sure how much that matters.
Peter De Schrijver Nov. 7, 2011, 12:47 p.m. UTC | #2
On Fri, Nov 04, 2011 at 09:43:57PM +0100, Stephen Warren wrote:
> Peter De Schrijver wrote at Wednesday, November 02, 2011 8:09 AM:
> > Add support for tegra30 SoC. This includes a device tree compatible type for
> > this SoC ("nvidia,tegra30") and adds L2 cache initialization for this new SoC.
> > The clock framework is still missing, which prevents most drivers from working.
> ...
> > diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
> ...
> > @@ -17,7 +14,18 @@ config ARCH_TEGRA_2x_SOC
> >  	  Support for NVIDIA Tegra AP20 and T20 processors, based on the
> >  	  ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
> > 
> > -endchoice
> > +config ARCH_TEGRA_3x_SOC
> 
> Wasn't that config option already used earlier in the series, e.g. in
> [PATCH v2 6/8] arm/tegra: pinmux tables and definitions for tegra30.

It is. Is that a problem?

Cheers,

Peter.
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
index 91aff7c..f2eb6d1 100644
--- a/arch/arm/mach-tegra/Kconfig
+++ b/arch/arm/mach-tegra/Kconfig
@@ -2,11 +2,8 @@  if ARCH_TEGRA
 
 comment "NVIDIA Tegra options"
 
-choice
-	prompt "Select Tegra processor family for target system"
-
 config ARCH_TEGRA_2x_SOC
-	bool "Tegra 2 family"
+	bool "Enable support for Tegra20 family"
 	select CPU_V7
 	select ARM_GIC
 	select ARCH_REQUIRE_GPIOLIB
@@ -17,7 +14,18 @@  config ARCH_TEGRA_2x_SOC
 	  Support for NVIDIA Tegra AP20 and T20 processors, based on the
 	  ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
 
-endchoice
+config ARCH_TEGRA_3x_SOC
+	bool "Enable support for Tegra30 family"
+	select CPU_V7
+	select ARM_GIC
+	select ARCH_REQUIRE_GPIOLIB
+	select USB_ARCH_HAS_EHCI if USB_SUPPORT
+	select USB_ULPI if USB_SUPPORT
+	select USB_ULPI_VIEWPORT if USB_SUPPORT
+	select USE_OF
+	help
+	  Support for NVIDIA Tegra T30 processor family, based on the
+	  ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
 
 config TEGRA_PCI
 	bool "PCI Express support"
diff --git a/arch/arm/mach-tegra/board-dt.c b/arch/arm/mach-tegra/board-dt.c
index a7bae50..1680e96 100644
--- a/arch/arm/mach-tegra/board-dt.c
+++ b/arch/arm/mach-tegra/board-dt.c
@@ -123,6 +123,7 @@  static struct {
 	void (*init)(void);
 } early_init[] __initdata = {
 	{ "nvidia,tegra20", tegra20_init_early },
+	{ "nvidia,tegra30", tegra30_init_early },
 };
 
 static void __init tegra_init_early(void)
diff --git a/arch/arm/mach-tegra/board.h b/arch/arm/mach-tegra/board.h
index b86cdab..708b330a 100644
--- a/arch/arm/mach-tegra/board.h
+++ b/arch/arm/mach-tegra/board.h
@@ -24,6 +24,7 @@ 
 #include <linux/types.h>
 
 void __init tegra20_init_early(void);
+void __init tegra30_init_early(void);
 void __init tegra_map_common_io(void);
 void __init tegra_init_irq(void);
 void __init tegra_init_clock(void);
diff --git a/arch/arm/mach-tegra/common.c b/arch/arm/mach-tegra/common.c
index 6173fd8..30a6864 100644
--- a/arch/arm/mach-tegra/common.c
+++ b/arch/arm/mach-tegra/common.c
@@ -92,3 +92,9 @@  void __init tegra20_init_early(void)
 	tegra_init_cache(0x331, 0x441);
 	tegra_setup_system_reset();
 }
+
+void __init tegra30_init_early(void)
+{
+	tegra_init_cache(0x441, 0x551);
+	tegra_setup_system_reset();
+}