// SPDX-License-Identifier: GPL-2.0 /* * Device Tree Source for the Eagle V3M Function expansion board. * * Copyright (C) 2024 Niklas Söderlund */ /dts-v1/; /plugin/; #include #include / { /* 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"; };