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; 197b7c5676SBiju Das serial1 = &hscif2; 20d828266bSBiju Das }; 21d828266bSBiju Das 22d828266bSBiju Das chosen { 23b31b43c9SMagnus Damm bootargs = "ignore_loglevel rw root=/dev/nfs ip=on"; 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 687fc009cbSFabrizio Castro reg_12p0v: regulator-12p0v { 697fc009cbSFabrizio Castro compatible = "regulator-fixed"; 707fc009cbSFabrizio Castro regulator-name = "D12.0V"; 717fc009cbSFabrizio Castro regulator-min-microvolt = <12000000>; 727fc009cbSFabrizio Castro regulator-max-microvolt = <12000000>; 737fc009cbSFabrizio Castro regulator-boot-on; 747fc009cbSFabrizio Castro regulator-always-on; 757fc009cbSFabrizio Castro }; 767fc009cbSFabrizio Castro 77a597dcb1SFabrizio Castro sound: sound { 78a597dcb1SFabrizio Castro compatible = "simple-audio-card"; 79a597dcb1SFabrizio Castro 80a597dcb1SFabrizio Castro simple-audio-card,name = "CAT874 HDMI sound"; 81a597dcb1SFabrizio Castro simple-audio-card,format = "i2s"; 82a597dcb1SFabrizio Castro simple-audio-card,bitclock-master = <&sndcpu>; 83a597dcb1SFabrizio Castro simple-audio-card,frame-master = <&sndcpu>; 84a597dcb1SFabrizio Castro 85a597dcb1SFabrizio Castro sndcodec: simple-audio-card,codec { 86a597dcb1SFabrizio Castro sound-dai = <&tda19988>; 87a597dcb1SFabrizio Castro }; 88*63a0f811SYoshihiro Kaneko 89*63a0f811SYoshihiro Kaneko sndcpu: simple-audio-card,cpu { 90*63a0f811SYoshihiro Kaneko sound-dai = <&rcar_sound>; 91*63a0f811SYoshihiro Kaneko }; 92a597dcb1SFabrizio Castro }; 93a597dcb1SFabrizio Castro 94a102b93eSBiju Das vcc_sdhi0: regulator-vcc-sdhi0 { 95a102b93eSBiju Das compatible = "regulator-fixed"; 96a102b93eSBiju Das 97a102b93eSBiju Das regulator-name = "SDHI0 Vcc"; 98a102b93eSBiju Das regulator-min-microvolt = <3300000>; 99a102b93eSBiju Das regulator-max-microvolt = <3300000>; 100a102b93eSBiju Das regulator-always-on; 101a102b93eSBiju Das regulator-boot-on; 102a102b93eSBiju Das }; 103a102b93eSBiju Das 104a102b93eSBiju Das vccq_sdhi0: regulator-vccq-sdhi0 { 105a102b93eSBiju Das compatible = "regulator-gpio"; 106a102b93eSBiju Das 107a102b93eSBiju Das regulator-name = "SDHI0 VccQ"; 108a102b93eSBiju Das regulator-min-microvolt = <1800000>; 109a102b93eSBiju Das regulator-max-microvolt = <3300000>; 110a102b93eSBiju Das 111a102b93eSBiju Das gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; 112a102b93eSBiju Das gpios-states = <1>; 113a102b93eSBiju Das states = <3300000 1 114a102b93eSBiju Das 1800000 0>; 115a102b93eSBiju Das }; 11694fc0ee2SFabrizio Castro 117b263b006SBiju Das wlan_en_reg: fixedregulator { 118b263b006SBiju Das compatible = "regulator-fixed"; 119b263b006SBiju Das regulator-name = "wlan-en-regulator"; 120b263b006SBiju Das regulator-min-microvolt = <1800000>; 121b263b006SBiju Das regulator-max-microvolt = <1800000>; 122b263b006SBiju Das startup-delay-us = <70000>; 123b263b006SBiju Das 124b263b006SBiju Das gpio = <&gpio2 25 GPIO_ACTIVE_HIGH>; 125b263b006SBiju Das enable-active-high; 126b263b006SBiju Das }; 127b263b006SBiju Das 12894fc0ee2SFabrizio Castro x13_clk: x13 { 12994fc0ee2SFabrizio Castro compatible = "fixed-clock"; 13094fc0ee2SFabrizio Castro #clock-cells = <0>; 13194fc0ee2SFabrizio Castro clock-frequency = <74250000>; 13294fc0ee2SFabrizio Castro }; 13394fc0ee2SFabrizio Castro}; 13494fc0ee2SFabrizio Castro 135a597dcb1SFabrizio Castro&audio_clk_a { 136a597dcb1SFabrizio Castro clock-frequency = <22579200>; 137a597dcb1SFabrizio Castro}; 138a597dcb1SFabrizio Castro 13994fc0ee2SFabrizio Castro&du { 14094fc0ee2SFabrizio Castro pinctrl-0 = <&du_pins>; 14194fc0ee2SFabrizio Castro pinctrl-names = "default"; 14294fc0ee2SFabrizio Castro status = "okay"; 14394fc0ee2SFabrizio Castro 14494fc0ee2SFabrizio Castro clocks = <&cpg CPG_MOD 724>, 14594fc0ee2SFabrizio Castro <&cpg CPG_MOD 723>, 14694fc0ee2SFabrizio Castro <&x13_clk>; 14794fc0ee2SFabrizio Castro clock-names = "du.0", "du.1", "dclkin.0"; 14894fc0ee2SFabrizio Castro 14994fc0ee2SFabrizio Castro ports { 15094fc0ee2SFabrizio Castro port@0 { 15194fc0ee2SFabrizio Castro endpoint { 15294fc0ee2SFabrizio Castro remote-endpoint = <&tda19988_in>; 15394fc0ee2SFabrizio Castro }; 15494fc0ee2SFabrizio Castro }; 15594fc0ee2SFabrizio Castro }; 156d828266bSBiju Das}; 157d828266bSBiju Das 158ad68fa5fSFabrizio Castro&ehci0 { 159ad68fa5fSFabrizio Castro dr_mode = "host"; 160ad68fa5fSFabrizio Castro status = "okay"; 161ad68fa5fSFabrizio Castro}; 162ad68fa5fSFabrizio Castro 163d828266bSBiju Das&extal_clk { 164d828266bSBiju Das clock-frequency = <48000000>; 165d828266bSBiju Das}; 166d828266bSBiju Das 1677b7c5676SBiju Das&hscif2 { 1687b7c5676SBiju Das pinctrl-0 = <&hscif2_pins>; 1697b7c5676SBiju Das pinctrl-names = "default"; 1707b7c5676SBiju Das 1717b7c5676SBiju Das uart-has-rtscts; 1727b7c5676SBiju Das status = "okay"; 1737b7c5676SBiju Das 1747b7c5676SBiju Das bluetooth { 1757b7c5676SBiju Das compatible = "ti,wl1837-st"; 1767b7c5676SBiju Das enable-gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>; 1777b7c5676SBiju Das }; 1787b7c5676SBiju Das}; 1797b7c5676SBiju Das 18094fc0ee2SFabrizio Castro&i2c0 { 18194fc0ee2SFabrizio Castro status = "okay"; 18294fc0ee2SFabrizio Castro clock-frequency = <100000>; 18394fc0ee2SFabrizio Castro 184ec0a286aSBiju Das hd3ss3220@47 { 185ec0a286aSBiju Das compatible = "ti,hd3ss3220"; 186ec0a286aSBiju Das reg = <0x47>; 187ec0a286aSBiju Das interrupt-parent = <&gpio6>; 188ec0a286aSBiju Das interrupts = <3 IRQ_TYPE_LEVEL_LOW>; 189ec0a286aSBiju Das 190ec0a286aSBiju Das connector { 191ec0a286aSBiju Das compatible = "usb-c-connector"; 192ec0a286aSBiju Das label = "USB-C"; 193ec0a286aSBiju Das data-role = "dual"; 194ec0a286aSBiju Das 195ec0a286aSBiju Das ports { 196ec0a286aSBiju Das #address-cells = <1>; 197ec0a286aSBiju Das #size-cells = <0>; 198ec0a286aSBiju Das 199ec0a286aSBiju Das port@1 { 200ec0a286aSBiju Das reg = <1>; 201ec0a286aSBiju Das hd3ss3220_ep: endpoint { 202ec0a286aSBiju Das remote-endpoint = <&usb3_role_switch>; 203ec0a286aSBiju Das }; 204ec0a286aSBiju Das }; 205ec0a286aSBiju Das }; 206ec0a286aSBiju Das }; 207ec0a286aSBiju Das }; 208ec0a286aSBiju Das 20994fc0ee2SFabrizio Castro tda19988: tda19988@70 { 21094fc0ee2SFabrizio Castro compatible = "nxp,tda998x"; 21194fc0ee2SFabrizio Castro reg = <0x70>; 21294fc0ee2SFabrizio Castro interrupt-parent = <&gpio1>; 21394fc0ee2SFabrizio Castro interrupts = <1 IRQ_TYPE_LEVEL_LOW>; 21494fc0ee2SFabrizio Castro 21594fc0ee2SFabrizio Castro video-ports = <0x234501>; 21694fc0ee2SFabrizio Castro 217a597dcb1SFabrizio Castro #sound-dai-cells = <0>; 218a597dcb1SFabrizio Castro audio-ports = <TDA998x_I2S 0x03>; 219a597dcb1SFabrizio Castro clocks = <&rcar_sound 1>; 220a597dcb1SFabrizio Castro 22194fc0ee2SFabrizio Castro ports { 22294fc0ee2SFabrizio Castro #address-cells = <1>; 22394fc0ee2SFabrizio Castro #size-cells = <0>; 22494fc0ee2SFabrizio Castro 22594fc0ee2SFabrizio Castro port@0 { 22694fc0ee2SFabrizio Castro reg = <0>; 22794fc0ee2SFabrizio Castro tda19988_in: endpoint { 22894fc0ee2SFabrizio Castro remote-endpoint = <&du_out_rgb>; 22994fc0ee2SFabrizio Castro }; 23094fc0ee2SFabrizio Castro }; 23194fc0ee2SFabrizio Castro 23294fc0ee2SFabrizio Castro port@1 { 23394fc0ee2SFabrizio Castro reg = <1>; 23494fc0ee2SFabrizio Castro tda19988_out: endpoint { 23594fc0ee2SFabrizio Castro remote-endpoint = <&hdmi_con_out>; 23694fc0ee2SFabrizio Castro }; 23794fc0ee2SFabrizio Castro }; 23894fc0ee2SFabrizio Castro }; 23994fc0ee2SFabrizio Castro }; 24094fc0ee2SFabrizio Castro}; 24194fc0ee2SFabrizio Castro 24207e72397SBiju Das&i2c1 { 24307e72397SBiju Das pinctrl-0 = <&i2c1_pins>; 24407e72397SBiju Das pinctrl-names = "default"; 24507e72397SBiju Das 24607e72397SBiju Das status = "okay"; 24707e72397SBiju Das clock-frequency = <400000>; 24807e72397SBiju Das 24907e72397SBiju Das rtc@32 { 25007e72397SBiju Das compatible = "epson,rx8571"; 25107e72397SBiju Das reg = <0x32>; 25207e72397SBiju Das }; 25307e72397SBiju Das}; 25407e72397SBiju Das 25594fc0ee2SFabrizio Castro&lvds0 { 25694fc0ee2SFabrizio Castro status = "okay"; 25794fc0ee2SFabrizio Castro 25894fc0ee2SFabrizio Castro clocks = <&cpg CPG_MOD 727>, <&x13_clk>, <&extal_clk>; 25994fc0ee2SFabrizio Castro clock-names = "fck", "dclkin.0", "extal"; 26094fc0ee2SFabrizio Castro}; 26194fc0ee2SFabrizio Castro 262ad68fa5fSFabrizio Castro&ohci0 { 263ad68fa5fSFabrizio Castro dr_mode = "host"; 264ad68fa5fSFabrizio Castro status = "okay"; 265ad68fa5fSFabrizio Castro}; 266ad68fa5fSFabrizio Castro 267aaf6c75cSBiju Das&pcie_bus_clk { 268aaf6c75cSBiju Das clock-frequency = <100000000>; 269aaf6c75cSBiju Das}; 270aaf6c75cSBiju Das 271aaf6c75cSBiju Das&pciec0 { 272aaf6c75cSBiju Das /* Map all possible DDR as inbound ranges */ 273aaf6c75cSBiju Das dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 0 0x80000000>; 274aaf6c75cSBiju Das}; 275aaf6c75cSBiju Das 2764cf1f6ceSBiju Das&pfc { 27794fc0ee2SFabrizio Castro du_pins: du { 27894fc0ee2SFabrizio Castro groups = "du_rgb888", "du_clk_out_0", "du_sync", "du_disp", 27994fc0ee2SFabrizio Castro "du_clk_in_0"; 28094fc0ee2SFabrizio Castro function = "du"; 28194fc0ee2SFabrizio Castro }; 28294fc0ee2SFabrizio Castro 2837b7c5676SBiju Das hscif2_pins: hscif2 { 2847b7c5676SBiju Das groups = "hscif2_data_a", "hscif2_ctrl_a"; 2857b7c5676SBiju Das function = "hscif2"; 2867b7c5676SBiju Das }; 2877b7c5676SBiju Das 288*63a0f811SYoshihiro Kaneko i2c1_pins: i2c1 { 289*63a0f811SYoshihiro Kaneko groups = "i2c1_b"; 290*63a0f811SYoshihiro Kaneko function = "i2c1"; 291*63a0f811SYoshihiro Kaneko }; 292*63a0f811SYoshihiro Kaneko 2934cf1f6ceSBiju Das scif2_pins: scif2 { 2944cf1f6ceSBiju Das groups = "scif2_data_a"; 2954cf1f6ceSBiju Das function = "scif2"; 2964cf1f6ceSBiju Das }; 297a102b93eSBiju Das 298a102b93eSBiju Das sdhi0_pins: sd0 { 299a102b93eSBiju Das groups = "sdhi0_data4", "sdhi0_ctrl"; 300a102b93eSBiju Das function = "sdhi0"; 301a102b93eSBiju Das power-source = <3300>; 302a102b93eSBiju Das }; 303a102b93eSBiju Das 304a102b93eSBiju Das sdhi0_pins_uhs: sd0_uhs { 305a102b93eSBiju Das groups = "sdhi0_data4", "sdhi0_ctrl"; 306a102b93eSBiju Das function = "sdhi0"; 307a102b93eSBiju Das power-source = <1800>; 308a102b93eSBiju Das }; 309a597dcb1SFabrizio Castro 310b263b006SBiju Das sdhi3_pins: sd3 { 311b263b006SBiju Das groups = "sdhi3_data4", "sdhi3_ctrl"; 312b263b006SBiju Das function = "sdhi3"; 313b263b006SBiju Das power-source = <1800>; 314b263b006SBiju Das }; 315b263b006SBiju Das 316a597dcb1SFabrizio Castro sound_clk_pins: sound_clk { 317a597dcb1SFabrizio Castro groups = "audio_clkout1_a"; 318a597dcb1SFabrizio Castro function = "audio_clk"; 319a597dcb1SFabrizio Castro }; 320cf7b175aSBiju Das 321*63a0f811SYoshihiro Kaneko sound_pins: sound { 322*63a0f811SYoshihiro Kaneko groups = "ssi01239_ctrl", "ssi0_data"; 323*63a0f811SYoshihiro Kaneko function = "ssi"; 324*63a0f811SYoshihiro Kaneko }; 325*63a0f811SYoshihiro Kaneko 326cf7b175aSBiju Das usb30_pins: usb30 { 327cf7b175aSBiju Das groups = "usb30", "usb30_id"; 328cf7b175aSBiju Das function = "usb30"; 329cf7b175aSBiju Das }; 330a597dcb1SFabrizio Castro}; 331a597dcb1SFabrizio Castro 332a597dcb1SFabrizio Castro&rcar_sound { 333a597dcb1SFabrizio Castro pinctrl-0 = <&sound_pins &sound_clk_pins>; 334a597dcb1SFabrizio Castro pinctrl-names = "default"; 335a597dcb1SFabrizio Castro 336a597dcb1SFabrizio Castro /* Single DAI */ 337a597dcb1SFabrizio Castro #sound-dai-cells = <0>; 338a597dcb1SFabrizio Castro 339a597dcb1SFabrizio Castro /* audio_clkout0/1/2/3 */ 340a597dcb1SFabrizio Castro #clock-cells = <1>; 341a597dcb1SFabrizio Castro clock-frequency = <11289600>; 342a597dcb1SFabrizio Castro 343a597dcb1SFabrizio Castro status = "okay"; 344a597dcb1SFabrizio Castro 345a597dcb1SFabrizio Castro rcar_sound,dai { 346a597dcb1SFabrizio Castro dai0 { 347a597dcb1SFabrizio Castro playback = <&ssi0 &src0 &dvc0>; 348a597dcb1SFabrizio Castro }; 349a597dcb1SFabrizio Castro }; 3504cf1f6ceSBiju Das}; 3514cf1f6ceSBiju Das 35279223ca1SFabrizio Castro&rwdt { 35379223ca1SFabrizio Castro timeout-sec = <60>; 35479223ca1SFabrizio Castro status = "okay"; 35579223ca1SFabrizio Castro}; 35679223ca1SFabrizio Castro 357d828266bSBiju Das&scif2 { 3584cf1f6ceSBiju Das pinctrl-0 = <&scif2_pins>; 3594cf1f6ceSBiju Das pinctrl-names = "default"; 3604cf1f6ceSBiju Das 361d828266bSBiju Das status = "okay"; 362d828266bSBiju Das}; 363a102b93eSBiju Das 364a102b93eSBiju Das&sdhi0 { 365a102b93eSBiju Das pinctrl-0 = <&sdhi0_pins>; 366a102b93eSBiju Das pinctrl-1 = <&sdhi0_pins_uhs>; 367a102b93eSBiju Das pinctrl-names = "default", "state_uhs"; 368a102b93eSBiju Das 369a102b93eSBiju Das vmmc-supply = <&vcc_sdhi0>; 370a102b93eSBiju Das vqmmc-supply = <&vccq_sdhi0>; 371a102b93eSBiju Das cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; 372a102b93eSBiju Das bus-width = <4>; 373a102b93eSBiju Das sd-uhs-sdr50; 374a102b93eSBiju Das sd-uhs-sdr104; 375a102b93eSBiju Das status = "okay"; 376a102b93eSBiju Das}; 377ad68fa5fSFabrizio Castro 378b263b006SBiju Das&sdhi3 { 379b263b006SBiju Das status = "okay"; 380b263b006SBiju Das pinctrl-0 = <&sdhi3_pins>; 381b263b006SBiju Das pinctrl-names = "default"; 382b263b006SBiju Das 383b263b006SBiju Das vmmc-supply = <&wlan_en_reg>; 384b263b006SBiju Das bus-width = <4>; 385b263b006SBiju Das non-removable; 386b263b006SBiju Das cap-power-off-card; 387b263b006SBiju Das keep-power-in-suspend; 388b263b006SBiju Das 389b263b006SBiju Das #address-cells = <1>; 390b263b006SBiju Das #size-cells = <0>; 391b263b006SBiju Das wlcore: wlcore@2 { 392b263b006SBiju Das compatible = "ti,wl1837"; 393b263b006SBiju Das reg = <2>; 394b263b006SBiju Das interrupt-parent = <&gpio1>; 395b263b006SBiju Das interrupts = <0 IRQ_TYPE_LEVEL_HIGH>; 396b263b006SBiju Das }; 397b263b006SBiju Das}; 398b263b006SBiju Das 399ad68fa5fSFabrizio Castro&usb2_phy0 { 400ad68fa5fSFabrizio Castro renesas,no-otg-pins; 401ad68fa5fSFabrizio Castro status = "okay"; 402ad68fa5fSFabrizio Castro}; 403cf7b175aSBiju Das 404cf7b175aSBiju Das&usb3_peri0 { 405cf7b175aSBiju Das companion = <&xhci0>; 406cf7b175aSBiju Das status = "okay"; 407ec0a286aSBiju Das usb-role-switch; 408ec0a286aSBiju Das 409ec0a286aSBiju Das port { 410ec0a286aSBiju Das usb3_role_switch: endpoint { 411ec0a286aSBiju Das remote-endpoint = <&hd3ss3220_ep>; 412ec0a286aSBiju Das }; 413ec0a286aSBiju Das }; 414cf7b175aSBiju Das}; 415cf7b175aSBiju Das 416cf7b175aSBiju Das&xhci0 { 417cf7b175aSBiju Das pinctrl-0 = <&usb30_pins>; 418cf7b175aSBiju Das pinctrl-names = "default"; 419cf7b175aSBiju Das 420cf7b175aSBiju Das status = "okay"; 421cf7b175aSBiju Das}; 422