diff --git a/arch/arm/dts/rk322x-generic-tvbox.dtsi b/arch/arm/dts/rk322x-generic-tvbox.dtsi new file mode 100644 index 00000000..a9733ebd --- /dev/null +++ b/arch/arm/dts/rk322x-generic-tvbox.dtsi @@ -0,0 +1,151 @@ +// 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>; + }; + +}; + +&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"; +}; + +&usb20_otg { + vbus-supply = <&vcc_otg_vbus>; + status = "okay"; +}; + +&pinctrl { + + usb { + otg_vbus_drv: otg-vbus-drv { + rockchip,pins = <3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + +};