1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Device Tree Source for the Wheat board 4 * 5 * Copyright (C) 2016 Renesas Electronics Corporation 6 * Copyright (C) 2016 Cogent Embedded, Inc. 7 */ 8 9/dts-v1/; 10#include "r8a7792.dtsi" 11#include <dt-bindings/gpio/gpio.h> 12#include <dt-bindings/input/input.h> 13 14/ { 15 model = "Wheat"; 16 compatible = "renesas,wheat", "renesas,r8a7792"; 17 18 aliases { 19 serial0 = &scif0; 20 }; 21 22 chosen { 23 bootargs = "ignore_loglevel rw root=/dev/nfs ip=on"; 24 stdout-path = "serial0:115200n8"; 25 }; 26 27 memory@40000000 { 28 device_type = "memory"; 29 reg = <0 0x40000000 0 0x40000000>; 30 }; 31 32 d1_8v: regulator-1v8 { 33 compatible = "regulator-fixed"; 34 regulator-name = "D1.8V"; 35 regulator-min-microvolt = <1800000>; 36 regulator-max-microvolt = <1800000>; 37 regulator-boot-on; 38 regulator-always-on; 39 }; 40 41 d3_3v: regulator-3v3 { 42 compatible = "regulator-fixed"; 43 regulator-name = "D3.3V"; 44 regulator-min-microvolt = <3300000>; 45 regulator-max-microvolt = <3300000>; 46 regulator-boot-on; 47 regulator-always-on; 48 }; 49 50 keyboard { 51 compatible = "gpio-keys"; 52 53 key-a { 54 linux,code = <KEY_A>; 55 label = "SW2"; 56 wakeup-source; 57 debounce-interval = <20>; 58 gpios = <&gpio3 20 GPIO_ACTIVE_LOW>; 59 }; 60 key-b { 61 linux,code = <KEY_B>; 62 label = "SW3"; 63 wakeup-source; 64 debounce-interval = <20>; 65 gpios = <&gpio11 2 GPIO_ACTIVE_LOW>; 66 }; 67 }; 68 69 vcc_sdhi0: regulator-vcc-sdhi0 { 70 compatible = "regulator-fixed"; 71 72 regulator-name = "SDHI0 Vcc"; 73 regulator-min-microvolt = <3300000>; 74 regulator-max-microvolt = <3300000>; 75 76 gpio = <&gpio11 12 GPIO_ACTIVE_HIGH>; 77 enable-active-high; 78 }; 79 80 hdmi-out0 { 81 compatible = "hdmi-connector"; 82 type = "a"; 83 84 port { 85 hdmi_con0: endpoint { 86 remote-endpoint = <&adv7513_0_out>; 87 }; 88 }; 89 }; 90 91 hdmi-out1 { 92 compatible = "hdmi-connector"; 93 type = "a"; 94 95 port { 96 hdmi_con1: endpoint { 97 remote-endpoint = <&adv7513_1_out>; 98 }; 99 }; 100 }; 101 102 osc2_clk: osc2 { 103 compatible = "fixed-clock"; 104 #clock-cells = <0>; 105 clock-frequency = <74250000>; 106 }; 107}; 108 109&extal_clk { 110 clock-frequency = <20000000>; 111}; 112 113&lbsc { 114 ethernet@18000000 { 115 compatible = "smsc,lan89218", "smsc,lan9115"; 116 reg = <0x18000000 0x100>; 117 phy-mode = "mii"; 118 interrupts-extended = <&irqc 0 IRQ_TYPE_EDGE_FALLING>; 119 smsc,irq-push-pull; 120 smsc,save-mac-address; 121 reg-io-width = <4>; 122 vddvario-supply = <&d3_3v>; 123 vdd33a-supply = <&d3_3v>; 124 125 pinctrl-0 = <&lan89218_pins>; 126 pinctrl-names = "default"; 127 }; 128}; 129 130&pfc { 131 scif0_pins: scif0 { 132 groups = "scif0_data"; 133 function = "scif0"; 134 }; 135 136 lan89218_pins: lan89218 { 137 intc { 138 groups = "intc_irq0"; 139 function = "intc"; 140 }; 141 lbsc { 142 groups = "lbsc_ex_cs0"; 143 function = "lbsc"; 144 }; 145 }; 146 147 can0_pins: can0 { 148 groups = "can0_data"; 149 function = "can0"; 150 }; 151 152 can1_pins: can1 { 153 groups = "can1_data"; 154 function = "can1"; 155 }; 156 157 sdhi0_pins: sdhi0 { 158 groups = "sdhi0_data4", "sdhi0_ctrl"; 159 function = "sdhi0"; 160 }; 161 162 qspi_pins: qspi { 163 groups = "qspi_ctrl", "qspi_data4"; 164 function = "qspi"; 165 }; 166 167 du0_pins: du0 { 168 groups = "du0_rgb888", "du0_sync", "du0_disp"; 169 function = "du0"; 170 }; 171 172 du1_pins: du1 { 173 groups = "du1_rgb666", "du1_sync", "du1_disp"; 174 function = "du1"; 175 }; 176}; 177 178&rwdt { 179 timeout-sec = <60>; 180 status = "okay"; 181}; 182 183&scif0 { 184 pinctrl-0 = <&scif0_pins>; 185 pinctrl-names = "default"; 186 187 status = "okay"; 188}; 189 190&can0 { 191 pinctrl-0 = <&can0_pins>; 192 pinctrl-names = "default"; 193 194 status = "okay"; 195}; 196 197&can1 { 198 pinctrl-0 = <&can1_pins>; 199 pinctrl-names = "default"; 200 201 status = "okay"; 202}; 203 204&sdhi0 { 205 pinctrl-0 = <&sdhi0_pins>; 206 pinctrl-names = "default"; 207 208 vmmc-supply = <&vcc_sdhi0>; 209 cd-gpios = <&gpio11 11 GPIO_ACTIVE_LOW>; 210 status = "okay"; 211}; 212 213&qspi { 214 pinctrl-0 = <&qspi_pins>; 215 pinctrl-names = "default"; 216 status = "okay"; 217 218 flash@0 { 219 compatible = "spansion,s25fl512s", "jedec,spi-nor"; 220 reg = <0>; 221 spi-max-frequency = <30000000>; 222 spi-tx-bus-width = <4>; 223 spi-rx-bus-width = <4>; 224 spi-cpol; 225 spi-cpha; 226 m25p,fast-read; 227 228 partitions { 229 compatible = "fixed-partitions"; 230 #address-cells = <1>; 231 #size-cells = <1>; 232 233 partition@0 { 234 label = "loader"; 235 reg = <0x00000000 0x00040000>; 236 read-only; 237 }; 238 partition@40000 { 239 label = "user"; 240 reg = <0x00040000 0x00400000>; 241 read-only; 242 }; 243 partition@440000 { 244 label = "flash"; 245 reg = <0x00440000 0x03bc0000>; 246 }; 247 }; 248 }; 249}; 250 251&i2c4 { 252 status = "okay"; 253 clock-frequency = <400000>; 254 255 /* 256 * The adv75xx resets its addresses to defaults during low power mode. 257 * Because we have two ADV7513 devices on the same bus, we must change 258 * both of them away from the defaults so that they do not conflict. 259 */ 260 hdmi@3d { 261 compatible = "adi,adv7513"; 262 reg = <0x3d>, <0x4d>, <0x2d>, <0x5d>; 263 reg-names = "main", "edid", "cec", "packet"; 264 265 avdd-supply = <&d1_8v>; 266 dvdd-supply = <&d1_8v>; 267 pvdd-supply = <&d1_8v>; 268 dvdd-3v-supply = <&d3_3v>; 269 bgvdd-supply = <&d1_8v>; 270 271 adi,input-depth = <8>; 272 adi,input-colorspace = "rgb"; 273 adi,input-clock = "1x"; 274 275 ports { 276 #address-cells = <1>; 277 #size-cells = <0>; 278 279 port@0 { 280 reg = <0>; 281 adv7513_0_in: endpoint { 282 remote-endpoint = <&du_out_rgb0>; 283 }; 284 }; 285 286 port@1 { 287 reg = <1>; 288 adv7513_0_out: endpoint { 289 remote-endpoint = <&hdmi_con0>; 290 }; 291 }; 292 }; 293 }; 294 295 hdmi@39 { 296 compatible = "adi,adv7513"; 297 reg = <0x39>, <0x49>, <0x29>, <0x59>; 298 reg-names = "main", "edid", "cec", "packet"; 299 300 avdd-supply = <&d1_8v>; 301 dvdd-supply = <&d1_8v>; 302 pvdd-supply = <&d1_8v>; 303 dvdd-3v-supply = <&d3_3v>; 304 bgvdd-supply = <&d1_8v>; 305 306 adi,input-depth = <8>; 307 adi,input-colorspace = "rgb"; 308 adi,input-clock = "1x"; 309 310 ports { 311 #address-cells = <1>; 312 #size-cells = <0>; 313 314 port@0 { 315 reg = <0>; 316 adv7513_1_in: endpoint { 317 remote-endpoint = <&du_out_rgb1>; 318 }; 319 }; 320 321 port@1 { 322 reg = <1>; 323 adv7513_1_out: endpoint { 324 remote-endpoint = <&hdmi_con1>; 325 }; 326 }; 327 }; 328 }; 329}; 330 331&du { 332 pinctrl-0 = <&du0_pins>, <&du1_pins>; 333 pinctrl-names = "default"; 334 335 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&osc2_clk>; 336 clock-names = "du.0", "du.1", "dclkin.0"; 337 status = "okay"; 338 339 ports { 340 port@0 { 341 endpoint { 342 remote-endpoint = <&adv7513_0_in>; 343 }; 344 }; 345 port@1 { 346 endpoint { 347 remote-endpoint = <&adv7513_1_in>; 348 }; 349 }; 350 }; 351}; 352