diff options
author | Stefano Babic <sbabic@denx.de> | 2016-05-24 14:55:06 +0200 |
---|---|---|
committer | Stefano Babic <sbabic@denx.de> | 2016-05-24 14:55:06 +0200 |
commit | 08ca213acadef61748dc62d48b0f5c4bed8b8c2d (patch) | |
tree | 36cf415b78775ee63acdfc34d636d2b7d7936a78 /drivers/usb/common/common.c | |
parent | d15a244b059e361475302bccd471e65a48ee2b1f (diff) | |
parent | d7d000311285e4b8d11e089ca13ea456a01be3b8 (diff) | |
download | blackbird-obmc-uboot-08ca213acadef61748dc62d48b0f5c4bed8b8c2d.tar.gz blackbird-obmc-uboot-08ca213acadef61748dc62d48b0f5c4bed8b8c2d.zip |
Merge branch 'master' of git://git.denx.de/u-boot
Diffstat (limited to 'drivers/usb/common/common.c')
-rw-r--r-- | drivers/usb/common/common.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/drivers/usb/common/common.c b/drivers/usb/common/common.c new file mode 100644 index 0000000000..35c2dc18d9 --- /dev/null +++ b/drivers/usb/common/common.c @@ -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; +} |