[PATCH 4/4] ARM: i.MX6UL: initialize SNVS
Stefan Kerkmann
s.kerkmann at pengutronix.de
Wed Jun 3 06:33:45 PDT 2026
The snvs lpgr register can only be written after initializing the snvs
peripheral. Which is identical across the i.MX8/7/6 families.
Signed-off-by: Stefan Kerkmann <s.kerkmann at pengutronix.de>
---
arch/arm/mach-imx/Kconfig | 2 +-
arch/arm/mach-imx/cpu_init.c | 2 ++
arch/arm/mach-imx/snvs.c | 8 ++++++++
include/mach/imx/snvs.h | 1 +
4 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index 7f78e5282f..9d198e5406 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -70,7 +70,7 @@ config ARCH_IMX_TZASC
config ARCH_IMX_SNVS
bool
- depends on ARCH_IMX7 || ARCH_IMX8M
+ depends on ARCH_IMX6 || ARCH_IMX7 || ARCH_IMX8M
default y
#
diff --git a/arch/arm/mach-imx/cpu_init.c b/arch/arm/mach-imx/cpu_init.c
index e0fa459fe7..4fd72a6f30 100644
--- a/arch/arm/mach-imx/cpu_init.c
+++ b/arch/arm/mach-imx/cpu_init.c
@@ -12,6 +12,7 @@
#include <mach/imx/imx8mq-regs.h>
#include <mach/imx/imx8m-ccm-regs.h>
#include <mach/imx/imx9-regs.h>
+#include <mach/imx/snvs.h>
#include <mach/imx/trdc.h>
#include <io.h>
#include <asm/cache.h>
@@ -52,6 +53,7 @@ void imx6ul_cpu_lowlevel_init(void)
{
cortex_a7_lowlevel_init();
arm_cpu_lowlevel_init();
+ imx6_setup_snvs();
}
void imx7_cpu_lowlevel_init(void)
diff --git a/arch/arm/mach-imx/snvs.c b/arch/arm/mach-imx/snvs.c
index 8ec8accf6a..eb049eaf6f 100644
--- a/arch/arm/mach-imx/snvs.c
+++ b/arch/arm/mach-imx/snvs.c
@@ -3,6 +3,7 @@
#include <io.h>
#include <linux/bits.h>
#include <mach/imx/snvs.h>
+#include <mach/imx/imx6-regs.h>
#include <mach/imx/imx7-regs.h>
#include <mach/imx/imx8m-regs.h>
@@ -36,6 +37,13 @@ void imx7_setup_snvs(void)
snvs_init(snvs);
}
+void imx6_setup_snvs(void)
+{
+ void __iomem *snvs = IOMEM(MX6_SNVS_BASE_ADDR);
+
+ snvs_init(snvs);
+}
+
void imx8m_setup_snvs(void)
{
void __iomem *snvs = IOMEM(MX8M_SNVS_BASE_ADDR);
diff --git a/include/mach/imx/snvs.h b/include/mach/imx/snvs.h
index 65e1da34f0..dde2602074 100644
--- a/include/mach/imx/snvs.h
+++ b/include/mach/imx/snvs.h
@@ -3,6 +3,7 @@
#ifndef __MACH_IMX_SNVS_H
#define __MACH_IMX_SNVS_H
+void imx6_setup_snvs(void);
void imx7_setup_snvs(void);
void imx8m_setup_snvs(void);
--
2.47.3
More information about the barebox
mailing list