Re: [PATCH v5 1/2] drivers/watchdog: Add optional ASPEED device tree properties

From: Andrew Jeffery
Date: Wed Aug 02 2017 - 00:28:40 EST


On Mon, 2017-07-17 at 14:25 -0500, Christopher Bostic wrote:
> Describe device tree optional properties:
>
> Â * aspeed,reset-type = "cpu|soc|system|none"
> ÂÂÂÂÂOne of three different, mutually exclusive, values
>
> "cpu" : ARM CPU reset on signal
> "soc" : 'System on chip' reset
> "system" : Full system reset
>
> ÂÂÂÂÂThe value can also be set to "none" which indicates that no
> ÂÂÂÂÂreset of any kind is to be done via this watchdog.ÂÂThis assumes
> ÂÂÂÂÂanother watchdog on the chip is to take care of resets.
>
> Â * aspeed,external-signal - Generate external signal (WDT1 and WDT2 only)
> Â * aspeed,alt-boot - Boot from alternate block on signal
>
> > Signed-off-by: Christopher Bostic <cbostic@xxxxxxxxxxxxxxxxxx>
> ---
> v5 - Removed aspeed,interrupt property - no plans at this point to
> ÂÂÂÂÂneed this functionality in the driver.
> v4 - Add aspeed-reset-type and assign one of four values,
> ÂÂÂÂÂcpu, soc, system, none.
> v3 - Invert soc and sys reset to 'no' to preserve backwards
> ÂÂÂÂÂcompatibility.ÂÂSOC and SYS reset will be set by default
> ÂÂÂÂÂwithout any optional parameters set
> v2 - Add 'aspeed,' prefix to all optional properties
> ÂÂÂ- Add arm-reset, soc-reset, interrupt, alt-boot properties
> ---
> Â.../devicetree/bindings/watchdog/aspeed-wdt.txtÂÂÂÂ| 32 ++++++++++++++++++++++
> Â1 file changed, 32 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt b/Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt
> index c5e74d7..2b34ce9 100644
> --- a/Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt
> +++ b/Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt
> @@ -8,9 +8,41 @@ Required properties:
> Â - 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 specfied 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,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.

Sorry I'm a little late on this one, but we should probably also add
some words to the effect that if you specify aspeed,external-signal,
then you also need to ensure the pinmux is configured for this to work.
For example in the devicetree we need to add:

pinctrl-names = "default";
pinctrl-0 = <&pinctrl_wdtrst1_default>;

Now the name of the pinctrl node isn't set in stone, so I don't think
we should mention it directly. However this is the essence of what we
want to describe.

Cheers,

Andrew

> + - aspeed,alt-boot:ÂÂÂÂIf property is present then boot from alternate block.
> +
> ÂExample:
> Â
> > > Â wdt1: watchdog@1e785000 {
> > Â compatible = "aspeed,ast2400-wdt";
> > Â reg = <0x1e785000 0x1c>;
> > + aspeed,reset-type = "system";
> > + aspeed,external-signal;
> > Â };

Attachment: signature.asc
Description: This is a digitally signed message part