summaryrefslogtreecommitdiff
path: root/arch/arm/mach-rmobile
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-rmobile')
-rw-r--r--arch/arm/mach-rmobile/Kconfig19
-rw-r--r--arch/arm/mach-rmobile/Kconfig.rzn120
-rw-r--r--arch/arm/mach-rmobile/cpu_info-rcar.c6
-rw-r--r--arch/arm/mach-rmobile/cpu_info.c17
4 files changed, 58 insertions, 4 deletions
diff --git a/arch/arm/mach-rmobile/Kconfig b/arch/arm/mach-rmobile/Kconfig
index 1ef7d68bdf3..3061ccd34c8 100644
--- a/arch/arm/mach-rmobile/Kconfig
+++ b/arch/arm/mach-rmobile/Kconfig
@@ -48,6 +48,24 @@ config RZA1
prompt "Renesas ARM SoCs RZ/A1 (32bit)"
select CPU_V7A
+config RZN1
+ prompt "Renesas ARM SoCs RZ/N1 (32bit)"
+ select CPU_V7A
+ select ARMV7_SET_CORTEX_SMPEN if !SPL
+ select SPL_ARMV7_SET_CORTEX_SMPEN if SPL
+ select CLK
+ select CLK_RENESAS
+ select CLK_R9A06G032
+ select DM
+ select DM_ETH
+ select DM_SERIAL
+ select PINCTRL
+ select PINCONF
+ select REGMAP
+ select SYSRESET
+ select SYSRESET_SYSCON
+ imply CMD_DM
+
endchoice
config SYS_SOC
@@ -56,5 +74,6 @@ config SYS_SOC
source "arch/arm/mach-rmobile/Kconfig.32"
source "arch/arm/mach-rmobile/Kconfig.64"
source "arch/arm/mach-rmobile/Kconfig.rza1"
+source "arch/arm/mach-rmobile/Kconfig.rzn1"
endif
diff --git a/arch/arm/mach-rmobile/Kconfig.rzn1 b/arch/arm/mach-rmobile/Kconfig.rzn1
new file mode 100644
index 00000000000..73138d69f95
--- /dev/null
+++ b/arch/arm/mach-rmobile/Kconfig.rzn1
@@ -0,0 +1,20 @@
+if RZN1
+
+choice
+ prompt "Renesas RZ/N1 Board select"
+ default TARGET_SCHNEIDER_RZN1
+
+config TARGET_SCHNEIDER_RZN1
+ bool "Schneider RZN1 board"
+ help
+ Support the Schneider RZN1D and RZN1S boards, which are based
+ on the Renesas RZ/N1 SoC.
+
+endchoice
+
+config SYS_SOC
+ default "rzn1"
+
+source "board/schneider/rzn1-snarc/Kconfig"
+
+endif
diff --git a/arch/arm/mach-rmobile/cpu_info-rcar.c b/arch/arm/mach-rmobile/cpu_info-rcar.c
index 62017f52c3b..8fc4cd7f9de 100644
--- a/arch/arm/mach-rmobile/cpu_info-rcar.c
+++ b/arch/arm/mach-rmobile/cpu_info-rcar.c
@@ -11,6 +11,7 @@
#define R8A7796_REV_1_0 0x5200
#define R8A7796_REV_1_1 0x5210
#define R8A7796_REV_1_3 0x5211
+#define R8A77995_REV_1_1 0x5810
static u32 rmobile_get_prr(void)
{
@@ -30,7 +31,8 @@ u32 rmobile_get_cpu_rev_integer(void)
const u32 prr = rmobile_get_prr();
const u32 rev = prr & PRR_MASK;
- if (rev == R8A7796_REV_1_1 || rev == R8A7796_REV_1_3)
+ if (rev == R8A7796_REV_1_1 || rev == R8A7796_REV_1_3 ||
+ rev == R8A77995_REV_1_1)
return 1;
else
return ((prr & 0x000000F0) >> 4) + 1;
@@ -41,7 +43,7 @@ u32 rmobile_get_cpu_rev_fraction(void)
const u32 prr = rmobile_get_prr();
const u32 rev = prr & PRR_MASK;
- if (rev == R8A7796_REV_1_1)
+ if (rev == R8A7796_REV_1_1 || rev == R8A77995_REV_1_1)
return 1;
else if (rev == R8A7796_REV_1_3)
return 3;
diff --git a/arch/arm/mach-rmobile/cpu_info.c b/arch/arm/mach-rmobile/cpu_info.c
index 7e7465a2c8b..1d33e2aa9da 100644
--- a/arch/arm/mach-rmobile/cpu_info.c
+++ b/arch/arm/mach-rmobile/cpu_info.c
@@ -30,7 +30,7 @@ void enable_caches(void)
#endif
#ifdef CONFIG_DISPLAY_CPUINFO
-#ifndef CONFIG_RZA1
+#if !defined(CONFIG_RZA1) && !defined(CONFIG_RZN1)
__weak const u8 *rzg_get_cpu_name(void)
{
return 0;
@@ -120,17 +120,30 @@ int print_cpuinfo(void)
{
int i = rmobile_cpuinfo_idx();
+ if (rmobile_cpuinfo[i].cpu_type == RMOBILE_CPU_TYPE_R8A7796 &&
+ rmobile_get_cpu_rev_integer() == 1 &&
+ rmobile_get_cpu_rev_fraction() == 1) {
+ printf("CPU: Renesas Electronics %s rev 1.1/1.2\n", get_cpu_name(i));
+ return 0;
+ }
+
printf("CPU: Renesas Electronics %s rev %d.%d\n",
get_cpu_name(i), rmobile_get_cpu_rev_integer(),
rmobile_get_cpu_rev_fraction());
return 0;
}
-#else
+#elif defined(CONFIG_RZA1)
int print_cpuinfo(void)
{
printf("CPU: Renesas Electronics RZ/A1\n");
return 0;
}
+#else /* CONFIG_RZN1 */
+int print_cpuinfo(void)
+{
+ printf("CPU: Renesas Electronics RZ/N1\n");
+ return 0;
+}
#endif
#endif /* CONFIG_DISPLAY_CPUINFO */