[PATCH v5 1/6] ARM: dts: rockchip: rk3588-rock-5b-u-boot: add USB 2.0 host
Kever Yang
kever.yang at rock-chips.com
Sat May 6 11:58:26 CEST 2023
On 2023/4/19 21:40, Eugen Hristev wrote:
> Add USB 2.0 host nodes and PHYs.
>
> Co-developed-by: William Wu <william.wu at rock-chips.com>
> Signed-off-by: William Wu <william.wu at rock-chips.com>
> Signed-off-by: Eugen Hristev <eugen.hristev at collabora.com>
Reviewed-by: Kever Yang <kever.yang at rock-chips.com>
Thanks,
- Kever
> ---
> Changes in v5:
> - none
>
> Changes in v4:
> - removed u-boot,dm-spl on regulator which was useless
> - moved usb nodes to rk3588s-u-boot-dtsi
>
> Changes in v2,v3:
> - none
>
> arch/arm/dts/rk3588-rock-5b-u-boot.dtsi | 82 +++++++++++++++++++++++
> arch/arm/dts/rk3588s-u-boot.dtsi | 86 +++++++++++++++++++++++++
> 2 files changed, 168 insertions(+)
>
> diff --git a/arch/arm/dts/rk3588-rock-5b-u-boot.dtsi b/arch/arm/dts/rk3588-rock-5b-u-boot.dtsi
> index bee4c32e8965..93942b105c3d 100644
> --- a/arch/arm/dts/rk3588-rock-5b-u-boot.dtsi
> +++ b/arch/arm/dts/rk3588-rock-5b-u-boot.dtsi
> @@ -4,6 +4,9 @@
> */
>
> #include "rk3588-u-boot.dtsi"
> +#include <dt-bindings/pinctrl/rockchip.h>
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/gpio/gpio.h>
>
> / {
> aliases {
> @@ -13,6 +16,18 @@
> chosen {
> u-boot,spl-boot-order = &sdmmc;
> };
> +
> + vcc5v0_host: vcc5v0-host-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "vcc5v0_host";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + enable-active-high;
> + gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&vcc5v0_host_en>;
> + vin-supply = <&vcc5v0_sys>;
> + };
> };
>
> &sdmmc {
> @@ -20,3 +35,70 @@
> bootph-pre-ram;
> status = "okay";
> };
> +
> +&pinctrl {
> + usb {
> + vcc5v0_host_en: vcc5v0-host-en {
> + rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
> + };
> + };
> +};
> +
> +&usb_host0_ehci {
> + companion = <&usb_host0_ohci>;
> + phys = <&u2phy2_host>;
> + phy-names = "usb2-phy";
> + status = "okay";
> +};
> +
> +&usb_host0_ohci {
> + phys = <&u2phy2_host>;
> + phy-names = "usb2-phy";
> + status = "okay";
> +};
> +
> +&usb2phy2_grf {
> + status = "okay";
> +};
> +
> +&u2phy2 {
> + resets = <&cru SRST_OTGPHY_U2_0>, <&cru SRST_P_USB2PHY_U2_0_GRF0>;
> + reset-names = "phy", "apb";
> + clock-output-names = "usb480m_phy2";
> + status = "okay";
> +};
> +
> +&u2phy2_host {
> + phy-supply = <&vcc5v0_host>;
> + status = "okay";
> +};
> +
> +&usb_host1_ehci {
> + companion = <&usb_host1_ohci>;
> + phys = <&u2phy3_host>;
> + phy-names = "usb2-phy";
> + status = "okay";
> +};
> +
> +&usb_host1_ohci {
> + phys = <&u2phy3_host>;
> + phy-names = "usb2-phy";
> + status = "okay";
> +};
> +
> +&usb2phy3_grf {
> + status = "okay";
> +};
> +
> +&u2phy3 {
> + resets = <&cru SRST_OTGPHY_U2_1>, <&cru SRST_P_USB2PHY_U2_1_GRF0>;
> + reset-names = "phy", "apb";
> + clock-output-names = "usb480m_phy3";
> + status = "okay";
> +};
> +
> +&u2phy3_host {
> + phy-supply = <&vcc5v0_host>;
> + status = "okay";
> +};
> +
> diff --git a/arch/arm/dts/rk3588s-u-boot.dtsi b/arch/arm/dts/rk3588s-u-boot.dtsi
> index 1e225d71efc2..fb1b802fd273 100644
> --- a/arch/arm/dts/rk3588s-u-boot.dtsi
> +++ b/arch/arm/dts/rk3588s-u-boot.dtsi
> @@ -12,12 +12,98 @@
> status = "okay";
> };
>
> + usb_host0_ehci: usb at fc800000 {
> + compatible = "generic-ehci";
> + reg = <0x0 0xfc800000 0x0 0x40000>;
> + interrupts = <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH 0>;
> + clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST_ARB0>;
> + clock-names = "usbhost", "arbiter";
> + power-domains = <&power RK3588_PD_USB>;
> + status = "disabled";
> + };
> +
> + usb_host0_ohci: usb at fc840000 {
> + compatible = "generic-ohci";
> + reg = <0x0 0xfc840000 0x0 0x40000>;
> + interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH 0>;
> + clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST_ARB0>;
> + clock-names = "usbhost", "arbiter";
> + power-domains = <&power RK3588_PD_USB>;
> + status = "disabled";
> + };
> +
> + usb_host1_ehci: usb at fc880000 {
> + compatible = "generic-ehci";
> + reg = <0x0 0xfc880000 0x0 0x40000>;
> + interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH 0>;
> + clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST_ARB1>;
> + clock-names = "usbhost", "arbiter";
> + power-domains = <&power RK3588_PD_USB>;
> + status = "disabled";
> + };
> +
> + usb_host1_ohci: usb at fc8c0000 {
> + compatible = "generic-ohci";
> + reg = <0x0 0xfc8c0000 0x0 0x40000>;
> + interrupts = <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH 0>;
> + clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST_ARB1>;
> + clock-names = "usbhost", "arbiter";
> + power-domains = <&power RK3588_PD_USB>;
> + status = "disabled";
> + };
> +
> pmu1_grf: syscon at fd58a000 {
> bootph-all;
> compatible = "rockchip,rk3588-pmu1-grf", "syscon";
> reg = <0x0 0xfd58a000 0x0 0x2000>;
> };
>
> + usb2phy2_grf: syscon at fd5d8000 {
> + compatible = "rockchip,rk3588-usb2phy-grf", "syscon",
> + "simple-mfd";
> + reg = <0x0 0xfd5d8000 0x0 0x4000>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + u2phy2: usb2-phy at 8000 {
> + compatible = "rockchip,rk3588-usb2phy";
> + reg = <0x8000 0x10>;
> + interrupts = <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH 0>;
> + clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
> + clock-names = "phyclk";
> + #clock-cells = <0>;
> + status = "disabled";
> +
> + u2phy2_host: host-port {
> + #phy-cells = <0>;
> + status = "disabled";
> + };
> + };
> + };
> +
> + usb2phy3_grf: syscon at fd5dc000 {
> + compatible = "rockchip,rk3588-usb2phy-grf", "syscon",
> + "simple-mfd";
> + reg = <0x0 0xfd5dc000 0x0 0x4000>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + u2phy3: usb2-phy at c000 {
> + compatible = "rockchip,rk3588-usb2phy";
> + reg = <0xc000 0x10>;
> + interrupts = <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH 0>;
> + clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
> + clock-names = "phyclk";
> + #clock-cells = <0>;
> + status = "disabled";
> +
> + u2phy3_host: host-port {
> + #phy-cells = <0>;
> + status = "disabled";
> + };
> + };
> + };
> +
> sdmmc: mmc at fe2c0000 {
> compatible = "rockchip,rk3588-dw-mshc", "rockchip,rk3288-dw-mshc";
> reg = <0x0 0xfe2c0000 0x0 0x4000>;
More information about the U-Boot
mailing list