[RFC PATCH 7/8] arm64: dts: ti: k3-am62a7: FPDLink overlays for LI OV2312

Rishikesh Donadkar r-donadkar at ti.com
Sat Sep 26 22:23:54 PDT 2026



On 26/09/26 20:27, Laurent Pinchart wrote:
> On Fri, Sep 25, 2026 at 07:00:00PM +0530, Rishikesh Donadkar wrote:
>> From: Jai Luthra <j-luthra at ti.com>
>>
>> OV2312 is a raw (4x4 RGB-IR bayer) sensor, the LI-OV2312-FPDLinkIII-110H
>> module [1] packages it with an FPDLink-III serializer (DS90UB953) for
>> use with sensor fusion setups using FPDLink-III deserializer boards.
>>
>> Link: https://www.leopardimaging.com/product/autonomous-camera/ti-fpdlinkiii-cameras/li-ov2312-fpdlinkiii/li-ov2312-fpdlinkiii-110h/ [1]
>> Signed-off-by: Jai Luthra <j-luthra at ti.com>
>> Signed-off-by: Rishikesh Donadkar <r-donadkar at ti.com>
>> ---
>>   arch/arm64/boot/dts/ti/Makefile               |  6 ++
>>   .../boot/dts/ti/k3-fpdlink-ov2312-0-0.dtso    | 89 +++++++++++++++++++
>>   .../boot/dts/ti/k3-fpdlink-ov2312-0-1.dtso    | 89 +++++++++++++++++++
>>   .../boot/dts/ti/k3-fpdlink-ov2312-0-2.dtso    | 89 +++++++++++++++++++
>>   .../boot/dts/ti/k3-fpdlink-ov2312-0-3.dtso    | 89 +++++++++++++++++++
> 
> This seems to be a very strong candidate for the new DT addons
> (https://bootlin.com/blog/device-tree-addons-describing-non-discoverable-addon-boards-and-connectors/).
> It would help getting this feature merged if you could give it a try.

I would love to give it a try. However, I am quite occupied right now, I 
won't be able to start on it immediately, but I can revisit this as soon 
as my schedule clears up.

Regards,
Rishikesh
> 
>>   5 files changed, 362 insertions(+)
>>   create mode 100644 arch/arm64/boot/dts/ti/k3-fpdlink-ov2312-0-0.dtso
>>   create mode 100644 arch/arm64/boot/dts/ti/k3-fpdlink-ov2312-0-1.dtso
>>   create mode 100644 arch/arm64/boot/dts/ti/k3-fpdlink-ov2312-0-2.dtso
>>   create mode 100644 arch/arm64/boot/dts/ti/k3-fpdlink-ov2312-0-3.dtso
>>
>> diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile
>> index 795978e962ee..8d608e244087 100644
>> --- a/arch/arm64/boot/dts/ti/Makefile
>> +++ b/arch/arm64/boot/dts/ti/Makefile
>> @@ -508,5 +508,11 @@ dtb- += k3-am625-beagleplay-csi2-ov5640.dtb \
>>   	k3-j784s4-evm-usb0-type-a.dtb \
>>   	k3-j784s4-evm-usxgmii-exp1-exp2.dtb
>>   
>> +# FPDLink Sensors
>> +dtb-$(CONFIG_ARCH_K3) += k3-fpdlink-ov2312-0-0.dtbo \
>> +			 k3-fpdlink-ov2312-0-1.dtbo \
>> +			 k3-fpdlink-ov2312-0-2.dtbo \
>> +			 k3-fpdlink-ov2312-0-3.dtbo
>> +
>>   # Enable support for device-tree overlays
>>   DTC_FLAGS := -@
>> diff --git a/arch/arm64/boot/dts/ti/k3-fpdlink-ov2312-0-0.dtso b/arch/arm64/boot/dts/ti/k3-fpdlink-ov2312-0-0.dtso
>> new file mode 100644
>> index 000000000000..0829f01a0f90
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/ti/k3-fpdlink-ov2312-0-0.dtso
>> @@ -0,0 +1,89 @@
>> +// SPDX-License-Identifier: GPL-2.0
>> +/*
>> + * IMX390 FPD-Link 3 Camera Module
>> + * Copyright (c) 2023 Texas Instruments Incorporated - http://www.ti.com/
>> + */
>> +
>> +/dts-v1/;
>> +/plugin/;
>> +
>> +#include <dt-bindings/gpio/gpio.h>
>> +
>> +&deserializer_0_ports {
>> +	#address-cells = <1>;
>> +	#size-cells = <0>;
>> +
>> +	/* FPDLink RX 0 */
>> +	port at 0 {
>> +		reg = <0>;
>> +
>> +		ub960_fpd3_1_in: endpoint {
>> +			remote-endpoint = <&ub953_1_out>;
>> +		};
>> +	};
>> +};
>> +
>> +&deserializer_0_links {
>> +	#address-cells = <1>;
>> +	#size-cells = <0>;
>> +
>> +	link at 0 {
>> +		reg = <0>;
>> +		i2c-alias = <0x44>;
>> +
>> +		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 at 0 {
>> +					reg = <0>;
>> +					ub953_1_in: endpoint {
>> +						data-lanes = <1 2>;
>> +						/*clock-noncontinuous;*/
>> +						remote-endpoint = <&sensor_1_out>;
>> +					};
>> +				};
>> +
>> +				port at 1 {
>> +					reg = <1>;
>> +
>> +					ub953_1_out: endpoint {
>> +						remote-endpoint = <&ub960_fpd3_1_in>;
>> +					};
>> +				};
>> +			};
>> +
>> +			i2c {
>> +				#address-cells = <1>;
>> +				#size-cells = <0>;
>> +
>> +				sensor at 60 {
>> +					compatible = "ovti,ov2312";
>> +					reg = <0x60>;
>> +
>> +					clocks = <&serializer>;
>> +					clock-names = "xvclk";
>> +					assigned-clocks = <&serializer>;
>> +					assigned-clock-rates = <24000000>;
>> +
>> +					reset-gpios = <&serializer 2 GPIO_ACTIVE_HIGH>;
>> +
>> +					port {
>> +						sensor_1_out: endpoint {
>> +							remote-endpoint = <&ub953_1_in>;
>> +						};
>> +					};
>> +				};
>> +			};
>> +		};
>> +	};
>> +};
>> diff --git a/arch/arm64/boot/dts/ti/k3-fpdlink-ov2312-0-1.dtso b/arch/arm64/boot/dts/ti/k3-fpdlink-ov2312-0-1.dtso
>> new file mode 100644
>> index 000000000000..06cba8c7397f
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/ti/k3-fpdlink-ov2312-0-1.dtso
>> @@ -0,0 +1,89 @@
>> +// SPDX-License-Identifier: GPL-2.0
>> +/*
>> + * IMX390 FPD-Link 3 Camera Module
>> + * Copyright (c) 2023 Texas Instruments Incorporated - http://www.ti.com/
>> + */
>> +
>> +/dts-v1/;
>> +/plugin/;
>> +
>> +#include <dt-bindings/gpio/gpio.h>
>> +
>> +&deserializer_0_ports {
>> +	#address-cells = <1>;
>> +	#size-cells = <0>;
>> +
>> +	/* FPDLink RX 1 */
>> +	port at 1 {
>> +		reg = <1>;
>> +
>> +		ub960_fpd3_1_in: endpoint {
>> +			remote-endpoint = <&ub953_1_out>;
>> +		};
>> +	};
>> +};
>> +
>> +&deserializer_0_links {
>> +	#address-cells = <1>;
>> +	#size-cells = <0>;
>> +
>> +	link at 1 {
>> +		reg = <1>;
>> +		i2c-alias = <0x45>;
>> +
>> +		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 at 0 {
>> +					reg = <0>;
>> +					ub953_1_in: endpoint {
>> +						data-lanes = <1 2>;
>> +						/*clock-noncontinuous;*/
>> +						remote-endpoint = <&sensor_1_out>;
>> +					};
>> +				};
>> +
>> +				port at 1 {
>> +					reg = <1>;
>> +
>> +					ub953_1_out: endpoint {
>> +						remote-endpoint = <&ub960_fpd3_1_in>;
>> +					};
>> +				};
>> +			};
>> +
>> +			i2c {
>> +				#address-cells = <1>;
>> +				#size-cells = <0>;
>> +
>> +				sensor at 60 {
>> +					compatible = "ovti,ov2312";
>> +					reg = <0x60>;
>> +
>> +					clocks = <&serializer>;
>> +					clock-names = "xvclk";
>> +					assigned-clocks = <&serializer>;
>> +					assigned-clock-rates = <24000000>;
>> +
>> +					reset-gpios = <&serializer 2 GPIO_ACTIVE_HIGH>;
>> +
>> +					port {
>> +						sensor_1_out: endpoint {
>> +							remote-endpoint = <&ub953_1_in>;
>> +						};
>> +					};
>> +				};
>> +			};
>> +		};
>> +	};
>> +};
>> diff --git a/arch/arm64/boot/dts/ti/k3-fpdlink-ov2312-0-2.dtso b/arch/arm64/boot/dts/ti/k3-fpdlink-ov2312-0-2.dtso
>> new file mode 100644
>> index 000000000000..7d377dbe5bbf
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/ti/k3-fpdlink-ov2312-0-2.dtso
>> @@ -0,0 +1,89 @@
>> +// SPDX-License-Identifier: GPL-2.0
>> +/*
>> + * IMX390 FPD-Link 3 Camera Module
>> + * Copyright (c) 2023 Texas Instruments Incorporated - http://www.ti.com/
>> + */
>> +
>> +/dts-v1/;
>> +/plugin/;
>> +
>> +#include <dt-bindings/gpio/gpio.h>
>> +
>> +&deserializer_0_ports {
>> +	#address-cells = <1>;
>> +	#size-cells = <0>;
>> +
>> +	/* FPDLink RX 2 */
>> +	port at 2 {
>> +		reg = <2>;
>> +
>> +		ub960_fpd3_1_in: endpoint {
>> +			remote-endpoint = <&ub953_1_out>;
>> +		};
>> +	};
>> +};
>> +
>> +&deserializer_0_links {
>> +	#address-cells = <1>;
>> +	#size-cells = <0>;
>> +
>> +	link at 2 {
>> +		reg = <2>;
>> +		i2c-alias = <0x46>;
>> +
>> +		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 at 0 {
>> +					reg = <0>;
>> +					ub953_1_in: endpoint {
>> +						data-lanes = <1 2>;
>> +						/*clock-noncontinuous;*/
>> +						remote-endpoint = <&sensor_1_out>;
>> +					};
>> +				};
>> +
>> +				port at 1 {
>> +					reg = <1>;
>> +
>> +					ub953_1_out: endpoint {
>> +						remote-endpoint = <&ub960_fpd3_1_in>;
>> +					};
>> +				};
>> +			};
>> +
>> +			i2c {
>> +				#address-cells = <1>;
>> +				#size-cells = <0>;
>> +
>> +				sensor at 60 {
>> +					compatible = "ovti,ov2312";
>> +					reg = <0x60>;
>> +
>> +					clocks = <&serializer>;
>> +					clock-names = "xvclk";
>> +					assigned-clocks = <&serializer>;
>> +					assigned-clock-rates = <24000000>;
>> +
>> +					reset-gpios = <&serializer 2 GPIO_ACTIVE_HIGH>;
>> +
>> +					port {
>> +						sensor_1_out: endpoint {
>> +							remote-endpoint = <&ub953_1_in>;
>> +						};
>> +					};
>> +				};
>> +			};
>> +		};
>> +	};
>> +};
>> diff --git a/arch/arm64/boot/dts/ti/k3-fpdlink-ov2312-0-3.dtso b/arch/arm64/boot/dts/ti/k3-fpdlink-ov2312-0-3.dtso
>> new file mode 100644
>> index 000000000000..f74bff5f12b0
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/ti/k3-fpdlink-ov2312-0-3.dtso
>> @@ -0,0 +1,89 @@
>> +// SPDX-License-Identifier: GPL-2.0
>> +/*
>> + * IMX390 FPD-Link 3 Camera Module
>> + * Copyright (c) 2023 Texas Instruments Incorporated - http://www.ti.com/
>> + */
>> +
>> +/dts-v1/;
>> +/plugin/;
>> +
>> +#include <dt-bindings/gpio/gpio.h>
>> +
>> +&deserializer_0_ports {
>> +	#address-cells = <1>;
>> +	#size-cells = <0>;
>> +
>> +	/* FPDLink RX 3 */
>> +	port at 3 {
>> +		reg = <3>;
>> +
>> +		ub960_fpd3_1_in: endpoint {
>> +			remote-endpoint = <&ub953_1_out>;
>> +		};
>> +	};
>> +};
>> +
>> +&deserializer_0_links {
>> +	#address-cells = <1>;
>> +	#size-cells = <0>;
>> +
>> +	link at 3 {
>> +		reg = <3>;
>> +		i2c-alias = <0x47>;
>> +
>> +		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 at 0 {
>> +					reg = <0>;
>> +					ub953_1_in: endpoint {
>> +						data-lanes = <1 2>;
>> +						/*clock-noncontinuous;*/
>> +						remote-endpoint = <&sensor_1_out>;
>> +					};
>> +				};
>> +
>> +				port at 1 {
>> +					reg = <1>;
>> +
>> +					ub953_1_out: endpoint {
>> +						remote-endpoint = <&ub960_fpd3_1_in>;
>> +					};
>> +				};
>> +			};
>> +
>> +			i2c {
>> +				#address-cells = <1>;
>> +				#size-cells = <0>;
>> +
>> +				sensor at 60 {
>> +					compatible = "ovti,ov2312";
>> +					reg = <0x60>;
>> +
>> +					clocks = <&serializer>;
>> +					clock-names = "xvclk";
>> +					assigned-clocks = <&serializer>;
>> +					assigned-clock-rates = <24000000>;
>> +
>> +					reset-gpios = <&serializer 2 GPIO_ACTIVE_HIGH>;
>> +
>> +					port {
>> +						sensor_1_out: endpoint {
>> +							remote-endpoint = <&ub953_1_in>;
>> +						};
>> +					};
>> +				};
>> +			};
>> +		};
>> +	};
>> +};
> 




More information about the linux-arm-kernel mailing list