• Tony Lindgren's avatar
    ARM: dts: Configure osc clock for d_can on am335x · 516f1117
    Tony Lindgren authored
    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 1a5cd7c2 ("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: 1a5cd7c2 ("bus: ti-sysc: Enable all clocks directly during init to read revision")
    Reported-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
    Tested-by: default avatarKeerthy <j-keerthy@ti.com>
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    516f1117
am33xx-l4.dtsi 59.3 KB