Tom Rini | 53633a8 | 2024-02-29 12:33:36 -0500 | [diff] [blame^] | 1 | Aspeed Watchdog Timer |
| 2 | |
| 3 | Required properties: |
| 4 | - compatible: must be one of: |
| 5 | - "aspeed,ast2400-wdt" |
| 6 | - "aspeed,ast2500-wdt" |
| 7 | - "aspeed,ast2600-wdt" |
| 8 | |
| 9 | - reg: physical base address of the controller and length of memory mapped |
| 10 | region |
| 11 | |
| 12 | Optional properties: |
| 13 | |
| 14 | - aspeed,reset-type = "cpu|soc|system|none" |
| 15 | |
| 16 | Reset behavior - Whenever a timeout occurs the watchdog can be programmed |
| 17 | to generate one of three different, mutually exclusive, types of resets. |
| 18 | |
| 19 | Type "none" can be specified to indicate that no resets are to be done. |
| 20 | This is useful in situations where another watchdog engine on chip is |
| 21 | to perform the reset. |
| 22 | |
| 23 | If 'aspeed,reset-type=' is not specified the default is to enable system |
| 24 | reset. |
| 25 | |
| 26 | Reset types: |
| 27 | |
| 28 | - cpu: Reset CPU on watchdog timeout |
| 29 | |
| 30 | - soc: Reset 'System on Chip' on watchdog timeout |
| 31 | |
| 32 | - system: Reset system on watchdog timeout |
| 33 | |
| 34 | - none: No reset is performed on timeout. Assumes another watchdog |
| 35 | engine is responsible for this. |
| 36 | |
| 37 | - aspeed,alt-boot: If property is present then boot from alternate block. |
| 38 | - aspeed,external-signal: If property is present then signal is sent to |
| 39 | external reset counter (only WDT1 and WDT2). If not |
| 40 | specified no external signal is sent. |
| 41 | - aspeed,ext-pulse-duration: External signal pulse duration in microseconds |
| 42 | |
| 43 | Optional properties for AST2500-compatible watchdogs: |
| 44 | - aspeed,ext-push-pull: If aspeed,external-signal is present, set the pin's |
| 45 | drive type to push-pull. The default is open-drain. |
| 46 | - aspeed,ext-active-high: If aspeed,external-signal is present and and the pin |
| 47 | is configured as push-pull, then set the pulse |
| 48 | polarity to active-high. The default is active-low. |
| 49 | |
| 50 | Optional properties for AST2500- and AST2600-compatible watchdogs: |
| 51 | - aspeed,reset-mask: A bitmask indicating which peripherals will be reset if |
| 52 | the watchdog timer expires. On AST2500 this should be a |
| 53 | single word defined using the AST2500_WDT_RESET_* macros; |
| 54 | on AST2600 this should be a two-word array with the first |
| 55 | word defined using the AST2600_WDT_RESET1_* macros and the |
| 56 | second word defined using the AST2600_WDT_RESET2_* macros. |
| 57 | |
| 58 | Examples: |
| 59 | |
| 60 | wdt1: watchdog@1e785000 { |
| 61 | compatible = "aspeed,ast2400-wdt"; |
| 62 | reg = <0x1e785000 0x1c>; |
| 63 | aspeed,reset-type = "system"; |
| 64 | aspeed,external-signal; |
| 65 | }; |
| 66 | |
| 67 | #include <dt-bindings/watchdog/aspeed-wdt.h> |
| 68 | wdt2: watchdog@1e785040 { |
| 69 | compatible = "aspeed,ast2600-wdt"; |
| 70 | reg = <0x1e785040 0x40>; |
| 71 | aspeed,reset-mask = <AST2600_WDT_RESET1_DEFAULT |
| 72 | (AST2600_WDT_RESET2_DEFAULT & ~AST2600_WDT_RESET2_LPC)>; |
| 73 | }; |