drivers/usb/gadget/udc/m66592-udc.c
1000
static void clear_feature(struct m66592 *m66592, struct usb_ctrlrequest *ctrl)
drivers/usb/gadget/udc/m66592-udc.c
1004
control_end(m66592, 1);
drivers/usb/gadget/udc/m66592-udc.c
1007
control_end(m66592, 1);
drivers/usb/gadget/udc/m66592-udc.c
1014
ep = m66592->epaddr2ep[w_index & USB_ENDPOINT_NUMBER_MASK];
drivers/usb/gadget/udc/m66592-udc.c
1015
pipe_stop(m66592, ep->pipenum);
drivers/usb/gadget/udc/m66592-udc.c
1016
control_reg_sqclr(m66592, ep->pipenum);
drivers/usb/gadget/udc/m66592-udc.c
1018
control_end(m66592, 1);
drivers/usb/gadget/udc/m66592-udc.c
102
static inline u16 control_reg_get_pid(struct m66592 *m66592, u16 pipenum)
drivers/usb/gadget/udc/m66592-udc.c
1028
pipe_start(m66592, ep->pipenum);
drivers/usb/gadget/udc/m66592-udc.c
1032
pipe_stall(m66592, 0);
drivers/usb/gadget/udc/m66592-udc.c
1037
static void set_feature(struct m66592 *m66592, struct usb_ctrlrequest *ctrl)
drivers/usb/gadget/udc/m66592-udc.c
1046
control_end(m66592, 1);
drivers/usb/gadget/udc/m66592-udc.c
1049
tmp = m66592_read(m66592, M66592_INTSTS0) &
drivers/usb/gadget/udc/m66592-udc.c
1055
m66592_bset(m66592,
drivers/usb/gadget/udc/m66592-udc.c
1060
pipe_stall(m66592, 0);
drivers/usb/gadget/udc/m66592-udc.c
1065
control_end(m66592, 1);
drivers/usb/gadget/udc/m66592-udc.c
1071
ep = m66592->epaddr2ep[w_index & USB_ENDPOINT_NUMBER_MASK];
drivers/usb/gadget/udc/m66592-udc.c
1072
pipe_stall(m66592, ep->pipenum);
drivers/usb/gadget/udc/m66592-udc.c
1074
control_end(m66592, 1);
drivers/usb/gadget/udc/m66592-udc.c
1078
pipe_stall(m66592, 0);
drivers/usb/gadget/udc/m66592-udc.c
108
pid = m66592_read(m66592, M66592_DCPCTR) & M66592_PID;
drivers/usb/gadget/udc/m66592-udc.c
1084
static int setup_packet(struct m66592 *m66592, struct usb_ctrlrequest *ctrl)
drivers/usb/gadget/udc/m66592-udc.c
1091
m66592_write(m66592, ~M66592_VALID, M66592_INTSTS0);
drivers/usb/gadget/udc/m66592-udc.c
1094
p[i] = m66592_read(m66592, offset + i*2);
drivers/usb/gadget/udc/m66592-udc.c
1100
get_status(m66592, ctrl);
drivers/usb/gadget/udc/m66592-udc.c
1103
clear_feature(m66592, ctrl);
drivers/usb/gadget/udc/m66592-udc.c
1106
set_feature(m66592, ctrl);
drivers/usb/gadget/udc/m66592-udc.c
111
pid = m66592_read(m66592, offset) & M66592_PID;
drivers/usb/gadget/udc/m66592-udc.c
1117
static void m66592_update_usb_speed(struct m66592 *m66592)
drivers/usb/gadget/udc/m66592-udc.c
1119
u16 speed = get_usb_speed(m66592);
drivers/usb/gadget/udc/m66592-udc.c
1123
m66592->gadget.speed = USB_SPEED_HIGH;
drivers/usb/gadget/udc/m66592-udc.c
1126
m66592->gadget.speed = USB_SPEED_FULL;
drivers/usb/gadget/udc/m66592-udc.c
1129
m66592->gadget.speed = USB_SPEED_UNKNOWN;
drivers/usb/gadget/udc/m66592-udc.c
1134
static void irq_device_state(struct m66592 *m66592)
drivers/usb/gadget/udc/m66592-udc.c
1138
dvsq = m66592_read(m66592, M66592_INTSTS0) & M66592_DVSQ;
drivers/usb/gadget/udc/m66592-udc.c
1139
m66592_write(m66592, ~M66592_DVST, M66592_INTSTS0);
drivers/usb/gadget/udc/m66592-udc.c
1142
usb_gadget_udc_reset(&m66592->gadget, m66592->driver);
drivers/usb/gadget/udc/m66592-udc.c
1143
m66592_update_usb_speed(m66592);
drivers/usb/gadget/udc/m66592-udc.c
1145
if (m66592->old_dvsq == M66592_DS_CNFG && dvsq != M66592_DS_CNFG)
drivers/usb/gadget/udc/m66592-udc.c
1146
m66592_update_usb_speed(m66592);
drivers/usb/gadget/udc/m66592-udc.c
1148
&& m66592->gadget.speed == USB_SPEED_UNKNOWN)
drivers/usb/gadget/udc/m66592-udc.c
1149
m66592_update_usb_speed(m66592);
drivers/usb/gadget/udc/m66592-udc.c
1151
m66592->old_dvsq = dvsq;
drivers/usb/gadget/udc/m66592-udc.c
1154
static void irq_control_stage(struct m66592 *m66592)
drivers/usb/gadget/udc/m66592-udc.c
1155
__releases(m66592->lock)
drivers/usb/gadget/udc/m66592-udc.c
1156
__acquires(m66592->lock)
drivers/usb/gadget/udc/m66592-udc.c
1161
ctsq = m66592_read(m66592, M66592_INTSTS0) & M66592_CTSQ;
drivers/usb/gadget/udc/m66592-udc.c
1162
m66592_write(m66592, ~M66592_CTRT, M66592_INTSTS0);
drivers/usb/gadget/udc/m66592-udc.c
1168
ep = &m66592->ep[0];
drivers/usb/gadget/udc/m66592-udc.c
1177
if (setup_packet(m66592, &ctrl)) {
drivers/usb/gadget/udc/m66592-udc.c
1178
spin_unlock(&m66592->lock);
drivers/usb/gadget/udc/m66592-udc.c
1179
if (m66592->driver->setup(&m66592->gadget, &ctrl) < 0)
drivers/usb/gadget/udc/m66592-udc.c
118
static inline void control_reg_set_pid(struct m66592 *m66592, u16 pipenum,
drivers/usb/gadget/udc/m66592-udc.c
1180
pipe_stall(m66592, 0);
drivers/usb/gadget/udc/m66592-udc.c
1181
spin_lock(&m66592->lock);
drivers/usb/gadget/udc/m66592-udc.c
1186
control_end(m66592, 0);
drivers/usb/gadget/udc/m66592-udc.c
1196
struct m66592 *m66592 = _m66592;
drivers/usb/gadget/udc/m66592-udc.c
1202
spin_lock(&m66592->lock);
drivers/usb/gadget/udc/m66592-udc.c
1204
intsts0 = m66592_read(m66592, M66592_INTSTS0);
drivers/usb/gadget/udc/m66592-udc.c
1205
intenb0 = m66592_read(m66592, M66592_INTENB0);
drivers/usb/gadget/udc/m66592-udc.c
1207
if (m66592->pdata->on_chip && !intsts0 && !intenb0) {
drivers/usb/gadget/udc/m66592-udc.c
1213
m66592_start_xclock(m66592);
drivers/usb/gadget/udc/m66592-udc.c
1214
intsts0 = m66592_read(m66592, M66592_INTSTS0);
drivers/usb/gadget/udc/m66592-udc.c
1215
intenb0 = m66592_read(m66592, M66592_INTENB0);
drivers/usb/gadget/udc/m66592-udc.c
1218
savepipe = m66592_read(m66592, M66592_CFIFOSEL);
drivers/usb/gadget/udc/m66592-udc.c
1222
u16 brdysts = m66592_read(m66592, M66592_BRDYSTS);
drivers/usb/gadget/udc/m66592-udc.c
1223
u16 bempsts = m66592_read(m66592, M66592_BEMPSTS);
drivers/usb/gadget/udc/m66592-udc.c
1224
u16 brdyenb = m66592_read(m66592, M66592_BRDYENB);
drivers/usb/gadget/udc/m66592-udc.c
1225
u16 bempenb = m66592_read(m66592, M66592_BEMPENB);
drivers/usb/gadget/udc/m66592-udc.c
1228
m66592_write(m66592, 0xffff & ~M66592_VBINT,
drivers/usb/gadget/udc/m66592-udc.c
1230
m66592_start_xclock(m66592);
drivers/usb/gadget/udc/m66592-udc.c
1233
m66592->old_vbus = m66592_read(m66592, M66592_INTSTS0)
drivers/usb/gadget/udc/m66592-udc.c
1235
m66592->scount = M66592_MAX_SAMPLING;
drivers/usb/gadget/udc/m66592-udc.c
1237
mod_timer(&m66592->timer,
drivers/usb/gadget/udc/m66592-udc.c
124
m66592_mdfy(m66592, pid, M66592_PID, M66592_DCPCTR);
drivers/usb/gadget/udc/m66592-udc.c
1241
irq_device_state(m66592);
drivers/usb/gadget/udc/m66592-udc.c
1245
irq_pipe_ready(m66592, brdysts, brdyenb);
drivers/usb/gadget/udc/m66592-udc.c
1249
irq_pipe_empty(m66592, bempsts, bempenb);
drivers/usb/gadget/udc/m66592-udc.c
1253
irq_control_stage(m66592);
drivers/usb/gadget/udc/m66592-udc.c
1256
m66592_write(m66592, savepipe, M66592_CFIFOSEL);
drivers/usb/gadget/udc/m66592-udc.c
1258
spin_unlock(&m66592->lock);
drivers/usb/gadget/udc/m66592-udc.c
1264
struct m66592 *m66592 = timer_container_of(m66592, t, timer);
drivers/usb/gadget/udc/m66592-udc.c
1268
spin_lock_irqsave(&m66592->lock, flags);
drivers/usb/gadget/udc/m66592-udc.c
1269
tmp = m66592_read(m66592, M66592_SYSCFG);
drivers/usb/gadget/udc/m66592-udc.c
127
m66592_mdfy(m66592, pid, M66592_PID, offset);
drivers/usb/gadget/udc/m66592-udc.c
1271
m66592_bset(m66592, M66592_RCKE | M66592_PLLC, M66592_SYSCFG);
drivers/usb/gadget/udc/m66592-udc.c
1273
m66592_bset(m66592, M66592_SCKE, M66592_SYSCFG);
drivers/usb/gadget/udc/m66592-udc.c
1275
if (m66592->scount > 0) {
drivers/usb/gadget/udc/m66592-udc.c
1276
tmp = m66592_read(m66592, M66592_INTSTS0) & M66592_VBSTS;
drivers/usb/gadget/udc/m66592-udc.c
1277
if (tmp == m66592->old_vbus) {
drivers/usb/gadget/udc/m66592-udc.c
1278
m66592->scount--;
drivers/usb/gadget/udc/m66592-udc.c
1279
if (m66592->scount == 0) {
drivers/usb/gadget/udc/m66592-udc.c
1281
m66592_usb_connect(m66592);
drivers/usb/gadget/udc/m66592-udc.c
1283
m66592_usb_disconnect(m66592);
drivers/usb/gadget/udc/m66592-udc.c
1285
mod_timer(&m66592->timer,
drivers/usb/gadget/udc/m66592-udc.c
1289
m66592->scount = M66592_MAX_SAMPLING;
drivers/usb/gadget/udc/m66592-udc.c
1290
m66592->old_vbus = tmp;
drivers/usb/gadget/udc/m66592-udc.c
1291
mod_timer(&m66592->timer,
drivers/usb/gadget/udc/m66592-udc.c
1295
spin_unlock_irqrestore(&m66592->lock, flags);
drivers/usb/gadget/udc/m66592-udc.c
1319
spin_lock_irqsave(&ep->m66592->lock, flags);
drivers/usb/gadget/udc/m66592-udc.c
132
static inline void pipe_start(struct m66592 *m66592, u16 pipenum)
drivers/usb/gadget/udc/m66592-udc.c
1321
spin_unlock_irqrestore(&ep->m66592->lock, flags);
drivers/usb/gadget/udc/m66592-udc.c
1324
pipe_irq_disable(ep->m66592, ep->pipenum);
drivers/usb/gadget/udc/m66592-udc.c
134
control_reg_set_pid(m66592, pipenum, M66592_PID_BUF);
drivers/usb/gadget/udc/m66592-udc.c
1361
if (ep->m66592->gadget.speed == USB_SPEED_UNKNOWN)
drivers/usb/gadget/udc/m66592-udc.c
1364
spin_lock_irqsave(&ep->m66592->lock, flags);
drivers/usb/gadget/udc/m66592-udc.c
137
static inline void pipe_stop(struct m66592 *m66592, u16 pipenum)
drivers/usb/gadget/udc/m66592-udc.c
1380
spin_unlock_irqrestore(&ep->m66592->lock, flags);
drivers/usb/gadget/udc/m66592-udc.c
139
control_reg_set_pid(m66592, pipenum, M66592_PID_NAK);
drivers/usb/gadget/udc/m66592-udc.c
1394
spin_lock_irqsave(&ep->m66592->lock, flags);
drivers/usb/gadget/udc/m66592-udc.c
1397
spin_unlock_irqrestore(&ep->m66592->lock, flags);
drivers/usb/gadget/udc/m66592-udc.c
1408
spin_lock_irqsave(&ep->m66592->lock, flags);
drivers/usb/gadget/udc/m66592-udc.c
1413
pipe_stall(ep->m66592, ep->pipenum);
drivers/usb/gadget/udc/m66592-udc.c
1416
pipe_stop(ep->m66592, ep->pipenum);
drivers/usb/gadget/udc/m66592-udc.c
1418
spin_unlock_irqrestore(&ep->m66592->lock, flags);
drivers/usb/gadget/udc/m66592-udc.c
142
static inline void pipe_stall(struct m66592 *m66592, u16 pipenum)
drivers/usb/gadget/udc/m66592-udc.c
1428
spin_lock_irqsave(&ep->m66592->lock, flags);
drivers/usb/gadget/udc/m66592-udc.c
1430
pipe_stop(ep->m66592, ep->pipenum);
drivers/usb/gadget/udc/m66592-udc.c
1431
m66592_bclr(ep->m66592, M66592_BCLR, ep->fifoctr);
drivers/usb/gadget/udc/m66592-udc.c
1433
spin_unlock_irqrestore(&ep->m66592->lock, flags);
drivers/usb/gadget/udc/m66592-udc.c
144
control_reg_set_pid(m66592, pipenum, M66592_PID_STALL);
drivers/usb/gadget/udc/m66592-udc.c
1454
struct m66592 *m66592 = to_m66592(g);
drivers/usb/gadget/udc/m66592-udc.c
1457
m66592->driver = driver;
drivers/usb/gadget/udc/m66592-udc.c
1459
m66592_bset(m66592, M66592_VBSE | M66592_URST, M66592_INTENB0);
drivers/usb/gadget/udc/m66592-udc.c
1460
if (m66592_read(m66592, M66592_INTSTS0) & M66592_VBSTS) {
drivers/usb/gadget/udc/m66592-udc.c
1461
m66592_start_xclock(m66592);
drivers/usb/gadget/udc/m66592-udc.c
1463
m66592->old_vbus = m66592_read(m66592,
drivers/usb/gadget/udc/m66592-udc.c
1465
m66592->scount = M66592_MAX_SAMPLING;
drivers/usb/gadget/udc/m66592-udc.c
1466
mod_timer(&m66592->timer, jiffies + msecs_to_jiffies(50));
drivers/usb/gadget/udc/m66592-udc.c
147
static inline u16 control_reg_get(struct m66592 *m66592, u16 pipenum)
drivers/usb/gadget/udc/m66592-udc.c
1474
struct m66592 *m66592 = to_m66592(g);
drivers/usb/gadget/udc/m66592-udc.c
1476
m66592_bclr(m66592, M66592_VBSE | M66592_URST, M66592_INTENB0);
drivers/usb/gadget/udc/m66592-udc.c
1478
init_controller(m66592);
drivers/usb/gadget/udc/m66592-udc.c
1479
disable_controller(m66592);
drivers/usb/gadget/udc/m66592-udc.c
1481
m66592->driver = NULL;
drivers/usb/gadget/udc/m66592-udc.c
1489
struct m66592 *m66592 = gadget_to_m66592(_gadget);
drivers/usb/gadget/udc/m66592-udc.c
1490
return m66592_read(m66592, M66592_FRMNUM) & 0x03FF;
drivers/usb/gadget/udc/m66592-udc.c
1495
struct m66592 *m66592 = gadget_to_m66592(gadget);
drivers/usb/gadget/udc/m66592-udc.c
1498
spin_lock_irqsave(&m66592->lock, flags);
drivers/usb/gadget/udc/m66592-udc.c
1500
m66592_bset(m66592, M66592_DPRPU, M66592_SYSCFG);
drivers/usb/gadget/udc/m66592-udc.c
1502
m66592_bclr(m66592, M66592_DPRPU, M66592_SYSCFG);
drivers/usb/gadget/udc/m66592-udc.c
1503
spin_unlock_irqrestore(&m66592->lock, flags);
drivers/usb/gadget/udc/m66592-udc.c
1517
struct m66592 *m66592 = platform_get_drvdata(pdev);
drivers/usb/gadget/udc/m66592-udc.c
1519
usb_del_gadget_udc(&m66592->gadget);
drivers/usb/gadget/udc/m66592-udc.c
1521
timer_shutdown_sync(&m66592->timer);
drivers/usb/gadget/udc/m66592-udc.c
1522
iounmap(m66592->reg);
drivers/usb/gadget/udc/m66592-udc.c
1523
free_irq(platform_get_irq(pdev, 0), m66592);
drivers/usb/gadget/udc/m66592-udc.c
1524
m66592_free_request(&m66592->ep[0].ep, m66592->ep0_req);
drivers/usb/gadget/udc/m66592-udc.c
1525
if (m66592->pdata->on_chip) {
drivers/usb/gadget/udc/m66592-udc.c
1526
clk_disable(m66592->clk);
drivers/usb/gadget/udc/m66592-udc.c
1527
clk_put(m66592->clk);
drivers/usb/gadget/udc/m66592-udc.c
1529
kfree(m66592);
drivers/usb/gadget/udc/m66592-udc.c
153
ret = m66592_read(m66592, M66592_DCPCTR);
drivers/usb/gadget/udc/m66592-udc.c
1540
struct m66592 *m66592 = NULL;
drivers/usb/gadget/udc/m66592-udc.c
156
ret = m66592_read(m66592, offset);
drivers/usb/gadget/udc/m66592-udc.c
1574
m66592 = kzalloc_obj(struct m66592);
drivers/usb/gadget/udc/m66592-udc.c
1575
if (m66592 == NULL) {
drivers/usb/gadget/udc/m66592-udc.c
1580
m66592->pdata = dev_get_platdata(&pdev->dev);
drivers/usb/gadget/udc/m66592-udc.c
1581
m66592->irq_trigger = ires->flags & IRQF_TRIGGER_MASK;
drivers/usb/gadget/udc/m66592-udc.c
1583
spin_lock_init(&m66592->lock);
drivers/usb/gadget/udc/m66592-udc.c
1584
platform_set_drvdata(pdev, m66592);
drivers/usb/gadget/udc/m66592-udc.c
1586
m66592->gadget.ops = &m66592_gadget_ops;
drivers/usb/gadget/udc/m66592-udc.c
1587
m66592->gadget.max_speed = USB_SPEED_HIGH;
drivers/usb/gadget/udc/m66592-udc.c
1588
m66592->gadget.name = udc_name;
drivers/usb/gadget/udc/m66592-udc.c
1590
timer_setup(&m66592->timer, m66592_timer, 0);
drivers/usb/gadget/udc/m66592-udc.c
1591
m66592->reg = reg;
drivers/usb/gadget/udc/m66592-udc.c
1594
udc_name, m66592);
drivers/usb/gadget/udc/m66592-udc.c
1600
if (m66592->pdata->on_chip) {
drivers/usb/gadget/udc/m66592-udc.c
1602
m66592->clk = clk_get(&pdev->dev, clk_name);
drivers/usb/gadget/udc/m66592-udc.c
1603
if (IS_ERR(m66592->clk)) {
drivers/usb/gadget/udc/m66592-udc.c
1606
ret = PTR_ERR(m66592->clk);
drivers/usb/gadget/udc/m66592-udc.c
1609
clk_enable(m66592->clk);
drivers/usb/gadget/udc/m66592-udc.c
1612
INIT_LIST_HEAD(&m66592->gadget.ep_list);
drivers/usb/gadget/udc/m66592-udc.c
1613
m66592->gadget.ep0 = &m66592->ep[0].ep;
drivers/usb/gadget/udc/m66592-udc.c
1614
INIT_LIST_HEAD(&m66592->gadget.ep0->ep_list);
drivers/usb/gadget/udc/m66592-udc.c
1616
struct m66592_ep *ep = &m66592->ep[i];
drivers/usb/gadget/udc/m66592-udc.c
1619
INIT_LIST_HEAD(&m66592->ep[i].ep.ep_list);
drivers/usb/gadget/udc/m66592-udc.c
1620
list_add_tail(&m66592->ep[i].ep.ep_list,
drivers/usb/gadget/udc/m66592-udc.c
1621
&m66592->gadget.ep_list);
drivers/usb/gadget/udc/m66592-udc.c
1623
ep->m66592 = m66592;
drivers/usb/gadget/udc/m66592-udc.c
163
static inline void control_reg_sqclr(struct m66592 *m66592, u16 pipenum)
drivers/usb/gadget/udc/m66592-udc.c
1640
usb_ep_set_maxpacket_limit(&m66592->ep[0].ep, 64);
drivers/usb/gadget/udc/m66592-udc.c
1641
m66592->ep[0].pipenum = 0;
drivers/usb/gadget/udc/m66592-udc.c
1642
m66592->ep[0].fifoaddr = M66592_CFIFO;
drivers/usb/gadget/udc/m66592-udc.c
1643
m66592->ep[0].fifosel = M66592_CFIFOSEL;
drivers/usb/gadget/udc/m66592-udc.c
1644
m66592->ep[0].fifoctr = M66592_CFIFOCTR;
drivers/usb/gadget/udc/m66592-udc.c
1645
m66592->ep[0].fifotrn = 0;
drivers/usb/gadget/udc/m66592-udc.c
1646
m66592->ep[0].pipectr = get_pipectr_addr(0);
drivers/usb/gadget/udc/m66592-udc.c
1647
m66592->pipenum2ep[0] = &m66592->ep[0];
drivers/usb/gadget/udc/m66592-udc.c
1648
m66592->epaddr2ep[0] = &m66592->ep[0];
drivers/usb/gadget/udc/m66592-udc.c
1650
m66592->ep0_req = m66592_alloc_request(&m66592->ep[0].ep, GFP_KERNEL);
drivers/usb/gadget/udc/m66592-udc.c
1651
if (m66592->ep0_req == NULL) {
drivers/usb/gadget/udc/m66592-udc.c
1655
m66592->ep0_req->complete = nop_completion;
drivers/usb/gadget/udc/m66592-udc.c
1657
init_controller(m66592);
drivers/usb/gadget/udc/m66592-udc.c
1659
ret = usb_add_gadget_udc(&pdev->dev, &m66592->gadget);
drivers/usb/gadget/udc/m66592-udc.c
1667
m66592_free_request(&m66592->ep[0].ep, m66592->ep0_req);
drivers/usb/gadget/udc/m66592-udc.c
1668
m66592->ep0_req = NULL;
drivers/usb/gadget/udc/m66592-udc.c
167
pipe_stop(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
1670
if (m66592->pdata->on_chip) {
drivers/usb/gadget/udc/m66592-udc.c
1671
clk_disable(m66592->clk);
drivers/usb/gadget/udc/m66592-udc.c
1672
clk_put(m66592->clk);
drivers/usb/gadget/udc/m66592-udc.c
1675
free_irq(ires->start, m66592);
drivers/usb/gadget/udc/m66592-udc.c
1677
if (m66592) {
drivers/usb/gadget/udc/m66592-udc.c
1678
if (m66592->ep0_req)
drivers/usb/gadget/udc/m66592-udc.c
1679
m66592_free_request(&m66592->ep[0].ep, m66592->ep0_req);
drivers/usb/gadget/udc/m66592-udc.c
1680
kfree(m66592);
drivers/usb/gadget/udc/m66592-udc.c
170
m66592_bset(m66592, M66592_SQCLR, M66592_DCPCTR);
drivers/usb/gadget/udc/m66592-udc.c
173
m66592_bset(m66592, M66592_SQCLR, offset);
drivers/usb/gadget/udc/m66592-udc.c
178
static inline int get_buffer_size(struct m66592 *m66592, u16 pipenum)
drivers/usb/gadget/udc/m66592-udc.c
184
tmp = m66592_read(m66592, M66592_DCPCFG);
drivers/usb/gadget/udc/m66592-udc.c
188
tmp = m66592_read(m66592, M66592_DCPMAXP);
drivers/usb/gadget/udc/m66592-udc.c
192
m66592_write(m66592, pipenum, M66592_PIPESEL);
drivers/usb/gadget/udc/m66592-udc.c
193
tmp = m66592_read(m66592, M66592_PIPECFG);
drivers/usb/gadget/udc/m66592-udc.c
195
tmp = m66592_read(m66592, M66592_PIPEBUF);
drivers/usb/gadget/udc/m66592-udc.c
198
tmp = m66592_read(m66592, M66592_PIPEMAXP);
drivers/usb/gadget/udc/m66592-udc.c
206
static inline void pipe_change(struct m66592 *m66592, u16 pipenum)
drivers/usb/gadget/udc/m66592-udc.c
208
struct m66592_ep *ep = m66592->pipenum2ep[pipenum];
drivers/usb/gadget/udc/m66592-udc.c
214
m66592_mdfy(m66592, pipenum, M66592_CURPIPE, ep->fifosel);
drivers/usb/gadget/udc/m66592-udc.c
218
if (m66592->pdata->on_chip)
drivers/usb/gadget/udc/m66592-udc.c
223
m66592_bset(m66592, mbw, ep->fifosel);
drivers/usb/gadget/udc/m66592-udc.c
226
static int pipe_buffer_setting(struct m66592 *m66592,
drivers/usb/gadget/udc/m66592-udc.c
235
m66592_write(m66592, info->pipe, M66592_PIPESEL);
drivers/usb/gadget/udc/m66592-udc.c
271
m66592_write(m66592, pipecfg, M66592_PIPECFG);
drivers/usb/gadget/udc/m66592-udc.c
272
m66592_write(m66592, (buf_bsize << 10) | (bufnum), M66592_PIPEBUF);
drivers/usb/gadget/udc/m66592-udc.c
273
m66592_write(m66592, info->maxpacket, M66592_PIPEMAXP);
drivers/usb/gadget/udc/m66592-udc.c
276
m66592_write(m66592, info->interval, M66592_PIPEPERI);
drivers/usb/gadget/udc/m66592-udc.c
281
static void pipe_buffer_release(struct m66592 *m66592,
drivers/usb/gadget/udc/m66592-udc.c
288
m66592->bulk--;
drivers/usb/gadget/udc/m66592-udc.c
290
m66592->interrupt--;
drivers/usb/gadget/udc/m66592-udc.c
292
m66592->isochronous--;
drivers/usb/gadget/udc/m66592-udc.c
294
m66592->bulk--;
drivers/usb/gadget/udc/m66592-udc.c
302
struct m66592 *m66592 = ep->m66592;
drivers/usb/gadget/udc/m66592-udc.c
305
m66592_mdfy(m66592, 0, M66592_CURPIPE, ep->fifosel);
drivers/usb/gadget/udc/m66592-udc.c
307
m66592_write(m66592, M66592_ACLRM, ep->pipectr);
drivers/usb/gadget/udc/m66592-udc.c
308
m66592_write(m66592, 0, ep->pipectr);
drivers/usb/gadget/udc/m66592-udc.c
309
m66592_write(m66592, M66592_SQCLR, ep->pipectr);
drivers/usb/gadget/udc/m66592-udc.c
311
m66592_mdfy(m66592, ep->pipenum, M66592_CURPIPE, ep->fifosel);
drivers/usb/gadget/udc/m66592-udc.c
315
if (m66592->pdata->on_chip)
drivers/usb/gadget/udc/m66592-udc.c
320
m66592_bset(m66592, mbw, ep->fifosel);
drivers/usb/gadget/udc/m66592-udc.c
324
static void m66592_ep_setting(struct m66592 *m66592, struct m66592_ep *ep,
drivers/usb/gadget/udc/m66592-udc.c
329
if (m66592->num_dma == 0) {
drivers/usb/gadget/udc/m66592-udc.c
330
m66592->num_dma++;
drivers/usb/gadget/udc/m66592-udc.c
336
} else if (!m66592->pdata->on_chip && m66592->num_dma == 1) {
drivers/usb/gadget/udc/m66592-udc.c
337
m66592->num_dma++;
drivers/usb/gadget/udc/m66592-udc.c
34
static void disable_controller(struct m66592 *m66592);
drivers/usb/gadget/udc/m66592-udc.c
361
m66592->pipenum2ep[pipenum] = ep;
drivers/usb/gadget/udc/m66592-udc.c
362
m66592->epaddr2ep[usb_endpoint_num(desc)] = ep;
drivers/usb/gadget/udc/m66592-udc.c
368
struct m66592 *m66592 = ep->m66592;
drivers/usb/gadget/udc/m66592-udc.c
375
m66592->num_dma--;
drivers/usb/gadget/udc/m66592-udc.c
384
struct m66592 *m66592 = ep->m66592;
drivers/usb/gadget/udc/m66592-udc.c
396
if (m66592->bulk >= M66592_MAX_NUM_BULK) {
drivers/usb/gadget/udc/m66592-udc.c
397
if (m66592->isochronous >= M66592_MAX_NUM_ISOC) {
drivers/usb/gadget/udc/m66592-udc.c
402
+ m66592->isochronous;
drivers/usb/gadget/udc/m66592-udc.c
403
counter = &m66592->isochronous;
drivers/usb/gadget/udc/m66592-udc.c
406
info.pipe = M66592_BASE_PIPENUM_BULK + m66592->bulk;
drivers/usb/gadget/udc/m66592-udc.c
407
counter = &m66592->bulk;
drivers/usb/gadget/udc/m66592-udc.c
413
if (m66592->interrupt >= M66592_MAX_NUM_INT) {
drivers/usb/gadget/udc/m66592-udc.c
417
info.pipe = M66592_BASE_PIPENUM_INT + m66592->interrupt;
drivers/usb/gadget/udc/m66592-udc.c
419
counter = &m66592->interrupt;
drivers/usb/gadget/udc/m66592-udc.c
422
if (m66592->isochronous >= M66592_MAX_NUM_ISOC) {
drivers/usb/gadget/udc/m66592-udc.c
426
info.pipe = M66592_BASE_PIPENUM_ISOC + m66592->isochronous;
drivers/usb/gadget/udc/m66592-udc.c
428
counter = &m66592->isochronous;
drivers/usb/gadget/udc/m66592-udc.c
44
static inline u16 get_usb_speed(struct m66592 *m66592)
drivers/usb/gadget/udc/m66592-udc.c
444
ret = pipe_buffer_setting(m66592, &info);
drivers/usb/gadget/udc/m66592-udc.c
451
if ((counter == &m66592->isochronous) && info.type == M66592_BULK)
drivers/usb/gadget/udc/m66592-udc.c
452
m66592->bulk++;
drivers/usb/gadget/udc/m66592-udc.c
454
m66592_ep_setting(m66592, ep, desc, info.pipe, dma);
drivers/usb/gadget/udc/m66592-udc.c
46
return (m66592_read(m66592, M66592_DVSTCTR) & M66592_RHST);
drivers/usb/gadget/udc/m66592-udc.c
462
struct m66592 *m66592 = ep->m66592;
drivers/usb/gadget/udc/m66592-udc.c
467
pipe_buffer_release(m66592, &info);
drivers/usb/gadget/udc/m66592-udc.c
474
static void pipe_irq_enable(struct m66592 *m66592, u16 pipenum)
drivers/usb/gadget/udc/m66592-udc.c
476
enable_irq_ready(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
477
enable_irq_nrdy(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
480
static void pipe_irq_disable(struct m66592 *m66592, u16 pipenum)
drivers/usb/gadget/udc/m66592-udc.c
482
disable_irq_ready(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
483
disable_irq_nrdy(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
487
static void control_end(struct m66592 *m66592, unsigned ccpl)
drivers/usb/gadget/udc/m66592-udc.c
489
m66592->ep[0].internal_ccpl = ccpl;
drivers/usb/gadget/udc/m66592-udc.c
49
static void enable_pipe_irq(struct m66592 *m66592, u16 pipenum,
drivers/usb/gadget/udc/m66592-udc.c
490
pipe_start(m66592, 0);
drivers/usb/gadget/udc/m66592-udc.c
491
m66592_bset(m66592, M66592_CCPL, M66592_DCPCTR);
drivers/usb/gadget/udc/m66592-udc.c
496
struct m66592 *m66592 = ep->m66592;
drivers/usb/gadget/udc/m66592-udc.c
498
pipe_change(m66592, ep->pipenum);
drivers/usb/gadget/udc/m66592-udc.c
499
m66592_mdfy(m66592, M66592_ISEL | M66592_PIPE0,
drivers/usb/gadget/udc/m66592-udc.c
502
m66592_write(m66592, M66592_BCLR, ep->fifoctr);
drivers/usb/gadget/udc/m66592-udc.c
504
m66592_bset(m66592, M66592_BVAL, ep->fifoctr);
drivers/usb/gadget/udc/m66592-udc.c
505
pipe_start(m66592, 0);
drivers/usb/gadget/udc/m66592-udc.c
508
m66592_write(m66592, ~M66592_BEMP0, M66592_BEMPSTS);
drivers/usb/gadget/udc/m66592-udc.c
515
struct m66592 *m66592 = ep->m66592;
drivers/usb/gadget/udc/m66592-udc.c
518
pipe_change(m66592, ep->pipenum);
drivers/usb/gadget/udc/m66592-udc.c
519
disable_irq_empty(m66592, ep->pipenum);
drivers/usb/gadget/udc/m66592-udc.c
520
pipe_start(m66592, ep->pipenum);
drivers/usb/gadget/udc/m66592-udc.c
522
tmp = m66592_read(m66592, ep->fifoctr);
drivers/usb/gadget/udc/m66592-udc.c
524
pipe_irq_enable(m66592, ep->pipenum);
drivers/usb/gadget/udc/m66592-udc.c
531
struct m66592 *m66592 = ep->m66592;
drivers/usb/gadget/udc/m66592-udc.c
535
m66592_mdfy(m66592, M66592_PIPE0,
drivers/usb/gadget/udc/m66592-udc.c
538
m66592_write(m66592, M66592_BCLR, ep->fifoctr);
drivers/usb/gadget/udc/m66592-udc.c
539
pipe_start(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
54
tmp = m66592_read(m66592, M66592_INTENB0);
drivers/usb/gadget/udc/m66592-udc.c
540
pipe_irq_enable(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
543
m66592_bset(m66592, M66592_TRCLR, ep->fifosel);
drivers/usb/gadget/udc/m66592-udc.c
544
pipe_change(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
545
m66592_bset(m66592, M66592_TRENB, ep->fifosel);
drivers/usb/gadget/udc/m66592-udc.c
546
m66592_write(m66592,
drivers/usb/gadget/udc/m66592-udc.c
55
m66592_bclr(m66592, M66592_BEMPE | M66592_NRDYE | M66592_BRDYE,
drivers/usb/gadget/udc/m66592-udc.c
551
pipe_start(m66592, pipenum); /* trigger once */
drivers/usb/gadget/udc/m66592-udc.c
552
pipe_irq_enable(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
568
ctsq = m66592_read(ep->m66592, M66592_INTSTS0) & M66592_CTSQ;
drivers/usb/gadget/udc/m66592-udc.c
57
m66592_bset(m66592, (1 << pipenum), reg);
drivers/usb/gadget/udc/m66592-udc.c
579
control_end(ep->m66592, 0);
drivers/usb/gadget/udc/m66592-udc.c
58
m66592_write(m66592, tmp, M66592_INTENB0);
drivers/usb/gadget/udc/m66592-udc.c
587
static void init_controller(struct m66592 *m66592)
drivers/usb/gadget/udc/m66592-udc.c
591
if (m66592->pdata->on_chip) {
drivers/usb/gadget/udc/m66592-udc.c
592
if (m66592->pdata->endian)
drivers/usb/gadget/udc/m66592-udc.c
597
m66592_bset(m66592, M66592_HSE, M66592_SYSCFG); /* High spd */
drivers/usb/gadget/udc/m66592-udc.c
598
m66592_bclr(m66592, M66592_USBE, M66592_SYSCFG);
drivers/usb/gadget/udc/m66592-udc.c
599
m66592_bclr(m66592, M66592_DPRPU, M66592_SYSCFG);
drivers/usb/gadget/udc/m66592-udc.c
600
m66592_bset(m66592, M66592_USBE, M66592_SYSCFG);
drivers/usb/gadget/udc/m66592-udc.c
603
m66592_bset(m66592, 0x8000, M66592_DVSTCTR);
drivers/usb/gadget/udc/m66592-udc.c
604
m66592_bset(m66592, 0x1000, M66592_TESTMODE);
drivers/usb/gadget/udc/m66592-udc.c
605
m66592_bclr(m66592, 0x8000, M66592_DVSTCTR);
drivers/usb/gadget/udc/m66592-udc.c
607
m66592_bset(m66592, M66592_INTL, M66592_INTENB1);
drivers/usb/gadget/udc/m66592-udc.c
609
m66592_write(m66592, 0, M66592_CFBCFG);
drivers/usb/gadget/udc/m66592-udc.c
61
static void disable_pipe_irq(struct m66592 *m66592, u16 pipenum,
drivers/usb/gadget/udc/m66592-udc.c
610
m66592_write(m66592, 0, M66592_D0FBCFG);
drivers/usb/gadget/udc/m66592-udc.c
611
m66592_bset(m66592, endian, M66592_CFBCFG);
drivers/usb/gadget/udc/m66592-udc.c
612
m66592_bset(m66592, endian, M66592_D0FBCFG);
drivers/usb/gadget/udc/m66592-udc.c
616
if (m66592->pdata->endian)
drivers/usb/gadget/udc/m66592-udc.c
621
if (m66592->pdata->vif)
drivers/usb/gadget/udc/m66592-udc.c
626
switch (m66592->pdata->xtal) {
drivers/usb/gadget/udc/m66592-udc.c
641
switch (m66592->irq_trigger) {
drivers/usb/gadget/udc/m66592-udc.c
653
m66592_bset(m66592,
drivers/usb/gadget/udc/m66592-udc.c
656
m66592_bset(m66592, M66592_HSE, M66592_SYSCFG); /* High spd */
drivers/usb/gadget/udc/m66592-udc.c
657
m66592_mdfy(m66592, clock & M66592_XTAL, M66592_XTAL,
drivers/usb/gadget/udc/m66592-udc.c
659
m66592_bclr(m66592, M66592_USBE, M66592_SYSCFG);
drivers/usb/gadget/udc/m66592-udc.c
66
tmp = m66592_read(m66592, M66592_INTENB0);
drivers/usb/gadget/udc/m66592-udc.c
660
m66592_bclr(m66592, M66592_DPRPU, M66592_SYSCFG);
drivers/usb/gadget/udc/m66592-udc.c
661
m66592_bset(m66592, M66592_USBE, M66592_SYSCFG);
drivers/usb/gadget/udc/m66592-udc.c
663
m66592_bset(m66592, M66592_XCKE, M66592_SYSCFG);
drivers/usb/gadget/udc/m66592-udc.c
667
m66592_bset(m66592, M66592_RCKE | M66592_PLLC, M66592_SYSCFG);
drivers/usb/gadget/udc/m66592-udc.c
67
m66592_bclr(m66592, M66592_BEMPE | M66592_NRDYE | M66592_BRDYE,
drivers/usb/gadget/udc/m66592-udc.c
671
m66592_bset(m66592, M66592_SCKE, M66592_SYSCFG);
drivers/usb/gadget/udc/m66592-udc.c
673
m66592_bset(m66592, irq_sense & M66592_INTL, M66592_INTENB1);
drivers/usb/gadget/udc/m66592-udc.c
674
m66592_write(m66592, M66592_BURST | M66592_CPU_ADR_RD_WR,
drivers/usb/gadget/udc/m66592-udc.c
679
static void disable_controller(struct m66592 *m66592)
drivers/usb/gadget/udc/m66592-udc.c
681
m66592_bclr(m66592, M66592_UTST, M66592_TESTMODE);
drivers/usb/gadget/udc/m66592-udc.c
682
if (!m66592->pdata->on_chip) {
drivers/usb/gadget/udc/m66592-udc.c
683
m66592_bclr(m66592, M66592_SCKE, M66592_SYSCFG);
drivers/usb/gadget/udc/m66592-udc.c
685
m66592_bclr(m66592, M66592_PLLC, M66592_SYSCFG);
drivers/usb/gadget/udc/m66592-udc.c
687
m66592_bclr(m66592, M66592_RCKE, M66592_SYSCFG);
drivers/usb/gadget/udc/m66592-udc.c
689
m66592_bclr(m66592, M66592_XCKE, M66592_SYSCFG);
drivers/usb/gadget/udc/m66592-udc.c
69
m66592_bclr(m66592, (1 << pipenum), reg);
drivers/usb/gadget/udc/m66592-udc.c
693
static void m66592_start_xclock(struct m66592 *m66592)
drivers/usb/gadget/udc/m66592-udc.c
697
if (!m66592->pdata->on_chip) {
drivers/usb/gadget/udc/m66592-udc.c
698
tmp = m66592_read(m66592, M66592_SYSCFG);
drivers/usb/gadget/udc/m66592-udc.c
70
m66592_write(m66592, tmp, M66592_INTENB0);
drivers/usb/gadget/udc/m66592-udc.c
700
m66592_bset(m66592, M66592_XCKE, M66592_SYSCFG);
drivers/usb/gadget/udc/m66592-udc.c
707
__releases(m66592->lock)
drivers/usb/gadget/udc/m66592-udc.c
708
__acquires(m66592->lock)
drivers/usb/gadget/udc/m66592-udc.c
720
if (ep->m66592->gadget.speed == USB_SPEED_UNKNOWN)
drivers/usb/gadget/udc/m66592-udc.c
728
spin_unlock(&ep->m66592->lock);
drivers/usb/gadget/udc/m66592-udc.c
73
static void m66592_usb_connect(struct m66592 *m66592)
drivers/usb/gadget/udc/m66592-udc.c
730
spin_lock(&ep->m66592->lock);
drivers/usb/gadget/udc/m66592-udc.c
747
struct m66592 *m66592 = ep->m66592;
drivers/usb/gadget/udc/m66592-udc.c
749
pipe_change(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
75
m66592_bset(m66592, M66592_CTRE, M66592_INTENB0);
drivers/usb/gadget/udc/m66592-udc.c
750
m66592_bset(m66592, M66592_ISEL, ep->fifosel);
drivers/usb/gadget/udc/m66592-udc.c
754
tmp = m66592_read(m66592, ep->fifoctr);
drivers/usb/gadget/udc/m66592-udc.c
76
m66592_bset(m66592, M66592_WDST | M66592_RDST | M66592_CMPL,
drivers/usb/gadget/udc/m66592-udc.c
764
bufsize = get_buffer_size(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
771
m66592_write_fifo(m66592, ep, buf, size);
drivers/usb/gadget/udc/m66592-udc.c
773
m66592_bset(m66592, M66592_BVAL, ep->fifoctr);
drivers/usb/gadget/udc/m66592-udc.c
78
m66592_bset(m66592, M66592_BEMPE | M66592_BRDYE, M66592_INTENB0);
drivers/usb/gadget/udc/m66592-udc.c
783
disable_irq_ready(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
784
disable_irq_empty(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
786
disable_irq_ready(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
787
enable_irq_empty(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
789
pipe_start(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
799
struct m66592 *m66592 = ep->m66592;
drivers/usb/gadget/udc/m66592-udc.c
80
m66592_bset(m66592, M66592_DPRPU, M66592_SYSCFG);
drivers/usb/gadget/udc/m66592-udc.c
801
pipe_change(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
802
tmp = m66592_read(m66592, ep->fifoctr);
drivers/usb/gadget/udc/m66592-udc.c
804
pipe_stop(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
805
pipe_irq_disable(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
811
bufsize = get_buffer_size(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
817
m66592_write_fifo(m66592, ep, buf, size);
drivers/usb/gadget/udc/m66592-udc.c
822
m66592_bset(m66592, M66592_BVAL, ep->fifoctr);
drivers/usb/gadget/udc/m66592-udc.c
83
static void m66592_usb_disconnect(struct m66592 *m66592)
drivers/usb/gadget/udc/m66592-udc.c
831
disable_irq_ready(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
832
enable_irq_empty(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
834
disable_irq_empty(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
835
pipe_irq_enable(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
84
__releases(m66592->lock)
drivers/usb/gadget/udc/m66592-udc.c
846
struct m66592 *m66592 = ep->m66592;
drivers/usb/gadget/udc/m66592-udc.c
849
pipe_change(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
85
__acquires(m66592->lock)
drivers/usb/gadget/udc/m66592-udc.c
850
tmp = m66592_read(m66592, ep->fifoctr);
drivers/usb/gadget/udc/m66592-udc.c
853
pipe_stop(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
854
pipe_irq_disable(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
861
bufsize = get_buffer_size(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
87
m66592_bclr(m66592, M66592_CTRE, M66592_INTENB0);
drivers/usb/gadget/udc/m66592-udc.c
877
pipe_stop(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
878
pipe_irq_disable(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
88
m66592_bclr(m66592, M66592_WDST | M66592_RDST | M66592_CMPL,
drivers/usb/gadget/udc/m66592-udc.c
885
m66592_write(m66592, M66592_BCLR, ep->fifoctr);
drivers/usb/gadget/udc/m66592-udc.c
887
m66592_read_fifo(m66592, ep->fifoaddr, buf, size);
drivers/usb/gadget/udc/m66592-udc.c
894
static void irq_pipe_ready(struct m66592 *m66592, u16 status, u16 enb)
drivers/usb/gadget/udc/m66592-udc.c
90
m66592_bclr(m66592, M66592_BEMPE | M66592_BRDYE, M66592_INTENB0);
drivers/usb/gadget/udc/m66592-udc.c
902
m66592_write(m66592, ~M66592_BRDY0, M66592_BRDYSTS);
drivers/usb/gadget/udc/m66592-udc.c
903
m66592_mdfy(m66592, M66592_PIPE0, M66592_CURPIPE,
drivers/usb/gadget/udc/m66592-udc.c
906
ep = &m66592->ep[0];
drivers/usb/gadget/udc/m66592-udc.c
91
m66592_bclr(m66592, M66592_DPRPU, M66592_SYSCFG);
drivers/usb/gadget/udc/m66592-udc.c
913
m66592_write(m66592, ~check, M66592_BRDYSTS);
drivers/usb/gadget/udc/m66592-udc.c
914
ep = m66592->pipenum2ep[pipenum];
drivers/usb/gadget/udc/m66592-udc.c
926
static void irq_pipe_empty(struct m66592 *m66592, u16 status, u16 enb)
drivers/usb/gadget/udc/m66592-udc.c
93
m66592->gadget.speed = USB_SPEED_UNKNOWN;
drivers/usb/gadget/udc/m66592-udc.c
935
m66592_write(m66592, ~M66592_BEMP0, M66592_BEMPSTS);
drivers/usb/gadget/udc/m66592-udc.c
937
ep = &m66592->ep[0];
drivers/usb/gadget/udc/m66592-udc.c
94
spin_unlock(&m66592->lock);
drivers/usb/gadget/udc/m66592-udc.c
944
m66592_write(m66592, ~check, M66592_BEMPSTS);
drivers/usb/gadget/udc/m66592-udc.c
945
tmp = control_reg_get(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
947
disable_irq_empty(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
948
pipe_irq_disable(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
949
pipe_stop(m66592, pipenum);
drivers/usb/gadget/udc/m66592-udc.c
95
m66592->driver->disconnect(&m66592->gadget);
drivers/usb/gadget/udc/m66592-udc.c
950
ep = m66592->pipenum2ep[pipenum];
drivers/usb/gadget/udc/m66592-udc.c
96
spin_lock(&m66592->lock);
drivers/usb/gadget/udc/m66592-udc.c
962
static void get_status(struct m66592 *m66592, struct usb_ctrlrequest *ctrl)
drivers/usb/gadget/udc/m66592-udc.c
963
__releases(m66592->lock)
drivers/usb/gadget/udc/m66592-udc.c
964
__acquires(m66592->lock)
drivers/usb/gadget/udc/m66592-udc.c
979
ep = m66592->epaddr2ep[w_index & USB_ENDPOINT_NUMBER_MASK];
drivers/usb/gadget/udc/m66592-udc.c
98
disable_controller(m66592);
drivers/usb/gadget/udc/m66592-udc.c
980
pid = control_reg_get_pid(m66592, ep->pipenum);
drivers/usb/gadget/udc/m66592-udc.c
987
pipe_stall(m66592, 0);
drivers/usb/gadget/udc/m66592-udc.c
99
INIT_LIST_HEAD(&m66592->ep[0].queue);
drivers/usb/gadget/udc/m66592-udc.c
991
m66592->ep0_data = cpu_to_le16(status);
drivers/usb/gadget/udc/m66592-udc.c
992
m66592->ep0_req->buf = &m66592->ep0_data;
drivers/usb/gadget/udc/m66592-udc.c
993
m66592->ep0_req->length = 2;
drivers/usb/gadget/udc/m66592-udc.c
995
spin_unlock(&m66592->lock);
drivers/usb/gadget/udc/m66592-udc.c
996
m66592_queue(m66592->gadget.ep0, m66592->ep0_req, GFP_KERNEL);
drivers/usb/gadget/udc/m66592-udc.c
997
spin_lock(&m66592->lock);
drivers/usb/gadget/udc/m66592-udc.h
443
struct m66592 *m66592;
drivers/usb/gadget/udc/m66592-udc.h
492
#define to_m66592(g) (container_of((g), struct m66592, gadget))
drivers/usb/gadget/udc/m66592-udc.h
494
#define gadget_to_m66592(_gadget) container_of(_gadget, struct m66592, gadget)
drivers/usb/gadget/udc/m66592-udc.h
495
#define m66592_to_gadget(m66592) (&m66592->gadget)
drivers/usb/gadget/udc/m66592-udc.h
507
#define enable_irq_ready(m66592, pipenum) \
drivers/usb/gadget/udc/m66592-udc.h
508
enable_pipe_irq(m66592, pipenum, M66592_BRDYENB)
drivers/usb/gadget/udc/m66592-udc.h
509
#define disable_irq_ready(m66592, pipenum) \
drivers/usb/gadget/udc/m66592-udc.h
510
disable_pipe_irq(m66592, pipenum, M66592_BRDYENB)
drivers/usb/gadget/udc/m66592-udc.h
511
#define enable_irq_empty(m66592, pipenum) \
drivers/usb/gadget/udc/m66592-udc.h
512
enable_pipe_irq(m66592, pipenum, M66592_BEMPENB)
drivers/usb/gadget/udc/m66592-udc.h
513
#define disable_irq_empty(m66592, pipenum) \
drivers/usb/gadget/udc/m66592-udc.h
514
disable_pipe_irq(m66592, pipenum, M66592_BEMPENB)
drivers/usb/gadget/udc/m66592-udc.h
515
#define enable_irq_nrdy(m66592, pipenum) \
drivers/usb/gadget/udc/m66592-udc.h
516
enable_pipe_irq(m66592, pipenum, M66592_NRDYENB)
drivers/usb/gadget/udc/m66592-udc.h
517
#define disable_irq_nrdy(m66592, pipenum) \
drivers/usb/gadget/udc/m66592-udc.h
518
disable_pipe_irq(m66592, pipenum, M66592_NRDYENB)
drivers/usb/gadget/udc/m66592-udc.h
521
static inline u16 m66592_read(struct m66592 *m66592, unsigned long offset)
drivers/usb/gadget/udc/m66592-udc.h
523
return ioread16(m66592->reg + offset);
drivers/usb/gadget/udc/m66592-udc.h
526
static inline void m66592_read_fifo(struct m66592 *m66592,
drivers/usb/gadget/udc/m66592-udc.h
530
void __iomem *fifoaddr = m66592->reg + offset;
drivers/usb/gadget/udc/m66592-udc.h
532
if (m66592->pdata->on_chip) {
drivers/usb/gadget/udc/m66592-udc.h
541
static inline void m66592_write(struct m66592 *m66592, u16 val,
drivers/usb/gadget/udc/m66592-udc.h
544
iowrite16(val, m66592->reg + offset);
drivers/usb/gadget/udc/m66592-udc.h
547
static inline void m66592_mdfy(struct m66592 *m66592, u16 val, u16 pat,
drivers/usb/gadget/udc/m66592-udc.h
551
tmp = m66592_read(m66592, offset);
drivers/usb/gadget/udc/m66592-udc.h
554
m66592_write(m66592, tmp, offset);
drivers/usb/gadget/udc/m66592-udc.h
557
#define m66592_bclr(m66592, val, offset) \
drivers/usb/gadget/udc/m66592-udc.h
558
m66592_mdfy(m66592, 0, val, offset)
drivers/usb/gadget/udc/m66592-udc.h
559
#define m66592_bset(m66592, val, offset) \
drivers/usb/gadget/udc/m66592-udc.h
560
m66592_mdfy(m66592, val, 0, offset)
drivers/usb/gadget/udc/m66592-udc.h
562
static inline void m66592_write_fifo(struct m66592 *m66592,
drivers/usb/gadget/udc/m66592-udc.h
566
void __iomem *fifoaddr = m66592->reg + ep->fifoaddr;
drivers/usb/gadget/udc/m66592-udc.h
568
if (m66592->pdata->on_chip) {
drivers/usb/gadget/udc/m66592-udc.h
579
if (m66592_read(m66592, M66592_CFBCFG)) /* le */
drivers/usb/gadget/udc/m66592-udc.h
592
if (m66592->pdata->wr0_shorted_to_wr1)
drivers/usb/gadget/udc/m66592-udc.h
593
m66592_bclr(m66592, M66592_MBW_16, ep->fifosel);
drivers/usb/gadget/udc/m66592-udc.h
595
if (m66592->pdata->wr0_shorted_to_wr1)
drivers/usb/gadget/udc/m66592-udc.h
596
m66592_bset(m66592, M66592_MBW_16, ep->fifosel);