mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 08:44:41 +00:00 
			
		
		
		
	 23885389db
			
		
	
	
		23885389db
		
	
	
	
	
		
			
			Commite428e250fd("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:e428e250fd("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>
		
			
				
	
	
		
			47 lines
		
	
	
	
		
			1,007 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
	
		
			1,007 B
		
	
	
	
		
			Text
		
	
	
	
	
	
| // 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>;
 | |
| 	};
 | |
| };
 |