summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorSuman Anna <s-anna@ti.com>2019-08-16 17:30:16 -0500
committerTom Rini <trini@konsulko.com>2019-08-20 11:46:38 -0400
commita517c1f62f49d7e16b328d9d12785ca58c887346 (patch)
treec59b4a9b12fe44520f497cfc919b35c7db4481e0 /arch
parent042dd8f2a64e6fe7f6fb0f329f0d32998ebd7aef (diff)
downloadu-boot-a517c1f62f49d7e16b328d9d12785ca58c887346.tar.gz
ARM: DRA7: Fixup DPLL clock rate fixup logic for newer kernels
The commit 1b42ab3eda8a ("ARM: DRA7: Fixup DSPEVE, IVA and GPU clock frequencies based on OPP") updates the kernel device-tree blob to adjust the DSP, IVA and GPU DPLL clocks based on a one-time OPP choice selected in U-Boot. All these DPLL clocks are children of the cm_core_aon clocks DT node. The hierarchy of this clocks DT node has changed in newer Linux kernels starting from v5.0, and this results in a failure in ft_fixup_clocks() function to update the clock rates on these newer kernels. Fix this by updating the lookup logic to look through both the newer and older DT hierarchy paths for the cm_core_aon clocks node. Signed-off-by: Suman Anna <s-anna@ti.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-omap2/omap5/fdt.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/arm/mach-omap2/omap5/fdt.c b/arch/arm/mach-omap2/omap5/fdt.c
index 3626d79199..8dee555c10 100644
--- a/arch/arm/mach-omap2/omap5/fdt.c
+++ b/arch/arm/mach-omap2/omap5/fdt.c
@@ -201,7 +201,9 @@ static int ft_fixup_clocks(void *fdt, const char **names, u32 *rates, int num)
int offs, node_offs, ret, i;
uint32_t phandle;
- offs = fdt_path_offset(fdt, "/ocp/l4@4a000000/cm_core_aon@5000/clocks");
+ offs = fdt_path_offset(fdt, "/ocp/interconnect@4a000000/segment@0/target-module@5000/cm_core_aon@0/clocks");
+ if (offs < 0)
+ offs = fdt_path_offset(fdt, "/ocp/l4@4a000000/cm_core_aon@5000/clocks");
if (offs < 0) {
debug("Could not find cm_core_aon clocks node path offset : %s\n",
fdt_strerror(offs));