usb, g_dnl: make bcdDevice value configurable
add the possibility to set the bcdDevice number board specific. Therefore the weak function g_dnl_get_board_bcd_device_number() is introduced. Used on the siemens boards. Signed-off-by: Heiko Schocher <hs@denx.de> Acked-by: Lukasz Majewski <l.majewski@samsung.com> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Kyungmin Park <kyungmin.park@samsung.com>
This commit is contained in:
parent
79c5c08d7c
commit
7a0d463f58
@ -147,6 +147,23 @@ int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__weak int g_dnl_get_board_bcd_device_number(int gcnum)
|
||||||
|
{
|
||||||
|
return gcnum;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int g_dnl_get_bcd_device_number(struct usb_composite_dev *cdev)
|
||||||
|
{
|
||||||
|
struct usb_gadget *gadget = cdev->gadget;
|
||||||
|
int gcnum;
|
||||||
|
|
||||||
|
gcnum = usb_gadget_controller_number(gadget);
|
||||||
|
if (gcnum > 0)
|
||||||
|
gcnum += 0x200;
|
||||||
|
|
||||||
|
return g_dnl_get_board_bcd_device_number(gcnum);
|
||||||
|
}
|
||||||
|
|
||||||
static int g_dnl_bind(struct usb_composite_dev *cdev)
|
static int g_dnl_bind(struct usb_composite_dev *cdev)
|
||||||
{
|
{
|
||||||
struct usb_gadget *gadget = cdev->gadget;
|
struct usb_gadget *gadget = cdev->gadget;
|
||||||
@ -181,11 +198,9 @@ static int g_dnl_bind(struct usb_composite_dev *cdev)
|
|||||||
if (ret)
|
if (ret)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
gcnum = usb_gadget_controller_number(gadget);
|
gcnum = g_dnl_get_bcd_device_number(cdev);
|
||||||
|
|
||||||
debug("gcnum: %d\n", gcnum);
|
|
||||||
if (gcnum >= 0)
|
if (gcnum >= 0)
|
||||||
device_desc.bcdDevice = cpu_to_le16(0x0200 + gcnum);
|
device_desc.bcdDevice = cpu_to_le16(gcnum);
|
||||||
else {
|
else {
|
||||||
debug("%s: controller '%s' not recognized\n",
|
debug("%s: controller '%s' not recognized\n",
|
||||||
shortname, gadget->name);
|
shortname, gadget->name);
|
||||||
|
Loading…
Reference in New Issue
Block a user