* [PATCH 1/8] arm64: defconfig: Enable AM62 CSI2RX
2023-11-15 9:51 [PATCH 0/8] arm64: dts: ti: Enable CSI cameras for AM62 family Jai Luthra
@ 2023-11-15 9:51 ` Jai Luthra
2023-11-15 9:51 ` [PATCH 2/8] arm64: dts: ti: Enable CSI-RX on AM62 Jai Luthra
` (7 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Jai Luthra @ 2023-11-15 9:51 UTC (permalink / raw)
To: Catalin Marinas, Will Deacon, Nishanth Menon, Vignesh Raghavendra,
Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, linux-kernel, devicetree, Aradhya Bhatia,
Devarsh Thakkar, Vaishnav Achath, Julien Massot, Martyn Welch,
Jai Luthra
AM62 and other K3 based SoCs use Cadence DPHY and CSI-RX bridge drivers,
along with a DMA wrapper CSI IP for the camera pipeline.
Signed-off-by: Jai Luthra <j-luthra@ti.com>
---
arch/arm64/configs/defconfig | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index b60aa1f89343..aa2df39d072e 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -783,6 +783,7 @@ CONFIG_USB_VIDEO_CLASS=m
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_SDR_PLATFORM_DRIVERS=y
CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_VIDEO_CADENCE_CSI2RX=m
CONFIG_VIDEO_MEDIATEK_JPEG=m
CONFIG_VIDEO_MEDIATEK_VCODEC=m
CONFIG_VIDEO_IMX7_CSI=m
@@ -804,6 +805,7 @@ CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC=m
CONFIG_VIDEO_SAMSUNG_S5P_JPEG=m
CONFIG_VIDEO_SAMSUNG_S5P_MFC=m
CONFIG_VIDEO_SUN6I_CSI=m
+CONFIG_VIDEO_TI_J721E_CSI2RX=m
CONFIG_VIDEO_HANTRO=m
CONFIG_VIDEO_IMX219=m
CONFIG_VIDEO_IMX412=m
@@ -1421,6 +1423,7 @@ CONFIG_PHY_XGENE=y
CONFIG_PHY_CAN_TRANSCEIVER=m
CONFIG_PHY_SUN4I_USB=y
CONFIG_PHY_CADENCE_TORRENT=m
+CONFIG_PHY_CADENCE_DPHY_RX=m
CONFIG_PHY_CADENCE_SIERRA=m
CONFIG_PHY_MIXEL_MIPI_DPHY=m
CONFIG_PHY_FSL_IMX8M_PCIE=y
--
2.42.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/8] arm64: dts: ti: Enable CSI-RX on AM62
2023-11-15 9:51 [PATCH 0/8] arm64: dts: ti: Enable CSI cameras for AM62 family Jai Luthra
2023-11-15 9:51 ` [PATCH 1/8] arm64: defconfig: Enable AM62 CSI2RX Jai Luthra
@ 2023-11-15 9:51 ` Jai Luthra
2023-11-15 9:51 ` [PATCH 3/8] arm64: dts: ti: Enable CSI-RX on AM62A Jai Luthra
` (6 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Jai Luthra @ 2023-11-15 9:51 UTC (permalink / raw)
To: Catalin Marinas, Will Deacon, Nishanth Menon, Vignesh Raghavendra,
Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, linux-kernel, devicetree, Aradhya Bhatia,
Devarsh Thakkar, Vaishnav Achath, Julien Massot, Martyn Welch,
Jai Luthra
The CSI2RX subsystem can be used to capture video frames from CSI-2
cameras. Add nodes for the CSI core, SHIM layer, and the DPHY.
Signed-off-by: Jai Luthra <j-luthra@ti.com>
---
arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 62 ++++++++++++++++++++++++++++++++
1 file changed, 62 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
index e5c64c86d1d5..c0a95f6aff5e 100644
--- a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
@@ -965,4 +965,66 @@ mcasp2: audio-controller@2b20000 {
power-domains = <&k3_pds 192 TI_SCI_PD_EXCLUSIVE>;
status = "disabled";
};
+
+ ti_csi2rx0: ticsi2rx@30102000 {
+ compatible = "ti,j721e-csi2rx-shim";
+ dmas = <&main_bcdma 0 0x4700 0>;
+ dma-names = "rx0";
+ reg = <0x00 0x30102000 0x00 0x1000>;
+ power-domains = <&k3_pds 182 TI_SCI_PD_EXCLUSIVE>;
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+ status = "disabled";
+
+ cdns_csi2rx0: csi-bridge@30101000 {
+ compatible = "ti,j721e-csi2rx", "cdns,csi2rx";
+ reg = <0x00 0x30101000 0x00 0x1000>;
+ clocks = <&k3_clks 182 0>, <&k3_clks 182 3>, <&k3_clks 182 0>,
+ <&k3_clks 182 0>, <&k3_clks 182 4>, <&k3_clks 182 4>;
+ clock-names = "sys_clk", "p_clk", "pixel_if0_clk",
+ "pixel_if1_clk", "pixel_if2_clk", "pixel_if3_clk";
+ phys = <&dphy0>;
+ phy-names = "dphy";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ csi0_port0: port@0 {
+ reg = <0>;
+ status = "disabled";
+ };
+
+ csi0_port1: port@1 {
+ reg = <1>;
+ status = "disabled";
+ };
+
+ csi0_port2: port@2 {
+ reg = <2>;
+ status = "disabled";
+ };
+
+ csi0_port3: port@3 {
+ reg = <3>;
+ status = "disabled";
+ };
+
+ csi0_port4: port@4 {
+ reg = <4>;
+ status = "disabled";
+ };
+ };
+ };
+ };
+
+ dphy0: phy@30110000 {
+ compatible = "cdns,dphy-rx";
+ reg = <0x00 0x30110000 0x00 0x1100>;
+ #phy-cells = <0>;
+ power-domains = <&k3_pds 185 TI_SCI_PD_EXCLUSIVE>;
+ status = "disabled";
+ };
+
};
--
2.42.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 3/8] arm64: dts: ti: Enable CSI-RX on AM62A
2023-11-15 9:51 [PATCH 0/8] arm64: dts: ti: Enable CSI cameras for AM62 family Jai Luthra
2023-11-15 9:51 ` [PATCH 1/8] arm64: defconfig: Enable AM62 CSI2RX Jai Luthra
2023-11-15 9:51 ` [PATCH 2/8] arm64: dts: ti: Enable CSI-RX on AM62 Jai Luthra
@ 2023-11-15 9:51 ` Jai Luthra
2023-11-15 9:51 ` [PATCH 4/8] arm64: dts: ti: k3-am625-beagleplay: Add overlays for OV5640 Jai Luthra
` (5 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Jai Luthra @ 2023-11-15 9:51 UTC (permalink / raw)
To: Catalin Marinas, Will Deacon, Nishanth Menon, Vignesh Raghavendra,
Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, linux-kernel, devicetree, Aradhya Bhatia,
Devarsh Thakkar, Vaishnav Achath, Julien Massot, Martyn Welch,
Jai Luthra
Add nodes for Cadence DPHY, CSI2RX and TI's pixel-grabbing wrapper.
AM62A uses a dedicated BCDMA instance for CSI-RX traffic, so enable that
as well.
Signed-off-by: Jai Luthra <j-luthra@ti.com>
---
arch/arm64/boot/dts/ti/k3-am62a-main.dtsi | 99 +++++++++++++++++++++++++++++++
1 file changed, 99 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am62a-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62a-main.dtsi
index 4ae7fdc5221b..ea70d78eb132 100644
--- a/arch/arm64/boot/dts/ti/k3-am62a-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62a-main.dtsi
@@ -144,6 +144,44 @@ main_pktdma: dma-controller@485c0000 {
};
};
+ dmss_csi: bus@4e000000 {
+ compatible = "simple-bus";
+ #address-cells = <2>;
+ #size-cells = <2>;
+ dma-ranges;
+ ranges = <0x00 0x4e000000 0x00 0x4e000000 0x00 0x300000>;
+
+ ti,sci-dev-id = <198>;
+
+ inta_main_dmss_csi: interrupt-controller@4e0a0000 {
+ compatible = "ti,sci-inta";
+ reg = <0x00 0x4e0a0000 0x00 0x8000>;
+ #interrupt-cells = <0>;
+ interrupt-controller;
+ interrupt-parent = <&gic500>;
+ msi-controller;
+ ti,sci = <&dmsc>;
+ ti,sci-dev-id = <200>;
+ ti,interrupt-ranges = <0 237 8>;
+ ti,unmapped-event-sources = <&main_bcdma_csi>;
+ power-domains = <&k3_pds 182 TI_SCI_PD_EXCLUSIVE>;
+ };
+
+ main_bcdma_csi: dma-controller@4e230000 {
+ compatible = "ti,am62a-dmss-bcdma-csirx";
+ reg = <0x00 0x4e230000 0x00 0x100>,
+ <0x00 0x4e180000 0x00 0x8000>,
+ <0x00 0x4e100000 0x00 0x10000>;
+ reg-names = "gcfg", "rchanrt", "ringrt";
+ msi-parent = <&inta_main_dmss_csi>;
+ #dma-cells = <3>;
+ ti,sci = <&dmsc>;
+ ti,sci-dev-id = <199>;
+ ti,sci-rm-range-rchan = <0x21>;
+ power-domains = <&k3_pds 182 TI_SCI_PD_EXCLUSIVE>;
+ };
+ };
+
dmsc: system-controller@44043000 {
compatible = "ti,k2g-sci";
reg = <0x00 0x44043000 0x00 0xfe0>;
@@ -876,4 +914,65 @@ mcasp2: audio-controller@2b20000 {
power-domains = <&k3_pds 192 TI_SCI_PD_EXCLUSIVE>;
status = "disabled";
};
+
+ ti_csi2rx0: ticsi2rx@30102000 {
+ compatible = "ti,j721e-csi2rx-shim";
+ dmas = <&main_bcdma_csi 0 0x5000 0>;
+ dma-names = "rx0";
+ reg = <0x00 0x30102000 0x00 0x1000>;
+ power-domains = <&k3_pds 182 TI_SCI_PD_EXCLUSIVE>;
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+ status = "disabled";
+
+ cdns_csi2rx0: csi-bridge@30101000 {
+ compatible = "ti,j721e-csi2rx", "cdns,csi2rx";
+ reg = <0x00 0x30101000 0x00 0x1000>;
+ clocks = <&k3_clks 182 0>, <&k3_clks 182 3>, <&k3_clks 182 0>,
+ <&k3_clks 182 0>, <&k3_clks 182 4>, <&k3_clks 182 4>;
+ clock-names = "sys_clk", "p_clk", "pixel_if0_clk",
+ "pixel_if1_clk", "pixel_if2_clk", "pixel_if3_clk";
+ phys = <&dphy0>;
+ phy-names = "dphy";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ csi0_port0: port@0 {
+ reg = <0>;
+ status = "disabled";
+ };
+
+ csi0_port1: port@1 {
+ reg = <1>;
+ status = "disabled";
+ };
+
+ csi0_port2: port@2 {
+ reg = <2>;
+ status = "disabled";
+ };
+
+ csi0_port3: port@3 {
+ reg = <3>;
+ status = "disabled";
+ };
+
+ csi0_port4: port@4 {
+ reg = <4>;
+ status = "disabled";
+ };
+ };
+ };
+ };
+
+ dphy0: phy@30110000 {
+ compatible = "cdns,dphy-rx";
+ reg = <0x00 0x30110000 0x00 0x1100>;
+ #phy-cells = <0>;
+ power-domains = <&k3_pds 185 TI_SCI_PD_EXCLUSIVE>;
+ status = "disabled";
+ };
};
--
2.42.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 4/8] arm64: dts: ti: k3-am625-beagleplay: Add overlays for OV5640
2023-11-15 9:51 [PATCH 0/8] arm64: dts: ti: Enable CSI cameras for AM62 family Jai Luthra
` (2 preceding siblings ...)
2023-11-15 9:51 ` [PATCH 3/8] arm64: dts: ti: Enable CSI-RX on AM62A Jai Luthra
@ 2023-11-15 9:51 ` Jai Luthra
2023-11-16 14:26 ` Andrew Davis
2023-11-15 9:51 ` [PATCH 5/8] arm64: dts: ti: k3-am62x-sk: Enable camera peripherals Jai Luthra
` (4 subsequent siblings)
8 siblings, 1 reply; 12+ messages in thread
From: Jai Luthra @ 2023-11-15 9:51 UTC (permalink / raw)
To: Catalin Marinas, Will Deacon, Nishanth Menon, Vignesh Raghavendra,
Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, linux-kernel, devicetree, Aradhya Bhatia,
Devarsh Thakkar, Vaishnav Achath, Julien Massot, Martyn Welch,
Jai Luthra
Three different OV5640 modules are supported using the FFC connector on
BeaglePlay:
- Digilent PCam 5C
- ALINX AN5641
- TEVI-OV5640-*-RPI
The Digilent and ALINX modules supply a 12Mhz XCLK to the sensor, while
the TEVI module supplies a 24Mhz XCLK, thus requiring a separate
overlay.
Signed-off-by: Jai Luthra <j-luthra@ti.com>
---
arch/arm64/boot/dts/ti/Makefile | 7 ++
.../dts/ti/k3-am625-beagleplay-csi2-ov5640.dtso | 77 ++++++++++++++++++++++
.../ti/k3-am625-beagleplay-csi2-tevi-ov5640.dtso | 77 ++++++++++++++++++++++
3 files changed, 161 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile
index 77a347f9f47d..e49e32414560 100644
--- a/arch/arm64/boot/dts/ti/Makefile
+++ b/arch/arm64/boot/dts/ti/Makefile
@@ -9,9 +9,15 @@
# alphabetically.
# Boards with AM62x SoC
+k3-am625-beagleplay-csi2-ov5640-dtbs := k3-am625-beagleplay.dtb \
+ k3-am625-beagleplay-csi2-ov5640.dtbo
+k3-am625-beagleplay-csi2-tevi-ov5640-dtbs := k3-am625-beagleplay.dtb \
+ k3-am625-beagleplay-csi2-tevi-ov5640.dtbo
k3-am625-sk-hdmi-audio-dtbs := k3-am625-sk.dtb k3-am62x-sk-hdmi-audio.dtbo
k3-am62-lp-sk-hdmi-audio-dtbs := k3-am62-lp-sk.dtb k3-am62x-sk-hdmi-audio.dtbo
dtb-$(CONFIG_ARCH_K3) += k3-am625-beagleplay.dtb
+dtb-$(CONFIG_ARCH_K3) += k3-am625-beagleplay-csi2-ov5640.dtb
+dtb-$(CONFIG_ARCH_K3) += k3-am625-beagleplay-csi2-tevi-ov5640.dtb
dtb-$(CONFIG_ARCH_K3) += k3-am625-phyboard-lyra-rdk.dtb
dtb-$(CONFIG_ARCH_K3) += k3-am625-sk.dtb
dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-nonwifi-dahlia.dtb
@@ -81,6 +87,7 @@ dtb-$(CONFIG_ARCH_K3) += k3-am69-sk.dtb
dtb-$(CONFIG_ARCH_K3) += k3-j784s4-evm.dtb
# Enable support for device-tree overlays
+DTC_FLAGS_k3-am625-beagleplay += -@
DTC_FLAGS_k3-am625-sk += -@
DTC_FLAGS_k3-am62-lp-sk += -@
DTC_FLAGS_k3-am6548-iot2050-advanced-m2 += -@
diff --git a/arch/arm64/boot/dts/ti/k3-am625-beagleplay-csi2-ov5640.dtso b/arch/arm64/boot/dts/ti/k3-am625-beagleplay-csi2-ov5640.dtso
new file mode 100644
index 000000000000..5e80ca7033ba
--- /dev/null
+++ b/arch/arm64/boot/dts/ti/k3-am625-beagleplay-csi2-ov5640.dtso
@@ -0,0 +1,77 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * ALINX AN5641 & Digilent PCam 5C - OV5640 camera module
+ * Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+&{/} {
+ clk_ov5640_fixed: ov5640-xclk {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <12000000>;
+ };
+};
+
+&main_gpio0 {
+ p11-hog {
+ /* P11 - CSI2_CAMERA_GPIO1 */
+ gpio-hog;
+ gpios = <11 GPIO_ACTIVE_HIGH>;
+ output-high;
+ line-name = "CSI2_CAMERA_GPIO1";
+ };
+};
+
+&wkup_i2c0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+
+ ov5640: camera@3c {
+ compatible = "ovti,ov5640";
+ reg = <0x3c>;
+
+ clocks = <&clk_ov5640_fixed>;
+ clock-names = "xclk";
+
+ port {
+ csi2_cam0: endpoint {
+ remote-endpoint = <&csi2rx0_in_sensor>;
+ clock-lanes = <0>;
+ data-lanes = <1 2>;
+ };
+ };
+ };
+};
+
+&cdns_csi2rx0 {
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ csi0_port0: port@0 {
+ reg = <0>;
+ status = "okay";
+
+ csi2rx0_in_sensor: endpoint {
+ remote-endpoint = <&csi2_cam0>;
+ bus-type = <4>; /* CSI2 DPHY. */
+ clock-lanes = <0>;
+ data-lanes = <1 2>;
+ };
+ };
+ };
+};
+
+&dphy0 {
+ status = "okay";
+};
+
+&ti_csi2rx0 {
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/ti/k3-am625-beagleplay-csi2-tevi-ov5640.dtso b/arch/arm64/boot/dts/ti/k3-am625-beagleplay-csi2-tevi-ov5640.dtso
new file mode 100644
index 000000000000..5e1cbbc27c8f
--- /dev/null
+++ b/arch/arm64/boot/dts/ti/k3-am625-beagleplay-csi2-tevi-ov5640.dtso
@@ -0,0 +1,77 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Technexion TEVI-OV5640-*-RPI - OV5640 camera module
+ * Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+&{/} {
+ clk_ov5640_fixed: ov5640-xclk {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <24000000>;
+ };
+};
+
+&main_gpio0 {
+ p11-hog {
+ /* P11 - CSI2_CAMERA_GPIO1 */
+ gpio-hog;
+ gpios = <11 GPIO_ACTIVE_HIGH>;
+ output-high;
+ line-name = "CSI2_CAMERA_GPIO1";
+ };
+};
+
+&wkup_i2c0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+
+ ov5640: camera@3c {
+ compatible = "ovti,ov5640";
+ reg = <0x3c>;
+
+ clocks = <&clk_ov5640_fixed>;
+ clock-names = "xclk";
+
+ port {
+ csi2_cam0: endpoint {
+ remote-endpoint = <&csi2rx0_in_sensor>;
+ clock-lanes = <0>;
+ data-lanes = <1 2>;
+ };
+ };
+ };
+};
+
+&cdns_csi2rx0 {
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ csi0_port0: port@0 {
+ reg = <0>;
+ status = "okay";
+
+ csi2rx0_in_sensor: endpoint {
+ remote-endpoint = <&csi2_cam0>;
+ bus-type = <4>; /* CSI2 DPHY. */
+ clock-lanes = <0>;
+ data-lanes = <1 2>;
+ };
+ };
+ };
+};
+
+&dphy0 {
+ status = "okay";
+};
+
+&ti_csi2rx0 {
+ status = "okay";
+};
--
2.42.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 4/8] arm64: dts: ti: k3-am625-beagleplay: Add overlays for OV5640
2023-11-15 9:51 ` [PATCH 4/8] arm64: dts: ti: k3-am625-beagleplay: Add overlays for OV5640 Jai Luthra
@ 2023-11-16 14:26 ` Andrew Davis
2023-11-17 7:54 ` Jai Luthra
0 siblings, 1 reply; 12+ messages in thread
From: Andrew Davis @ 2023-11-16 14:26 UTC (permalink / raw)
To: Jai Luthra, Catalin Marinas, Will Deacon, Nishanth Menon,
Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, linux-kernel, devicetree, Aradhya Bhatia,
Devarsh Thakkar, Vaishnav Achath, Julien Massot, Martyn Welch
On 11/15/23 3:51 AM, Jai Luthra wrote:
> Three different OV5640 modules are supported using the FFC connector on
> BeaglePlay:
> - Digilent PCam 5C
> - ALINX AN5641
> - TEVI-OV5640-*-RPI
>
> The Digilent and ALINX modules supply a 12Mhz XCLK to the sensor, while
> the TEVI module supplies a 24Mhz XCLK, thus requiring a separate
> overlay.
>
> Signed-off-by: Jai Luthra <j-luthra@ti.com>
> ---
> arch/arm64/boot/dts/ti/Makefile | 7 ++
> .../dts/ti/k3-am625-beagleplay-csi2-ov5640.dtso | 77 ++++++++++++++++++++++
> .../ti/k3-am625-beagleplay-csi2-tevi-ov5640.dtso | 77 ++++++++++++++++++++++
> 3 files changed, 161 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile
> index 77a347f9f47d..e49e32414560 100644
> --- a/arch/arm64/boot/dts/ti/Makefile
> +++ b/arch/arm64/boot/dts/ti/Makefile
> @@ -9,9 +9,15 @@
> # alphabetically.
>
> # Boards with AM62x SoC
> +k3-am625-beagleplay-csi2-ov5640-dtbs := k3-am625-beagleplay.dtb \
> + k3-am625-beagleplay-csi2-ov5640.dtbo
> +k3-am625-beagleplay-csi2-tevi-ov5640-dtbs := k3-am625-beagleplay.dtb \
> + k3-am625-beagleplay-csi2-tevi-ov5640.dtbo
> k3-am625-sk-hdmi-audio-dtbs := k3-am625-sk.dtb k3-am62x-sk-hdmi-audio.dtbo
> k3-am62-lp-sk-hdmi-audio-dtbs := k3-am62-lp-sk.dtb k3-am62x-sk-hdmi-audio.dtbo
> dtb-$(CONFIG_ARCH_K3) += k3-am625-beagleplay.dtb
> +dtb-$(CONFIG_ARCH_K3) += k3-am625-beagleplay-csi2-ov5640.dtb
> +dtb-$(CONFIG_ARCH_K3) += k3-am625-beagleplay-csi2-tevi-ov5640.dtb
We don't need .dtb files for each overlay combination, you should leave these
as overlays only, and just apply them at boot time as needed.
To test apply them at build time, you can use the CONFIG_OF_ALL_DTBS
method that Rob suggested here[0].
# Build time test only, enabled by CONFIG_OF_ALL_DTBS
dtb- += \
k3-am625-beagleplay-overlay-test1.dtb \
k3-am625-beagleplay-overlay-test2.dtb
k3-am625-beagleplay-overlay-test1-dtbs := k3-am625-beagleplay.dtb \
k3-am625-beagleplay-csi2-ov5640.dtbo
k3-am625-beagleplay-overlay-test1-dtbs := k3-am625-beagleplay.dtb \
k3-am625-beagleplay-csi2-tevi-ov5640.dtbo
dtb-$(CONFIG_ARCH_K3) += k3-am625-beagleplay-csi2-ov5640.dtbo
dtb-$(CONFIG_ARCH_K3) += k3-am625-beagleplay-csi2-tevi-ov5640.dtbo
[0] https://lore.kernel.org/all/CAL_Jsq+8jisrwEqzz7tZnsV9g2+LmThwpO7sHRFA-zh+6q8XuA@mail.gmail.com/
> dtb-$(CONFIG_ARCH_K3) += k3-am625-phyboard-lyra-rdk.dtb
> dtb-$(CONFIG_ARCH_K3) += k3-am625-sk.dtb
> dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-nonwifi-dahlia.dtb
> @@ -81,6 +87,7 @@ dtb-$(CONFIG_ARCH_K3) += k3-am69-sk.dtb
> dtb-$(CONFIG_ARCH_K3) += k3-j784s4-evm.dtb
>
> # Enable support for device-tree overlays
> +DTC_FLAGS_k3-am625-beagleplay += -@
Having any DTBO applied to the base during build will add symbols to the
base for you, no need to add this line.
(Please check that this is true for the OF_ALL_DTBS case above, I've not
checked yet, we should fix if not).
I plan to remove the same below in later patches so folks will stop adding
more of these lines.
Andrew
> DTC_FLAGS_k3-am625-sk += -@
> DTC_FLAGS_k3-am62-lp-sk += -@
> DTC_FLAGS_k3-am6548-iot2050-advanced-m2 += -@
> diff --git a/arch/arm64/boot/dts/ti/k3-am625-beagleplay-csi2-ov5640.dtso b/arch/arm64/boot/dts/ti/k3-am625-beagleplay-csi2-ov5640.dtso
> new file mode 100644
> index 000000000000..5e80ca7033ba
> --- /dev/null
> +++ b/arch/arm64/boot/dts/ti/k3-am625-beagleplay-csi2-ov5640.dtso
> @@ -0,0 +1,77 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * ALINX AN5641 & Digilent PCam 5C - OV5640 camera module
> + * Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +
> +&{/} {
> + clk_ov5640_fixed: ov5640-xclk {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <12000000>;
> + };
> +};
> +
> +&main_gpio0 {
> + p11-hog {
> + /* P11 - CSI2_CAMERA_GPIO1 */
> + gpio-hog;
> + gpios = <11 GPIO_ACTIVE_HIGH>;
> + output-high;
> + line-name = "CSI2_CAMERA_GPIO1";
> + };
> +};
> +
> +&wkup_i2c0 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "okay";
> +
> + ov5640: camera@3c {
> + compatible = "ovti,ov5640";
> + reg = <0x3c>;
> +
> + clocks = <&clk_ov5640_fixed>;
> + clock-names = "xclk";
> +
> + port {
> + csi2_cam0: endpoint {
> + remote-endpoint = <&csi2rx0_in_sensor>;
> + clock-lanes = <0>;
> + data-lanes = <1 2>;
> + };
> + };
> + };
> +};
> +
> +&cdns_csi2rx0 {
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + csi0_port0: port@0 {
> + reg = <0>;
> + status = "okay";
> +
> + csi2rx0_in_sensor: endpoint {
> + remote-endpoint = <&csi2_cam0>;
> + bus-type = <4>; /* CSI2 DPHY. */
> + clock-lanes = <0>;
> + data-lanes = <1 2>;
> + };
> + };
> + };
> +};
> +
> +&dphy0 {
> + status = "okay";
> +};
> +
> +&ti_csi2rx0 {
> + status = "okay";
> +};
> diff --git a/arch/arm64/boot/dts/ti/k3-am625-beagleplay-csi2-tevi-ov5640.dtso b/arch/arm64/boot/dts/ti/k3-am625-beagleplay-csi2-tevi-ov5640.dtso
> new file mode 100644
> index 000000000000..5e1cbbc27c8f
> --- /dev/null
> +++ b/arch/arm64/boot/dts/ti/k3-am625-beagleplay-csi2-tevi-ov5640.dtso
> @@ -0,0 +1,77 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Technexion TEVI-OV5640-*-RPI - OV5640 camera module
> + * Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +
> +&{/} {
> + clk_ov5640_fixed: ov5640-xclk {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <24000000>;
> + };
> +};
> +
> +&main_gpio0 {
> + p11-hog {
> + /* P11 - CSI2_CAMERA_GPIO1 */
> + gpio-hog;
> + gpios = <11 GPIO_ACTIVE_HIGH>;
> + output-high;
> + line-name = "CSI2_CAMERA_GPIO1";
> + };
> +};
> +
> +&wkup_i2c0 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "okay";
> +
> + ov5640: camera@3c {
> + compatible = "ovti,ov5640";
> + reg = <0x3c>;
> +
> + clocks = <&clk_ov5640_fixed>;
> + clock-names = "xclk";
> +
> + port {
> + csi2_cam0: endpoint {
> + remote-endpoint = <&csi2rx0_in_sensor>;
> + clock-lanes = <0>;
> + data-lanes = <1 2>;
> + };
> + };
> + };
> +};
> +
> +&cdns_csi2rx0 {
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + csi0_port0: port@0 {
> + reg = <0>;
> + status = "okay";
> +
> + csi2rx0_in_sensor: endpoint {
> + remote-endpoint = <&csi2_cam0>;
> + bus-type = <4>; /* CSI2 DPHY. */
> + clock-lanes = <0>;
> + data-lanes = <1 2>;
> + };
> + };
> + };
> +};
> +
> +&dphy0 {
> + status = "okay";
> +};
> +
> +&ti_csi2rx0 {
> + status = "okay";
> +};
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 4/8] arm64: dts: ti: k3-am625-beagleplay: Add overlays for OV5640
2023-11-16 14:26 ` Andrew Davis
@ 2023-11-17 7:54 ` Jai Luthra
0 siblings, 0 replies; 12+ messages in thread
From: Jai Luthra @ 2023-11-17 7:54 UTC (permalink / raw)
To: Andrew Davis
Cc: Catalin Marinas, Will Deacon, Nishanth Menon, Vignesh Raghavendra,
Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-arm-kernel, linux-kernel, devicetree, Aradhya Bhatia,
Devarsh Thakkar, Vaishnav Achath, Julien Massot, Martyn Welch
[-- Attachment #1: Type: text/plain, Size: 4322 bytes --]
Hi Andrew,
Thanks for the review.
On Nov 16, 2023 at 08:26:40 -0600, Andrew Davis wrote:
> On 11/15/23 3:51 AM, Jai Luthra wrote:
> > Three different OV5640 modules are supported using the FFC connector on
> > BeaglePlay:
> > - Digilent PCam 5C
> > - ALINX AN5641
> > - TEVI-OV5640-*-RPI
> >
> > The Digilent and ALINX modules supply a 12Mhz XCLK to the sensor, while
> > the TEVI module supplies a 24Mhz XCLK, thus requiring a separate
> > overlay.
> >
> > Signed-off-by: Jai Luthra <j-luthra@ti.com>
> > ---
> > arch/arm64/boot/dts/ti/Makefile | 7 ++
> > .../dts/ti/k3-am625-beagleplay-csi2-ov5640.dtso | 77 ++++++++++++++++++++++
> > .../ti/k3-am625-beagleplay-csi2-tevi-ov5640.dtso | 77 ++++++++++++++++++++++
> > 3 files changed, 161 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile
> > index 77a347f9f47d..e49e32414560 100644
> > --- a/arch/arm64/boot/dts/ti/Makefile
> > +++ b/arch/arm64/boot/dts/ti/Makefile
> > @@ -9,9 +9,15 @@
> > # alphabetically.
> > # Boards with AM62x SoC
> > +k3-am625-beagleplay-csi2-ov5640-dtbs := k3-am625-beagleplay.dtb \
> > + k3-am625-beagleplay-csi2-ov5640.dtbo
> > +k3-am625-beagleplay-csi2-tevi-ov5640-dtbs := k3-am625-beagleplay.dtb \
> > + k3-am625-beagleplay-csi2-tevi-ov5640.dtbo
> > k3-am625-sk-hdmi-audio-dtbs := k3-am625-sk.dtb k3-am62x-sk-hdmi-audio.dtbo
> > k3-am62-lp-sk-hdmi-audio-dtbs := k3-am62-lp-sk.dtb k3-am62x-sk-hdmi-audio.dtbo
> > dtb-$(CONFIG_ARCH_K3) += k3-am625-beagleplay.dtb
> > +dtb-$(CONFIG_ARCH_K3) += k3-am625-beagleplay-csi2-ov5640.dtb
> > +dtb-$(CONFIG_ARCH_K3) += k3-am625-beagleplay-csi2-tevi-ov5640.dtb
>
>
> We don't need .dtb files for each overlay combination, you should leave these
> as overlays only, and just apply them at boot time as needed.
>
> To test apply them at build time, you can use the CONFIG_OF_ALL_DTBS
> method that Rob suggested here[0].
>
> # Build time test only, enabled by CONFIG_OF_ALL_DTBS
> dtb- += \
> k3-am625-beagleplay-overlay-test1.dtb \
> k3-am625-beagleplay-overlay-test2.dtb
> k3-am625-beagleplay-overlay-test1-dtbs := k3-am625-beagleplay.dtb \
> k3-am625-beagleplay-csi2-ov5640.dtbo
> k3-am625-beagleplay-overlay-test1-dtbs := k3-am625-beagleplay.dtb \
> k3-am625-beagleplay-csi2-tevi-ov5640.dtbo
>
> dtb-$(CONFIG_ARCH_K3) += k3-am625-beagleplay-csi2-ov5640.dtbo
> dtb-$(CONFIG_ARCH_K3) += k3-am625-beagleplay-csi2-tevi-ov5640.dtbo
>
> [0] https://lore.kernel.org/all/CAL_Jsq+8jisrwEqzz7tZnsV9g2+LmThwpO7sHRFA-zh+6q8XuA@mail.gmail.com/
>
Makes sense, I was able to test this out locally by adding:
OF_ALL_DTBS=y
COMPILE_TEST=y
in my config.
Will send a v2 with the above changes.
I think Rob's comment on [0] for testing every combination is valid
here, so I will apply each camera overlay on each board that it can be
used with.
> > dtb-$(CONFIG_ARCH_K3) += k3-am625-phyboard-lyra-rdk.dtb
> > dtb-$(CONFIG_ARCH_K3) += k3-am625-sk.dtb
> > dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-nonwifi-dahlia.dtb
> > @@ -81,6 +87,7 @@ dtb-$(CONFIG_ARCH_K3) += k3-am69-sk.dtb
> > dtb-$(CONFIG_ARCH_K3) += k3-j784s4-evm.dtb
> > # Enable support for device-tree overlays
> > +DTC_FLAGS_k3-am625-beagleplay += -@
>
> Having any DTBO applied to the base during build will add symbols to the
> base for you, no need to add this line.
> (Please check that this is true for the OF_ALL_DTBS case above, I've not
> checked yet, we should fix if not).
Without the explicit "-@" flag, the base dtb is built with symbols
*only* if we were doing compile test with OF_ALL_DTBS=y.
For the standard build (arm64/configs/defconfig) the base DTB is built
*without* symbols as make does not see any combined DTBs as targets.
>
> I plan to remove the same below in later patches so folks will stop adding
> more of these lines.
>
It is not clear to me how we could avoid explicitly enabling the "-@"
flag for non-compile-test builds, let me know if you have any ideas.
> Andrew
>
> > DTC_FLAGS_k3-am625-sk += -@
> > DTC_FLAGS_k3-am62-lp-sk += -@
> > DTC_FLAGS_k3-am6548-iot2050-advanced-m2 += -@
[...]
--
Thanks,
Jai
GPG Fingerprint: 4DE0 D818 E5D5 75E8 D45A AFC5 43DE 91F9 249A 7145
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 5/8] arm64: dts: ti: k3-am62x-sk: Enable camera peripherals
2023-11-15 9:51 [PATCH 0/8] arm64: dts: ti: Enable CSI cameras for AM62 family Jai Luthra
` (3 preceding siblings ...)
2023-11-15 9:51 ` [PATCH 4/8] arm64: dts: ti: k3-am625-beagleplay: Add overlays for OV5640 Jai Luthra
@ 2023-11-15 9:51 ` Jai Luthra
2023-11-15 9:51 ` [PATCH 6/8] arm64: dts: ti: k3-am62x: Add overlays for OV5640 Jai Luthra
` (3 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Jai Luthra @ 2023-11-15 9:51 UTC (permalink / raw)
To: Catalin Marinas, Will Deacon, Nishanth Menon, Vignesh Raghavendra,
Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, linux-kernel, devicetree, Aradhya Bhatia,
Devarsh Thakkar, Vaishnav Achath, Julien Massot, Martyn Welch,
Jai Luthra
CSI cameras are controlled using I2C, on SK-AM62 and derivative boards
this is routed to I2C-2, so enable that bus. Also enable the nodes for
CSI-RX and DPHY-RX IPs.
Specific sensor connected to this bus will be described in the DT
overlay for each sensor.
Signed-off-by: Jai Luthra <j-luthra@ti.com>
---
arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
index 19f57ead4ebd..21658f811307 100644
--- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
@@ -399,6 +399,13 @@ sii9022_out: endpoint {
};
};
+&main_i2c2 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&main_i2c2_pins_default>;
+ clock-frequency = <400000>;
+};
+
&sdhci0 {
bootph-all;
status = "okay";
@@ -517,3 +524,11 @@ dpi1_out: endpoint {
};
};
};
+
+&ti_csi2rx0 {
+ status = "okay";
+};
+
+&dphy0 {
+ status = "okay";
+};
--
2.42.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 6/8] arm64: dts: ti: k3-am62x: Add overlays for OV5640
2023-11-15 9:51 [PATCH 0/8] arm64: dts: ti: Enable CSI cameras for AM62 family Jai Luthra
` (4 preceding siblings ...)
2023-11-15 9:51 ` [PATCH 5/8] arm64: dts: ti: k3-am62x-sk: Enable camera peripherals Jai Luthra
@ 2023-11-15 9:51 ` Jai Luthra
2023-11-15 9:51 ` [PATCH 7/8] arm64: dts: ti: k3-am62a7-sk: Enable camera peripherals Jai Luthra
` (2 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Jai Luthra @ 2023-11-15 9:51 UTC (permalink / raw)
To: Catalin Marinas, Will Deacon, Nishanth Menon, Vignesh Raghavendra,
Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, linux-kernel, devicetree, Aradhya Bhatia,
Devarsh Thakkar, Vaishnav Achath, Julien Massot, Martyn Welch,
Jai Luthra
Three different OV5640 modules are supported using the 15-pin FFC
connector on SK-AM62:
- Digilent PCam 5C
- ALINX AN5641
- TEVI-OV5640-*-RPI
The Digilent and ALINX modules supply a 12Mhz XCLK to the sensor, while
the TEVI module supplies a 24Mhz XCLK, thus requiring a separate
overlay.
These overlays can be used on other boards of the SK-AM62* family that
have a 15/22-pin FFC connector, so we name the overlays with the prefix
k3-am62x-.
Signed-off-by: Jai Luthra <j-luthra@ti.com>
---
arch/arm64/boot/dts/ti/Makefile | 6 ++
.../arm64/boot/dts/ti/k3-am62x-sk-csi2-ov5640.dtso | 74 ++++++++++++++++++++++
.../boot/dts/ti/k3-am62x-sk-csi2-tevi-ov5640.dtso | 74 ++++++++++++++++++++++
3 files changed, 154 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile
index e49e32414560..a09b16cbefb4 100644
--- a/arch/arm64/boot/dts/ti/Makefile
+++ b/arch/arm64/boot/dts/ti/Makefile
@@ -13,6 +13,10 @@ k3-am625-beagleplay-csi2-ov5640-dtbs := k3-am625-beagleplay.dtb \
k3-am625-beagleplay-csi2-ov5640.dtbo
k3-am625-beagleplay-csi2-tevi-ov5640-dtbs := k3-am625-beagleplay.dtb \
k3-am625-beagleplay-csi2-tevi-ov5640.dtbo
+k3-am625-sk-csi2-ov5640-dtbs := k3-am625-sk.dtb \
+ k3-am62x-sk-csi2-ov5640.dtbo
+k3-am625-sk-csi2-tevi-ov5640-dtbs := k3-am625-sk.dtb \
+ k3-am62x-sk-csi2-tevi-ov5640.dtbo
k3-am625-sk-hdmi-audio-dtbs := k3-am625-sk.dtb k3-am62x-sk-hdmi-audio.dtbo
k3-am62-lp-sk-hdmi-audio-dtbs := k3-am62-lp-sk.dtb k3-am62x-sk-hdmi-audio.dtbo
dtb-$(CONFIG_ARCH_K3) += k3-am625-beagleplay.dtb
@@ -20,6 +24,8 @@ dtb-$(CONFIG_ARCH_K3) += k3-am625-beagleplay-csi2-ov5640.dtb
dtb-$(CONFIG_ARCH_K3) += k3-am625-beagleplay-csi2-tevi-ov5640.dtb
dtb-$(CONFIG_ARCH_K3) += k3-am625-phyboard-lyra-rdk.dtb
dtb-$(CONFIG_ARCH_K3) += k3-am625-sk.dtb
+dtb-$(CONFIG_ARCH_K3) += k3-am625-sk-csi2-ov5640.dtb
+dtb-$(CONFIG_ARCH_K3) += k3-am625-sk-csi2-tevi-ov5640.dtb
dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-nonwifi-dahlia.dtb
dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-nonwifi-dev.dtb
dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-nonwifi-yavia.dtb
diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-csi2-ov5640.dtso b/arch/arm64/boot/dts/ti/k3-am62x-sk-csi2-ov5640.dtso
new file mode 100644
index 000000000000..790340673094
--- /dev/null
+++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-csi2-ov5640.dtso
@@ -0,0 +1,74 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * ALINX AN5641 & Digilent PCam 5C - OV5640 camera module
+ * Copyright (C) 2022 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+&{/} {
+ clk_ov5640_fixed: ov5640-xclk {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <12000000>;
+ };
+};
+
+&main_i2c2 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+
+ i2c-switch@71 {
+ compatible = "nxp,pca9543";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0x71>;
+
+ /* CAM port */
+ i2c@1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <1>;
+
+ ov5640: camera@3c {
+ compatible = "ovti,ov5640";
+ reg = <0x3c>;
+
+ clocks = <&clk_ov5640_fixed>;
+ clock-names = "xclk";
+ powerdown-gpios = <&exp1 13 GPIO_ACTIVE_LOW>;
+
+ port {
+ csi2_cam0: endpoint {
+ remote-endpoint = <&csi2rx0_in_sensor>;
+ clock-lanes = <0>;
+ data-lanes = <1 2>;
+ };
+ };
+ };
+ };
+ };
+};
+
+&cdns_csi2rx0 {
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ csi0_port0: port@0 {
+ reg = <0>;
+ status = "okay";
+
+ csi2rx0_in_sensor: endpoint {
+ remote-endpoint = <&csi2_cam0>;
+ bus-type = <4>; /* CSI2 DPHY. */
+ clock-lanes = <0>;
+ data-lanes = <1 2>;
+ };
+ };
+ };
+};
diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-csi2-tevi-ov5640.dtso b/arch/arm64/boot/dts/ti/k3-am62x-sk-csi2-tevi-ov5640.dtso
new file mode 100644
index 000000000000..d7772767f49d
--- /dev/null
+++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-csi2-tevi-ov5640.dtso
@@ -0,0 +1,74 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Technexion TEVI-OV5640-*-RPI - OV5640 camera module
+ * Copyright (C) 2022 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+&{/} {
+ clk_ov5640_fixed: ov5640-xclk {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <24000000>;
+ };
+};
+
+&main_i2c2 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+
+ i2c-switch@71 {
+ compatible = "nxp,pca9543";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0x71>;
+
+ /* CAM port */
+ i2c@1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <1>;
+
+ ov5640: camera@3c {
+ compatible = "ovti,ov5640";
+ reg = <0x3c>;
+
+ clocks = <&clk_ov5640_fixed>;
+ clock-names = "xclk";
+ powerdown-gpios = <&exp1 13 GPIO_ACTIVE_LOW>;
+
+ port {
+ csi2_cam0: endpoint {
+ remote-endpoint = <&csi2rx0_in_sensor>;
+ clock-lanes = <0>;
+ data-lanes = <1 2>;
+ };
+ };
+ };
+ };
+ };
+};
+
+&cdns_csi2rx0 {
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ csi0_port0: port@0 {
+ reg = <0>;
+ status = "okay";
+
+ csi2rx0_in_sensor: endpoint {
+ remote-endpoint = <&csi2_cam0>;
+ bus-type = <4>; /* CSI2 DPHY. */
+ clock-lanes = <0>;
+ data-lanes = <1 2>;
+ };
+ };
+ };
+};
--
2.42.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 7/8] arm64: dts: ti: k3-am62a7-sk: Enable camera peripherals
2023-11-15 9:51 [PATCH 0/8] arm64: dts: ti: Enable CSI cameras for AM62 family Jai Luthra
` (5 preceding siblings ...)
2023-11-15 9:51 ` [PATCH 6/8] arm64: dts: ti: k3-am62x: Add overlays for OV5640 Jai Luthra
@ 2023-11-15 9:51 ` Jai Luthra
2023-11-15 9:51 ` [PATCH 8/8] arm64: dts: ti: k3-am62x: Add overlay for IMX219 Jai Luthra
2023-11-15 15:34 ` [PATCH 0/8] arm64: dts: ti: Enable CSI cameras for AM62 family Martyn Welch
8 siblings, 0 replies; 12+ messages in thread
From: Jai Luthra @ 2023-11-15 9:51 UTC (permalink / raw)
To: Catalin Marinas, Will Deacon, Nishanth Menon, Vignesh Raghavendra,
Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, linux-kernel, devicetree, Aradhya Bhatia,
Devarsh Thakkar, Vaishnav Achath, Julien Massot, Martyn Welch,
Jai Luthra
Enable the nodes for CSI-RX, DPHY-RX and I2C-2 as it is used to control
CSI based sensors. Also enable IO-EXP-2 as it controls the mux between
different CSI-2 connectors.
Signed-off-by: Jai Luthra <j-luthra@ti.com>
---
arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 35 +++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
index 8f64ac2c7568..20ec07a5237c 100644
--- a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
@@ -434,6 +434,33 @@ tlv320aic3106: audio-codec@1b {
DRVDD-supply = <&vcc_3v3_sys>;
DVDD-supply = <&buck5>;
};
+
+ exp2: gpio@23 {
+ compatible = "ti,tca6424";
+ reg = <0x23>;
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ gpio-line-names = "", "",
+ "", "",
+ "", "",
+ "", "",
+ "WL_LT_EN", "CSI_RSTz",
+ "", "",
+ "", "",
+ "", "",
+ "SPI0_FET_SEL", "SPI0_FET_OE",
+ "RGMII2_BRD_CONN_DET", "CSI_SEL2",
+ "CSI_EN", "AUTO_100M_1000M_CONFIG",
+ "CSI_VLDO_SEL", "SoC_WLAN_SDIO_RST";
+ };
+};
+
+&main_i2c2 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&main_i2c2_pins_default>;
+ clock-frequency = <400000>;
};
&sdhci1 {
@@ -544,3 +571,11 @@ &mcasp1 {
tx-num-evt = <32>;
rx-num-evt = <32>;
};
+
+&ti_csi2rx0 {
+ status = "okay";
+};
+
+&dphy0 {
+ status = "okay";
+};
--
2.42.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 8/8] arm64: dts: ti: k3-am62x: Add overlay for IMX219
2023-11-15 9:51 [PATCH 0/8] arm64: dts: ti: Enable CSI cameras for AM62 family Jai Luthra
` (6 preceding siblings ...)
2023-11-15 9:51 ` [PATCH 7/8] arm64: dts: ti: k3-am62a7-sk: Enable camera peripherals Jai Luthra
@ 2023-11-15 9:51 ` Jai Luthra
2023-11-15 15:34 ` [PATCH 0/8] arm64: dts: ti: Enable CSI cameras for AM62 family Martyn Welch
8 siblings, 0 replies; 12+ messages in thread
From: Jai Luthra @ 2023-11-15 9:51 UTC (permalink / raw)
To: Catalin Marinas, Will Deacon, Nishanth Menon, Vignesh Raghavendra,
Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, linux-kernel, devicetree, Aradhya Bhatia,
Devarsh Thakkar, Vaishnav Achath, Julien Massot, Martyn Welch,
Jai Luthra
RPi v2 Camera (IMX219) is an 8MP camera that can be used with SK-AM62A
through the 22-pin CSI-RX connector.
Same overlay can be used across SK-AM62* boards that have a 15/22-pin
FFC connector, so we name it with the k3-am62x- prefix.
Signed-off-by: Jai Luthra <j-luthra@ti.com>
---
arch/arm64/boot/dts/ti/Makefile | 4 ++
.../arm64/boot/dts/ti/k3-am62x-sk-csi2-imx219.dtso | 76 ++++++++++++++++++++++
2 files changed, 80 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile
index a09b16cbefb4..f89dcbe3c635 100644
--- a/arch/arm64/boot/dts/ti/Makefile
+++ b/arch/arm64/boot/dts/ti/Makefile
@@ -37,7 +37,10 @@ dtb-$(CONFIG_ARCH_K3) += k3-am625-sk-hdmi-audio.dtb
dtb-$(CONFIG_ARCH_K3) += k3-am62-lp-sk-hdmi-audio.dtb
# Boards with AM62Ax SoC
+k3-am62a7-sk-csi2-imx219-dtbs := k3-am62a7-sk.dtb \
+ k3-am62x-sk-csi2-imx219.dtbo
dtb-$(CONFIG_ARCH_K3) += k3-am62a7-sk.dtb
+dtb-$(CONFIG_ARCH_K3) += k3-am62a7-sk-csi2-imx219.dtb
# Boards with AM62Px SoC
dtb-$(CONFIG_ARCH_K3) += k3-am62p5-sk.dtb
@@ -96,6 +99,7 @@ dtb-$(CONFIG_ARCH_K3) += k3-j784s4-evm.dtb
DTC_FLAGS_k3-am625-beagleplay += -@
DTC_FLAGS_k3-am625-sk += -@
DTC_FLAGS_k3-am62-lp-sk += -@
+DTC_FLAGS_k3-am62a7-sk += -@
DTC_FLAGS_k3-am6548-iot2050-advanced-m2 += -@
DTC_FLAGS_k3-j721e-common-proc-board += -@
DTC_FLAGS_k3-j721s2-common-proc-board += -@
diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-csi2-imx219.dtso b/arch/arm64/boot/dts/ti/k3-am62x-sk-csi2-imx219.dtso
new file mode 100644
index 000000000000..84d08bfda469
--- /dev/null
+++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-csi2-imx219.dtso
@@ -0,0 +1,76 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * IMX219 (RPi v2) Camera Module
+ * Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+&{/} {
+ clk_imx219_fixed: imx219-xclk {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <24000000>;
+ };
+};
+
+&main_i2c2 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+
+ i2c-switch@71 {
+ compatible = "nxp,pca9543";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0x71>;
+
+ /* CAM port */
+ i2c@1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <1>;
+
+ ov5640: camera@10 {
+ compatible = "sony,imx219";
+ reg = <0x10>;
+
+ clocks = <&clk_imx219_fixed>;
+ clock-names = "xclk";
+
+ reset-gpios = <&exp1 13 GPIO_ACTIVE_HIGH>;
+
+ port {
+ csi2_cam0: endpoint {
+ remote-endpoint = <&csi2rx0_in_sensor>;
+ link-frequencies = /bits/ 64 <456000000>;
+ clock-lanes = <0>;
+ data-lanes = <1 2>;
+ };
+ };
+ };
+ };
+ };
+};
+
+&cdns_csi2rx0 {
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ csi0_port0: port@0 {
+ reg = <0>;
+ status = "okay";
+
+ csi2rx0_in_sensor: endpoint {
+ remote-endpoint = <&csi2_cam0>;
+ bus-type = <4>; /* CSI2 DPHY. */
+ clock-lanes = <0>;
+ data-lanes = <1 2>;
+ };
+ };
+ };
+};
--
2.42.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 0/8] arm64: dts: ti: Enable CSI cameras for AM62 family
2023-11-15 9:51 [PATCH 0/8] arm64: dts: ti: Enable CSI cameras for AM62 family Jai Luthra
` (7 preceding siblings ...)
2023-11-15 9:51 ` [PATCH 8/8] arm64: dts: ti: k3-am62x: Add overlay for IMX219 Jai Luthra
@ 2023-11-15 15:34 ` Martyn Welch
8 siblings, 0 replies; 12+ messages in thread
From: Martyn Welch @ 2023-11-15 15:34 UTC (permalink / raw)
To: Jai Luthra, Catalin Marinas, Will Deacon, Nishanth Menon,
Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, linux-kernel, devicetree, Aradhya Bhatia,
Devarsh Thakkar, Vaishnav Achath, Julien Massot
On 15/11/2023 09:51, Jai Luthra wrote:
> This series enables CSI camera support on BeaglePlay, SK-AM62 and
> SK-AM62A, now that the dt-bindings and driver support for CSI-RX related
> IPs is merged in v6.7-rc1.
>
> Along with the device tree nodes for CSI-RX, add new DT overlays for
> different camera modules like RPiv2 (IMX219) or PCam5C (OV5640).
>
> Signed-off-by: Jai Luthra <j-luthra@ti.com>
Tested applied to master on AM625-SK with OV5640:
Tested-by: Martyn Welch <martyn.welch@collabora.com>
> ---
> Jai Luthra (8):
> arm64: defconfig: Enable AM62 CSI2RX
> arm64: dts: ti: Enable CSI-RX on AM62
> arm64: dts: ti: Enable CSI-RX on AM62A
> arm64: dts: ti: k3-am625-beagleplay: Add overlays for OV5640
> arm64: dts: ti: k3-am62x-sk: Enable camera peripherals
> arm64: dts: ti: k3-am62x: Add overlays for OV5640
> arm64: dts: ti: k3-am62a7-sk: Enable camera peripherals
> arm64: dts: ti: k3-am62x: Add overlay for IMX219
>
> arch/arm64/boot/dts/ti/Makefile | 17 ++++
> arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 62 ++++++++++++++
> .../dts/ti/k3-am625-beagleplay-csi2-ov5640.dtso | 77 +++++++++++++++++
> .../ti/k3-am625-beagleplay-csi2-tevi-ov5640.dtso | 77 +++++++++++++++++
> arch/arm64/boot/dts/ti/k3-am62a-main.dtsi | 99 ++++++++++++++++++++++
> arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 35 ++++++++
> arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 15 ++++
> .../arm64/boot/dts/ti/k3-am62x-sk-csi2-imx219.dtso | 76 +++++++++++++++++
> .../arm64/boot/dts/ti/k3-am62x-sk-csi2-ov5640.dtso | 74 ++++++++++++++++
> .../boot/dts/ti/k3-am62x-sk-csi2-tevi-ov5640.dtso | 74 ++++++++++++++++
> arch/arm64/configs/defconfig | 3 +
> 11 files changed, 609 insertions(+)
> ---
> base-commit: a93441cc391f1923d031dcd463e3444c7c21bffe
> change-id: 20231114-csi_dts-5f433aca3665
>
> Best regards,
^ permalink raw reply [flat|nested] 12+ messages in thread