diff options
| -rw-r--r-- | arch/arm64/boot/dts/renesas/r8a774a1.dtsi | 1 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/renesas/r8a7795.dtsi | 33 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/renesas/r8a7796.dtsi | 17 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/renesas/r8a77965.dtsi | 262 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/renesas/r8a77970.dtsi | 80 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/renesas/r8a77980.dtsi | 97 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts | 248 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/renesas/r8a77990.dtsi | 203 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/renesas/r8a77995-draak.dts | 98 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/renesas/r8a77995.dtsi | 68 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/renesas/salvator-common.dtsi | 2 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/renesas/ulcb.dtsi | 3 | 
12 files changed, 1052 insertions, 60 deletions
| diff --git a/arch/arm64/boot/dts/renesas/r8a774a1.dtsi b/arch/arm64/boot/dts/renesas/r8a774a1.dtsi index 046fc937da14..012cbb64246e 100644 --- a/arch/arm64/boot/dts/renesas/r8a774a1.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a774a1.dtsi @@ -358,7 +358,6 @@  			power-domains = <&sysc 32>;  			resets = <&cpg 522>;  			#thermal-sensor-cells = <1>; -			status = "okay";  		};  		intc_ex: interrupt-controller@e61c0000 { diff --git a/arch/arm64/boot/dts/renesas/r8a7795.dtsi b/arch/arm64/boot/dts/renesas/r8a7795.dtsi index abb361e41ef6..b5f2273caca4 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7795.dtsi @@ -455,7 +455,6 @@  			power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;  			resets = <&cpg 522>;  			#thermal-sensor-cells = <1>; -			status = "okay";  		};  		intc_ex: interrupt-controller@e61c0000 { @@ -698,7 +697,7 @@  				     "renesas,rcar-gen3-usbhs";  			reg = <0 0xe6590000 0 0x100>;  			interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; -			clocks = <&cpg CPG_MOD 704>; +			clocks = <&cpg CPG_MOD 704>, <&cpg CPG_MOD 703>;  			dmas = <&usb_dmac0 0>, <&usb_dmac0 1>,  			       <&usb_dmac1 0>, <&usb_dmac1 1>;  			dma-names = "ch0", "ch1", "ch2", "ch3"; @@ -706,7 +705,7 @@  			phys = <&usb2_phy0>;  			phy-names = "usb";  			power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; -			resets = <&cpg 704>; +			resets = <&cpg 704>, <&cpg 703>;  			status = "disabled";  		}; @@ -715,7 +714,7 @@  				     "renesas,rcar-gen3-usbhs";  			reg = <0 0xe659c000 0 0x100>;  			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; -			clocks = <&cpg CPG_MOD 705>; +			clocks = <&cpg CPG_MOD 705>, <&cpg CPG_MOD 700>;  			dmas = <&usb_dmac2 0>, <&usb_dmac2 1>,  			       <&usb_dmac3 0>, <&usb_dmac3 1>;  			dma-names = "ch0", "ch1", "ch2", "ch3"; @@ -723,7 +722,7 @@  			phys = <&usb2_phy3>;  			phy-names = "usb";  			power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; -			resets = <&cpg 705>; +			resets = <&cpg 705>, <&cpg 700>;  			status = "disabled";  		}; @@ -2098,11 +2097,11 @@  			compatible = "generic-ohci";  			reg = <0 0xee080000 0 0x100>;  			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; -			clocks = <&cpg CPG_MOD 703>; +			clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;  			phys = <&usb2_phy0>;  			phy-names = "usb";  			power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; -			resets = <&cpg 703>; +			resets = <&cpg 703>, <&cpg 704>;  			status = "disabled";  		}; @@ -2134,11 +2133,11 @@  			compatible = "generic-ohci";  			reg = <0 0xee0e0000 0 0x100>;  			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; -			clocks = <&cpg CPG_MOD 700>; +			clocks = <&cpg CPG_MOD 700>, <&cpg CPG_MOD 705>;  			phys = <&usb2_phy3>;  			phy-names = "usb";  			power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; -			resets = <&cpg 700>; +			resets = <&cpg 700>, <&cpg 705>;  			status = "disabled";  		}; @@ -2146,12 +2145,12 @@  			compatible = "generic-ehci";  			reg = <0 0xee080100 0 0x100>;  			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; -			clocks = <&cpg CPG_MOD 703>; +			clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;  			phys = <&usb2_phy0>;  			phy-names = "usb";  			companion = <&ohci0>;  			power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; -			resets = <&cpg 703>; +			resets = <&cpg 703>, <&cpg 704>;  			status = "disabled";  		}; @@ -2185,12 +2184,12 @@  			compatible = "generic-ehci";  			reg = <0 0xee0e0100 0 0x100>;  			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; -			clocks = <&cpg CPG_MOD 700>; +			clocks = <&cpg CPG_MOD 700>, <&cpg CPG_MOD 705>;  			phys = <&usb2_phy3>;  			phy-names = "usb";  			companion = <&ohci3>;  			power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; -			resets = <&cpg 700>; +			resets = <&cpg 700>, <&cpg 705>;  			status = "disabled";  		}; @@ -2199,9 +2198,9 @@  				     "renesas,rcar-gen3-usb2-phy";  			reg = <0 0xee080200 0 0x700>;  			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; -			clocks = <&cpg CPG_MOD 703>; +			clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;  			power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; -			resets = <&cpg 703>; +			resets = <&cpg 703>, <&cpg 704>;  			#phy-cells = <0>;  			status = "disabled";  		}; @@ -2233,9 +2232,9 @@  				     "renesas,rcar-gen3-usb2-phy";  			reg = <0 0xee0e0200 0 0x700>;  			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; -			clocks = <&cpg CPG_MOD 700>; +			clocks = <&cpg CPG_MOD 700>, <&cpg CPG_MOD 705>;  			power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; -			resets = <&cpg 700>; +			resets = <&cpg 700>, <&cpg 705>;  			#phy-cells = <0>;  			status = "disabled";  		}; diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi index 28a0794a4190..1ec6aaa520c1 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi @@ -434,7 +434,6 @@  			power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;  			resets = <&cpg 522>;  			#thermal-sensor-cells = <1>; -			status = "okay";  		};  		intc_ex: interrupt-controller@e61c0000 { @@ -677,7 +676,7 @@  				     "renesas,rcar-gen3-usbhs";  			reg = <0 0xe6590000 0 0x100>;  			interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; -			clocks = <&cpg CPG_MOD 704>; +			clocks = <&cpg CPG_MOD 704>, <&cpg CPG_MOD 703>;  			dmas = <&usb_dmac0 0>, <&usb_dmac0 1>,  			       <&usb_dmac1 0>, <&usb_dmac1 1>;  			dma-names = "ch0", "ch1", "ch2", "ch3"; @@ -685,7 +684,7 @@  			phys = <&usb2_phy0>;  			phy-names = "usb";  			power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; -			resets = <&cpg 704>; +			resets = <&cpg 704>, <&cpg 703>;  			status = "disabled";  		}; @@ -1970,11 +1969,11 @@  			compatible = "generic-ohci";  			reg = <0 0xee080000 0 0x100>;  			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; -			clocks = <&cpg CPG_MOD 703>; +			clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;  			phys = <&usb2_phy0>;  			phy-names = "usb";  			power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; -			resets = <&cpg 703>; +			resets = <&cpg 703>, <&cpg 704>;  			status = "disabled";  		}; @@ -1994,12 +1993,12 @@  			compatible = "generic-ehci";  			reg = <0 0xee080100 0 0x100>;  			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; -			clocks = <&cpg CPG_MOD 703>; +			clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;  			phys = <&usb2_phy0>;  			phy-names = "usb";  			companion = <&ohci0>;  			power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; -			resets = <&cpg 703>; +			resets = <&cpg 703>, <&cpg 704>;  			status = "disabled";  		}; @@ -2021,9 +2020,9 @@  				     "renesas,rcar-gen3-usb2-phy";  			reg = <0 0xee080200 0 0x700>;  			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; -			clocks = <&cpg CPG_MOD 703>; +			clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;  			power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; -			resets = <&cpg 703>; +			resets = <&cpg 703>, <&cpg 704>;  			#phy-cells = <0>;  			status = "disabled";  		}; diff --git a/arch/arm64/boot/dts/renesas/r8a77965.dtsi b/arch/arm64/boot/dts/renesas/r8a77965.dtsi index 3437d5e34f6a..83946ca2eba5 100644 --- a/arch/arm64/boot/dts/renesas/r8a77965.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a77965.dtsi @@ -12,7 +12,7 @@  #include <dt-bindings/interrupt-controller/arm-gic.h>  #include <dt-bindings/power/r8a77965-sysc.h> -#define CPG_AUDIO_CLK_I		10 +#define CPG_AUDIO_CLK_I		R8A77965_CLK_S0D4  / {  	compatible = "renesas,r8a77965"; @@ -350,7 +350,6 @@  			power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;  			resets = <&cpg 522>;  			#thermal-sensor-cells = <1>; -			status = "okay";  		};  		intc_ex: interrupt-controller@e61c0000 { @@ -593,7 +592,7 @@  				     "renesas,rcar-gen3-usbhs";  			reg = <0 0xe6590000 0 0x100>;  			interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; -			clocks = <&cpg CPG_MOD 704>; +			clocks = <&cpg CPG_MOD 704>, <&cpg CPG_MOD 703>;  			dmas = <&usb_dmac0 0>, <&usb_dmac0 1>,  			       <&usb_dmac1 0>, <&usb_dmac1 1>;  			dma-names = "ch0", "ch1", "ch2", "ch3"; @@ -601,7 +600,7 @@  			phys = <&usb2_phy0>;  			phy-names = "usb";  			power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; -			resets = <&cpg 704>; +			resets = <&cpg 704>, <&cpg 703>;  			status = "disabled";  		}; @@ -1402,46 +1401,269 @@  		};  		rcar_sound: sound@ec500000 { +			/* +			 * #sound-dai-cells is required +			 * +			 * Single DAI : #sound-dai-cells = <0>;	<&rcar_sound>; +			 * Multi  DAI : #sound-dai-cells = <1>;	<&rcar_sound N>; +			 */ +			/* +			 * #clock-cells is required for audio_clkout0/1/2/3 +			 * +			 * clkout	: #clock-cells = <0>;	<&rcar_sound>; +			 * clkout0/1/2/3: #clock-cells = <1>;	<&rcar_sound N>; +			 */ +			compatible =  "renesas,rcar_sound-r8a77965", "renesas,rcar_sound-gen3";  			reg =	<0 0xec500000 0 0x1000>, /* SCU */  				<0 0xec5a0000 0 0x100>,  /* ADG */  				<0 0xec540000 0 0x1000>, /* SSIU */  				<0 0xec541000 0 0x280>,  /* SSI */  				<0 0xec740000 0 0x200>;  /* Audio DMAC peri peri*/ -			/* placeholder */ +			reg-names = "scu", "adg", "ssiu", "ssi", "audmapp"; + +			clocks = <&cpg CPG_MOD 1005>, +				 <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>, +				 <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>, +				 <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>, +				 <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>, +				 <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>, +				 <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>, +				 <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>, +				 <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>, +				 <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>, +				 <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>, +				 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, +				 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, +				 <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, +				 <&audio_clk_a>, <&audio_clk_b>, +				 <&audio_clk_c>, +				 <&cpg CPG_CORE R8A77965_CLK_S0D4>; +			clock-names = "ssi-all", +				      "ssi.9", "ssi.8", "ssi.7", "ssi.6", +				      "ssi.5", "ssi.4", "ssi.3", "ssi.2", +				      "ssi.1", "ssi.0", +				      "src.9", "src.8", "src.7", "src.6", +				      "src.5", "src.4", "src.3", "src.2", +				      "src.1", "src.0", +				      "mix.1", "mix.0", +				      "ctu.1", "ctu.0", +				      "dvc.0", "dvc.1", +				      "clk_a", "clk_b", "clk_c", "clk_i"; +			power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; +			resets = <&cpg 1005>, +				 <&cpg 1006>, <&cpg 1007>, +				 <&cpg 1008>, <&cpg 1009>, +				 <&cpg 1010>, <&cpg 1011>, +				 <&cpg 1012>, <&cpg 1013>, +				 <&cpg 1014>, <&cpg 1015>; +			reset-names = "ssi-all", +				      "ssi.9", "ssi.8", "ssi.7", "ssi.6", +				      "ssi.5", "ssi.4", "ssi.3", "ssi.2", +				      "ssi.1", "ssi.0"; +			status = "disabled";  			rcar_sound,dvc {  				dvc0: dvc-0 { +					dmas = <&audma1 0xbc>; +					dma-names = "tx";  				};  				dvc1: dvc-1 { +					dmas = <&audma1 0xbe>; +					dma-names = "tx";  				};  			}; +			rcar_sound,mix { +				mix0: mix-0 { }; +				mix1: mix-1 { }; +			}; + +			rcar_sound,ctu { +				ctu00: ctu-0 { }; +				ctu01: ctu-1 { }; +				ctu02: ctu-2 { }; +				ctu03: ctu-3 { }; +				ctu10: ctu-4 { }; +				ctu11: ctu-5 { }; +				ctu12: ctu-6 { }; +				ctu13: ctu-7 { }; +			}; +  			rcar_sound,src {  				src0: src-0 { +					interrupts = <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>; +					dmas = <&audma0 0x85>, <&audma1 0x9a>; +					dma-names = "rx", "tx";  				};  				src1: src-1 { +					interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>; +					dmas = <&audma0 0x87>, <&audma1 0x9c>; +					dma-names = "rx", "tx"; +				}; +				src2: src-2 { +					interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>; +					dmas = <&audma0 0x89>, <&audma1 0x9e>; +					dma-names = "rx", "tx"; +				}; +				src3: src-3 { +					interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>; +					dmas = <&audma0 0x8b>, <&audma1 0xa0>; +					dma-names = "rx", "tx"; +				}; +				src4: src-4 { +					interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>; +					dmas = <&audma0 0x8d>, <&audma1 0xb0>; +					dma-names = "rx", "tx"; +				}; +				src5: src-5 { +					interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>; +					dmas = <&audma0 0x8f>, <&audma1 0xb2>; +					dma-names = "rx", "tx"; +				}; +				src6: src-6 { +					interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>; +					dmas = <&audma0 0x91>, <&audma1 0xb4>; +					dma-names = "rx", "tx"; +				}; +				src7: src-7 { +					interrupts = <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>; +					dmas = <&audma0 0x93>, <&audma1 0xb6>; +					dma-names = "rx", "tx"; +				}; +				src8: src-8 { +					interrupts = <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>; +					dmas = <&audma0 0x95>, <&audma1 0xb8>; +					dma-names = "rx", "tx"; +				}; +				src9: src-9 { +					interrupts = <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>; +					dmas = <&audma0 0x97>, <&audma1 0xba>; +					dma-names = "rx", "tx";  				};  			};  			rcar_sound,ssi {  				ssi0: ssi-0 { +					interrupts = <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>; +					dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>; +					dma-names = "rx", "tx", "rxu", "txu";  				};  				ssi1: ssi-1 { +					interrupts = <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>; +					dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>; +					dma-names = "rx", "tx", "rxu", "txu";  				}; -			}; - -			ports { -				#address-cells = <1>; -				#size-cells = <0>; -				port@0 { -					reg = <0>; +				ssi2: ssi-2 { +					interrupts = <GIC_SPI 372 IRQ_TYPE_LEVEL_HIGH>; +					dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>; +					dma-names = "rx", "tx", "rxu", "txu";  				}; -				port@1 { -					reg = <1>; +				ssi3: ssi-3 { +					interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>; +					dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>; +					dma-names = "rx", "tx", "rxu", "txu"; +				}; +				ssi4: ssi-4 { +					interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>; +					dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>; +					dma-names = "rx", "tx", "rxu", "txu"; +				}; +				ssi5: ssi-5 { +					interrupts = <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>; +					dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>; +					dma-names = "rx", "tx", "rxu", "txu"; +				}; +				ssi6: ssi-6 { +					interrupts = <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>; +					dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>; +					dma-names = "rx", "tx", "rxu", "txu"; +				}; +				ssi7: ssi-7 { +					interrupts = <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>; +					dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>; +					dma-names = "rx", "tx", "rxu", "txu"; +				}; +				ssi8: ssi-8 { +					interrupts = <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>; +					dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>; +					dma-names = "rx", "tx", "rxu", "txu"; +				}; +				ssi9: ssi-9 { +					interrupts = <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>; +					dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>; +					dma-names = "rx", "tx", "rxu", "txu";  				};  			};  		}; +		audma0: dma-controller@ec700000 { +			compatible = "renesas,dmac-r8a77965", +				     "renesas,rcar-dmac"; +			reg = <0 0xec700000 0 0x10000>; +			interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>; +			interrupt-names = "error", +					"ch0", "ch1", "ch2", "ch3", +					"ch4", "ch5", "ch6", "ch7", +					"ch8", "ch9", "ch10", "ch11", +					"ch12", "ch13", "ch14", "ch15"; +			clocks = <&cpg CPG_MOD 502>; +			clock-names = "fck"; +			power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; +			resets = <&cpg 502>; +			#dma-cells = <1>; +			dma-channels = <16>; +		}; + +		audma1: dma-controller@ec720000 { +			compatible = "renesas,dmac-r8a77965", +				     "renesas,rcar-dmac"; +			reg = <0 0xec720000 0 0x10000>; +			interrupts = <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH +				      GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>; +			interrupt-names = "error", +					"ch0", "ch1", "ch2", "ch3", +					"ch4", "ch5", "ch6", "ch7", +					"ch8", "ch9", "ch10", "ch11", +					"ch12", "ch13", "ch14", "ch15"; +			clocks = <&cpg CPG_MOD 501>; +			clock-names = "fck"; +			power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; +			resets = <&cpg 501>; +			#dma-cells = <1>; +			dma-channels = <16>; +		}; +  		xhci0: usb@ee000000 {  			compatible = "renesas,xhci-r8a77965",  				     "renesas,rcar-gen3-xhci"; @@ -1468,11 +1690,11 @@  			compatible = "generic-ohci";  			reg = <0 0xee080000 0 0x100>;  			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; -			clocks = <&cpg CPG_MOD 703>; +			clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;  			phys = <&usb2_phy0>;  			phy-names = "usb";  			power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; -			resets = <&cpg 703>; +			resets = <&cpg 703>, <&cpg 704>;  			status = "disabled";  		}; @@ -1492,12 +1714,12 @@  			compatible = "generic-ehci";  			reg = <0 0xee080100 0 0x100>;  			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; -			clocks = <&cpg CPG_MOD 703>; +			clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;  			phys = <&usb2_phy0>;  			phy-names = "usb";  			companion = <&ohci0>;  			power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; -			resets = <&cpg 703>; +			resets = <&cpg 703>, <&cpg 704>;  			status = "disabled";  		}; @@ -1519,9 +1741,9 @@  				     "renesas,rcar-gen3-usb2-phy";  			reg = <0 0xee080200 0 0x700>;  			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; -			clocks = <&cpg CPG_MOD 703>; +			clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;  			power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; -			resets = <&cpg 703>; +			resets = <&cpg 703>, <&cpg 704>;  			#phy-cells = <0>;  			status = "disabled";  		}; diff --git a/arch/arm64/boot/dts/renesas/r8a77970.dtsi b/arch/arm64/boot/dts/renesas/r8a77970.dtsi index f4b02707390f..cba7885cf7c3 100644 --- a/arch/arm64/boot/dts/renesas/r8a77970.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a77970.dtsi @@ -209,6 +209,76 @@  			reg = <0 0xe6060000 0 0x504>;  		}; +		cmt0: timer@e60f0000 { +			compatible = "renesas,r8a77970-cmt0", +				     "renesas,rcar-gen3-cmt0"; +			reg = <0 0xe60f0000 0 0x1004>; +			interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&cpg CPG_MOD 303>; +			clock-names = "fck"; +			power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; +			resets = <&cpg 303>; +			status = "disabled"; +		}; + +		cmt1: timer@e6130000 { +			compatible = "renesas,r8a77970-cmt1", +				     "renesas,rcar-gen3-cmt1"; +			reg = <0 0xe6130000 0 0x1004>; +			interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&cpg CPG_MOD 302>; +			clock-names = "fck"; +			power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; +			resets = <&cpg 302>; +			status = "disabled"; +		}; + +		cmt2: timer@e6140000 { +			compatible = "renesas,r8a77970-cmt1", +				     "renesas,rcar-gen3-cmt1"; +			reg = <0 0xe6140000 0 0x1004>; +			interrupts = <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 264 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&cpg CPG_MOD 301>; +			clock-names = "fck"; +			power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; +			resets = <&cpg 301>; +			status = "disabled"; +		}; + +		cmt3: timer@e6148000 { +			compatible = "renesas,r8a77970-cmt1", +				     "renesas,rcar-gen3-cmt1"; +			reg = <0 0xe6148000 0 0x1004>; +			interrupts = <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 276 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&cpg CPG_MOD 300>; +			clock-names = "fck"; +			power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; +			resets = <&cpg 300>; +			status = "disabled"; +		}; +  		cpg: clock-controller@e6150000 {  			compatible = "renesas,r8a77970-cpg-mssr";  			reg = <0 0xe6150000 0 0x1000>; @@ -544,6 +614,16 @@  			status = "disabled";  		}; +		tpu: pwm@e6e80000 { +			compatible = "renesas,tpu-r8a77970", "renesas,tpu"; +			reg = <0 0xe6e80000 0 0x148>; +			interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&cpg CPG_MOD 304>; +			power-domains = <&sysc R8A77970_PD_ALWAYS_ON>; +			resets = <&cpg 304>; +			#pwm-cells = <3>; +			status = "disabled"; +		};  		vin0: video@e6ef0000 {  			compatible = "renesas,vin-r8a77970"; diff --git a/arch/arm64/boot/dts/renesas/r8a77980.dtsi b/arch/arm64/boot/dts/renesas/r8a77980.dtsi index fc2a1d62d773..d4952b527d14 100644 --- a/arch/arm64/boot/dts/renesas/r8a77980.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a77980.dtsi @@ -239,6 +239,76 @@  			reg = <0 0xe6060000 0 0x50c>;  		}; +		cmt0: timer@e60f0000 { +			compatible = "renesas,r8a77980-cmt0", +				     "renesas,rcar-gen3-cmt0"; +			reg = <0 0xe60f0000 0 0x1004>; +			interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&cpg CPG_MOD 303>; +			clock-names = "fck"; +			power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; +			resets = <&cpg 303>; +			status = "disabled"; +		}; + +		cmt1: timer@e6130000 { +			compatible = "renesas,r8a77980-cmt1", +				     "renesas,rcar-gen3-cmt1"; +			reg = <0 0xe6130000 0 0x1004>; +			interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&cpg CPG_MOD 302>; +			clock-names = "fck"; +			power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; +			resets = <&cpg 302>; +			status = "disabled"; +		}; + +		cmt2: timer@e6140000 { +			compatible = "renesas,r8a77980-cmt1", +				     "renesas,rcar-gen3-cmt1"; +			reg = <0 0xe6140000 0 0x1004>; +			interrupts = <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 264 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&cpg CPG_MOD 301>; +			clock-names = "fck"; +			power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; +			resets = <&cpg 301>; +			status = "disabled"; +		}; + +		cmt3: timer@e6148000 { +			compatible = "renesas,r8a77980-cmt1", +				     "renesas,rcar-gen3-cmt1"; +			reg = <0 0xe6148000 0 0x1004>; +			interrupts = <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 276 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&cpg CPG_MOD 300>; +			clock-names = "fck"; +			power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; +			resets = <&cpg 300>; +			status = "disabled"; +		}; +  		cpg: clock-controller@e6150000 {  			compatible = "renesas,r8a77980-cpg-mssr";  			reg = <0 0xe6150000 0 0x1000>; @@ -596,6 +666,17 @@  			status = "disabled";  		}; +		tpu: pwm@e6e80000 { +			compatible = "renesas,tpu-r8a77980", "renesas,tpu"; +			reg = <0 0xe6e80000 0 0x148>; +			interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&cpg CPG_MOD 304>; +			power-domains = <&sysc R8A77980_PD_ALWAYS_ON>; +			resets = <&cpg 304>; +			#pwm-cells = <3>; +			status = "disabled"; +		}; +  		vin0: video@e6ef0000 {  			compatible = "renesas,vin-r8a77980";  			reg = <0 0xe6ef0000 0 0x1000>; @@ -924,6 +1005,14 @@  			resets = <&cpg 218>;  			#dma-cells = <1>;  			dma-channels = <16>; +			iommus = <&ipmmu_ds1 0>, <&ipmmu_ds1 1>, +			       <&ipmmu_ds1 2>, <&ipmmu_ds1 3>, +			       <&ipmmu_ds1 4>, <&ipmmu_ds1 5>, +			       <&ipmmu_ds1 6>, <&ipmmu_ds1 7>, +			       <&ipmmu_ds1 8>, <&ipmmu_ds1 9>, +			       <&ipmmu_ds1 10>, <&ipmmu_ds1 11>, +			       <&ipmmu_ds1 12>, <&ipmmu_ds1 13>, +			       <&ipmmu_ds1 14>, <&ipmmu_ds1 15>;  		};  		dmac2: dma-controller@e7310000 { @@ -958,6 +1047,14 @@  			resets = <&cpg 217>;  			#dma-cells = <1>;  			dma-channels = <16>; +			iommus = <&ipmmu_ds1 16>, <&ipmmu_ds1 17>, +			       <&ipmmu_ds1 18>, <&ipmmu_ds1 19>, +			       <&ipmmu_ds1 20>, <&ipmmu_ds1 21>, +			       <&ipmmu_ds1 22>, <&ipmmu_ds1 23>, +			       <&ipmmu_ds1 24>, <&ipmmu_ds1 25>, +			       <&ipmmu_ds1 26>, <&ipmmu_ds1 27>, +			       <&ipmmu_ds1 28>, <&ipmmu_ds1 29>, +			       <&ipmmu_ds1 30>, <&ipmmu_ds1 31>;  		};  		gether: ethernet@e7400000 { diff --git a/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts b/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts index 31934a310ac3..f342dd85b152 100644 --- a/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts +++ b/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts @@ -28,6 +28,111 @@  		/* first 128MB is reserved for secure area. */  		reg = <0x0 0x48000000 0x0 0x38000000>;  	}; + +	cvbs-in { +		compatible = "composite-video-connector"; +		label = "CVBS IN"; + +		port { +			cvbs_con: endpoint { +				remote-endpoint = <&adv7482_ain7>; +			}; +		}; +	}; + +	hdmi-in { +		compatible = "hdmi-connector"; +		label = "HDMI IN"; +		type = "a"; + +		port { +			hdmi_in_con: endpoint { +				remote-endpoint = <&adv7482_hdmi>; +			}; +		}; +	}; + +	hdmi-out { +		compatible = "hdmi-connector"; +		type = "a"; + +		port { +			hdmi_con_out: endpoint { +				remote-endpoint = <&adv7511_out>; +			}; +		}; +	}; + +	lvds-decoder { +		compatible = "thine,thc63lvd1024"; +		vcc-supply = <®_3p3v>; + +		ports { +			#address-cells = <1>; +			#size-cells = <0>; + +			port@0 { +				reg = <0>; +				thc63lvd1024_in: endpoint { +					remote-endpoint = <&lvds0_out>; +				}; +			}; + +			port@2 { +				reg = <2>; +				thc63lvd1024_out: endpoint { +					remote-endpoint = <&adv7511_in>; +				}; +			}; +		}; +	}; + +	vga { +		compatible = "vga-connector"; + +		port { +			vga_in: endpoint { +				remote-endpoint = <&adv7123_out>; +			}; +		}; +	}; + +	vga-encoder { +		compatible = "adi,adv7123"; + +		ports { +			#address-cells = <1>; +			#size-cells = <0>; + +			port@0 { +				reg = <0>; +				adv7123_in: endpoint { +					remote-endpoint = <&du_out_rgb>; +				}; +			}; +			port@1 { +				reg = <1>; +				adv7123_out: endpoint { +					remote-endpoint = <&vga_in>; +				}; +			}; +		}; +	}; + +	reg_3p3v: regulator1 { +		compatible = "regulator-fixed"; +		regulator-name = "fixed-3.3V"; +		regulator-min-microvolt = <3300000>; +		regulator-max-microvolt = <3300000>; +		regulator-boot-on; +		regulator-always-on; +	}; + +	x13_clk: x13 { +		compatible = "fixed-clock"; +		#clock-cells = <0>; +		clock-frequency = <74250000>; +	};  };  &avb { @@ -47,6 +152,41 @@  	};  }; +&csi40 { +	status = "okay"; + +	ports { +		port@0 { +			reg = <0>; + +			csi40_in: endpoint { +				clock-lanes = <0>; +				data-lanes = <1 2>; +				remote-endpoint = <&adv7482_txa>; +			}; +		}; +	}; +}; + +&du { +	pinctrl-0 = <&du_pins>; +	pinctrl-names = "default"; +	status = "okay"; + +	clocks = <&cpg CPG_MOD 724>, +		 <&cpg CPG_MOD 723>, +		 <&x13_clk>; +	clock-names = "du.0", "du.1", "dclkin.0"; + +	ports { +		port@0 { +			endpoint { +				remote-endpoint = <&adv7123_in>; +			}; +		}; +	}; +}; +  &ehci0 {  	status = "okay";  }; @@ -55,6 +195,105 @@  	clock-frequency = <48000000>;  }; +&i2c0 { +	status = "okay"; + +	hdmi-encoder@39 { +		compatible = "adi,adv7511w"; +		reg = <0x39>; +		interrupt-parent = <&gpio1>; +		interrupts = <1 IRQ_TYPE_LEVEL_LOW>; + +		adi,input-depth = <8>; +		adi,input-colorspace = "rgb"; +		adi,input-clock = "1x"; +		adi,input-style = <1>; +		adi,input-justification = "evenly"; + +		ports { +			#address-cells = <1>; +			#size-cells = <0>; + +			port@0 { +				reg = <0>; +				adv7511_in: endpoint { +					remote-endpoint = <&thc63lvd1024_out>; +				}; +			}; + +			port@1 { +				reg = <1>; +				adv7511_out: endpoint { +					remote-endpoint = <&hdmi_con_out>; +				}; +			}; +		}; +	}; + +	video-receiver@70 { +		compatible = "adi,adv7482"; +		reg = <0x70>; + +		#address-cells = <1>; +		#size-cells = <0>; + +		interrupt-parent = <&gpio0>; +		interrupt-names = "intrq1", "intrq2"; +		interrupts = <7 IRQ_TYPE_LEVEL_LOW>, +			     <17 IRQ_TYPE_LEVEL_LOW>; + +		port@7 { +			reg = <7>; + +			adv7482_ain7: endpoint { +				remote-endpoint = <&cvbs_con>; +			}; +		}; + +		port@8 { +			reg = <8>; + +			adv7482_hdmi: endpoint { +				remote-endpoint = <&hdmi_in_con>; +			}; +		}; + +		port@a { +			reg = <0xa>; + +			adv7482_txa: endpoint { +				clock-lanes = <0>; +				data-lanes = <1 2>; +				remote-endpoint = <&csi40_in>; +			}; +		}; +	}; +}; + +&lvds0 { +	status = "okay"; + +	clocks = <&cpg CPG_MOD 727>, +		 <&x13_clk>, +		 <&extal_clk>; +	clock-names = "fck", "dclkin.0", "extal"; + +	ports { +		port@1 { +			lvds0_out: endpoint { +				remote-endpoint = <&thc63lvd1024_in>; +			}; +		}; +	}; +}; + +&lvds1 { +	clocks = <&cpg CPG_MOD 727>, +		 <&x13_clk>, +		 <&extal_clk>; +	clock-names = "fck", "dclkin.0", "extal"; +}; +  &ohci0 {  	status = "okay";  }; @@ -67,6 +306,11 @@  		};  	}; +	du_pins: du { +		groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0"; +		function = "du"; +	}; +  	pwm3_pins: pwm3 {  		groups = "pwm3_b";  		function = "pwm3"; @@ -118,6 +362,10 @@  	status = "okay";  }; +&vin4 { +	status = "okay"; +}; +  &xhci0 {  	pinctrl-0 = <&usb30_pins>;  	pinctrl-names = "default"; diff --git a/arch/arm64/boot/dts/renesas/r8a77990.dtsi b/arch/arm64/boot/dts/renesas/r8a77990.dtsi index 5ce268cda03b..9509dc05665f 100644 --- a/arch/arm64/boot/dts/renesas/r8a77990.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a77990.dtsi @@ -373,6 +373,14 @@  			resets = <&cpg 219>;  			#dma-cells = <1>;  			dma-channels = <16>; +			iommus = <&ipmmu_ds0 0>, <&ipmmu_ds0 1>, +			       <&ipmmu_ds0 2>, <&ipmmu_ds0 3>, +			       <&ipmmu_ds0 4>, <&ipmmu_ds0 5>, +			       <&ipmmu_ds0 6>, <&ipmmu_ds0 7>, +			       <&ipmmu_ds0 8>, <&ipmmu_ds0 9>, +			       <&ipmmu_ds0 10>, <&ipmmu_ds0 11>, +			       <&ipmmu_ds0 12>, <&ipmmu_ds0 13>, +			       <&ipmmu_ds0 14>, <&ipmmu_ds0 15>;  		};  		dmac1: dma-controller@e7300000 { @@ -407,6 +415,14 @@  			resets = <&cpg 218>;  			#dma-cells = <1>;  			dma-channels = <16>; +			iommus = <&ipmmu_ds1 0>, <&ipmmu_ds1 1>, +			       <&ipmmu_ds1 2>, <&ipmmu_ds1 3>, +			       <&ipmmu_ds1 4>, <&ipmmu_ds1 5>, +			       <&ipmmu_ds1 6>, <&ipmmu_ds1 7>, +			       <&ipmmu_ds1 8>, <&ipmmu_ds1 9>, +			       <&ipmmu_ds1 10>, <&ipmmu_ds1 11>, +			       <&ipmmu_ds1 12>, <&ipmmu_ds1 13>, +			       <&ipmmu_ds1 14>, <&ipmmu_ds1 15>;  		};  		dmac2: dma-controller@e7310000 { @@ -441,6 +457,14 @@  			resets = <&cpg 217>;  			#dma-cells = <1>;  			dma-channels = <16>; +			iommus = <&ipmmu_ds1 16>, <&ipmmu_ds1 17>, +			       <&ipmmu_ds1 18>, <&ipmmu_ds1 19>, +			       <&ipmmu_ds1 20>, <&ipmmu_ds1 21>, +			       <&ipmmu_ds1 22>, <&ipmmu_ds1 23>, +			       <&ipmmu_ds1 24>, <&ipmmu_ds1 25>, +			       <&ipmmu_ds1 26>, <&ipmmu_ds1 27>, +			       <&ipmmu_ds1 28>, <&ipmmu_ds1 29>, +			       <&ipmmu_ds1 30>, <&ipmmu_ds1 31>;  		};  		ipmmu_ds0: mmu@e6740000 { @@ -769,11 +793,11 @@  			compatible = "generic-ohci";  			reg = <0 0xee080000 0 0x100>;  			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; -			clocks = <&cpg CPG_MOD 703>; +			clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;  			phys = <&usb2_phy0>;  			phy-names = "usb";  			power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; -			resets = <&cpg 703>; +			resets = <&cpg 703>, <&cpg 704>;  			status = "disabled";  		}; @@ -781,12 +805,12 @@  			compatible = "generic-ehci";  			reg = <0 0xee080100 0 0x100>;  			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; -			clocks = <&cpg CPG_MOD 703>; +			clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;  			phys = <&usb2_phy0>;  			phy-names = "usb";  			companion = <&ohci0>;  			power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; -			resets = <&cpg 703>; +			resets = <&cpg 703>, <&cpg 704>;  			status = "disabled";  		}; @@ -795,9 +819,9 @@  				     "renesas,rcar-gen3-usb2-phy";  			reg = <0 0xee080200 0 0x700>;  			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; -			clocks = <&cpg CPG_MOD 703>; +			clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;  			power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; -			resets = <&cpg 703>; +			resets = <&cpg 703>, <&cpg 704>;  			#phy-cells = <0>;  			status = "disabled";  		}; @@ -819,6 +843,82 @@  			resets = <&cpg 408>;  		}; +		vspb0: vsp@fe960000 { +			compatible = "renesas,vsp2"; +			reg = <0 0xfe960000 0 0x8000>; +			interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&cpg CPG_MOD 626>; +			power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; +			resets = <&cpg 626>; +			renesas,fcp = <&fcpvb0>; +		}; + +		fcpvb0: fcp@fe96f000 { +			compatible = "renesas,fcpv"; +			reg = <0 0xfe96f000 0 0x200>; +			clocks = <&cpg CPG_MOD 607>; +			power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; +			resets = <&cpg 607>; +			iommus = <&ipmmu_vp0 5>; +		}; + +		vspi0: vsp@fe9a0000 { +			compatible = "renesas,vsp2"; +			reg = <0 0xfe9a0000 0 0x8000>; +			interrupts = <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&cpg CPG_MOD 631>; +			power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; +			resets = <&cpg 631>; +			renesas,fcp = <&fcpvi0>; +		}; + +		fcpvi0: fcp@fe9af000 { +			compatible = "renesas,fcpv"; +			reg = <0 0xfe9af000 0 0x200>; +			clocks = <&cpg CPG_MOD 611>; +			power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; +			resets = <&cpg 611>; +			iommus = <&ipmmu_vp0 8>; +		}; + +		vspd0: vsp@fea20000 { +			compatible = "renesas,vsp2"; +			reg = <0 0xfea20000 0 0x7000>; +			interrupts = <GIC_SPI 466 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&cpg CPG_MOD 623>; +			power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; +			resets = <&cpg 623>; +			renesas,fcp = <&fcpvd0>; +		}; + +		fcpvd0: fcp@fea27000 { +			compatible = "renesas,fcpv"; +			reg = <0 0xfea27000 0 0x200>; +			clocks = <&cpg CPG_MOD 603>; +			power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; +			resets = <&cpg 603>; +			iommus = <&ipmmu_vi0 8>; +		}; + +		vspd1: vsp@fea28000 { +			compatible = "renesas,vsp2"; +			reg = <0 0xfea28000 0 0x7000>; +			interrupts = <GIC_SPI 467 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&cpg CPG_MOD 622>; +			power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; +			resets = <&cpg 622>; +			renesas,fcp = <&fcpvd1>; +		}; + +		fcpvd1: fcp@fea2f000 { +			compatible = "renesas,fcpv"; +			reg = <0 0xfea2f000 0 0x200>; +			clocks = <&cpg CPG_MOD 602>; +			power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; +			resets = <&cpg 602>; +			iommus = <&ipmmu_vi0 9>; +		}; +  		csi40: csi2@feaa0000 {  			compatible = "renesas,r8a77990-csi2", "renesas,rcar-gen3-csi2";  			reg = <0 0xfeaa0000 0 0x10000>; @@ -850,6 +950,97 @@  			};  		}; +		du: display@feb00000 { +			compatible = "renesas,du-r8a77990"; +			reg = <0 0xfeb00000 0 0x80000>; +			interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, +				     <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>; +			clocks = <&cpg CPG_MOD 724>, +				 <&cpg CPG_MOD 723>; +			clock-names = "du.0", "du.1"; +			vsps = <&vspd0 0 &vspd1 0>; +			status = "disabled"; + +			ports { +				#address-cells = <1>; +				#size-cells = <0>; + +				port@0 { +					reg = <0>; +					du_out_rgb: endpoint { +					}; +				}; + +				port@1 { +					reg = <1>; +					du_out_lvds0: endpoint { +						remote-endpoint = <&lvds0_in>; +					}; +				}; + +				port@2 { +					reg = <2>; +					du_out_lvds1: endpoint { +						remote-endpoint = <&lvds1_in>; +					}; +				}; +			}; +		}; + +		lvds0: lvds-encoder@feb90000 { +			compatible = "renesas,r8a77990-lvds"; +			reg = <0 0xfeb90000 0 0x20>; +			clocks = <&cpg CPG_MOD 727>; +			power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; +			resets = <&cpg 727>; +			status = "disabled"; + +			ports { +				#address-cells = <1>; +				#size-cells = <0>; + +				port@0 { +					reg = <0>; +					lvds0_in: endpoint { +						remote-endpoint = <&du_out_lvds0>; +					}; +				}; + +				port@1 { +					reg = <1>; +					lvds0_out: endpoint { +					}; +				}; +			}; +		}; + +		lvds1: lvds-encoder@feb90100 { +			compatible = "renesas,r8a77990-lvds"; +			reg = <0 0xfeb90100 0 0x20>; +			clocks = <&cpg CPG_MOD 727>; +			power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; +			resets = <&cpg 726>; +			status = "disabled"; + +			ports { +				#address-cells = <1>; +				#size-cells = <0>; + +				port@0 { +					reg = <0>; +					lvds1_in: endpoint { +						remote-endpoint = <&du_out_lvds1>; +					}; +				}; + +				port@1 { +					reg = <1>; +					lvds1_out: endpoint { +					}; +				}; +			}; +		}; +  		prr: chipid@fff00044 {  			compatible = "renesas,prr";  			reg = <0 0xfff00044 0 4>; diff --git a/arch/arm64/boot/dts/renesas/r8a77995-draak.dts b/arch/arm64/boot/dts/renesas/r8a77995-draak.dts index e39b73005381..2405eaad0296 100644 --- a/arch/arm64/boot/dts/renesas/r8a77995-draak.dts +++ b/arch/arm64/boot/dts/renesas/r8a77995-draak.dts @@ -2,7 +2,7 @@  /*   * Device Tree Source for the Draak board   * - * Copyright (C) 2016 Renesas Electronics Corp. + * Copyright (C) 2016-2018 Renesas Electronics Corp.   * Copyright (C) 2017 Glider bvba   */ @@ -45,6 +45,41 @@  		};  	}; +	hdmi-out { +		compatible = "hdmi-connector"; +		type = "a"; + +		port { +			hdmi_con_out: endpoint { +				remote-endpoint = <&adv7511_out>; +			}; +		}; +	}; + +	lvds-decoder { +		compatible = "thine,thc63lvd1024"; +		vcc-supply = <®_3p3v>; + +		ports { +			#address-cells = <1>; +			#size-cells = <0>; + +			port@0 { +				reg = <0>; +				thc63lvd1024_in: endpoint { +					remote-endpoint = <&lvds0_out>; +				}; +			}; + +			port@2 { +				reg = <2>; +				thc63lvd1024_out: endpoint { +					remote-endpoint = <&adv7511_in>; +				}; +			}; +		}; +	}; +  	memory@48000000 {  		device_type = "memory";  		/* first 128MB is reserved for secure area. */ @@ -190,6 +225,43 @@  	}; +	hdmi-encoder@39 { +		compatible = "adi,adv7511w"; +		reg = <0x39>, <0x3f>, <0x38>, <0x3c>; +		reg-names = "main", "edid", "packet", "cec"; +		interrupt-parent = <&gpio1>; +		interrupts = <28 IRQ_TYPE_LEVEL_LOW>; + +		/* Depends on LVDS */ +		max-clock = <135000000>; +		min-vrefresh = <50>; + +		adi,input-depth = <8>; +		adi,input-colorspace = "rgb"; +		adi,input-clock = "1x"; +		adi,input-style = <1>; +		adi,input-justification = "evenly"; + +		ports { +			#address-cells = <1>; +			#size-cells = <0>; + +			port@0 { +				reg = <0>; +				adv7511_in: endpoint { +					remote-endpoint = <&thc63lvd1024_out>; +				}; +			}; + +			port@1 { +				reg = <1>; +				adv7511_out: endpoint { +					remote-endpoint = <&hdmi_con_out>; +				}; +			}; +		}; +	}; +  	hdmi-decoder@4c {  		compatible = "adi,adv7612";  		reg = <0x4c>; @@ -240,6 +312,30 @@  	status = "okay";  }; +&lvds0 { +	status = "okay"; + +	clocks = <&cpg CPG_MOD 727>, +		 <&x12_clk>, +		 <&extal_clk>; +	clock-names = "fck", "dclkin.0", "extal"; + +	ports { +		port@1 { +			lvds0_out: endpoint { +				remote-endpoint = <&thc63lvd1024_in>; +			}; +		}; +	}; +}; + +&lvds1 { +	clocks = <&cpg CPG_MOD 727>, +		 <&x12_clk>, +		 <&extal_clk>; +	clock-names = "fck", "dclkin.0", "extal"; +}; +  &ohci0 {  	status = "okay";  }; diff --git a/arch/arm64/boot/dts/renesas/r8a77995.dtsi b/arch/arm64/boot/dts/renesas/r8a77995.dtsi index 625ba2b302c7..214f4954b321 100644 --- a/arch/arm64/boot/dts/renesas/r8a77995.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a77995.dtsi @@ -829,11 +829,11 @@  			compatible = "generic-ohci";  			reg = <0 0xee080000 0 0x100>;  			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; -			clocks = <&cpg CPG_MOD 703>; +			clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;  			phys = <&usb2_phy0>;  			phy-names = "usb";  			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; -			resets = <&cpg 703>; +			resets = <&cpg 703>, <&cpg 704>;  			status = "disabled";  		}; @@ -841,12 +841,12 @@  			compatible = "generic-ehci";  			reg = <0 0xee080100 0 0x100>;  			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; -			clocks = <&cpg CPG_MOD 703>; +			clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;  			phys = <&usb2_phy0>;  			phy-names = "usb";  			companion = <&ohci0>;  			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; -			resets = <&cpg 703>; +			resets = <&cpg 703>, <&cpg 704>;  			status = "disabled";  		}; @@ -855,9 +855,9 @@  				     "renesas,rcar-gen3-usb2-phy";  			reg = <0 0xee080200 0 0x700>;  			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; -			clocks = <&cpg CPG_MOD 703>; +			clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;  			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; -			resets = <&cpg 703>; +			resets = <&cpg 703>, <&cpg 704>;  			#phy-cells = <0>;  			status = "disabled";  		}; @@ -972,12 +972,68 @@  				port@1 {  					reg = <1>;  					du_out_lvds0: endpoint { +						remote-endpoint = <&lvds0_in>;  					};  				};  				port@2 {  					reg = <2>;  					du_out_lvds1: endpoint { +						remote-endpoint = <&lvds1_in>; +					}; +				}; +			}; +		}; + +		lvds0: lvds-encoder@feb90000 { +			compatible = "renesas,r8a77995-lvds"; +			reg = <0 0xfeb90000 0 0x20>; +			clocks = <&cpg CPG_MOD 727>; +			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; +			resets = <&cpg 727>; +			status = "disabled"; + +			ports { +				#address-cells = <1>; +				#size-cells = <0>; + +				port@0 { +					reg = <0>; +					lvds0_in: endpoint { +						remote-endpoint = <&du_out_lvds0>; +					}; +				}; + +				port@1 { +					reg = <1>; +					lvds0_out: endpoint { +					}; +				}; +			}; +		}; + +		lvds1: lvds-encoder@feb90100 { +			compatible = "renesas,r8a77995-lvds"; +			reg = <0 0xfeb90100 0 0x20>; +			clocks = <&cpg CPG_MOD 727>; +			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; +			resets = <&cpg 726>; +			status = "disabled"; + +			ports { +				#address-cells = <1>; +				#size-cells = <0>; + +				port@0 { +					reg = <0>; +					lvds1_in: endpoint { +						remote-endpoint = <&du_out_lvds1>; +					}; +				}; + +				port@1 { +					reg = <1>; +					lvds1_out: endpoint {  					};  				};  			}; diff --git a/arch/arm64/boot/dts/renesas/salvator-common.dtsi b/arch/arm64/boot/dts/renesas/salvator-common.dtsi index d298f7c9ada1..7f91ff524109 100644 --- a/arch/arm64/boot/dts/renesas/salvator-common.dtsi +++ b/arch/arm64/boot/dts/renesas/salvator-common.dtsi @@ -474,6 +474,8 @@  &i2c_dvfs {  	status = "okay"; +	clock-frequency = <400000>; +  	pmic: pmic@30 {  		pinctrl-0 = <&irq0_pins>;  		pinctrl-names = "default"; diff --git a/arch/arm64/boot/dts/renesas/ulcb.dtsi b/arch/arm64/boot/dts/renesas/ulcb.dtsi index 7e6078508ba0..89daca7356df 100644 --- a/arch/arm64/boot/dts/renesas/ulcb.dtsi +++ b/arch/arm64/boot/dts/renesas/ulcb.dtsi @@ -18,6 +18,7 @@  	};  	chosen { +		bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";  		stdout-path = "serial0:115200n8";  	}; @@ -241,6 +242,8 @@  &i2c_dvfs {  	status = "okay"; +	clock-frequency = <400000>; +  	pmic: pmic@30 {  		pinctrl-0 = <&irq0_pins>;  		pinctrl-names = "default"; |