[PATCH 1/2] rockchip: use standard dr_mode parsing function

Kever Yang kever.yang at rock-chips.com
Thu Apr 13 04:17:06 CEST 2023


On 2023/4/12 19:52, John Keeping wrote:
> Instead of duplicating the string values here, use usb_get_dr_mode() to
> handle the property lookup and converting the values to an enum.
>
> This is implemented with a switch in preparation for the next patch
> which adds extra handling for peripheral mode.
>
> Signed-off-by: John Keeping <john at metanate.com>
Reviewed-by: Kever Yang <kever.yang at rock-chips.com>

Thanks,
- Kever
> ---
>   arch/arm/mach-rockchip/board.c | 12 +++++++++---
>   1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm/mach-rockchip/board.c b/arch/arm/mach-rockchip/board.c
> index f1f70c81d0..6d33d65780 100644
> --- a/arch/arm/mach-rockchip/board.c
> +++ b/arch/arm/mach-rockchip/board.c
> @@ -212,6 +212,7 @@ void enable_caches(void)
>   #include <usb.h>
>   
>   #if defined(CONFIG_USB_GADGET_DWC2_OTG)
> +#include <linux/usb/otg.h>
>   #include <usb/dwc2_udc.h>
>   
>   static struct dwc2_plat_otg_data otg_data = {
> @@ -223,18 +224,23 @@ static struct dwc2_plat_otg_data otg_data = {
>   int board_usb_init(int index, enum usb_init_type init)
>   {
>   	ofnode node;
> -	const char *mode;
>   	bool matched = false;
>   
>   	/* find the usb_otg node */
>   	node = ofnode_by_compatible(ofnode_null(), "snps,dwc2");
>   	while (ofnode_valid(node)) {
> -		mode = ofnode_read_string(node, "dr_mode");
> -		if (mode && strcmp(mode, "otg") == 0) {
> +		switch (usb_get_dr_mode(node)) {
> +		case USB_DR_MODE_OTG:
>   			matched = true;
>   			break;
> +
> +		default:
> +			break;
>   		}
>   
> +		if (matched)
> +			break;
> +
>   		node = ofnode_by_compatible(node, "snps,dwc2");
>   	}
>   	if (!matched) {


More information about the U-Boot mailing list