LingmoOS-kernel/arch/arm64/boot/dts/renesas/r8a77970-eagle-function-exp...

215 lines
3.4 KiB
Plaintext

// SPDX-License-Identifier: GPL-2.0
/*
* Device Tree Source for the Eagle V3M Function expansion board.
*
* Copyright (C) 2024 Niklas Söderlund <niklas.soderlund@ragnatech.se>
*/
/dts-v1/;
/plugin/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
/ {
/* CN4 */
/* Eagle: SW18 set to OFF */
cvbs-in-cn4 {
compatible = "composite-video-connector";
label = "CVBS IN CN4";
port {
cvbs_con: endpoint {
remote-endpoint = <&adv7482_ain7>;
};
};
};
/* CN2 */
/* Eagle: SW35 set 5, 6 and 8 to OFF */
hdmi-in-cn2 {
compatible = "hdmi-connector";
label = "HDMI IN CN2";
type = "a";
port {
hdmi_in_con2: endpoint {
remote-endpoint = <&adv7612_in>;
};
};
};
/* CN3 */
/* Eagle: SW18 set to OFF */
hdmi-in-cn3 {
compatible = "hdmi-connector";
label = "HDMI IN CN3";
type = "a";
port {
hdmi_in_con: endpoint {
remote-endpoint = <&adv7482_hdmi>;
};
};
};
};
/* Disconnect MAX9286 GMSL I2C. */
&i2c3 {
status = "disabled";
};
/* Connect expansion board I2C. */
&i2c0 {
#address-cells = <1>;
#size-cells = <0>;
gpio@27 {
compatible = "onnn,pca9654";
reg = <0x27>;
gpio-controller;
#gpio-cells = <2>;
vin0_adv7612_en {
gpio-hog;
gpios = <3 GPIO_ACTIVE_LOW>;
output-high;
line-name = "VIN0_ADV7612_ENn";
};
};
hdmi-decoder@4c {
compatible = "adi,adv7612";
reg = <0x4c>, <0x50>, <0x52>, <0x54>, <0x56>, <0x58>;
reg-names = "main", "afe", "rep", "edid", "hdmi", "cp";
interrupt-parent = <&gpio3>;
interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
default-input = <0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
adv7612_in: endpoint {
remote-endpoint = <&hdmi_in_con2>;
};
};
port@2 {
reg = <2>;
adv7612_out: endpoint {
remote-endpoint = <&vin0_in>;
};
};
};
};
video-receiver@70 {
compatible = "adi,adv7482";
reg = <0x70 0x71 0x72 0x73 0x74 0x75
0x60 0x61 0x62 0x63 0x64 0x65>;
reg-names = "main", "dpll", "cp", "hdmi", "edid", "repeater",
"infoframe", "cbus", "cec", "sdp", "txa", "txb" ;
interrupt-parent = <&gpio3>;
interrupts = <03 IRQ_TYPE_LEVEL_LOW>, <04 IRQ_TYPE_LEVEL_LOW>;
interrupt-names = "intrq1", "intrq2";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@7 {
reg = <7>;
adv7482_ain7: endpoint {
remote-endpoint = <&cvbs_con>;
};
};
port@8 {
reg = <8>;
adv7482_hdmi: endpoint {
remote-endpoint = <&hdmi_in_con>;
};
};
port@a {
reg = <10>;
adv7482_txa: endpoint {
clock-lanes = <0>;
data-lanes = <1 2 3 4>;
remote-endpoint = <&csi40_in>;
};
};
};
};
};
&csi40 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
csi40_in: endpoint {
clock-lanes = <0>;
data-lanes = <1 2 3 4>;
remote-endpoint = <&adv7482_txa>;
};
};
};
};
&pfc {
vin0_pins_parallel: vin0 {
groups = "vin0_data12", "vin0_sync", "vin0_clk", "vin0_clkenb";
function = "vin0";
};
};
&vin0 {
status = "okay";
pinctrl-0 = <&vin0_pins_parallel>;
pinctrl-names = "default";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
vin0_in: endpoint {
pclk-sample = <0>;
hsync-active = <0>;
vsync-active = <0>;
remote-endpoint = <&adv7612_out>;
};
};
};
};
&vin1 {
status = "okay";
};
&vin2 {
status = "okay";
};
&vin3 {
status = "okay";
};