23885389db
Commit e428e250fde6 ("ARM: dts: Configure system timers for omap3") caused a timer regression for beagleboard revision c where the system clockevent stops working if omap3isp module is unloaded. Turns out we still have beagleboard revisions a-b4 capacitor c70 quirks applied that limit the usable timers for no good reason. This also affects the power management as we use the system clock instead of the 32k clock source. Let's fix the issue by adding a new omap3-beagle-ab4.dts for the old timer quirks. This allows us to remove the timer quirks for later beagleboard revisions. We also need to update the related timer quirk check for the correct compatible property. Fixes: e428e250fde6 ("ARM: dts: Configure system timers for omap3") Cc: linux-kernel@vger.kernel.org Cc: Daniel Lezcano <daniel.lezcano@linaro.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Rob Herring <robh+dt@kernel.org> Reported-by: Jarkko Nikula <jarkko.nikula@bitmer.com> Tested-by: Jarkko Nikula <jarkko.nikula@bitmer.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
48 lines
1007 B
Plaintext
48 lines
1007 B
Plaintext
// SPDX-License-Identifier: GPL-2.0-only
|
|
/dts-v1/;
|
|
|
|
#include "omap3-beagle.dts"
|
|
|
|
/ {
|
|
model = "TI OMAP3 BeagleBoard A to B4";
|
|
compatible = "ti,omap3-beagle-ab4", "ti,omap3-beagle", "ti,omap3430", "ti,omap3";
|
|
};
|
|
|
|
/*
|
|
* Workaround for capacitor C70 issue, see "Boards revision A and < B5"
|
|
* section at https://elinux.org/BeagleBoard_Community
|
|
*/
|
|
|
|
/* Unusable as clocksource because of unreliable oscillator */
|
|
&counter32k {
|
|
status = "disabled";
|
|
};
|
|
|
|
/* Unusable as clockevent because of unreliable oscillator, allow to idle */
|
|
&timer1_target {
|
|
/delete-property/ti,no-reset-on-init;
|
|
/delete-property/ti,no-idle;
|
|
timer@0 {
|
|
/delete-property/ti,timer-alwon;
|
|
};
|
|
};
|
|
|
|
/* Preferred always-on timer for clocksource */
|
|
&timer12_target {
|
|
ti,no-reset-on-init;
|
|
ti,no-idle;
|
|
timer@0 {
|
|
/* Always clocked by secure_32k_fck */
|
|
};
|
|
};
|
|
|
|
/* Preferred timer for clockevent */
|
|
&timer2_target {
|
|
ti,no-reset-on-init;
|
|
ti,no-idle;
|
|
timer@0 {
|
|
assigned-clocks = <&gpt2_fck>;
|
|
assigned-clock-parents = <&sys_ck>;
|
|
};
|
|
};
|