Message ID | 20240813-b4-upstream-j721s2-avs-v3-4-5115d93cdeb2@ti.com |
---|---|
State | Changes Requested |
Delegated to: | Tom Rini |
Headers | show |
Series | Add AVS support for J721S2 | expand |
On 8/13/2024 11:40 AM, Manorit Chawdhry wrote: > Different devices have different MPU clk and dev ID. Currently it had > been hardcoded. Move it to DT based extraction. > > Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com> > --- > drivers/misc/k3_avs.c | 37 +++++++++++++++++++++++++++++++++++++ > 1 file changed, 37 insertions(+) > > diff --git a/drivers/misc/k3_avs.c b/drivers/misc/k3_avs.c > index 568cf5b20d51..f94eee5b1c64 100644 > --- a/drivers/misc/k3_avs.c > +++ b/drivers/misc/k3_avs.c > @@ -352,6 +352,9 @@ static int k3_avs_probe(struct udevice *dev) > struct k3_avs_privdata *priv; > struct vd_data *vd; > int ret; > + ofnode node; > + struct ofnode_phandle_args phandle_args; > + int i = 0; > > priv = dev_get_priv(dev); > priv->dev = dev; > @@ -367,6 +370,34 @@ static int k3_avs_probe(struct udevice *dev) > return -ENODEV; > > for (vd = priv->vd_config->vds; vd->id >= 0; vd++) { > + /* Get the clock and dev id for Jacinto platforms */ > + if (vd->id == J721E_VDD_MPU) { > + node = ofnode_get_aliases_node("remoteproc1"); My suggestion will be to search node based upon compatible name am654-rproc > + if (!ofnode_valid(node)) > + return -ENODEV; > + > + i = ofnode_stringlist_search(node, "clock-names", "core"); > + if (i < 0) > + return -ENODEV; > + > + debug("%s: i: %d\n", __func__, i); I assume this was for your debug only, Please see if you can remove this > + > + ret = ofnode_parse_phandle_with_args(node, "clocks", > + "#clock-cells", > + 0, i, > + &phandle_args); > + if (ret) { > + printf("Couldn't get the clock node\n"); > + return ret; > + } > + > + vd->dev_id = phandle_args.args[0]; > + vd->clk_id = phandle_args.args[1]; > + > + debug("%s: MPU dev_id: %d, clk_id: %d", __func__, > + vd->dev_id, vd->clk_id); > + } > + > if (!(readl(AM6_VTM_DEVINFO(vd->id)) & > AM6_VTM_AVS0_SUPPORTED)) { > dev_warn(dev, "AVS-class 0 not supported for VD%d\n", > @@ -463,6 +494,12 @@ static struct vd_data j721e_vd_data[] = { > { > .id = J721E_VDD_MPU, > .opp = AM6_OPP_NOM, > + /* > + * XXX: DEPRECATION WARNING: Around 2 u-boot versions > + * > + * These values will be picked up from DT, kept for backward > + * compatibility > + */ > .dev_id = 202, /* J721E_DEV_A72SS0_CORE0 */ > .clk_id = 2, /* ARM clock */ > .opps = { >
diff --git a/drivers/misc/k3_avs.c b/drivers/misc/k3_avs.c index 568cf5b20d51..f94eee5b1c64 100644 --- a/drivers/misc/k3_avs.c +++ b/drivers/misc/k3_avs.c @@ -352,6 +352,9 @@ static int k3_avs_probe(struct udevice *dev) struct k3_avs_privdata *priv; struct vd_data *vd; int ret; + ofnode node; + struct ofnode_phandle_args phandle_args; + int i = 0; priv = dev_get_priv(dev); priv->dev = dev; @@ -367,6 +370,34 @@ static int k3_avs_probe(struct udevice *dev) return -ENODEV; for (vd = priv->vd_config->vds; vd->id >= 0; vd++) { + /* Get the clock and dev id for Jacinto platforms */ + if (vd->id == J721E_VDD_MPU) { + node = ofnode_get_aliases_node("remoteproc1"); + if (!ofnode_valid(node)) + return -ENODEV; + + i = ofnode_stringlist_search(node, "clock-names", "core"); + if (i < 0) + return -ENODEV; + + debug("%s: i: %d\n", __func__, i); + + ret = ofnode_parse_phandle_with_args(node, "clocks", + "#clock-cells", + 0, i, + &phandle_args); + if (ret) { + printf("Couldn't get the clock node\n"); + return ret; + } + + vd->dev_id = phandle_args.args[0]; + vd->clk_id = phandle_args.args[1]; + + debug("%s: MPU dev_id: %d, clk_id: %d", __func__, + vd->dev_id, vd->clk_id); + } + if (!(readl(AM6_VTM_DEVINFO(vd->id)) & AM6_VTM_AVS0_SUPPORTED)) { dev_warn(dev, "AVS-class 0 not supported for VD%d\n", @@ -463,6 +494,12 @@ static struct vd_data j721e_vd_data[] = { { .id = J721E_VDD_MPU, .opp = AM6_OPP_NOM, + /* + * XXX: DEPRECATION WARNING: Around 2 u-boot versions + * + * These values will be picked up from DT, kept for backward + * compatibility + */ .dev_id = 202, /* J721E_DEV_A72SS0_CORE0 */ .clk_id = 2, /* ARM clock */ .opps = {
Different devices have different MPU clk and dev ID. Currently it had been hardcoded. Move it to DT based extraction. Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com> --- drivers/misc/k3_avs.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+)