diff --git a/drivers/misc/k3_esm.c b/drivers/misc/k3_esm.c index fa3d65656220..467615a024a4 100644 --- a/drivers/misc/k3_esm.c +++ b/drivers/misc/k3_esm.c @@ -66,6 +66,24 @@ static void esm_clear_raw_status(void __iomem *base, int pin) /* Clear Event status */ writel(value, base + ESM_STS(pin)); } + +void dump_esm_mmr(void __iomem *base, int num_pins) +{ + printf("ESM_LOW: 0x%x\n", readl(base + 0x28)); + printf("ESM_HI : 0x%x\n", readl(base + 0x2c)); + printf("group0 : 0x%x\n", readl(base + 0x400)); + printf("group1 : 0x%x\n", readl(base + 0x420)); + printf("group2 : 0x%x\n", readl(base + 0x440)); + + /* HACK: main_esm more num_pins than mcu_esm in DT */ + if (num_pins <= 4) + return; + + printf("group3 : 0x%x\n", readl(base + 0x460)); + printf("group4 : 0x%x\n", readl(base + 0x480)); + printf("group5 : 0x%x\n", readl(base + 0x4a0)); +} + /** * k3_esm_probe: configures ESM based on DT data * @@ -102,6 +120,7 @@ static int k3_esm_probe(struct udevice *dev) ret); goto free_pins; } + dump_esm_mmr(base, num_pins); /* Clear any pending events */ writel(ESM_SFT_RST_KEY, base + ESM_SFT_RST);