Skip to contentSkip to conversation

Add ASPEED watchdog device tree properties

PATCH Superseded Christopher Bostic 3 participants 10 messages Jun 29, 2017 – Jul 6, 2017

Subsystems (3)

v3 of 5 Superseded Latest is v5 →

lore
Share & tools
lore
#0 lore raw

v3 cover Add ASPEED watchdog device tree properties

Document device tree optional properties for ASPEED watchdog. Reference properties in ASPEED watchdog driver and configure accordingly.

Christopher Bostic (2):
drivers/watchdog: Add optional ASPEED device tree properties drivers/watchdog: ASPEED reference dev tree properties for config

 .../devicetree/bindings/watchdog/aspeed-wdt.txt    | 24 ++++++++++++++++++++++
 drivers/watchdog/aspeed_wdt.c                      | 20 +++++++++++++-----
 2 files changed, 39 insertions(+), 5 deletions(-)
Signature · 6 lines
1.8.2.2

--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#1 lore raw

PATCH v3 1/2 drivers/watchdog: Add optional ASPEED device tree properties

Describe device tree optional properties:

* aspeed,arm-reet - ARM CPU reset on signal
* aspeed,no-soc-reset - SOC reset on signal
* aspeed,no-sys-reset - System reset on signal
* aspeed,interrupt - Interrupt CPU on signal
* aspeed,external-signal - Generate external signal (WDT1 and WDT2 only)
* aspeed,alt-boot - Boot from alternate block on signal

---
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    | 24 ++++++++++++++++++++++
 1 file changed, 24 insertions(+)
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +24 -0
index c5e74d7..6f18005 100644
@@ -8,9 +8,33 @@ Required properties:
  - reg: physical base address of the controller and length of memory mapped
    region
 
+Optional properties:
+   Signal behavior - Whenever a timeout occurs the watchdog can be programmed
+   to generate/not generate 6 types of signals:
+
+ - aspeed,arm-reset:	If property is present then reset ARM CPU only.
+			If not specified no ARM CPU reset is done.
+
+ - aspeed,no-soc-reset: If property is present then do not reset SOC.
+			If not specified then SOC reset is done.
+
+ - aspeed,no-sys-reset: If property is present then do not reset system.
+			Typcally used in tandem with 'aspeed-external-signal'
+			If not specified then system reset is done.
+
+ - aspeed,interrupt:	If property is present then interrupt CPU.
+			If not specified then don't interrupt CPU.
+
+ - 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,alt-boot:    If property is present then boot from alternate block.
+
 Example:
 
 	wdt1: watchdog@1e785000 {
 		compatible = "aspeed,ast2400-wdt";
 		reg = <0x1e785000 0x1c>;
+		aspeed,no-sys-reset;
+		aspeed,external-signal;
 	};
Signature · 6 lines
1.8.2.2

--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
maintainer
#2 lore raw

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

Quoted 30 lines · Christopher Bostic

Describe device tree optional properties:

* aspeed,arm-reet - ARM CPU reset on signal
* aspeed,no-soc-reset - SOC reset on signal
* aspeed,no-sys-reset - System reset on signal
* aspeed,interrupt - Interrupt CPU on signal
* aspeed,external-signal - Generate external signal (WDT1 and WDT2 only)
* aspeed,alt-boot - Boot from alternate block on signal

---
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    | 24 ++++++++++++++++++++++
  1 file changed, 24 insertions(+)
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +2 -0
index c5e74d7..6f18005 100644
@@ -8,9 +8,33 @@ Required properties:
   - reg: physical base address of the controller and length of memory mapped
     region
 
+Optional properties:
+   Signal behavior - Whenever a timeout occurs the watchdog can be programmed

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt Required properties: · line 22

Quoted 10 lines
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +10 -0
+   to generate/not generate 6 types of signals:
+
+ - aspeed,arm-reset:	If property is present then reset ARM CPU only.
+			If not specified no ARM CPU reset is done.
+
+ - aspeed,no-soc-reset: If property is present then do not reset SOC.
+			If not specified then SOC reset is done.
+
+ - aspeed,no-sys-reset: If property is present then do not reset system.
+			Typcally used in tandem with 'aspeed-external-signal'

Is this correct ? As I understand the datasheet, it could also used in tandem with aspeed,interrupt.

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt Required properties: · line 24

Quoted 2 lines
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +2 -0
+			If not specified then system reset is done.
+

I'll leave it up to Rob to decide, but for my part I don't understand no-soc-reset. I would instead use four properties.

aspeed,arm-reset
aspeed,soc-reset
aspeed,sys-reset (which is the default)
aspeed,no-reset

There should also be a note explaining that the above are mutually exclusive.

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt Required properties: · line 30

Quoted 6 lines
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +6 -0
+ - aspeed,interrupt:	If property is present then interrupt CPU.
+			If not specified then don't interrupt CPU.
+
+ - 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.

For consistency, either add an empty line here or remove the empty lines above

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt Required properties: · line 40

Quoted 11 lines
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +4 -0
+ - aspeed,alt-boot:    If property is present then boot from alternate block.
+
  Example:
 
  	wdt1: watchdog@1e785000 {
  		compatible = "aspeed,ast2400-wdt";
  		reg = <0x1e785000 0x1c>;
+		aspeed,no-sys-reset;
+		aspeed,external-signal;
  	};

--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

#3 lore raw

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

Quoted 40 lines · Guenter Roeck
Quoted 39 lines · Christopher Bostic

Describe device tree optional properties:

* aspeed,arm-reet - ARM CPU reset on signal
* aspeed,no-soc-reset - SOC reset on signal
* aspeed,no-sys-reset - System reset on signal
* aspeed,interrupt - Interrupt CPU on signal
* aspeed,external-signal - Generate external signal (WDT1 and WDT2
only)
* aspeed,alt-boot - Boot from alternate block on signal

---
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    | 24 
++++++++++++++++++++++
  1 file changed, 24 insertions(+)
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +0 -0
index c5e74d7..6f18005 100644
@@ -8,9 +8,33 @@ Required properties:
   - reg: physical base address of the controller and length of 

memory mapped
region
+Optional properties:
+ Signal behavior - Whenever a timeout occurs the watchdog can be
programmed

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +6 -0
+   to generate/not generate 6 types of signals:
+
+ - aspeed,arm-reset:    If property is present then reset ARM CPU only.
+            If not specified no ARM CPU reset is done.
+
+ - aspeed,no-soc-reset: If property is present then do not reset SOC.
Quoted 8 lines
Quoted 5 lines
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +3 -0
+            If not specified then SOC reset is done.
+
+ - aspeed,no-sys-reset: If property is present then do not reset 

system.
+ Typcally used in tandem with 'aspeed-external-signal'

Is this correct ? As I understand the datasheet, it could also used in tandem with aspeed,interrupt.

True, that should be documented. Will add that.

Quoted 5 lines

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt

Quoted 3 lines
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +2 -0
+            If not specified then system reset is done.
+

I'll leave it up to Rob to decide, but for my part I don't understand no-soc-reset.

As the aspeed watchdog driver exists prior to this change an SOC reset is done by
default. In order to preserve backwards compatibility a missing optional property
should result in default behavior. I however need to be able to specify that SOC reset be disabled in some way. This goes back to our discussion about why we'd ever want to disable SYSTEM reset in the first place. Same reasoning applies for SOC reset.

Quoted 4 lines

I would instead use four properties.

aspeed,arm-reset
aspeed,soc-reset

Per my response above I think it should remain as aspeed,no-soc-reset due to backwards compatibility requirements.

Quoted 1 line

aspeed,sys-reset (which is the default)

Again as per our discussion yesterday I need some way to specify how system reset is to be done. For backwards compatibility, a lack of parameter here would result in a system reset being configured. Only way to indicate to the driver that no system reset is to be done is to indicate 'no' system reset in the optional parameter.

Quoted 1 line

aspeed,no-reset

This parameter seems ambiguous as we could be doing a 'no system reset' or a 'no SOC reset' in theory.

Quoted 3 lines

There should also be a note explaining that the above are mutually exclusive.

OK, will add that.

Quoted 9 lines

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt Required properties: · line 30

Quoted 7 lines

+ - aspeed,interrupt: If property is present then interrupt CPU.

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +3 -0
+            If not specified then don't interrupt CPU.
+
+ - aspeed,external-signal: If property is present then signal is 

sent to

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +2 -0
+            external reset counter (only WDT1 and WDT2). If not
+            specified no external signal is sent.

For consistency, either add an empty line here or remove the empty lines above

Will fix.

Thanks,
Chris

Quoted 13 lines

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt Required properties: · line 40

Quoted 12 lines

+ - aspeed,alt-boot: If property is present then boot from
alternate block.

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +3 -0
+
  Example:
        wdt1: watchdog@1e785000 {
          compatible = "aspeed,ast2400-wdt";
          reg = <0x1e785000 0x1c>;
+        aspeed,no-sys-reset;
+        aspeed,external-signal;
      };

--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

maintainer
#4 lore raw

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

Quoted 72 lines · Christopher Bostic
Quoted 42 lines · Guenter Roeck
Quoted 41 lines · Christopher Bostic

Describe device tree optional properties:

* aspeed,arm-reet - ARM CPU reset on signal
* aspeed,no-soc-reset - SOC reset on signal
* aspeed,no-sys-reset - System reset on signal
* aspeed,interrupt - Interrupt CPU on signal
* aspeed,external-signal - Generate external signal (WDT1 and WDT2
only)
* aspeed,alt-boot - Boot from alternate block on signal

---
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    | 24
++++++++++++++++++++++
 1 file changed, 24 insertions(+)
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +0 -0
index c5e74d7..6f18005 100644
@@ -8,9 +8,33 @@ Required properties:
  - reg: physical base address of the controller and length of memory

mapped
region
+Optional properties:
+ Signal behavior - Whenever a timeout occurs the watchdog can be
programmed

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +7 -0
+   to generate/not generate 6 types of signals:
+
+ - aspeed,arm-reset:    If property is present then reset ARM CPU only.
+            If not specified no ARM CPU reset is done.
+
+ - aspeed,no-soc-reset: If property is present then do not reset SOC.
+            If not specified then SOC reset is done.
Quoted 8 lines
Quoted 4 lines

+
+ - aspeed,no-sys-reset: If property is present then do not reset system.
+ Typcally used in tandem with 'aspeed-external-signal'

Is this correct ? As I understand the datasheet, it could also used in tandem with
aspeed,interrupt.

True, that should be documented. Will add that.

Quoted 6 lines

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt

Quoted 3 lines
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +2 -0
+            If not specified then system reset is done.
+

I'll leave it up to Rob to decide, but for my part I don't understand no-soc-reset.

As the aspeed watchdog driver exists prior to this change an SOC reset is done by
default. In order to preserve backwards compatibility a missing optional
property
should result in default behavior. I however need to be able to specify that SOC
reset be disabled in some way. This goes back to our discussion about why we'd
ever want to disable SYSTEM reset in the first place. Same reasoning applies for
SOC reset.

Quoted 6 lines
Quoted 4 lines

I would instead use four properties.

aspeed,arm-reset
aspeed,soc-reset

Per my response above I think it should remain as aspeed,no-soc-reset due to backwards compatibility requirements.

The same can be accomplished with "aspeed,no-reset", which would avoid the, in my opinion, awkward "no-{sys,soc}-reset" poperties.

Quoted 9 lines
Quoted 1 line

aspeed,sys-reset (which is the default)

Again as per our discussion yesterday I need some way to specify how system reset is to be done. For backwards compatibility, a lack of parameter here would
result in a system reset being configured. Only way to indicate to the driver
that no system reset is to be done is to indicate 'no' system reset in the optional
parameter.

Or "aspeed,no-reset".

Quoted 3 lines
Quoted 1 line

aspeed,no-reset

This parameter seems ambiguous as we could be doing a 'no system reset' or a 'no SOC reset' in theory.

{arm,soc,sys}-reset are mutually exclusive per datasheet, and there is a separate configuration bit which enables the reset in the first place. I don't see how that is ambiguous.

Anyway, I don't think we are making any progress here. Let's wait for guidance from Rob.

Guenter

Quoted 14 lines
Quoted 4 lines

There should also be a note explaining that the above are mutually exclusive.

OK, will add that.

Quoted 8 lines
Quoted 7 lines

+ - aspeed,interrupt: If property is present then interrupt CPU.

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +3 -0
+            If not specified then don't interrupt CPU.
+
+ - aspeed,external-signal: If property is present then signal is sent

to

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +2 -0
+            external reset counter (only WDT1 and WDT2). If not
+            specified no external signal is sent.
Quoted 21 lines
Quoted 2 lines

For consistency, either add an empty line here or remove the empty lines above

Will fix.

Thanks,
Chris

Quoted 13 lines
Quoted 12 lines

+ - aspeed,alt-boot: If property is present then boot from alternate
block.

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +3 -0
+
 Example:
       wdt1: watchdog@1e785000 {
         compatible = "aspeed,ast2400-wdt";
         reg = <0x1e785000 0x1c>;
+        aspeed,no-sys-reset;
+        aspeed,external-signal;
     };

--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

maintainer
#5 lore raw

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

Quoted 99 lines · Guenter Roeck
Quoted 72 lines · Christopher Bostic
Quoted 42 lines · Guenter Roeck
Quoted 41 lines · Christopher Bostic

Describe device tree optional properties:

* aspeed,arm-reet - ARM CPU reset on signal
* aspeed,no-soc-reset - SOC reset on signal
* aspeed,no-sys-reset - System reset on signal
* aspeed,interrupt - Interrupt CPU on signal
* aspeed,external-signal - Generate external signal (WDT1 and WDT2
only)
* aspeed,alt-boot - Boot from alternate block on signal

---
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    | 24
++++++++++++++++++++++
 1 file changed, 24 insertions(+)
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +0 -0
index c5e74d7..6f18005 100644
@@ -8,9 +8,33 @@ Required properties:
  - reg: physical base address of the controller and length of memory

mapped
region
+Optional properties:
+ Signal behavior - Whenever a timeout occurs the watchdog can be
programmed

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +7 -0
+   to generate/not generate 6 types of signals:
+
+ - aspeed,arm-reset:    If property is present then reset ARM CPU only.
+            If not specified no ARM CPU reset is done.
+
+ - aspeed,no-soc-reset: If property is present then do not reset SOC.
+            If not specified then SOC reset is done.
Quoted 8 lines
Quoted 4 lines

+
+ - aspeed,no-sys-reset: If property is present then do not reset system.
+ Typcally used in tandem with 'aspeed-external-signal'

Is this correct ? As I understand the datasheet, it could also used in tandem with
aspeed,interrupt.

True, that should be documented. Will add that.

Quoted 6 lines

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt

Quoted 3 lines
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +2 -0
+            If not specified then system reset is done.
+

I'll leave it up to Rob to decide, but for my part I don't understand no-soc-reset.

As the aspeed watchdog driver exists prior to this change an SOC reset is done by
default. In order to preserve backwards compatibility a missing optional
property
should result in default behavior. I however need to be able to specify that SOC
reset be disabled in some way. This goes back to our discussion about why we'd
ever want to disable SYSTEM reset in the first place. Same reasoning applies for
SOC reset.

Quoted 6 lines
Quoted 4 lines

I would instead use four properties.

aspeed,arm-reset
aspeed,soc-reset

Per my response above I think it should remain as aspeed,no-soc-reset due to backwards compatibility requirements.

The same can be accomplished with "aspeed,no-reset", which would avoid the, in my opinion, awkward "no-{sys,soc}-reset" poperties.

Quoted 9 lines
Quoted 1 line

aspeed,sys-reset (which is the default)

Again as per our discussion yesterday I need some way to specify how system reset is to be done. For backwards compatibility, a lack of parameter here would
result in a system reset being configured. Only way to indicate to the driver
that no system reset is to be done is to indicate 'no' system reset in the optional
parameter.

Or "aspeed,no-reset".

Quoted 3 lines
Quoted 1 line

aspeed,no-reset

This parameter seems ambiguous as we could be doing a 'no system reset' or a 'no SOC reset' in theory.

Quoted 6 lines

{arm,soc,sys}-reset are mutually exclusive per datasheet, and there is a separate configuration bit which enables the reset in the first place. I don't see how that is ambiguous.

Anyway, I don't think we are making any progress here. Let's wait for guidance from Rob.

I tend to agree with Guenter.

Maybe using the form 'aspeed,reset-type = "cpu|soc|system"' would be more aligned to the type of reset being mutually exclusive.

Rob
--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

#6 lore raw

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

Quoted 97 lines · Rob Herring
Quoted 96 lines · Guenter Roeck
Quoted 68 lines · Christopher Bostic
Quoted 41 lines · Guenter Roeck
Quoted 40 lines · Christopher Bostic

Describe device tree optional properties:

* aspeed,arm-reet - ARM CPU reset on signal
* aspeed,no-soc-reset - SOC reset on signal
* aspeed,no-sys-reset - System reset on signal
* aspeed,interrupt - Interrupt CPU on signal
* aspeed,external-signal - Generate external signal (WDT1 and WDT2
only)
* aspeed,alt-boot - Boot from alternate block on signal

---
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    | 24
++++++++++++++++++++++
  1 file changed, 24 insertions(+)
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +0 -0
index c5e74d7..6f18005 100644
@@ -8,9 +8,33 @@ Required properties:
   - reg: physical base address of the controller and length of memory

mapped
region
+Optional properties:
+ Signal behavior - Whenever a timeout occurs the watchdog can be
programmed

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +6 -0
+   to generate/not generate 6 types of signals:
+
+ - aspeed,arm-reset:    If property is present then reset ARM CPU only.
+            If not specified no ARM CPU reset is done.
+
+ - aspeed,no-soc-reset: If property is present then do not reset SOC.
Quoted 8 lines
Quoted 5 lines
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +3 -0
+            If not specified then SOC reset is done.
+
+ - aspeed,no-sys-reset: If property is present then do not reset

system.
+ Typcally used in tandem with 'aspeed-external-signal'

Is this correct ? As I understand the datasheet, it could also used in tandem with
aspeed,interrupt.

True, that should be documented. Will add that.

Quoted 4 lines

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt

Quoted 2 lines
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +2 -0
+            If not specified then system reset is done.
+

I'll leave it up to Rob to decide, but for my part I don't understand no-soc-reset.

As the aspeed watchdog driver exists prior to this change an SOC reset is done by
default. In order to preserve backwards compatibility a missing optional
property
should result in default behavior. I however need to be able to specify that SOC
reset be disabled in some way. This goes back to our discussion about why we'd
ever want to disable SYSTEM reset in the first place. Same reasoning applies for
SOC reset.

Quoted 6 lines
Quoted 4 lines

I would instead use four properties.

aspeed,arm-reset
aspeed,soc-reset

Per my response above I think it should remain as aspeed,no-soc-reset due to backwards compatibility requirements.

The same can be accomplished with "aspeed,no-reset", which would avoid the, in my opinion, awkward "no-{sys,soc}-reset" poperties.

Quoted 9 lines
Quoted 1 line

aspeed,sys-reset (which is the default)

Again as per our discussion yesterday I need some way to specify how system reset is to be done. For backwards compatibility, a lack of parameter here would
result in a system reset being configured. Only way to indicate to the driver
that no system reset is to be done is to indicate 'no' system reset in the optional
parameter.

Or "aspeed,no-reset".

Quoted 3 lines
Quoted 1 line

aspeed,no-reset

This parameter seems ambiguous as we could be doing a 'no system reset' or a 'no SOC reset' in theory.

{arm,soc,sys}-reset are mutually exclusive per datasheet, and there is a separate configuration bit which enables the reset in the first place. I don't see how that is ambiguous.

Quoted 6 lines
Quoted 2 lines

Anyway, I don't think we are making any progress here. Let's wait for guidance from Rob.

I tend to agree with Guenter.

Maybe using the form 'aspeed,reset-type = "cpu|soc|system"' would be more aligned to the type of reset being mutually exclusive.

OK I'll update to this method.

Thanks
-Chris

Quoted 3 lines

Rob

--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

maintainer
#7 lore raw

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

Quoted 100 lines · Christopher Bostic
Quoted 97 lines · Rob Herring
Quoted 96 lines · Guenter Roeck
Quoted 68 lines · Christopher Bostic
Quoted 41 lines · Guenter Roeck
Quoted 40 lines · Christopher Bostic

Describe device tree optional properties:

* aspeed,arm-reet - ARM CPU reset on signal
* aspeed,no-soc-reset - SOC reset on signal
* aspeed,no-sys-reset - System reset on signal
* aspeed,interrupt - Interrupt CPU on signal
* aspeed,external-signal - Generate external signal (WDT1 and WDT2
only)
* aspeed,alt-boot - Boot from alternate block on signal

---
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    | 24
++++++++++++++++++++++
 1 file changed, 24 insertions(+)
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +0 -0
index c5e74d7..6f18005 100644
@@ -8,9 +8,33 @@ Required properties:
  - reg: physical base address of the controller and length of memory

mapped
region
+Optional properties:
+ Signal behavior - Whenever a timeout occurs the watchdog can be
programmed

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +6 -0
+   to generate/not generate 6 types of signals:
+
+ - aspeed,arm-reset:    If property is present then reset ARM CPU only.
+            If not specified no ARM CPU reset is done.
+
+ - aspeed,no-soc-reset: If property is present then do not reset SOC.
Quoted 8 lines
Quoted 5 lines
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +3 -0
+            If not specified then SOC reset is done.
+
+ - aspeed,no-sys-reset: If property is present then do not reset

system.
+ Typcally used in tandem with 'aspeed-external-signal'

Is this correct ? As I understand the datasheet, it could also used in tandem with
aspeed,interrupt.

True, that should be documented. Will add that.

Quoted 4 lines

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt

Quoted 2 lines
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +2 -0
+            If not specified then system reset is done.
+

I'll leave it up to Rob to decide, but for my part I don't understand no-soc-reset.

As the aspeed watchdog driver exists prior to this change an SOC reset is done by
default. In order to preserve backwards compatibility a missing optional
property
should result in default behavior. I however need to be able to specify that SOC
reset be disabled in some way. This goes back to our discussion about why we'd
ever want to disable SYSTEM reset in the first place. Same reasoning applies for
SOC reset.

Quoted 6 lines
Quoted 4 lines

I would instead use four properties.

aspeed,arm-reset
aspeed,soc-reset

Per my response above I think it should remain as aspeed,no-soc-reset due to backwards compatibility requirements.

The same can be accomplished with "aspeed,no-reset", which would avoid the, in my opinion, awkward "no-{sys,soc}-reset" poperties.

Quoted 9 lines
Quoted 1 line

aspeed,sys-reset (which is the default)

Again as per our discussion yesterday I need some way to specify how system reset is to be done. For backwards compatibility, a lack of parameter here would
result in a system reset being configured. Only way to indicate to the driver
that no system reset is to be done is to indicate 'no' system reset in the optional
parameter.

Or "aspeed,no-reset".

Quoted 3 lines
Quoted 1 line

aspeed,no-reset

This parameter seems ambiguous as we could be doing a 'no system reset' or a 'no SOC reset' in theory.

{arm,soc,sys}-reset are mutually exclusive per datasheet, and there is a separate configuration bit which enables the reset in the first place. I don't see how that is ambiguous.

Quoted 9 lines
Quoted 6 lines
Quoted 2 lines

Anyway, I don't think we are making any progress here. Let's wait for guidance from Rob.

I tend to agree with Guenter.

Maybe using the form 'aspeed,reset-type = "cpu|soc|system"' would be more aligned to the type of reset being mutually exclusive.

OK I'll update to this method.

Maybe add 'aspeed,reset-type = "none"' ? The default (no property) would then be "system".

Thanks,
Guenter
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

#8 lore raw

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

Quoted 101 lines · Guenter Roeck
Quoted 100 lines · Christopher Bostic
Quoted 98 lines · Rob Herring
Quoted 97 lines · Guenter Roeck
Quoted 67 lines · Christopher Bostic
Quoted 41 lines · Guenter Roeck
Quoted 40 lines · Christopher Bostic

Describe device tree optional properties:

* aspeed,arm-reet - ARM CPU reset on signal
* aspeed,no-soc-reset - SOC reset on signal
* aspeed,no-sys-reset - System reset on signal
* aspeed,interrupt - Interrupt CPU on signal
* aspeed,external-signal - Generate external signal (WDT1 and WDT2
only)
* aspeed,alt-boot - Boot from alternate block on signal

---
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    | 24
++++++++++++++++++++++
  1 file changed, 24 insertions(+)
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +0 -0
index c5e74d7..6f18005 100644
@@ -8,9 +8,33 @@ Required properties:
   - reg: physical base address of the controller and length of memory

mapped
region
+Optional properties:
+ Signal behavior - Whenever a timeout occurs the watchdog can be
programmed

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +6 -0
+   to generate/not generate 6 types of signals:
+
+ - aspeed,arm-reset:    If property is present then reset ARM CPU only.
+            If not specified no ARM CPU reset is done.
+
+ - aspeed,no-soc-reset: If property is present then do not reset SOC.
Quoted 8 lines
Quoted 5 lines
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +3 -0
+            If not specified then SOC reset is done.
+
+ - aspeed,no-sys-reset: If property is present then do not reset

system.
+ Typcally used in tandem with 'aspeed-external-signal'

Is this correct ? As I understand the datasheet, it could also used in tandem with
aspeed,interrupt.

True, that should be documented. Will add that.

Quoted 4 lines

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt

Quoted 2 lines
Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +2 -0
+            If not specified then system reset is done.
+

I'll leave it up to Rob to decide, but for my part I don't understand no-soc-reset.

As the aspeed watchdog driver exists prior to this change an SOC reset is done by
default. In order to preserve backwards compatibility a missing optional
property
should result in default behavior. I however need to be able to specify that SOC
reset be disabled in some way. This goes back to our discussion about why we'd
ever want to disable SYSTEM reset in the first place. Same reasoning applies for
SOC reset.

Quoted 6 lines
Quoted 4 lines

I would instead use four properties.

aspeed,arm-reset
aspeed,soc-reset

Per my response above I think it should remain as aspeed,no-soc-reset due to backwards compatibility requirements.

The same can be accomplished with "aspeed,no-reset", which would avoid the, in my opinion, awkward "no-{sys,soc}-reset" poperties.

Quoted 9 lines
Quoted 1 line

aspeed,sys-reset (which is the default)

Again as per our discussion yesterday I need some way to specify how system reset is to be done. For backwards compatibility, a lack of parameter here would
result in a system reset being configured. Only way to indicate to the driver
that no system reset is to be done is to indicate 'no' system reset in the optional
parameter.

Or "aspeed,no-reset".

Quoted 3 lines
Quoted 1 line

aspeed,no-reset

This parameter seems ambiguous as we could be doing a 'no system reset' or a 'no SOC reset' in theory.

{arm,soc,sys}-reset are mutually exclusive per datasheet, and there is a separate configuration bit which enables the reset in the first place. I don't see how that is ambiguous.

Anyway, I don't think we are making any progress here. Let's wait for guidance from Rob.

Quoted 8 lines
Quoted 6 lines
Quoted 4 lines

I tend to agree with Guenter.

Maybe using the form 'aspeed,reset-type = "cpu|soc|system"' would be more aligned to the type of reset being mutually exclusive.

OK I'll update to this method.

Maybe add 'aspeed,reset-type = "none"' ? The default (no property) would then be "system".

That's what I was thinking -will do that.

Thanks,
Chris

Quoted 4 lines

Thanks,
Guenter

--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

#9 lore raw

PATCH v3 2/2 drivers/watchdog: ASPEED reference dev tree properties for config

In reply to Christopher Bostic

Reference the system device tree when configuring the watchdog engines. If optional property 'aspeed,no-sys-reset' is specified then override the default config and do not set sys reset mode. If optional property 'aspeed,no-soc-reset' is specified then override the default and do not set soc reset mode.

---
v3 - Invert the logic for system reset dev tree property to
preserve backwards compatibility. If not specified the default is to configure for system reset
- Add check for 'aspeed,no-soc-reset' property and only if not present is SOC reset to be configured. This preserves backwards compatibility.
v2 - Change of_get_property() to of_property_read_bool()
- Remove redundant check for NULL struct device_node pointer
- Optional property names now start with prefix 'aspeed,'

---
 drivers/watchdog/aspeed_wdt.c | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)
drivers/watchdog/aspeed_wdt.c +15 -5
index 1c65258..ace74f8 100644
@@ -140,6 +140,7 @@ static int aspeed_wdt_probe(struct platform_device *pdev)
 {
 	struct aspeed_wdt *wdt;
 	struct resource *res;
+	struct device_node *np;
 	int ret;
 
 	wdt = devm_kzalloc(&pdev->dev, sizeof(*wdt), GFP_KERNEL);
@@ -166,12 +167,21 @@ static int aspeed_wdt_probe(struct platform_device *pdev)
 
 	/*
 	 * Control reset on a per-device basis to ensure the
-	 * host is not affected by a BMC reboot, so only reset
-	 * the SOC and not the full chip
+	 * host is not affected by a BMC reboot
 	 */
-	wdt->ctrl = WDT_CTRL_RESET_MODE_SOC |
-		WDT_CTRL_1MHZ_CLK |
-		WDT_CTRL_RESET_SYSTEM;
+	wdt->ctrl = WDT_CTRL_1MHZ_CLK;
+
+	np = pdev->dev.of_node;
+	if (!(of_property_read_bool(np, "aspeed,no-soc-reset")))
+		wdt->ctrl |= WDT_CTRL_RESET_MODE_SOC;
+
+	if (!(of_property_read_bool(np, "aspeed,no-sys-reset")))
+		wdt->ctrl |= WDT_CTRL_RESET_SYSTEM;
+
+	if (of_property_read_bool(np, "aspeed,external-signal"))
+		wdt->ctrl |= WDT_CTRL_WDT_EXT;
+
+	writel(wdt->ctrl, wdt->base + WDT_CTRL);
 
 	if (readl(wdt->base + WDT_CTRL) & WDT_CTRL_ENABLE)  {
 		aspeed_wdt_start(&wdt->wdd);
Signature · 1 line
1.8.2.2