Add common usb code which usb drivers makes use of it. Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org>master
parent
9300f711ba
commit
c0c62d9233
@ -0,0 +1,40 @@ |
||||
/*
|
||||
* Provides code common for host and device side USB. |
||||
* |
||||
* (C) Copyright 2016 |
||||
* Texas Instruments Incorporated, <www.ti.com> |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
#include <common.h> |
||||
#include <libfdt.h> |
||||
#include <linux/usb/otg.h> |
||||
|
||||
DECLARE_GLOBAL_DATA_PTR; |
||||
|
||||
static const char *const usb_dr_modes[] = { |
||||
[USB_DR_MODE_UNKNOWN] = "", |
||||
[USB_DR_MODE_HOST] = "host", |
||||
[USB_DR_MODE_PERIPHERAL] = "peripheral", |
||||
[USB_DR_MODE_OTG] = "otg", |
||||
}; |
||||
|
||||
enum usb_dr_mode usb_get_dr_mode(int node) |
||||
{ |
||||
const void *fdt = gd->fdt_blob; |
||||
const char *dr_mode; |
||||
int i; |
||||
|
||||
dr_mode = fdt_getprop(fdt, node, "dr_mode", NULL); |
||||
if (!dr_mode) { |
||||
error("usb dr_mode not found\n"); |
||||
return USB_DR_MODE_UNKNOWN; |
||||
} |
||||
|
||||
for (i = 0; i < ARRAY_SIZE(usb_dr_modes); i++) |
||||
if (!strcmp(dr_mode, usb_dr_modes[i])) |
||||
return i; |
||||
|
||||
return USB_DR_MODE_UNKNOWN; |
||||
} |
Loading…
Reference in new issue