|
@@ -0,0 +1,453 @@
|
|
|
+// SPDX-License-Identifier: GPL-2.0
|
|
|
+/*
|
|
|
+ * Device Tree Source for the Silicon Linux RZ/G2E 96board platform (CAT874)
|
|
|
+ *
|
|
|
+ * Copyright (C) 2021 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;
|
|
|
+ };
|
|
|
+
|
|
|
+ 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 {
|
|
|
+ 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";
|
|
|
+};
|