diff mbox series

[v12,09/13] MIPS: jz4740: Add DTS nodes for the TCU drivers

Message ID 20190521145141.9813-10-paul@crapouillou.net (mailing list archive)
State Superseded
Headers show
Series [v12,01/13] dt-bindings: ingenic: Add DT bindings for TCU clocks | expand

Commit Message

Paul Cercueil May 21, 2019, 2:51 p.m. UTC
Add DTS nodes for the JZ4780, JZ4770 and JZ4740 devicetree files.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
---

Notes:
    v5: New patch
    
    v6: Fix register lengths in watchdog/pwm nodes
    
    v7: No change
    
    v8: - Fix wrong start address for PWM node
    	- Add system timer and clocksource sub-nodes
    
    v9: Drop timer and clocksource sub-nodes
    
    v10-v11: No change
    
    v12: Drop PWM/watchdog/OST sub-nodes, for now.

 arch/mips/boot/dts/ingenic/jz4740.dtsi | 22 ++++++++++++++++++++++
 arch/mips/boot/dts/ingenic/jz4770.dtsi | 21 +++++++++++++++++++++
 arch/mips/boot/dts/ingenic/jz4780.dtsi | 21 +++++++++++++++++++++
 3 files changed, 64 insertions(+)

Comments

Mathieu Malaterre May 22, 2019, 9:21 a.m. UTC | #1
On Tue, May 21, 2019 at 4:52 PM Paul Cercueil <paul@crapouillou.net> wrote:
>
> Add DTS nodes for the JZ4780, JZ4770 and JZ4740 devicetree files.
>
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> ---
>
> Notes:
>     v5: New patch
>
>     v6: Fix register lengths in watchdog/pwm nodes
>
>     v7: No change
>
>     v8: - Fix wrong start address for PWM node
>         - Add system timer and clocksource sub-nodes
>
>     v9: Drop timer and clocksource sub-nodes
>
>     v10-v11: No change
>
>     v12: Drop PWM/watchdog/OST sub-nodes, for now.
>
>  arch/mips/boot/dts/ingenic/jz4740.dtsi | 22 ++++++++++++++++++++++
>  arch/mips/boot/dts/ingenic/jz4770.dtsi | 21 +++++++++++++++++++++
>  arch/mips/boot/dts/ingenic/jz4780.dtsi | 21 +++++++++++++++++++++
>  3 files changed, 64 insertions(+)
>
> diff --git a/arch/mips/boot/dts/ingenic/jz4740.dtsi b/arch/mips/boot/dts/ingenic/jz4740.dtsi
> index 2beb78a62b7d..807d9702d4cf 100644
> --- a/arch/mips/boot/dts/ingenic/jz4740.dtsi
> +++ b/arch/mips/boot/dts/ingenic/jz4740.dtsi
> @@ -53,6 +53,28 @@
>                 clock-names = "rtc";
>         };
>
> +       tcu: timer@10002000 {
> +               compatible = "ingenic,jz4740-tcu";
> +               reg = <0x10002000 0x1000>;
> +               #address-cells = <1>;
> +               #size-cells = <1>;
> +               ranges = <0x0 0x10002000 0x1000>;
> +
> +               #clock-cells = <1>;
> +
> +               clocks = <&cgu JZ4740_CLK_RTC
> +                         &cgu JZ4740_CLK_EXT
> +                         &cgu JZ4740_CLK_PCLK
> +                         &cgu JZ4740_CLK_TCU>;
> +               clock-names = "rtc", "ext", "pclk", "tcu";
> +
> +               interrupt-controller;
> +               #interrupt-cells = <1>;
> +
> +               interrupt-parent = <&intc>;
> +               interrupts = <23 22 21>;
> +       };
> +
>         rtc_dev: rtc@10003000 {
>                 compatible = "ingenic,jz4740-rtc";
>                 reg = <0x10003000 0x40>;
> diff --git a/arch/mips/boot/dts/ingenic/jz4770.dtsi b/arch/mips/boot/dts/ingenic/jz4770.dtsi
> index 49ede6c14ff3..70932fd90902 100644
> --- a/arch/mips/boot/dts/ingenic/jz4770.dtsi
> +++ b/arch/mips/boot/dts/ingenic/jz4770.dtsi
> @@ -46,6 +46,27 @@
>                 #clock-cells = <1>;
>         };
>
> +       tcu: timer@10002000 {
> +               compatible = "ingenic,jz4770-tcu";
> +               reg = <0x10002000 0x1000>;
> +               #address-cells = <1>;
> +               #size-cells = <1>;
> +               ranges = <0x0 0x10002000 0x1000>;
> +
> +               #clock-cells = <1>;
> +
> +               clocks = <&cgu JZ4770_CLK_RTC
> +                         &cgu JZ4770_CLK_EXT
> +                         &cgu JZ4770_CLK_PCLK>;
> +               clock-names = "rtc", "ext", "pclk";
> +
> +               interrupt-controller;
> +               #interrupt-cells = <1>;
> +
> +               interrupt-parent = <&intc>;
> +               interrupts = <27 26 25>;
> +       };
> +
>         pinctrl: pin-controller@10010000 {
>                 compatible = "ingenic,jz4770-pinctrl";
>                 reg = <0x10010000 0x600>;
> diff --git a/arch/mips/boot/dts/ingenic/jz4780.dtsi b/arch/mips/boot/dts/ingenic/jz4780.dtsi
> index b03cdec56de9..495082ce7fc5 100644
> --- a/arch/mips/boot/dts/ingenic/jz4780.dtsi
> +++ b/arch/mips/boot/dts/ingenic/jz4780.dtsi
> @@ -46,6 +46,27 @@
>                 #clock-cells = <1>;
>         };
>
> +       tcu: timer@10002000 {

With W=1, I see:

../arch/mips/boot/dts/ingenic/jz4780.dtsi:64.22-83.4: Warning
(unique_unit_address): /timer@10002000: duplicate unit-address (also
used in node /watchdog@1000
2000)


> +               compatible = "ingenic,jz4770-tcu";
> +               reg = <0x10002000 0x1000>;
> +               #address-cells = <1>;
> +               #size-cells = <1>;
> +               ranges = <0x0 0x10002000 0x1000>;
> +
> +               #clock-cells = <1>;
> +
> +               clocks = <&cgu JZ4780_CLK_RTCLK
> +                         &cgu JZ4780_CLK_EXCLK
> +                         &cgu JZ4780_CLK_PCLK>;
> +               clock-names = "rtc", "ext", "pclk";
> +
> +               interrupt-controller;
> +               #interrupt-cells = <1>;
> +
> +               interrupt-parent = <&intc>;
> +               interrupts = <27 26 25>;
> +       };
> +
>         rtc_dev: rtc@10003000 {
>                 compatible = "ingenic,jz4780-rtc";
>                 reg = <0x10003000 0x4c>;
> --
> 2.21.0.593.g511ec345e18
>
Paul Cercueil May 22, 2019, 11:15 a.m. UTC | #2
On Wed, May 22, 2019 at 11:21 AM, Mathieu Malaterre <malat@debian.org> 
wrote:
> On Tue, May 21, 2019 at 4:52 PM Paul Cercueil <paul@crapouillou.net> 
> wrote:
>> 
>>  Add DTS nodes for the JZ4780, JZ4770 and JZ4740 devicetree files.
>> 
>>  Signed-off-by: Paul Cercueil <paul@crapouillou.net>
>>  ---
>> 
>>  Notes:
>>      v5: New patch
>> 
>>      v6: Fix register lengths in watchdog/pwm nodes
>> 
>>      v7: No change
>> 
>>      v8: - Fix wrong start address for PWM node
>>          - Add system timer and clocksource sub-nodes
>> 
>>      v9: Drop timer and clocksource sub-nodes
>> 
>>      v10-v11: No change
>> 
>>      v12: Drop PWM/watchdog/OST sub-nodes, for now.
>> 
>>   arch/mips/boot/dts/ingenic/jz4740.dtsi | 22 ++++++++++++++++++++++
>>   arch/mips/boot/dts/ingenic/jz4770.dtsi | 21 +++++++++++++++++++++
>>   arch/mips/boot/dts/ingenic/jz4780.dtsi | 21 +++++++++++++++++++++
>>   3 files changed, 64 insertions(+)
>> 
>>  diff --git a/arch/mips/boot/dts/ingenic/jz4740.dtsi 
>> b/arch/mips/boot/dts/ingenic/jz4740.dtsi
>>  index 2beb78a62b7d..807d9702d4cf 100644
>>  --- a/arch/mips/boot/dts/ingenic/jz4740.dtsi
>>  +++ b/arch/mips/boot/dts/ingenic/jz4740.dtsi
>>  @@ -53,6 +53,28 @@
>>                  clock-names = "rtc";
>>          };
>> 
>>  +       tcu: timer@10002000 {
>>  +               compatible = "ingenic,jz4740-tcu";
>>  +               reg = <0x10002000 0x1000>;
>>  +               #address-cells = <1>;
>>  +               #size-cells = <1>;
>>  +               ranges = <0x0 0x10002000 0x1000>;
>>  +
>>  +               #clock-cells = <1>;
>>  +
>>  +               clocks = <&cgu JZ4740_CLK_RTC
>>  +                         &cgu JZ4740_CLK_EXT
>>  +                         &cgu JZ4740_CLK_PCLK
>>  +                         &cgu JZ4740_CLK_TCU>;
>>  +               clock-names = "rtc", "ext", "pclk", "tcu";
>>  +
>>  +               interrupt-controller;
>>  +               #interrupt-cells = <1>;
>>  +
>>  +               interrupt-parent = <&intc>;
>>  +               interrupts = <23 22 21>;
>>  +       };
>>  +
>>          rtc_dev: rtc@10003000 {
>>                  compatible = "ingenic,jz4740-rtc";
>>                  reg = <0x10003000 0x40>;
>>  diff --git a/arch/mips/boot/dts/ingenic/jz4770.dtsi 
>> b/arch/mips/boot/dts/ingenic/jz4770.dtsi
>>  index 49ede6c14ff3..70932fd90902 100644
>>  --- a/arch/mips/boot/dts/ingenic/jz4770.dtsi
>>  +++ b/arch/mips/boot/dts/ingenic/jz4770.dtsi
>>  @@ -46,6 +46,27 @@
>>                  #clock-cells = <1>;
>>          };
>> 
>>  +       tcu: timer@10002000 {
>>  +               compatible = "ingenic,jz4770-tcu";
>>  +               reg = <0x10002000 0x1000>;
>>  +               #address-cells = <1>;
>>  +               #size-cells = <1>;
>>  +               ranges = <0x0 0x10002000 0x1000>;
>>  +
>>  +               #clock-cells = <1>;
>>  +
>>  +               clocks = <&cgu JZ4770_CLK_RTC
>>  +                         &cgu JZ4770_CLK_EXT
>>  +                         &cgu JZ4770_CLK_PCLK>;
>>  +               clock-names = "rtc", "ext", "pclk";
>>  +
>>  +               interrupt-controller;
>>  +               #interrupt-cells = <1>;
>>  +
>>  +               interrupt-parent = <&intc>;
>>  +               interrupts = <27 26 25>;
>>  +       };
>>  +
>>          pinctrl: pin-controller@10010000 {
>>                  compatible = "ingenic,jz4770-pinctrl";
>>                  reg = <0x10010000 0x600>;
>>  diff --git a/arch/mips/boot/dts/ingenic/jz4780.dtsi 
>> b/arch/mips/boot/dts/ingenic/jz4780.dtsi
>>  index b03cdec56de9..495082ce7fc5 100644
>>  --- a/arch/mips/boot/dts/ingenic/jz4780.dtsi
>>  +++ b/arch/mips/boot/dts/ingenic/jz4780.dtsi
>>  @@ -46,6 +46,27 @@
>>                  #clock-cells = <1>;
>>          };
>> 
>>  +       tcu: timer@10002000 {
> 
> With W=1, I see:
> 
> ../arch/mips/boot/dts/ingenic/jz4780.dtsi:64.22-83.4: Warning
> (unique_unit_address): /timer@10002000: duplicate unit-address (also
> used in node /watchdog@1000
> 2000)

That didn't happen in V11 because there I was also migrating the
watchdog and PWM drivers to children nodes of the TCU. It was more
atomic, but it also was a 27-patches bomb touching a lot of
subsystems that nobody was ever going to merge.

Is the address conflict OK, knowing that the watchdog node will
move out of the way as soon as this patchset is merged?

Should I add an extra patch to remove the watchdog node instead?

(and yes, devicetree ABI will break, which is sort-of OK in this
case - as on Ingenic boards the devicetree blobs are always
compiled within the kernel, so I think we should make this
much-needed change while we still can).


>>  +               compatible = "ingenic,jz4770-tcu";
>>  +               reg = <0x10002000 0x1000>;
>>  +               #address-cells = <1>;
>>  +               #size-cells = <1>;
>>  +               ranges = <0x0 0x10002000 0x1000>;
>>  +
>>  +               #clock-cells = <1>;
>>  +
>>  +               clocks = <&cgu JZ4780_CLK_RTCLK
>>  +                         &cgu JZ4780_CLK_EXCLK
>>  +                         &cgu JZ4780_CLK_PCLK>;
>>  +               clock-names = "rtc", "ext", "pclk";
>>  +
>>  +               interrupt-controller;
>>  +               #interrupt-cells = <1>;
>>  +
>>  +               interrupt-parent = <&intc>;
>>  +               interrupts = <27 26 25>;
>>  +       };
>>  +
>>          rtc_dev: rtc@10003000 {
>>                  compatible = "ingenic,jz4780-rtc";
>>                  reg = <0x10003000 0x4c>;
>>  --
>>  2.21.0.593.g511ec345e18
>>
diff mbox series

Patch

diff --git a/arch/mips/boot/dts/ingenic/jz4740.dtsi b/arch/mips/boot/dts/ingenic/jz4740.dtsi
index 2beb78a62b7d..807d9702d4cf 100644
--- a/arch/mips/boot/dts/ingenic/jz4740.dtsi
+++ b/arch/mips/boot/dts/ingenic/jz4740.dtsi
@@ -53,6 +53,28 @@ 
 		clock-names = "rtc";
 	};
 
+	tcu: timer@10002000 {
+		compatible = "ingenic,jz4740-tcu";
+		reg = <0x10002000 0x1000>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0x0 0x10002000 0x1000>;
+
+		#clock-cells = <1>;
+
+		clocks = <&cgu JZ4740_CLK_RTC
+			  &cgu JZ4740_CLK_EXT
+			  &cgu JZ4740_CLK_PCLK
+			  &cgu JZ4740_CLK_TCU>;
+		clock-names = "rtc", "ext", "pclk", "tcu";
+
+		interrupt-controller;
+		#interrupt-cells = <1>;
+
+		interrupt-parent = <&intc>;
+		interrupts = <23 22 21>;
+	};
+
 	rtc_dev: rtc@10003000 {
 		compatible = "ingenic,jz4740-rtc";
 		reg = <0x10003000 0x40>;
diff --git a/arch/mips/boot/dts/ingenic/jz4770.dtsi b/arch/mips/boot/dts/ingenic/jz4770.dtsi
index 49ede6c14ff3..70932fd90902 100644
--- a/arch/mips/boot/dts/ingenic/jz4770.dtsi
+++ b/arch/mips/boot/dts/ingenic/jz4770.dtsi
@@ -46,6 +46,27 @@ 
 		#clock-cells = <1>;
 	};
 
+	tcu: timer@10002000 {
+		compatible = "ingenic,jz4770-tcu";
+		reg = <0x10002000 0x1000>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0x0 0x10002000 0x1000>;
+
+		#clock-cells = <1>;
+
+		clocks = <&cgu JZ4770_CLK_RTC
+			  &cgu JZ4770_CLK_EXT
+			  &cgu JZ4770_CLK_PCLK>;
+		clock-names = "rtc", "ext", "pclk";
+
+		interrupt-controller;
+		#interrupt-cells = <1>;
+
+		interrupt-parent = <&intc>;
+		interrupts = <27 26 25>;
+	};
+
 	pinctrl: pin-controller@10010000 {
 		compatible = "ingenic,jz4770-pinctrl";
 		reg = <0x10010000 0x600>;
diff --git a/arch/mips/boot/dts/ingenic/jz4780.dtsi b/arch/mips/boot/dts/ingenic/jz4780.dtsi
index b03cdec56de9..495082ce7fc5 100644
--- a/arch/mips/boot/dts/ingenic/jz4780.dtsi
+++ b/arch/mips/boot/dts/ingenic/jz4780.dtsi
@@ -46,6 +46,27 @@ 
 		#clock-cells = <1>;
 	};
 
+	tcu: timer@10002000 {
+		compatible = "ingenic,jz4770-tcu";
+		reg = <0x10002000 0x1000>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0x0 0x10002000 0x1000>;
+
+		#clock-cells = <1>;
+
+		clocks = <&cgu JZ4780_CLK_RTCLK
+			  &cgu JZ4780_CLK_EXCLK
+			  &cgu JZ4780_CLK_PCLK>;
+		clock-names = "rtc", "ext", "pclk";
+
+		interrupt-controller;
+		#interrupt-cells = <1>;
+
+		interrupt-parent = <&intc>;
+		interrupts = <27 26 25>;
+	};
+
 	rtc_dev: rtc@10003000 {
 		compatible = "ingenic,jz4780-rtc";
 		reg = <0x10003000 0x4c>;