arm64: dts: ti: k3-am62x: Add overlay for IMX219
authorJai Luthra <j-luthra@ti.com>
Fri, 1 Dec 2023 05:09:23 +0000 (10:39 +0530)
committerNishanth Menon <nm@ti.com>
Tue, 5 Dec 2023 20:05:57 +0000 (14:05 -0600)
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>
Link: https://lore.kernel.org/r/20231201-csi_dts-v3-8-9f06f31080fe@ti.com
Signed-off-by: Nishanth Menon <nm@ti.com>
arch/arm64/boot/dts/ti/Makefile
arch/arm64/boot/dts/ti/k3-am62x-sk-csi2-imx219.dtso [new file with mode: 0644]

index f957b5f741ffcfe37e4375036cf501ec15505ef1..fd9166497c3251adff0eedff553b4abd22705953 100644 (file)
@@ -35,6 +35,7 @@ dtb-$(CONFIG_ARCH_K3) += k3-am62p5-sk.dtb
 # Common overlays for SK-AM62* family of boards
 dtb-$(CONFIG_ARCH_K3) += k3-am62x-sk-csi2-ov5640.dtbo
 dtb-$(CONFIG_ARCH_K3) += k3-am62x-sk-csi2-tevi-ov5640.dtbo
+dtb-$(CONFIG_ARCH_K3) += k3-am62x-sk-csi2-imx219.dtbo
 
 # Boards with AM64x SoC
 dtb-$(CONFIG_ARCH_K3) += k3-am642-evm.dtb
@@ -91,18 +92,24 @@ 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-imx219-dtbs := k3-am625-sk.dtb \
+       k3-am62x-sk-csi2-imx219.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-am62a7-sk-csi2-imx219-dtbs := k3-am62a7-sk.dtb \
+       k3-am62x-sk-csi2-imx219.dtbo
 k3-am62a7-sk-csi2-ov5640-dtbs := k3-am62a7-sk.dtb \
        k3-am62x-sk-csi2-ov5640.dtbo
 k3-am62a7-sk-csi2-tevi-ov5640-dtbs := k3-am62a7-sk.dtb \
        k3-am62x-sk-csi2-tevi-ov5640.dtbo
 dtb- += k3-am625-beagleplay-csi2-ov5640.dtb \
        k3-am625-beagleplay-csi2-tevi-ov5640.dtb \
+       k3-am625-sk-csi2-imx219.dtb \
        k3-am625-sk-csi2-ov5640.dtb \
        k3-am625-sk-csi2-tevi-ov5640.dtb \
+       k3-am62a7-sk-csi2-imx219.dtb \
        k3-am62a7-sk-csi2-ov5640.dtb \
        k3-am62a7-sk-csi2-tevi-ov5640.dtb
 
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 (file)
index 0000000..6f4cd73
--- /dev/null
@@ -0,0 +1,84 @@
+// 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>;
+                       };
+               };
+       };
+};
+
+&ti_csi2rx0 {
+       status = "okay";
+};
+
+&dphy0 {
+       status = "okay";
+};