Commit 2bb78d9f authored by Niklas Söderlund's avatar Niklas Söderlund Committed by Geert Uytterhoeven
Browse files

arm64: dts: renesas: r8a779h0: Add video capture nodes



Add the VIN, CSI-2 and CSISP related nodes found on R-Car V4M.

One thing to note is that both CSISP0 and CSISP1 are in the same power
domain, this is different from other Gen4 SoCs (R-Car V4H).  The reason
for this is that R-Car V4M only has one ISP core which is connected to
CSISP0 while R-Car V4H has two ISP cores, one connected to each CSISP.

Signed-off-by: default avatarNiklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Link: https://lore.kernel.org/r/20240527134129.1695450-2-niklas.soderlund+renesas@ragnatech.se


Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
parent f6e32aa9
Loading
Loading
Loading
Loading
+666 −0
Original line number Diff line number Diff line
@@ -939,6 +939,454 @@ msiof5: spi@e6c28000 {
			status = "disabled";
		};

		vin00: video@e6ef0000 {
			compatible = "renesas,vin-r8a779h0";
			reg = <0 0xe6ef0000 0 0x1000>;
			interrupts = <GIC_SPI 529 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&cpg CPG_MOD 730>;
			power-domains = <&sysc R8A779H0_PD_C4>;
			resets = <&cpg 730>;
			renesas,id = <0>;
			status = "disabled";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@2 {
					#address-cells = <1>;
					#size-cells = <0>;

					reg = <2>;

					vin00isp0: endpoint@0 {
						reg = <0>;
						remote-endpoint = <&isp0vin00>;
					};
				};
			};
		};

		vin01: video@e6ef1000 {
			compatible = "renesas,vin-r8a779h0";
			reg = <0 0xe6ef1000 0 0x1000>;
			interrupts = <GIC_SPI 530 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&cpg CPG_MOD 731>;
			power-domains = <&sysc R8A779H0_PD_C4>;
			resets = <&cpg 731>;
			renesas,id = <1>;
			status = "disabled";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@2 {
					#address-cells = <1>;
					#size-cells = <0>;

					reg = <2>;

					vin01isp0: endpoint@0 {
						reg = <0>;
						remote-endpoint = <&isp0vin01>;
					};
				};
			};
		};

		vin02: video@e6ef2000 {
			compatible = "renesas,vin-r8a779h0";
			reg = <0 0xe6ef2000 0 0x1000>;
			interrupts = <GIC_SPI 531 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&cpg CPG_MOD 800>;
			power-domains = <&sysc R8A779H0_PD_C4>;
			resets = <&cpg 800>;
			renesas,id = <2>;
			status = "disabled";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@2 {
					#address-cells = <1>;
					#size-cells = <0>;

					reg = <2>;

					vin02isp0: endpoint@0 {
						reg = <0>;
						remote-endpoint = <&isp0vin02>;
					};
				};
			};
		};

		vin03: video@e6ef3000 {
			compatible = "renesas,vin-r8a779h0";
			reg = <0 0xe6ef3000 0 0x1000>;
			interrupts = <GIC_SPI 532 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&cpg CPG_MOD 801>;
			power-domains = <&sysc R8A779H0_PD_C4>;
			resets = <&cpg 801>;
			renesas,id = <3>;
			status = "disabled";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@2 {
					#address-cells = <1>;
					#size-cells = <0>;

					reg = <2>;

					vin03isp0: endpoint@0 {
						reg = <0>;
						remote-endpoint = <&isp0vin03>;
					};
				};
			};
		};

		vin04: video@e6ef4000 {
			compatible = "renesas,vin-r8a779h0";
			reg = <0 0xe6ef4000 0 0x1000>;
			interrupts = <GIC_SPI 533 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&cpg CPG_MOD 802>;
			power-domains = <&sysc R8A779H0_PD_C4>;
			resets = <&cpg 802>;
			renesas,id = <4>;
			status = "disabled";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@2 {
					#address-cells = <1>;
					#size-cells = <0>;

					reg = <2>;

					vin04isp0: endpoint@0 {
						reg = <0>;
						remote-endpoint = <&isp0vin04>;
					};
				};
			};
		};

		vin05: video@e6ef5000 {
			compatible = "renesas,vin-r8a779h0";
			reg = <0 0xe6ef5000 0 0x1000>;
			interrupts = <GIC_SPI 534 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&cpg CPG_MOD 803>;
			power-domains = <&sysc R8A779H0_PD_C4>;
			resets = <&cpg 803>;
			renesas,id = <5>;
			status = "disabled";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@2 {
					#address-cells = <1>;
					#size-cells = <0>;

					reg = <2>;

					vin05isp0: endpoint@0 {
						reg = <0>;
						remote-endpoint = <&isp0vin05>;
					};
				};
			};
		};

		vin06: video@e6ef6000 {
			compatible = "renesas,vin-r8a779h0";
			reg = <0 0xe6ef6000 0 0x1000>;
			interrupts = <GIC_SPI 535 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&cpg CPG_MOD 804>;
			power-domains = <&sysc R8A779H0_PD_C4>;
			resets = <&cpg 804>;
			renesas,id = <6>;
			status = "disabled";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@2 {
					#address-cells = <1>;
					#size-cells = <0>;

					reg = <2>;

					vin06isp0: endpoint@0 {
						reg = <0>;
						remote-endpoint = <&isp0vin06>;
					};
				};
			};
		};

		vin07: video@e6ef7000 {
			compatible = "renesas,vin-r8a779h0";
			reg = <0 0xe6ef7000 0 0x1000>;
			interrupts = <GIC_SPI 536 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&cpg CPG_MOD 805>;
			power-domains = <&sysc R8A779H0_PD_C4>;
			resets = <&cpg 805>;
			renesas,id = <7>;
			status = "disabled";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@2 {
					#address-cells = <1>;
					#size-cells = <0>;

					reg = <2>;

					vin07isp0: endpoint@0 {
						reg = <0>;
						remote-endpoint = <&isp0vin07>;
					};
				};
			};
		};

		vin08: video@e6ef8000 {
			compatible = "renesas,vin-r8a779h0";
			reg = <0 0xe6ef8000 0 0x1000>;
			interrupts = <GIC_SPI 537 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&cpg CPG_MOD 806>;
			power-domains = <&sysc R8A779H0_PD_C4>;
			resets = <&cpg 806>;
			renesas,id = <8>;
			status = "disabled";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@2 {
					#address-cells = <1>;
					#size-cells = <0>;

					reg = <2>;

					vin08isp1: endpoint@1 {
						reg = <1>;
						remote-endpoint = <&isp1vin08>;
					};
				};
			};
		};

		vin09: video@e6ef9000 {
			compatible = "renesas,vin-r8a779h0";
			reg = <0 0xe6ef9000 0 0x1000>;
			interrupts = <GIC_SPI 538 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&cpg CPG_MOD 807>;
			power-domains = <&sysc R8A779H0_PD_C4>;
			resets = <&cpg 807>;
			renesas,id = <9>;
			status = "disabled";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@2 {
					#address-cells = <1>;
					#size-cells = <0>;

					reg = <2>;

					vin09isp1: endpoint@1 {
						reg = <1>;
						remote-endpoint = <&isp1vin09>;
					};
				};
			};
		};

		vin10: video@e6efa000 {
			compatible = "renesas,vin-r8a779h0";
			reg = <0 0xe6efa000 0 0x1000>;
			interrupts = <GIC_SPI 539 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&cpg CPG_MOD 808>;
			power-domains = <&sysc R8A779H0_PD_C4>;
			resets = <&cpg 808>;
			renesas,id = <10>;
			status = "disabled";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@2 {
					#address-cells = <1>;
					#size-cells = <0>;

					reg = <2>;

					vin10isp1: endpoint@1 {
						reg = <1>;
						remote-endpoint = <&isp1vin10>;
					};
				};
			};
		};

		vin11: video@e6efb000 {
			compatible = "renesas,vin-r8a779h0";
			reg = <0 0xe6efb000 0 0x1000>;
			interrupts = <GIC_SPI 540 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&cpg CPG_MOD 809>;
			power-domains = <&sysc R8A779H0_PD_C4>;
			resets = <&cpg 809>;
			renesas,id = <11>;
			status = "disabled";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@2 {
					#address-cells = <1>;
					#size-cells = <0>;

					reg = <2>;

					vin11isp1: endpoint@1 {
						reg = <1>;
						remote-endpoint = <&isp1vin11>;
					};
				};
			};
		};

		vin12: video@e6efc000 {
			compatible = "renesas,vin-r8a779h0";
			reg = <0 0xe6efc000 0 0x1000>;
			interrupts = <GIC_SPI 541 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&cpg CPG_MOD 810>;
			power-domains = <&sysc R8A779H0_PD_C4>;
			resets = <&cpg 810>;
			renesas,id = <12>;
			status = "disabled";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@2 {
					#address-cells = <1>;
					#size-cells = <0>;

					reg = <2>;

					vin12isp1: endpoint@1 {
						reg = <1>;
						remote-endpoint = <&isp1vin12>;
					};
				};
			};
		};

		vin13: video@e6efd000 {
			compatible = "renesas,vin-r8a779h0";
			reg = <0 0xe6efd000 0 0x1000>;
			interrupts = <GIC_SPI 542 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&cpg CPG_MOD 811>;
			power-domains = <&sysc R8A779H0_PD_C4>;
			resets = <&cpg 811>;
			renesas,id = <13>;
			status = "disabled";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@2 {
					#address-cells = <1>;
					#size-cells = <0>;

					reg = <2>;

					vin13isp1: endpoint@1 {
						reg = <1>;
						remote-endpoint = <&isp1vin13>;
					};
				};
			};
		};

		vin14: video@e6efe000 {
			compatible = "renesas,vin-r8a779h0";
			reg = <0 0xe6efe000 0 0x1000>;
			interrupts = <GIC_SPI 543 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&cpg CPG_MOD 812>;
			power-domains = <&sysc R8A779H0_PD_C4>;
			resets = <&cpg 812>;
			renesas,id = <14>;
			status = "disabled";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@2 {
					#address-cells = <1>;
					#size-cells = <0>;

					reg = <2>;

					vin14isp1: endpoint@1 {
						reg = <1>;
						remote-endpoint = <&isp1vin14>;
					};
				};
			};
		};

		vin15: video@e6eff000 {
			compatible = "renesas,vin-r8a779h0";
			reg = <0 0xe6eff000 0 0x1000>;
			interrupts = <GIC_SPI 544 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&cpg CPG_MOD 813>;
			power-domains = <&sysc R8A779H0_PD_C4>;
			resets = <&cpg 813>;
			renesas,id = <15>;
			status = "disabled";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@2 {
					#address-cells = <1>;
					#size-cells = <0>;

					reg = <2>;

					vin15isp1: endpoint@1 {
						reg = <1>;
						remote-endpoint = <&isp1vin15>;
					};
				};
			};
		};

		dmac1: dma-controller@e7350000 {
			compatible = "renesas,dmac-r8a779h0",
				     "renesas,rcar-gen4-dmac";
@@ -1152,6 +1600,224 @@ gic: interrupt-controller@f1000000 {
			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
		};

		csi40: csi2@fe500000 {
			compatible = "renesas,r8a779h0-csi2";
			reg = <0 0xfe500000 0 0x40000>;
			interrupts = <GIC_SPI 499 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&cpg CPG_MOD 331>;
			power-domains = <&sysc R8A779H0_PD_C4>;
			resets = <&cpg 331>;
			status = "disabled";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@0 {
					reg = <0>;
				};

				port@1 {
					reg = <1>;
					csi40isp0: endpoint {
						remote-endpoint = <&isp0csi40>;
					};
				};
			};
		};

		csi41: csi2@fe540000 {
			compatible = "renesas,r8a779h0-csi2";
			reg = <0 0xfe540000 0 0x40000>;
			interrupts = <GIC_SPI 500 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&cpg CPG_MOD 400>;
			power-domains = <&sysc R8A779H0_PD_C4>;
			resets = <&cpg 400>;
			status = "disabled";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@0 {
					reg = <0>;
				};

				port@1 {
					reg = <1>;
					csi41isp1: endpoint {
						remote-endpoint = <&isp1csi41>;
					};
				};
			};
		};

		isp0: isp@fed00000 {
			compatible = "renesas,r8a779h0-isp";
			reg = <0 0xfed00000 0 0x10000>;
			interrupts = <GIC_SPI 473 IRQ_TYPE_LEVEL_LOW>;
			clocks = <&cpg CPG_MOD 612>;
			power-domains = <&sysc R8A779H0_PD_A3ISP0>;
			resets = <&cpg 612>;
			status = "disabled";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@0 {
					#address-cells = <1>;
					#size-cells = <0>;

					reg = <0>;

					isp0csi40: endpoint@0 {
						reg = <0>;
						remote-endpoint = <&csi40isp0>;
					};
				};

				port@1 {
					reg = <1>;
					isp0vin00: endpoint {
						remote-endpoint = <&vin00isp0>;
					};
				};

				port@2 {
					reg = <2>;
					isp0vin01: endpoint {
						remote-endpoint = <&vin01isp0>;
					};
				};

				port@3 {
					reg = <3>;
					isp0vin02: endpoint {
						remote-endpoint = <&vin02isp0>;
					};
				};

				port@4 {
					reg = <4>;
					isp0vin03: endpoint {
						remote-endpoint = <&vin03isp0>;
					};
				};

				port@5 {
					reg = <5>;
					isp0vin04: endpoint {
						remote-endpoint = <&vin04isp0>;
					};
				};

				port@6 {
					reg = <6>;
					isp0vin05: endpoint {
						remote-endpoint = <&vin05isp0>;
					};
				};

				port@7 {
					reg = <7>;
					isp0vin06: endpoint {
						remote-endpoint = <&vin06isp0>;
					};
				};

				port@8 {
					reg = <8>;
					isp0vin07: endpoint {
						remote-endpoint = <&vin07isp0>;
					};
				};
			};
		};

		isp1: isp@fed20000 {
			compatible = "renesas,r8a779h0-isp";
			reg = <0 0xfed20000 0 0x10000>;
			interrupts = <GIC_SPI 474 IRQ_TYPE_LEVEL_LOW>;
			clocks = <&cpg CPG_MOD 613>;
			power-domains = <&sysc R8A779H0_PD_A3ISP0>;
			resets = <&cpg 613>;
			status = "disabled";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@0 {
					#address-cells = <1>;
					#size-cells = <0>;

					reg = <0>;

					isp1csi41: endpoint@1 {
						reg = <1>;
						remote-endpoint = <&csi41isp1>;
					};
				};

				port@1 {
					reg = <1>;
					isp1vin08: endpoint {
						remote-endpoint = <&vin08isp1>;
					};
				};

				port@2 {
					reg = <2>;
					isp1vin09: endpoint {
						remote-endpoint = <&vin09isp1>;
					};
				};

				port@3 {
					reg = <3>;
					isp1vin10: endpoint {
						remote-endpoint = <&vin10isp1>;
					};
				};

				port@4 {
					reg = <4>;
					isp1vin11: endpoint {
						remote-endpoint = <&vin11isp1>;
					};
				};

				port@5 {
					reg = <5>;
					isp1vin12: endpoint {
						remote-endpoint = <&vin12isp1>;
					};
				};

				port@6 {
					reg = <6>;
					isp1vin13: endpoint {
						remote-endpoint = <&vin13isp1>;
					};
				};

				port@7 {
					reg = <7>;
					isp1vin14: endpoint {
						remote-endpoint = <&vin14isp1>;
					};
				};

				port@8 {
					reg = <8>;
					isp1vin15: endpoint {
						remote-endpoint = <&vin15isp1>;
					};
				};
			};
		};

		prr: chipid@fff00044 {
			compatible = "renesas,prr";
			reg = <0 0xfff00044 0 4>;