diff --git a/arch/arm/dts/rk322x-generic-tvbox.dtsi b/arch/arm/dts/rk322x-generic-tvbox.dtsi new file mode 100644 index 00000000..9328eaf7 --- /dev/null +++ b/arch/arm/dts/rk322x-generic-tvbox.dtsi @@ -0,0 +1,224 @@ +// SPDX-License-Identifier: GPL-2.0+ OR X11 +/* + * (C) Copyright 2019 Paolo Sabatino + * + * Generic rk322x tv box device tree include file. + * + * This dtsi covers most of the common hardware included in generic tv boxes around the market. + * Include this dtsi in your configuration and make the necessary adjustments there for base support. + * + */ + +/dts-v1/; + +#include "rk322x.dtsi" + +/ { + + chosen { + u-boot,dm-pre-reloc; + stdout-path = &uart2; + u-boot,spl-boot-order = "same-as-spl", &emmc, &sdmmc; + }; + + memory@60000000 { + device_type = "memory"; + reg = <0x60000000 0x40000000>; + }; + + leds: leds { + compatible = "gpio-leds"; + + /* + Main led is available on all boards. + Default state is honoured only if led_default_state() is called inside + an early init hook function. + */ + main { + label = "heartbeat"; + gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_LOW>; + default-state = "on"; + linux,default-trigger = "heartbeat"; + }; + + }; + + vcc_sys: vcc-sys-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + }; + + vcc_phy: vcc-phy-regulator { + compatible = "regulator-fixed"; + enable-active-high; + regulator-name = "vcc_phy"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + + vcc_otg_vbus: otg-vbus-regulator { + compatible = "regulator-fixed"; + gpio = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&otg_vbus_drv>; + regulator-name = "vcc_otg_vbus"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-boot-on; +// regulator-always-on; + enable-active-high; + vin-supply = <&vcc_sys>; + }; + + vcc_host_vbus: vcc-host-regulator { + compatible = "regulator-fixed"; + gpio = <&gpio3 RK_PC4 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&host_vbus_drv>; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-name = "vcc_host"; +// regulator-always-on; + regulator-boot-on; + enable-active-high; + vin-supply = <&vcc_sys>; + }; + + +}; + +&gmac { + + assigned-clocks = <&cru SCLK_MAC_SRC>; + assigned-clock-rates = <50000000>; + + clock_in_out = "output"; + phy-supply = <&vcc_phy>; + phy-mode = "rmii"; + phy-is-integrated; + + tx_delay = < 0x30 >; // Default is 0x30, but original dts proposes 0x26 + rx_delay = < 0x10 >; // Default is 0x10, but original dts proposes 0x11 + + pinctrl-names = "default"; + pinctrl-0 = <&phy_pins>; + + status = "okay"; + +}; + +&emmc { + + u-boot,dm-spl; + clock-frequency = <50000000>; + clock-freq-min-max = <400000 50000000>; + broken-cd; + cap-mmc-highspeed; + mmc-hs200-1_8v; + supports-emmc; + disable-wp; + non-removable; + /delete-property/ pinctrl-names; + /delete-property/ pinctrl-0; + status = "okay"; + +}; + +&sdmmc { + + u-boot,dm-spl; + bus-width = <4>; + cap-mmc-highspeed; + cap-sd-highspeed; + card-detect-delay = <200>; + disable-wp; + num-slots = <1>; + supports-sd; + + status = "okay"; + +}; + +&uart2 { + u-boot,dm-pre-reloc; + status = "okay"; +}; + +&u2phy0 { + status = "okay"; +}; + +&u2phy0_otg { + status = "okay"; +}; + +&u2phy0_host { + status = "okay"; +}; + +&u2phy1 { + status = "okay"; +}; + +&u2phy1_otg { + status = "okay"; +}; + +&u2phy1_host { + status = "okay"; +}; + +&usb_host0_ehci { + vbus-supply = <&vcc_host_vbus>; + status = "okay"; +}; + +&usb_host0_ohci { + vbus-supply = <&vcc_host_vbus>; + status = "okay"; +}; + +&usb_host1_ehci { + vbus-supply = <&vcc_host_vbus>; + status = "okay"; +}; + +&usb_host1_ohci { + vbus-supply = <&vcc_host_vbus>; + status = "okay"; +}; + +&usb_host2_ehci { + vbus-supply = <&vcc_host_vbus>; + status = "okay"; +}; + +&usb_host2_ohci { + vbus-supply = <&vcc_host_vbus>; + status = "okay"; +}; + +&usb20_otg{ + vbus-supply = <&vcc_otg_vbus>; + status = "okay"; +}; + +&pinctrl { + + usb { + host_vbus_drv: host-vbus-drv { + rockchip,pins = <3 RK_PC4 RK_FUNC_GPIO &pcfg_pull_down>; + }; + + otg_vbus_drv: otg-vbus-drv { + rockchip,pins = <3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_down>; + }; + }; + +};