[PATCH 4/4] arm64: dts: ti: Add overlays for IMX728 RCM

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Adds overlays for the D3 IMX728 RCM.

Only a connection on port 0 is currently supported.

Signed-off-by: Sebastian LaVine <slavine@xxxxxxxxxxxxxx>
Mentored-by: Stuart Burtner <sburtner@xxxxxxxxxxxxxx>
---
 MAINTAINERS                                   |   1 +
 arch/arm64/boot/dts/ti/Makefile               |   3 +
 .../dts/ti/k3-fpdlink-imx728-rcm-0-0.dtso     | 108 ++++++++++++++++++
 3 files changed, 112 insertions(+)
 create mode 100644 arch/arm64/boot/dts/ti/k3-fpdlink-imx728-rcm-0-0.dtso

diff --git a/MAINTAINERS b/MAINTAINERS
index bf6a48da0887..f109b5dc8fa5 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -21891,6 +21891,7 @@ L:      linux-media@xxxxxxxxxxxxxxx
 S:     Odd Fixes
 F:     Documentation/devicetree/bindings/media/i2c/sony,imx728.yaml
 F:     arch/arm64/boot/dts/ti/k3-am62a7-sk-fusion-2.dtso
+F:     arch/arm64/boot/dts/ti/k3-fpdlink-imx728-rcm-0-0.dtso
 F:     drivers/media/i2c/imx728.c

 SONY MEMORYSTICK SUBSYSTEM
diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile
index fcd8d11e5678..6c8bbea246f1 100644
--- a/arch/arm64/boot/dts/ti/Makefile
+++ b/arch/arm64/boot/dts/ti/Makefile
@@ -240,6 +240,9 @@ dtb- += k3-am625-beagleplay-csi2-ov5640.dtb \
        k3-j784s4-evm-quad-port-eth-exp1.dtb \
        k3-j784s4-evm-usxgmii-exp1-exp2.dtb

+# FPDLink Sensors
+dtb-$(CONFIG_ARCH_K3) += k3-fpdlink-imx728-rcm-0-0.dtbo
+
 # Enable support for device-tree overlays
 DTC_FLAGS_k3-am625-beagleplay += -@
 DTC_FLAGS_k3-am625-phyboard-lyra-rdk += -@
diff --git a/arch/arm64/boot/dts/ti/k3-fpdlink-imx728-rcm-0-0.dtso b/arch/arm64/boot/dts/ti/k3-fpdlink-imx728-rcm-0-0.dtso
new file mode 100644
index 000000000000..97631184ff65
--- /dev/null
+++ b/arch/arm64/boot/dts/ti/k3-fpdlink-imx728-rcm-0-0.dtso
@@ -0,0 +1,108 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * D3 IMX728 FPD-Link 4 Camera Module
+ *
+ * Copyright (c) 2024 Define Design Deploy Corp - https://www.d3embedded.com
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+&{/} {
+       clk_imx728_fixed_00: imx728-inck-00 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <24000000>;
+       };
+};
+
+&ds90ub9702_0_ports {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       /* FPDLink RX 0 */
+       port@0 {
+               reg = <0>;
+               ub9702_fpd4_1_in: endpoint {
+                       remote-endpoint = <&ub971_1_out>;
+               };
+       };
+};
+
+&ds90ub9702_0_links {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       link@0 {
+               reg = <0>;
+               i2c-alias = <0x44>;
+
+               ti,cdr-mode = <1>;
+               ti,rx-mode = <3>;
+
+               serializer: serializer {
+                       compatible = "ti,ds90ub971-q1";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       #clock-cells = <0>;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       ub971_1_in: endpoint {
+                                               data-lanes = <1 2 3 4>;
+                                               remote-endpoint = <&sensor_1_out>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       ub971_1_out: endpoint {
+                                               remote-endpoint = <&ub9702_fpd4_1_in>;
+                                       };
+                               };
+                       };
+
+                       i2c {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               sens_exp: gpio@70 {
+                                       compatible = "nxp,pca9538";
+                                       reg = <0x70>;
+                                       gpio-controller;
+                                       #gpio-cells = <2>;
+                                       gpio-line-names = "IMG_RESET", "IMG_ERR0",
+                                                         "IMG_ERR1", "IMG_GPI0",
+                                                         "IMG_GPI1", "NC",
+                                                         "NC", "NC";
+                               };
+
+                               sensor@1a {
+                                       compatible = "sony,imx728";
+                                       reg = <0x1a>;
+
+                                       clocks = <&clk_imx728_fixed_00>;
+                                       clock-names = "inck";
+
+                                       reset-gpios = <&sens_exp 0 GPIO_ACTIVE_LOW>;
+                                       error0-gpios = <&sens_exp 1 GPIO_ACTIVE_HIGH>;
+                                       error1-gpios = <&sens_exp 2 GPIO_ACTIVE_HIGH>;
+
+                                       port {
+                                               sensor_1_out: endpoint {
+                                                       remote-endpoint = <&ub971_1_in>;
+                                               };
+                                       };
+                               };
+                       };
+               };
+       };
+};
--
2.34.1

Please be aware that this email includes email addresses outside of the organization.





[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux