mbox series

[00/14] ARM: dts: realtek: Introduce syscon

Message ID 20191202182205.14629-1-afaerber@suse.de
Headers show
Series ARM: dts: realtek: Introduce syscon | expand

Message

Andreas Färber Dec. 2, 2019, 6:21 p.m. UTC
Hello,

This patch series factors out system controller multi-function device nodes
for CRT, Iso, Misc, SB2 and SCPU Wrapper IP blocks.

It was inspired by my SoC info RFC, as discussed in its cover letter [1].

Goal of DT is to describe the hardware, and in previous patches we've already
introduced Realtek's r-bus as node layer. The next step here is to model
multi-function blocks as nodes. In order to cope with 80-character line limit,
child nodes are added via reference rather than in-place.

Also included is a patch adding a reset constant for the SB2 block added.
We may need to follow up with bindings adding compatibles, clocks and resets.

This series is based on my RTD1195 v4 [2] (except for reset, rebased here),
my RTD1395 v2 [3] and James' modified RTD1619 v3 [4].

The irq mux series v5 [5] has been rebased onto this series, v6 to be sent.
The SoC info RFC series [1] is still being updated, v2 to be posted later.

Latest experimental patches at:
https://github.com/afaerber/linux/commits/rtd1295-next

Have a lot of fun!

Cheers,
Andreas

[1] https://patchwork.kernel.org/cover/11224261/
[2] https://patchwork.kernel.org/cover/11258949/
[3] https://patchwork.kernel.org/cover/11268955/
[4] https://patchwork.kernel.org/patch/11239697/
[5] https://patchwork.kernel.org/cover/11255291/

Cc: devicetree@vger.kernel.org
Cc: Rob Herring <robh+dt@kernel.org>
Cc: James Tai <james.tai@realtek.com>

Andreas Färber (14):
  ARM: dts: rtd1195: Introduce iso and misc syscon
  arm64: dts: realtek: rtd129x: Introduce CRT, iso and misc syscon
  arm64: dts: realtek: rtd139x: Introduce CRT, iso and misc syscon
  arm64: dts: realtek: rtd16xx: Introduce iso and misc syscon
  ARM: dts: rtd1195: Add CRT syscon node
  dt-bindings: reset: Add Realtek RTD1195
  ARM: dts: rtd1195: Add reset nodes
  ARM: dts: rtd1195: Add UART resets
  arm64: dts: realtek: rtd16xx: Add CRT syscon node
  ARM: dts: rtd1195: Add SB2 and SCPU Wrapper syscon nodes
  arm64: dts: realtek: rtd129x: Add SB2 and SCPU Wrapper syscon nodes
  arm64: dts: realtek: rtd139x: Add SB2 and SCPU Wrapper syscon nodes
  arm64: dts: realtek: rtd16xx: Add SB2 and SCPU Wrapper syscon nodes
  dt-bindings: reset: rtd1295: Add SB2 reset

 arch/arm/boot/dts/rtd1195.dtsi              | 110 ++++++++++++++++---
 arch/arm64/boot/dts/realtek/rtd129x.dtsi    | 157 ++++++++++++++++++----------
 arch/arm64/boot/dts/realtek/rtd139x.dtsi    | 157 ++++++++++++++++++----------
 arch/arm64/boot/dts/realtek/rtd16xx.dtsi    |  91 ++++++++++++----
 include/dt-bindings/reset/realtek,rtd1195.h |  74 +++++++++++++
 include/dt-bindings/reset/realtek,rtd1295.h |   3 +
 6 files changed, 449 insertions(+), 143 deletions(-)
 create mode 100644 include/dt-bindings/reset/realtek,rtd1195.h

Comments

Andreas Färber Dec. 30, 2019, 2:57 a.m. UTC | #1
Hi James,

Am 02.12.19 um 19:21 schrieb Andreas Färber:
> This patch series factors out system controller multi-function device nodes
> for CRT, Iso, Misc, SB2 and SCPU Wrapper IP blocks.
> 
> It was inspired by my SoC info RFC, as discussed in its cover letter [1].
> 
> Goal of DT is to describe the hardware, and in previous patches we've already
> introduced Realtek's r-bus as node layer. The next step here is to model
> multi-function blocks as nodes. In order to cope with 80-character line limit,
> child nodes are added via reference rather than in-place.

I'm waiting for your Acked-by of the blocks & numbers in these patches. 
Other Realtek engineers are also invited to respond, of course.

Thanks in advance,
Andreas

> Andreas Färber (14):
>    ARM: dts: rtd1195: Introduce iso and misc syscon
>    arm64: dts: realtek: rtd129x: Introduce CRT, iso and misc syscon
>    arm64: dts: realtek: rtd139x: Introduce CRT, iso and misc syscon
>    arm64: dts: realtek: rtd16xx: Introduce iso and misc syscon
>    ARM: dts: rtd1195: Add CRT syscon node
>    dt-bindings: reset: Add Realtek RTD1195
>    ARM: dts: rtd1195: Add reset nodes
>    ARM: dts: rtd1195: Add UART resets
>    arm64: dts: realtek: rtd16xx: Add CRT syscon node
>    ARM: dts: rtd1195: Add SB2 and SCPU Wrapper syscon nodes
>    arm64: dts: realtek: rtd129x: Add SB2 and SCPU Wrapper syscon nodes
>    arm64: dts: realtek: rtd139x: Add SB2 and SCPU Wrapper syscon nodes
>    arm64: dts: realtek: rtd16xx: Add SB2 and SCPU Wrapper syscon nodes
>    dt-bindings: reset: rtd1295: Add SB2 reset
> 
>   arch/arm/boot/dts/rtd1195.dtsi              | 110 ++++++++++++++++---
>   arch/arm64/boot/dts/realtek/rtd129x.dtsi    | 157 ++++++++++++++++++----------
>   arch/arm64/boot/dts/realtek/rtd139x.dtsi    | 157 ++++++++++++++++++----------
>   arch/arm64/boot/dts/realtek/rtd16xx.dtsi    |  91 ++++++++++++----
>   include/dt-bindings/reset/realtek,rtd1195.h |  74 +++++++++++++
>   include/dt-bindings/reset/realtek,rtd1295.h |   3 +
>   6 files changed, 449 insertions(+), 143 deletions(-)
>   create mode 100644 include/dt-bindings/reset/realtek,rtd1195.h
James Tai [戴志峰] Dec. 30, 2019, 5:53 a.m. UTC | #2
> Group UART0 into an Isolation syscon mfd node.
> Group UART1 and UART2 into a Miscellaneous syscon mfd node.
> 
> Cc: James Tai <james.tai@realtek.com>
> Signed-off-by: Andreas Färber <afaerber@suse.de>
> ---
>  arch/arm64/boot/dts/realtek/rtd16xx.dtsi | 70
> +++++++++++++++++++++-----------
>  1 file changed, 46 insertions(+), 24 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/realtek/rtd16xx.dtsi
> b/arch/arm64/boot/dts/realtek/rtd16xx.dtsi
> index 69cc0d941c8d..8f8f2b328cd1 100644
> --- a/arch/arm64/boot/dts/realtek/rtd16xx.dtsi
> +++ b/arch/arm64/boot/dts/realtek/rtd16xx.dtsi
> @@ -118,34 +118,22 @@
>  			#size-cells = <1>;
>  			ranges = <0x0 0x98000000 0x200000>;
> 
> -			uart0: serial0@7800 {
> -				compatible = "snps,dw-apb-uart";
> -				reg = <0x7800 0x400>;
> -				reg-shift = <2>;
> +			iso: syscon@7000 {
> +				compatible = "syscon", "simple-mfd";
> +				reg = <0x7000 0x1000>;
>  				reg-io-width = <4>;
> -				interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
> -				clock-frequency = <27000000>;
> -				status = "disabled";
> +				#address-cells = <1>;
> +				#size-cells = <1>;
> +				ranges = <0x0 0x7000 0x1000>;
>  			};
> 
> -			uart1: serial1@1b200 {
> -				compatible = "snps,dw-apb-uart";
> -				reg = <0x1b200 0x400>;
> -				reg-shift = <2>;
> +			misc: syscon@1b000 {
> +				compatible = "syscon", "simple-mfd";
> +				reg = <0x1b000 0x1000>;
>  				reg-io-width = <4>;
> -				interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
> -				clock-frequency = <432000000>;
> -				status = "disabled";
> -			};
> -
> -			uart2: serial2@1b400 {
> -				compatible = "snps,dw-apb-uart";
> -				reg = <0x1b400 0x400>;
> -				reg-shift = <2>;
> -				reg-io-width = <4>;
> -				interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
> -				clock-frequency = <432000000>;
> -				status = "disabled";
> +				#address-cells = <1>;
> +				#size-cells = <1>;
> +				ranges = <0x0 0x1b000 0x1000>;
>  			};
>  		};
> 
> @@ -159,3 +147,37 @@
>  		};
>  	};
>  };
> +
> +&iso {
> +	uart0: serial0@800 {
> +		compatible = "snps,dw-apb-uart";
> +		reg = <0x800 0x400>;
> +		reg-shift = <2>;
> +		reg-io-width = <4>;
> +		interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
> +		clock-frequency = <27000000>;
> +		status = "disabled";
> +	};
> +};
> +
> +&misc {
> +	uart1: serial1@200 {
> +		compatible = "snps,dw-apb-uart";
> +		reg = <0x200 0x400>;
> +		reg-shift = <2>;
> +		reg-io-width = <4>;
> +		interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
> +		clock-frequency = <432000000>;
> +		status = "disabled";
> +	};
> +
> +	uart2: serial2@400 {
> +		compatible = "snps,dw-apb-uart";
> +		reg = <0x400 0x400>;
> +		reg-shift = <2>;
> +		reg-io-width = <4>;
> +		interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
> +		clock-frequency = <432000000>;
> +		status = "disabled";
> +	};
> +};
> --
> 2.16.4
> 
> 
Acked-by: James Tai <james.tai@realtek.com>
James Tai [戴志峰] Dec. 30, 2019, 2:39 p.m. UTC | #3
> Group the non-iso reset controller nodes into a CRT syscon mfd node.
> Group reset controller, watchdog and UART0 into an Isolation mfd node.
> Group UART1 and UART2 into a Miscellaneous syscon mfd node.
> 
> Cc: James Tai <james.tai@realtek.com>
> Signed-off-by: Andreas Färber <afaerber@suse.de>
> ---
>  arch/arm64/boot/dts/realtek/rtd139x.dtsi | 147
> +++++++++++++++++++------------
>  1 file changed, 90 insertions(+), 57 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/realtek/rtd139x.dtsi
> b/arch/arm64/boot/dts/realtek/rtd139x.dtsi
> index c11a505e43e2..3a571f3b7e38 100644
> --- a/arch/arm64/boot/dts/realtek/rtd139x.dtsi
> +++ b/arch/arm64/boot/dts/realtek/rtd139x.dtsi
> @@ -61,70 +61,31 @@
>  			#size-cells = <1>;
>  			ranges = <0x0 0x98000000 0x200000>;
> 
> -			reset1: reset-controller@0 {
> -				compatible = "snps,dw-low-reset";
> -				reg = <0x0 0x4>;
> -				#reset-cells = <1>;
> -			};
> -
> -			reset2: reset-controller@4 {
> -				compatible = "snps,dw-low-reset";
> -				reg = <0x4 0x4>;
> -				#reset-cells = <1>;
> -			};
> -
> -			reset3: reset-controller@8 {
> -				compatible = "snps,dw-low-reset";
> -				reg = <0x8 0x4>;
> -				#reset-cells = <1>;
> -			};
> -
> -			reset4: reset-controller@50 {
> -				compatible = "snps,dw-low-reset";
> -				reg = <0x50 0x4>;
> -				#reset-cells = <1>;
> -			};
> -
> -			iso_reset: reset-controller@7088 {
> -				compatible = "snps,dw-low-reset";
> -				reg = <0x7088 0x4>;
> -				#reset-cells = <1>;
> -			};
> -
> -			wdt: watchdog@7680 {
> -				compatible = "realtek,rtd1295-watchdog";
> -				reg = <0x7680 0x100>;
> -				clocks = <&osc27M>;
> -			};
> -
> -			uart0: serial@7800 {
> -				compatible = "snps,dw-apb-uart";
> -				reg = <0x7800 0x400>;
> -				reg-shift = <2>;
> +			crt: syscon@0 {
> +				compatible = "syscon", "simple-mfd";
> +				reg = <0x0 0x1000>;
>  				reg-io-width = <4>;
> -				clock-frequency = <27000000>;
> -				resets = <&iso_reset RTD1295_ISO_RSTN_UR0>;
> -				status = "disabled";
> +				#address-cells = <1>;
> +				#size-cells = <1>;
> +				ranges = <0x0 0x0 0x1000>;
>  			};
> 
> -			uart1: serial@1b200 {
> -				compatible = "snps,dw-apb-uart";
> -				reg = <0x1b200 0x100>;
> -				reg-shift = <2>;
> +			iso: syscon@7000 {
> +				compatible = "syscon", "simple-mfd";
> +				reg = <0x7000 0x1000>;
>  				reg-io-width = <4>;
> -				clock-frequency = <432000000>;
> -				resets = <&reset2 RTD1295_RSTN_UR1>;
> -				status = "disabled";
> +				#address-cells = <1>;
> +				#size-cells = <1>;
> +				ranges = <0x0 0x7000 0x1000>;
>  			};
> 
> -			uart2: serial@1b400 {
> -				compatible = "snps,dw-apb-uart";
> -				reg = <0x1b400 0x100>;
> -				reg-shift = <2>;
> +			misc: syscon@1b000 {
> +				compatible = "syscon", "simple-mfd";
> +				reg = <0x1b000 0x1000>;
>  				reg-io-width = <4>;
> -				clock-frequency = <432000000>;
> -				resets = <&reset2 RTD1295_RSTN_UR2>;
> -				status = "disabled";
> +				#address-cells = <1>;
> +				#size-cells = <1>;
> +				ranges = <0x0 0x1b000 0x1000>;
>  			};
>  		};
> 
> @@ -140,3 +101,75 @@
>  		};
>  	};
>  };
> +
> +&crt {
> +	reset1: reset-controller@0 {
> +		compatible = "snps,dw-low-reset";
> +		reg = <0x0 0x4>;
> +		#reset-cells = <1>;
> +	};
> +
> +	reset2: reset-controller@4 {
> +		compatible = "snps,dw-low-reset";
> +		reg = <0x4 0x4>;
> +		#reset-cells = <1>;
> +	};
> +
> +	reset3: reset-controller@8 {
> +		compatible = "snps,dw-low-reset";
> +		reg = <0x8 0x4>;
> +		#reset-cells = <1>;
> +	};
> +
> +	reset4: reset-controller@50 {
> +		compatible = "snps,dw-low-reset";
> +		reg = <0x50 0x4>;
> +		#reset-cells = <1>;
> +	};
> +};
> +
> +&iso {
> +	iso_reset: reset-controller@88 {
> +		compatible = "snps,dw-low-reset";
> +		reg = <0x88 0x4>;
> +		#reset-cells = <1>;
> +	};
> +
> +	wdt: watchdog@680 {
> +		compatible = "realtek,rtd1295-watchdog";
> +		reg = <0x680 0x100>;
> +		clocks = <&osc27M>;
> +	};
> +
> +	uart0: serial@800 {
> +		compatible = "snps,dw-apb-uart";
> +		reg = <0x800 0x400>;
> +		reg-shift = <2>;
> +		reg-io-width = <4>;
> +		clock-frequency = <27000000>;
> +		resets = <&iso_reset RTD1295_ISO_RSTN_UR0>;
> +		status = "disabled";
> +	};
> +};
> +
> +&misc {
> +	uart1: serial@200 {
> +		compatible = "snps,dw-apb-uart";
> +		reg = <0x200 0x100>;
> +		reg-shift = <2>;
> +		reg-io-width = <4>;
> +		clock-frequency = <432000000>;
> +		resets = <&reset2 RTD1295_RSTN_UR1>;
> +		status = "disabled";
> +	};
> +
> +	uart2: serial@400 {
> +		compatible = "snps,dw-apb-uart";
> +		reg = <0x400 0x100>;
> +		reg-shift = <2>;
> +		reg-io-width = <4>;
> +		clock-frequency = <432000000>;
> +		resets = <&reset2 RTD1295_RSTN_UR2>;
> +		status = "disabled";
> +	};
> +};
> --
> 2.16.4
> 
> 

Acked-by: James Tai <james.tai@realtek.com>
James Tai [戴志峰] Dec. 30, 2019, 2:40 p.m. UTC | #4
> Group the non-iso reset controller nodes in a CRT syscon mfd node.
> Group reset controller, watchdog and UART0 in an Isolation syscon mfd node.
> Group UART1 and UART2 into a Miscellaneous syscon mfd node.
> 
> Cc: James Tai <james.tai@realtek.com>
> Signed-off-by: Andreas Färber <afaerber@suse.de>
> ---
>  arch/arm64/boot/dts/realtek/rtd129x.dtsi | 147
> +++++++++++++++++++------------
>  1 file changed, 90 insertions(+), 57 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/realtek/rtd129x.dtsi
> b/arch/arm64/boot/dts/realtek/rtd129x.dtsi
> index 0de9e675be16..34dc09790d0b 100644
> --- a/arch/arm64/boot/dts/realtek/rtd129x.dtsi
> +++ b/arch/arm64/boot/dts/realtek/rtd129x.dtsi
> @@ -63,70 +63,31 @@
>  			#size-cells = <1>;
>  			ranges = <0x0 0x98000000 0x200000>;
> 
> -			reset1: reset-controller@0 {
> -				compatible = "snps,dw-low-reset";
> -				reg = <0x0 0x4>;
> -				#reset-cells = <1>;
> -			};
> -
> -			reset2: reset-controller@4 {
> -				compatible = "snps,dw-low-reset";
> -				reg = <0x4 0x4>;
> -				#reset-cells = <1>;
> -			};
> -
> -			reset3: reset-controller@8 {
> -				compatible = "snps,dw-low-reset";
> -				reg = <0x8 0x4>;
> -				#reset-cells = <1>;
> -			};
> -
> -			reset4: reset-controller@50 {
> -				compatible = "snps,dw-low-reset";
> -				reg = <0x50 0x4>;
> -				#reset-cells = <1>;
> -			};
> -
> -			iso_reset: reset-controller@7088 {
> -				compatible = "snps,dw-low-reset";
> -				reg = <0x7088 0x4>;
> -				#reset-cells = <1>;
> -			};
> -
> -			wdt: watchdog@7680 {
> -				compatible = "realtek,rtd1295-watchdog";
> -				reg = <0x7680 0x100>;
> -				clocks = <&osc27M>;
> -			};
> -
> -			uart0: serial@7800 {
> -				compatible = "snps,dw-apb-uart";
> -				reg = <0x7800 0x400>;
> -				reg-shift = <2>;
> +			crt: syscon@0 {
> +				compatible = "syscon", "simple-mfd";
> +				reg = <0x0 0x1800>;
>  				reg-io-width = <4>;
> -				clock-frequency = <27000000>;
> -				resets = <&iso_reset RTD1295_ISO_RSTN_UR0>;
> -				status = "disabled";
> +				#address-cells = <1>;
> +				#size-cells = <1>;
> +				ranges = <0x0 0x0 0x1800>;
>  			};
> 
> -			uart1: serial@1b200 {
> -				compatible = "snps,dw-apb-uart";
> -				reg = <0x1b200 0x100>;
> -				reg-shift = <2>;
> +			iso: syscon@7000 {
> +				compatible = "syscon", "simple-mfd";
> +				reg = <0x7000 0x1000>;
>  				reg-io-width = <4>;
> -				clock-frequency = <432000000>;
> -				resets = <&reset2 RTD1295_RSTN_UR1>;
> -				status = "disabled";
> +				#address-cells = <1>;
> +				#size-cells = <1>;
> +				ranges = <0x0 0x7000 0x1000>;
>  			};
> 
> -			uart2: serial@1b400 {
> -				compatible = "snps,dw-apb-uart";
> -				reg = <0x1b400 0x100>;
> -				reg-shift = <2>;
> +			misc: syscon@1b000 {
> +				compatible = "syscon", "simple-mfd";
> +				reg = <0x1b000 0x1000>;
>  				reg-io-width = <4>;
> -				clock-frequency = <432000000>;
> -				resets = <&reset2 RTD1295_RSTN_UR2>;
> -				status = "disabled";
> +				#address-cells = <1>;
> +				#size-cells = <1>;
> +				ranges = <0x0 0x1b000 0x1000>;
>  			};
>  		};
> 
> @@ -142,3 +103,75 @@
>  		};
>  	};
>  };
> +
> +&crt {
> +	reset1: reset-controller@0 {
> +		compatible = "snps,dw-low-reset";
> +		reg = <0x0 0x4>;
> +		#reset-cells = <1>;
> +	};
> +
> +	reset2: reset-controller@4 {
> +		compatible = "snps,dw-low-reset";
> +		reg = <0x4 0x4>;
> +		#reset-cells = <1>;
> +	};
> +
> +	reset3: reset-controller@8 {
> +		compatible = "snps,dw-low-reset";
> +		reg = <0x8 0x4>;
> +		#reset-cells = <1>;
> +	};
> +
> +	reset4: reset-controller@50 {
> +		compatible = "snps,dw-low-reset";
> +		reg = <0x50 0x4>;
> +		#reset-cells = <1>;
> +	};
> +};
> +
> +&iso {
> +	iso_reset: reset-controller@88 {
> +		compatible = "snps,dw-low-reset";
> +		reg = <0x88 0x4>;
> +		#reset-cells = <1>;
> +	};
> +
> +	wdt: watchdog@680 {
> +		compatible = "realtek,rtd1295-watchdog";
> +		reg = <0x680 0x100>;
> +		clocks = <&osc27M>;
> +	};
> +
> +	uart0: serial@800 {
> +		compatible = "snps,dw-apb-uart";
> +		reg = <0x800 0x400>;
> +		reg-shift = <2>;
> +		reg-io-width = <4>;
> +		clock-frequency = <27000000>;
> +		resets = <&iso_reset RTD1295_ISO_RSTN_UR0>;
> +		status = "disabled";
> +	};
> +};
> +
> +&misc {
> +	uart1: serial@200 {
> +		compatible = "snps,dw-apb-uart";
> +		reg = <0x200 0x100>;
> +		reg-shift = <2>;
> +		reg-io-width = <4>;
> +		clock-frequency = <432000000>;
> +		resets = <&reset2 RTD1295_RSTN_UR1>;
> +		status = "disabled";
> +	};
> +
> +	uart2: serial@400 {
> +		compatible = "snps,dw-apb-uart";
> +		reg = <0x400 0x100>;
> +		reg-shift = <2>;
> +		reg-io-width = <4>;
> +		clock-frequency = <432000000>;
> +		resets = <&reset2 RTD1295_RSTN_UR2>;
> +		status = "disabled";
> +	};
> +};
> --
> 2.16.4
> 
> 

Acked-by: James Tai <james.tai@realtek.com>
James Tai [戴志峰] Dec. 30, 2019, 2:43 p.m. UTC | #5
> Prepare a CRT syscon mfd node.
> 
> Cc: James Tai <james.tai@realtek.com>
> Signed-off-by: Andreas Färber <afaerber@suse.de>
> ---
>  arch/arm64/boot/dts/realtek/rtd16xx.dtsi | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/realtek/rtd16xx.dtsi
> b/arch/arm64/boot/dts/realtek/rtd16xx.dtsi
> index 8f8f2b328cd1..776efc10bab2 100644
> --- a/arch/arm64/boot/dts/realtek/rtd16xx.dtsi
> +++ b/arch/arm64/boot/dts/realtek/rtd16xx.dtsi
> @@ -118,6 +118,15 @@
>  			#size-cells = <1>;
>  			ranges = <0x0 0x98000000 0x200000>;
> 
> +			crt: syscon@0 {
> +				compatible = "syscon", "simple-mfd";
> +				reg = <0x0 0x1000>;
> +				reg-io-width = <4>;
> +				#address-cells = <1>;
> +				#size-cells = <1>;
> +				ranges = <0x0 0x0 0x1000>;
> +			};
> +
>  			iso: syscon@7000 {
>  				compatible = "syscon", "simple-mfd";
>  				reg = <0x7000 0x1000>;
> --
> 2.16.4
> 
> 

Acked-by: James Tai <james.tai@realtek.com>
James Tai [戴志峰] Dec. 30, 2019, 2:45 p.m. UTC | #6
> Add syscon mfd nodes for SB2 and SCPU Wrapper to RTD16xx DT.
> 
> Cc: James Tai <james.tai@realtek.com>
> Signed-off-by: Andreas Färber <afaerber@suse.de>
> ---
>  arch/arm64/boot/dts/realtek/rtd16xx.dtsi | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/realtek/rtd16xx.dtsi
> b/arch/arm64/boot/dts/realtek/rtd16xx.dtsi
> index 776efc10bab2..bc88cf749f33 100644
> --- a/arch/arm64/boot/dts/realtek/rtd16xx.dtsi
> +++ b/arch/arm64/boot/dts/realtek/rtd16xx.dtsi
> @@ -136,6 +136,15 @@
>  				ranges = <0x0 0x7000 0x1000>;
>  			};
> 
> +			sb2: syscon@1a000 {
> +				compatible = "syscon", "simple-mfd";
> +				reg = <0x1a000 0x1000>;
> +				reg-io-width = <4>;
> +				#address-cells = <1>;
> +				#size-cells = <1>;
> +				ranges = <0x0 0x1a000 0x1000>;
> +			};
> +
>  			misc: syscon@1b000 {
>  				compatible = "syscon", "simple-mfd";
>  				reg = <0x1b000 0x1000>;
> @@ -144,6 +153,15 @@
>  				#size-cells = <1>;
>  				ranges = <0x0 0x1b000 0x1000>;
>  			};
> +
> +			scpu_wrapper: syscon@1d000 {
> +				compatible = "syscon", "simple-mfd";
> +				reg = <0x1d000 0x1000>;
> +				reg-io-width = <4>;
> +				#address-cells = <1>;
> +				#size-cells = <1>;
> +				ranges = <0x0 0x1d000 0x1000>;
> +			};
>  		};
> 
>  		gic: interrupt-controller@ff100000 {
> --
> 2.16.4
> 
> 

Acked-by: James Tai <james.tai@realtek.com>
James Tai [戴志峰] Dec. 30, 2019, 2:45 p.m. UTC | #7
> Add syscon mfd nodes for SB2 and SCPU Wrapper to RTD139x DT.
> 
> Cc: James Tai <james.tai@realtek.com>
> Signed-off-by: Andreas Färber <afaerber@suse.de>
> ---
>  arch/arm64/boot/dts/realtek/rtd139x.dtsi | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/realtek/rtd139x.dtsi
> b/arch/arm64/boot/dts/realtek/rtd139x.dtsi
> index 3a571f3b7e38..a3c10ceeb586 100644
> --- a/arch/arm64/boot/dts/realtek/rtd139x.dtsi
> +++ b/arch/arm64/boot/dts/realtek/rtd139x.dtsi
> @@ -79,6 +79,15 @@
>  				ranges = <0x0 0x7000 0x1000>;
>  			};
> 
> +			sb2: syscon@1a000 {
> +				compatible = "syscon", "simple-mfd";
> +				reg = <0x1a000 0x1000>;
> +				reg-io-width = <4>;
> +				#address-cells = <1>;
> +				#size-cells = <1>;
> +				ranges = <0x0 0x1a000 0x1000>;
> +			};
> +
>  			misc: syscon@1b000 {
>  				compatible = "syscon", "simple-mfd";
>  				reg = <0x1b000 0x1000>;
> @@ -87,6 +96,15 @@
>  				#size-cells = <1>;
>  				ranges = <0x0 0x1b000 0x1000>;
>  			};
> +
> +			scpu_wrapper: syscon@1d000 {
> +				compatible = "syscon", "simple-mfd";
> +				reg = <0x1d000 0x2000>;
> +				reg-io-width = <4>;
> +				#address-cells = <1>;
> +				#size-cells = <1>;
> +				ranges = <0x0 0x1d000 0x2000>;
> +			};
>  		};
> 
>  		gic: interrupt-controller@ff011000 {
> --
> 2.16.4
> 
> 

Acked-by: James Tai <james.tai@realtek.com>
James Tai [戴志峰] Dec. 30, 2019, 2:46 p.m. UTC | #8
> Add syscon mfd nodes for SB2 and SCPU Wrapper to RTD129x DT.
> 
> Cc: James Tai <james.tai@realtek.com>
> Signed-off-by: Andreas Färber <afaerber@suse.de>
> ---
>  arch/arm64/boot/dts/realtek/rtd129x.dtsi | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/realtek/rtd129x.dtsi
> b/arch/arm64/boot/dts/realtek/rtd129x.dtsi
> index 34dc09790d0b..39aefe66a794 100644
> --- a/arch/arm64/boot/dts/realtek/rtd129x.dtsi
> +++ b/arch/arm64/boot/dts/realtek/rtd129x.dtsi
> @@ -81,6 +81,15 @@
>  				ranges = <0x0 0x7000 0x1000>;
>  			};
> 
> +			sb2: syscon@1a000 {
> +				compatible = "syscon", "simple-mfd";
> +				reg = <0x1a000 0x1000>;
> +				reg-io-width = <4>;
> +				#address-cells = <1>;
> +				#size-cells = <1>;
> +				ranges = <0x0 0x1a000 0x1000>;
> +			};
> +
>  			misc: syscon@1b000 {
>  				compatible = "syscon", "simple-mfd";
>  				reg = <0x1b000 0x1000>;
> @@ -89,6 +98,15 @@
>  				#size-cells = <1>;
>  				ranges = <0x0 0x1b000 0x1000>;
>  			};
> +
> +			scpu_wrapper: syscon@1d000 {
> +				compatible = "syscon", "simple-mfd";
> +				reg = <0x1d000 0x2000>;
> +				reg-io-width = <4>;
> +				#address-cells = <1>;
> +				#size-cells = <1>;
> +				ranges = <0x0 0x1d000 0x2000>;
> +			};
>  		};
> 
>  		gic: interrupt-controller@ff011000 {
> --
> 2.16.4
> 
> 

Acked-by: James Tai <james.tai@realtek.com>
James Tai [戴志峰] Dec. 31, 2019, 9:16 a.m. UTC | #9
> Prepare a CRT syscon mfd node.
> 
> Cc: James Tai <james.tai@realtek.com>
> Signed-off-by: Andreas Färber <afaerber@suse.de>
> ---
>  arch/arm/boot/dts/rtd1195.dtsi | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/rtd1195.dtsi b/arch/arm/boot/dts/rtd1195.dtsi
> index a74f530dc439..ac37366ff7c4 100644
> --- a/arch/arm/boot/dts/rtd1195.dtsi
> +++ b/arch/arm/boot/dts/rtd1195.dtsi
> @@ -100,6 +100,15 @@
>  			#size-cells = <1>;
>  			ranges = <0x0 0x18000000 0x70000>;
> 
> +			crt: syscon@0 {
> +				compatible = "syscon", "simple-mfd";
> +				reg = <0x0 0x1000>;
> +				reg-io-width = <4>;
> +				#address-cells = <1>;
> +				#size-cells = <1>;
> +				ranges = <0x0 0x0 0x1000>;
> +			};
> +
>  			iso: syscon@7000 {
>  				compatible = "syscon", "simple-mfd";
>  				reg = <0x7000 0x1000>;
> --
> 2.16.4
> 
> 
Acked-by: James Tai <james.tai@realtek.com>
James Tai [戴志峰] Dec. 31, 2019, 9:27 a.m. UTC | #10
> Add reset controller nodes for Realtek RTD1195 SoC.
> 
> Signed-off-by: Andreas Färber <afaerber@suse.de>
> ---
>  v1: From RTD1195 v4 series (James wants to change the compatible string)
> 
>  arch/arm/boot/dts/rtd1195.dtsi | 26 ++++++++++++++++++++++++++
>  1 file changed, 26 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/rtd1195.dtsi b/arch/arm/boot/dts/rtd1195.dtsi
> index ac37366ff7c4..886845e52205 100644
> --- a/arch/arm/boot/dts/rtd1195.dtsi
> +++ b/arch/arm/boot/dts/rtd1195.dtsi
> @@ -141,7 +141,33 @@
>  	};
>  };
> 
> +&crt {
> +	reset1: reset-controller@0 {
> +		compatible = "snps,dw-low-reset";
> +		reg = <0x0 0x4>;
> +		#reset-cells = <1>;
> +	};
> +
> +	reset2: reset-controller@4 {
> +		compatible = "snps,dw-low-reset";
> +		reg = <0x4 0x4>;
> +		#reset-cells = <1>;
> +	};
> +
> +	reset3: reset-controller@8 {
> +		compatible = "snps,dw-low-reset";
> +		reg = <0x8 0x4>;
> +		#reset-cells = <1>;
> +	};
> +};
> +
>  &iso {
> +	iso_reset: reset-controller@88 {
> +		compatible = "snps,dw-low-reset";
> +		reg = <0x88 0x4>;
> +		#reset-cells = <1>;
> +	};
> +
>  	wdt: watchdog@680 {
>  		compatible = "realtek,rtd1295-watchdog";
>  		reg = <0x680 0x100>;
> --
> 2.16.4
> 
Acked-by: James Tai <james.tai@realtek.com>
James Tai [戴志峰] Dec. 31, 2019, 9:28 a.m. UTC | #11
> Associate the UART nodes with the corresponding reset controller bits.
> 
> Signed-off-by: Andreas Färber <afaerber@suse.de>
> ---
>  v1: From RTD1195 v4 series
> 
>  arch/arm/boot/dts/rtd1195.dtsi | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/rtd1195.dtsi b/arch/arm/boot/dts/rtd1195.dtsi
> index 886845e52205..09acb99083c1 100644
> --- a/arch/arm/boot/dts/rtd1195.dtsi
> +++ b/arch/arm/boot/dts/rtd1195.dtsi
> @@ -8,6 +8,7 @@
>  /memreserve/ 0x17fff000 0x00001000;
> 
>  #include <dt-bindings/interrupt-controller/arm-gic.h>
> +#include <dt-bindings/reset/realtek,rtd1195.h>
> 
>  / {
>  	compatible = "realtek,rtd1195";
> @@ -179,6 +180,7 @@
>  		reg = <0x800 0x400>;
>  		reg-shift = <2>;
>  		reg-io-width = <4>;
> +		resets = <&iso_reset RTD1195_ISO_RSTN_UR0>;
>  		clock-frequency = <27000000>;
>  		status = "disabled";
>  	};
> @@ -190,6 +192,7 @@
>  		reg = <0x200 0x100>;
>  		reg-shift = <2>;
>  		reg-io-width = <4>;
> +		resets = <&reset2 RTD1195_RSTN_UR1>;
>  		clock-frequency = <27000000>;
>  		status = "disabled";
>  	};
> --
> 2.16.4
> 
> 
Acked-by: James Tai <james.tai@realtek.com>
James Tai [戴志峰] Dec. 31, 2019, 9:30 a.m. UTC | #12
> Add syscon mfd nodes for SB2 and SCPU Wrapper to RTD1195 DT.
> 
> Cc: James Tai <james.tai@realtek.com>
> Signed-off-by: Andreas Färber <afaerber@suse.de>
> ---
>  arch/arm/boot/dts/rtd1195.dtsi | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/rtd1195.dtsi b/arch/arm/boot/dts/rtd1195.dtsi
> index 09acb99083c1..21897210d9d0 100644
> --- a/arch/arm/boot/dts/rtd1195.dtsi
> +++ b/arch/arm/boot/dts/rtd1195.dtsi
> @@ -119,6 +119,15 @@
>  				ranges = <0x0 0x7000 0x1000>;
>  			};
> 
> +			sb2: syscon@1a000 {
> +				compatible = "syscon", "simple-mfd";
> +				reg = <0x1a000 0x1000>;
> +				reg-io-width = <4>;
> +				#address-cells = <1>;
> +				#size-cells = <1>;
> +				ranges = <0x0 0x1a000 0x1000>;
> +			};
> +
>  			misc: syscon@1b000 {
>  				compatible = "syscon", "simple-mfd";
>  				reg = <0x1b000 0x1000>;
> @@ -127,6 +136,15 @@
>  				#size-cells = <1>;
>  				ranges = <0x0 0x1b000 0x1000>;
>  			};
> +
> +			scpu_wrapper: syscon@1d000 {
> +				compatible = "syscon", "simple-mfd";
> +				reg = <0x1d000 0x1000>;
> +				reg-io-width = <4>;
> +				#address-cells = <1>;
> +				#size-cells = <1>;
> +				ranges = <0x0 0x1d000 0x1000>;
> +			};
>  		};
> 
>  		gic: interrupt-controller@ff011000 {
> --
> 2.16.4
> 
> 
Acked-by: James Tai <james.tai@realtek.com>
James Tai [戴志峰] Dec. 31, 2019, 9:47 a.m. UTC | #13
Hi Andreas,

> 
> I'm waiting for your Acked-by of the blocks & numbers in these patches.
> Other Realtek engineers are also invited to respond, of course.

I have reviewed these patches.

Thank you for your contribution.


Regards,
James
Andreas Färber Jan. 3, 2020, 2:58 a.m. UTC | #14
Hi James,

Am 31.12.19 um 10:47 schrieb James Tai:
>> I'm waiting for your Acked-by of the blocks & numbers in these patches.
>> Other Realtek engineers are also invited to respond, of course.
> 
> I have reviewed these patches.

Thanks - does anything need changes in patch 01 or is that ack'ed, too?

Regards,
Andreas
Andreas Färber Jan. 15, 2020, 1:26 p.m. UTC | #15
Am 03.01.20 um 03:58 schrieb Andreas Färber:
> Hi James,
> 
> Am 31.12.19 um 10:47 schrieb James Tai:
>>> I'm waiting for your Acked-by of the blocks & numbers in these patches.
>>> Other Realtek engineers are also invited to respond, of course.
>>
>> I have reviewed these patches.
> 
> Thanks - does anything need changes in patch 01 or is that ack'ed, too?

No further response, so all (incl. 01/14) applied to linux-realtek.git:

https://git.kernel.org/pub/scm/linux/kernel/git/afaerber/linux-realtek.git/log/?h=v5.6/dt

Should there be anything wrong with 01/14, just send a follow-up patch.

Regards,
Andreas