summaryrefslogtreecommitdiff
path: root/arch/arm/mach-imx/imx8m
diff options
context:
space:
mode:
authorYe Li <ye.li@nxp.com>2019-12-24 19:30:45 -0800
committerYe Li <ye.li@nxp.com>2022-04-06 18:03:26 +0800
commit86ddebd6a097e2ab1a3ebf8de58ca3243d2f7a45 (patch)
treebb64bc49f601b462c20fbe0806a7c471e55cdbce /arch/arm/mach-imx/imx8m
parent264d5ebf365f493ea76d5adf632ac73264265996 (diff)
MLK-23165-12 imx8mp: Support imx8mp USB PHY
Update PHY settings to select 24M ref clock Enable clock in HSIOMIX GPR for SPL which does not call ATF USB domain power up Reviewed-by: Jun Li <jun.li@nxp.com> Signed-off-by: Ye Li <ye.li@nxp.com> (cherry picked from commit aa0f45fed58f891e246e6ec743a7de71eb69c911) (cherry picked from commit 6375056baf59d271a06fdbbb5248706ebe4977fd) (cherry picked from commit 82661008a4ab3f2c82463d64b5c4af12b8c569dd) (cherry picked from commit 01ea8acd74f44bf29f0e8f9acb20072104d9e46a)
Diffstat (limited to 'arch/arm/mach-imx/imx8m')
-rw-r--r--arch/arm/mach-imx/imx8m/soc.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/imx8m/soc.c b/arch/arm/mach-imx/imx8m/soc.c
index b4ce67dbb1..b8bb9e86c9 100644
--- a/arch/arm/mach-imx/imx8m/soc.c
+++ b/arch/arm/mach-imx/imx8m/soc.c
@@ -1362,6 +1362,12 @@ int arch_misc_init(void)
#endif
#ifdef CONFIG_SPL_BUILD
+#ifdef CONFIG_IMX8MP
+#define HSIO_GPR_BASE (0x32F10000U)
+#define HSIO_GPR_REG_0_USB_CLOCK_MODULE_EN_SHIFT (1)
+#define HSIO_GPR_REG_0_USB_CLOCK_MODULE_EN (0x1U << HSIO_GPR_REG_0_USB_CLOCK_MODULE_EN_SHIFT)
+#endif
+
static uint32_t gpc_pu_m_core_offset[11] = {
0xc00, 0xc40, 0xc80, 0xcc0,
0xdc0, 0xe00, 0xe40, 0xe80,
@@ -1388,6 +1394,15 @@ void imx8m_usb_power_domain(uint32_t domain_id, bool on)
uint32_t val;
uintptr_t reg;
+#ifdef CONFIG_IMX8MP
+ if (on) {
+ /* enable usb clock via hsio gpr */
+ reg = readl(HSIO_GPR_BASE);
+ reg |= HSIO_GPR_REG_0_USB_CLOCK_MODULE_EN;
+ writel(reg, HSIO_GPR_BASE);
+ }
+#endif
+
imx_gpc_set_m_core_pgc(gpc_pu_m_core_offset[domain_id], true);
reg = GPC_BASE_ADDR + (on ? 0xf8 : 0x104);