diff options
author | Tony Lindgren <tony@atomide.com> | 2021-03-08 11:35:09 +0200 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2021-03-10 13:59:17 +0200 |
commit | 5f7259a578e9c6759255996b86be5bed41d62193 (patch) | |
tree | 4306dcd0204981b913c04a343d2b393522b80215 /drivers/bus/ti-sysc.c | |
parent | f2dc0755fc9b4628d38e4832ecf207ce135b93ae (diff) | |
download | lwn-5f7259a578e9c6759255996b86be5bed41d62193.tar.gz lwn-5f7259a578e9c6759255996b86be5bed41d62193.zip |
bus: ti-sysc: Check for old incomplete dtb
Let's be nice and show an error on the SoCs about old imcomplete devicetree
if the dtb is still using "simple-bus" instead of "simple-pm-bus" for the
root OCP node.
Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'drivers/bus/ti-sysc.c')
-rw-r--r-- | drivers/bus/ti-sysc.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c index b715e5901373..65943d1a2557 100644 --- a/drivers/bus/ti-sysc.c +++ b/drivers/bus/ti-sysc.c @@ -2858,6 +2858,7 @@ static int sysc_init_soc(struct sysc *ddata) const struct soc_device_attribute *match; struct ti_sysc_platform_data *pdata; unsigned long features = 0; + struct device_node *np; if (sysc_soc) return 0; @@ -2878,6 +2879,21 @@ static int sysc_init_soc(struct sysc *ddata) if (match && match->data) sysc_soc->soc = (int)match->data; + /* + * Check and warn about possible old incomplete dtb. We now want to see + * simple-pm-bus instead of simple-bus in the dtb for genpd using SoCs. + */ + switch (sysc_soc->soc) { + case SOC_AM3: + case SOC_AM4: + np = of_find_node_by_path("/ocp"); + WARN_ONCE(np && of_device_is_compatible(np, "simple-bus"), + "ti-sysc: Incomplete old dtb, please update\n"); + break; + default: + break; + } + /* Ignore devices that are not available on HS and EMU SoCs */ if (!sysc_soc->general_purpose) { switch (sysc_soc->soc) { |