// SPDX-License-Identifier: GPL-2.0 /* * Device Tree Source for the Silicon Linux RZ/G2E 96board platform (CAT874) * * Copyright (C) 2019 Renesas Electronics Corp. */ /dts-v1/; #include "r8a774c0.dtsi" #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/display/tda998x.h> / { model = "Silicon Linux RZ/G2E 96board platform (CAT874)"; compatible = "si-linux,cat874", "renesas,r8a774c0"; aliases { serial0 = &scif2; serial1 = &hscif2; mmc0 = &sdhi0; mmc1 = &sdhi3; }; chosen { bootargs = "ignore_loglevel rw root=/dev/nfs ip=on"; stdout-path = "serial0:115200n8"; }; hdmi-out { compatible = "hdmi-connector"; type = "a"; port { hdmi_con_out: endpoint { remote-endpoint = <&tda19988_out>; }; }; }; leds { compatible = "gpio-leds"; led0 { gpios = <&gpio5 19 GPIO_ACTIVE_HIGH>; label = "LED0"; }; led1 { gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>; label = "LED1"; }; led2 { gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>; label = "LED2"; }; led3 { gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>; label = "LED3"; }; }; memory@48000000 { device_type = "memory"; /* first 128MB is reserved for secure area. */ reg = <0x0 0x48000000 0x0 0x78000000>; }; reg_12p0v: regulator-12p0v { compatible = "regulator-fixed"; regulator-name = "D12.0V"; regulator-min-microvolt = <12000000>; regulator-max-microvolt = <12000000>; regulator-boot-on; regulator-always-on; }; sound: sound { compatible = "simple-audio-card"; simple-audio-card,name = "CAT874 HDMI sound"; simple-audio-card,format = "i2s"; simple-audio-card,bitclock-master = <&sndcpu>; simple-audio-card,frame-master = <&sndcpu>; sndcodec: simple-audio-card,codec { sound-dai = <&tda19988>; }; sndcpu: simple-audio-card,cpu { sound-dai = <&rcar_sound>; }; }; vcc_sdhi0: regulator-vcc-sdhi0 { compatible = "regulator-fixed"; regulator-name = "SDHI0 Vcc"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; regulator-boot-on; }; vccq_sdhi0: regulator-vccq-sdhi0 { compatible = "regulator-gpio"; regulator-name = "SDHI0 VccQ"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; gpios-states = <1>; states = <3300000 1>, <1800000 0>; }; wlan_en_reg: fixedregulator { compatible = "regulator-fixed"; regulator-name = "wlan-en-regulator"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; startup-delay-us = <70000>; gpio = <&gpio2 25 GPIO_ACTIVE_HIGH>; enable-active-high; }; x13_clk: x13 { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <74250000>; }; connector { compatible = "usb-c-connector"; label = "USB-C"; data-role = "dual"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; hs_ep: endpoint { remote-endpoint = <&usb3_hs_ep>; }; }; port@1 { reg = <1>; ss_ep: endpoint { remote-endpoint = <&hd3ss3220_in_ep>; }; }; }; }; }; &audio_clk_a { clock-frequency = <22579200>; }; &du { pinctrl-0 = <&du_pins>; pinctrl-names = "default"; status = "okay"; clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&x13_clk>; clock-names = "du.0", "du.1", "dclkin.0"; ports { port@0 { du_out_rgb: endpoint { remote-endpoint = <&tda19988_in>; }; }; }; }; &ehci0 { dr_mode = "host"; status = "okay"; }; &extal_clk { clock-frequency = <48000000>; }; &hscif2 { pinctrl-0 = <&hscif2_pins>; pinctrl-names = "default"; uart-has-rtscts; status = "okay"; bluetooth { compatible = "ti,wl1837-st"; enable-gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>; }; }; &i2c0 { status = "okay"; clock-frequency = <100000>; hd3ss3220@47 { compatible = "ti,hd3ss3220"; reg = <0x47>; interrupt-parent = <&gpio6>; interrupts = <3 IRQ_TYPE_LEVEL_LOW>; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; hd3ss3220_in_ep: endpoint { remote-endpoint = <&ss_ep>; }; }; port@1 { reg = <1>; hd3ss3220_out_ep: endpoint { remote-endpoint = <&usb3_role_switch>; }; }; }; }; tda19988: tda19988@70 { compatible = "nxp,tda998x"; reg = <0x70>; interrupt-parent = <&gpio1>; interrupts = <1 IRQ_TYPE_LEVEL_LOW>; video-ports = <0x234501>; #sound-dai-cells = <0>; audio-ports = <TDA998x_I2S 0x03>; clocks = <&rcar_sound 1>; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; tda19988_in: endpoint { remote-endpoint = <&du_out_rgb>; }; }; port@1 { reg = <1>; tda19988_out: endpoint { remote-endpoint = <&hdmi_con_out>; }; }; }; }; }; &i2c1 { pinctrl-0 = <&i2c1_pins>; pinctrl-names = "default"; status = "okay"; clock-frequency = <400000>; rtc@32 { compatible = "epson,rx8571"; reg = <0x32>; }; }; &lvds0 { status = "okay"; clocks = <&cpg CPG_MOD 727>, <&x13_clk>, <&extal_clk>; clock-names = "fck", "dclkin.0", "extal"; }; &ohci0 { dr_mode = "host"; status = "okay"; }; &pcie_bus_clk { clock-frequency = <100000000>; }; &pciec0 { /* Map all possible DDR as inbound ranges */ dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 0 0x80000000>; }; &pfc { du_pins: du { groups = "du_rgb888", "du_clk_out_0", "du_sync", "du_disp", "du_clk_in_0"; function = "du"; }; hscif2_pins: hscif2 { groups = "hscif2_data_a", "hscif2_ctrl_a"; function = "hscif2"; }; i2c1_pins: i2c1 { groups = "i2c1_b"; function = "i2c1"; }; scif2_pins: scif2 { groups = "scif2_data_a"; function = "scif2"; }; sdhi0_pins: sd0 { groups = "sdhi0_data4", "sdhi0_ctrl"; function = "sdhi0"; power-source = <3300>; }; sdhi0_pins_uhs: sd0_uhs { groups = "sdhi0_data4", "sdhi0_ctrl"; function = "sdhi0"; power-source = <1800>; }; sdhi3_pins: sd3 { groups = "sdhi3_data4", "sdhi3_ctrl"; function = "sdhi3"; power-source = <1800>; }; sound_clk_pins: sound_clk { groups = "audio_clkout1_a"; function = "audio_clk"; }; sound_pins: sound { groups = "ssi01239_ctrl", "ssi0_data"; function = "ssi"; }; usb30_pins: usb30 { groups = "usb30", "usb30_id"; function = "usb30"; }; }; &rcar_sound { pinctrl-0 = <&sound_pins>, <&sound_clk_pins>; pinctrl-names = "default"; /* Single DAI */ #sound-dai-cells = <0>; /* audio_clkout0/1/2/3 */ #clock-cells = <1>; clock-frequency = <11289600>; status = "okay"; rcar_sound,dai { dai0 { playback = <&ssi0>, <&src0>, <&dvc0>; }; }; }; &rwdt { timeout-sec = <60>; status = "okay"; }; &scif2 { pinctrl-0 = <&scif2_pins>; pinctrl-names = "default"; status = "okay"; }; &sdhi0 { pinctrl-0 = <&sdhi0_pins>; pinctrl-1 = <&sdhi0_pins_uhs>; pinctrl-names = "default", "state_uhs"; vmmc-supply = <&vcc_sdhi0>; vqmmc-supply = <&vccq_sdhi0>; cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; bus-width = <4>; sd-uhs-sdr50; sd-uhs-sdr104; status = "okay"; }; &sdhi3 { status = "okay"; pinctrl-0 = <&sdhi3_pins>; pinctrl-names = "default"; vmmc-supply = <&wlan_en_reg>; bus-width = <4>; non-removable; cap-power-off-card; keep-power-in-suspend; #address-cells = <1>; #size-cells = <0>; wlcore: wlcore@2 { compatible = "ti,wl1837"; reg = <2>; interrupt-parent = <&gpio1>; interrupts = <0 IRQ_TYPE_LEVEL_HIGH>; }; }; &usb2_phy0 { renesas,no-otg-pins; status = "okay"; }; &usb3_peri0 { companion = <&xhci0>; status = "okay"; usb-role-switch; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; usb3_hs_ep: endpoint { remote-endpoint = <&hs_ep>; }; }; port@1 { reg = <1>; usb3_role_switch: endpoint { remote-endpoint = <&hd3ss3220_out_ep>; }; }; }; }; &xhci0 { pinctrl-0 = <&usb30_pins>; pinctrl-names = "default"; status = "okay"; };