// SPDX-License-Identifier: (GPL-2.0+ OR MIT) /* * Copyright (c) 2018 Theobroma Systems Design und Consulting GmbH */ /dts-v1/; #include "rk3368.dtsi" / { model = "Theobroma Systems RK3368-uQ7 SoM"; compatible = "tsd,rk3368-uq7", "rockchip,rk3368"; chosen { stdout-path = "serial0:115200n8"; }; xin32k: xin32k { compatible = "fixed-clock"; clock-frequency = <32768>; clock-output-names = "xin32k"; #clock-cells = <0>; }; ext_gmac: gmac-clk { compatible = "fixed-clock"; clock-frequency = <125000000>; clock-output-names = "ext_gmac"; #clock-cells = <0>; }; i2cmux1 { compatible = "i2c-mux-gpio"; #address-cells = <1>; #size-cells = <0>; i2c-parent = <&i2c1>; mux-gpios = <&gpio1 RK_PA7 GPIO_ACTIVE_HIGH>; /* Q7_GPO_I2C */ i2c@0 { reg = <0>; #address-cells = <1>; #size-cells = <0>; }; /* Q7_SMB */ i2c@1 { reg = <1>; #address-cells = <1>; #size-cells = <0>; }; }; i2cmux2 { compatible = "i2c-mux-gpio"; #address-cells = <1>; #size-cells = <0>; i2c-parent = <&i2c2>; mux-gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_HIGH>; /* Q7_LVDS_BLC_I2C */ i2c@0 { reg = <0>; #address-cells = <1>; #size-cells = <0>; fan: fan@18 { compatible = "ti,amc6821"; reg = <0x18>; cooling-min-state = <0>; cooling-max-state = <9>; #cooling-cells = <2>; }; rtc_twi: rtc@6f { compatible = "isil,isl1208"; reg = <0x6f>; }; }; /* Q7_GP2_I2C */ i2c@1 { reg = <1>; #address-cells = <1>; #size-cells = <0>; }; }; leds { compatible = "gpio-leds"; pinctrl-names = "default"; pinctrl-0 = <&led_pins_module>; module_led1 { label = "module_led1"; gpios = <&gpio2 RK_PB5 GPIO_ACTIVE_HIGH>; linux,default-trigger = "heartbeat"; panic-indicator; }; module_led2 { label = "module_led2"; gpios = <&gpio3 RK_PA3 GPIO_ACTIVE_HIGH>; default-state = "off"; }; }; vcc_sys: vcc-sys-regulator { compatible = "regulator-fixed"; regulator-name = "vcc_sys"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-always-on; regulator-boot-on; }; vcc_host: vcc-host { compatible = "regulator-fixed"; enable-active-high; gpio = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&host_vbus_drv>; regulator-name = "vcc_host"; regulator-always-on; }; dwc_control_usb: dwc-control-usb { compatible = "rockchip,rk3368-dwc-control-usb"; status = "okay"; rockchip,grf = <&grf>; grf-offset = <0x04bc>; /* GRF_SOC_STATUS for USB2.0 OTG */ interrupts = , , , ; interrupt-names = "otg_id", "otg_bvalid", "otg_linestate", "host0_linestate"; clocks = <&cru HCLK_USB_PERI>; clock-names = "hclk_usb_peri"; otg_drv_gpio = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; rockchip,remote_wakeup; rockchip,usb_irq_wakeup; usb_bc { compatible = "inno,phy"; regbase = &dwc_control_usb; rk_usb,bvalid = <0x4bc 23 1>; rk_usb,iddig = <0x4bc 26 1>; rk_usb,vdmsrcen = <0x718 12 1>; rk_usb,vdpsrcen = <0x718 11 1>; rk_usb,rdmpden = <0x718 10 1>; rk_usb,idpsrcen = <0x718 9 1>; rk_usb,idmsinken = <0x718 8 1>; rk_usb,idpsinken = <0x718 7 1>; rk_usb,dpattach = <0x4b8 31 1>; rk_usb,cpdet = <0x4b8 30 1>; rk_usb,dcpattach = <0x4b8 29 1>; }; }; }; &cpu_l0 { cpu-supply = <&vdd_cpu>; }; &cpu_l1 { cpu-supply = <&vdd_cpu>; }; &cpu_l2 { cpu-supply = <&vdd_cpu>; }; &cpu_l3 { cpu-supply = <&vdd_cpu>; }; &cpu_b0 { cpu-supply = <&vdd_cpu>; }; &cpu_b1 { cpu-supply = <&vdd_cpu>; }; &cpu_b2 { cpu-supply = <&vdd_cpu>; }; &cpu_b3 { cpu-supply = <&vdd_cpu>; }; &emmc { bus-width = <8>; max-frequency = <150000000>; disable-wp; mmc-hs200-1_8v; non-removable; cap-mmc-highspeed; supports-emmc; no-sdio; no-sd; num-slots = <1>; vmmc-supply = <&vcc33_io>; vqmmc-supply = <&vcc18_io>; pinctrl-names = "default"; pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_bus8>; status = "okay"; }; &gmac { assigned-clocks = <&cru SCLK_MAC>; assigned-clock-parents = <&ext_gmac>; clock_in_out = "input"; phy-supply = <&vcc33_io>; phy-mode = "rgmii"; pinctrl-names = "default"; pinctrl-0 = <&rgmii_pins>; snps,reset-active-low; snps,reset-delays-us = <0 10000 50000>; snps,reset-gpio = <&gpio3 RK_PB3 GPIO_ACTIVE_LOW>; tx_delay = <0x10>; rx_delay = <0x10>; status = "okay"; phy-handle = <&phy0>; mdio { compatible = "snps,dwmac-mdio"; #address-cells = <1>; #size-cells = <0>; // Microsemi VSC8531-02 phy0: phy0 { compatible = "ethernet-phy-id0007.0570"; reg = <0>; vsc8531,edge-slowdown = <7>; vsc8531,led-0-mode = <1>; vsc8531,led-1-mode = <2>; }; }; }; /* PMIC_SCL/SDA */ &i2c0 { status = "okay"; rk808: pmic@1b { compatible = "rockchip,rk808"; reg = <0x1b>; interrupt-parent = <&gpio0>; interrupts = ; clock-output-names = "rk808-clkout1", "rk808-clkout2"; #clock-cells = <1>; pinctrl-names = "default"; pinctrl-0 = <&pmic_int_l>, <&pmic_sleep>; rockchip,system-power-controller; vcc1-supply = <&vcc_sys>; vcc2-supply = <&vcc_sys>; vcc3-supply = <&vcc_sys>; vcc4-supply = <&vcc_sys>; vcc6-supply = <&vcc_sys>; vcc7-supply = <&vcc_sys>; vcc8-supply = <&vcc_sys>; vcc9-supply = <&vcc_sys>; vcc10-supply = <&vcc_sys>; vcc11-supply = <&vcc_sys>; vcc12-supply = <&vcc_sys>; regulators { vdd_cpu: DCDC_REG1 { regulator-name = "vdd_cpu"; regulator-min-microvolt = <700000>; regulator-max-microvolt = <1500000>; regulator-always-on; regulator-boot-on; }; vdd_log: DCDC_REG2 { regulator-name = "vdd_log"; regulator-min-microvolt = <700000>; regulator-max-microvolt = <1500000>; regulator-always-on; regulator-boot-on; }; vcc_ddr: DCDC_REG3 { regulator-name = "vcc_ddr"; regulator-always-on; regulator-boot-on; }; vcc33_io: DCDC_REG4 { regulator-name = "vcc33_io"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; regulator-boot-on; }; vcc33_video: LDO_REG2 { regulator-name = "vcc33_video"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; regulator-boot-on; }; vdd10_pll: LDO_REG3 { regulator-name = "vdd10_pll"; regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; regulator-always-on; regulator-boot-on; }; vcc18_io: LDO_REG4 { regulator-name = "vcc18_io"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-boot-on; }; vdd10_video: LDO_REG6 { regulator-name = "vdd10_video"; regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; regulator-always-on; regulator-boot-on; }; vcc18_video: LDO_REG8 { regulator-name = "vcc18_video"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; regulator-boot-on; }; }; }; }; /* Do not use directly - this bus is behind a i2c mux */ &i2c1 { status = "okay"; }; /* Do not use directly - this bus is behind a i2c mux */ &i2c2 { status = "okay"; }; &pinctrl { leds { led_pins_module: led-module-gpio { rockchip,pins = , ; }; }; pmic { pmic_int_l: pmic-int-l { rockchip,pins = ; }; pmic_sleep: pmic-sleep { rockchip,pins = ; }; }; usb_otg { otg_vbus_drv: otg-vbus-drv { rockchip,pins = ; }; }; usb_host { host_vbus_drv: host-vbus-drv { rockchip,pins = ; }; }; }; &spi1 { status = "okay"; norflash: flash@0 { compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <50000000>; }; }; &uart1 { status = "okay"; }; &uart3 { status = "okay"; }; &usb_otg { status = "okay"; compatible = "rockchip,rk3368-usb"; clocks = <&cru SCLK_OTGPHY0>, <&cru HCLK_OTG0>; clock-names = "sclk_otgphy0", "otg"; resets = <&cru SRST_USBOTG_AHB>, <&cru SRST_USBOTG_PHY>, <&cru SRST_USBOTG_CON>; reset-names = "otg_ahb", "otg_phy", "otg_controller"; /* 0 - Normal, 1 - Force Host, 2 - Force Device */ rockchip,usb-mode = <1>; }; &u2phy { status = "okay"; u2phy_host: host-port { phy-supply = <&vcc_host>; status = "okay"; }; }; &usb_host0_ehci { status = "okay"; }; &usb_host0_ohci { status = "okay"; }; &wdt { status = "okay"; }; &tsadc { tsadc-supply = <&vdd_cpu>; status = "okay"; };