mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-16 18:04:48 +00:00

USB gadget is not working fully as expected on RK3328, it uses a board_usb_init() function to initialize the DWC2 OTG port. The board_usb_init() function does not intgrate with the generic phy framework and as a result the USB phy is not properly configured before or after USB gadget use. Having both USB_DWC2 and DWC2_OTG enabled for the same board is also causing some issues. Trying to use rockusb or ums command after usb stop result in a freeze due to usb stop is putting the phy in a suspended state. => usb start => usb stop => ums 0 mmc 0 --> freeze due to usb phy is suspended <-- Fix this by only using one of USB_DWC2 (host) or DWC2_OTG (peripheral) depending on the most likely usage of the otg port and by migrating to use DM_USB_GADGET instead of a board_usb_init() function. The nanopi-r2 and orangepi-r1-plus variants share OTG and power using a Type-C connector, mark these boards dr_mode as peripheral, the most likely usage is for recovery and image download. The rock64 and roc-cc currently use dr_mode as host, remove the DWC2_OTG driver from these boards to ensure that the USB_DWC2 driver is used. The rock-pi-e board does not enable the usb20_otg node so both USB_DWC2 and DWC2_OTG is removed from this board. Enable RockUSB and UMS on all boards with a otg port in peripheral mode. Also with the migration to DM_USB_GADGET completed the U-Boot specific change to reorder usb nodes in the soc device tree can be reverted. Signed-off-by: Jonas Karlman <jonas@kwiboo.se> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
42 lines
525 B
Text
42 lines
525 B
Text
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
/*
|
|
* (C) Copyright 2018-2019 Rockchip Electronics Co., Ltd
|
|
* (C) Copyright 2020 David Bauer
|
|
*/
|
|
|
|
#include "rk3328-u-boot.dtsi"
|
|
#include "rk3328-sdram-lpddr3-666.dtsi"
|
|
|
|
&spi0 {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
|
|
flash@0 {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
};
|
|
};
|
|
|
|
&spi0m2_clk {
|
|
bootph-pre-ram;
|
|
};
|
|
|
|
&spi0m2_cs0 {
|
|
bootph-pre-ram;
|
|
};
|
|
|
|
&spi0m2_rx {
|
|
bootph-pre-ram;
|
|
};
|
|
|
|
&spi0m2_tx {
|
|
bootph-pre-ram;
|
|
};
|
|
|
|
&usb20_otg {
|
|
dr_mode = "peripheral";
|
|
};
|
|
|
|
&vcc_sd {
|
|
bootph-pre-ram;
|
|
};
|