
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 = {*/