ARM: dts: rockchip: Add usb host0 ohci node for rk3288

Message ID 20200702090259.36595-1-jagan@amarulasolutions.com
State New
Headers show
Series
  • ARM: dts: rockchip: Add usb host0 ohci node for rk3288
Related show

Commit Message

Jagan Teki July 2, 2020, 9:02 a.m. UTC
rk3288 and rk3288w have a usb host0 ohci controller.

Although rk3288 ohci doesn't actually work on hardware, but
rk3288w ohci can work well.

So add usb host0 ohci node in rk3288 dtsi and the quirk in
ohci platform driver will disable ohci on rk3288.

The bootloader must update the compatible in order to bypass
host0_ohci in legacy rk3288 platform.

Cc: William Wu <william.wu@rock-chips.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
Note:
- U-Boot patch for compatible update
https://patchwork.ozlabs.org/project/uboot/patch/20200702084820.35942-1-jagan@amarulasolutions.com/

 arch/arm/boot/dts/rk3288.dtsi | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

Comments

Robin Murphy July 2, 2020, 2:45 p.m. UTC | #1
On 2020-07-02 10:02, Jagan Teki wrote:
> rk3288 and rk3288w have a usb host0 ohci controller.
> 
> Although rk3288 ohci doesn't actually work on hardware, but
> rk3288w ohci can work well.
> 
> So add usb host0 ohci node in rk3288 dtsi and the quirk in
> ohci platform driver will disable ohci on rk3288.
> 
> The bootloader must update the compatible in order to bypass
> host0_ohci in legacy rk3288 platform.
> 
> Cc: William Wu <william.wu@rock-chips.com>
> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
> ---
> Note:
> - U-Boot patch for compatible update
> https://patchwork.ozlabs.org/project/uboot/patch/20200702084820.35942-1-jagan@amarulasolutions.com/
> 
>   arch/arm/boot/dts/rk3288.dtsi | 14 +++++++++++++-
>   1 file changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
> index 0cd88774db95..fd0066d07dfc 100644
> --- a/arch/arm/boot/dts/rk3288.dtsi
> +++ b/arch/arm/boot/dts/rk3288.dtsi
> @@ -614,7 +614,19 @@ usb_host0_ehci: usb@ff500000 {
>   		status = "disabled";
>   	};
>   
> -	/* NOTE: ohci@ff520000 doesn't actually work on hardware */
> +	/**
> +	 * NOTE: ohci@ff520000 doesn't actually work on hardware
> +	 * hardware, but can work on rk3288w hardware.
> +	 */

Hardware hardware, hardware - seems like things got a bit mangled there ;)

How about simply something like this?:

	/* NOTE: doesn't work on RK3288, but fixed on RK3288W */

Robin.

> +	usb_host0_ohci: usb@ff520000 {
> +		compatible = "generic-ohci";
> +		reg = <0x0 0xff520000 0x0 0x100>;
> +		interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
> +		clocks = <&cru HCLK_USBHOST0>;
> +		phys = <&usbphy1>;
> +		phy-names = "usb";
> +		status = "disabled";
> +	};
>   
>   	usb_host1: usb@ff540000 {
>   		compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
>

Patch

diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
index 0cd88774db95..fd0066d07dfc 100644
--- a/arch/arm/boot/dts/rk3288.dtsi
+++ b/arch/arm/boot/dts/rk3288.dtsi
@@ -614,7 +614,19 @@  usb_host0_ehci: usb@ff500000 {
 		status = "disabled";
 	};
 
-	/* NOTE: ohci@ff520000 doesn't actually work on hardware */
+	/**
+	 * NOTE: ohci@ff520000 doesn't actually work on hardware
+	 * hardware, but can work on rk3288w hardware.
+	 */
+	usb_host0_ohci: usb@ff520000 {
+		compatible = "generic-ohci";
+		reg = <0x0 0xff520000 0x0 0x100>;
+		interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&cru HCLK_USBHOST0>;
+		phys = <&usbphy1>;
+		phy-names = "usb";
+		status = "disabled";
+	};
 
 	usb_host1: usb@ff540000 {
 		compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",