1f5335aa6SGeert Uytterhoeven// SPDX-License-Identifier: GPL-2.0 2f5335aa6SGeert Uytterhoeven/* 3f5335aa6SGeert Uytterhoeven * Device Tree Source for the Draak board 4f5335aa6SGeert Uytterhoeven * 5f5335aa6SGeert Uytterhoeven * Copyright (C) 2016-2018 Renesas Electronics Corp. 6f5335aa6SGeert Uytterhoeven * Copyright (C) 2017 Glider bvba 7f5335aa6SGeert Uytterhoeven */ 8f5335aa6SGeert Uytterhoeven 9f5335aa6SGeert Uytterhoeven#include <dt-bindings/gpio/gpio.h> 10f5335aa6SGeert Uytterhoeven#include <dt-bindings/input/input.h> 11f5335aa6SGeert Uytterhoeven 12f5335aa6SGeert Uytterhoeven/ { 13f5335aa6SGeert Uytterhoeven model = "Renesas Draak board"; 14f5335aa6SGeert Uytterhoeven compatible = "renesas,draak"; 15f5335aa6SGeert Uytterhoeven 16f5335aa6SGeert Uytterhoeven aliases { 17f5335aa6SGeert Uytterhoeven serial0 = &scif2; 18f5335aa6SGeert Uytterhoeven ethernet0 = &avb; 19f5335aa6SGeert Uytterhoeven }; 20f5335aa6SGeert Uytterhoeven 21f5335aa6SGeert Uytterhoeven audio_clkout: audio-clkout { 22f5335aa6SGeert Uytterhoeven /* 23f5335aa6SGeert Uytterhoeven * This is same as <&rcar_sound 0> 24f5335aa6SGeert Uytterhoeven * but needed to avoid cs2000/rcar_sound probe dead-lock 25f5335aa6SGeert Uytterhoeven */ 26f5335aa6SGeert Uytterhoeven compatible = "fixed-clock"; 27f5335aa6SGeert Uytterhoeven #clock-cells = <0>; 28f5335aa6SGeert Uytterhoeven clock-frequency = <12288000>; 29f5335aa6SGeert Uytterhoeven }; 30f5335aa6SGeert Uytterhoeven 31f5335aa6SGeert Uytterhoeven backlight: backlight { 32f5335aa6SGeert Uytterhoeven compatible = "pwm-backlight"; 33f5335aa6SGeert Uytterhoeven pwms = <&pwm1 0 50000>; 34f5335aa6SGeert Uytterhoeven 35f5335aa6SGeert Uytterhoeven brightness-levels = <512 511 505 494 473 440 392 327 241 133 0>; 36f5335aa6SGeert Uytterhoeven default-brightness-level = <10>; 37f5335aa6SGeert Uytterhoeven 38f5335aa6SGeert Uytterhoeven power-supply = <®_12p0v>; 39f5335aa6SGeert Uytterhoeven enable-gpios = <&gpio4 0 GPIO_ACTIVE_HIGH>; 40f5335aa6SGeert Uytterhoeven }; 41f5335aa6SGeert Uytterhoeven 42f5335aa6SGeert Uytterhoeven chosen { 43f5335aa6SGeert Uytterhoeven bootargs = "ignore_loglevel rw root=/dev/nfs ip=on"; 44f5335aa6SGeert Uytterhoeven stdout-path = "serial0:115200n8"; 45f5335aa6SGeert Uytterhoeven }; 46f5335aa6SGeert Uytterhoeven 47f5335aa6SGeert Uytterhoeven composite-in { 48f5335aa6SGeert Uytterhoeven compatible = "composite-video-connector"; 49f5335aa6SGeert Uytterhoeven 50f5335aa6SGeert Uytterhoeven port { 51f5335aa6SGeert Uytterhoeven composite_con_in: endpoint { 52f5335aa6SGeert Uytterhoeven remote-endpoint = <&adv7180_in>; 53f5335aa6SGeert Uytterhoeven }; 54f5335aa6SGeert Uytterhoeven }; 55f5335aa6SGeert Uytterhoeven }; 56f5335aa6SGeert Uytterhoeven 57f5335aa6SGeert Uytterhoeven hdmi-in { 58f5335aa6SGeert Uytterhoeven compatible = "hdmi-connector"; 59f5335aa6SGeert Uytterhoeven type = "a"; 60f5335aa6SGeert Uytterhoeven 61f5335aa6SGeert Uytterhoeven port { 62f5335aa6SGeert Uytterhoeven hdmi_con_in: endpoint { 63f5335aa6SGeert Uytterhoeven remote-endpoint = <&adv7612_in>; 64f5335aa6SGeert Uytterhoeven }; 65f5335aa6SGeert Uytterhoeven }; 66f5335aa6SGeert Uytterhoeven }; 67f5335aa6SGeert Uytterhoeven 68f5335aa6SGeert Uytterhoeven hdmi-out { 69f5335aa6SGeert Uytterhoeven compatible = "hdmi-connector"; 70f5335aa6SGeert Uytterhoeven type = "a"; 71f5335aa6SGeert Uytterhoeven 72f5335aa6SGeert Uytterhoeven port { 73f5335aa6SGeert Uytterhoeven hdmi_con_out: endpoint { 74f5335aa6SGeert Uytterhoeven remote-endpoint = <&adv7511_out>; 75f5335aa6SGeert Uytterhoeven }; 76f5335aa6SGeert Uytterhoeven }; 77f5335aa6SGeert Uytterhoeven }; 78f5335aa6SGeert Uytterhoeven 79f5335aa6SGeert Uytterhoeven keys { 80f5335aa6SGeert Uytterhoeven compatible = "gpio-keys"; 81f5335aa6SGeert Uytterhoeven 82f5335aa6SGeert Uytterhoeven pinctrl-0 = <&keys_pins>; 83f5335aa6SGeert Uytterhoeven pinctrl-names = "default"; 84f5335aa6SGeert Uytterhoeven 85f5335aa6SGeert Uytterhoeven key-1 { 86f5335aa6SGeert Uytterhoeven gpios = <&gpio4 12 GPIO_ACTIVE_LOW>; 87f5335aa6SGeert Uytterhoeven linux,code = <KEY_1>; 88f5335aa6SGeert Uytterhoeven label = "SW56-1"; 89f5335aa6SGeert Uytterhoeven wakeup-source; 90f5335aa6SGeert Uytterhoeven debounce-interval = <20>; 91f5335aa6SGeert Uytterhoeven }; 92f5335aa6SGeert Uytterhoeven key-2 { 93f5335aa6SGeert Uytterhoeven gpios = <&gpio4 13 GPIO_ACTIVE_LOW>; 94f5335aa6SGeert Uytterhoeven linux,code = <KEY_2>; 95f5335aa6SGeert Uytterhoeven label = "SW56-2"; 96f5335aa6SGeert Uytterhoeven wakeup-source; 97f5335aa6SGeert Uytterhoeven debounce-interval = <20>; 98f5335aa6SGeert Uytterhoeven }; 99f5335aa6SGeert Uytterhoeven key-3 { 100f5335aa6SGeert Uytterhoeven gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; 101f5335aa6SGeert Uytterhoeven linux,code = <KEY_3>; 102f5335aa6SGeert Uytterhoeven label = "SW56-3"; 103f5335aa6SGeert Uytterhoeven wakeup-source; 104f5335aa6SGeert Uytterhoeven debounce-interval = <20>; 105f5335aa6SGeert Uytterhoeven }; 106f5335aa6SGeert Uytterhoeven key-4 { 107f5335aa6SGeert Uytterhoeven gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; 108f5335aa6SGeert Uytterhoeven linux,code = <KEY_4>; 109f5335aa6SGeert Uytterhoeven label = "SW56-4"; 110f5335aa6SGeert Uytterhoeven wakeup-source; 111f5335aa6SGeert Uytterhoeven debounce-interval = <20>; 112f5335aa6SGeert Uytterhoeven }; 113f5335aa6SGeert Uytterhoeven }; 114f5335aa6SGeert Uytterhoeven 115f5335aa6SGeert Uytterhoeven lvds-decoder { 116f5335aa6SGeert Uytterhoeven compatible = "thine,thc63lvd1024"; 117f5335aa6SGeert Uytterhoeven vcc-supply = <®_3p3v>; 118f5335aa6SGeert Uytterhoeven 119f5335aa6SGeert Uytterhoeven ports { 120f5335aa6SGeert Uytterhoeven #address-cells = <1>; 121f5335aa6SGeert Uytterhoeven #size-cells = <0>; 122f5335aa6SGeert Uytterhoeven 123f5335aa6SGeert Uytterhoeven port@0 { 124f5335aa6SGeert Uytterhoeven reg = <0>; 125f5335aa6SGeert Uytterhoeven thc63lvd1024_in: endpoint { 126f5335aa6SGeert Uytterhoeven remote-endpoint = <&lvds0_out>; 127f5335aa6SGeert Uytterhoeven }; 128f5335aa6SGeert Uytterhoeven }; 129f5335aa6SGeert Uytterhoeven 130f5335aa6SGeert Uytterhoeven port@2 { 131f5335aa6SGeert Uytterhoeven reg = <2>; 132f5335aa6SGeert Uytterhoeven thc63lvd1024_out: endpoint { 133f5335aa6SGeert Uytterhoeven remote-endpoint = <&adv7511_in>; 134f5335aa6SGeert Uytterhoeven }; 135f5335aa6SGeert Uytterhoeven }; 136f5335aa6SGeert Uytterhoeven }; 137f5335aa6SGeert Uytterhoeven }; 138f5335aa6SGeert Uytterhoeven 139f5335aa6SGeert Uytterhoeven memory@48000000 { 140f5335aa6SGeert Uytterhoeven device_type = "memory"; 141f5335aa6SGeert Uytterhoeven /* first 128MB is reserved for secure area. */ 142f5335aa6SGeert Uytterhoeven reg = <0x0 0x48000000 0x0 0x18000000>; 143f5335aa6SGeert Uytterhoeven }; 144f5335aa6SGeert Uytterhoeven 145f5335aa6SGeert Uytterhoeven reg_1p8v: regulator-1p8v { 146f5335aa6SGeert Uytterhoeven compatible = "regulator-fixed"; 147f5335aa6SGeert Uytterhoeven regulator-name = "fixed-1.8V"; 148f5335aa6SGeert Uytterhoeven regulator-min-microvolt = <1800000>; 149f5335aa6SGeert Uytterhoeven regulator-max-microvolt = <1800000>; 150f5335aa6SGeert Uytterhoeven regulator-boot-on; 151f5335aa6SGeert Uytterhoeven regulator-always-on; 152f5335aa6SGeert Uytterhoeven }; 153f5335aa6SGeert Uytterhoeven 154f5335aa6SGeert Uytterhoeven reg_3p3v: regulator-3p3v { 155f5335aa6SGeert Uytterhoeven compatible = "regulator-fixed"; 156f5335aa6SGeert Uytterhoeven regulator-name = "fixed-3.3V"; 157f5335aa6SGeert Uytterhoeven regulator-min-microvolt = <3300000>; 158f5335aa6SGeert Uytterhoeven regulator-max-microvolt = <3300000>; 159f5335aa6SGeert Uytterhoeven regulator-boot-on; 160f5335aa6SGeert Uytterhoeven regulator-always-on; 161f5335aa6SGeert Uytterhoeven }; 162f5335aa6SGeert Uytterhoeven 163f5335aa6SGeert Uytterhoeven reg_12p0v: regulator-12p0v { 164f5335aa6SGeert Uytterhoeven compatible = "regulator-fixed"; 165f5335aa6SGeert Uytterhoeven regulator-name = "D12.0V"; 166f5335aa6SGeert Uytterhoeven regulator-min-microvolt = <12000000>; 167f5335aa6SGeert Uytterhoeven regulator-max-microvolt = <12000000>; 168f5335aa6SGeert Uytterhoeven regulator-boot-on; 169f5335aa6SGeert Uytterhoeven regulator-always-on; 170f5335aa6SGeert Uytterhoeven }; 171f5335aa6SGeert Uytterhoeven 172f5335aa6SGeert Uytterhoeven sound_card: sound { 173f5335aa6SGeert Uytterhoeven compatible = "audio-graph-card"; 174f5335aa6SGeert Uytterhoeven 175f5335aa6SGeert Uytterhoeven dais = <&rsnd_port0 /* ak4613 */ 176f5335aa6SGeert Uytterhoeven /* HDMI is not yet supported */ 177f5335aa6SGeert Uytterhoeven >; 178f5335aa6SGeert Uytterhoeven }; 179f5335aa6SGeert Uytterhoeven 180f5335aa6SGeert Uytterhoeven vga { 181f5335aa6SGeert Uytterhoeven compatible = "vga-connector"; 182f5335aa6SGeert Uytterhoeven 183f5335aa6SGeert Uytterhoeven port { 184f5335aa6SGeert Uytterhoeven vga_in: endpoint { 185f5335aa6SGeert Uytterhoeven remote-endpoint = <&adv7123_out>; 186f5335aa6SGeert Uytterhoeven }; 187f5335aa6SGeert Uytterhoeven }; 188f5335aa6SGeert Uytterhoeven }; 189f5335aa6SGeert Uytterhoeven 190f5335aa6SGeert Uytterhoeven vga-encoder { 191f5335aa6SGeert Uytterhoeven compatible = "adi,adv7123"; 192f5335aa6SGeert Uytterhoeven 193f5335aa6SGeert Uytterhoeven ports { 194f5335aa6SGeert Uytterhoeven #address-cells = <1>; 195f5335aa6SGeert Uytterhoeven #size-cells = <0>; 196f5335aa6SGeert Uytterhoeven 197f5335aa6SGeert Uytterhoeven port@0 { 198f5335aa6SGeert Uytterhoeven reg = <0>; 199f5335aa6SGeert Uytterhoeven adv7123_in: endpoint { 200f5335aa6SGeert Uytterhoeven remote-endpoint = <&du_out_rgb>; 201f5335aa6SGeert Uytterhoeven }; 202f5335aa6SGeert Uytterhoeven }; 203f5335aa6SGeert Uytterhoeven port@1 { 204f5335aa6SGeert Uytterhoeven reg = <1>; 205f5335aa6SGeert Uytterhoeven adv7123_out: endpoint { 206f5335aa6SGeert Uytterhoeven remote-endpoint = <&vga_in>; 207f5335aa6SGeert Uytterhoeven }; 208f5335aa6SGeert Uytterhoeven }; 209f5335aa6SGeert Uytterhoeven }; 210f5335aa6SGeert Uytterhoeven }; 211f5335aa6SGeert Uytterhoeven 212f5335aa6SGeert Uytterhoeven x12_clk: x12 { 213f5335aa6SGeert Uytterhoeven compatible = "fixed-clock"; 214f5335aa6SGeert Uytterhoeven #clock-cells = <0>; 215f5335aa6SGeert Uytterhoeven clock-frequency = <74250000>; 216f5335aa6SGeert Uytterhoeven }; 217f5335aa6SGeert Uytterhoeven 218f5335aa6SGeert Uytterhoeven x19_clk: x19 { 219f5335aa6SGeert Uytterhoeven compatible = "fixed-clock"; 220f5335aa6SGeert Uytterhoeven #clock-cells = <0>; 221f5335aa6SGeert Uytterhoeven clock-frequency = <24576000>; 222f5335aa6SGeert Uytterhoeven }; 223f5335aa6SGeert Uytterhoeven}; 224f5335aa6SGeert Uytterhoeven 225f5335aa6SGeert Uytterhoeven&audio_clk_b { 226f5335aa6SGeert Uytterhoeven /* 227f5335aa6SGeert Uytterhoeven * X11 is connected to VI4_FIELD/SCIF_CLK/AUDIO_CLKB, 228f5335aa6SGeert Uytterhoeven * and R-Car Sound uses AUDIO_CLKB. 229f5335aa6SGeert Uytterhoeven * Note is that schematic indicates VI4_FIELD conection only 230f5335aa6SGeert Uytterhoeven * not AUDIO_CLKB at SoC page. 231f5335aa6SGeert Uytterhoeven * And this VI4_FIELD/SCIF_CLK/AUDIO_CLKB is connected to SW60. 232f5335aa6SGeert Uytterhoeven * SW60 should be 1-2. 233f5335aa6SGeert Uytterhoeven */ 234f5335aa6SGeert Uytterhoeven 235f5335aa6SGeert Uytterhoeven clock-frequency = <22579200>; 236f5335aa6SGeert Uytterhoeven}; 237f5335aa6SGeert Uytterhoeven 238f5335aa6SGeert Uytterhoeven&avb { 239f5335aa6SGeert Uytterhoeven pinctrl-0 = <&avb0_pins>; 240f5335aa6SGeert Uytterhoeven pinctrl-names = "default"; 241f5335aa6SGeert Uytterhoeven renesas,no-ether-link; 242f5335aa6SGeert Uytterhoeven phy-handle = <&phy0>; 243f5335aa6SGeert Uytterhoeven status = "okay"; 244f5335aa6SGeert Uytterhoeven 245f5335aa6SGeert Uytterhoeven phy0: ethernet-phy@0 { 246722d55f3SGeert Uytterhoeven compatible = "ethernet-phy-id0022.1622", 247722d55f3SGeert Uytterhoeven "ethernet-phy-ieee802.3-c22"; 248f5335aa6SGeert Uytterhoeven rxc-skew-ps = <1500>; 249f5335aa6SGeert Uytterhoeven reg = <0>; 250f5335aa6SGeert Uytterhoeven interrupt-parent = <&gpio5>; 251f5335aa6SGeert Uytterhoeven interrupts = <19 IRQ_TYPE_LEVEL_LOW>; 252*732e8ee0SGeert Uytterhoeven reset-gpios = <&gpio5 18 GPIO_ACTIVE_LOW>; 253f5335aa6SGeert Uytterhoeven /* 254f5335aa6SGeert Uytterhoeven * TX clock internal delay mode is required for reliable 255f5335aa6SGeert Uytterhoeven * 1Gbps communication using the KSZ9031RNX phy present on 256f5335aa6SGeert Uytterhoeven * the Draak board, however, TX clock internal delay mode 257f5335aa6SGeert Uytterhoeven * isn't supported on R-Car D3(e). Thus, limit speed to 258f5335aa6SGeert Uytterhoeven * 100Mbps for reliable communication. 259f5335aa6SGeert Uytterhoeven */ 260f5335aa6SGeert Uytterhoeven max-speed = <100>; 261f5335aa6SGeert Uytterhoeven }; 262f5335aa6SGeert Uytterhoeven}; 263f5335aa6SGeert Uytterhoeven 264f5335aa6SGeert Uytterhoeven&can0 { 265f5335aa6SGeert Uytterhoeven pinctrl-0 = <&can0_pins>; 266f5335aa6SGeert Uytterhoeven pinctrl-names = "default"; 267f5335aa6SGeert Uytterhoeven status = "okay"; 268f5335aa6SGeert Uytterhoeven}; 269f5335aa6SGeert Uytterhoeven 270f5335aa6SGeert Uytterhoeven&can1 { 271f5335aa6SGeert Uytterhoeven pinctrl-0 = <&can1_pins>; 272f5335aa6SGeert Uytterhoeven pinctrl-names = "default"; 273f5335aa6SGeert Uytterhoeven status = "okay"; 274f5335aa6SGeert Uytterhoeven}; 275f5335aa6SGeert Uytterhoeven 276f5335aa6SGeert Uytterhoeven&du { 277f5335aa6SGeert Uytterhoeven pinctrl-0 = <&du_pins>; 278f5335aa6SGeert Uytterhoeven pinctrl-names = "default"; 279f5335aa6SGeert Uytterhoeven status = "okay"; 280f5335aa6SGeert Uytterhoeven 281f5335aa6SGeert Uytterhoeven clocks = <&cpg CPG_MOD 724>, 282f5335aa6SGeert Uytterhoeven <&cpg CPG_MOD 723>, 283f5335aa6SGeert Uytterhoeven <&x12_clk>; 284f5335aa6SGeert Uytterhoeven clock-names = "du.0", "du.1", "dclkin.0"; 285f5335aa6SGeert Uytterhoeven 286f5335aa6SGeert Uytterhoeven ports { 287f5335aa6SGeert Uytterhoeven port@0 { 288f5335aa6SGeert Uytterhoeven endpoint { 289f5335aa6SGeert Uytterhoeven remote-endpoint = <&adv7123_in>; 290f5335aa6SGeert Uytterhoeven }; 291f5335aa6SGeert Uytterhoeven }; 292f5335aa6SGeert Uytterhoeven }; 293f5335aa6SGeert Uytterhoeven}; 294f5335aa6SGeert Uytterhoeven 295f5335aa6SGeert Uytterhoeven&ehci0 { 296f5335aa6SGeert Uytterhoeven dr_mode = "host"; 297f5335aa6SGeert Uytterhoeven status = "okay"; 298f5335aa6SGeert Uytterhoeven}; 299f5335aa6SGeert Uytterhoeven 300f5335aa6SGeert Uytterhoeven&extal_clk { 301f5335aa6SGeert Uytterhoeven clock-frequency = <48000000>; 302f5335aa6SGeert Uytterhoeven}; 303f5335aa6SGeert Uytterhoeven 304f5335aa6SGeert Uytterhoeven&hsusb { 305f5335aa6SGeert Uytterhoeven dr_mode = "host"; 306f5335aa6SGeert Uytterhoeven status = "okay"; 307f5335aa6SGeert Uytterhoeven}; 308f5335aa6SGeert Uytterhoeven 309f5335aa6SGeert Uytterhoeven&i2c0 { 310f5335aa6SGeert Uytterhoeven pinctrl-0 = <&i2c0_pins>; 311f5335aa6SGeert Uytterhoeven pinctrl-names = "default"; 312f5335aa6SGeert Uytterhoeven status = "okay"; 313f5335aa6SGeert Uytterhoeven 314f5335aa6SGeert Uytterhoeven ak4613: codec@10 { 315f5335aa6SGeert Uytterhoeven compatible = "asahi-kasei,ak4613"; 316f5335aa6SGeert Uytterhoeven #sound-dai-cells = <0>; 317f5335aa6SGeert Uytterhoeven reg = <0x10>; 318f5335aa6SGeert Uytterhoeven clocks = <&rcar_sound 0>; /* audio_clkout */ 319f5335aa6SGeert Uytterhoeven 320f5335aa6SGeert Uytterhoeven asahi-kasei,in1-single-end; 321f5335aa6SGeert Uytterhoeven asahi-kasei,in2-single-end; 322f5335aa6SGeert Uytterhoeven asahi-kasei,out1-single-end; 323f5335aa6SGeert Uytterhoeven asahi-kasei,out2-single-end; 324f5335aa6SGeert Uytterhoeven asahi-kasei,out3-single-end; 325f5335aa6SGeert Uytterhoeven asahi-kasei,out4-single-end; 326f5335aa6SGeert Uytterhoeven asahi-kasei,out5-single-end; 327f5335aa6SGeert Uytterhoeven asahi-kasei,out6-single-end; 328f5335aa6SGeert Uytterhoeven 329f5335aa6SGeert Uytterhoeven port { 330f5335aa6SGeert Uytterhoeven ak4613_endpoint: endpoint { 331f5335aa6SGeert Uytterhoeven remote-endpoint = <&rsnd_for_ak4613>; 332f5335aa6SGeert Uytterhoeven }; 333f5335aa6SGeert Uytterhoeven }; 334f5335aa6SGeert Uytterhoeven }; 335f5335aa6SGeert Uytterhoeven 336f5335aa6SGeert Uytterhoeven composite-in@20 { 337f5335aa6SGeert Uytterhoeven compatible = "adi,adv7180cp"; 338f5335aa6SGeert Uytterhoeven reg = <0x20>; 339f5335aa6SGeert Uytterhoeven 340f5335aa6SGeert Uytterhoeven ports { 341f5335aa6SGeert Uytterhoeven #address-cells = <1>; 342f5335aa6SGeert Uytterhoeven #size-cells = <0>; 343f5335aa6SGeert Uytterhoeven 344f5335aa6SGeert Uytterhoeven port@0 { 345f5335aa6SGeert Uytterhoeven reg = <0>; 346f5335aa6SGeert Uytterhoeven adv7180_in: endpoint { 347f5335aa6SGeert Uytterhoeven remote-endpoint = <&composite_con_in>; 348f5335aa6SGeert Uytterhoeven }; 349f5335aa6SGeert Uytterhoeven }; 350f5335aa6SGeert Uytterhoeven 351f5335aa6SGeert Uytterhoeven port@3 { 352f5335aa6SGeert Uytterhoeven reg = <3>; 353f5335aa6SGeert Uytterhoeven 354f5335aa6SGeert Uytterhoeven /* 355f5335aa6SGeert Uytterhoeven * The VIN4 video input path is shared between 356f5335aa6SGeert Uytterhoeven * CVBS and HDMI inputs through SW[49-53] 357f5335aa6SGeert Uytterhoeven * switches. 358f5335aa6SGeert Uytterhoeven * 359f5335aa6SGeert Uytterhoeven * CVBS is the default selection, link it to 360f5335aa6SGeert Uytterhoeven * VIN4 here. 361f5335aa6SGeert Uytterhoeven */ 362f5335aa6SGeert Uytterhoeven adv7180_out: endpoint { 363f5335aa6SGeert Uytterhoeven remote-endpoint = <&vin4_in>; 364f5335aa6SGeert Uytterhoeven }; 365f5335aa6SGeert Uytterhoeven }; 366f5335aa6SGeert Uytterhoeven }; 367f5335aa6SGeert Uytterhoeven 368f5335aa6SGeert Uytterhoeven }; 369f5335aa6SGeert Uytterhoeven 370f5335aa6SGeert Uytterhoeven hdmi-encoder@39 { 371f5335aa6SGeert Uytterhoeven compatible = "adi,adv7511w"; 372f5335aa6SGeert Uytterhoeven reg = <0x39>, <0x3f>, <0x3c>, <0x38>; 373f5335aa6SGeert Uytterhoeven reg-names = "main", "edid", "cec", "packet"; 374f5335aa6SGeert Uytterhoeven interrupt-parent = <&gpio1>; 375f5335aa6SGeert Uytterhoeven interrupts = <28 IRQ_TYPE_LEVEL_LOW>; 376f5335aa6SGeert Uytterhoeven 377f5335aa6SGeert Uytterhoeven adi,input-depth = <8>; 378f5335aa6SGeert Uytterhoeven adi,input-colorspace = "rgb"; 379f5335aa6SGeert Uytterhoeven adi,input-clock = "1x"; 380f5335aa6SGeert Uytterhoeven 381f5335aa6SGeert Uytterhoeven ports { 382f5335aa6SGeert Uytterhoeven #address-cells = <1>; 383f5335aa6SGeert Uytterhoeven #size-cells = <0>; 384f5335aa6SGeert Uytterhoeven 385f5335aa6SGeert Uytterhoeven port@0 { 386f5335aa6SGeert Uytterhoeven reg = <0>; 387f5335aa6SGeert Uytterhoeven adv7511_in: endpoint { 388f5335aa6SGeert Uytterhoeven remote-endpoint = <&thc63lvd1024_out>; 389f5335aa6SGeert Uytterhoeven }; 390f5335aa6SGeert Uytterhoeven }; 391f5335aa6SGeert Uytterhoeven 392f5335aa6SGeert Uytterhoeven port@1 { 393f5335aa6SGeert Uytterhoeven reg = <1>; 394f5335aa6SGeert Uytterhoeven adv7511_out: endpoint { 395f5335aa6SGeert Uytterhoeven remote-endpoint = <&hdmi_con_out>; 396f5335aa6SGeert Uytterhoeven }; 397f5335aa6SGeert Uytterhoeven }; 398f5335aa6SGeert Uytterhoeven }; 399f5335aa6SGeert Uytterhoeven }; 400f5335aa6SGeert Uytterhoeven 401f5335aa6SGeert Uytterhoeven hdmi-decoder@4c { 402f5335aa6SGeert Uytterhoeven compatible = "adi,adv7612"; 403f5335aa6SGeert Uytterhoeven reg = <0x4c>; 404f5335aa6SGeert Uytterhoeven default-input = <0>; 405f5335aa6SGeert Uytterhoeven 406f5335aa6SGeert Uytterhoeven ports { 407f5335aa6SGeert Uytterhoeven #address-cells = <1>; 408f5335aa6SGeert Uytterhoeven #size-cells = <0>; 409f5335aa6SGeert Uytterhoeven 410f5335aa6SGeert Uytterhoeven port@0 { 411f5335aa6SGeert Uytterhoeven reg = <0>; 412f5335aa6SGeert Uytterhoeven 413f5335aa6SGeert Uytterhoeven adv7612_in: endpoint { 414f5335aa6SGeert Uytterhoeven remote-endpoint = <&hdmi_con_in>; 415f5335aa6SGeert Uytterhoeven }; 416f5335aa6SGeert Uytterhoeven }; 417f5335aa6SGeert Uytterhoeven 418f5335aa6SGeert Uytterhoeven port@2 { 419f5335aa6SGeert Uytterhoeven reg = <2>; 420f5335aa6SGeert Uytterhoeven 421f5335aa6SGeert Uytterhoeven /* 422f5335aa6SGeert Uytterhoeven * The VIN4 video input path is shared between 423f5335aa6SGeert Uytterhoeven * CVBS and HDMI inputs through SW[49-53] 424f5335aa6SGeert Uytterhoeven * switches. 425f5335aa6SGeert Uytterhoeven * 426f5335aa6SGeert Uytterhoeven * CVBS is the default selection, leave HDMI 427f5335aa6SGeert Uytterhoeven * not connected here. 428f5335aa6SGeert Uytterhoeven */ 429f5335aa6SGeert Uytterhoeven adv7612_out: endpoint { 430f5335aa6SGeert Uytterhoeven pclk-sample = <0>; 431f5335aa6SGeert Uytterhoeven hsync-active = <0>; 432f5335aa6SGeert Uytterhoeven vsync-active = <0>; 433f5335aa6SGeert Uytterhoeven }; 434f5335aa6SGeert Uytterhoeven }; 435f5335aa6SGeert Uytterhoeven }; 436f5335aa6SGeert Uytterhoeven }; 437f5335aa6SGeert Uytterhoeven 438f5335aa6SGeert Uytterhoeven cs2000: clk-multiplier@4f { 439f5335aa6SGeert Uytterhoeven #clock-cells = <0>; 440f5335aa6SGeert Uytterhoeven compatible = "cirrus,cs2000-cp"; 441f5335aa6SGeert Uytterhoeven reg = <0x4f>; 442f5335aa6SGeert Uytterhoeven clocks = <&audio_clkout>, <&x19_clk>; /* audio_clkout_1, x19 */ 443f5335aa6SGeert Uytterhoeven clock-names = "clk_in", "ref_clk"; 444f5335aa6SGeert Uytterhoeven 445f5335aa6SGeert Uytterhoeven assigned-clocks = <&cs2000>; 446f5335aa6SGeert Uytterhoeven assigned-clock-rates = <24576000>; /* 1/1 divide */ 447f5335aa6SGeert Uytterhoeven }; 448f5335aa6SGeert Uytterhoeven 449f5335aa6SGeert Uytterhoeven eeprom@50 { 450f5335aa6SGeert Uytterhoeven compatible = "rohm,br24t01", "atmel,24c01"; 451f5335aa6SGeert Uytterhoeven reg = <0x50>; 452f5335aa6SGeert Uytterhoeven pagesize = <8>; 453f5335aa6SGeert Uytterhoeven }; 454f5335aa6SGeert Uytterhoeven}; 455f5335aa6SGeert Uytterhoeven 456f5335aa6SGeert Uytterhoeven&i2c1 { 457f5335aa6SGeert Uytterhoeven pinctrl-0 = <&i2c1_pins>; 458f5335aa6SGeert Uytterhoeven pinctrl-names = "default"; 459f5335aa6SGeert Uytterhoeven status = "okay"; 460f5335aa6SGeert Uytterhoeven}; 461f5335aa6SGeert Uytterhoeven 462f5335aa6SGeert Uytterhoeven&lvds0 { 463f5335aa6SGeert Uytterhoeven status = "okay"; 464f5335aa6SGeert Uytterhoeven 465f5335aa6SGeert Uytterhoeven clocks = <&cpg CPG_MOD 727>, 466f5335aa6SGeert Uytterhoeven <&x12_clk>, 467f5335aa6SGeert Uytterhoeven <&extal_clk>; 468f5335aa6SGeert Uytterhoeven clock-names = "fck", "dclkin.0", "extal"; 469f5335aa6SGeert Uytterhoeven 470f5335aa6SGeert Uytterhoeven ports { 471f5335aa6SGeert Uytterhoeven port@1 { 472f5335aa6SGeert Uytterhoeven lvds0_out: endpoint { 473f5335aa6SGeert Uytterhoeven remote-endpoint = <&thc63lvd1024_in>; 474f5335aa6SGeert Uytterhoeven }; 475f5335aa6SGeert Uytterhoeven }; 476f5335aa6SGeert Uytterhoeven }; 477f5335aa6SGeert Uytterhoeven}; 478f5335aa6SGeert Uytterhoeven 479f5335aa6SGeert Uytterhoeven&lvds1 { 480f5335aa6SGeert Uytterhoeven /* 481f5335aa6SGeert Uytterhoeven * Even though the LVDS1 output is not connected, the encoder must be 482f5335aa6SGeert Uytterhoeven * enabled to supply a pixel clock to the DU for the DPAD output when 483f5335aa6SGeert Uytterhoeven * LVDS0 is in use. 484f5335aa6SGeert Uytterhoeven */ 485f5335aa6SGeert Uytterhoeven status = "okay"; 486f5335aa6SGeert Uytterhoeven 487f5335aa6SGeert Uytterhoeven clocks = <&cpg CPG_MOD 727>, 488f5335aa6SGeert Uytterhoeven <&x12_clk>, 489f5335aa6SGeert Uytterhoeven <&extal_clk>; 490f5335aa6SGeert Uytterhoeven clock-names = "fck", "dclkin.0", "extal"; 491f5335aa6SGeert Uytterhoeven}; 492f5335aa6SGeert Uytterhoeven 493f5335aa6SGeert Uytterhoeven&ohci0 { 494f5335aa6SGeert Uytterhoeven dr_mode = "host"; 495f5335aa6SGeert Uytterhoeven status = "okay"; 496f5335aa6SGeert Uytterhoeven}; 497f5335aa6SGeert Uytterhoeven 498f5335aa6SGeert Uytterhoeven&pfc { 499f5335aa6SGeert Uytterhoeven avb0_pins: avb { 500f5335aa6SGeert Uytterhoeven groups = "avb0_link", "avb0_mdio", "avb0_mii"; 501f5335aa6SGeert Uytterhoeven function = "avb0"; 502f5335aa6SGeert Uytterhoeven }; 503f5335aa6SGeert Uytterhoeven 504f5335aa6SGeert Uytterhoeven can0_pins: can0 { 505f5335aa6SGeert Uytterhoeven groups = "can0_data_a"; 506f5335aa6SGeert Uytterhoeven function = "can0"; 507f5335aa6SGeert Uytterhoeven }; 508f5335aa6SGeert Uytterhoeven 509f5335aa6SGeert Uytterhoeven can1_pins: can1 { 510f5335aa6SGeert Uytterhoeven groups = "can1_data_a"; 511f5335aa6SGeert Uytterhoeven function = "can1"; 512f5335aa6SGeert Uytterhoeven }; 513f5335aa6SGeert Uytterhoeven 514f5335aa6SGeert Uytterhoeven du_pins: du { 515f5335aa6SGeert Uytterhoeven groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0"; 516f5335aa6SGeert Uytterhoeven function = "du"; 517f5335aa6SGeert Uytterhoeven }; 518f5335aa6SGeert Uytterhoeven 519f5335aa6SGeert Uytterhoeven i2c0_pins: i2c0 { 520f5335aa6SGeert Uytterhoeven groups = "i2c0"; 521f5335aa6SGeert Uytterhoeven function = "i2c0"; 522f5335aa6SGeert Uytterhoeven }; 523f5335aa6SGeert Uytterhoeven 524f5335aa6SGeert Uytterhoeven i2c1_pins: i2c1 { 525f5335aa6SGeert Uytterhoeven groups = "i2c1"; 526f5335aa6SGeert Uytterhoeven function = "i2c1"; 527f5335aa6SGeert Uytterhoeven }; 528f5335aa6SGeert Uytterhoeven 529f5335aa6SGeert Uytterhoeven keys_pins: keys { 530f5335aa6SGeert Uytterhoeven pins = "GP_4_12", "GP_4_13", "GP_4_14", "GP_4_15"; 531f5335aa6SGeert Uytterhoeven bias-pull-up; 532f5335aa6SGeert Uytterhoeven }; 533f5335aa6SGeert Uytterhoeven 534f5335aa6SGeert Uytterhoeven pwm0_pins: pwm0 { 535f5335aa6SGeert Uytterhoeven groups = "pwm0_c"; 536f5335aa6SGeert Uytterhoeven function = "pwm0"; 537f5335aa6SGeert Uytterhoeven }; 538f5335aa6SGeert Uytterhoeven 539f5335aa6SGeert Uytterhoeven pwm1_pins: pwm1 { 540f5335aa6SGeert Uytterhoeven groups = "pwm1_c"; 541f5335aa6SGeert Uytterhoeven function = "pwm1"; 542f5335aa6SGeert Uytterhoeven }; 543f5335aa6SGeert Uytterhoeven 544f5335aa6SGeert Uytterhoeven scif2_pins: scif2 { 545f5335aa6SGeert Uytterhoeven groups = "scif2_data"; 546f5335aa6SGeert Uytterhoeven function = "scif2"; 547f5335aa6SGeert Uytterhoeven }; 548f5335aa6SGeert Uytterhoeven 549f5335aa6SGeert Uytterhoeven sdhi2_pins: sd2 { 550f5335aa6SGeert Uytterhoeven groups = "mmc_data8", "mmc_ctrl"; 551f5335aa6SGeert Uytterhoeven function = "mmc"; 552f5335aa6SGeert Uytterhoeven power-source = <1800>; 553f5335aa6SGeert Uytterhoeven }; 554f5335aa6SGeert Uytterhoeven 555f5335aa6SGeert Uytterhoeven sdhi2_pins_uhs: sd2_uhs { 556f5335aa6SGeert Uytterhoeven groups = "mmc_data8", "mmc_ctrl"; 557f5335aa6SGeert Uytterhoeven function = "mmc"; 558f5335aa6SGeert Uytterhoeven power-source = <1800>; 559f5335aa6SGeert Uytterhoeven }; 560f5335aa6SGeert Uytterhoeven 561f5335aa6SGeert Uytterhoeven sound_pins: sound { 562f5335aa6SGeert Uytterhoeven groups = "ssi34_ctrl", "ssi3_data", "ssi4_data_a"; 563f5335aa6SGeert Uytterhoeven function = "ssi"; 564f5335aa6SGeert Uytterhoeven }; 565f5335aa6SGeert Uytterhoeven 566f5335aa6SGeert Uytterhoeven sound_clk_pins: sound-clk { 567f5335aa6SGeert Uytterhoeven groups = "audio_clk_a", "audio_clk_b", 568f5335aa6SGeert Uytterhoeven "audio_clkout", "audio_clkout1"; 569f5335aa6SGeert Uytterhoeven function = "audio_clk"; 570f5335aa6SGeert Uytterhoeven }; 571f5335aa6SGeert Uytterhoeven 572f5335aa6SGeert Uytterhoeven usb0_pins: usb0 { 573f5335aa6SGeert Uytterhoeven groups = "usb0"; 574f5335aa6SGeert Uytterhoeven function = "usb0"; 575f5335aa6SGeert Uytterhoeven }; 576f5335aa6SGeert Uytterhoeven 577f5335aa6SGeert Uytterhoeven vin4_pins_cvbs: vin4 { 578f5335aa6SGeert Uytterhoeven groups = "vin4_data8", "vin4_sync", "vin4_clk"; 579f5335aa6SGeert Uytterhoeven function = "vin4"; 580f5335aa6SGeert Uytterhoeven }; 581f5335aa6SGeert Uytterhoeven}; 582f5335aa6SGeert Uytterhoeven 583f5335aa6SGeert Uytterhoeven&pwm0 { 584f5335aa6SGeert Uytterhoeven pinctrl-0 = <&pwm0_pins>; 585f5335aa6SGeert Uytterhoeven pinctrl-names = "default"; 586f5335aa6SGeert Uytterhoeven 587f5335aa6SGeert Uytterhoeven status = "okay"; 588f5335aa6SGeert Uytterhoeven}; 589f5335aa6SGeert Uytterhoeven 590f5335aa6SGeert Uytterhoeven&pwm1 { 591f5335aa6SGeert Uytterhoeven pinctrl-0 = <&pwm1_pins>; 592f5335aa6SGeert Uytterhoeven pinctrl-names = "default"; 593f5335aa6SGeert Uytterhoeven 594f5335aa6SGeert Uytterhoeven status = "okay"; 595f5335aa6SGeert Uytterhoeven}; 596f5335aa6SGeert Uytterhoeven 597f5335aa6SGeert Uytterhoeven&rcar_sound { 598f5335aa6SGeert Uytterhoeven pinctrl-0 = <&sound_pins>, <&sound_clk_pins>; 599f5335aa6SGeert Uytterhoeven pinctrl-names = "default"; 600f5335aa6SGeert Uytterhoeven 601f5335aa6SGeert Uytterhoeven /* Single DAI */ 602f5335aa6SGeert Uytterhoeven #sound-dai-cells = <0>; 603f5335aa6SGeert Uytterhoeven 604f5335aa6SGeert Uytterhoeven /* audio_clkout0/1 */ 605f5335aa6SGeert Uytterhoeven #clock-cells = <1>; 606f5335aa6SGeert Uytterhoeven clock-frequency = <12288000 11289600>; 607f5335aa6SGeert Uytterhoeven 608f5335aa6SGeert Uytterhoeven status = "okay"; 609f5335aa6SGeert Uytterhoeven 610f5335aa6SGeert Uytterhoeven clocks = <&cpg CPG_MOD 1005>, 611f5335aa6SGeert Uytterhoeven <&cpg CPG_MOD 1011>, <&cpg CPG_MOD 1012>, 612f5335aa6SGeert Uytterhoeven <&cpg CPG_MOD 1025>, <&cpg CPG_MOD 1026>, 613f5335aa6SGeert Uytterhoeven <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, 614f5335aa6SGeert Uytterhoeven <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, 615f5335aa6SGeert Uytterhoeven <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, 616f5335aa6SGeert Uytterhoeven <&cs2000>, <&audio_clk_b>, 617f5335aa6SGeert Uytterhoeven <&cpg CPG_CORE R8A77995_CLK_ZA2>; 618f5335aa6SGeert Uytterhoeven 619f5335aa6SGeert Uytterhoeven ports { 620f5335aa6SGeert Uytterhoeven rsnd_port0: port { 621f5335aa6SGeert Uytterhoeven rsnd_for_ak4613: endpoint { 622f5335aa6SGeert Uytterhoeven remote-endpoint = <&ak4613_endpoint>; 623f5335aa6SGeert Uytterhoeven dai-format = "left_j"; 624f5335aa6SGeert Uytterhoeven bitclock-master = <&rsnd_for_ak4613>; 625f5335aa6SGeert Uytterhoeven frame-master = <&rsnd_for_ak4613>; 626f5335aa6SGeert Uytterhoeven playback = <&ssi3>, <&src5>, <&dvc0>; 627f5335aa6SGeert Uytterhoeven capture = <&ssi4>, <&src6>, <&dvc1>; 628f5335aa6SGeert Uytterhoeven }; 629f5335aa6SGeert Uytterhoeven }; 630f5335aa6SGeert Uytterhoeven }; 631f5335aa6SGeert Uytterhoeven}; 632f5335aa6SGeert Uytterhoeven 633f5335aa6SGeert Uytterhoeven&rwdt { 634f5335aa6SGeert Uytterhoeven timeout-sec = <60>; 635f5335aa6SGeert Uytterhoeven status = "okay"; 636f5335aa6SGeert Uytterhoeven}; 637f5335aa6SGeert Uytterhoeven 638f5335aa6SGeert Uytterhoeven&scif2 { 639f5335aa6SGeert Uytterhoeven pinctrl-0 = <&scif2_pins>; 640f5335aa6SGeert Uytterhoeven pinctrl-names = "default"; 641f5335aa6SGeert Uytterhoeven 642f5335aa6SGeert Uytterhoeven status = "okay"; 643f5335aa6SGeert Uytterhoeven}; 644f5335aa6SGeert Uytterhoeven 645f5335aa6SGeert Uytterhoeven&sdhi2 { 646f5335aa6SGeert Uytterhoeven /* used for on-board eMMC */ 647f5335aa6SGeert Uytterhoeven pinctrl-0 = <&sdhi2_pins>; 648f5335aa6SGeert Uytterhoeven pinctrl-1 = <&sdhi2_pins_uhs>; 649f5335aa6SGeert Uytterhoeven pinctrl-names = "default", "state_uhs"; 650f5335aa6SGeert Uytterhoeven 651f5335aa6SGeert Uytterhoeven vmmc-supply = <®_3p3v>; 652f5335aa6SGeert Uytterhoeven vqmmc-supply = <®_1p8v>; 653f5335aa6SGeert Uytterhoeven bus-width = <8>; 654f5335aa6SGeert Uytterhoeven mmc-hs200-1_8v; 655f5335aa6SGeert Uytterhoeven no-sd; 656f5335aa6SGeert Uytterhoeven no-sdio; 657f5335aa6SGeert Uytterhoeven non-removable; 658f5335aa6SGeert Uytterhoeven status = "okay"; 659f5335aa6SGeert Uytterhoeven}; 660f5335aa6SGeert Uytterhoeven 661f5335aa6SGeert Uytterhoeven&ssi4 { 662f5335aa6SGeert Uytterhoeven shared-pin; 663f5335aa6SGeert Uytterhoeven}; 664f5335aa6SGeert Uytterhoeven 665f5335aa6SGeert Uytterhoeven&usb2_phy0 { 666f5335aa6SGeert Uytterhoeven pinctrl-0 = <&usb0_pins>; 667f5335aa6SGeert Uytterhoeven pinctrl-names = "default"; 668f5335aa6SGeert Uytterhoeven 669f5335aa6SGeert Uytterhoeven renesas,no-otg-pins; 670f5335aa6SGeert Uytterhoeven status = "okay"; 671f5335aa6SGeert Uytterhoeven}; 672f5335aa6SGeert Uytterhoeven 673f5335aa6SGeert Uytterhoeven&vin4 { 674f5335aa6SGeert Uytterhoeven pinctrl-0 = <&vin4_pins_cvbs>; 675f5335aa6SGeert Uytterhoeven pinctrl-names = "default"; 676f5335aa6SGeert Uytterhoeven 677f5335aa6SGeert Uytterhoeven status = "okay"; 678f5335aa6SGeert Uytterhoeven 679f5335aa6SGeert Uytterhoeven ports { 680f5335aa6SGeert Uytterhoeven port { 681f5335aa6SGeert Uytterhoeven vin4_in: endpoint { 682f5335aa6SGeert Uytterhoeven remote-endpoint = <&adv7180_out>; 683f5335aa6SGeert Uytterhoeven }; 684f5335aa6SGeert Uytterhoeven }; 685f5335aa6SGeert Uytterhoeven }; 686f5335aa6SGeert Uytterhoeven}; 687