1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Device Tree Source for the ebisu board 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (C) 2018 Renesas Electronics Corp. 6*4882a593Smuzhiyun */ 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun/dts-v1/; 9*4882a593Smuzhiyun#include "r8a77990.dtsi" 10*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h> 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun/ { 13*4882a593Smuzhiyun model = "Renesas Ebisu board based on r8a77990"; 14*4882a593Smuzhiyun compatible = "renesas,ebisu", "renesas,r8a77990"; 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun aliases { 17*4882a593Smuzhiyun serial0 = &scif2; 18*4882a593Smuzhiyun ethernet0 = &avb; 19*4882a593Smuzhiyun mmc0 = &sdhi3; 20*4882a593Smuzhiyun mmc1 = &sdhi0; 21*4882a593Smuzhiyun mmc2 = &sdhi1; 22*4882a593Smuzhiyun }; 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun chosen { 25*4882a593Smuzhiyun bootargs = "ignore_loglevel rw root=/dev/nfs ip=on"; 26*4882a593Smuzhiyun stdout-path = "serial0:115200n8"; 27*4882a593Smuzhiyun }; 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun audio_clkout: audio-clkout { 30*4882a593Smuzhiyun /* 31*4882a593Smuzhiyun * This is same as <&rcar_sound 0> 32*4882a593Smuzhiyun * but needed to avoid cs2000/rcar_sound probe dead-lock 33*4882a593Smuzhiyun */ 34*4882a593Smuzhiyun compatible = "fixed-clock"; 35*4882a593Smuzhiyun #clock-cells = <0>; 36*4882a593Smuzhiyun clock-frequency = <11289600>; 37*4882a593Smuzhiyun }; 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun backlight: backlight { 40*4882a593Smuzhiyun compatible = "pwm-backlight"; 41*4882a593Smuzhiyun pwms = <&pwm3 0 50000>; 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun brightness-levels = <512 511 505 494 473 440 392 327 241 133 0>; 44*4882a593Smuzhiyun default-brightness-level = <10>; 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun power-supply = <®_12p0v>; 47*4882a593Smuzhiyun }; 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun cvbs-in { 50*4882a593Smuzhiyun compatible = "composite-video-connector"; 51*4882a593Smuzhiyun label = "CVBS IN"; 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun port { 54*4882a593Smuzhiyun cvbs_con: endpoint { 55*4882a593Smuzhiyun remote-endpoint = <&adv7482_ain7>; 56*4882a593Smuzhiyun }; 57*4882a593Smuzhiyun }; 58*4882a593Smuzhiyun }; 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun hdmi-in { 61*4882a593Smuzhiyun compatible = "hdmi-connector"; 62*4882a593Smuzhiyun label = "HDMI IN"; 63*4882a593Smuzhiyun type = "a"; 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun port { 66*4882a593Smuzhiyun hdmi_in_con: endpoint { 67*4882a593Smuzhiyun remote-endpoint = <&adv7482_hdmi>; 68*4882a593Smuzhiyun }; 69*4882a593Smuzhiyun }; 70*4882a593Smuzhiyun }; 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun hdmi-out { 73*4882a593Smuzhiyun compatible = "hdmi-connector"; 74*4882a593Smuzhiyun type = "a"; 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun port { 77*4882a593Smuzhiyun hdmi_con_out: endpoint { 78*4882a593Smuzhiyun remote-endpoint = <&adv7511_out>; 79*4882a593Smuzhiyun }; 80*4882a593Smuzhiyun }; 81*4882a593Smuzhiyun }; 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun lvds-decoder { 84*4882a593Smuzhiyun compatible = "thine,thc63lvd1024"; 85*4882a593Smuzhiyun vcc-supply = <®_3p3v>; 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun ports { 88*4882a593Smuzhiyun #address-cells = <1>; 89*4882a593Smuzhiyun #size-cells = <0>; 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun port@0 { 92*4882a593Smuzhiyun reg = <0>; 93*4882a593Smuzhiyun thc63lvd1024_in: endpoint { 94*4882a593Smuzhiyun remote-endpoint = <&lvds0_out>; 95*4882a593Smuzhiyun }; 96*4882a593Smuzhiyun }; 97*4882a593Smuzhiyun 98*4882a593Smuzhiyun port@2 { 99*4882a593Smuzhiyun reg = <2>; 100*4882a593Smuzhiyun thc63lvd1024_out: endpoint { 101*4882a593Smuzhiyun remote-endpoint = <&adv7511_in>; 102*4882a593Smuzhiyun }; 103*4882a593Smuzhiyun }; 104*4882a593Smuzhiyun }; 105*4882a593Smuzhiyun }; 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun memory@48000000 { 108*4882a593Smuzhiyun device_type = "memory"; 109*4882a593Smuzhiyun /* first 128MB is reserved for secure area. */ 110*4882a593Smuzhiyun reg = <0x0 0x48000000 0x0 0x38000000>; 111*4882a593Smuzhiyun }; 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun reg_1p8v: regulator0 { 114*4882a593Smuzhiyun compatible = "regulator-fixed"; 115*4882a593Smuzhiyun regulator-name = "fixed-1.8V"; 116*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 117*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 118*4882a593Smuzhiyun regulator-boot-on; 119*4882a593Smuzhiyun regulator-always-on; 120*4882a593Smuzhiyun }; 121*4882a593Smuzhiyun 122*4882a593Smuzhiyun reg_3p3v: regulator1 { 123*4882a593Smuzhiyun compatible = "regulator-fixed"; 124*4882a593Smuzhiyun regulator-name = "fixed-3.3V"; 125*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 126*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 127*4882a593Smuzhiyun regulator-boot-on; 128*4882a593Smuzhiyun regulator-always-on; 129*4882a593Smuzhiyun }; 130*4882a593Smuzhiyun 131*4882a593Smuzhiyun reg_12p0v: regulator2 { 132*4882a593Smuzhiyun compatible = "regulator-fixed"; 133*4882a593Smuzhiyun regulator-name = "D12.0V"; 134*4882a593Smuzhiyun regulator-min-microvolt = <12000000>; 135*4882a593Smuzhiyun regulator-max-microvolt = <12000000>; 136*4882a593Smuzhiyun regulator-boot-on; 137*4882a593Smuzhiyun regulator-always-on; 138*4882a593Smuzhiyun }; 139*4882a593Smuzhiyun 140*4882a593Smuzhiyun rsnd_ak4613: sound { 141*4882a593Smuzhiyun compatible = "simple-audio-card"; 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun simple-audio-card,name = "rsnd-ak4613"; 144*4882a593Smuzhiyun simple-audio-card,format = "left_j"; 145*4882a593Smuzhiyun simple-audio-card,bitclock-master = <&sndcpu>; 146*4882a593Smuzhiyun simple-audio-card,frame-master = <&sndcpu>; 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun sndcodec: simple-audio-card,codec { 149*4882a593Smuzhiyun sound-dai = <&ak4613>; 150*4882a593Smuzhiyun }; 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun sndcpu: simple-audio-card,cpu { 153*4882a593Smuzhiyun sound-dai = <&rcar_sound>; 154*4882a593Smuzhiyun }; 155*4882a593Smuzhiyun }; 156*4882a593Smuzhiyun 157*4882a593Smuzhiyun vbus0_usb2: regulator-vbus0-usb2 { 158*4882a593Smuzhiyun compatible = "regulator-fixed"; 159*4882a593Smuzhiyun 160*4882a593Smuzhiyun regulator-name = "USB20_VBUS_CN"; 161*4882a593Smuzhiyun regulator-min-microvolt = <5000000>; 162*4882a593Smuzhiyun regulator-max-microvolt = <5000000>; 163*4882a593Smuzhiyun 164*4882a593Smuzhiyun gpio = <&gpio6 4 GPIO_ACTIVE_HIGH>; 165*4882a593Smuzhiyun enable-active-high; 166*4882a593Smuzhiyun }; 167*4882a593Smuzhiyun 168*4882a593Smuzhiyun vcc_sdhi0: regulator-vcc-sdhi0 { 169*4882a593Smuzhiyun compatible = "regulator-fixed"; 170*4882a593Smuzhiyun 171*4882a593Smuzhiyun regulator-name = "SDHI0 Vcc"; 172*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 173*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 174*4882a593Smuzhiyun 175*4882a593Smuzhiyun gpio = <&gpio5 17 GPIO_ACTIVE_HIGH>; 176*4882a593Smuzhiyun enable-active-high; 177*4882a593Smuzhiyun }; 178*4882a593Smuzhiyun 179*4882a593Smuzhiyun vccq_sdhi0: regulator-vccq-sdhi0 { 180*4882a593Smuzhiyun compatible = "regulator-gpio"; 181*4882a593Smuzhiyun 182*4882a593Smuzhiyun regulator-name = "SDHI0 VccQ"; 183*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 184*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 185*4882a593Smuzhiyun 186*4882a593Smuzhiyun gpios = <&gpio5 18 GPIO_ACTIVE_HIGH>; 187*4882a593Smuzhiyun gpios-states = <1>; 188*4882a593Smuzhiyun states = <3300000 1>, <1800000 0>; 189*4882a593Smuzhiyun }; 190*4882a593Smuzhiyun 191*4882a593Smuzhiyun vcc_sdhi1: regulator-vcc-sdhi1 { 192*4882a593Smuzhiyun compatible = "regulator-fixed"; 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun regulator-name = "SDHI1 Vcc"; 195*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 196*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 197*4882a593Smuzhiyun 198*4882a593Smuzhiyun gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>; 199*4882a593Smuzhiyun enable-active-high; 200*4882a593Smuzhiyun }; 201*4882a593Smuzhiyun 202*4882a593Smuzhiyun vccq_sdhi1: regulator-vccq-sdhi1 { 203*4882a593Smuzhiyun compatible = "regulator-gpio"; 204*4882a593Smuzhiyun 205*4882a593Smuzhiyun regulator-name = "SDHI1 VccQ"; 206*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 207*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 208*4882a593Smuzhiyun 209*4882a593Smuzhiyun gpios = <&gpio3 15 GPIO_ACTIVE_HIGH>; 210*4882a593Smuzhiyun gpios-states = <1>; 211*4882a593Smuzhiyun states = <3300000 1>, <1800000 0>; 212*4882a593Smuzhiyun }; 213*4882a593Smuzhiyun 214*4882a593Smuzhiyun vga { 215*4882a593Smuzhiyun compatible = "vga-connector"; 216*4882a593Smuzhiyun 217*4882a593Smuzhiyun port { 218*4882a593Smuzhiyun vga_in: endpoint { 219*4882a593Smuzhiyun remote-endpoint = <&adv7123_out>; 220*4882a593Smuzhiyun }; 221*4882a593Smuzhiyun }; 222*4882a593Smuzhiyun }; 223*4882a593Smuzhiyun 224*4882a593Smuzhiyun vga-encoder { 225*4882a593Smuzhiyun compatible = "adi,adv7123"; 226*4882a593Smuzhiyun 227*4882a593Smuzhiyun ports { 228*4882a593Smuzhiyun #address-cells = <1>; 229*4882a593Smuzhiyun #size-cells = <0>; 230*4882a593Smuzhiyun 231*4882a593Smuzhiyun port@0 { 232*4882a593Smuzhiyun reg = <0>; 233*4882a593Smuzhiyun adv7123_in: endpoint { 234*4882a593Smuzhiyun remote-endpoint = <&du_out_rgb>; 235*4882a593Smuzhiyun }; 236*4882a593Smuzhiyun }; 237*4882a593Smuzhiyun port@1 { 238*4882a593Smuzhiyun reg = <1>; 239*4882a593Smuzhiyun adv7123_out: endpoint { 240*4882a593Smuzhiyun remote-endpoint = <&vga_in>; 241*4882a593Smuzhiyun }; 242*4882a593Smuzhiyun }; 243*4882a593Smuzhiyun }; 244*4882a593Smuzhiyun }; 245*4882a593Smuzhiyun 246*4882a593Smuzhiyun x12_clk: x12 { 247*4882a593Smuzhiyun compatible = "fixed-clock"; 248*4882a593Smuzhiyun #clock-cells = <0>; 249*4882a593Smuzhiyun clock-frequency = <24576000>; 250*4882a593Smuzhiyun }; 251*4882a593Smuzhiyun 252*4882a593Smuzhiyun x13_clk: x13 { 253*4882a593Smuzhiyun compatible = "fixed-clock"; 254*4882a593Smuzhiyun #clock-cells = <0>; 255*4882a593Smuzhiyun clock-frequency = <74250000>; 256*4882a593Smuzhiyun }; 257*4882a593Smuzhiyun}; 258*4882a593Smuzhiyun 259*4882a593Smuzhiyun&audio_clk_a { 260*4882a593Smuzhiyun clock-frequency = <22579200>; 261*4882a593Smuzhiyun}; 262*4882a593Smuzhiyun 263*4882a593Smuzhiyun&avb { 264*4882a593Smuzhiyun pinctrl-0 = <&avb_pins>; 265*4882a593Smuzhiyun pinctrl-names = "default"; 266*4882a593Smuzhiyun phy-handle = <&phy0>; 267*4882a593Smuzhiyun status = "okay"; 268*4882a593Smuzhiyun 269*4882a593Smuzhiyun phy0: ethernet-phy@0 { 270*4882a593Smuzhiyun rxc-skew-ps = <1500>; 271*4882a593Smuzhiyun reg = <0>; 272*4882a593Smuzhiyun interrupt-parent = <&gpio2>; 273*4882a593Smuzhiyun interrupts = <21 IRQ_TYPE_LEVEL_LOW>; 274*4882a593Smuzhiyun reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>; 275*4882a593Smuzhiyun /* 276*4882a593Smuzhiyun * TX clock internal delay mode is required for reliable 277*4882a593Smuzhiyun * 1Gbps communication using the KSZ9031RNX phy present on 278*4882a593Smuzhiyun * the Ebisu board, however, TX clock internal delay mode 279*4882a593Smuzhiyun * isn't supported on r8a77990. Thus, limit speed to 280*4882a593Smuzhiyun * 100Mbps for reliable communication. 281*4882a593Smuzhiyun */ 282*4882a593Smuzhiyun max-speed = <100>; 283*4882a593Smuzhiyun }; 284*4882a593Smuzhiyun}; 285*4882a593Smuzhiyun 286*4882a593Smuzhiyun&canfd { 287*4882a593Smuzhiyun pinctrl-0 = <&canfd0_pins>; 288*4882a593Smuzhiyun pinctrl-names = "default"; 289*4882a593Smuzhiyun status = "okay"; 290*4882a593Smuzhiyun 291*4882a593Smuzhiyun channel0 { 292*4882a593Smuzhiyun status = "okay"; 293*4882a593Smuzhiyun }; 294*4882a593Smuzhiyun}; 295*4882a593Smuzhiyun 296*4882a593Smuzhiyun&csi40 { 297*4882a593Smuzhiyun status = "okay"; 298*4882a593Smuzhiyun 299*4882a593Smuzhiyun ports { 300*4882a593Smuzhiyun port@0 { 301*4882a593Smuzhiyun reg = <0>; 302*4882a593Smuzhiyun 303*4882a593Smuzhiyun csi40_in: endpoint { 304*4882a593Smuzhiyun clock-lanes = <0>; 305*4882a593Smuzhiyun data-lanes = <1 2>; 306*4882a593Smuzhiyun remote-endpoint = <&adv7482_txa>; 307*4882a593Smuzhiyun }; 308*4882a593Smuzhiyun }; 309*4882a593Smuzhiyun }; 310*4882a593Smuzhiyun}; 311*4882a593Smuzhiyun 312*4882a593Smuzhiyun&du { 313*4882a593Smuzhiyun pinctrl-0 = <&du_pins>; 314*4882a593Smuzhiyun pinctrl-names = "default"; 315*4882a593Smuzhiyun status = "okay"; 316*4882a593Smuzhiyun 317*4882a593Smuzhiyun clocks = <&cpg CPG_MOD 724>, 318*4882a593Smuzhiyun <&cpg CPG_MOD 723>, 319*4882a593Smuzhiyun <&x13_clk>; 320*4882a593Smuzhiyun clock-names = "du.0", "du.1", "dclkin.0"; 321*4882a593Smuzhiyun 322*4882a593Smuzhiyun ports { 323*4882a593Smuzhiyun port@0 { 324*4882a593Smuzhiyun endpoint { 325*4882a593Smuzhiyun remote-endpoint = <&adv7123_in>; 326*4882a593Smuzhiyun }; 327*4882a593Smuzhiyun }; 328*4882a593Smuzhiyun }; 329*4882a593Smuzhiyun}; 330*4882a593Smuzhiyun 331*4882a593Smuzhiyun&ehci0 { 332*4882a593Smuzhiyun dr_mode = "otg"; 333*4882a593Smuzhiyun status = "okay"; 334*4882a593Smuzhiyun}; 335*4882a593Smuzhiyun 336*4882a593Smuzhiyun&extal_clk { 337*4882a593Smuzhiyun clock-frequency = <48000000>; 338*4882a593Smuzhiyun}; 339*4882a593Smuzhiyun 340*4882a593Smuzhiyun&hsusb { 341*4882a593Smuzhiyun dr_mode = "otg"; 342*4882a593Smuzhiyun status = "okay"; 343*4882a593Smuzhiyun}; 344*4882a593Smuzhiyun 345*4882a593Smuzhiyun&i2c0 { 346*4882a593Smuzhiyun status = "okay"; 347*4882a593Smuzhiyun 348*4882a593Smuzhiyun io_expander: gpio@20 { 349*4882a593Smuzhiyun compatible = "onnn,pca9654"; 350*4882a593Smuzhiyun reg = <0x20>; 351*4882a593Smuzhiyun gpio-controller; 352*4882a593Smuzhiyun #gpio-cells = <2>; 353*4882a593Smuzhiyun interrupt-parent = <&gpio2>; 354*4882a593Smuzhiyun interrupts = <22 IRQ_TYPE_LEVEL_LOW>; 355*4882a593Smuzhiyun }; 356*4882a593Smuzhiyun 357*4882a593Smuzhiyun hdmi-encoder@39 { 358*4882a593Smuzhiyun compatible = "adi,adv7511w"; 359*4882a593Smuzhiyun reg = <0x39>; 360*4882a593Smuzhiyun interrupt-parent = <&gpio1>; 361*4882a593Smuzhiyun interrupts = <1 IRQ_TYPE_LEVEL_LOW>; 362*4882a593Smuzhiyun 363*4882a593Smuzhiyun adi,input-depth = <8>; 364*4882a593Smuzhiyun adi,input-colorspace = "rgb"; 365*4882a593Smuzhiyun adi,input-clock = "1x"; 366*4882a593Smuzhiyun 367*4882a593Smuzhiyun ports { 368*4882a593Smuzhiyun #address-cells = <1>; 369*4882a593Smuzhiyun #size-cells = <0>; 370*4882a593Smuzhiyun 371*4882a593Smuzhiyun port@0 { 372*4882a593Smuzhiyun reg = <0>; 373*4882a593Smuzhiyun adv7511_in: endpoint { 374*4882a593Smuzhiyun remote-endpoint = <&thc63lvd1024_out>; 375*4882a593Smuzhiyun }; 376*4882a593Smuzhiyun }; 377*4882a593Smuzhiyun 378*4882a593Smuzhiyun port@1 { 379*4882a593Smuzhiyun reg = <1>; 380*4882a593Smuzhiyun adv7511_out: endpoint { 381*4882a593Smuzhiyun remote-endpoint = <&hdmi_con_out>; 382*4882a593Smuzhiyun }; 383*4882a593Smuzhiyun }; 384*4882a593Smuzhiyun }; 385*4882a593Smuzhiyun }; 386*4882a593Smuzhiyun 387*4882a593Smuzhiyun video-receiver@70 { 388*4882a593Smuzhiyun compatible = "adi,adv7482"; 389*4882a593Smuzhiyun reg = <0x70>; 390*4882a593Smuzhiyun 391*4882a593Smuzhiyun #address-cells = <1>; 392*4882a593Smuzhiyun #size-cells = <0>; 393*4882a593Smuzhiyun 394*4882a593Smuzhiyun interrupt-parent = <&gpio0>; 395*4882a593Smuzhiyun interrupt-names = "intrq1", "intrq2"; 396*4882a593Smuzhiyun interrupts = <7 IRQ_TYPE_LEVEL_LOW>, 397*4882a593Smuzhiyun <17 IRQ_TYPE_LEVEL_LOW>; 398*4882a593Smuzhiyun 399*4882a593Smuzhiyun port@7 { 400*4882a593Smuzhiyun reg = <7>; 401*4882a593Smuzhiyun 402*4882a593Smuzhiyun adv7482_ain7: endpoint { 403*4882a593Smuzhiyun remote-endpoint = <&cvbs_con>; 404*4882a593Smuzhiyun }; 405*4882a593Smuzhiyun }; 406*4882a593Smuzhiyun 407*4882a593Smuzhiyun port@8 { 408*4882a593Smuzhiyun reg = <8>; 409*4882a593Smuzhiyun 410*4882a593Smuzhiyun adv7482_hdmi: endpoint { 411*4882a593Smuzhiyun remote-endpoint = <&hdmi_in_con>; 412*4882a593Smuzhiyun }; 413*4882a593Smuzhiyun }; 414*4882a593Smuzhiyun 415*4882a593Smuzhiyun port@a { 416*4882a593Smuzhiyun reg = <10>; 417*4882a593Smuzhiyun 418*4882a593Smuzhiyun adv7482_txa: endpoint { 419*4882a593Smuzhiyun clock-lanes = <0>; 420*4882a593Smuzhiyun data-lanes = <1 2>; 421*4882a593Smuzhiyun remote-endpoint = <&csi40_in>; 422*4882a593Smuzhiyun }; 423*4882a593Smuzhiyun }; 424*4882a593Smuzhiyun }; 425*4882a593Smuzhiyun}; 426*4882a593Smuzhiyun 427*4882a593Smuzhiyun&i2c3 { 428*4882a593Smuzhiyun status = "okay"; 429*4882a593Smuzhiyun 430*4882a593Smuzhiyun ak4613: codec@10 { 431*4882a593Smuzhiyun compatible = "asahi-kasei,ak4613"; 432*4882a593Smuzhiyun #sound-dai-cells = <0>; 433*4882a593Smuzhiyun reg = <0x10>; 434*4882a593Smuzhiyun clocks = <&rcar_sound 3>; 435*4882a593Smuzhiyun 436*4882a593Smuzhiyun asahi-kasei,in1-single-end; 437*4882a593Smuzhiyun asahi-kasei,in2-single-end; 438*4882a593Smuzhiyun asahi-kasei,out1-single-end; 439*4882a593Smuzhiyun asahi-kasei,out2-single-end; 440*4882a593Smuzhiyun asahi-kasei,out3-single-end; 441*4882a593Smuzhiyun asahi-kasei,out4-single-end; 442*4882a593Smuzhiyun asahi-kasei,out5-single-end; 443*4882a593Smuzhiyun asahi-kasei,out6-single-end; 444*4882a593Smuzhiyun }; 445*4882a593Smuzhiyun 446*4882a593Smuzhiyun cs2000: clk-multiplier@4f { 447*4882a593Smuzhiyun #clock-cells = <0>; 448*4882a593Smuzhiyun compatible = "cirrus,cs2000-cp"; 449*4882a593Smuzhiyun reg = <0x4f>; 450*4882a593Smuzhiyun clocks = <&audio_clkout>, <&x12_clk>; 451*4882a593Smuzhiyun clock-names = "clk_in", "ref_clk"; 452*4882a593Smuzhiyun 453*4882a593Smuzhiyun assigned-clocks = <&cs2000>; 454*4882a593Smuzhiyun assigned-clock-rates = <24576000>; /* 1/1 divide */ 455*4882a593Smuzhiyun }; 456*4882a593Smuzhiyun}; 457*4882a593Smuzhiyun 458*4882a593Smuzhiyun&i2c_dvfs { 459*4882a593Smuzhiyun status = "okay"; 460*4882a593Smuzhiyun 461*4882a593Smuzhiyun clock-frequency = <400000>; 462*4882a593Smuzhiyun 463*4882a593Smuzhiyun pmic: pmic@30 { 464*4882a593Smuzhiyun pinctrl-0 = <&irq0_pins>; 465*4882a593Smuzhiyun pinctrl-names = "default"; 466*4882a593Smuzhiyun 467*4882a593Smuzhiyun compatible = "rohm,bd9571mwv"; 468*4882a593Smuzhiyun reg = <0x30>; 469*4882a593Smuzhiyun interrupt-parent = <&intc_ex>; 470*4882a593Smuzhiyun interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 471*4882a593Smuzhiyun interrupt-controller; 472*4882a593Smuzhiyun #interrupt-cells = <2>; 473*4882a593Smuzhiyun gpio-controller; 474*4882a593Smuzhiyun #gpio-cells = <2>; 475*4882a593Smuzhiyun rohm,ddr-backup-power = <0x1>; 476*4882a593Smuzhiyun rohm,rstbmode-level; 477*4882a593Smuzhiyun }; 478*4882a593Smuzhiyun}; 479*4882a593Smuzhiyun 480*4882a593Smuzhiyun&lvds0 { 481*4882a593Smuzhiyun status = "okay"; 482*4882a593Smuzhiyun 483*4882a593Smuzhiyun clocks = <&cpg CPG_MOD 727>, 484*4882a593Smuzhiyun <&x13_clk>, 485*4882a593Smuzhiyun <&extal_clk>; 486*4882a593Smuzhiyun clock-names = "fck", "dclkin.0", "extal"; 487*4882a593Smuzhiyun 488*4882a593Smuzhiyun ports { 489*4882a593Smuzhiyun port@1 { 490*4882a593Smuzhiyun lvds0_out: endpoint { 491*4882a593Smuzhiyun remote-endpoint = <&thc63lvd1024_in>; 492*4882a593Smuzhiyun }; 493*4882a593Smuzhiyun }; 494*4882a593Smuzhiyun }; 495*4882a593Smuzhiyun}; 496*4882a593Smuzhiyun 497*4882a593Smuzhiyun&lvds1 { 498*4882a593Smuzhiyun /* 499*4882a593Smuzhiyun * Even though the LVDS1 output is not connected, the encoder must be 500*4882a593Smuzhiyun * enabled to supply a pixel clock to the DU for the DPAD output when 501*4882a593Smuzhiyun * LVDS0 is in use. 502*4882a593Smuzhiyun */ 503*4882a593Smuzhiyun status = "okay"; 504*4882a593Smuzhiyun 505*4882a593Smuzhiyun clocks = <&cpg CPG_MOD 727>, 506*4882a593Smuzhiyun <&x13_clk>, 507*4882a593Smuzhiyun <&extal_clk>; 508*4882a593Smuzhiyun clock-names = "fck", "dclkin.0", "extal"; 509*4882a593Smuzhiyun}; 510*4882a593Smuzhiyun 511*4882a593Smuzhiyun&ohci0 { 512*4882a593Smuzhiyun dr_mode = "otg"; 513*4882a593Smuzhiyun status = "okay"; 514*4882a593Smuzhiyun}; 515*4882a593Smuzhiyun 516*4882a593Smuzhiyun&pcie_bus_clk { 517*4882a593Smuzhiyun clock-frequency = <100000000>; 518*4882a593Smuzhiyun}; 519*4882a593Smuzhiyun 520*4882a593Smuzhiyun&pciec0 { 521*4882a593Smuzhiyun status = "okay"; 522*4882a593Smuzhiyun}; 523*4882a593Smuzhiyun 524*4882a593Smuzhiyun&pfc { 525*4882a593Smuzhiyun avb_pins: avb { 526*4882a593Smuzhiyun groups = "avb_link", "avb_mii"; 527*4882a593Smuzhiyun function = "avb"; 528*4882a593Smuzhiyun }; 529*4882a593Smuzhiyun 530*4882a593Smuzhiyun canfd0_pins: canfd0 { 531*4882a593Smuzhiyun groups = "canfd0_data"; 532*4882a593Smuzhiyun function = "canfd0"; 533*4882a593Smuzhiyun }; 534*4882a593Smuzhiyun 535*4882a593Smuzhiyun du_pins: du { 536*4882a593Smuzhiyun groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0"; 537*4882a593Smuzhiyun function = "du"; 538*4882a593Smuzhiyun }; 539*4882a593Smuzhiyun 540*4882a593Smuzhiyun irq0_pins: irq0 { 541*4882a593Smuzhiyun groups = "intc_ex_irq0"; 542*4882a593Smuzhiyun function = "intc_ex"; 543*4882a593Smuzhiyun }; 544*4882a593Smuzhiyun 545*4882a593Smuzhiyun pwm3_pins: pwm3 { 546*4882a593Smuzhiyun groups = "pwm3_b"; 547*4882a593Smuzhiyun function = "pwm3"; 548*4882a593Smuzhiyun }; 549*4882a593Smuzhiyun 550*4882a593Smuzhiyun pwm5_pins: pwm5 { 551*4882a593Smuzhiyun groups = "pwm5_a"; 552*4882a593Smuzhiyun function = "pwm5"; 553*4882a593Smuzhiyun }; 554*4882a593Smuzhiyun 555*4882a593Smuzhiyun scif2_pins: scif2 { 556*4882a593Smuzhiyun groups = "scif2_data_a"; 557*4882a593Smuzhiyun function = "scif2"; 558*4882a593Smuzhiyun }; 559*4882a593Smuzhiyun 560*4882a593Smuzhiyun sdhi0_pins: sd0 { 561*4882a593Smuzhiyun groups = "sdhi0_data4", "sdhi0_ctrl"; 562*4882a593Smuzhiyun function = "sdhi0"; 563*4882a593Smuzhiyun power-source = <3300>; 564*4882a593Smuzhiyun }; 565*4882a593Smuzhiyun 566*4882a593Smuzhiyun sdhi0_pins_uhs: sd0_uhs { 567*4882a593Smuzhiyun groups = "sdhi0_data4", "sdhi0_ctrl"; 568*4882a593Smuzhiyun function = "sdhi0"; 569*4882a593Smuzhiyun power-source = <1800>; 570*4882a593Smuzhiyun }; 571*4882a593Smuzhiyun 572*4882a593Smuzhiyun sdhi1_pins: sd1 { 573*4882a593Smuzhiyun groups = "sdhi1_data4", "sdhi1_ctrl"; 574*4882a593Smuzhiyun function = "sdhi1"; 575*4882a593Smuzhiyun power-source = <3300>; 576*4882a593Smuzhiyun }; 577*4882a593Smuzhiyun 578*4882a593Smuzhiyun sdhi1_pins_uhs: sd1_uhs { 579*4882a593Smuzhiyun groups = "sdhi1_data4", "sdhi1_ctrl"; 580*4882a593Smuzhiyun function = "sdhi1"; 581*4882a593Smuzhiyun power-source = <1800>; 582*4882a593Smuzhiyun }; 583*4882a593Smuzhiyun 584*4882a593Smuzhiyun sdhi3_pins: sd3 { 585*4882a593Smuzhiyun groups = "sdhi3_data8", "sdhi3_ctrl", "sdhi3_ds"; 586*4882a593Smuzhiyun function = "sdhi3"; 587*4882a593Smuzhiyun power-source = <1800>; 588*4882a593Smuzhiyun }; 589*4882a593Smuzhiyun 590*4882a593Smuzhiyun sound_clk_pins: sound_clk { 591*4882a593Smuzhiyun groups = "audio_clk_a", "audio_clk_b_a", "audio_clk_c_a", 592*4882a593Smuzhiyun "audio_clkout_a", "audio_clkout1_a"; 593*4882a593Smuzhiyun function = "audio_clk"; 594*4882a593Smuzhiyun }; 595*4882a593Smuzhiyun 596*4882a593Smuzhiyun sound_pins: sound { 597*4882a593Smuzhiyun groups = "ssi01239_ctrl", "ssi0_data", "ssi1_data"; 598*4882a593Smuzhiyun function = "ssi"; 599*4882a593Smuzhiyun }; 600*4882a593Smuzhiyun 601*4882a593Smuzhiyun usb0_pins: usb { 602*4882a593Smuzhiyun groups = "usb0_b", "usb0_id"; 603*4882a593Smuzhiyun function = "usb0"; 604*4882a593Smuzhiyun }; 605*4882a593Smuzhiyun 606*4882a593Smuzhiyun usb30_pins: usb30 { 607*4882a593Smuzhiyun groups = "usb30"; 608*4882a593Smuzhiyun function = "usb30"; 609*4882a593Smuzhiyun }; 610*4882a593Smuzhiyun}; 611*4882a593Smuzhiyun 612*4882a593Smuzhiyun&pwm3 { 613*4882a593Smuzhiyun pinctrl-0 = <&pwm3_pins>; 614*4882a593Smuzhiyun pinctrl-names = "default"; 615*4882a593Smuzhiyun 616*4882a593Smuzhiyun status = "okay"; 617*4882a593Smuzhiyun}; 618*4882a593Smuzhiyun 619*4882a593Smuzhiyun&pwm5 { 620*4882a593Smuzhiyun pinctrl-0 = <&pwm5_pins>; 621*4882a593Smuzhiyun pinctrl-names = "default"; 622*4882a593Smuzhiyun 623*4882a593Smuzhiyun status = "okay"; 624*4882a593Smuzhiyun}; 625*4882a593Smuzhiyun 626*4882a593Smuzhiyun&rcar_sound { 627*4882a593Smuzhiyun pinctrl-0 = <&sound_pins &sound_clk_pins>; 628*4882a593Smuzhiyun pinctrl-names = "default"; 629*4882a593Smuzhiyun 630*4882a593Smuzhiyun /* Single DAI */ 631*4882a593Smuzhiyun #sound-dai-cells = <0>; 632*4882a593Smuzhiyun 633*4882a593Smuzhiyun /* audio_clkout0/1/2/3 */ 634*4882a593Smuzhiyun #clock-cells = <1>; 635*4882a593Smuzhiyun clock-frequency = <12288000 11289600>; 636*4882a593Smuzhiyun 637*4882a593Smuzhiyun status = "okay"; 638*4882a593Smuzhiyun 639*4882a593Smuzhiyun /* update <audio_clk_b> to <cs2000> */ 640*4882a593Smuzhiyun clocks = <&cpg CPG_MOD 1005>, 641*4882a593Smuzhiyun <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>, 642*4882a593Smuzhiyun <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>, 643*4882a593Smuzhiyun <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>, 644*4882a593Smuzhiyun <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>, 645*4882a593Smuzhiyun <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>, 646*4882a593Smuzhiyun <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>, 647*4882a593Smuzhiyun <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>, 648*4882a593Smuzhiyun <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>, 649*4882a593Smuzhiyun <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>, 650*4882a593Smuzhiyun <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>, 651*4882a593Smuzhiyun <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, 652*4882a593Smuzhiyun <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, 653*4882a593Smuzhiyun <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, 654*4882a593Smuzhiyun <&audio_clk_a>, <&cs2000>, <&audio_clk_c>, 655*4882a593Smuzhiyun <&cpg CPG_CORE R8A77990_CLK_ZA2>; 656*4882a593Smuzhiyun 657*4882a593Smuzhiyun rcar_sound,dai { 658*4882a593Smuzhiyun dai0 { 659*4882a593Smuzhiyun playback = <&ssi0 &src0 &dvc0>; 660*4882a593Smuzhiyun capture = <&ssi1 &src1 &dvc1>; 661*4882a593Smuzhiyun }; 662*4882a593Smuzhiyun }; 663*4882a593Smuzhiyun 664*4882a593Smuzhiyun}; 665*4882a593Smuzhiyun 666*4882a593Smuzhiyun&rwdt { 667*4882a593Smuzhiyun timeout-sec = <60>; 668*4882a593Smuzhiyun status = "okay"; 669*4882a593Smuzhiyun}; 670*4882a593Smuzhiyun 671*4882a593Smuzhiyun&scif2 { 672*4882a593Smuzhiyun pinctrl-0 = <&scif2_pins>; 673*4882a593Smuzhiyun pinctrl-names = "default"; 674*4882a593Smuzhiyun 675*4882a593Smuzhiyun status = "okay"; 676*4882a593Smuzhiyun}; 677*4882a593Smuzhiyun 678*4882a593Smuzhiyun&sdhi0 { 679*4882a593Smuzhiyun pinctrl-0 = <&sdhi0_pins>; 680*4882a593Smuzhiyun pinctrl-1 = <&sdhi0_pins_uhs>; 681*4882a593Smuzhiyun pinctrl-names = "default", "state_uhs"; 682*4882a593Smuzhiyun 683*4882a593Smuzhiyun vmmc-supply = <&vcc_sdhi0>; 684*4882a593Smuzhiyun vqmmc-supply = <&vccq_sdhi0>; 685*4882a593Smuzhiyun cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; 686*4882a593Smuzhiyun wp-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; 687*4882a593Smuzhiyun bus-width = <4>; 688*4882a593Smuzhiyun sd-uhs-sdr50; 689*4882a593Smuzhiyun sd-uhs-sdr104; 690*4882a593Smuzhiyun status = "okay"; 691*4882a593Smuzhiyun}; 692*4882a593Smuzhiyun 693*4882a593Smuzhiyun&sdhi1 { 694*4882a593Smuzhiyun pinctrl-0 = <&sdhi1_pins>; 695*4882a593Smuzhiyun pinctrl-1 = <&sdhi1_pins_uhs>; 696*4882a593Smuzhiyun pinctrl-names = "default", "state_uhs"; 697*4882a593Smuzhiyun 698*4882a593Smuzhiyun vmmc-supply = <&vcc_sdhi1>; 699*4882a593Smuzhiyun vqmmc-supply = <&vccq_sdhi1>; 700*4882a593Smuzhiyun cd-gpios = <&gpio3 14 GPIO_ACTIVE_LOW>; 701*4882a593Smuzhiyun bus-width = <4>; 702*4882a593Smuzhiyun sd-uhs-sdr50; 703*4882a593Smuzhiyun sd-uhs-sdr104; 704*4882a593Smuzhiyun status = "okay"; 705*4882a593Smuzhiyun}; 706*4882a593Smuzhiyun 707*4882a593Smuzhiyun&sdhi3 { 708*4882a593Smuzhiyun /* used for on-board 8bit eMMC */ 709*4882a593Smuzhiyun pinctrl-0 = <&sdhi3_pins>; 710*4882a593Smuzhiyun pinctrl-1 = <&sdhi3_pins>; 711*4882a593Smuzhiyun pinctrl-names = "default", "state_uhs"; 712*4882a593Smuzhiyun 713*4882a593Smuzhiyun vmmc-supply = <®_3p3v>; 714*4882a593Smuzhiyun vqmmc-supply = <®_1p8v>; 715*4882a593Smuzhiyun mmc-hs200-1_8v; 716*4882a593Smuzhiyun mmc-hs400-1_8v; 717*4882a593Smuzhiyun bus-width = <8>; 718*4882a593Smuzhiyun non-removable; 719*4882a593Smuzhiyun full-pwr-cycle-in-suspend; 720*4882a593Smuzhiyun status = "okay"; 721*4882a593Smuzhiyun}; 722*4882a593Smuzhiyun 723*4882a593Smuzhiyun&ssi1 { 724*4882a593Smuzhiyun shared-pin; 725*4882a593Smuzhiyun}; 726*4882a593Smuzhiyun 727*4882a593Smuzhiyun&usb2_phy0 { 728*4882a593Smuzhiyun pinctrl-0 = <&usb0_pins>; 729*4882a593Smuzhiyun pinctrl-names = "default"; 730*4882a593Smuzhiyun 731*4882a593Smuzhiyun vbus-supply = <&vbus0_usb2>; 732*4882a593Smuzhiyun status = "okay"; 733*4882a593Smuzhiyun}; 734*4882a593Smuzhiyun 735*4882a593Smuzhiyun&usb3_peri0 { 736*4882a593Smuzhiyun companion = <&xhci0>; 737*4882a593Smuzhiyun status = "okay"; 738*4882a593Smuzhiyun}; 739*4882a593Smuzhiyun 740*4882a593Smuzhiyun&vin4 { 741*4882a593Smuzhiyun status = "okay"; 742*4882a593Smuzhiyun}; 743*4882a593Smuzhiyun 744*4882a593Smuzhiyun&vin5 { 745*4882a593Smuzhiyun status = "okay"; 746*4882a593Smuzhiyun}; 747*4882a593Smuzhiyun 748*4882a593Smuzhiyun&xhci0 { 749*4882a593Smuzhiyun pinctrl-0 = <&usb30_pins>; 750*4882a593Smuzhiyun pinctrl-names = "default"; 751*4882a593Smuzhiyun 752*4882a593Smuzhiyun status = "okay"; 753*4882a593Smuzhiyun}; 754