realtek: Add and enable watchdog node
Add and enable the Realtek Otto WDT peripheral found on these SoCs.
Default all devices to use standard (cold) reboot and "soc" resets.
Devices that require the PLL value fixup before restarting, should pick
the "cpu" or "software" reset mode. These devices also need to provide a
custom reboot mode, by adding the reboot argument to the kernel command
line:
    WDT reset mode  | kernel reboot mode
    ----------------+---------------------------------------
    soc             | reboot=cold (default if not specified)
    cpu             | reboot=warm
    software        | reboot=software
Preferrably, these devices should use an alternative restart method like
gpio-restart to provide reliable restarts.
Note that watchdog restarts are not yet exposed, since the
_machine_restart override is still present.
Signed-off-by: Sander Vanheule <sander@svanheule.net>
Tested-by: Stijn Segers <foss@volatilesystems.org>
Tested-by: Paul Fertser <fercerpav@gmail.com>
Tested-by: Stijn Tintel <stijn@linux-ipv6.be>
			
			
This commit is contained in:
		 Sander Vanheule
					Sander Vanheule
				
			
				
					committed by
					
						 Stijn Tintel
						Stijn Tintel
					
				
			
			
				
	
			
			
			 Stijn Tintel
						Stijn Tintel
					
				
			
						parent
						
							b8fc5eecdc
						
					
				
				
					commit
					927570f0a3
				
			| @@ -160,6 +160,7 @@ CONFIG_PINCTRL=y | ||||
| CONFIG_POWER_RESET=y | ||||
| CONFIG_POWER_RESET_SYSCON=y | ||||
| CONFIG_RATIONAL=y | ||||
| CONFIG_REALTEK_OTTO_WDT=y | ||||
| CONFIG_REALTEK_PHY=y | ||||
| CONFIG_REALTEK_SOC_PHY=y | ||||
| CONFIG_REGMAP=y | ||||
| @@ -190,5 +191,6 @@ CONFIG_TIMER_PROBE=y | ||||
| CONFIG_TINY_SRCU=y | ||||
| CONFIG_USE_GENERIC_EARLY_PRINTK_8250=y | ||||
| CONFIG_USE_OF=y | ||||
| CONFIG_WATCHDOG_CORE=y | ||||
| CONFIG_ZLIB_DEFLATE=y | ||||
| CONFIG_ZLIB_INFLATE=y | ||||
|   | ||||
| @@ -153,6 +153,20 @@ | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
|  | ||||
| 		watchdog0: watchdog@3150 { | ||||
| 			compatible = "realtek,rtl8380-wdt"; | ||||
| 			reg = <0x3150 0xc>; | ||||
|  | ||||
| 			realtek,reset-mode = "soc"; | ||||
|  | ||||
| 			clocks = <&lx_clk>; | ||||
| 			timeout-sec = <30>; | ||||
|  | ||||
| 			interrupt-parent = <&intc>; | ||||
| 			interrupt-names = "phase1", "phase2"; | ||||
| 			interrupts = <19>, <18>; | ||||
| 		}; | ||||
|  | ||||
| 		gpio0: gpio-controller@3500 { | ||||
| 			compatible = "realtek,rtl8380-gpio", "realtek,otto-gpio"; | ||||
| 			reg = <0x3500 0x20>; | ||||
|   | ||||
| @@ -109,7 +109,9 @@ | ||||
| 				<10 &cpuintc 1>, /* TC3 */ | ||||
| 				<9 &cpuintc 1>,  /* TC2 */ | ||||
| 				<8 &cpuintc 1>,  /* TC1 */ | ||||
| 				<7 &cpuintc 5>;  /* TC0 */ | ||||
| 				<7 &cpuintc 5>,  /* TC0 */ | ||||
| 				<6 &cpuintc 5>,  /* WDT_IP2 */ | ||||
| 				<5 &cpuintc 4>;  /* WDT_IP1 */ | ||||
| 		}; | ||||
|  | ||||
| 		timer: timer@3200 { | ||||
| @@ -161,6 +163,20 @@ | ||||
| 			status = "disabled"; | ||||
| 		}; | ||||
|  | ||||
| 		watchdog0: watchdog@3260 { | ||||
| 			compatible = "realtek,rtl9300-wdt"; | ||||
| 			reg = <0x3260 0xc>; | ||||
|  | ||||
| 			realtek,reset-mode = "soc"; | ||||
|  | ||||
| 			clocks = <&lx_clk>; | ||||
| 			timeout-sec = <30>; | ||||
|  | ||||
| 			interrupt-parent = <&intc>; | ||||
| 			interrupt-names = "phase1", "phase2"; | ||||
| 			interrupts = <5>, <6>; | ||||
| 		}; | ||||
|  | ||||
| 		gpio0: gpio-controller@3500 { | ||||
| 			compatible = "realtek,rtl8380-gpio", "realtek,otto-gpio"; | ||||
| 			reg = <0x3500 0x20>; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user