diff options
Diffstat (limited to 'payloads/libpayload/drivers/udc/chipidea.c')
-rw-r--r-- | payloads/libpayload/drivers/udc/chipidea.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/payloads/libpayload/drivers/udc/chipidea.c b/payloads/libpayload/drivers/udc/chipidea.c index e06f0d2824..58bea063e7 100644 --- a/payloads/libpayload/drivers/udc/chipidea.c +++ b/payloads/libpayload/drivers/udc/chipidea.c @@ -153,6 +153,7 @@ static void chipidea_start_ep(struct usbdev_ctrl *this, setbits_le32(&p->opreg->epctrl[ep], ((1 << 7) | (1 << 6) | (ep_type << 2)) << (in_dir*16)); p->ep_busy[ep][in_dir] = 0; + this->ep_mps[ep][in_dir] = mps; } static void advance_endpoint(struct chipidea_pdata *p, int endpoint, int in_dir) @@ -463,6 +464,14 @@ struct usbdev_ctrl *chipidea_init(device_descriptor_t *dd) ctrl->free_data = chipidea_free; ctrl->initialized = 0; + int i; + ctrl->ep_mps[0][0] = 64; + ctrl->ep_mps[0][1] = 64; + for (i = 1; i < 16; i++) { + ctrl->ep_mps[i][0] = 512; + ctrl->ep_mps[i][1] = 512; + } + if (!chipidea_hw_init(ctrl, (void *)0x7d000000, dd)) { free(ctrl->pdata); free(ctrl); |