Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

arm64: dts: renesas: eagle: Add capture overlay for Function expansion board

The Eagle board supports an optional "Function expansion board".
The expansion board adds support for HDMI OUT, HDMI capture from two
different sources, and eMMC.

This change only adds support for the two HDMI capture sources.

Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20240224191902.2065733-1-niklas.soderlund+renesas@ragnatech.se
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>

authored by

Niklas Söderlund and committed by
Geert Uytterhoeven
93e09fdc 4cece764

+217
+3
arch/arm64/boot/dts/renesas/Makefile
··· 62 62 dtb-$(CONFIG_ARCH_R8A77965) += r8a77965-ulcb-kf.dtb 63 63 64 64 dtb-$(CONFIG_ARCH_R8A77970) += r8a77970-eagle.dtb 65 + dtb-$(CONFIG_ARCH_R8A77970) += r8a77970-eagle-function-expansion.dtbo 66 + r8a77970-eagle-function-expansion-dtbs := r8a77970-eagle.dtb r8a77970-eagle-function-expansion.dtbo 67 + dtb-$(CONFIG_ARCH_R8A77970) += r8a77970-eagle-function-expansion.dtb 65 68 dtb-$(CONFIG_ARCH_R8A77970) += r8a77970-v3msk.dtb 66 69 67 70 dtb-$(CONFIG_ARCH_R8A77980) += r8a77980-condor.dtb
+214
arch/arm64/boot/dts/renesas/r8a77970-eagle-function-expansion.dtso
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + /* 3 + * Device Tree Source for the Eagle V3M Function expansion board. 4 + * 5 + * Copyright (C) 2024 Niklas Söderlund <niklas.soderlund@ragnatech.se> 6 + */ 7 + 8 + /dts-v1/; 9 + /plugin/; 10 + 11 + #include <dt-bindings/gpio/gpio.h> 12 + #include <dt-bindings/interrupt-controller/irq.h> 13 + 14 + / { 15 + /* CN4 */ 16 + /* Eagle: SW18 set to OFF */ 17 + cvbs-in-cn4 { 18 + compatible = "composite-video-connector"; 19 + label = "CVBS IN CN4"; 20 + 21 + port { 22 + cvbs_con: endpoint { 23 + remote-endpoint = <&adv7482_ain7>; 24 + }; 25 + }; 26 + }; 27 + 28 + /* CN2 */ 29 + /* Eagle: SW35 set 5, 6 and 8 to OFF */ 30 + hdmi-in-cn2 { 31 + compatible = "hdmi-connector"; 32 + label = "HDMI IN CN2"; 33 + type = "a"; 34 + 35 + port { 36 + hdmi_in_con2: endpoint { 37 + remote-endpoint = <&adv7612_in>; 38 + }; 39 + }; 40 + }; 41 + 42 + /* CN3 */ 43 + /* Eagle: SW18 set to OFF */ 44 + hdmi-in-cn3 { 45 + compatible = "hdmi-connector"; 46 + label = "HDMI IN CN3"; 47 + type = "a"; 48 + 49 + port { 50 + hdmi_in_con: endpoint { 51 + remote-endpoint = <&adv7482_hdmi>; 52 + }; 53 + }; 54 + }; 55 + }; 56 + 57 + /* Disconnect MAX9286 GMSL I2C. */ 58 + &i2c3 { 59 + status = "disabled"; 60 + }; 61 + 62 + /* Connect expansion board I2C. */ 63 + &i2c0 { 64 + #address-cells = <1>; 65 + #size-cells = <0>; 66 + 67 + gpio@27 { 68 + compatible = "onnn,pca9654"; 69 + reg = <0x27>; 70 + gpio-controller; 71 + #gpio-cells = <2>; 72 + 73 + vin0_adv7612_en { 74 + gpio-hog; 75 + gpios = <3 GPIO_ACTIVE_LOW>; 76 + output-high; 77 + line-name = "VIN0_ADV7612_ENn"; 78 + }; 79 + }; 80 + 81 + hdmi-decoder@4c { 82 + compatible = "adi,adv7612"; 83 + reg = <0x4c>, <0x50>, <0x52>, <0x54>, <0x56>, <0x58>; 84 + reg-names = "main", "afe", "rep", "edid", "hdmi", "cp"; 85 + interrupt-parent = <&gpio3>; 86 + interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 87 + default-input = <0>; 88 + 89 + ports { 90 + #address-cells = <1>; 91 + #size-cells = <0>; 92 + 93 + port@0 { 94 + reg = <0>; 95 + 96 + adv7612_in: endpoint { 97 + remote-endpoint = <&hdmi_in_con2>; 98 + }; 99 + }; 100 + 101 + port@2 { 102 + reg = <2>; 103 + 104 + adv7612_out: endpoint { 105 + remote-endpoint = <&vin0_in>; 106 + }; 107 + }; 108 + }; 109 + }; 110 + 111 + video-receiver@70 { 112 + compatible = "adi,adv7482"; 113 + reg = <0x70 0x71 0x72 0x73 0x74 0x75 114 + 0x60 0x61 0x62 0x63 0x64 0x65>; 115 + reg-names = "main", "dpll", "cp", "hdmi", "edid", "repeater", 116 + "infoframe", "cbus", "cec", "sdp", "txa", "txb" ; 117 + interrupt-parent = <&gpio3>; 118 + interrupts = <03 IRQ_TYPE_LEVEL_LOW>, <04 IRQ_TYPE_LEVEL_LOW>; 119 + interrupt-names = "intrq1", "intrq2"; 120 + 121 + ports { 122 + #address-cells = <1>; 123 + #size-cells = <0>; 124 + 125 + port@7 { 126 + reg = <7>; 127 + 128 + adv7482_ain7: endpoint { 129 + remote-endpoint = <&cvbs_con>; 130 + }; 131 + }; 132 + 133 + port@8 { 134 + reg = <8>; 135 + 136 + adv7482_hdmi: endpoint { 137 + remote-endpoint = <&hdmi_in_con>; 138 + }; 139 + }; 140 + 141 + port@a { 142 + reg = <10>; 143 + 144 + adv7482_txa: endpoint { 145 + clock-lanes = <0>; 146 + data-lanes = <1 2 3 4>; 147 + remote-endpoint = <&csi40_in>; 148 + }; 149 + }; 150 + }; 151 + }; 152 + 153 + }; 154 + 155 + &csi40 { 156 + status = "okay"; 157 + 158 + ports { 159 + #address-cells = <1>; 160 + #size-cells = <0>; 161 + 162 + port@0 { 163 + reg = <0>; 164 + 165 + csi40_in: endpoint { 166 + clock-lanes = <0>; 167 + data-lanes = <1 2 3 4>; 168 + remote-endpoint = <&adv7482_txa>; 169 + }; 170 + }; 171 + }; 172 + }; 173 + 174 + &pfc { 175 + vin0_pins_parallel: vin0 { 176 + groups = "vin0_data12", "vin0_sync", "vin0_clk", "vin0_clkenb"; 177 + function = "vin0"; 178 + }; 179 + }; 180 + 181 + &vin0 { 182 + status = "okay"; 183 + 184 + pinctrl-0 = <&vin0_pins_parallel>; 185 + pinctrl-names = "default"; 186 + 187 + ports { 188 + #address-cells = <1>; 189 + #size-cells = <0>; 190 + 191 + port@0 { 192 + reg = <0>; 193 + 194 + vin0_in: endpoint { 195 + pclk-sample = <0>; 196 + hsync-active = <0>; 197 + vsync-active = <0>; 198 + remote-endpoint = <&adv7612_out>; 199 + }; 200 + }; 201 + }; 202 + }; 203 + 204 + &vin1 { 205 + status = "okay"; 206 + }; 207 + 208 + &vin2 { 209 + status = "okay"; 210 + }; 211 + 212 + &vin3 { 213 + status = "okay"; 214 + };