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