diff options
author | Tony Lindgren <tony@atomide.com> | 2019-05-01 14:24:09 -0700 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2019-05-01 14:24:09 -0700 |
commit | 516f1117d0fb375830dea715a3f890a76ff1ffef (patch) | |
tree | f41f9995755eb39c9db6b8e51bac246d9128ce46 /drivers/bus | |
parent | d59b60564cbfe77d85c2f51b29941d8ed14984d1 (diff) | |
download | linux-516f1117d0fb375830dea715a3f890a76ff1ffef.tar.bz2 |
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>
Diffstat (limited to 'drivers/bus')
0 files changed, 0 insertions, 0 deletions