
On 6/4/24 16:27, lukas.funke-oss@weidmueller.com wrote:
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))
elseret = zynqmp_mmio_read(ZYNQMP_PS_VERSION, &version);
ret = xilinx_pm_request(PM_GET_CHIPID, 0, 0, 0, 0,
ret_payload);
if (ret < 0) return ret;ret = zynqmp_pm_get_chipid(&idcode, &version);
- 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)
Looks good. Reviewed-by: Michal Simek michal.simek@amd.com
Thanks, Michal