diff mbox series

[2/2] Revert "arm64: dts: ls1028a: add flextimer based pwm nodes"

Message ID 20220115210907.451189-2-michael@walle.cc (mailing list archive)
State New, archived
Headers show
Series [1/2] Revert "arm64: dts: ls1028a-rdb: enable pwm0" | expand

Commit Message

Michael Walle Jan. 15, 2022, 9:09 p.m. UTC
The changes to the device tree look very wrong. There are now two
devices with the same base address: pwm0 and ftm_alarm0. Both are using
the Flex Timer Module. It seems like this should either be one driver or
and MFD driver. Either way, there should only be one node in the device
tree. Revert the offending changes to avoid getting a broken device tree
in circulation.

This reverts commit 71799672ea24d2935322d655d2407c1ccd7db9ff.

Fixes: 71799672ea24 ("arm64: dts: ls1028a: add flextimer based pwm nodes")
Signed-off-by: Michael Walle <michael@walle.cc>
---

Btw, the nodes are also not sorted by the address. Otherwise it should have
been spotted easily.

 .../arm64/boot/dts/freescale/fsl-ls1028a.dtsi | 95 -------------------
 1 file changed, 95 deletions(-)

Comments

Shawn Guo Jan. 29, 2022, 5:42 a.m. UTC | #1
On Sat, Jan 15, 2022 at 10:09:07PM +0100, Michael Walle wrote:
> The changes to the device tree look very wrong. There are now two
> devices with the same base address: pwm0 and ftm_alarm0. Both are using
> the Flex Timer Module. It seems like this should either be one driver or
> and MFD driver. Either way, there should only be one node in the device
> tree. Revert the offending changes to avoid getting a broken device tree
> in circulation.

Why not just fix the conflicting nodes?

Shawn

> 
> This reverts commit 71799672ea24d2935322d655d2407c1ccd7db9ff.
> 
> Fixes: 71799672ea24 ("arm64: dts: ls1028a: add flextimer based pwm nodes")
> Signed-off-by: Michael Walle <michael@walle.cc>
> ---
> 
> Btw, the nodes are also not sorted by the address. Otherwise it should have
> been spotted easily.
> 
>  .../arm64/boot/dts/freescale/fsl-ls1028a.dtsi | 95 -------------------
>  1 file changed, 95 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
> index 1ef26cbc79cb..d3cc8cbaf768 100644
> --- a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
> +++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
> @@ -66,13 +66,6 @@ CPU_PW20: cpu-pw20 {
>  		};
>  	};
>  
> -	rtc_clk: rtc-clk {
> -		compatible = "fixed-clock";
> -		#clock-cells = <0>;
> -		clock-frequency = <32768>;
> -		clock-output-names = "rtc_clk";
> -	};
> -
>  	sysclk: sysclk {
>  		compatible = "fixed-clock";
>  		#clock-cells = <0>;
> @@ -1245,94 +1238,6 @@ ierb@1f0800000 {
>  			reg = <0x01 0xf0800000 0x0 0x10000>;
>  		};
>  
> -		pwm0: pwm@2800000 {
> -			compatible = "fsl,vf610-ftm-pwm";
> -			#pwm-cells = <3>;
> -			reg = <0x0 0x2800000 0x0 0x10000>;
> -			clock-names = "ftm_sys", "ftm_ext",
> -				      "ftm_fix", "ftm_cnt_clk_en";
> -			clocks = <&clockgen 4 1>, <&clockgen 4 1>,
> -				 <&rtc_clk>, <&clockgen 4 1>;
> -			status = "disabled";
> -		};
> -
> -		pwm1: pwm@2810000 {
> -			compatible = "fsl,vf610-ftm-pwm";
> -			#pwm-cells = <3>;
> -			reg = <0x0 0x2810000 0x0 0x10000>;
> -			clock-names = "ftm_sys", "ftm_ext",
> -				      "ftm_fix", "ftm_cnt_clk_en";
> -			clocks = <&clockgen 4 1>, <&clockgen 4 1>,
> -				 <&rtc_clk>, <&clockgen 4 1>;
> -			status = "disabled";
> -		};
> -
> -		pwm2: pwm@2820000 {
> -			compatible = "fsl,vf610-ftm-pwm";
> -			#pwm-cells = <3>;
> -			reg = <0x0 0x2820000 0x0 0x10000>;
> -			clock-names = "ftm_sys", "ftm_ext",
> -				      "ftm_fix", "ftm_cnt_clk_en";
> -			clocks = <&clockgen 4 1>, <&clockgen 4 1>,
> -				 <&rtc_clk>, <&clockgen 4 1>;
> -			status = "disabled";
> -		};
> -
> -		pwm3: pwm@2830000 {
> -			compatible = "fsl,vf610-ftm-pwm";
> -			#pwm-cells = <3>;
> -			reg = <0x0 0x2830000 0x0 0x10000>;
> -			clock-names = "ftm_sys", "ftm_ext",
> -				      "ftm_fix", "ftm_cnt_clk_en";
> -			clocks = <&clockgen 4 1>, <&clockgen 4 1>,
> -				 <&rtc_clk>, <&clockgen 4 1>;
> -			status = "disabled";
> -		};
> -
> -		pwm4: pwm@2840000 {
> -			compatible = "fsl,vf610-ftm-pwm";
> -			#pwm-cells = <3>;
> -			reg = <0x0 0x2840000 0x0 0x10000>;
> -			clock-names = "ftm_sys", "ftm_ext",
> -				      "ftm_fix", "ftm_cnt_clk_en";
> -			clocks = <&clockgen 4 1>, <&clockgen 4 1>,
> -				 <&rtc_clk>, <&clockgen 4 1>;
> -			status = "disabled";
> -		};
> -
> -		pwm5: pwm@2850000 {
> -			compatible = "fsl,vf610-ftm-pwm";
> -			#pwm-cells = <3>;
> -			reg = <0x0 0x2850000 0x0 0x10000>;
> -			clock-names = "ftm_sys", "ftm_ext",
> -				      "ftm_fix", "ftm_cnt_clk_en";
> -			clocks = <&clockgen 4 1>, <&clockgen 4 1>,
> -				 <&rtc_clk>, <&clockgen 4 1>;
> -			status = "disabled";
> -		};
> -
> -		pwm6: pwm@2860000 {
> -			compatible = "fsl,vf610-ftm-pwm";
> -			#pwm-cells = <3>;
> -			reg = <0x0 0x2860000 0x0 0x10000>;
> -			clock-names = "ftm_sys", "ftm_ext",
> -				      "ftm_fix", "ftm_cnt_clk_en";
> -			clocks = <&clockgen 4 1>, <&clockgen 4 1>,
> -				 <&rtc_clk>, <&clockgen 4 1>;
> -			status = "disabled";
> -		};
> -
> -		pwm7: pwm@2870000 {
> -			compatible = "fsl,vf610-ftm-pwm";
> -			#pwm-cells = <3>;
> -			reg = <0x0 0x2870000 0x0 0x10000>;
> -			clock-names = "ftm_sys", "ftm_ext",
> -				      "ftm_fix", "ftm_cnt_clk_en";
> -			clocks = <&clockgen 4 1>, <&clockgen 4 1>,
> -				 <&rtc_clk>, <&clockgen 4 1>;
> -			status = "disabled";
> -		};
> -
>  		rcpm: power-controller@1e34040 {
>  			compatible = "fsl,ls1028a-rcpm", "fsl,qoriq-rcpm-2.1+";
>  			reg = <0x0 0x1e34040 0x0 0x1c>;
> -- 
> 2.30.2
>
Michael Walle Jan. 29, 2022, 10:12 a.m. UTC | #2
Am 2022-01-29 06:42, schrieb Shawn Guo:
> On Sat, Jan 15, 2022 at 10:09:07PM +0100, Michael Walle wrote:
>> The changes to the device tree look very wrong. There are now two
>> devices with the same base address: pwm0 and ftm_alarm0. Both are 
>> using
>> the Flex Timer Module. It seems like this should either be one driver 
>> or
>> and MFD driver. Either way, there should only be one node in the 
>> device
>> tree. Revert the offending changes to avoid getting a broken device 
>> tree
>> in circulation.
> 
> Why not just fix the conflicting nodes?

And how would you fix it? There are two conflicting drivers. Like
I said, maybe it should be an MFD driver, see for example
Documentation/devicetree/bindings/mfd/atmel-flexcom.txt, which also
have a common block which you can switch between different modes. But
that would mean a lot of work which I don't think will happen until
the next merge window, let alone that this is not a bugfix.

Therefore, the only sensible thing is to revert the latest changes,
so that you don't have a broken device tree released with 5.17 and
work on a proper support for the next release.

And TBH, I'd expect that NXP will fix this.

-michael
Michael Walle Feb. 7, 2022, 2:02 p.m. UTC | #3
Am 2022-01-29 11:12, schrieb Michael Walle:
> Am 2022-01-29 06:42, schrieb Shawn Guo:
>> On Sat, Jan 15, 2022 at 10:09:07PM +0100, Michael Walle wrote:
>>> The changes to the device tree look very wrong. There are now two
>>> devices with the same base address: pwm0 and ftm_alarm0. Both are 
>>> using
>>> the Flex Timer Module. It seems like this should either be one driver 
>>> or
>>> and MFD driver. Either way, there should only be one node in the 
>>> device
>>> tree. Revert the offending changes to avoid getting a broken device 
>>> tree
>>> in circulation.
>> 
>> Why not just fix the conflicting nodes?
> 
> And how would you fix it? There are two conflicting drivers. Like
> I said, maybe it should be an MFD driver, see for example
> Documentation/devicetree/bindings/mfd/atmel-flexcom.txt, which also
> have a common block which you can switch between different modes. But
> that would mean a lot of work which I don't think will happen until
> the next merge window, let alone that this is not a bugfix.
> 
> Therefore, the only sensible thing is to revert the latest changes,
> so that you don't have a broken device tree released with 5.17 and
> work on a proper support for the next release.
> 
> And TBH, I'd expect that NXP will fix this.

I've just asked Rob and it is ok to have two nodes which have the
same reg on the same parent if one (or both) are disabled.

So you can drop this patch, but someone should really sort these
nodes by address.

I still think it would have been nicer the one proper driver for
the flextimer.

-michael
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
index 1ef26cbc79cb..d3cc8cbaf768 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
@@ -66,13 +66,6 @@  CPU_PW20: cpu-pw20 {
 		};
 	};
 
-	rtc_clk: rtc-clk {
-		compatible = "fixed-clock";
-		#clock-cells = <0>;
-		clock-frequency = <32768>;
-		clock-output-names = "rtc_clk";
-	};
-
 	sysclk: sysclk {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
@@ -1245,94 +1238,6 @@  ierb@1f0800000 {
 			reg = <0x01 0xf0800000 0x0 0x10000>;
 		};
 
-		pwm0: pwm@2800000 {
-			compatible = "fsl,vf610-ftm-pwm";
-			#pwm-cells = <3>;
-			reg = <0x0 0x2800000 0x0 0x10000>;
-			clock-names = "ftm_sys", "ftm_ext",
-				      "ftm_fix", "ftm_cnt_clk_en";
-			clocks = <&clockgen 4 1>, <&clockgen 4 1>,
-				 <&rtc_clk>, <&clockgen 4 1>;
-			status = "disabled";
-		};
-
-		pwm1: pwm@2810000 {
-			compatible = "fsl,vf610-ftm-pwm";
-			#pwm-cells = <3>;
-			reg = <0x0 0x2810000 0x0 0x10000>;
-			clock-names = "ftm_sys", "ftm_ext",
-				      "ftm_fix", "ftm_cnt_clk_en";
-			clocks = <&clockgen 4 1>, <&clockgen 4 1>,
-				 <&rtc_clk>, <&clockgen 4 1>;
-			status = "disabled";
-		};
-
-		pwm2: pwm@2820000 {
-			compatible = "fsl,vf610-ftm-pwm";
-			#pwm-cells = <3>;
-			reg = <0x0 0x2820000 0x0 0x10000>;
-			clock-names = "ftm_sys", "ftm_ext",
-				      "ftm_fix", "ftm_cnt_clk_en";
-			clocks = <&clockgen 4 1>, <&clockgen 4 1>,
-				 <&rtc_clk>, <&clockgen 4 1>;
-			status = "disabled";
-		};
-
-		pwm3: pwm@2830000 {
-			compatible = "fsl,vf610-ftm-pwm";
-			#pwm-cells = <3>;
-			reg = <0x0 0x2830000 0x0 0x10000>;
-			clock-names = "ftm_sys", "ftm_ext",
-				      "ftm_fix", "ftm_cnt_clk_en";
-			clocks = <&clockgen 4 1>, <&clockgen 4 1>,
-				 <&rtc_clk>, <&clockgen 4 1>;
-			status = "disabled";
-		};
-
-		pwm4: pwm@2840000 {
-			compatible = "fsl,vf610-ftm-pwm";
-			#pwm-cells = <3>;
-			reg = <0x0 0x2840000 0x0 0x10000>;
-			clock-names = "ftm_sys", "ftm_ext",
-				      "ftm_fix", "ftm_cnt_clk_en";
-			clocks = <&clockgen 4 1>, <&clockgen 4 1>,
-				 <&rtc_clk>, <&clockgen 4 1>;
-			status = "disabled";
-		};
-
-		pwm5: pwm@2850000 {
-			compatible = "fsl,vf610-ftm-pwm";
-			#pwm-cells = <3>;
-			reg = <0x0 0x2850000 0x0 0x10000>;
-			clock-names = "ftm_sys", "ftm_ext",
-				      "ftm_fix", "ftm_cnt_clk_en";
-			clocks = <&clockgen 4 1>, <&clockgen 4 1>,
-				 <&rtc_clk>, <&clockgen 4 1>;
-			status = "disabled";
-		};
-
-		pwm6: pwm@2860000 {
-			compatible = "fsl,vf610-ftm-pwm";
-			#pwm-cells = <3>;
-			reg = <0x0 0x2860000 0x0 0x10000>;
-			clock-names = "ftm_sys", "ftm_ext",
-				      "ftm_fix", "ftm_cnt_clk_en";
-			clocks = <&clockgen 4 1>, <&clockgen 4 1>,
-				 <&rtc_clk>, <&clockgen 4 1>;
-			status = "disabled";
-		};
-
-		pwm7: pwm@2870000 {
-			compatible = "fsl,vf610-ftm-pwm";
-			#pwm-cells = <3>;
-			reg = <0x0 0x2870000 0x0 0x10000>;
-			clock-names = "ftm_sys", "ftm_ext",
-				      "ftm_fix", "ftm_cnt_clk_en";
-			clocks = <&clockgen 4 1>, <&clockgen 4 1>,
-				 <&rtc_clk>, <&clockgen 4 1>;
-			status = "disabled";
-		};
-
 		rcpm: power-controller@1e34040 {
 			compatible = "fsl,ls1028a-rcpm", "fsl,qoriq-rcpm-2.1+";
 			reg = <0x0 0x1e34040 0x0 0x1c>;