1d828266bSBiju Das// SPDX-License-Identifier: GPL-2.0 2d828266bSBiju Das/* 3d828266bSBiju Das * Device Tree Source for the Silicon Linux RZ/G2E 96board platform (CAT874) 4d828266bSBiju Das * 5d828266bSBiju Das * Copyright (C) 2019 Renesas Electronics Corp. 6d828266bSBiju Das */ 7d828266bSBiju Das 8d828266bSBiju Das/dts-v1/; 9d828266bSBiju Das#include "r8a774c0.dtsi" 10a102b93eSBiju Das#include <dt-bindings/gpio/gpio.h> 11a597dcb1SFabrizio Castro#include <dt-bindings/display/tda998x.h> 12d828266bSBiju Das 13d828266bSBiju Das/ { 14d828266bSBiju Das model = "Silicon Linux RZ/G2E 96board platform (CAT874)"; 15d828266bSBiju Das compatible = "si-linux,cat874", "renesas,r8a774c0"; 16d828266bSBiju Das 17d828266bSBiju Das aliases { 18d828266bSBiju Das serial0 = &scif2; 19*7b7c5676SBiju Das serial1 = &hscif2; 20d828266bSBiju Das }; 21d828266bSBiju Das 22d828266bSBiju Das chosen { 23d828266bSBiju Das bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; 24d828266bSBiju Das stdout-path = "serial0:115200n8"; 25d828266bSBiju Das }; 26d828266bSBiju Das 2794fc0ee2SFabrizio Castro hdmi-out { 2894fc0ee2SFabrizio Castro compatible = "hdmi-connector"; 2994fc0ee2SFabrizio Castro type = "a"; 3094fc0ee2SFabrizio Castro 3194fc0ee2SFabrizio Castro port { 3294fc0ee2SFabrizio Castro hdmi_con_out: endpoint { 3394fc0ee2SFabrizio Castro remote-endpoint = <&tda19988_out>; 3494fc0ee2SFabrizio Castro }; 3594fc0ee2SFabrizio Castro }; 3694fc0ee2SFabrizio Castro }; 3794fc0ee2SFabrizio Castro 38dc0b4394SFabrizio Castro leds { 39dc0b4394SFabrizio Castro compatible = "gpio-leds"; 40dc0b4394SFabrizio Castro 41dc0b4394SFabrizio Castro led0 { 42dc0b4394SFabrizio Castro gpios = <&gpio5 19 GPIO_ACTIVE_HIGH>; 43dc0b4394SFabrizio Castro label = "LED0"; 44dc0b4394SFabrizio Castro }; 45dc0b4394SFabrizio Castro 46dc0b4394SFabrizio Castro led1 { 47dc0b4394SFabrizio Castro gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>; 48dc0b4394SFabrizio Castro label = "LED1"; 49dc0b4394SFabrizio Castro }; 50dc0b4394SFabrizio Castro 51dc0b4394SFabrizio Castro led2 { 52dc0b4394SFabrizio Castro gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>; 53dc0b4394SFabrizio Castro label = "LED2"; 54dc0b4394SFabrizio Castro }; 55dc0b4394SFabrizio Castro 56dc0b4394SFabrizio Castro led3 { 57dc0b4394SFabrizio Castro gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>; 58dc0b4394SFabrizio Castro label = "LED3"; 59dc0b4394SFabrizio Castro }; 60dc0b4394SFabrizio Castro }; 61dc0b4394SFabrizio Castro 62d828266bSBiju Das memory@48000000 { 63d828266bSBiju Das device_type = "memory"; 64d828266bSBiju Das /* first 128MB is reserved for secure area. */ 65d828266bSBiju Das reg = <0x0 0x48000000 0x0 0x78000000>; 66d828266bSBiju Das }; 67a102b93eSBiju Das 68a597dcb1SFabrizio Castro sound: sound { 69a597dcb1SFabrizio Castro compatible = "simple-audio-card"; 70a597dcb1SFabrizio Castro 71a597dcb1SFabrizio Castro simple-audio-card,name = "CAT874 HDMI sound"; 72a597dcb1SFabrizio Castro simple-audio-card,format = "i2s"; 73a597dcb1SFabrizio Castro simple-audio-card,bitclock-master = <&sndcpu>; 74a597dcb1SFabrizio Castro simple-audio-card,frame-master = <&sndcpu>; 75a597dcb1SFabrizio Castro 76a597dcb1SFabrizio Castro sndcpu: simple-audio-card,cpu { 77a597dcb1SFabrizio Castro sound-dai = <&rcar_sound>; 78a597dcb1SFabrizio Castro }; 79a597dcb1SFabrizio Castro 80a597dcb1SFabrizio Castro sndcodec: simple-audio-card,codec { 81a597dcb1SFabrizio Castro sound-dai = <&tda19988>; 82a597dcb1SFabrizio Castro }; 83a597dcb1SFabrizio Castro }; 84a597dcb1SFabrizio Castro 85a102b93eSBiju Das vcc_sdhi0: regulator-vcc-sdhi0 { 86a102b93eSBiju Das compatible = "regulator-fixed"; 87a102b93eSBiju Das 88a102b93eSBiju Das regulator-name = "SDHI0 Vcc"; 89a102b93eSBiju Das regulator-min-microvolt = <3300000>; 90a102b93eSBiju Das regulator-max-microvolt = <3300000>; 91a102b93eSBiju Das regulator-always-on; 92a102b93eSBiju Das regulator-boot-on; 93a102b93eSBiju Das }; 94a102b93eSBiju Das 95a102b93eSBiju Das vccq_sdhi0: regulator-vccq-sdhi0 { 96a102b93eSBiju Das compatible = "regulator-gpio"; 97a102b93eSBiju Das 98a102b93eSBiju Das regulator-name = "SDHI0 VccQ"; 99a102b93eSBiju Das regulator-min-microvolt = <1800000>; 100a102b93eSBiju Das regulator-max-microvolt = <3300000>; 101a102b93eSBiju Das 102a102b93eSBiju Das gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; 103a102b93eSBiju Das gpios-states = <1>; 104a102b93eSBiju Das states = <3300000 1 105a102b93eSBiju Das 1800000 0>; 106a102b93eSBiju Das }; 10794fc0ee2SFabrizio Castro 108b263b006SBiju Das wlan_en_reg: fixedregulator { 109b263b006SBiju Das compatible = "regulator-fixed"; 110b263b006SBiju Das regulator-name = "wlan-en-regulator"; 111b263b006SBiju Das regulator-min-microvolt = <1800000>; 112b263b006SBiju Das regulator-max-microvolt = <1800000>; 113b263b006SBiju Das startup-delay-us = <70000>; 114b263b006SBiju Das 115b263b006SBiju Das gpio = <&gpio2 25 GPIO_ACTIVE_HIGH>; 116b263b006SBiju Das enable-active-high; 117b263b006SBiju Das }; 118b263b006SBiju Das 11994fc0ee2SFabrizio Castro x13_clk: x13 { 12094fc0ee2SFabrizio Castro compatible = "fixed-clock"; 12194fc0ee2SFabrizio Castro #clock-cells = <0>; 12294fc0ee2SFabrizio Castro clock-frequency = <74250000>; 12394fc0ee2SFabrizio Castro }; 12494fc0ee2SFabrizio Castro}; 12594fc0ee2SFabrizio Castro 126a597dcb1SFabrizio Castro&audio_clk_a { 127a597dcb1SFabrizio Castro clock-frequency = <22579200>; 128a597dcb1SFabrizio Castro}; 129a597dcb1SFabrizio Castro 13094fc0ee2SFabrizio Castro&du { 13194fc0ee2SFabrizio Castro pinctrl-0 = <&du_pins>; 13294fc0ee2SFabrizio Castro pinctrl-names = "default"; 13394fc0ee2SFabrizio Castro status = "okay"; 13494fc0ee2SFabrizio Castro 13594fc0ee2SFabrizio Castro clocks = <&cpg CPG_MOD 724>, 13694fc0ee2SFabrizio Castro <&cpg CPG_MOD 723>, 13794fc0ee2SFabrizio Castro <&x13_clk>; 13894fc0ee2SFabrizio Castro clock-names = "du.0", "du.1", "dclkin.0"; 13994fc0ee2SFabrizio Castro 14094fc0ee2SFabrizio Castro ports { 14194fc0ee2SFabrizio Castro port@0 { 14294fc0ee2SFabrizio Castro endpoint { 14394fc0ee2SFabrizio Castro remote-endpoint = <&tda19988_in>; 14494fc0ee2SFabrizio Castro }; 14594fc0ee2SFabrizio Castro }; 14694fc0ee2SFabrizio Castro }; 147d828266bSBiju Das}; 148d828266bSBiju Das 149ad68fa5fSFabrizio Castro&ehci0 { 150ad68fa5fSFabrizio Castro dr_mode = "host"; 151ad68fa5fSFabrizio Castro status = "okay"; 152ad68fa5fSFabrizio Castro}; 153ad68fa5fSFabrizio Castro 154d828266bSBiju Das&extal_clk { 155d828266bSBiju Das clock-frequency = <48000000>; 156d828266bSBiju Das}; 157d828266bSBiju Das 158*7b7c5676SBiju Das&hscif2 { 159*7b7c5676SBiju Das pinctrl-0 = <&hscif2_pins>; 160*7b7c5676SBiju Das pinctrl-names = "default"; 161*7b7c5676SBiju Das 162*7b7c5676SBiju Das uart-has-rtscts; 163*7b7c5676SBiju Das status = "okay"; 164*7b7c5676SBiju Das 165*7b7c5676SBiju Das bluetooth { 166*7b7c5676SBiju Das compatible = "ti,wl1837-st"; 167*7b7c5676SBiju Das enable-gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>; 168*7b7c5676SBiju Das }; 169*7b7c5676SBiju Das}; 170*7b7c5676SBiju Das 17194fc0ee2SFabrizio Castro&i2c0 { 17294fc0ee2SFabrizio Castro status = "okay"; 17394fc0ee2SFabrizio Castro clock-frequency = <100000>; 17494fc0ee2SFabrizio Castro 17594fc0ee2SFabrizio Castro tda19988: tda19988@70 { 17694fc0ee2SFabrizio Castro compatible = "nxp,tda998x"; 17794fc0ee2SFabrizio Castro reg = <0x70>; 17894fc0ee2SFabrizio Castro interrupt-parent = <&gpio1>; 17994fc0ee2SFabrizio Castro interrupts = <1 IRQ_TYPE_LEVEL_LOW>; 18094fc0ee2SFabrizio Castro 18194fc0ee2SFabrizio Castro video-ports = <0x234501>; 18294fc0ee2SFabrizio Castro 183a597dcb1SFabrizio Castro #sound-dai-cells = <0>; 184a597dcb1SFabrizio Castro audio-ports = <TDA998x_I2S 0x03>; 185a597dcb1SFabrizio Castro clocks = <&rcar_sound 1>; 186a597dcb1SFabrizio Castro 18794fc0ee2SFabrizio Castro ports { 18894fc0ee2SFabrizio Castro #address-cells = <1>; 18994fc0ee2SFabrizio Castro #size-cells = <0>; 19094fc0ee2SFabrizio Castro 19194fc0ee2SFabrizio Castro port@0 { 19294fc0ee2SFabrizio Castro reg = <0>; 19394fc0ee2SFabrizio Castro tda19988_in: endpoint { 19494fc0ee2SFabrizio Castro remote-endpoint = <&du_out_rgb>; 19594fc0ee2SFabrizio Castro }; 19694fc0ee2SFabrizio Castro }; 19794fc0ee2SFabrizio Castro 19894fc0ee2SFabrizio Castro port@1 { 19994fc0ee2SFabrizio Castro reg = <1>; 20094fc0ee2SFabrizio Castro tda19988_out: endpoint { 20194fc0ee2SFabrizio Castro remote-endpoint = <&hdmi_con_out>; 20294fc0ee2SFabrizio Castro }; 20394fc0ee2SFabrizio Castro }; 20494fc0ee2SFabrizio Castro }; 20594fc0ee2SFabrizio Castro }; 20694fc0ee2SFabrizio Castro}; 20794fc0ee2SFabrizio Castro 20807e72397SBiju Das&i2c1 { 20907e72397SBiju Das pinctrl-0 = <&i2c1_pins>; 21007e72397SBiju Das pinctrl-names = "default"; 21107e72397SBiju Das 21207e72397SBiju Das status = "okay"; 21307e72397SBiju Das clock-frequency = <400000>; 21407e72397SBiju Das 21507e72397SBiju Das rtc@32 { 21607e72397SBiju Das compatible = "epson,rx8571"; 21707e72397SBiju Das reg = <0x32>; 21807e72397SBiju Das }; 21907e72397SBiju Das}; 22007e72397SBiju Das 22194fc0ee2SFabrizio Castro&lvds0 { 22294fc0ee2SFabrizio Castro status = "okay"; 22394fc0ee2SFabrizio Castro 22494fc0ee2SFabrizio Castro clocks = <&cpg CPG_MOD 727>, <&x13_clk>, <&extal_clk>; 22594fc0ee2SFabrizio Castro clock-names = "fck", "dclkin.0", "extal"; 22694fc0ee2SFabrizio Castro}; 22794fc0ee2SFabrizio Castro 228ad68fa5fSFabrizio Castro&ohci0 { 229ad68fa5fSFabrizio Castro dr_mode = "host"; 230ad68fa5fSFabrizio Castro status = "okay"; 231ad68fa5fSFabrizio Castro}; 232ad68fa5fSFabrizio Castro 233aaf6c75cSBiju Das&pcie_bus_clk { 234aaf6c75cSBiju Das clock-frequency = <100000000>; 235aaf6c75cSBiju Das}; 236aaf6c75cSBiju Das 237aaf6c75cSBiju Das&pciec0 { 238aaf6c75cSBiju Das /* Map all possible DDR as inbound ranges */ 239aaf6c75cSBiju Das dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 0 0x80000000>; 240aaf6c75cSBiju Das}; 241aaf6c75cSBiju Das 2424cf1f6ceSBiju Das&pfc { 24394fc0ee2SFabrizio Castro du_pins: du { 24494fc0ee2SFabrizio Castro groups = "du_rgb888", "du_clk_out_0", "du_sync", "du_disp", 24594fc0ee2SFabrizio Castro "du_clk_in_0"; 24694fc0ee2SFabrizio Castro function = "du"; 24794fc0ee2SFabrizio Castro }; 24894fc0ee2SFabrizio Castro 24907e72397SBiju Das i2c1_pins: i2c1 { 25007e72397SBiju Das groups = "i2c1_b"; 25107e72397SBiju Das function = "i2c1"; 25207e72397SBiju Das }; 25307e72397SBiju Das 254*7b7c5676SBiju Das hscif2_pins: hscif2 { 255*7b7c5676SBiju Das groups = "hscif2_data_a", "hscif2_ctrl_a"; 256*7b7c5676SBiju Das function = "hscif2"; 257*7b7c5676SBiju Das }; 258*7b7c5676SBiju Das 2594cf1f6ceSBiju Das scif2_pins: scif2 { 2604cf1f6ceSBiju Das groups = "scif2_data_a"; 2614cf1f6ceSBiju Das function = "scif2"; 2624cf1f6ceSBiju Das }; 263a102b93eSBiju Das 264a102b93eSBiju Das sdhi0_pins: sd0 { 265a102b93eSBiju Das groups = "sdhi0_data4", "sdhi0_ctrl"; 266a102b93eSBiju Das function = "sdhi0"; 267a102b93eSBiju Das power-source = <3300>; 268a102b93eSBiju Das }; 269a102b93eSBiju Das 270a102b93eSBiju Das sdhi0_pins_uhs: sd0_uhs { 271a102b93eSBiju Das groups = "sdhi0_data4", "sdhi0_ctrl"; 272a102b93eSBiju Das function = "sdhi0"; 273a102b93eSBiju Das power-source = <1800>; 274a102b93eSBiju Das }; 275a597dcb1SFabrizio Castro 276b263b006SBiju Das sdhi3_pins: sd3 { 277b263b006SBiju Das groups = "sdhi3_data4", "sdhi3_ctrl"; 278b263b006SBiju Das function = "sdhi3"; 279b263b006SBiju Das power-source = <1800>; 280b263b006SBiju Das }; 281b263b006SBiju Das 282a597dcb1SFabrizio Castro sound_pins: sound { 283a597dcb1SFabrizio Castro groups = "ssi01239_ctrl", "ssi0_data"; 284a597dcb1SFabrizio Castro function = "ssi"; 285a597dcb1SFabrizio Castro }; 286a597dcb1SFabrizio Castro 287a597dcb1SFabrizio Castro sound_clk_pins: sound_clk { 288a597dcb1SFabrizio Castro groups = "audio_clkout1_a"; 289a597dcb1SFabrizio Castro function = "audio_clk"; 290a597dcb1SFabrizio Castro }; 291a597dcb1SFabrizio Castro}; 292a597dcb1SFabrizio Castro 293a597dcb1SFabrizio Castro&rcar_sound { 294a597dcb1SFabrizio Castro pinctrl-0 = <&sound_pins &sound_clk_pins>; 295a597dcb1SFabrizio Castro pinctrl-names = "default"; 296a597dcb1SFabrizio Castro 297a597dcb1SFabrizio Castro /* Single DAI */ 298a597dcb1SFabrizio Castro #sound-dai-cells = <0>; 299a597dcb1SFabrizio Castro 300a597dcb1SFabrizio Castro /* audio_clkout0/1/2/3 */ 301a597dcb1SFabrizio Castro #clock-cells = <1>; 302a597dcb1SFabrizio Castro clock-frequency = <11289600>; 303a597dcb1SFabrizio Castro 304a597dcb1SFabrizio Castro status = "okay"; 305a597dcb1SFabrizio Castro 306a597dcb1SFabrizio Castro rcar_sound,dai { 307a597dcb1SFabrizio Castro dai0 { 308a597dcb1SFabrizio Castro playback = <&ssi0 &src0 &dvc0>; 309a597dcb1SFabrizio Castro }; 310a597dcb1SFabrizio Castro }; 3114cf1f6ceSBiju Das}; 3124cf1f6ceSBiju Das 31379223ca1SFabrizio Castro&rwdt { 31479223ca1SFabrizio Castro timeout-sec = <60>; 31579223ca1SFabrizio Castro status = "okay"; 31679223ca1SFabrizio Castro}; 31779223ca1SFabrizio Castro 318d828266bSBiju Das&scif2 { 3194cf1f6ceSBiju Das pinctrl-0 = <&scif2_pins>; 3204cf1f6ceSBiju Das pinctrl-names = "default"; 3214cf1f6ceSBiju Das 322d828266bSBiju Das status = "okay"; 323d828266bSBiju Das}; 324a102b93eSBiju Das 325a102b93eSBiju Das&sdhi0 { 326a102b93eSBiju Das pinctrl-0 = <&sdhi0_pins>; 327a102b93eSBiju Das pinctrl-1 = <&sdhi0_pins_uhs>; 328a102b93eSBiju Das pinctrl-names = "default", "state_uhs"; 329a102b93eSBiju Das 330a102b93eSBiju Das vmmc-supply = <&vcc_sdhi0>; 331a102b93eSBiju Das vqmmc-supply = <&vccq_sdhi0>; 332a102b93eSBiju Das cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; 333a102b93eSBiju Das bus-width = <4>; 334a102b93eSBiju Das sd-uhs-sdr50; 335a102b93eSBiju Das sd-uhs-sdr104; 336a102b93eSBiju Das status = "okay"; 337a102b93eSBiju Das}; 338ad68fa5fSFabrizio Castro 339b263b006SBiju Das&sdhi3 { 340b263b006SBiju Das status = "okay"; 341b263b006SBiju Das pinctrl-0 = <&sdhi3_pins>; 342b263b006SBiju Das pinctrl-names = "default"; 343b263b006SBiju Das 344b263b006SBiju Das vmmc-supply = <&wlan_en_reg>; 345b263b006SBiju Das bus-width = <4>; 346b263b006SBiju Das non-removable; 347b263b006SBiju Das cap-power-off-card; 348b263b006SBiju Das keep-power-in-suspend; 349b263b006SBiju Das 350b263b006SBiju Das #address-cells = <1>; 351b263b006SBiju Das #size-cells = <0>; 352b263b006SBiju Das wlcore: wlcore@2 { 353b263b006SBiju Das compatible = "ti,wl1837"; 354b263b006SBiju Das reg = <2>; 355b263b006SBiju Das interrupt-parent = <&gpio1>; 356b263b006SBiju Das interrupts = <0 IRQ_TYPE_LEVEL_HIGH>; 357b263b006SBiju Das }; 358b263b006SBiju Das}; 359b263b006SBiju Das 360ad68fa5fSFabrizio Castro&usb2_phy0 { 361ad68fa5fSFabrizio Castro renesas,no-otg-pins; 362ad68fa5fSFabrizio Castro status = "okay"; 363ad68fa5fSFabrizio Castro}; 364