diff mbox series

mips: dts: Fix PIC32MZDA GPIO register definitions and dtc warnings

Message ID VI1P190MB0381AF5DB7D0D2D74F820F40FB580@VI1P190MB0381.EURP190.PROD.OUTLOOK.COM
State Changes Requested
Delegated to: Daniel Schwierzeck
Headers show
Series mips: dts: Fix PIC32MZDA GPIO register definitions and dtc warnings | expand

Commit Message

John Robertson Aug. 22, 2020, 4:36 p.m. UTC
Currently GPIO operations (e.g. gpio status -a) don't work at all.

Signed-off-by: John Robertson <john.robertson@simiatec.com>
---

 arch/mips/dts/pic32mzda.dtsi | 58 +++++++++++++++++++++---------------
 1 file changed, 34 insertions(+), 24 deletions(-)

Comments

Daniel Schwierzeck Aug. 24, 2020, 2:03 p.m. UTC | #1
Am Samstag, den 22.08.2020, 16:36 +0000 schrieb John Robertson:
> Currently GPIO operations (e.g. gpio status -a) don't work at all.
> 
> Signed-off-by: John Robertson <john.robertson@simiatec.com>
> ---
> 
>  arch/mips/dts/pic32mzda.dtsi | 58 +++++++++++++++++++++---------------
>  1 file changed, 34 insertions(+), 24 deletions(-)
> 
> diff --git a/arch/mips/dts/pic32mzda.dtsi b/arch/mips/dts/pic32mzda.dtsi
> index 4c8b7a9a0b..71864d3fff 100644
> --- a/arch/mips/dts/pic32mzda.dtsi
> +++ b/arch/mips/dts/pic32mzda.dtsi
> @@ -26,8 +26,13 @@
>  	};
>  
>  	cpus {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
>  		cpu@0 {
> 			compatible = "mips,mips14kc"; 
> +			device-type = "cpu";
> +			reg = <0>;
>  		};
>  	};
>  
> @@ -40,6 +45,7 @@
>  	uart1: serial@1f822000 {
>  		compatible = "microchip,pic32mzda-uart";
>  		reg = <0x1f822000 0x50>;
> +		interrupt-parent = <&evic>;

I guess that fixes the DTC warnings. Can you split this into a separate
commit?

>  		interrupts = <112 IRQ_TYPE_LEVEL_HIGH>;
>  		status = "disabled";
>  		clocks = <&clock PB2CLK>;
> @@ -48,6 +54,7 @@
>  	uart2: serial@1f822200 {
>  		compatible = "microchip,pic32mzda-uart";
>  		reg = <0x1f822200 0x50>;
> +		interrupt-parent = <&evic>;
>  		interrupts = <145 IRQ_TYPE_LEVEL_HIGH>;
>  		clocks = <&clock PB2CLK>;
>  		status = "disabled";
> @@ -56,6 +63,7 @@
>  	uart6: serial@1f822a00 {
>  		compatible = "microchip,pic32mzda-uart";
>  		reg = <0x1f822a00 0x50>;
> +		interrupt-parent = <&evic>;
>  		interrupts = <188 IRQ_TYPE_LEVEL_HIGH>;
>  		clocks = <&clock PB2CLK>;
>  		status = "disabled";
> @@ -69,6 +77,8 @@
>  	};
>  
>  	pinctrl: pinctrl@1f801400 {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
>  		compatible = "microchip,pic32mzda-pinctrl";
>  		reg = <0x1f801400 0x100>, /* in  */
>  		      <0x1f801500 0x200>, /* out */
> @@ -76,75 +86,72 @@
>  		reg-names = "ppsin","ppsout","port";
>  		status = "disabled";
>  
> -		ranges = <0 0x1f860000 0xa00>;
> -		#address-cells = <1>;
> -		#size-cells = <1>;
> -		gpioA: gpio0@0 {
> +		gpioA: gpio0@1f860000 {
>  			compatible = "microchip,pic32mzda-gpio";
> -			reg = <0x000 0x48>;
> +			reg = <0x1f860000 0xe0>;

I guess that's rather a regression or change in DM address translation
or maybe the GPIO driver misses some updates for DM core API. Changing
the device-tree is the wrong approach.

>  			gpio-controller;
>  			#gpio-cells = <2>;
>  		};
>  
> -		gpioB: gpio1@100 {
> +		gpioB: gpio1@1f860100 {
>  			compatible = "microchip,pic32mzda-gpio";
> -			reg = <0x100 0x48>;
> +			reg = <0x1f860100 0xe0>;
>  			gpio-controller;
>  			#gpio-cells = <2>;
>  		};
>  
> -		gpioC: gpio2@200 {
> +		gpioC: gpio2@1f860200 {
>  			compatible = "microchip,pic32mzda-gpio";
> -			reg = <0x200 0x48>;
> +			reg = <0x1f860200 0xe0>;
>  			gpio-controller;
>  			#gpio-cells = <2>;
>  		};
>  
> -		gpioD: gpio3@300 {
> +		gpioD: gpio3@1f860300 {
>  			compatible = "microchip,pic32mzda-gpio";
> -			reg = <0x300 0x48>;
> +			reg = <0x1f860300 0xe0>;
>  			gpio-controller;
>  			#gpio-cells = <2>;
>  		};
>  
> -		gpioE: gpio4@400 {
> +		gpioE: gpio4@1f860400 {
>  			compatible = "microchip,pic32mzda-gpio";
> -			reg = <0x400 0x48>;
> +			reg = <0x1f860400 0xe0>;
>  			gpio-controller;
>  			#gpio-cells = <2>;
>  		};
>  
> -		gpioF: gpio5@500 {
> +		gpioF: gpio5@1f860500 {
>  			compatible = "microchip,pic32mzda-gpio";
> -			reg = <0x500 0x48>;
> +			reg = <0x1f860500 0xe0>;
>  			gpio-controller;
>  			#gpio-cells = <2>;
>  		};
>  
> -		gpioG: gpio6@600 {
> +		gpioG: gpio6@1f860600 {
>  			compatible = "microchip,pic32mzda-gpio";
> -			reg = <0x600 0x48>;
> +			reg = <0x1f860600 0xe0>;
>  			gpio-controller;
>  			#gpio-cells = <2>;
>  		};
>  
> -		gpioH: gpio7@700 {
> +		gpioH: gpio7@1f860700 {
>  			compatible = "microchip,pic32mzda-gpio";
> -			reg = <0x700 0x48>;
> +			reg = <0x1f860700 0xe0>;
>  			gpio-controller;
>  			#gpio-cells = <2>;
>  		};
>  
> -		gpioJ: gpio8@800 {
> +		gpioJ: gpio9@1f860800 {
>  			compatible = "microchip,pic32mzda-gpio";
> -			reg = <0x800 0x48>;
> +			reg = <0x1f860800 0xe0>;
>  			gpio-controller;
>  			#gpio-cells = <2>;
>  		};
>  
> -		gpioK: gpio9@900 {
> +		gpioK: gpio10@1f860900 {
>  			compatible = "microchip,pic32mzda-gpio";
> -			reg = <0x900 0x48>;
> +			reg = <0x1f860900 0xe0>;
>  			gpio-controller;
>  			#gpio-cells = <2>;
>  		};
> @@ -153,6 +160,7 @@
>  	sdhci: sdhci@1f8ec000 {
>  		compatible = "microchip,pic32mzda-sdhci";
>  		reg = <0x1f8ec000 0x100>;
> +		interrupt-parent = <&evic>;
>  		interrupts = <191 IRQ_TYPE_LEVEL_HIGH>;
>  		clocks = <&clock REF4CLK>, <&clock PB5CLK>;
>  		clock-names = "base_clk", "sys_clk";
> @@ -164,6 +172,7 @@
>  	ethernet: ethernet@1f882000 {
>  		compatible = "microchip,pic32mzda-eth";
>  		reg = <0x1f882000 0x1000>;
> +		interrupt-parent = <&evic>;
>  		interrupts = <153 IRQ_TYPE_LEVEL_HIGH>;
>  		clocks = <&clock PB5CLK>;
>  		status = "disabled";
> @@ -176,6 +185,7 @@
>  		reg = <0x1f8e3000 0x1000>,
>  		      <0x1f884000 0x1000>;
>  		reg-names = "mc", "control";
> +		interrupt-parent = <&evic>;
>  		interrupts = <132 IRQ_TYPE_EDGE_RISING>,
>  			     <133 IRQ_TYPE_LEVEL_HIGH>;
>  		clocks = <&clock PB5CLK>;
diff mbox series

Patch

diff --git a/arch/mips/dts/pic32mzda.dtsi b/arch/mips/dts/pic32mzda.dtsi
index 4c8b7a9a0b..71864d3fff 100644
--- a/arch/mips/dts/pic32mzda.dtsi
+++ b/arch/mips/dts/pic32mzda.dtsi
@@ -26,8 +26,13 @@ 
 	};
 
 	cpus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
 		cpu@0 {
			compatible = "mips,mips14kc"; 
+			device-type = "cpu";
+			reg = <0>;
 		};
 	};
 
@@ -40,6 +45,7 @@ 
 	uart1: serial@1f822000 {
 		compatible = "microchip,pic32mzda-uart";
 		reg = <0x1f822000 0x50>;
+		interrupt-parent = <&evic>;
 		interrupts = <112 IRQ_TYPE_LEVEL_HIGH>;
 		status = "disabled";
 		clocks = <&clock PB2CLK>;
@@ -48,6 +54,7 @@ 
 	uart2: serial@1f822200 {
 		compatible = "microchip,pic32mzda-uart";
 		reg = <0x1f822200 0x50>;
+		interrupt-parent = <&evic>;
 		interrupts = <145 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&clock PB2CLK>;
 		status = "disabled";
@@ -56,6 +63,7 @@ 
 	uart6: serial@1f822a00 {
 		compatible = "microchip,pic32mzda-uart";
 		reg = <0x1f822a00 0x50>;
+		interrupt-parent = <&evic>;
 		interrupts = <188 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&clock PB2CLK>;
 		status = "disabled";
@@ -69,6 +77,8 @@ 
 	};
 
 	pinctrl: pinctrl@1f801400 {
+		#address-cells = <1>;
+		#size-cells = <1>;
 		compatible = "microchip,pic32mzda-pinctrl";
 		reg = <0x1f801400 0x100>, /* in  */
 		      <0x1f801500 0x200>, /* out */
@@ -76,75 +86,72 @@ 
 		reg-names = "ppsin","ppsout","port";
 		status = "disabled";
 
-		ranges = <0 0x1f860000 0xa00>;
-		#address-cells = <1>;
-		#size-cells = <1>;
-		gpioA: gpio0@0 {
+		gpioA: gpio0@1f860000 {
 			compatible = "microchip,pic32mzda-gpio";
-			reg = <0x000 0x48>;
+			reg = <0x1f860000 0xe0>;
 			gpio-controller;
 			#gpio-cells = <2>;
 		};
 
-		gpioB: gpio1@100 {
+		gpioB: gpio1@1f860100 {
 			compatible = "microchip,pic32mzda-gpio";
-			reg = <0x100 0x48>;
+			reg = <0x1f860100 0xe0>;
 			gpio-controller;
 			#gpio-cells = <2>;
 		};
 
-		gpioC: gpio2@200 {
+		gpioC: gpio2@1f860200 {
 			compatible = "microchip,pic32mzda-gpio";
-			reg = <0x200 0x48>;
+			reg = <0x1f860200 0xe0>;
 			gpio-controller;
 			#gpio-cells = <2>;
 		};
 
-		gpioD: gpio3@300 {
+		gpioD: gpio3@1f860300 {
 			compatible = "microchip,pic32mzda-gpio";
-			reg = <0x300 0x48>;
+			reg = <0x1f860300 0xe0>;
 			gpio-controller;
 			#gpio-cells = <2>;
 		};
 
-		gpioE: gpio4@400 {
+		gpioE: gpio4@1f860400 {
 			compatible = "microchip,pic32mzda-gpio";
-			reg = <0x400 0x48>;
+			reg = <0x1f860400 0xe0>;
 			gpio-controller;
 			#gpio-cells = <2>;
 		};
 
-		gpioF: gpio5@500 {
+		gpioF: gpio5@1f860500 {
 			compatible = "microchip,pic32mzda-gpio";
-			reg = <0x500 0x48>;
+			reg = <0x1f860500 0xe0>;
 			gpio-controller;
 			#gpio-cells = <2>;
 		};
 
-		gpioG: gpio6@600 {
+		gpioG: gpio6@1f860600 {
 			compatible = "microchip,pic32mzda-gpio";
-			reg = <0x600 0x48>;
+			reg = <0x1f860600 0xe0>;
 			gpio-controller;
 			#gpio-cells = <2>;
 		};
 
-		gpioH: gpio7@700 {
+		gpioH: gpio7@1f860700 {
 			compatible = "microchip,pic32mzda-gpio";
-			reg = <0x700 0x48>;
+			reg = <0x1f860700 0xe0>;
 			gpio-controller;
 			#gpio-cells = <2>;
 		};
 
-		gpioJ: gpio8@800 {
+		gpioJ: gpio9@1f860800 {
 			compatible = "microchip,pic32mzda-gpio";
-			reg = <0x800 0x48>;
+			reg = <0x1f860800 0xe0>;
 			gpio-controller;
 			#gpio-cells = <2>;
 		};
 
-		gpioK: gpio9@900 {
+		gpioK: gpio10@1f860900 {
 			compatible = "microchip,pic32mzda-gpio";
-			reg = <0x900 0x48>;
+			reg = <0x1f860900 0xe0>;
 			gpio-controller;
 			#gpio-cells = <2>;
 		};
@@ -153,6 +160,7 @@ 
 	sdhci: sdhci@1f8ec000 {
 		compatible = "microchip,pic32mzda-sdhci";
 		reg = <0x1f8ec000 0x100>;
+		interrupt-parent = <&evic>;
 		interrupts = <191 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&clock REF4CLK>, <&clock PB5CLK>;
 		clock-names = "base_clk", "sys_clk";
@@ -164,6 +172,7 @@ 
 	ethernet: ethernet@1f882000 {
 		compatible = "microchip,pic32mzda-eth";
 		reg = <0x1f882000 0x1000>;
+		interrupt-parent = <&evic>;
 		interrupts = <153 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&clock PB5CLK>;
 		status = "disabled";
@@ -176,6 +185,7 @@ 
 		reg = <0x1f8e3000 0x1000>,
 		      <0x1f884000 0x1000>;
 		reg-names = "mc", "control";
+		interrupt-parent = <&evic>;
 		interrupts = <132 IRQ_TYPE_EDGE_RISING>,
 			     <133 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&clock PB5CLK>;