From 61598093bbdd283a7edc367d900f223070ead8d2 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Fri, 10 May 2024 07:43:03 +0000
Subject: [PATCH] add ax88772C AX88772C_eeprom_tools
---
u-boot/arch/arm/mach-rockchip/rv1126/rv1126.c | 38 +++++++++++++++++++++++---------------
1 files changed, 23 insertions(+), 15 deletions(-)
diff --git a/u-boot/arch/arm/mach-rockchip/rv1126/rv1126.c b/u-boot/arch/arm/mach-rockchip/rv1126/rv1126.c
index 311310d..2f712e2 100644
--- a/u-boot/arch/arm/mach-rockchip/rv1126/rv1126.c
+++ b/u-boot/arch/arm/mach-rockchip/rv1126/rv1126.c
@@ -63,6 +63,9 @@
#define PMU_PWR_DWN_ST (0x108)
#define PMU_PWR_GATE_SFTCON (0x110)
+#define PMU_BUS_IDLE_NPU BIT(18)
+#define PMU_BUS_IDLE_VEPU BIT(9)
+
#define CRU_BASE 0xFF490000
#define CRU_CLKSEL_CON02 0x108
#define CRU_CLKSEL_CON03 0x10c
@@ -548,6 +551,7 @@
* CONFIG_DM_RAMDISK: for ramboot that without SPL.
*/
#if defined(CONFIG_SPL_BUILD) || defined(CONFIG_DM_RAMDISK)
+ u32 pd_st, idle_st;
int delay;
/*
@@ -624,11 +628,7 @@
do {
udelay(1);
delay--;
- if (delay == 0) {
- printf("Fail to set domain.");
- hang();
- }
- } while (readl(PMU_BASE_ADDR + PMU_PWR_DWN_ST));
+ } while (delay && readl(PMU_BASE_ADDR + PMU_PWR_DWN_ST));
/* release all idle request */
writel(0xffff0000, PMU_BASE_ADDR + PMU_BUS_IDLE_SFTCON(0));
@@ -639,22 +639,30 @@
do {
udelay(1);
delay--;
- if (delay == 0) {
- printf("Fail to get ack on domain.\n");
- hang();
- }
- } while (readl(PMU_BASE_ADDR + PMU_BUS_IDLE_ACK));
+ } while (delay && readl(PMU_BASE_ADDR + PMU_BUS_IDLE_ACK));
delay = 1000;
/* wait idle status */
do {
udelay(1);
delay--;
- if (delay == 0) {
- printf("Fail to set idle on domain.\n");
- hang();
- }
- } while (readl(PMU_BASE_ADDR + PMU_BUS_IDLE_ST));
+ } while (delay && readl(PMU_BASE_ADDR + PMU_BUS_IDLE_ST));
+
+ pd_st = readl(PMU_BASE_ADDR + PMU_PWR_DWN_ST);
+ idle_st = readl(PMU_BASE_ADDR + PMU_BUS_IDLE_ST);
+
+ if (pd_st || idle_st) {
+ printf("PMU_PWR_DOWN_ST: 0x%08x\n", pd_st);
+ printf("PMU_BUS_IDLE_ST: 0x%08x\n", idle_st);
+
+ if (idle_st & PMU_BUS_IDLE_NPU)
+ printf("Failed to enable PD_NPU, please check VDD_NPU is supplied\n");
+
+ if (idle_st & PMU_BUS_IDLE_VEPU)
+ printf("Failed to enable PD_VEPU, please check VDD_VEPU is supplied\n");
+
+ hang();
+ }
writel(0x303, USB_HOST_PRIORITY_REG);
writel(0x303, USB_OTG_PRIORITY_REG);
--
Gitblit v1.6.2