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> 11*a597dcb1SFabrizio 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; 19d828266bSBiju Das }; 20d828266bSBiju Das 21d828266bSBiju Das chosen { 22d828266bSBiju Das bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; 23d828266bSBiju Das stdout-path = "serial0:115200n8"; 24d828266bSBiju Das }; 25d828266bSBiju Das 2694fc0ee2SFabrizio Castro hdmi-out { 2794fc0ee2SFabrizio Castro compatible = "hdmi-connector"; 2894fc0ee2SFabrizio Castro type = "a"; 2994fc0ee2SFabrizio Castro 3094fc0ee2SFabrizio Castro port { 3194fc0ee2SFabrizio Castro hdmi_con_out: endpoint { 3294fc0ee2SFabrizio Castro remote-endpoint = <&tda19988_out>; 3394fc0ee2SFabrizio Castro }; 3494fc0ee2SFabrizio Castro }; 3594fc0ee2SFabrizio Castro }; 3694fc0ee2SFabrizio Castro 37dc0b4394SFabrizio Castro leds { 38dc0b4394SFabrizio Castro compatible = "gpio-leds"; 39dc0b4394SFabrizio Castro 40dc0b4394SFabrizio Castro led0 { 41dc0b4394SFabrizio Castro gpios = <&gpio5 19 GPIO_ACTIVE_HIGH>; 42dc0b4394SFabrizio Castro label = "LED0"; 43dc0b4394SFabrizio Castro }; 44dc0b4394SFabrizio Castro 45dc0b4394SFabrizio Castro led1 { 46dc0b4394SFabrizio Castro gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>; 47dc0b4394SFabrizio Castro label = "LED1"; 48dc0b4394SFabrizio Castro }; 49dc0b4394SFabrizio Castro 50dc0b4394SFabrizio Castro led2 { 51dc0b4394SFabrizio Castro gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>; 52dc0b4394SFabrizio Castro label = "LED2"; 53dc0b4394SFabrizio Castro }; 54dc0b4394SFabrizio Castro 55dc0b4394SFabrizio Castro led3 { 56dc0b4394SFabrizio Castro gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>; 57dc0b4394SFabrizio Castro label = "LED3"; 58dc0b4394SFabrizio Castro }; 59dc0b4394SFabrizio Castro }; 60dc0b4394SFabrizio Castro 61d828266bSBiju Das memory@48000000 { 62d828266bSBiju Das device_type = "memory"; 63d828266bSBiju Das /* first 128MB is reserved for secure area. */ 64d828266bSBiju Das reg = <0x0 0x48000000 0x0 0x78000000>; 65d828266bSBiju Das }; 66a102b93eSBiju Das 67*a597dcb1SFabrizio Castro sound: sound { 68*a597dcb1SFabrizio Castro compatible = "simple-audio-card"; 69*a597dcb1SFabrizio Castro 70*a597dcb1SFabrizio Castro simple-audio-card,name = "CAT874 HDMI sound"; 71*a597dcb1SFabrizio Castro simple-audio-card,format = "i2s"; 72*a597dcb1SFabrizio Castro simple-audio-card,bitclock-master = <&sndcpu>; 73*a597dcb1SFabrizio Castro simple-audio-card,frame-master = <&sndcpu>; 74*a597dcb1SFabrizio Castro 75*a597dcb1SFabrizio Castro sndcpu: simple-audio-card,cpu { 76*a597dcb1SFabrizio Castro sound-dai = <&rcar_sound>; 77*a597dcb1SFabrizio Castro }; 78*a597dcb1SFabrizio Castro 79*a597dcb1SFabrizio Castro sndcodec: simple-audio-card,codec { 80*a597dcb1SFabrizio Castro sound-dai = <&tda19988>; 81*a597dcb1SFabrizio Castro }; 82*a597dcb1SFabrizio Castro }; 83*a597dcb1SFabrizio Castro 84a102b93eSBiju Das vcc_sdhi0: regulator-vcc-sdhi0 { 85a102b93eSBiju Das compatible = "regulator-fixed"; 86a102b93eSBiju Das 87a102b93eSBiju Das regulator-name = "SDHI0 Vcc"; 88a102b93eSBiju Das regulator-min-microvolt = <3300000>; 89a102b93eSBiju Das regulator-max-microvolt = <3300000>; 90a102b93eSBiju Das regulator-always-on; 91a102b93eSBiju Das regulator-boot-on; 92a102b93eSBiju Das }; 93a102b93eSBiju Das 94a102b93eSBiju Das vccq_sdhi0: regulator-vccq-sdhi0 { 95a102b93eSBiju Das compatible = "regulator-gpio"; 96a102b93eSBiju Das 97a102b93eSBiju Das regulator-name = "SDHI0 VccQ"; 98a102b93eSBiju Das regulator-min-microvolt = <1800000>; 99a102b93eSBiju Das regulator-max-microvolt = <3300000>; 100a102b93eSBiju Das 101a102b93eSBiju Das gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; 102a102b93eSBiju Das gpios-states = <1>; 103a102b93eSBiju Das states = <3300000 1 104a102b93eSBiju Das 1800000 0>; 105a102b93eSBiju Das }; 10694fc0ee2SFabrizio Castro 10794fc0ee2SFabrizio Castro x13_clk: x13 { 10894fc0ee2SFabrizio Castro compatible = "fixed-clock"; 10994fc0ee2SFabrizio Castro #clock-cells = <0>; 11094fc0ee2SFabrizio Castro clock-frequency = <74250000>; 11194fc0ee2SFabrizio Castro }; 11294fc0ee2SFabrizio Castro}; 11394fc0ee2SFabrizio Castro 114*a597dcb1SFabrizio Castro&audio_clk_a { 115*a597dcb1SFabrizio Castro clock-frequency = <22579200>; 116*a597dcb1SFabrizio Castro}; 117*a597dcb1SFabrizio Castro 11894fc0ee2SFabrizio Castro&du { 11994fc0ee2SFabrizio Castro pinctrl-0 = <&du_pins>; 12094fc0ee2SFabrizio Castro pinctrl-names = "default"; 12194fc0ee2SFabrizio Castro status = "okay"; 12294fc0ee2SFabrizio Castro 12394fc0ee2SFabrizio Castro clocks = <&cpg CPG_MOD 724>, 12494fc0ee2SFabrizio Castro <&cpg CPG_MOD 723>, 12594fc0ee2SFabrizio Castro <&x13_clk>; 12694fc0ee2SFabrizio Castro clock-names = "du.0", "du.1", "dclkin.0"; 12794fc0ee2SFabrizio Castro 12894fc0ee2SFabrizio Castro ports { 12994fc0ee2SFabrizio Castro port@0 { 13094fc0ee2SFabrizio Castro endpoint { 13194fc0ee2SFabrizio Castro remote-endpoint = <&tda19988_in>; 13294fc0ee2SFabrizio Castro }; 13394fc0ee2SFabrizio Castro }; 13494fc0ee2SFabrizio Castro }; 135d828266bSBiju Das}; 136d828266bSBiju Das 137ad68fa5fSFabrizio Castro&ehci0 { 138ad68fa5fSFabrizio Castro dr_mode = "host"; 139ad68fa5fSFabrizio Castro status = "okay"; 140ad68fa5fSFabrizio Castro}; 141ad68fa5fSFabrizio Castro 142d828266bSBiju Das&extal_clk { 143d828266bSBiju Das clock-frequency = <48000000>; 144d828266bSBiju Das}; 145d828266bSBiju Das 14694fc0ee2SFabrizio Castro&i2c0 { 14794fc0ee2SFabrizio Castro status = "okay"; 14894fc0ee2SFabrizio Castro clock-frequency = <100000>; 14994fc0ee2SFabrizio Castro 15094fc0ee2SFabrizio Castro tda19988: tda19988@70 { 15194fc0ee2SFabrizio Castro compatible = "nxp,tda998x"; 15294fc0ee2SFabrizio Castro reg = <0x70>; 15394fc0ee2SFabrizio Castro interrupt-parent = <&gpio1>; 15494fc0ee2SFabrizio Castro interrupts = <1 IRQ_TYPE_LEVEL_LOW>; 15594fc0ee2SFabrizio Castro 15694fc0ee2SFabrizio Castro video-ports = <0x234501>; 15794fc0ee2SFabrizio Castro 158*a597dcb1SFabrizio Castro #sound-dai-cells = <0>; 159*a597dcb1SFabrizio Castro audio-ports = <TDA998x_I2S 0x03>; 160*a597dcb1SFabrizio Castro clocks = <&rcar_sound 1>; 161*a597dcb1SFabrizio Castro 16294fc0ee2SFabrizio Castro ports { 16394fc0ee2SFabrizio Castro #address-cells = <1>; 16494fc0ee2SFabrizio Castro #size-cells = <0>; 16594fc0ee2SFabrizio Castro 16694fc0ee2SFabrizio Castro port@0 { 16794fc0ee2SFabrizio Castro reg = <0>; 16894fc0ee2SFabrizio Castro tda19988_in: endpoint { 16994fc0ee2SFabrizio Castro remote-endpoint = <&du_out_rgb>; 17094fc0ee2SFabrizio Castro }; 17194fc0ee2SFabrizio Castro }; 17294fc0ee2SFabrizio Castro 17394fc0ee2SFabrizio Castro port@1 { 17494fc0ee2SFabrizio Castro reg = <1>; 17594fc0ee2SFabrizio Castro tda19988_out: endpoint { 17694fc0ee2SFabrizio Castro remote-endpoint = <&hdmi_con_out>; 17794fc0ee2SFabrizio Castro }; 17894fc0ee2SFabrizio Castro }; 17994fc0ee2SFabrizio Castro }; 18094fc0ee2SFabrizio Castro }; 18194fc0ee2SFabrizio Castro}; 18294fc0ee2SFabrizio Castro 18307e72397SBiju Das&i2c1 { 18407e72397SBiju Das pinctrl-0 = <&i2c1_pins>; 18507e72397SBiju Das pinctrl-names = "default"; 18607e72397SBiju Das 18707e72397SBiju Das status = "okay"; 18807e72397SBiju Das clock-frequency = <400000>; 18907e72397SBiju Das 19007e72397SBiju Das rtc@32 { 19107e72397SBiju Das compatible = "epson,rx8571"; 19207e72397SBiju Das reg = <0x32>; 19307e72397SBiju Das }; 19407e72397SBiju Das}; 19507e72397SBiju Das 19694fc0ee2SFabrizio Castro&lvds0 { 19794fc0ee2SFabrizio Castro status = "okay"; 19894fc0ee2SFabrizio Castro 19994fc0ee2SFabrizio Castro clocks = <&cpg CPG_MOD 727>, <&x13_clk>, <&extal_clk>; 20094fc0ee2SFabrizio Castro clock-names = "fck", "dclkin.0", "extal"; 20194fc0ee2SFabrizio Castro}; 20294fc0ee2SFabrizio Castro 203ad68fa5fSFabrizio Castro&ohci0 { 204ad68fa5fSFabrizio Castro dr_mode = "host"; 205ad68fa5fSFabrizio Castro status = "okay"; 206ad68fa5fSFabrizio Castro}; 207ad68fa5fSFabrizio Castro 208aaf6c75cSBiju Das&pcie_bus_clk { 209aaf6c75cSBiju Das clock-frequency = <100000000>; 210aaf6c75cSBiju Das}; 211aaf6c75cSBiju Das 212aaf6c75cSBiju Das&pciec0 { 213aaf6c75cSBiju Das /* Map all possible DDR as inbound ranges */ 214aaf6c75cSBiju Das dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 0 0x80000000>; 215aaf6c75cSBiju Das}; 216aaf6c75cSBiju Das 2174cf1f6ceSBiju Das&pfc { 21894fc0ee2SFabrizio Castro du_pins: du { 21994fc0ee2SFabrizio Castro groups = "du_rgb888", "du_clk_out_0", "du_sync", "du_disp", 22094fc0ee2SFabrizio Castro "du_clk_in_0"; 22194fc0ee2SFabrizio Castro function = "du"; 22294fc0ee2SFabrizio Castro }; 22394fc0ee2SFabrizio Castro 22407e72397SBiju Das i2c1_pins: i2c1 { 22507e72397SBiju Das groups = "i2c1_b"; 22607e72397SBiju Das function = "i2c1"; 22707e72397SBiju Das }; 22807e72397SBiju Das 2294cf1f6ceSBiju Das scif2_pins: scif2 { 2304cf1f6ceSBiju Das groups = "scif2_data_a"; 2314cf1f6ceSBiju Das function = "scif2"; 2324cf1f6ceSBiju Das }; 233a102b93eSBiju Das 234a102b93eSBiju Das sdhi0_pins: sd0 { 235a102b93eSBiju Das groups = "sdhi0_data4", "sdhi0_ctrl"; 236a102b93eSBiju Das function = "sdhi0"; 237a102b93eSBiju Das power-source = <3300>; 238a102b93eSBiju Das }; 239a102b93eSBiju Das 240a102b93eSBiju Das sdhi0_pins_uhs: sd0_uhs { 241a102b93eSBiju Das groups = "sdhi0_data4", "sdhi0_ctrl"; 242a102b93eSBiju Das function = "sdhi0"; 243a102b93eSBiju Das power-source = <1800>; 244a102b93eSBiju Das }; 245*a597dcb1SFabrizio Castro 246*a597dcb1SFabrizio Castro sound_pins: sound { 247*a597dcb1SFabrizio Castro groups = "ssi01239_ctrl", "ssi0_data"; 248*a597dcb1SFabrizio Castro function = "ssi"; 249*a597dcb1SFabrizio Castro }; 250*a597dcb1SFabrizio Castro 251*a597dcb1SFabrizio Castro sound_clk_pins: sound_clk { 252*a597dcb1SFabrizio Castro groups = "audio_clkout1_a"; 253*a597dcb1SFabrizio Castro function = "audio_clk"; 254*a597dcb1SFabrizio Castro }; 255*a597dcb1SFabrizio Castro}; 256*a597dcb1SFabrizio Castro 257*a597dcb1SFabrizio Castro&rcar_sound { 258*a597dcb1SFabrizio Castro pinctrl-0 = <&sound_pins &sound_clk_pins>; 259*a597dcb1SFabrizio Castro pinctrl-names = "default"; 260*a597dcb1SFabrizio Castro 261*a597dcb1SFabrizio Castro /* Single DAI */ 262*a597dcb1SFabrizio Castro #sound-dai-cells = <0>; 263*a597dcb1SFabrizio Castro 264*a597dcb1SFabrizio Castro /* audio_clkout0/1/2/3 */ 265*a597dcb1SFabrizio Castro #clock-cells = <1>; 266*a597dcb1SFabrizio Castro clock-frequency = <11289600>; 267*a597dcb1SFabrizio Castro 268*a597dcb1SFabrizio Castro status = "okay"; 269*a597dcb1SFabrizio Castro 270*a597dcb1SFabrizio Castro rcar_sound,dai { 271*a597dcb1SFabrizio Castro dai0 { 272*a597dcb1SFabrizio Castro playback = <&ssi0 &src0 &dvc0>; 273*a597dcb1SFabrizio Castro }; 274*a597dcb1SFabrizio Castro }; 2754cf1f6ceSBiju Das}; 2764cf1f6ceSBiju Das 27779223ca1SFabrizio Castro&rwdt { 27879223ca1SFabrizio Castro timeout-sec = <60>; 27979223ca1SFabrizio Castro status = "okay"; 28079223ca1SFabrizio Castro}; 28179223ca1SFabrizio Castro 282d828266bSBiju Das&scif2 { 2834cf1f6ceSBiju Das pinctrl-0 = <&scif2_pins>; 2844cf1f6ceSBiju Das pinctrl-names = "default"; 2854cf1f6ceSBiju Das 286d828266bSBiju Das status = "okay"; 287d828266bSBiju Das}; 288a102b93eSBiju Das 289a102b93eSBiju Das&sdhi0 { 290a102b93eSBiju Das pinctrl-0 = <&sdhi0_pins>; 291a102b93eSBiju Das pinctrl-1 = <&sdhi0_pins_uhs>; 292a102b93eSBiju Das pinctrl-names = "default", "state_uhs"; 293a102b93eSBiju Das 294a102b93eSBiju Das vmmc-supply = <&vcc_sdhi0>; 295a102b93eSBiju Das vqmmc-supply = <&vccq_sdhi0>; 296a102b93eSBiju Das cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; 297a102b93eSBiju Das bus-width = <4>; 298a102b93eSBiju Das sd-uhs-sdr50; 299a102b93eSBiju Das sd-uhs-sdr104; 300a102b93eSBiju Das status = "okay"; 301a102b93eSBiju Das}; 302ad68fa5fSFabrizio Castro 303ad68fa5fSFabrizio Castro&usb2_phy0 { 304ad68fa5fSFabrizio Castro renesas,no-otg-pins; 305ad68fa5fSFabrizio Castro status = "okay"; 306ad68fa5fSFabrizio Castro}; 307