mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-09-21 07:01:57 +00:00
usb: gadget: acm: Use plain udevice for UDC controller interaction
Convert to plain udevice interaction with UDC controller device, avoid the use of UDC uclass dev_array . Signed-off-by: Marek Vasut <marex@denx.de> Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
This commit is contained in:
parent
5b8c9d1b58
commit
99e0532831
1 changed files with 8 additions and 5 deletions
|
@ -51,7 +51,7 @@ struct f_acm {
|
|||
#define ACM_CTRL_RTS BIT(1) /* unused with full duplex */
|
||||
#define ACM_CTRL_DTR BIT(0) /* host is ready for data r/w */
|
||||
|
||||
int controller_index;
|
||||
struct udevice *udc;
|
||||
};
|
||||
|
||||
static struct f_acm *default_acm_function;
|
||||
|
@ -489,7 +489,7 @@ static void __acm_tx(struct f_acm *f_acm)
|
|||
int len, ret;
|
||||
|
||||
do {
|
||||
usb_gadget_handle_interrupts(f_acm->controller_index);
|
||||
dm_usb_gadget_handle_interrupts(f_acm->udc);
|
||||
|
||||
if (!(f_acm->handshake_bits & ACM_CTRL_DTR))
|
||||
break;
|
||||
|
@ -520,7 +520,7 @@ static bool acm_connected(struct stdio_dev *dev)
|
|||
struct f_acm *f_acm = stdio_to_acm(dev);
|
||||
|
||||
/* give a chance to process udc irq */
|
||||
usb_gadget_handle_interrupts(f_acm->controller_index);
|
||||
dm_usb_gadget_handle_interrupts(f_acm->udc);
|
||||
|
||||
return f_acm->connected;
|
||||
}
|
||||
|
@ -543,7 +543,10 @@ static int acm_add(struct usb_configuration *c)
|
|||
f_acm->usb_function.descriptors = acm_fs_function;
|
||||
f_acm->usb_function.hs_descriptors = acm_hs_function;
|
||||
f_acm->usb_function.setup = acm_setup;
|
||||
f_acm->controller_index = 0;
|
||||
|
||||
status = udc_device_get_by_index(0, &f_acm->udc);
|
||||
if (status)
|
||||
return status;
|
||||
|
||||
status = usb_add_function(c, &f_acm->usb_function);
|
||||
if (status) {
|
||||
|
@ -567,7 +570,7 @@ static int acm_stdio_tstc(struct stdio_dev *dev)
|
|||
{
|
||||
struct f_acm *f_acm = stdio_to_acm(dev);
|
||||
|
||||
usb_gadget_handle_interrupts(f_acm->controller_index);
|
||||
dm_usb_gadget_handle_interrupts(f_acm->udc);
|
||||
|
||||
return (f_acm->rx_buf.size > 0);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue