rockchip: use standard dr_mode parsing function

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@metanate.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
This commit is contained in:
John Keeping 2023-04-12 12:52:52 +01:00 committed by Kever Yang
parent afb4f55565
commit 51c54080ff

View file

@ -212,6 +212,7 @@ void enable_caches(void)
#include <usb.h> #include <usb.h>
#if defined(CONFIG_USB_GADGET_DWC2_OTG) #if defined(CONFIG_USB_GADGET_DWC2_OTG)
#include <linux/usb/otg.h>
#include <usb/dwc2_udc.h> #include <usb/dwc2_udc.h>
static struct dwc2_plat_otg_data otg_data = { 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) int board_usb_init(int index, enum usb_init_type init)
{ {
ofnode node; ofnode node;
const char *mode;
bool matched = false; bool matched = false;
/* find the usb_otg node */ /* find the usb_otg node */
node = ofnode_by_compatible(ofnode_null(), "snps,dwc2"); node = ofnode_by_compatible(ofnode_null(), "snps,dwc2");
while (ofnode_valid(node)) { while (ofnode_valid(node)) {
mode = ofnode_read_string(node, "dr_mode"); switch (usb_get_dr_mode(node)) {
if (mode && strcmp(mode, "otg") == 0) { case USB_DR_MODE_OTG:
matched = true; matched = true;
break; break;
default:
break;
} }
if (matched)
break;
node = ofnode_by_compatible(node, "snps,dwc2"); node = ofnode_by_compatible(node, "snps,dwc2");
} }
if (!matched) { if (!matched) {