// SPDX-License-Identifier: (GPL-2.0+ OR MIT) /* * Copyright (c) 2023 Rockchip Electronics Co., Ltd. * */ /dts-v1/; #include #include #include "rk3568.dtsi" / { model = "Rockchip RK3568 PCIe EP LP4X V10 Board"; compatible = "rockchip,rk3568-pcie-ep-lp4x-v10", "rockchip,rk3568"; adc_keys: adc-keys { compatible = "adc-keys"; io-channels = <&saradc 0>; io-channel-names = "buttons"; keyup-threshold-microvolt = <1800000>; poll-interval = <100>; vol-up-key { label = "volume up"; linux,code = ; press-threshold-microvolt = <1750>; }; }; chosen: chosen { bootargs = "earlycon=uart8250,mmio32,0xfe660000 console=ttyFIQ0 root=PARTUUID=614e0000-0000 rw rootwait default_hugepagesz=32M hugepagesz=32M hugepages=1"; }; dc_12v: dc-12v { compatible = "regulator-fixed"; regulator-name = "dc_12v"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <12000000>; regulator-max-microvolt = <12000000>; }; fiq-debugger { compatible = "rockchip,fiq-debugger"; rockchip,serial-id = <2>; rockchip,wake-irq = <0>; /* If enable uart uses irq instead of fiq */ rockchip,irq-mode-enable = <1>; rockchip,baudrate = <1500000>; /* Only 115200 and 1500000 */ interrupts = ; pinctrl-names = "default"; pinctrl-0 = <&uart2m0_xfer>; status = "okay"; }; hdmi_sound: hdmi-sound { status = "disabled"; compatible = "rockchip,hdmi"; rockchip,mclk-fs = <128>; rockchip,card-name = "rockchip-hdmi"; rockchip,cpu = <&i2s0_8ch>; rockchip,codec = <&hdmi>; rockchip,jack-det; }; leds: leds { compatible = "gpio-leds"; work_led: work { gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>; linux,default-trigger = "heartbeat"; }; }; reserved-memory { #address-cells = <2>; #size-cells = <2>; ranges; bar0_region: bar0-region@0x3c000000 { reg = <0x0 0x3c000000 0x0 0x00400000>; }; bar2_region: bar2-region@0x40000000 { reg = <0x0 0x40000000 0x0 0x04000000>; }; }; test-power { status = "okay"; }; vcc3v3_pcie: vcc3v3-pcie { compatible = "regulator-fixed"; regulator-name = "vcc3v3_pcie"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; enable-active-high; gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>; startup-delay-us = <5000>; vin-supply = <&dc_12v>; }; vcc5v0_sys: vcc5v0-sys { compatible = "regulator-fixed"; regulator-name = "vcc5v0_sys"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; vin-supply = <&dc_12v>; }; vcc5v0_host: vcc5v0-host-regulator { compatible = "regulator-fixed"; regulator-name = "vcc5v0_host"; regulator-boot-on; regulator-always-on; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; enable-active-high; gpio = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>; vin-supply = <&vcc5v0_sys>; pinctrl-names = "default"; pinctrl-0 = <&vcc5v0_host_en>; }; vcc5v0_otg: vcc5v0-otg-regulator { compatible = "regulator-fixed"; regulator-name = "vcc5v0_otg"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; enable-active-high; gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>; vin-supply = <&vcc5v0_sys>; pinctrl-names = "default"; pinctrl-0 = <&vcc5v0_otg_en>; }; vcc3v3_sys: vcc3v3-sys { compatible = "regulator-fixed"; regulator-name = "vcc3v3_sys"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; vin-supply = <&dc_12v>; }; vccio_1v8: vccio-1v8 { compatible = "regulator-fixed"; regulator-name = "vccio_1v8"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; vin-supply = <&vcc3v3_sys>; }; vccio_3v3: vccio-3v3 { compatible = "regulator-fixed"; regulator-name = "vccio_3v3"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; vdd_gpu: vdd-gpu { compatible = "pwm-regulator"; pwms = <&pwm0 0 5000 1>; regulator-name = "vdd_gpu"; regulator-min-microvolt = <810000>; regulator-max-microvolt = <1100000>; regulator-init-microvolt = <920000>; regulator-always-on; regulator-boot-on; regulator-settling-time-up-us = <250>; pwm-supply = <&vcc3v3_sys>; status = "okay"; }; vdd_logic: vdd-logic { compatible = "pwm-regulator"; pwms = <&pwm1 0 5000 1>; regulator-name = "vdd_logic"; regulator-min-microvolt = <810000>; regulator-max-microvolt = <1000000>; regulator-init-microvolt = <920000>; regulator-always-on; regulator-boot-on; regulator-settling-time-up-us = <250>; pwm-supply = <&vcc3v3_sys>; status = "okay"; }; vdd_npu: vdd-npu { compatible = "pwm-regulator"; pwms = <&pwm2 0 5000 1>; regulator-name = "vdd_npu"; regulator-min-microvolt = <810000>; regulator-max-microvolt = <1100000>; regulator-init-microvolt = <920000>; regulator-always-on; regulator-boot-on; regulator-settling-time-up-us = <250>; pwm-supply = <&vcc3v3_sys>; status = "okay"; }; }; &bus_npu { bus-supply = <&vdd_logic>; pvtm-supply = <&vdd_cpu>; status = "okay"; }; &can1 { assigned-clocks = <&cru CLK_CAN0>; assigned-clock-rates = <150000000>; pinctrl-names = "default"; pinctrl-0 = <&can1m0_pins>; status = "okay"; }; &combphy0_us { status = "okay"; }; &combphy1_usq { status = "okay"; }; &combphy2_psq { status = "okay"; }; &cpu0 { cpu-supply = <&vdd_cpu>; }; &dfi { status = "okay"; }; &dmc { center-supply = <&vdd_logic>; status = "okay"; }; &display_subsystem { status = "okay"; }; &gmac0 { phy-mode = "rgmii"; clock_in_out = "output"; snps,reset-gpio = <&gpio4 RK_PB2 GPIO_ACTIVE_LOW>; snps,reset-active-low; /* Reset time is 20ms, 100ms for rtl8211f */ snps,reset-delays-us = <0 20000 100000>; assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>; assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>, <&cru CLK_MAC0_2TOP>; assigned-clock-rates = <0>, <125000000>; pinctrl-names = "default"; pinctrl-0 = <&gmac0_miim &gmac0_tx_bus2 &gmac0_rx_bus2 &gmac0_rgmii_clk &gmac0_rgmii_bus>; tx_delay = <0x3c>; rx_delay = <0x2f>; phy-handle = <&rgmii_phy0>; status = "okay"; }; &gmac1 { phy-mode = "rgmii"; clock_in_out = "output"; snps,reset-gpio = <&gpio4 RK_PC0 GPIO_ACTIVE_LOW>; snps,reset-active-low; /* Reset time is 20ms, 100ms for rtl8211f */ snps,reset-delays-us = <0 20000 100000>; assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>; assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru CLK_MAC1_2TOP>; assigned-clock-rates = <0>, <125000000>; pinctrl-names = "default"; pinctrl-0 = <&gmac1m1_miim &gmac1m1_tx_bus2 &gmac1m1_rx_bus2 &gmac1m1_rgmii_clk &gmac1m1_rgmii_bus>; tx_delay = <0x4f>; rx_delay = <0x26>; phy-handle = <&rgmii_phy1>; status = "okay"; }; &gpu { mali-supply = <&vdd_gpu>; status = "okay"; }; &hdmi { status = "okay"; rockchip,phy-table = <92812500 0x8009 0x0000 0x0270>, <165000000 0x800b 0x0000 0x026d>, <185625000 0x800b 0x0000 0x01ed>, <297000000 0x800b 0x0000 0x01ad>, <594000000 0x8029 0x0000 0x0088>, <000000000 0x0000 0x0000 0x0000>; }; &hdmi_in_vp0 { status = "okay"; }; &hdmi_sound { status = "okay"; }; &i2c0 { status = "okay"; vdd_cpu: rk8600@40 { compatible = "rockchip,rk8600"; reg = <0x40>; vin-supply = <&vcc3v3_sys>; regulator-compatible = "rk860x-reg"; regulator-name = "vdd_cpu"; regulator-min-microvolt = <712500>; regulator-max-microvolt = <1500000>; regulator-ramp-delay = <2300>; rockchip,suspend-voltage-selector = <1>; regulator-boot-on; regulator-always-on; regulator-state-mem { regulator-off-in-suspend; }; }; }; &i2c2 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&i2c2m1_xfer>; }; &i2c3 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&i2c3m1_xfer>; }; &i2s0_8ch { status = "okay"; }; &iep { status = "okay"; }; &iep_mmu { status = "okay"; }; &jpegd { status = "okay"; }; &jpegd_mmu { status = "okay"; }; &mdio0 { rgmii_phy0: phy@1 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <0x1>; }; }; &mdio1 { rgmii_phy1: phy@1 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <0x1>; }; }; &mpp_srv { status = "okay"; }; &pcie2x1 { reset-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>; vpcie3v3-supply = <&vcc3v3_pcie>; status = "okay"; }; &pcie30phy { status = "okay"; }; &pcie3x2 { compatible = "rockchip,rk3568-pcie-std-ep"; memory-region = <&bar0_region>, <&bar2_region>; memory-region-names = "bar0", "bar2"; status = "okay"; }; &pinctrl { usb { vcc5v0_host_en: vcc5v0-host-en { rockchip,pins = <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>; }; vcc5v0_otg_en: vcc5v0-otg-en { rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; }; }; }; &pmu_io_domains { status = "okay"; pmuio2-supply = <&vccio_3v3>; vccio1-supply = <&vccio_3v3>; vccio3-supply = <&vccio_3v3>; vccio4-supply = <&vccio_3v3>; vccio5-supply = <&vccio_3v3>; vccio6-supply = <&vccio_3v3>; vccio7-supply = <&vccio_3v3>; }; &pwm0 { status = "okay"; }; &pwm1 { status = "okay"; }; &pwm2 { status = "okay"; }; &rk_rga { status = "okay"; }; &rkvdec { status = "okay"; }; &rkvdec_mmu { status = "okay"; }; &rkvenc { venc-supply = <&vdd_logic>; status = "okay"; }; &rkvenc_mmu { status = "okay"; }; &rknpu { rknpu-supply = <&vdd_npu>; status = "okay"; }; &rknpu_mmu { status = "okay"; }; &saradc { status = "okay"; vref-supply = <&vccio_1v8>; }; &sdhci { bus-width = <8>; no-sdio; no-sd; non-removable; max-frequency = <200000000>; status = "okay"; }; &sdmmc0 { max-frequency = <150000000>; no-sdio; no-mmc; bus-width = <4>; cap-mmc-highspeed; cap-sd-highspeed; disable-wp; sd-uhs-sdr104; vmmc-supply = <&vccio_3v3>; vqmmc-supply = <&vccio_3v3>; pinctrl-names = "default"; pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; status = "okay"; }; &sdmmc2 { max-frequency = <150000000>; no-sd; no-mmc; bus-width = <4>; disable-wp; cap-sd-highspeed; cap-sdio-irq; keep-power-in-suspend; //mmc-pwrseq = <&sdio_pwrseq>; non-removable; pinctrl-names = "default"; pinctrl-0 = <&sdmmc2m0_bus4 &sdmmc2m0_cmd &sdmmc2m0_clk>; sd-uhs-sdr104; status = "okay"; }; &sfc { status = "okay"; flash@0 { compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <75000000>; spi-rx-bus-width = <4>; spi-tx-bus-width = <1>; }; }; &spi0 { status = "okay"; pinctrl-names = "default", "high_speed"; pinctrl-0 = <&spi0m1_cs0 &spi0m1_pins>; pinctrl-1 = <&spi0m1_cs0 &spi0m1_pins_hs>; }; &spi2 { status = "okay"; pinctrl-names = "default", "high_speed"; pinctrl-0 = <&spi2m1_cs0 &spi2m1_cs1 &spi2m1_pins>; pinctrl-1 = <&spi2m1_cs0 &spi2m1_cs1 &spi2m1_pins_hs>; }; &tsadc { status = "okay"; }; &uart3 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&uart3m1_xfer>; }; /* RS485 */ &uart4 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&uart4m0_xfer &uart4m0_ctsn &uart4m0_rtsn>; }; &uart7 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&uart7m1_xfer>; }; &u2phy0_host { phy-supply = <&vcc5v0_host>; status = "okay"; }; &u2phy0_otg { status = "okay"; vbus-supply = <&vcc5v0_otg>; }; &usb2phy0 { status = "okay"; }; &usbdrd_dwc3 { dr_mode = "otg"; extcon = <&usb2phy0>; status = "okay"; }; &usbdrd30 { status = "okay"; }; &usbhost_dwc3 { status = "okay"; }; &usbhost30 { status = "okay"; }; &vdpu { status = "okay"; }; &vdpu_mmu { status = "okay"; }; &vepu { status = "okay"; }; &vepu_mmu { status = "okay"; }; &vop { status = "okay"; assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; }; &vop_mmu { status = "okay"; };