]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commit
ARM: dts: Configure osc clock for d_can on am335x
authorTony Lindgren <tony@atomide.com>
Wed, 1 May 2019 21:24:09 +0000 (14:24 -0700)
committerTony Lindgren <tony@atomide.com>
Wed, 1 May 2019 21:24:09 +0000 (14:24 -0700)
commit516f1117d0fb375830dea715a3f890a76ff1ffef
treef41f9995755eb39c9db6b8e51bac246d9128ce46
parentd59b60564cbfe77d85c2f51b29941d8ed14984d1
ARM: dts: Configure osc clock for d_can on am335x

Reading the module revision register can cause an external abort on
non-linefetch depending of osc clock is not already enabled. This
started happening with commit 1a5cd7c23cc5 ("bus: ti-sysc: Enable all
clocks directly during init to read revision") as reported by
Sebastian Andrzej Siewior <bigeasy@linutronix.de>.

The reason why the issue happens is because we now attempt to read the
interconnect target module revision register by first manually enabling
all the device clocks in sysc_probe(). And looks like d_can also needs
the osc clock in addition to the module clock, and it may or may not be
enabled depending on the bootloader version and if other devices have
already requested osc clock.

Let's fix the issue by adding osc clock as an optional clock for the
module for am335x. Note that am437x does not seem to list the osc clock
at all, so presumably it is not needed for am437x.

I also noticed that we're incorrectly assuming the revision register for
d_can exists. But the module does not seem to have any revision, sysconfig
or sysstatus registers. But that's mostly a cosmetic issues, so I'll send
a patch separately for that.

Fixes: 1a5cd7c23cc5 ("bus: ti-sysc: Enable all clocks directly during init to read revision")
Reported-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Tested-by: Keerthy <j-keerthy@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/boot/dts/am33xx-l4.dtsi