xref: /linux/arch/arm64/boot/dts/renesas/r8a779g3-sparrow-hawk-camera-j2-imx219.dtso (revision 4f38da1f027ea2c9f01bb71daa7a299c191b6940)
1*6e7f6aa8SNiklas Söderlund// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*6e7f6aa8SNiklas Söderlund/*
3*6e7f6aa8SNiklas Söderlund * Device Tree Overlay for an IMX219 camera sensor on connector J2 on R-Car V4H
4*6e7f6aa8SNiklas Söderlund * ES3.0 Sparrow Hawk board.
5*6e7f6aa8SNiklas Söderlund *
6*6e7f6aa8SNiklas Söderlund * Copyright 2025 Renesas Electronics Corp.
7*6e7f6aa8SNiklas Söderlund * Copyright 2025 Niklas Söderlund <niklas.soderlund@ragnatech.se>
8*6e7f6aa8SNiklas Söderlund */
9*6e7f6aa8SNiklas Söderlund
10*6e7f6aa8SNiklas Söderlund/dts-v1/;
11*6e7f6aa8SNiklas Söderlund/plugin/;
12*6e7f6aa8SNiklas Söderlund
13*6e7f6aa8SNiklas Söderlund#include <dt-bindings/gpio/gpio.h>
14*6e7f6aa8SNiklas Söderlund#include <dt-bindings/media/video-interfaces.h>
15*6e7f6aa8SNiklas Söderlund
16*6e7f6aa8SNiklas Söderlund&{/} {
17*6e7f6aa8SNiklas Söderlund	clk_cam_j2: clk-cam-j2 {
18*6e7f6aa8SNiklas Söderlund		compatible = "fixed-clock";
19*6e7f6aa8SNiklas Söderlund		#clock-cells = <0>;
20*6e7f6aa8SNiklas Söderlund		clock-frequency = <24000000>;
21*6e7f6aa8SNiklas Söderlund	};
22*6e7f6aa8SNiklas Söderlund
23*6e7f6aa8SNiklas Söderlund	/* Page 29 / CSI_IF_CN / J2 */
24*6e7f6aa8SNiklas Söderlund	reg_cam_j2: reg-cam-j2 {
25*6e7f6aa8SNiklas Söderlund		compatible = "regulator-fixed";
26*6e7f6aa8SNiklas Söderlund		regulator-name = "cam-J2";
27*6e7f6aa8SNiklas Söderlund		enable-active-high;
28*6e7f6aa8SNiklas Söderlund		gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
29*6e7f6aa8SNiklas Söderlund	};
30*6e7f6aa8SNiklas Söderlund};
31*6e7f6aa8SNiklas Söderlund
32*6e7f6aa8SNiklas Söderlund&i2c2 {
33*6e7f6aa8SNiklas Söderlund	#address-cells = <1>;
34*6e7f6aa8SNiklas Söderlund	#size-cells = <0>;
35*6e7f6aa8SNiklas Söderlund	status = "okay";
36*6e7f6aa8SNiklas Söderlund
37*6e7f6aa8SNiklas Söderlund	cam@10 {
38*6e7f6aa8SNiklas Söderlund		compatible = "sony,imx219";
39*6e7f6aa8SNiklas Söderlund		reg = <0x10>;
40*6e7f6aa8SNiklas Söderlund
41*6e7f6aa8SNiklas Söderlund		clocks = <&clk_cam_j2>;
42*6e7f6aa8SNiklas Söderlund
43*6e7f6aa8SNiklas Söderlund		VANA-supply = <&reg_cam_j2>;
44*6e7f6aa8SNiklas Söderlund		VDIG-supply = <&reg_cam_j2>;
45*6e7f6aa8SNiklas Söderlund		VDDL-supply = <&reg_cam_j2>;
46*6e7f6aa8SNiklas Söderlund
47*6e7f6aa8SNiklas Söderlund		orientation = <2>;
48*6e7f6aa8SNiklas Söderlund		rotation = <0>;
49*6e7f6aa8SNiklas Söderlund
50*6e7f6aa8SNiklas Söderlund		port {
51*6e7f6aa8SNiklas Söderlund			imx219_j2_out: endpoint {
52*6e7f6aa8SNiklas Söderlund				clock-noncontinuous;
53*6e7f6aa8SNiklas Söderlund				link-frequencies = /bits/ 64 <456000000>;
54*6e7f6aa8SNiklas Söderlund				data-lanes = <1 2>;
55*6e7f6aa8SNiklas Söderlund				remote-endpoint = <&csi41_in>;
56*6e7f6aa8SNiklas Söderlund			};
57*6e7f6aa8SNiklas Söderlund		};
58*6e7f6aa8SNiklas Söderlund	};
59*6e7f6aa8SNiklas Söderlund};
60*6e7f6aa8SNiklas Söderlund
61*6e7f6aa8SNiklas Söderlund/* Page 29 / CSI_IF_CN */
62*6e7f6aa8SNiklas Söderlund&csi41 {
63*6e7f6aa8SNiklas Söderlund	status = "okay";
64*6e7f6aa8SNiklas Söderlund
65*6e7f6aa8SNiklas Söderlund	ports {
66*6e7f6aa8SNiklas Söderlund		#address-cells = <1>;
67*6e7f6aa8SNiklas Söderlund		#size-cells = <0>;
68*6e7f6aa8SNiklas Söderlund
69*6e7f6aa8SNiklas Söderlund		port@0 {
70*6e7f6aa8SNiklas Söderlund			reg = <0>;
71*6e7f6aa8SNiklas Söderlund
72*6e7f6aa8SNiklas Söderlund			csi41_in: endpoint {
73*6e7f6aa8SNiklas Söderlund				bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
74*6e7f6aa8SNiklas Söderlund				clock-lanes = <0>;
75*6e7f6aa8SNiklas Söderlund				data-lanes = <1 2>;
76*6e7f6aa8SNiklas Söderlund				remote-endpoint = <&imx219_j2_out>;
77*6e7f6aa8SNiklas Söderlund			};
78*6e7f6aa8SNiklas Söderlund		};
79*6e7f6aa8SNiklas Söderlund	};
80*6e7f6aa8SNiklas Söderlund};
81*6e7f6aa8SNiklas Söderlund
82*6e7f6aa8SNiklas Söderlund&isp1 {
83*6e7f6aa8SNiklas Söderlund	status = "okay";
84*6e7f6aa8SNiklas Söderlund};
85*6e7f6aa8SNiklas Söderlund
86*6e7f6aa8SNiklas Söderlund&vin08 {
87*6e7f6aa8SNiklas Söderlund	status = "okay";
88*6e7f6aa8SNiklas Söderlund};
89*6e7f6aa8SNiklas Söderlund
90*6e7f6aa8SNiklas Söderlund&vin09 {
91*6e7f6aa8SNiklas Söderlund	status = "okay";
92*6e7f6aa8SNiklas Söderlund};
93*6e7f6aa8SNiklas Söderlund
94*6e7f6aa8SNiklas Söderlund&vin10 {
95*6e7f6aa8SNiklas Söderlund	status = "okay";
96*6e7f6aa8SNiklas Söderlund};
97*6e7f6aa8SNiklas Söderlund
98*6e7f6aa8SNiklas Söderlund&vin11 {
99*6e7f6aa8SNiklas Söderlund	status = "okay";
100*6e7f6aa8SNiklas Söderlund};
101*6e7f6aa8SNiklas Söderlund
102*6e7f6aa8SNiklas Söderlund&vin12 {
103*6e7f6aa8SNiklas Söderlund	status = "okay";
104*6e7f6aa8SNiklas Söderlund};
105*6e7f6aa8SNiklas Söderlund
106*6e7f6aa8SNiklas Söderlund&vin13 {
107*6e7f6aa8SNiklas Söderlund	status = "okay";
108*6e7f6aa8SNiklas Söderlund};
109*6e7f6aa8SNiklas Söderlund
110*6e7f6aa8SNiklas Söderlund&vin14 {
111*6e7f6aa8SNiklas Söderlund	status = "okay";
112*6e7f6aa8SNiklas Söderlund};
113*6e7f6aa8SNiklas Söderlund
114*6e7f6aa8SNiklas Söderlund&vin15 {
115*6e7f6aa8SNiklas Söderlund	status = "okay";
116*6e7f6aa8SNiklas Söderlund};
117