public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: Nishanth Menon <nm@ti.com>
To: Yemike Abhilash Chandra <y-abhilashchandra@ti.com>
Cc: <vigneshr@ti.com>, <kristo@kernel.org>, <robh@kernel.org>,
	<krzk+dt@kernel.org>, <conor+dt@kernel.org>, <vaishnav.a@ti.com>,
	<u-kumar1@ti.com>, <r-donadkar@ti.com>,
	<devicetree@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <jai.luthra@linux.dev>,
	<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 3/4] arm64: dts: ti: k3-j722s-evm: Add overlay for quad IMX219
Date: Thu, 8 May 2025 21:22:44 -0500	[thread overview]
Message-ID: <20250509022244.pwdcwy3hra7ybmvu@scouts> (raw)
In-Reply-To: <20250508155134.2026300-4-y-abhilashchandra@ti.com>

On 21:21-20250508, Yemike Abhilash Chandra wrote:
> From: Vaishnav Achath <vaishnav.a@ti.com>
> 
> RPi v2 Camera (IMX219) is an 8MP camera that can be used with J722S EVM
> through the 22-pin CSI-RX connector. Add a reference overlay for quad
> IMX219 RPI camera v2 modules on J722S EVM
> 
> Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
> Signed-off-by: Yemike Abhilash Chandra <y-abhilashchandra@ti.com>
> ---
>  arch/arm64/boot/dts/ti/Makefile               |   5 +
>  ...k3-j722s-evm-csi2-quad-rpi-cam-imx219.dtso | 329 ++++++++++++++++++
>  2 files changed, 334 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/ti/k3-j722s-evm-csi2-quad-rpi-cam-imx219.dtso
> 
> diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile
> index 3c3aa09a94b6..b317eaff64cc 100644
> --- a/arch/arm64/boot/dts/ti/Makefile
> +++ b/arch/arm64/boot/dts/ti/Makefile
> @@ -132,6 +132,7 @@ dtb-$(CONFIG_ARCH_K3) += k3-j721s2-evm-pcie1-ep.dtbo
>  # Boards with J722s SoC
>  dtb-$(CONFIG_ARCH_K3) += k3-am67a-beagley-ai.dtb
>  dtb-$(CONFIG_ARCH_K3) += k3-j722s-evm.dtb
> +dtb-$(CONFIG_ARCH_K3) += k3-j722s-evm-csi2-quad-rpi-cam-imx219.dtbo
>  
>  # Boards with J784s4 SoC
>  dtb-$(CONFIG_ARCH_K3) += k3-am69-sk.dtb
> @@ -227,6 +228,8 @@ k3-j721s2-evm-pcie1-ep-dtbs := k3-j721s2-common-proc-board.dtb \
>  	k3-j721s2-evm-pcie1-ep.dtbo
>  k3-j742s2-evm-usb0-type-a-dtbs := k3-j742s2-evm.dtb \
>  	k3-j784s4-j742s2-evm-usb0-type-a.dtbo
> +k3-j722s-evm-csi2-quad-rpi-cam-imx219-dtbs := k3-j722s-evm.dtb \
> +	k3-j722s-evm-csi2-quad-rpi-cam-imx219.dtbo

I should have caught this earlier.. but anyway.. i missed.. but:

Here and..
>  k3-j784s4-evm-pcie0-pcie1-ep-dtbs := k3-j784s4-evm.dtb \
>  	k3-j784s4-evm-pcie0-pcie1-ep.dtbo
>  k3-j784s4-evm-quad-port-eth-exp1-dtbs := k3-j784s4-evm.dtb \
> @@ -264,6 +267,7 @@ dtb- += k3-am625-beagleplay-csi2-ov5640.dtb \
>  	k3-j721e-sk-csi2-dual-imx219.dtb \
>  	k3-j721s2-evm-pcie1-ep.dtb \
>  	k3-j742s2-evm-usb0-type-a.dtb \
> +	k3-j722s-evm-csi2-quad-rpi-cam-imx219.dtb \
Here..
We have kept this alpha sorted so far. Please stick with the
convention - keeps us all sane.


>  	k3-j784s4-evm-pcie0-pcie1-ep.dtb \
>  	k3-j784s4-evm-quad-port-eth-exp1.dtb \
>  	k3-j784s4-evm-usb0-type-a.dtb \
> @@ -288,5 +292,6 @@ DTC_FLAGS_k3-j721e-common-proc-board += -@
>  DTC_FLAGS_k3-j721e-evm-pcie0-ep += -@
>  DTC_FLAGS_k3-j721e-sk += -@
>  DTC_FLAGS_k3-j721s2-common-proc-board += -@
> +DTC_FLAGS_k3-j722s-evm += -@

I think you got this one fine.

>  DTC_FLAGS_k3-j784s4-evm += -@
>  DTC_FLAGS_k3-j742s2-evm += -@

I know this is an aberration.. but anyways.. just one off..

> diff --git a/arch/arm64/boot/dts/ti/k3-j722s-evm-csi2-quad-rpi-cam-imx219.dtso b/arch/arm64/boot/dts/ti/k3-j722s-evm-csi2-quad-rpi-cam-imx219.dtso
> new file mode 100644
> index 000000000000..5e5f08dd2ba9
> --- /dev/null
> +++ b/arch/arm64/boot/dts/ti/k3-j722s-evm-csi2-quad-rpi-cam-imx219.dtso
> @@ -0,0 +1,329 @@
> +// SPDX-License-Identifier: GPL-2.0-only OR MIT
> +/*
> + * DT Overlay for RPi Camera V2.1 on J722S-EVM board.
> + *
> + * Copyright (C) 2025 Texas Instruments Incorporated - https://www.ti.com/
> + *
> + * Schematics: https://datasheets.raspberrypi.com/camera/camera-v2-schematics.pdf
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include "k3-pinctrl.h"
> +
> +&main_pmx0 {
> +	cam0_reset_pins_default: cam0-default-reset-pins {
> +		pinctrl-single,pins = <
> +			J722S_IOPAD(0x03c, PIN_OUTPUT, 7) /* (R22) GPIO0_15 */
> +		>;
> +	};
> +
> +	cam1_reset_pins_default: cam1-default-reset-pins {
> +		pinctrl-single,pins = <
> +			J722S_IOPAD(0x044, PIN_OUTPUT, 7) /* (R26) GPIO0_17 */
> +		>;
> +	};
> +
> +	cam2_reset_pins_default: cam2-default-reset-pins {
> +		pinctrl-single,pins = <
> +			J722S_IOPAD(0x04c, PIN_OUTPUT, 7) /* (T25) GPIO0_19 */
> +		>;
> +	};
> +
> +	cam3_reset_pins_default: cam3-default-reset-pins {
> +		pinctrl-single,pins = <
> +			J722S_IOPAD(0x054, PIN_OUTPUT, 7) /* (T21) GPIO0_21 */
> +		>;
> +	};
> +};
> +
> +&{/} {
> +	clk_imx219_fixed: clock-24000000 {
> +		compatible = "fixed-clock";
> +		#clock-cells = <0>;
> +		clock-frequency = <24000000>;
> +	};
> +
> +	reg_2p8v: regulator-2p8v {
> +		compatible = "regulator-fixed";
> +		regulator-name = "2P8V";
> +		regulator-min-microvolt = <2800000>;
> +		regulator-max-microvolt = <2800000>;
> +		vin-supply = <&vcc_3v3_exp>;
> +		regulator-always-on;
> +	};
> +
> +	reg_1p8v: regulator-1p8v {
> +		compatible = "regulator-fixed";
> +		regulator-name = "1P8V";
> +		regulator-min-microvolt = <1800000>;
> +		regulator-max-microvolt = <1800000>;
> +		vin-supply = <&vcc_3v3_exp>;
> +		regulator-always-on;
> +	};
> +
> +	reg_1p2v: regulator-1p2v {
> +		compatible = "regulator-fixed";
> +		regulator-name = "1P2V";
> +		regulator-min-microvolt = <1200000>;
> +		regulator-max-microvolt = <1200000>;
> +		vin-supply = <&vcc_3v3_exp>;
> +		regulator-always-on;
> +	};
> +};
> +
> +&csi01_mux {
> +	idle-state = <1>;
> +};
> +
> +&csi23_mux {
> +	idle-state = <1>;
> +};
> +
> +&pca9543_0 {
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +
> +	/* CAM0 I2C */
> +	i2c@0 {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		reg = <0>;
> +
> +		imx219_0: sensor@10 {
> +			compatible = "sony,imx219";
> +			reg = <0x10>;
> +
> +			clocks = <&clk_imx219_fixed>;
> +
> +			VANA-supply = <&reg_2p8v>;
> +			VDIG-supply = <&reg_1p8v>;
> +			VDDL-supply = <&reg_1p2v>;
> +
> +			pinctrl-names = "default";
> +			pinctrl-0 = <&cam0_reset_pins_default>;
> +
> +			reset-gpios = <&main_gpio0 15 GPIO_ACTIVE_HIGH>;
> +
> +			port {
> +				csi2_cam0: endpoint {
> +					remote-endpoint = <&csi2rx0_in_sensor>;
> +					link-frequencies = /bits/ 64 <456000000>;
> +					clock-lanes = <0>;
> +					data-lanes = <1 2>;
> +				};
> +			};
> +		};
> +	};
> +
> +	/* CAM1 I2C */
> +	i2c@1 {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		reg = <1>;
> +
> +		imx219_1: sensor@10 {
> +			compatible = "sony,imx219";
> +			reg = <0x10>;
> +
> +			clocks = <&clk_imx219_fixed>;
> +
> +			VANA-supply = <&reg_2p8v>;
> +			VDIG-supply = <&reg_1p8v>;
> +			VDDL-supply = <&reg_1p2v>;
> +
> +			pinctrl-names = "default";
> +			pinctrl-0 = <&cam1_reset_pins_default>;
> +
> +			reset-gpios = <&main_gpio0 17 GPIO_ACTIVE_HIGH>;
> +
> +			port {
> +				csi2_cam1: endpoint {
> +					remote-endpoint = <&csi2rx1_in_sensor>;
> +					link-frequencies = /bits/ 64 <456000000>;
> +					clock-lanes = <0>;
> +					data-lanes = <1 2>;
> +				};
> +			};
> +		};
> +	};
> +};
> +
> +&pca9543_1 {
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +
> +	/* CAM0 I2C */
> +	i2c@0 {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		reg = <0>;
> +
> +		imx219_2: sensor@10 {
> +			compatible = "sony,imx219";
> +			reg = <0x10>;
> +
> +			clocks = <&clk_imx219_fixed>;
> +
> +			VANA-supply = <&reg_2p8v>;
> +			VDIG-supply = <&reg_1p8v>;
> +			VDDL-supply = <&reg_1p2v>;
> +
> +			pinctrl-names = "default";
> +			pinctrl-0 = <&cam2_reset_pins_default>;
> +
> +			reset-gpios = <&main_gpio0 19 GPIO_ACTIVE_HIGH>;
> +
> +			port {
> +				csi2_cam2: endpoint {
> +					remote-endpoint = <&csi2rx2_in_sensor>;
> +					link-frequencies = /bits/ 64 <456000000>;
> +					clock-lanes = <0>;
> +					data-lanes = <1 2>;
> +				};
> +			};
> +		};
> +	};
> +
> +	/* CAM1 I2C */
> +	i2c@1 {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		reg = <1>;
> +
> +		imx219_3: sensor@10 {
> +			compatible = "sony,imx219";
> +			reg = <0x10>;
> +
> +			clocks = <&clk_imx219_fixed>;
> +
> +			VANA-supply = <&reg_2p8v>;
> +			VDIG-supply = <&reg_1p8v>;
> +			VDDL-supply = <&reg_1p2v>;
> +
> +			pinctrl-names = "default";
> +			pinctrl-0 = <&cam3_reset_pins_default>;
> +
> +			reset-gpios = <&main_gpio0 21 GPIO_ACTIVE_HIGH>;
> +
> +			port {
> +				csi2_cam3: endpoint {
> +					remote-endpoint = <&csi2rx3_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>;
> +			};
> +		};
> +	};
> +};
> +
> +&cdns_csi2rx1 {
> +	ports {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		csi1_port0: port@0 {
> +			reg = <0>;
> +			status = "okay";
> +
> +			csi2rx1_in_sensor: endpoint {
> +				remote-endpoint = <&csi2_cam1>;
> +				bus-type = <4>; /* CSI2 DPHY */
> +				clock-lanes = <0>;
> +				data-lanes = <1 2>;
> +			};
> +		};
> +	};
> +};
> +
> +&cdns_csi2rx2 {
> +	ports {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		csi2_port0: port@0 {
> +			reg = <0>;
> +			status = "okay";
> +
> +			csi2rx2_in_sensor: endpoint {
> +				remote-endpoint = <&csi2_cam2>;
> +				bus-type = <4>; /* CSI2 DPHY */
> +				clock-lanes = <0>;
> +				data-lanes = <1 2>;
> +			};
> +		};
> +	};
> +};
> +
> +&cdns_csi2rx3 {
> +	ports {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		csi3_port0: port@0 {
> +			reg = <0>;
> +			status = "okay";
> +
> +			csi2rx3_in_sensor: endpoint {
> +				remote-endpoint = <&csi2_cam3>;
> +				bus-type = <4>; /* CSI2 DPHY */
> +				clock-lanes = <0>;
> +				data-lanes = <1 2>;
> +			};
> +		};
> +	};
> +};
> +
> +&ti_csi2rx0 {
> +	status = "okay";
> +};
> +
> +&dphy0 {
> +	status = "okay";
> +};
> +
> +&ti_csi2rx1 {
> +	status = "okay";
> +};
> +
> +&dphy1 {
> +	status = "okay";
> +};
> +
> +&ti_csi2rx2 {
> +	status = "okay";
> +};
> +
> +&dphy2 {
> +	status = "okay";
> +};
> +
> +&ti_csi2rx3 {
> +	status = "okay";
> +};
> +
> +&dphy3 {
> +	status = "okay";
> +};
> -- 
> 2.34.1
> 

-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D


  reply	other threads:[~2025-05-09  2:25 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-08 15:51 [PATCH v2 0/4] Add overlays for IMX219 and OV5640 on J722S Yemike Abhilash Chandra
2025-05-08 15:51 ` [PATCH v2 1/4] arm64: dts: ti: j722s-evm: Add DT nodes for power regulators Yemike Abhilash Chandra
2025-05-09  7:44   ` Kumar, Udit
2025-05-08 15:51 ` [PATCH v2 2/4] arm64: dts: ti: j722s-evm: Add MUX to control CSI2RX Yemike Abhilash Chandra
2025-05-09  7:48   ` Kumar, Udit
2025-05-08 15:51 ` [PATCH v2 3/4] arm64: dts: ti: k3-j722s-evm: Add overlay for quad IMX219 Yemike Abhilash Chandra
2025-05-09  2:22   ` Nishanth Menon [this message]
2025-05-09  7:50   ` Kumar, Udit
2025-05-08 15:51 ` [PATCH v2 4/4] arm64: dts: ti: k3-j722s-evm: Add overlay for TEVI OV5640 Yemike Abhilash Chandra
2025-05-09  2:23   ` Nishanth Menon
2025-05-09  7:52   ` Kumar, Udit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250509022244.pwdcwy3hra7ybmvu@scouts \
    --to=nm@ti.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=jai.luthra@linux.dev \
    --cc=kristo@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=r-donadkar@ti.com \
    --cc=robh@kernel.org \
    --cc=u-kumar1@ti.com \
    --cc=vaishnav.a@ti.com \
    --cc=vigneshr@ti.com \
    --cc=y-abhilashchandra@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox