]> git.sur5r.net Git - u-boot/commitdiff
spmi: msm: display the PMIC Arb version (debug)
authorJorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Wed, 10 Jan 2018 10:33:28 +0000 (11:33 +0100)
committerTom Rini <trini@konsulko.com>
Mon, 15 Jan 2018 16:35:37 +0000 (11:35 -0500)
Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
drivers/spmi/spmi-msm.c

index c226913f9e8c2af9ef6252f59e3aa306ec0102e5..dd7a1ead11ffce37dde8af28443cda6d443f63fd 100644 (file)
 
 DECLARE_GLOBAL_DATA_PTR;
 
+/* PMIC Arbiter configuration registers */
+#define PMIC_ARB_VERSION               0x0000
+#define PMIC_ARB_VERSION_V2_MIN                0x20010000
+
 #define ARB_CHANNEL_OFFSET(n)          (0x4 * (n))
 #define SPMI_CH_OFFSET(chnl)           ((chnl) * 0x8000)
 
@@ -148,6 +152,8 @@ static int msm_spmi_probe(struct udevice *dev)
        struct udevice *parent = dev->parent;
        struct msm_spmi_priv *priv = dev_get_priv(dev);
        int node = dev_of_offset(dev);
+       u32 hw_ver;
+       bool is_v1;
        int i;
 
        priv->arb_chnl = devfdt_get_addr(dev);
@@ -155,6 +161,12 @@ static int msm_spmi_probe(struct udevice *dev)
                        dev_of_offset(parent), node, "reg", 1, NULL, false);
        priv->spmi_obs = fdtdec_get_addr_size_auto_parent(gd->fdt_blob,
                        dev_of_offset(parent), node, "reg", 2, NULL, false);
+
+       hw_ver = readl(priv->arb_chnl + PMIC_ARB_VERSION - 0x800);
+       is_v1  = (hw_ver < PMIC_ARB_VERSION_V2_MIN);
+
+       dev_dbg(dev, "PMIC Arb Version-%d (0x%x)\n", (is_v1 ? 1 : 2), hw_ver);
+
        if (priv->arb_chnl == FDT_ADDR_T_NONE ||
            priv->spmi_core == FDT_ADDR_T_NONE ||
            priv->spmi_obs == FDT_ADDR_T_NONE)