The devicetree ABI was broken on purpose by commit 6d532143c915
("watchdog: jz4740: Use regmap provided by TCU driver"), and
commit 1d9c30745455 ("watchdog: jz4740: Use WDT clock provided
by TCU driver"). The commit message of the latter explains why the ABI
was broken.
However, the current devicetree files were not updated to the new ABI
described in Documentation/devicetree/bindings/timer/ingenic,tcu.txt,
so the watchdog driver would not probe.
Fix this problem by updating the watchdog nodes to comply with the new
ABI.
Fixes: 6d532143c915 ("watchdog: jz4740: Use regmap provided by TCU
driver")
Signed-off-by: Paul Cercueil <[email protected]>
Cc: [email protected]
---
arch/mips/boot/dts/ingenic/jz4740.dtsi | 17 +++++++++--------
arch/mips/boot/dts/ingenic/jz4780.dtsi | 17 +++++++++--------
2 files changed, 18 insertions(+), 16 deletions(-)
diff --git a/arch/mips/boot/dts/ingenic/jz4740.dtsi b/arch/mips/boot/dts/ingenic/jz4740.dtsi
index 5accda2767be..a3301bab9231 100644
--- a/arch/mips/boot/dts/ingenic/jz4740.dtsi
+++ b/arch/mips/boot/dts/ingenic/jz4740.dtsi
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
#include <dt-bindings/clock/jz4740-cgu.h>
+#include <dt-bindings/clock/ingenic,tcu.h>
/ {
#address-cells = <1>;
@@ -45,14 +46,6 @@ cgu: jz4740-cgu@10000000 {
#clock-cells = <1>;
};
- watchdog: watchdog@10002000 {
- compatible = "ingenic,jz4740-watchdog";
- reg = <0x10002000 0x10>;
-
- clocks = <&cgu JZ4740_CLK_RTC>;
- clock-names = "rtc";
- };
-
tcu: timer@10002000 {
compatible = "ingenic,jz4740-tcu", "simple-mfd";
reg = <0x10002000 0x1000>;
@@ -73,6 +66,14 @@ &cgu JZ4740_CLK_PCLK
interrupt-parent = <&intc>;
interrupts = <23 22 21>;
+
+ watchdog: watchdog@0 {
+ compatible = "ingenic,jz4740-watchdog";
+ reg = <0x0 0xc>;
+
+ clocks = <&tcu TCU_CLK_WDT>;
+ clock-names = "wdt";
+ };
};
rtc_dev: rtc@10003000 {
diff --git a/arch/mips/boot/dts/ingenic/jz4780.dtsi b/arch/mips/boot/dts/ingenic/jz4780.dtsi
index f928329b034b..bb89653d16a3 100644
--- a/arch/mips/boot/dts/ingenic/jz4780.dtsi
+++ b/arch/mips/boot/dts/ingenic/jz4780.dtsi
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
#include <dt-bindings/clock/jz4780-cgu.h>
+#include <dt-bindings/clock/ingenic,tcu.h>
#include <dt-bindings/dma/jz4780-dma.h>
/ {
@@ -67,6 +68,14 @@ &cgu JZ4780_CLK_EXCLK
interrupt-parent = <&intc>;
interrupts = <27 26 25>;
+
+ watchdog: watchdog@0 {
+ compatible = "ingenic,jz4780-watchdog";
+ reg = <0x0 0xc>;
+
+ clocks = <&tcu TCU_CLK_WDT>;
+ clock-names = "wdt";
+ };
};
rtc_dev: rtc@10003000 {
@@ -348,14 +357,6 @@ i2c4: i2c@10054000 {
status = "disabled";
};
- watchdog: watchdog@10002000 {
- compatible = "ingenic,jz4780-watchdog";
- reg = <0x10002000 0x10>;
-
- clocks = <&cgu JZ4780_CLK_RTCLK>;
- clock-names = "rtc";
- };
-
nemc: nemc@13410000 {
compatible = "ingenic,jz4780-nemc";
reg = <0x13410000 0x10000>;
--
2.25.0
On 2/11/20 3:53 PM, Paul Cercueil wrote:
> The devicetree ABI was broken on purpose by commit 6d532143c915
> ("watchdog: jz4740: Use regmap provided by TCU driver"), and
> commit 1d9c30745455 ("watchdog: jz4740: Use WDT clock provided
> by TCU driver"). The commit message of the latter explains why the ABI
> was broken.
>
> However, the current devicetree files were not updated to the new ABI
> described in Documentation/devicetree/bindings/timer/ingenic,tcu.txt,
> so the watchdog driver would not probe.
>
> Fix this problem by updating the watchdog nodes to comply with the new
> ABI.
>
> Fixes: 6d532143c915 ("watchdog: jz4740: Use regmap provided by TCU
> driver")
>
> Signed-off-by: Paul Cercueil <[email protected]>
> Cc: [email protected]
> ---
> arch/mips/boot/dts/ingenic/jz4740.dtsi | 17 +++++++++--------
> arch/mips/boot/dts/ingenic/jz4780.dtsi | 17 +++++++++--------
> 2 files changed, 18 insertions(+), 16 deletions(-)
>
> diff --git a/arch/mips/boot/dts/ingenic/jz4740.dtsi b/arch/mips/boot/dts/ingenic/jz4740.dtsi
> index 5accda2767be..a3301bab9231 100644
> --- a/arch/mips/boot/dts/ingenic/jz4740.dtsi
> +++ b/arch/mips/boot/dts/ingenic/jz4740.dtsi
> @@ -1,5 +1,6 @@
> // SPDX-License-Identifier: GPL-2.0
> #include <dt-bindings/clock/jz4740-cgu.h>
> +#include <dt-bindings/clock/ingenic,tcu.h>
>
> / {
> #address-cells = <1>;
> @@ -45,14 +46,6 @@ cgu: jz4740-cgu@10000000 {
> #clock-cells = <1>;
> };
>
> - watchdog: watchdog@10002000 {
> - compatible = "ingenic,jz4740-watchdog";
> - reg = <0x10002000 0x10>;
> -
> - clocks = <&cgu JZ4740_CLK_RTC>;
> - clock-names = "rtc";
> - };
> -
> tcu: timer@10002000 {
> compatible = "ingenic,jz4740-tcu", "simple-mfd";
> reg = <0x10002000 0x1000>;
> @@ -73,6 +66,14 @@ &cgu JZ4740_CLK_PCLK
>
> interrupt-parent = <&intc>;
> interrupts = <23 22 21>;
> +
> + watchdog: watchdog@0 {
> + compatible = "ingenic,jz4740-watchdog";
> + reg = <0x0 0xc>;
Now the WDT_TCSR register is directly managed by the CPU, OK.
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
> +
> + clocks = <&tcu TCU_CLK_WDT>;
> + clock-names = "wdt";
> + };
> };
>
> rtc_dev: rtc@10003000 {
> diff --git a/arch/mips/boot/dts/ingenic/jz4780.dtsi b/arch/mips/boot/dts/ingenic/jz4780.dtsi
> index f928329b034b..bb89653d16a3 100644
> --- a/arch/mips/boot/dts/ingenic/jz4780.dtsi
> +++ b/arch/mips/boot/dts/ingenic/jz4780.dtsi
> @@ -1,5 +1,6 @@
> // SPDX-License-Identifier: GPL-2.0
> #include <dt-bindings/clock/jz4780-cgu.h>
> +#include <dt-bindings/clock/ingenic,tcu.h>
> #include <dt-bindings/dma/jz4780-dma.h>
>
> / {
> @@ -67,6 +68,14 @@ &cgu JZ4780_CLK_EXCLK
>
> interrupt-parent = <&intc>;
> interrupts = <27 26 25>;
> +
> + watchdog: watchdog@0 {
> + compatible = "ingenic,jz4780-watchdog";
> + reg = <0x0 0xc>;
> +
> + clocks = <&tcu TCU_CLK_WDT>;
> + clock-names = "wdt";
> + };
> };
>
> rtc_dev: rtc@10003000 {
> @@ -348,14 +357,6 @@ i2c4: i2c@10054000 {
> status = "disabled";
> };
>
> - watchdog: watchdog@10002000 {
> - compatible = "ingenic,jz4780-watchdog";
> - reg = <0x10002000 0x10>;
> -
> - clocks = <&cgu JZ4780_CLK_RTCLK>;
> - clock-names = "rtc";
> - };
> -
> nemc: nemc@13410000 {
> compatible = "ingenic,jz4780-nemc";
> reg = <0x13410000 0x10000>;
>
Hello,
Paul Cercueil wrote:
> The devicetree ABI was broken on purpose by commit 6d532143c915
> ("watchdog: jz4740: Use regmap provided by TCU driver"), and
> commit 1d9c30745455 ("watchdog: jz4740: Use WDT clock provided
> by TCU driver"). The commit message of the latter explains why the ABI
> was broken.
>
> However, the current devicetree files were not updated to the new ABI
> described in Documentation/devicetree/bindings/timer/ingenic,tcu.txt,
> so the watchdog driver would not probe.
>
> Fix this problem by updating the watchdog nodes to comply with the new
> ABI.
>
> Fixes: 6d532143c915 ("watchdog: jz4740: Use regmap provided by TCU
> driver")
Applied to mips-fixes.
> commit 11479e8e3cd8
> https://git.kernel.org/mips/c/11479e8e3cd8
>
> Fixes: 6d532143c915 ("watchdog: jz4740: Use regmap provided by TCU driver")
> Signed-off-by: Paul Cercueil <[email protected]>
> Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
> Signed-off-by: Paul Burton <[email protected]>
Thanks,
Paul
[ This message was auto-generated; if you believe anything is incorrect
then please email [email protected] to report it. ]