| Aspeed Watchdog Timer |
| |
| Required properties: |
| - compatible: must be one of: |
| - "aspeed,ast2400-wdt" |
| - "aspeed,ast2500-wdt" |
| - "aspeed,ast2600-wdt" |
| |
| - reg: physical base address of the controller and length of memory mapped |
| region |
| |
| Optional properties: |
| |
| - aspeed,reset-type = "cpu|soc|system|none" |
| |
| Reset behavior - Whenever a timeout occurs the watchdog can be programmed |
| to generate one of three different, mutually exclusive, types of resets. |
| |
| Type "none" can be specified to indicate that no resets are to be done. |
| This is useful in situations where another watchdog engine on chip is |
| to perform the reset. |
| |
| If 'aspeed,reset-type=' is not specified the default is to enable system |
| reset. |
| |
| Reset types: |
| |
| - cpu: Reset CPU on watchdog timeout |
| |
| - soc: Reset 'System on Chip' on watchdog timeout |
| |
| - system: Reset system on watchdog timeout |
| |
| - none: No reset is performed on timeout. Assumes another watchdog |
| engine is responsible for this. |
| |
| - aspeed,alt-boot: If property is present then boot from alternate block. |
| - aspeed,external-signal: If property is present then signal is sent to |
| external reset counter (only WDT1 and WDT2). If not |
| specified no external signal is sent. |
| - aspeed,ext-pulse-duration: External signal pulse duration in microseconds |
| |
| Optional properties for AST2500-compatible watchdogs: |
| - aspeed,ext-push-pull: If aspeed,external-signal is present, set the pin's |
| drive type to push-pull. The default is open-drain. |
| - aspeed,ext-active-high: If aspeed,external-signal is present and and the pin |
| is configured as push-pull, then set the pulse |
| polarity to active-high. The default is active-low. |
| |
| Optional properties for AST2500- and AST2600-compatible watchdogs: |
| - aspeed,reset-mask: A bitmask indicating which peripherals will be reset if |
| the watchdog timer expires. On AST2500 this should be a |
| single word defined using the AST2500_WDT_RESET_* macros; |
| on AST2600 this should be a two-word array with the first |
| word defined using the AST2600_WDT_RESET1_* macros and the |
| second word defined using the AST2600_WDT_RESET2_* macros. |
| |
| Examples: |
| |
| wdt1: watchdog@1e785000 { |
| compatible = "aspeed,ast2400-wdt"; |
| reg = <0x1e785000 0x1c>; |
| aspeed,reset-type = "system"; |
| aspeed,external-signal; |
| }; |
| |
| #include <dt-bindings/watchdog/aspeed-wdt.h> |
| wdt2: watchdog@1e785040 { |
| compatible = "aspeed,ast2600-wdt"; |
| reg = <0x1e785040 0x40>; |
| aspeed,reset-mask = <AST2600_WDT_RESET1_DEFAULT |
| (AST2600_WDT_RESET2_DEFAULT & ~AST2600_WDT_RESET2_LPC)>; |
| }; |