1 // SPDX-License-Identifier: GPL-2.0
3 * Device Tree Source for the Draak board
5 * Copyright (C) 2016-2018 Renesas Electronics Corp.
6 * Copyright (C) 2017 Glider bvba
10 #include "r8a77995.dtsi"
11 #include <dt-bindings/gpio/gpio.h>
12 #include <dt-bindings/input/input.h>
15 model = "Renesas Draak board based on r8a77995";
16 compatible = "renesas,draak", "renesas,r8a77995";
23 backlight: backlight {
24 compatible = "pwm-backlight";
25 pwms = <&pwm1 0 50000>;
27 brightness-levels = <512 511 505 494 473 440 392 327 241 133 0>;
28 default-brightness-level = <10>;
30 power-supply = <®_12p0v>;
31 enable-gpios = <&gpio4 0 GPIO_ACTIVE_HIGH>;
35 bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
36 stdout-path = "serial0:115200n8";
40 compatible = "composite-video-connector";
43 composite_con_in: endpoint {
44 remote-endpoint = <&adv7180_in>;
50 compatible = "hdmi-connector";
54 hdmi_con_in: endpoint {
55 remote-endpoint = <&adv7612_in>;
61 compatible = "hdmi-connector";
65 hdmi_con_out: endpoint {
66 remote-endpoint = <&adv7511_out>;
72 compatible = "gpio-keys";
74 pinctrl-0 = <&keys_pins>;
75 pinctrl-names = "default";
78 gpios = <&gpio4 12 GPIO_ACTIVE_LOW>;
82 debounce-interval = <20>;
85 gpios = <&gpio4 13 GPIO_ACTIVE_LOW>;
89 debounce-interval = <20>;
92 gpios = <&gpio4 14 GPIO_ACTIVE_LOW>;
96 debounce-interval = <20>;
99 gpios = <&gpio4 15 GPIO_ACTIVE_LOW>;
100 linux,code = <KEY_4>;
103 debounce-interval = <20>;
108 compatible = "thine,thc63lvd1024";
109 vcc-supply = <®_3p3v>;
112 #address-cells = <1>;
117 thc63lvd1024_in: endpoint {
118 remote-endpoint = <&lvds0_out>;
124 thc63lvd1024_out: endpoint {
125 remote-endpoint = <&adv7511_in>;
132 device_type = "memory";
133 /* first 128MB is reserved for secure area. */
134 reg = <0x0 0x48000000 0x0 0x18000000>;
137 reg_1p8v: regulator-1p8v {
138 compatible = "regulator-fixed";
139 regulator-name = "fixed-1.8V";
140 regulator-min-microvolt = <1800000>;
141 regulator-max-microvolt = <1800000>;
146 reg_3p3v: regulator-3p3v {
147 compatible = "regulator-fixed";
148 regulator-name = "fixed-3.3V";
149 regulator-min-microvolt = <3300000>;
150 regulator-max-microvolt = <3300000>;
155 reg_12p0v: regulator-12p0v {
156 compatible = "regulator-fixed";
157 regulator-name = "D12.0V";
158 regulator-min-microvolt = <12000000>;
159 regulator-max-microvolt = <12000000>;
165 compatible = "vga-connector";
169 remote-endpoint = <&adv7123_out>;
175 compatible = "adi,adv7123";
178 #address-cells = <1>;
183 adv7123_in: endpoint {
184 remote-endpoint = <&du_out_rgb>;
189 adv7123_out: endpoint {
190 remote-endpoint = <&vga_in>;
197 compatible = "fixed-clock";
199 clock-frequency = <74250000>;
204 pinctrl-0 = <&avb0_pins>;
205 pinctrl-names = "default";
206 renesas,no-ether-link;
207 phy-handle = <&phy0>;
210 phy0: ethernet-phy@0 {
211 rxc-skew-ps = <1500>;
213 interrupt-parent = <&gpio5>;
214 interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
216 * TX clock internal delay mode is required for reliable
217 * 1Gbps communication using the KSZ9031RNX phy present on
218 * the Draak board, however, TX clock internal delay mode
219 * isn't supported on r8a77995. Thus, limit speed to
220 * 100Mbps for reliable communication.
227 pinctrl-0 = <&can0_pins>;
228 pinctrl-names = "default";
233 pinctrl-0 = <&can1_pins>;
234 pinctrl-names = "default";
239 pinctrl-0 = <&du_pins>;
240 pinctrl-names = "default";
243 clocks = <&cpg CPG_MOD 724>,
246 clock-names = "du.0", "du.1", "dclkin.0";
251 remote-endpoint = <&adv7123_in>;
263 clock-frequency = <48000000>;
272 pinctrl-0 = <&i2c0_pins>;
273 pinctrl-names = "default";
277 compatible = "adi,adv7180cp";
281 #address-cells = <1>;
286 adv7180_in: endpoint {
287 remote-endpoint = <&composite_con_in>;
295 * The VIN4 video input path is shared between
296 * CVBS and HDMI inputs through SW[49-53]
299 * CVBS is the default selection, link it to
302 adv7180_out: endpoint {
303 remote-endpoint = <&vin4_in>;
311 compatible = "adi,adv7511w";
312 reg = <0x39>, <0x3f>, <0x3c>, <0x38>;
313 reg-names = "main", "edid", "cec", "packet";
314 interrupt-parent = <&gpio1>;
315 interrupts = <28 IRQ_TYPE_LEVEL_LOW>;
317 adi,input-depth = <8>;
318 adi,input-colorspace = "rgb";
319 adi,input-clock = "1x";
322 #address-cells = <1>;
327 adv7511_in: endpoint {
328 remote-endpoint = <&thc63lvd1024_out>;
334 adv7511_out: endpoint {
335 remote-endpoint = <&hdmi_con_out>;
342 compatible = "adi,adv7612";
347 #address-cells = <1>;
353 adv7612_in: endpoint {
354 remote-endpoint = <&hdmi_con_in>;
362 * The VIN4 video input path is shared between
363 * CVBS and HDMI inputs through SW[49-53]
366 * CVBS is the default selection, leave HDMI
367 * not connected here.
369 adv7612_out: endpoint {
379 compatible = "rohm,br24t01", "atmel,24c01";
386 pinctrl-0 = <&i2c1_pins>;
387 pinctrl-names = "default";
394 clocks = <&cpg CPG_MOD 727>,
397 clock-names = "fck", "dclkin.0", "extal";
401 lvds0_out: endpoint {
402 remote-endpoint = <&thc63lvd1024_in>;
410 * Even though the LVDS1 output is not connected, the encoder must be
411 * enabled to supply a pixel clock to the DU for the DPAD output when
416 clocks = <&cpg CPG_MOD 727>,
419 clock-names = "fck", "dclkin.0", "extal";
429 groups = "avb0_link", "avb0_mdio", "avb0_mii";
434 groups = "can0_data_a";
439 groups = "can1_data_a";
444 groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0";
459 pins = "GP_4_12", "GP_4_13", "GP_4_14", "GP_4_15";
474 groups = "scif2_data";
479 groups = "mmc_data8", "mmc_ctrl";
481 power-source = <1800>;
484 sdhi2_pins_uhs: sd2_uhs {
485 groups = "mmc_data8", "mmc_ctrl";
487 power-source = <1800>;
495 vin4_pins_cvbs: vin4 {
496 groups = "vin4_data8", "vin4_sync", "vin4_clk";
502 pinctrl-0 = <&pwm0_pins>;
503 pinctrl-names = "default";
509 pinctrl-0 = <&pwm1_pins>;
510 pinctrl-names = "default";
521 pinctrl-0 = <&scif2_pins>;
522 pinctrl-names = "default";
528 /* used for on-board eMMC */
529 pinctrl-0 = <&sdhi2_pins>;
530 pinctrl-1 = <&sdhi2_pins_uhs>;
531 pinctrl-names = "default", "state_uhs";
533 vmmc-supply = <®_3p3v>;
534 vqmmc-supply = <®_1p8v>;
544 pinctrl-0 = <&usb0_pins>;
545 pinctrl-names = "default";
552 pinctrl-0 = <&vin4_pins_cvbs>;
553 pinctrl-names = "default";
560 remote-endpoint = <&adv7180_out>;