| // 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"; |
| }; |