summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVaishnav Achath <vaishnav.a@ti.com>2024-03-13 22:05:19 +0530
committerUdit Kumar <u-kumar1@ti.com>2024-03-13 23:26:17 +0530
commit4d3502a8b8db0395db8ce0c6501795de2ec240c9 (patch)
tree1e066ed230f09660c2d951d4a4873ee9f141de35
parenta99ee226326d12a293193b3018e6254c71b56631 (diff)
arm64: dts: ti: Add overlays for FPDLink IMX390 RCM on third CSI port
IMX390 is a 2.1MP raw (bayer) sensor, the rugged camera module by D3 [1] packages it with an FPDLink-III serializer (DS90UB953) for use with sensor fusion setups using FPDLink-III deserializer boards. Add overlays for the cases when the modules are connected to ports on the DS90UB960 deserializer in fusion EVM when connected to third CSI port in a device like J784S4 or AM69. This helps to enable 12 camera use cases on AM69 SK. 1 - https://www.d3engineering.co/product/designcore-d3rcm-imx390-953-rugged-camera-module/ Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com> Acked-by: Jai Luthra <j-luthra@ti.com> Tested-by: Abhay Chirania <a-chirania@ti.com>
-rw-r--r--arch/arm64/boot/dts/ti/Makefile6
-rw-r--r--arch/arm64/boot/dts/ti/k3-fpdlink-imx390-rcm-2-0.dtso93
-rw-r--r--arch/arm64/boot/dts/ti/k3-fpdlink-imx390-rcm-2-1.dtso93
-rw-r--r--arch/arm64/boot/dts/ti/k3-fpdlink-imx390-rcm-2-2.dtso93
-rw-r--r--arch/arm64/boot/dts/ti/k3-fpdlink-imx390-rcm-2-3.dtso93
5 files changed, 377 insertions, 1 deletions
diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile
index edc3eff41c4d..529e6be613cd 100644
--- a/arch/arm64/boot/dts/ti/Makefile
+++ b/arch/arm64/boot/dts/ti/Makefile
@@ -154,7 +154,11 @@ dtb-$(CONFIG_ARCH_K3) += k3-fpdlink-imx390-rcm-0-0.dtbo \
k3-fpdlink-imx390-rcm-1-0.dtbo \
k3-fpdlink-imx390-rcm-1-1.dtbo \
k3-fpdlink-imx390-rcm-1-2.dtbo \
- k3-fpdlink-imx390-rcm-1-3.dtbo
+ k3-fpdlink-imx390-rcm-1-3.dtbo \
+ k3-fpdlink-imx390-rcm-2-0.dtbo \
+ k3-fpdlink-imx390-rcm-2-1.dtbo \
+ k3-fpdlink-imx390-rcm-2-2.dtbo \
+ k3-fpdlink-imx390-rcm-2-3.dtbo
dtb-$(CONFIG_ARCH_K3) += k3-fpdlink-ov2312-0-0.dtbo \
k3-fpdlink-ov2312-0-1.dtbo \
k3-fpdlink-ov2312-0-2.dtbo \
diff --git a/arch/arm64/boot/dts/ti/k3-fpdlink-imx390-rcm-2-0.dtso b/arch/arm64/boot/dts/ti/k3-fpdlink-imx390-rcm-2-0.dtso
new file mode 100644
index 000000000000..3fc888a0d2fd
--- /dev/null
+++ b/arch/arm64/boot/dts/ti/k3-fpdlink-imx390-rcm-2-0.dtso
@@ -0,0 +1,93 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * IMX390 FPD-Link 3 Camera Module
+ * https://www.d3engineering.co/product/designcore-d3rcm-imx390-953-rugged-camera-module/
+ *
+ * Copyright (c) 2024 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+&ds90ub960_2_ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* FPDLink RX 0 */
+ port@0 {
+ reg = <0>;
+
+ ub960_fpd3_1_in: endpoint {
+ remote-endpoint = <&ub953_1_out>;
+ };
+ };
+};
+
+&ds90ub960_2_links {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ link@0 {
+ reg = <0>;
+ i2c-alias = <0x64>;
+
+ ti,rx-mode = <3>;
+
+ serializer: serializer {
+ compatible = "ti,ds90ub953-q1";
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ #clock-cells = <0>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ ub953_1_in: endpoint {
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&sensor_1_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ ub953_1_out: endpoint {
+ remote-endpoint = <&ub960_fpd3_1_in>;
+ };
+ };
+ };
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ sensor@1a {
+ compatible = "sony,imx390";
+ reg = <0x1a>;
+
+ clocks = <&serializer>;
+ clock-names = "inck";
+ assigned-clocks = <&serializer>;
+ assigned-clock-rates = <27000000>;
+
+ xclr-gpios = <&serializer 1 GPIO_ACTIVE_LOW>;
+ error0-gpios = <&serializer 2 GPIO_ACTIVE_HIGH>;
+ error1-gpios = <&serializer 3 GPIO_ACTIVE_HIGH>;
+ comready-gpios = <&serializer 0 GPIO_ACTIVE_HIGH>;
+
+ port {
+ sensor_1_out: endpoint {
+ remote-endpoint = <&ub953_1_in>;
+ };
+ };
+ };
+ };
+ };
+ };
+};
diff --git a/arch/arm64/boot/dts/ti/k3-fpdlink-imx390-rcm-2-1.dtso b/arch/arm64/boot/dts/ti/k3-fpdlink-imx390-rcm-2-1.dtso
new file mode 100644
index 000000000000..dc4d4ef71964
--- /dev/null
+++ b/arch/arm64/boot/dts/ti/k3-fpdlink-imx390-rcm-2-1.dtso
@@ -0,0 +1,93 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * IMX390 FPD-Link 3 Camera Module
+ * https://www.d3engineering.co/product/designcore-d3rcm-imx390-953-rugged-camera-module/
+ *
+ * Copyright (c) 2024 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+&ds90ub960_2_ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* FPDLink RX 1 */
+ port@1 {
+ reg = <1>;
+
+ ub960_fpd3_1_in: endpoint {
+ remote-endpoint = <&ub953_1_out>;
+ };
+ };
+};
+
+&ds90ub960_2_links {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ link@1 {
+ reg = <1>;
+ i2c-alias = <0x65>;
+
+ ti,rx-mode = <3>;
+
+ serializer: serializer {
+ compatible = "ti,ds90ub953-q1";
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ #clock-cells = <0>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ ub953_1_in: endpoint {
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&sensor_1_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ ub953_1_out: endpoint {
+ remote-endpoint = <&ub960_fpd3_1_in>;
+ };
+ };
+ };
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ sensor@1a {
+ compatible = "sony,imx390";
+ reg = <0x1a>;
+
+ clocks = <&serializer>;
+ clock-names = "inck";
+ assigned-clocks = <&serializer>;
+ assigned-clock-rates = <27000000>;
+
+ xclr-gpios = <&serializer 1 GPIO_ACTIVE_LOW>;
+ error0-gpios = <&serializer 2 GPIO_ACTIVE_HIGH>;
+ error1-gpios = <&serializer 3 GPIO_ACTIVE_HIGH>;
+ comready-gpios = <&serializer 0 GPIO_ACTIVE_HIGH>;
+
+ port {
+ sensor_1_out: endpoint {
+ remote-endpoint = <&ub953_1_in>;
+ };
+ };
+ };
+ };
+ };
+ };
+};
diff --git a/arch/arm64/boot/dts/ti/k3-fpdlink-imx390-rcm-2-2.dtso b/arch/arm64/boot/dts/ti/k3-fpdlink-imx390-rcm-2-2.dtso
new file mode 100644
index 000000000000..486b1fabe018
--- /dev/null
+++ b/arch/arm64/boot/dts/ti/k3-fpdlink-imx390-rcm-2-2.dtso
@@ -0,0 +1,93 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * IMX390 FPD-Link 3 Camera Module
+ * https://www.d3engineering.co/product/designcore-d3rcm-imx390-953-rugged-camera-module/
+ *
+ * Copyright (c) 2024 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+&ds90ub960_2_ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* FPDLink RX 2 */
+ port@2 {
+ reg = <2>;
+
+ ub960_fpd3_1_in: endpoint {
+ remote-endpoint = <&ub953_1_out>;
+ };
+ };
+};
+
+&ds90ub960_2_links {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ link@2 {
+ reg = <2>;
+ i2c-alias = <0x66>;
+
+ ti,rx-mode = <3>;
+
+ serializer: serializer {
+ compatible = "ti,ds90ub953-q1";
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ #clock-cells = <0>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ ub953_1_in: endpoint {
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&sensor_1_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ ub953_1_out: endpoint {
+ remote-endpoint = <&ub960_fpd3_1_in>;
+ };
+ };
+ };
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ sensor@1a {
+ compatible = "sony,imx390";
+ reg = <0x1a>;
+
+ clocks = <&serializer>;
+ clock-names = "inck";
+ assigned-clocks = <&serializer>;
+ assigned-clock-rates = <27000000>;
+
+ xclr-gpios = <&serializer 1 GPIO_ACTIVE_LOW>;
+ error0-gpios = <&serializer 2 GPIO_ACTIVE_HIGH>;
+ error1-gpios = <&serializer 3 GPIO_ACTIVE_HIGH>;
+ comready-gpios = <&serializer 0 GPIO_ACTIVE_HIGH>;
+
+ port {
+ sensor_1_out: endpoint {
+ remote-endpoint = <&ub953_1_in>;
+ };
+ };
+ };
+ };
+ };
+ };
+};
diff --git a/arch/arm64/boot/dts/ti/k3-fpdlink-imx390-rcm-2-3.dtso b/arch/arm64/boot/dts/ti/k3-fpdlink-imx390-rcm-2-3.dtso
new file mode 100644
index 000000000000..6b47107efba8
--- /dev/null
+++ b/arch/arm64/boot/dts/ti/k3-fpdlink-imx390-rcm-2-3.dtso
@@ -0,0 +1,93 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * IMX390 FPD-Link 3 Camera Module
+ * https://www.d3engineering.co/product/designcore-d3rcm-imx390-953-rugged-camera-module/
+ *
+ * Copyright (c) 2024 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+&ds90ub960_2_ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* FPDLink RX 3 */
+ port@3 {
+ reg = <3>;
+
+ ub960_fpd3_1_in: endpoint {
+ remote-endpoint = <&ub953_1_out>;
+ };
+ };
+};
+
+&ds90ub960_2_links {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ link@3 {
+ reg = <3>;
+ i2c-alias = <0x67>;
+
+ ti,rx-mode = <3>;
+
+ serializer: serializer {
+ compatible = "ti,ds90ub953-q1";
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ #clock-cells = <0>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ ub953_1_in: endpoint {
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&sensor_1_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ ub953_1_out: endpoint {
+ remote-endpoint = <&ub960_fpd3_1_in>;
+ };
+ };
+ };
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ sensor@1a {
+ compatible = "sony,imx390";
+ reg = <0x1a>;
+
+ clocks = <&serializer>;
+ clock-names = "inck";
+ assigned-clocks = <&serializer>;
+ assigned-clock-rates = <27000000>;
+
+ xclr-gpios = <&serializer 1 GPIO_ACTIVE_LOW>;
+ error0-gpios = <&serializer 2 GPIO_ACTIVE_HIGH>;
+ error1-gpios = <&serializer 3 GPIO_ACTIVE_HIGH>;
+ comready-gpios = <&serializer 0 GPIO_ACTIVE_HIGH>;
+
+ port {
+ sensor_1_out: endpoint {
+ remote-endpoint = <&ub953_1_in>;
+ };
+ };
+ };
+ };
+ };
+ };
+};