
From: Lukas Funke lukas.funke@weidmueller.com
Use common zynqmp_pm_get_chipid() function to get the chip revision
Signed-off-by: Lukas Funke lukas.funke@weidmueller.com ---
(no changes since v1)
drivers/soc/soc_xilinx_zynqmp.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-)
diff --git a/drivers/soc/soc_xilinx_zynqmp.c b/drivers/soc/soc_xilinx_zynqmp.c index d8b4f172a39..8a65810b7d7 100644 --- a/drivers/soc/soc_xilinx_zynqmp.c +++ b/drivers/soc/soc_xilinx_zynqmp.c @@ -346,22 +346,21 @@ static const struct soc_ops soc_xilinx_zynqmp_ops = { static int soc_xilinx_zynqmp_probe(struct udevice *dev) { struct soc_xilinx_zynqmp_priv *priv = dev_get_priv(dev); - u32 ret_payload[PAYLOAD_ARG_CNT]; + u32 idcode, version; int ret;
priv->family = zynqmp_family;
- if (!IS_ENABLED(CONFIG_ZYNQMP_FIRMWARE)) - ret = zynqmp_mmio_read(ZYNQMP_PS_VERSION, &ret_payload[2]); + if (!CONFIG_IS_ENABLED(ZYNQMP_FIRMWARE)) + ret = zynqmp_mmio_read(ZYNQMP_PS_VERSION, &version); else - ret = xilinx_pm_request(PM_GET_CHIPID, 0, 0, 0, 0, - ret_payload); + ret = zynqmp_pm_get_chipid(&idcode, &version); if (ret < 0) return ret;
- priv->revision = ret_payload[2] & ZYNQMP_PS_VER_MASK; + priv->revision = version & ZYNQMP_PS_VER_MASK;
- if (IS_ENABLED(CONFIG_ZYNQMP_FIRMWARE)) { + if (CONFIG_IS_ENABLED(ZYNQMP_FIRMWARE)) { /* * Firmware returns: * payload[0][31:0] = status of the operation @@ -370,11 +369,9 @@ static int soc_xilinx_zynqmp_probe(struct udevice *dev) * payload[2][28:20] = EXTENDED_IDCODE * payload[2][29] = PL_INIT */ - u32 idcode = ret_payload[1]; - u32 idcode2 = ret_payload[2] >> - ZYNQMP_CSU_VERSION_EMPTY_SHIFT; - dev_dbg(dev, "IDCODE: 0x%0x, IDCODE2: 0x%0x\n", idcode, - idcode2); + u32 idcode2 = version >> ZYNQMP_CSU_VERSION_EMPTY_SHIFT; + + dev_dbg(dev, "IDCODE: 0x%0x, IDCODE2: 0x%0x\n", idcode, idcode2);
ret = soc_xilinx_zynqmp_detect_machine(dev, idcode, idcode2); if (ret)