[PATCH v2 04/12] arm64: dts: fsd: Add CSI nodes
Inbaraj E
inbaraj.e at samsung.com
Thu Aug 14 07:09:35 PDT 2025
There is a csi dma and csis interface that bundles together to allow
csi2 capture.
Signed-off-by: Inbaraj E <inbaraj.e at samsung.com>
---
arch/arm64/boot/dts/tesla/fsd-evb.dts | 96 +++++
arch/arm64/boot/dts/tesla/fsd.dtsi | 552 ++++++++++++++++++++++++++
2 files changed, 648 insertions(+)
diff --git a/arch/arm64/boot/dts/tesla/fsd-evb.dts b/arch/arm64/boot/dts/tesla/fsd-evb.dts
index 9ff22e1c8723..dcc9a138cdb9 100644
--- a/arch/arm64/boot/dts/tesla/fsd-evb.dts
+++ b/arch/arm64/boot/dts/tesla/fsd-evb.dts
@@ -130,3 +130,99 @@ &serial_0 {
&ufs {
status = "okay";
};
+
+&mipicsis0 {
+ status = "okay";
+};
+
+&mipicsis1 {
+ status = "okay";
+};
+
+&mipicsis2 {
+ status = "okay";
+};
+
+&mipicsis3 {
+ status = "okay";
+};
+
+&mipicsis4 {
+ status = "okay";
+};
+
+&mipicsis5 {
+ status = "okay";
+};
+
+&mipicsis6 {
+ status = "okay";
+};
+
+&mipicsis7 {
+ status = "okay";
+};
+
+&mipicsis8 {
+ status = "okay";
+};
+
+&mipicsis9 {
+ status = "okay";
+};
+
+&mipicsis10 {
+ status = "okay";
+};
+
+&mipicsis11 {
+ status = "okay";
+};
+
+&csis0 {
+ status = "okay";
+};
+
+&csis1 {
+ status = "okay";
+};
+
+&csis2 {
+ status = "okay";
+};
+
+&csis3 {
+ status = "okay";
+};
+
+&csis4 {
+ status = "okay";
+};
+
+&csis5 {
+ status = "okay";
+};
+
+&csis6 {
+ status = "okay";
+};
+
+&csis7 {
+ status = "okay";
+};
+
+&csis8 {
+ status = "okay";
+};
+
+&csis9 {
+ status = "okay";
+};
+
+&csis10 {
+ status = "okay";
+};
+
+&csis11 {
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/tesla/fsd.dtsi b/arch/arm64/boot/dts/tesla/fsd.dtsi
index a5ebb3f9b18f..a83503e9c502 100644
--- a/arch/arm64/boot/dts/tesla/fsd.dtsi
+++ b/arch/arm64/boot/dts/tesla/fsd.dtsi
@@ -493,6 +493,558 @@ clock_mfc: clock-controller at 12810000 {
clock-names = "fin_pll";
};
+ mipicsis0: mipi-csis at 12640000 {
+ compatible = "tesla,fsd-mipi-csi2";
+ reg = <0x0 0x12640000 0x0 0x124>;
+ interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI0_0_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI0_0_IPCLKPORT_I_PCLK>;
+ clock-names = "aclk", "pclk";
+ samsung,syscon-csis = <&sysreg_cam 0x40c>;
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port at 0 {
+ reg = <0>;
+ };
+
+ port at 1 {
+ reg = <1>;
+
+ mipi_csis_0_out: endpoint {
+ remote-endpoint = <&csis_in_0>;
+ };
+ };
+ };
+ };
+
+ csis0: csis at 12641000 {
+ compatible = "tesla,fsd-csis-media";
+ reg = <0x0 0x12641000 0x0 0x44c>;
+ interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI0_0_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI0_0_IPCLKPORT_I_PCLK>,
+ <&clock_csi CAM_CSI_PLL>;
+ clock-names = "aclk", "pclk", "pll";
+ iommus = <&smmu_isp 0x0 0x0>;
+ status = "disabled";
+
+ port {
+ csis_in_0: endpoint {
+ remote-endpoint = <&mipi_csis_0_out>;
+ };
+ };
+ };
+
+ mipicsis1: mipi-csis at 12650000 {
+ compatible = "tesla,fsd-mipi-csi2";
+ reg = <0x0 0x12650000 0x0 0x124>;
+ interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI0_1_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI0_1_IPCLKPORT_I_PCLK>;
+ clock-names = "aclk", "pclk";
+ samsung,syscon-csis = <&sysreg_cam 0x40c>;
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port at 0 {
+ reg = <0>;
+ };
+
+ port at 1 {
+ reg = <1>;
+
+ mipi_csis_1_out: endpoint {
+ remote-endpoint = <&csis_in_1>;
+ };
+ };
+ };
+ };
+
+ csis1: csis at 12651000 {
+ compatible = "tesla,fsd-csis-media";
+ reg = <0x0 0x12651000 0x0 0x44c>;
+ interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI0_1_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI0_1_IPCLKPORT_I_PCLK>,
+ <&clock_csi CAM_CSI_PLL>;
+ clock-names = "aclk", "pclk", "pll";
+ iommus = <&smmu_isp 0x0 0x0>;
+ status = "disabled";
+
+ port {
+ csis_in_1: endpoint {
+ remote-endpoint = <&mipi_csis_1_out>;
+ };
+ };
+ };
+
+ mipicsis2: mipi-csis at 12660000 {
+ compatible = "tesla,fsd-mipi-csi2";
+ reg = <0x0 0x12660000 0x0 0x124>;
+ interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI0_2_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI0_2_IPCLKPORT_I_PCLK>;
+ clock-names = "aclk", "pclk";
+ samsung,syscon-csis = <&sysreg_cam 0x40c>;
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port at 0 {
+ reg = <0>;
+ };
+
+ port at 1 {
+ reg = <1>;
+
+ mipi_csis_2_out: endpoint {
+ remote-endpoint = <&csis_in_2>;
+ };
+ };
+ };
+ };
+
+ csis2: csis at 12661000 {
+ compatible = "tesla,fsd-csis-media";
+ reg = <0x0 0x12661000 0x0 0x44c>;
+ interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI0_2_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI0_2_IPCLKPORT_I_PCLK>,
+ <&clock_csi CAM_CSI_PLL>;
+ clock-names = "aclk", "pclk", "pll";
+ iommus = <&smmu_isp 0x0 0x0>;
+ status = "disabled";
+
+ port {
+ csis_in_2: endpoint {
+ remote-endpoint = <&mipi_csis_2_out>;
+ };
+ };
+ };
+
+ mipicsis3: mipi-csis at 12670000 {
+ compatible = "tesla,fsd-mipi-csi2";
+ reg = <0x0 0x12670000 0x0 0x124>;
+ interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI0_3_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI0_3_IPCLKPORT_I_PCLK>;
+ clock-names = "aclk", "pclk";
+ samsung,syscon-csis = <&sysreg_cam 0x40c>;
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port at 0 {
+ reg = <0>;
+ };
+
+ port at 1 {
+ reg = <1>;
+
+ mipi_csis_3_out: endpoint {
+ remote-endpoint = <&csis_in_3>;
+ };
+ };
+ };
+ };
+
+ csis3: csis at 12671000 {
+ compatible = "tesla,fsd-csis-media";
+ reg = <0x0 0x12671000 0x0 0x44c>;
+ interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI0_3_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI0_3_IPCLKPORT_I_PCLK>,
+ <&clock_csi CAM_CSI_PLL>;
+ clock-names = "aclk", "pclk", "pll";
+ iommus = <&smmu_isp 0x0 0x0>;
+ status = "disabled";
+
+ port {
+ csis_in_3: endpoint {
+ remote-endpoint = <&mipi_csis_3_out>;
+ };
+ };
+ };
+
+ mipicsis4: mipi-csis at 12680000 {
+ compatible = "tesla,fsd-mipi-csi2";
+ reg = <0x0 0x12680000 0x0 0x124>;
+ interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI1_0_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI1_0_IPCLKPORT_I_PCLK>;
+ clock-names = "aclk", "pclk";
+ samsung,syscon-csis = <&sysreg_cam 0x40c>;
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port at 0 {
+ reg = <0>;
+ };
+
+ port at 1 {
+ reg = <1>;
+
+ mipi_csis_4_out: endpoint {
+ remote-endpoint = <&csis_in_4>;
+ };
+ };
+ };
+ };
+
+ csis4: csis at 12681000 {
+ compatible = "tesla,fsd-csis-media";
+ reg = <0x0 0x12681000 0x0 0x44c>;
+ interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI1_0_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI1_0_IPCLKPORT_I_PCLK>,
+ <&clock_csi CAM_CSI_PLL>;
+ clock-names = "aclk", "pclk", "pll";
+ iommus = <&smmu_isp 0x0 0x0>;
+ status = "disabled";
+
+ port {
+ csis_in_4: endpoint {
+ remote-endpoint = <&mipi_csis_4_out>;
+ };
+ };
+ };
+
+ mipicsis5: mipi-csis at 12690000 {
+ compatible = "tesla,fsd-mipi-csi2";
+ reg = <0x0 0x12690000 0x0 0x124>;
+ interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI1_1_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI1_1_IPCLKPORT_I_PCLK>;
+ clock-names = "aclk", "pclk";
+ samsung,syscon-csis = <&sysreg_cam 0x40c>;
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port at 0 {
+ reg = <0>;
+ };
+
+ port at 1 {
+ reg = <1>;
+
+ mipi_csis_5_out: endpoint {
+ remote-endpoint = <&csis_in_5>;
+ };
+ };
+ };
+ };
+
+ csis5: csis at 12691000 {
+ compatible = "tesla,fsd-csis-media";
+ reg = <0x0 0x12691000 0x0 0x44c>;
+ interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI1_1_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI1_1_IPCLKPORT_I_PCLK>,
+ <&clock_csi CAM_CSI_PLL>;
+ clock-names = "aclk", "pclk", "pll";
+ iommus = <&smmu_isp 0x0 0x0>;
+ status = "disabled";
+
+ port {
+ csis_in_5: endpoint {
+ remote-endpoint = <&mipi_csis_5_out>;
+ };
+ };
+ };
+
+ mipicsis6: mipi-csis at 126a0000 {
+ compatible = "tesla,fsd-mipi-csi2";
+ reg = <0x0 0x126a0000 0x0 0x124>;
+ interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI1_2_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI1_2_IPCLKPORT_I_PCLK>;
+ clock-names = "aclk", "pclk";
+ samsung,syscon-csis = <&sysreg_cam 0x40c>;
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port at 0 {
+ reg = <0>;
+ };
+
+ port at 1 {
+ reg = <1>;
+
+ mipi_csis_6_out: endpoint {
+ remote-endpoint = <&csis_in_6>;
+ };
+ };
+ };
+ };
+
+ csis6: csis at 126a1000 {
+ compatible = "tesla,fsd-csis-media";
+ reg = <0x0 0x126a1000 0x0 0x44c>;
+ interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI1_2_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI1_2_IPCLKPORT_I_PCLK>,
+ <&clock_csi CAM_CSI_PLL>;
+ clock-names = "aclk", "pclk", "pll";
+ iommus = <&smmu_isp 0x0 0x0>;
+ status = "disabled";
+
+ port {
+ csis_in_6: endpoint {
+ remote-endpoint = <&mipi_csis_6_out>;
+ };
+ };
+ };
+
+ mipicsis7: mipi-csis at 126b0000 {
+ compatible = "tesla,fsd-mipi-csi2";
+ reg = <0x0 0x126b0000 0x0 0x124>;
+ interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI1_3_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI1_3_IPCLKPORT_I_PCLK>;
+ clock-names = "aclk", "pclk";
+ samsung,syscon-csis = <&sysreg_cam 0x40c>;
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port at 0 {
+ reg = <0>;
+ };
+
+ port at 1 {
+ reg = <1>;
+
+ mipi_csis_7_out: endpoint {
+ remote-endpoint = <&csis_in_7>;
+ };
+ };
+ };
+ };
+
+ csis7: csis at 126b1000 {
+ compatible = "tesla,fsd-csis-media";
+ reg = <0x0 0x126b1000 0x0 0x44c>;
+ interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI1_3_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI1_3_IPCLKPORT_I_PCLK>,
+ <&clock_csi CAM_CSI_PLL>;
+ clock-names = "aclk", "pclk", "pll";
+ iommus = <&smmu_isp 0x0 0x0>;
+ status = "disabled";
+
+ port {
+ csis_in_7: endpoint {
+ remote-endpoint = <&mipi_csis_7_out>;
+ };
+ };
+ };
+
+ mipicsis8: mipi-csis at 126c0000 {
+ compatible = "tesla,fsd-mipi-csi2";
+ reg = <0x0 0x126c0000 0x0 0x124>;
+ interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI2_0_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI2_0_IPCLKPORT_I_PCLK>;
+ clock-names = "aclk", "pclk";
+ samsung,syscon-csis = <&sysreg_cam 0x40c>;
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port at 0 {
+ reg = <0>;
+ };
+
+ port at 1 {
+ reg = <1>;
+
+ mipi_csis_8_out: endpoint {
+ remote-endpoint = <&csis_in_8>;
+ };
+ };
+ };
+ };
+
+ csis8: csis at 126c1000 {
+ compatible = "tesla,fsd-csis-media";
+ reg = <0x0 0x126c1000 0x0 0x44c>;
+ interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI2_0_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI2_0_IPCLKPORT_I_PCLK>,
+ <&clock_csi CAM_CSI_PLL>;
+ clock-names = "aclk", "pclk", "pll";
+ iommus = <&smmu_isp 0x0 0x0>;
+ status = "disabled";
+
+ port {
+ csis_in_8: endpoint {
+ remote-endpoint = <&mipi_csis_8_out>;
+ };
+ };
+ };
+
+ mipicsis9: mipi-csis at 126d0000 {
+ compatible = "tesla,fsd-mipi-csi2";
+ reg = <0x0 0x126d0000 0x0 0x124>;
+ interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI2_1_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI2_1_IPCLKPORT_I_PCLK>;
+ clock-names = "aclk", "pclk";
+ samsung,syscon-csis = <&sysreg_cam 0x40c>;
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port at 0 {
+ reg = <0>;
+ };
+
+ port at 1 {
+ reg = <1>;
+
+ mipi_csis_9_out: endpoint {
+ remote-endpoint = <&csis_in_9>;
+ };
+ };
+ };
+ };
+
+ csis9: csis at 126d1000 {
+ compatible = "tesla,fsd-csis-media";
+ reg = <0x0 0x126d1000 0x0 0x44c>;
+ interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI2_1_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI2_1_IPCLKPORT_I_PCLK>,
+ <&clock_csi CAM_CSI_PLL>;
+ clock-names = "aclk", "pclk", "pll";
+ iommus = <&smmu_isp 0x0 0x0>;
+ status = "disabled";
+
+ port {
+ csis_in_9: endpoint {
+ remote-endpoint = <&mipi_csis_9_out>;
+ };
+ };
+ };
+
+ mipicsis10: mipi-csis at 126e0000 {
+ compatible = "tesla,fsd-mipi-csi2";
+ reg = <0x0 0x126e0000 0x0 0x124>;
+ interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI2_2_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI2_2_IPCLKPORT_I_PCLK>;
+ clock-names = "aclk", "pclk";
+ samsung,syscon-csis = <&sysreg_cam 0x40c>;
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port at 0 {
+ reg = <0>;
+ };
+
+ port at 1 {
+ reg = <1>;
+
+ mipi_csis_10_out: endpoint {
+ remote-endpoint = <&csis_in_10>;
+ };
+ };
+ };
+ };
+
+ csis10: csis at 126e1000 {
+ compatible = "tesla,fsd-csis-media";
+ reg = <0x0 0x126e1000 0x0 0x44c>;
+ interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI2_2_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI2_2_IPCLKPORT_I_PCLK>,
+ <&clock_csi CAM_CSI_PLL>;
+ clock-names = "aclk", "pclk", "pll";
+ iommus = <&smmu_isp 0x0 0x0>;
+ status = "disabled";
+
+ port {
+ csis_in_10: endpoint {
+ remote-endpoint = <&mipi_csis_10_out>;
+ };
+ };
+ };
+
+ mipicsis11: mipi-csis at 126f0000 {
+ compatible = "tesla,fsd-mipi-csi2";
+ reg = <0x0 0x126f0000 0x0 0x124>;
+ interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI2_3_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI2_3_IPCLKPORT_I_PCLK>;
+ clock-names = "aclk", "pclk";
+ samsung,syscon-csis = <&sysreg_cam 0x40c>;
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port at 0 {
+ reg = <0>;
+ };
+
+ port at 1 {
+ reg = <1>;
+
+ mipi_csis_11_out: endpoint {
+ remote-endpoint = <&csis_in_11>;
+ };
+ };
+ };
+ };
+
+ csis11: csis at 126f1000 {
+ compatible = "tesla,fsd-csis-media";
+ reg = <0x0 0x126f1000 0x0 0x44c>;
+ interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clock_csi CAM_CSI2_3_IPCLKPORT_I_ACLK>,
+ <&clock_csi CAM_CSI2_3_IPCLKPORT_I_PCLK>,
+ <&clock_csi CAM_CSI_PLL>;
+ clock-names = "aclk", "pclk", "pll";
+ iommus = <&smmu_isp 0x0 0x0>;
+ status = "disabled";
+
+ port {
+ csis_in_11: endpoint {
+ remote-endpoint = <&mipi_csis_11_out>;
+ };
+ };
+ };
+
clock_peric: clock-controller at 14010000 {
compatible = "tesla,fsd-clock-peric";
reg = <0x0 0x14010000 0x0 0x3000>;
--
2.49.0
More information about the linux-arm-kernel
mailing list