drivers/usb/gadget/udc/r8a66597-udc.c
1000
tmp = r8a66597_read(r8a66597, ep->fifoctr);
drivers/usb/gadget/udc/r8a66597-udc.c
1002
pipe_stop(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1003
pipe_irq_disable(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1004
dev_err(r8a66597_to_dev(r8a66597),
drivers/usb/gadget/udc/r8a66597-udc.c
101
static inline u16 control_reg_get_pid(struct r8a66597 *r8a66597, u16 pipenum)
drivers/usb/gadget/udc/r8a66597-udc.c
1010
bufsize = get_buffer_size(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1016
r8a66597_write_fifo(r8a66597, ep, buf, size);
drivers/usb/gadget/udc/r8a66597-udc.c
1021
r8a66597_bset(r8a66597, BVAL, ep->fifoctr);
drivers/usb/gadget/udc/r8a66597-udc.c
1030
disable_irq_ready(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1031
enable_irq_empty(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1033
disable_irq_empty(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1034
pipe_irq_enable(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1046
struct r8a66597 *r8a66597 = ep->r8a66597;
drivers/usb/gadget/udc/r8a66597-udc.c
1049
pipe_change(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1050
tmp = r8a66597_read(r8a66597, ep->fifoctr);
drivers/usb/gadget/udc/r8a66597-udc.c
1053
pipe_stop(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1054
pipe_irq_disable(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1055
dev_err(r8a66597_to_dev(r8a66597), "read fifo not ready");
drivers/usb/gadget/udc/r8a66597-udc.c
1061
bufsize = get_buffer_size(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
107
pid = r8a66597_read(r8a66597, DCPCTR) & PID;
drivers/usb/gadget/udc/r8a66597-udc.c
1077
pipe_stop(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1078
pipe_irq_disable(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1085
r8a66597_write(r8a66597, BCLR, ep->fifoctr);
drivers/usb/gadget/udc/r8a66597-udc.c
1087
r8a66597_read_fifo(r8a66597, ep->fifoaddr, buf, size);
drivers/usb/gadget/udc/r8a66597-udc.c
1095
static void irq_pipe_ready(struct r8a66597 *r8a66597, u16 status, u16 enb)
drivers/usb/gadget/udc/r8a66597-udc.c
110
pid = r8a66597_read(r8a66597, offset) & PID;
drivers/usb/gadget/udc/r8a66597-udc.c
1103
r8a66597_write(r8a66597, ~BRDY0, BRDYSTS);
drivers/usb/gadget/udc/r8a66597-udc.c
1104
r8a66597_mdfy(r8a66597, 0, CURPIPE, CFIFOSEL);
drivers/usb/gadget/udc/r8a66597-udc.c
1106
ep = &r8a66597->ep[0];
drivers/usb/gadget/udc/r8a66597-udc.c
1113
r8a66597_write(r8a66597, ~check, BRDYSTS);
drivers/usb/gadget/udc/r8a66597-udc.c
1114
ep = r8a66597->pipenum2ep[pipenum];
drivers/usb/gadget/udc/r8a66597-udc.c
112
dev_err(r8a66597_to_dev(r8a66597), "unexpect pipe num (%d)\n",
drivers/usb/gadget/udc/r8a66597-udc.c
1125
static void irq_pipe_empty(struct r8a66597 *r8a66597, u16 status, u16 enb)
drivers/usb/gadget/udc/r8a66597-udc.c
1134
r8a66597_write(r8a66597, ~BEMP0, BEMPSTS);
drivers/usb/gadget/udc/r8a66597-udc.c
1136
ep = &r8a66597->ep[0];
drivers/usb/gadget/udc/r8a66597-udc.c
1143
r8a66597_write(r8a66597, ~check, BEMPSTS);
drivers/usb/gadget/udc/r8a66597-udc.c
1144
tmp = control_reg_get(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1146
disable_irq_empty(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1147
pipe_irq_disable(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1148
pipe_stop(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1149
ep = r8a66597->pipenum2ep[pipenum];
drivers/usb/gadget/udc/r8a66597-udc.c
1159
static void get_status(struct r8a66597 *r8a66597, struct usb_ctrlrequest *ctrl)
drivers/usb/gadget/udc/r8a66597-udc.c
1160
__releases(r8a66597->lock)
drivers/usb/gadget/udc/r8a66597-udc.c
1161
__acquires(r8a66597->lock)
drivers/usb/gadget/udc/r8a66597-udc.c
1170
status = r8a66597->device_status;
drivers/usb/gadget/udc/r8a66597-udc.c
1176
ep = r8a66597->epaddr2ep[w_index & USB_ENDPOINT_NUMBER_MASK];
drivers/usb/gadget/udc/r8a66597-udc.c
1177
pid = control_reg_get_pid(r8a66597, ep->pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1184
pipe_stall(r8a66597, 0);
drivers/usb/gadget/udc/r8a66597-udc.c
1188
r8a66597->ep0_data = cpu_to_le16(status);
drivers/usb/gadget/udc/r8a66597-udc.c
1189
r8a66597->ep0_req->buf = &r8a66597->ep0_data;
drivers/usb/gadget/udc/r8a66597-udc.c
119
static inline void control_reg_set_pid(struct r8a66597 *r8a66597, u16 pipenum,
drivers/usb/gadget/udc/r8a66597-udc.c
1190
r8a66597->ep0_req->length = 2;
drivers/usb/gadget/udc/r8a66597-udc.c
1192
spin_unlock(&r8a66597->lock);
drivers/usb/gadget/udc/r8a66597-udc.c
1193
r8a66597_queue(r8a66597->gadget.ep0, r8a66597->ep0_req, GFP_ATOMIC);
drivers/usb/gadget/udc/r8a66597-udc.c
1194
spin_lock(&r8a66597->lock);
drivers/usb/gadget/udc/r8a66597-udc.c
1197
static void clear_feature(struct r8a66597 *r8a66597,
drivers/usb/gadget/udc/r8a66597-udc.c
1202
control_end(r8a66597, 1);
drivers/usb/gadget/udc/r8a66597-udc.c
1205
control_end(r8a66597, 1);
drivers/usb/gadget/udc/r8a66597-udc.c
1212
ep = r8a66597->epaddr2ep[w_index & USB_ENDPOINT_NUMBER_MASK];
drivers/usb/gadget/udc/r8a66597-udc.c
1214
pipe_stop(r8a66597, ep->pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1215
control_reg_sqclr(r8a66597, ep->pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1216
spin_unlock(&r8a66597->lock);
drivers/usb/gadget/udc/r8a66597-udc.c
1218
spin_lock(&r8a66597->lock);
drivers/usb/gadget/udc/r8a66597-udc.c
1221
control_end(r8a66597, 1);
drivers/usb/gadget/udc/r8a66597-udc.c
1230
pipe_start(r8a66597, ep->pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1234
pipe_stall(r8a66597, 0);
drivers/usb/gadget/udc/r8a66597-udc.c
1239
static void set_feature(struct r8a66597 *r8a66597, struct usb_ctrlrequest *ctrl)
drivers/usb/gadget/udc/r8a66597-udc.c
1248
control_end(r8a66597, 1);
drivers/usb/gadget/udc/r8a66597-udc.c
125
r8a66597_mdfy(r8a66597, pid, PID, DCPCTR);
drivers/usb/gadget/udc/r8a66597-udc.c
1251
tmp = r8a66597_read(r8a66597, INTSTS0) & CTSQ;
drivers/usb/gadget/udc/r8a66597-udc.c
1256
r8a66597_bset(r8a66597,
drivers/usb/gadget/udc/r8a66597-udc.c
1261
pipe_stall(r8a66597, 0);
drivers/usb/gadget/udc/r8a66597-udc.c
1266
control_end(r8a66597, 1);
drivers/usb/gadget/udc/r8a66597-udc.c
1272
ep = r8a66597->epaddr2ep[w_index & USB_ENDPOINT_NUMBER_MASK];
drivers/usb/gadget/udc/r8a66597-udc.c
1273
pipe_stall(r8a66597, ep->pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1275
control_end(r8a66597, 1);
drivers/usb/gadget/udc/r8a66597-udc.c
1279
pipe_stall(r8a66597, 0);
drivers/usb/gadget/udc/r8a66597-udc.c
128
r8a66597_mdfy(r8a66597, pid, PID, offset);
drivers/usb/gadget/udc/r8a66597-udc.c
1285
static int setup_packet(struct r8a66597 *r8a66597, struct usb_ctrlrequest *ctrl)
drivers/usb/gadget/udc/r8a66597-udc.c
1292
r8a66597_write(r8a66597, ~VALID, INTSTS0);
drivers/usb/gadget/udc/r8a66597-udc.c
1295
p[i] = r8a66597_read(r8a66597, offset + i*2);
drivers/usb/gadget/udc/r8a66597-udc.c
130
dev_err(r8a66597_to_dev(r8a66597), "unexpect pipe num (%d)\n",
drivers/usb/gadget/udc/r8a66597-udc.c
1301
get_status(r8a66597, ctrl);
drivers/usb/gadget/udc/r8a66597-udc.c
1304
clear_feature(r8a66597, ctrl);
drivers/usb/gadget/udc/r8a66597-udc.c
1307
set_feature(r8a66597, ctrl);
drivers/usb/gadget/udc/r8a66597-udc.c
1318
static void r8a66597_update_usb_speed(struct r8a66597 *r8a66597)
drivers/usb/gadget/udc/r8a66597-udc.c
1320
u16 speed = get_usb_speed(r8a66597);
drivers/usb/gadget/udc/r8a66597-udc.c
1324
r8a66597->gadget.speed = USB_SPEED_HIGH;
drivers/usb/gadget/udc/r8a66597-udc.c
1327
r8a66597->gadget.speed = USB_SPEED_FULL;
drivers/usb/gadget/udc/r8a66597-udc.c
1330
r8a66597->gadget.speed = USB_SPEED_UNKNOWN;
drivers/usb/gadget/udc/r8a66597-udc.c
1331
dev_err(r8a66597_to_dev(r8a66597), "USB speed unknown\n");
drivers/usb/gadget/udc/r8a66597-udc.c
1335
static void irq_device_state(struct r8a66597 *r8a66597)
drivers/usb/gadget/udc/r8a66597-udc.c
1339
dvsq = r8a66597_read(r8a66597, INTSTS0) & DVSQ;
drivers/usb/gadget/udc/r8a66597-udc.c
1340
r8a66597_write(r8a66597, ~DVST, INTSTS0);
drivers/usb/gadget/udc/r8a66597-udc.c
1344
spin_unlock(&r8a66597->lock);
drivers/usb/gadget/udc/r8a66597-udc.c
1345
usb_gadget_udc_reset(&r8a66597->gadget, r8a66597->driver);
drivers/usb/gadget/udc/r8a66597-udc.c
1346
spin_lock(&r8a66597->lock);
drivers/usb/gadget/udc/r8a66597-udc.c
1347
r8a66597_update_usb_speed(r8a66597);
drivers/usb/gadget/udc/r8a66597-udc.c
1349
if (r8a66597->old_dvsq == DS_CNFG && dvsq != DS_CNFG)
drivers/usb/gadget/udc/r8a66597-udc.c
135
static inline void pipe_start(struct r8a66597 *r8a66597, u16 pipenum)
drivers/usb/gadget/udc/r8a66597-udc.c
1350
r8a66597_update_usb_speed(r8a66597);
drivers/usb/gadget/udc/r8a66597-udc.c
1352
&& r8a66597->gadget.speed == USB_SPEED_UNKNOWN)
drivers/usb/gadget/udc/r8a66597-udc.c
1353
r8a66597_update_usb_speed(r8a66597);
drivers/usb/gadget/udc/r8a66597-udc.c
1355
r8a66597->old_dvsq = dvsq;
drivers/usb/gadget/udc/r8a66597-udc.c
1358
static void irq_control_stage(struct r8a66597 *r8a66597)
drivers/usb/gadget/udc/r8a66597-udc.c
1359
__releases(r8a66597->lock)
drivers/usb/gadget/udc/r8a66597-udc.c
1360
__acquires(r8a66597->lock)
drivers/usb/gadget/udc/r8a66597-udc.c
1365
ctsq = r8a66597_read(r8a66597, INTSTS0) & CTSQ;
drivers/usb/gadget/udc/r8a66597-udc.c
1366
r8a66597_write(r8a66597, ~CTRT, INTSTS0);
drivers/usb/gadget/udc/r8a66597-udc.c
137
control_reg_set_pid(r8a66597, pipenum, PID_BUF);
drivers/usb/gadget/udc/r8a66597-udc.c
1372
ep = &r8a66597->ep[0];
drivers/usb/gadget/udc/r8a66597-udc.c
1381
if (setup_packet(r8a66597, &ctrl)) {
drivers/usb/gadget/udc/r8a66597-udc.c
1382
spin_unlock(&r8a66597->lock);
drivers/usb/gadget/udc/r8a66597-udc.c
1383
if (r8a66597->driver->setup(&r8a66597->gadget, &ctrl)
drivers/usb/gadget/udc/r8a66597-udc.c
1385
pipe_stall(r8a66597, 0);
drivers/usb/gadget/udc/r8a66597-udc.c
1386
spin_lock(&r8a66597->lock);
drivers/usb/gadget/udc/r8a66597-udc.c
1391
control_end(r8a66597, 0);
drivers/usb/gadget/udc/r8a66597-udc.c
1394
dev_err(r8a66597_to_dev(r8a66597),
drivers/usb/gadget/udc/r8a66597-udc.c
140
static inline void pipe_stop(struct r8a66597 *r8a66597, u16 pipenum)
drivers/usb/gadget/udc/r8a66597-udc.c
1400
static void sudmac_finish(struct r8a66597 *r8a66597, struct r8a66597_ep *ep)
drivers/usb/gadget/udc/r8a66597-udc.c
1408
pipe_change(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1410
while (!(r8a66597_read(r8a66597, ep->fifoctr) & FRDY)) {
drivers/usb/gadget/udc/r8a66597-udc.c
1413
dev_err(r8a66597_to_dev(r8a66597),
drivers/usb/gadget/udc/r8a66597-udc.c
142
control_reg_set_pid(r8a66597, pipenum, PID_NAK);
drivers/usb/gadget/udc/r8a66597-udc.c
1420
r8a66597_bset(r8a66597, BCLR, ep->fifoctr);
drivers/usb/gadget/udc/r8a66597-udc.c
1424
len = r8a66597_sudmac_read(r8a66597, CH0CBC);
drivers/usb/gadget/udc/r8a66597-udc.c
1428
r8a66597_sudmac_write(r8a66597, CH0STCLR, DSTSCLR);
drivers/usb/gadget/udc/r8a66597-udc.c
1434
disable_irq_ready(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1435
enable_irq_empty(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1438
r8a66597_write(r8a66597, ~(1 << pipenum), BRDYSTS);
drivers/usb/gadget/udc/r8a66597-udc.c
1444
static void r8a66597_sudmac_irq(struct r8a66597 *r8a66597)
drivers/usb/gadget/udc/r8a66597-udc.c
145
static inline void pipe_stall(struct r8a66597 *r8a66597, u16 pipenum)
drivers/usb/gadget/udc/r8a66597-udc.c
1450
irqsts = r8a66597_sudmac_read(r8a66597, DINTSTS);
drivers/usb/gadget/udc/r8a66597-udc.c
1452
r8a66597_sudmac_write(r8a66597, CH0ENDC, DINTSTSCLR);
drivers/usb/gadget/udc/r8a66597-udc.c
1453
pipenum = (r8a66597_read(r8a66597, D0FIFOSEL) & CURPIPE);
drivers/usb/gadget/udc/r8a66597-udc.c
1454
ep = r8a66597->pipenum2ep[pipenum];
drivers/usb/gadget/udc/r8a66597-udc.c
1455
sudmac_finish(r8a66597, ep);
drivers/usb/gadget/udc/r8a66597-udc.c
1461
struct r8a66597 *r8a66597 = _r8a66597;
drivers/usb/gadget/udc/r8a66597-udc.c
1467
spin_lock(&r8a66597->lock);
drivers/usb/gadget/udc/r8a66597-udc.c
1469
if (r8a66597_is_sudmac(r8a66597))
drivers/usb/gadget/udc/r8a66597-udc.c
147
control_reg_set_pid(r8a66597, pipenum, PID_STALL);
drivers/usb/gadget/udc/r8a66597-udc.c
1470
r8a66597_sudmac_irq(r8a66597);
drivers/usb/gadget/udc/r8a66597-udc.c
1472
intsts0 = r8a66597_read(r8a66597, INTSTS0);
drivers/usb/gadget/udc/r8a66597-udc.c
1473
intenb0 = r8a66597_read(r8a66597, INTENB0);
drivers/usb/gadget/udc/r8a66597-udc.c
1475
savepipe = r8a66597_read(r8a66597, CFIFOSEL);
drivers/usb/gadget/udc/r8a66597-udc.c
1479
u16 brdysts = r8a66597_read(r8a66597, BRDYSTS);
drivers/usb/gadget/udc/r8a66597-udc.c
1480
u16 bempsts = r8a66597_read(r8a66597, BEMPSTS);
drivers/usb/gadget/udc/r8a66597-udc.c
1481
u16 brdyenb = r8a66597_read(r8a66597, BRDYENB);
drivers/usb/gadget/udc/r8a66597-udc.c
1482
u16 bempenb = r8a66597_read(r8a66597, BEMPENB);
drivers/usb/gadget/udc/r8a66597-udc.c
1485
r8a66597_write(r8a66597, 0xffff & ~VBINT,
drivers/usb/gadget/udc/r8a66597-udc.c
1487
r8a66597_start_xclock(r8a66597);
drivers/usb/gadget/udc/r8a66597-udc.c
1490
r8a66597->old_vbus = r8a66597_read(r8a66597, INTSTS0)
drivers/usb/gadget/udc/r8a66597-udc.c
1492
r8a66597->scount = R8A66597_MAX_SAMPLING;
drivers/usb/gadget/udc/r8a66597-udc.c
1494
mod_timer(&r8a66597->timer,
drivers/usb/gadget/udc/r8a66597-udc.c
1498
irq_device_state(r8a66597);
drivers/usb/gadget/udc/r8a66597-udc.c
150
static inline u16 control_reg_get(struct r8a66597 *r8a66597, u16 pipenum)
drivers/usb/gadget/udc/r8a66597-udc.c
1502
irq_pipe_ready(r8a66597, brdysts, brdyenb);
drivers/usb/gadget/udc/r8a66597-udc.c
1505
irq_pipe_empty(r8a66597, bempsts, bempenb);
drivers/usb/gadget/udc/r8a66597-udc.c
1508
irq_control_stage(r8a66597);
drivers/usb/gadget/udc/r8a66597-udc.c
1511
r8a66597_write(r8a66597, savepipe, CFIFOSEL);
drivers/usb/gadget/udc/r8a66597-udc.c
1513
spin_unlock(&r8a66597->lock);
drivers/usb/gadget/udc/r8a66597-udc.c
1519
struct r8a66597 *r8a66597 = timer_container_of(r8a66597, t, timer);
drivers/usb/gadget/udc/r8a66597-udc.c
1523
spin_lock_irqsave(&r8a66597->lock, flags);
drivers/usb/gadget/udc/r8a66597-udc.c
1524
tmp = r8a66597_read(r8a66597, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
1525
if (r8a66597->scount > 0) {
drivers/usb/gadget/udc/r8a66597-udc.c
1526
tmp = r8a66597_read(r8a66597, INTSTS0) & VBSTS;
drivers/usb/gadget/udc/r8a66597-udc.c
1527
if (tmp == r8a66597->old_vbus) {
drivers/usb/gadget/udc/r8a66597-udc.c
1528
r8a66597->scount--;
drivers/usb/gadget/udc/r8a66597-udc.c
1529
if (r8a66597->scount == 0) {
drivers/usb/gadget/udc/r8a66597-udc.c
1531
r8a66597_usb_connect(r8a66597);
drivers/usb/gadget/udc/r8a66597-udc.c
1533
r8a66597_usb_disconnect(r8a66597);
drivers/usb/gadget/udc/r8a66597-udc.c
1535
mod_timer(&r8a66597->timer,
drivers/usb/gadget/udc/r8a66597-udc.c
1539
r8a66597->scount = R8A66597_MAX_SAMPLING;
drivers/usb/gadget/udc/r8a66597-udc.c
1540
r8a66597->old_vbus = tmp;
drivers/usb/gadget/udc/r8a66597-udc.c
1541
mod_timer(&r8a66597->timer,
drivers/usb/gadget/udc/r8a66597-udc.c
1545
spin_unlock_irqrestore(&r8a66597->lock, flags);
drivers/usb/gadget/udc/r8a66597-udc.c
156
ret = r8a66597_read(r8a66597, DCPCTR);
drivers/usb/gadget/udc/r8a66597-udc.c
1569
spin_lock_irqsave(&ep->r8a66597->lock, flags);
drivers/usb/gadget/udc/r8a66597-udc.c
1571
spin_unlock_irqrestore(&ep->r8a66597->lock, flags);
drivers/usb/gadget/udc/r8a66597-udc.c
1574
pipe_irq_disable(ep->r8a66597, ep->pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
159
ret = r8a66597_read(r8a66597, offset);
drivers/usb/gadget/udc/r8a66597-udc.c
161
dev_err(r8a66597_to_dev(r8a66597), "unexpect pipe num (%d)\n",
drivers/usb/gadget/udc/r8a66597-udc.c
1611
if (ep->r8a66597->gadget.speed == USB_SPEED_UNKNOWN)
drivers/usb/gadget/udc/r8a66597-udc.c
1614
spin_lock_irqsave(&ep->r8a66597->lock, flags);
drivers/usb/gadget/udc/r8a66597-udc.c
1630
spin_unlock_irqrestore(&ep->r8a66597->lock, flags);
drivers/usb/gadget/udc/r8a66597-udc.c
1644
spin_lock_irqsave(&ep->r8a66597->lock, flags);
drivers/usb/gadget/udc/r8a66597-udc.c
1647
spin_unlock_irqrestore(&ep->r8a66597->lock, flags);
drivers/usb/gadget/udc/r8a66597-udc.c
1658
spin_lock_irqsave(&ep->r8a66597->lock, flags);
drivers/usb/gadget/udc/r8a66597-udc.c
1663
pipe_stall(ep->r8a66597, ep->pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1667
pipe_stop(ep->r8a66597, ep->pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1669
spin_unlock_irqrestore(&ep->r8a66597->lock, flags);
drivers/usb/gadget/udc/r8a66597-udc.c
168
static inline void control_reg_sqclr(struct r8a66597 *r8a66597, u16 pipenum)
drivers/usb/gadget/udc/r8a66597-udc.c
1683
spin_lock_irqsave(&ep->r8a66597->lock, flags);
drivers/usb/gadget/udc/r8a66597-udc.c
1685
spin_unlock_irqrestore(&ep->r8a66597->lock, flags);
drivers/usb/gadget/udc/r8a66597-udc.c
1696
spin_lock_irqsave(&ep->r8a66597->lock, flags);
drivers/usb/gadget/udc/r8a66597-udc.c
1698
pipe_stop(ep->r8a66597, ep->pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1699
r8a66597_bclr(ep->r8a66597, BCLR, ep->fifoctr);
drivers/usb/gadget/udc/r8a66597-udc.c
1700
r8a66597_write(ep->r8a66597, ACLRM, ep->pipectr);
drivers/usb/gadget/udc/r8a66597-udc.c
1701
r8a66597_write(ep->r8a66597, 0, ep->pipectr);
drivers/usb/gadget/udc/r8a66597-udc.c
1703
spin_unlock_irqrestore(&ep->r8a66597->lock, flags);
drivers/usb/gadget/udc/r8a66597-udc.c
172
pipe_stop(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1725
struct r8a66597 *r8a66597 = gadget_to_r8a66597(gadget);
drivers/usb/gadget/udc/r8a66597-udc.c
1731
if (!r8a66597)
drivers/usb/gadget/udc/r8a66597-udc.c
1735
r8a66597->driver = driver;
drivers/usb/gadget/udc/r8a66597-udc.c
1737
init_controller(r8a66597);
drivers/usb/gadget/udc/r8a66597-udc.c
1738
r8a66597_bset(r8a66597, VBSE, INTENB0);
drivers/usb/gadget/udc/r8a66597-udc.c
1739
if (r8a66597_read(r8a66597, INTSTS0) & VBSTS) {
drivers/usb/gadget/udc/r8a66597-udc.c
1740
r8a66597_start_xclock(r8a66597);
drivers/usb/gadget/udc/r8a66597-udc.c
1742
r8a66597->old_vbus = r8a66597_read(r8a66597,
drivers/usb/gadget/udc/r8a66597-udc.c
1744
r8a66597->scount = R8A66597_MAX_SAMPLING;
drivers/usb/gadget/udc/r8a66597-udc.c
1745
mod_timer(&r8a66597->timer, jiffies + msecs_to_jiffies(50));
drivers/usb/gadget/udc/r8a66597-udc.c
175
r8a66597_bset(r8a66597, SQCLR, DCPCTR);
drivers/usb/gadget/udc/r8a66597-udc.c
1753
struct r8a66597 *r8a66597 = gadget_to_r8a66597(gadget);
drivers/usb/gadget/udc/r8a66597-udc.c
1756
spin_lock_irqsave(&r8a66597->lock, flags);
drivers/usb/gadget/udc/r8a66597-udc.c
1757
r8a66597_bclr(r8a66597, VBSE, INTENB0);
drivers/usb/gadget/udc/r8a66597-udc.c
1758
disable_controller(r8a66597);
drivers/usb/gadget/udc/r8a66597-udc.c
1759
spin_unlock_irqrestore(&r8a66597->lock, flags);
drivers/usb/gadget/udc/r8a66597-udc.c
1761
r8a66597->driver = NULL;
drivers/usb/gadget/udc/r8a66597-udc.c
1768
struct r8a66597 *r8a66597 = gadget_to_r8a66597(_gadget);
drivers/usb/gadget/udc/r8a66597-udc.c
1769
return r8a66597_read(r8a66597, FRMNUM) & 0x03FF;
drivers/usb/gadget/udc/r8a66597-udc.c
1774
struct r8a66597 *r8a66597 = gadget_to_r8a66597(gadget);
drivers/usb/gadget/udc/r8a66597-udc.c
1777
spin_lock_irqsave(&r8a66597->lock, flags);
drivers/usb/gadget/udc/r8a66597-udc.c
1779
r8a66597_bset(r8a66597, DPRPU, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
178
r8a66597_bset(r8a66597, SQCLR, offset);
drivers/usb/gadget/udc/r8a66597-udc.c
1781
r8a66597_bclr(r8a66597, DPRPU, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
1782
spin_unlock_irqrestore(&r8a66597->lock, flags);
drivers/usb/gadget/udc/r8a66597-udc.c
1789
struct r8a66597 *r8a66597 = gadget_to_r8a66597(gadget);
drivers/usb/gadget/udc/r8a66597-udc.c
1793
r8a66597->device_status |= 1 << USB_DEVICE_SELF_POWERED;
drivers/usb/gadget/udc/r8a66597-udc.c
1795
r8a66597->device_status &= ~(1 << USB_DEVICE_SELF_POWERED);
drivers/usb/gadget/udc/r8a66597-udc.c
180
dev_err(r8a66597_to_dev(r8a66597), "unexpect pipe num (%d)\n",
drivers/usb/gadget/udc/r8a66597-udc.c
1810
struct r8a66597 *r8a66597 = platform_get_drvdata(pdev);
drivers/usb/gadget/udc/r8a66597-udc.c
1812
usb_del_gadget_udc(&r8a66597->gadget);
drivers/usb/gadget/udc/r8a66597-udc.c
1813
timer_delete_sync(&r8a66597->timer);
drivers/usb/gadget/udc/r8a66597-udc.c
1814
r8a66597_free_request(&r8a66597->ep[0].ep, r8a66597->ep0_req);
drivers/usb/gadget/udc/r8a66597-udc.c
1816
if (r8a66597->pdata->on_chip) {
drivers/usb/gadget/udc/r8a66597-udc.c
1817
clk_disable_unprepare(r8a66597->clk);
drivers/usb/gadget/udc/r8a66597-udc.c
1825
static int r8a66597_sudmac_ioremap(struct r8a66597 *r8a66597,
drivers/usb/gadget/udc/r8a66597-udc.c
1828
r8a66597->sudmac_reg =
drivers/usb/gadget/udc/r8a66597-udc.c
1830
return PTR_ERR_OR_ZERO(r8a66597->sudmac_reg);
drivers/usb/gadget/udc/r8a66597-udc.c
1840
struct r8a66597 *r8a66597 = NULL;
drivers/usb/gadget/udc/r8a66597-udc.c
185
static void control_reg_sqset(struct r8a66597 *r8a66597, u16 pipenum)
drivers/usb/gadget/udc/r8a66597-udc.c
1861
r8a66597 = devm_kzalloc(dev, sizeof(struct r8a66597), GFP_KERNEL);
drivers/usb/gadget/udc/r8a66597-udc.c
1862
if (r8a66597 == NULL)
drivers/usb/gadget/udc/r8a66597-udc.c
1865
spin_lock_init(&r8a66597->lock);
drivers/usb/gadget/udc/r8a66597-udc.c
1866
platform_set_drvdata(pdev, r8a66597);
drivers/usb/gadget/udc/r8a66597-udc.c
1867
r8a66597->pdata = dev_get_platdata(dev);
drivers/usb/gadget/udc/r8a66597-udc.c
1868
r8a66597->irq_sense_low = irq_trigger == IRQF_TRIGGER_LOW;
drivers/usb/gadget/udc/r8a66597-udc.c
1870
r8a66597->gadget.ops = &r8a66597_gadget_ops;
drivers/usb/gadget/udc/r8a66597-udc.c
1871
r8a66597->gadget.max_speed = USB_SPEED_HIGH;
drivers/usb/gadget/udc/r8a66597-udc.c
1872
r8a66597->gadget.name = udc_name;
drivers/usb/gadget/udc/r8a66597-udc.c
1874
timer_setup(&r8a66597->timer, r8a66597_timer, 0);
drivers/usb/gadget/udc/r8a66597-udc.c
1875
r8a66597->reg = reg;
drivers/usb/gadget/udc/r8a66597-udc.c
1877
if (r8a66597->pdata->on_chip) {
drivers/usb/gadget/udc/r8a66597-udc.c
1879
r8a66597->clk = devm_clk_get(dev, clk_name);
drivers/usb/gadget/udc/r8a66597-udc.c
1880
if (IS_ERR(r8a66597->clk)) {
drivers/usb/gadget/udc/r8a66597-udc.c
1882
return PTR_ERR(r8a66597->clk);
drivers/usb/gadget/udc/r8a66597-udc.c
1884
clk_prepare_enable(r8a66597->clk);
drivers/usb/gadget/udc/r8a66597-udc.c
1887
if (r8a66597->pdata->sudmac) {
drivers/usb/gadget/udc/r8a66597-udc.c
1888
ret = r8a66597_sudmac_ioremap(r8a66597, pdev);
drivers/usb/gadget/udc/r8a66597-udc.c
189
pipe_stop(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
1893
disable_controller(r8a66597); /* make sure controller is disabled */
drivers/usb/gadget/udc/r8a66597-udc.c
1896
udc_name, r8a66597);
drivers/usb/gadget/udc/r8a66597-udc.c
1902
INIT_LIST_HEAD(&r8a66597->gadget.ep_list);
drivers/usb/gadget/udc/r8a66597-udc.c
1903
r8a66597->gadget.ep0 = &r8a66597->ep[0].ep;
drivers/usb/gadget/udc/r8a66597-udc.c
1904
INIT_LIST_HEAD(&r8a66597->gadget.ep0->ep_list);
drivers/usb/gadget/udc/r8a66597-udc.c
1906
struct r8a66597_ep *ep = &r8a66597->ep[i];
drivers/usb/gadget/udc/r8a66597-udc.c
1909
INIT_LIST_HEAD(&r8a66597->ep[i].ep.ep_list);
drivers/usb/gadget/udc/r8a66597-udc.c
1910
list_add_tail(&r8a66597->ep[i].ep.ep_list,
drivers/usb/gadget/udc/r8a66597-udc.c
1911
&r8a66597->gadget.ep_list);
drivers/usb/gadget/udc/r8a66597-udc.c
1913
ep->r8a66597 = r8a66597;
drivers/usb/gadget/udc/r8a66597-udc.c
192
r8a66597_bset(r8a66597, SQSET, DCPCTR);
drivers/usb/gadget/udc/r8a66597-udc.c
1929
usb_ep_set_maxpacket_limit(&r8a66597->ep[0].ep, 64);
drivers/usb/gadget/udc/r8a66597-udc.c
1930
r8a66597->ep[0].pipenum = 0;
drivers/usb/gadget/udc/r8a66597-udc.c
1931
r8a66597->ep[0].fifoaddr = CFIFO;
drivers/usb/gadget/udc/r8a66597-udc.c
1932
r8a66597->ep[0].fifosel = CFIFOSEL;
drivers/usb/gadget/udc/r8a66597-udc.c
1933
r8a66597->ep[0].fifoctr = CFIFOCTR;
drivers/usb/gadget/udc/r8a66597-udc.c
1934
r8a66597->ep[0].pipectr = get_pipectr_addr(0);
drivers/usb/gadget/udc/r8a66597-udc.c
1935
r8a66597->pipenum2ep[0] = &r8a66597->ep[0];
drivers/usb/gadget/udc/r8a66597-udc.c
1936
r8a66597->epaddr2ep[0] = &r8a66597->ep[0];
drivers/usb/gadget/udc/r8a66597-udc.c
1938
r8a66597->ep0_req = r8a66597_alloc_request(&r8a66597->ep[0].ep,
drivers/usb/gadget/udc/r8a66597-udc.c
1940
if (r8a66597->ep0_req == NULL) {
drivers/usb/gadget/udc/r8a66597-udc.c
1944
r8a66597->ep0_req->complete = nop_completion;
drivers/usb/gadget/udc/r8a66597-udc.c
1946
ret = usb_add_gadget_udc(dev, &r8a66597->gadget);
drivers/usb/gadget/udc/r8a66597-udc.c
195
r8a66597_bset(r8a66597, SQSET, offset);
drivers/usb/gadget/udc/r8a66597-udc.c
1954
r8a66597_free_request(&r8a66597->ep[0].ep, r8a66597->ep0_req);
drivers/usb/gadget/udc/r8a66597-udc.c
1956
if (r8a66597->pdata->on_chip)
drivers/usb/gadget/udc/r8a66597-udc.c
1957
clk_disable_unprepare(r8a66597->clk);
drivers/usb/gadget/udc/r8a66597-udc.c
1959
if (r8a66597->ep0_req)
drivers/usb/gadget/udc/r8a66597-udc.c
1960
r8a66597_free_request(&r8a66597->ep[0].ep, r8a66597->ep0_req);
drivers/usb/gadget/udc/r8a66597-udc.c
197
dev_err(r8a66597_to_dev(r8a66597),
drivers/usb/gadget/udc/r8a66597-udc.c
202
static u16 control_reg_sqmon(struct r8a66597 *r8a66597, u16 pipenum)
drivers/usb/gadget/udc/r8a66597-udc.c
207
return r8a66597_read(r8a66597, DCPCTR) & SQMON;
drivers/usb/gadget/udc/r8a66597-udc.c
210
return r8a66597_read(r8a66597, offset) & SQMON;
drivers/usb/gadget/udc/r8a66597-udc.c
212
dev_err(r8a66597_to_dev(r8a66597),
drivers/usb/gadget/udc/r8a66597-udc.c
219
static u16 save_usb_toggle(struct r8a66597 *r8a66597, u16 pipenum)
drivers/usb/gadget/udc/r8a66597-udc.c
221
return control_reg_sqmon(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
224
static void restore_usb_toggle(struct r8a66597 *r8a66597, u16 pipenum,
drivers/usb/gadget/udc/r8a66597-udc.c
228
control_reg_sqset(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
230
control_reg_sqclr(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
233
static inline int get_buffer_size(struct r8a66597 *r8a66597, u16 pipenum)
drivers/usb/gadget/udc/r8a66597-udc.c
239
tmp = r8a66597_read(r8a66597, DCPCFG);
drivers/usb/gadget/udc/r8a66597-udc.c
243
tmp = r8a66597_read(r8a66597, DCPMAXP);
drivers/usb/gadget/udc/r8a66597-udc.c
247
r8a66597_write(r8a66597, pipenum, PIPESEL);
drivers/usb/gadget/udc/r8a66597-udc.c
248
tmp = r8a66597_read(r8a66597, PIPECFG);
drivers/usb/gadget/udc/r8a66597-udc.c
250
tmp = r8a66597_read(r8a66597, PIPEBUF);
drivers/usb/gadget/udc/r8a66597-udc.c
253
tmp = r8a66597_read(r8a66597, PIPEMAXP);
drivers/usb/gadget/udc/r8a66597-udc.c
261
static inline unsigned short mbw_value(struct r8a66597 *r8a66597)
drivers/usb/gadget/udc/r8a66597-udc.c
263
if (r8a66597->pdata->on_chip)
drivers/usb/gadget/udc/r8a66597-udc.c
269
static void r8a66597_change_curpipe(struct r8a66597 *r8a66597, u16 pipenum,
drivers/usb/gadget/udc/r8a66597-udc.c
282
r8a66597_mdfy(r8a66597, loop, mask, fifosel);
drivers/usb/gadget/udc/r8a66597-udc.c
285
tmp = r8a66597_read(r8a66597, fifosel);
drivers/usb/gadget/udc/r8a66597-udc.c
287
dev_err(r8a66597_to_dev(r8a66597),
drivers/usb/gadget/udc/r8a66597-udc.c
296
static void pipe_change(struct r8a66597 *r8a66597, u16 pipenum)
drivers/usb/gadget/udc/r8a66597-udc.c
298
struct r8a66597_ep *ep = r8a66597->pipenum2ep[pipenum];
drivers/usb/gadget/udc/r8a66597-udc.c
301
r8a66597_bclr(r8a66597, DREQE, ep->fifosel);
drivers/usb/gadget/udc/r8a66597-udc.c
303
r8a66597_mdfy(r8a66597, pipenum, CURPIPE, ep->fifosel);
drivers/usb/gadget/udc/r8a66597-udc.c
307
if (r8a66597_is_sudmac(r8a66597) && ep->use_dma)
drivers/usb/gadget/udc/r8a66597-udc.c
308
r8a66597_bclr(r8a66597, mbw_value(r8a66597), ep->fifosel);
drivers/usb/gadget/udc/r8a66597-udc.c
310
r8a66597_bset(r8a66597, mbw_value(r8a66597), ep->fifosel);
drivers/usb/gadget/udc/r8a66597-udc.c
313
r8a66597_bset(r8a66597, DREQE, ep->fifosel);
drivers/usb/gadget/udc/r8a66597-udc.c
316
static int pipe_buffer_setting(struct r8a66597 *r8a66597,
drivers/usb/gadget/udc/r8a66597-udc.c
325
r8a66597_write(r8a66597, info->pipe, PIPESEL);
drivers/usb/gadget/udc/r8a66597-udc.c
33
static void init_controller(struct r8a66597 *r8a66597);
drivers/usb/gadget/udc/r8a66597-udc.c
34
static void disable_controller(struct r8a66597 *r8a66597);
drivers/usb/gadget/udc/r8a66597-udc.c
361
r8a66597_write(r8a66597, pipecfg, PIPECFG);
drivers/usb/gadget/udc/r8a66597-udc.c
362
r8a66597_write(r8a66597, (buf_bsize << 10) | (bufnum), PIPEBUF);
drivers/usb/gadget/udc/r8a66597-udc.c
363
r8a66597_write(r8a66597, info->maxpacket, PIPEMAXP);
drivers/usb/gadget/udc/r8a66597-udc.c
366
r8a66597_write(r8a66597, info->interval, PIPEPERI);
drivers/usb/gadget/udc/r8a66597-udc.c
371
static void pipe_buffer_release(struct r8a66597 *r8a66597,
drivers/usb/gadget/udc/r8a66597-udc.c
378
r8a66597->bulk--;
drivers/usb/gadget/udc/r8a66597-udc.c
380
r8a66597->interrupt--;
drivers/usb/gadget/udc/r8a66597-udc.c
382
r8a66597->isochronous--;
drivers/usb/gadget/udc/r8a66597-udc.c
384
r8a66597->bulk--;
drivers/usb/gadget/udc/r8a66597-udc.c
386
dev_err(r8a66597_to_dev(r8a66597),
drivers/usb/gadget/udc/r8a66597-udc.c
393
struct r8a66597 *r8a66597 = ep->r8a66597;
drivers/usb/gadget/udc/r8a66597-udc.c
395
r8a66597_mdfy(r8a66597, 0, CURPIPE, ep->fifosel);
drivers/usb/gadget/udc/r8a66597-udc.c
397
r8a66597_write(r8a66597, ACLRM, ep->pipectr);
drivers/usb/gadget/udc/r8a66597-udc.c
398
r8a66597_write(r8a66597, 0, ep->pipectr);
drivers/usb/gadget/udc/r8a66597-udc.c
399
r8a66597_write(r8a66597, SQCLR, ep->pipectr);
drivers/usb/gadget/udc/r8a66597-udc.c
401
r8a66597_mdfy(r8a66597, ep->pipenum, CURPIPE, ep->fifosel);
drivers/usb/gadget/udc/r8a66597-udc.c
405
r8a66597_bset(r8a66597, mbw_value(r8a66597), ep->fifosel);
drivers/usb/gadget/udc/r8a66597-udc.c
409
static void r8a66597_ep_setting(struct r8a66597 *r8a66597,
drivers/usb/gadget/udc/r8a66597-udc.c
429
r8a66597->pipenum2ep[pipenum] = ep;
drivers/usb/gadget/udc/r8a66597-udc.c
430
r8a66597->epaddr2ep[usb_endpoint_num(desc)]
drivers/usb/gadget/udc/r8a66597-udc.c
437
struct r8a66597 *r8a66597 = ep->r8a66597;
drivers/usb/gadget/udc/r8a66597-udc.c
444
r8a66597->num_dma--;
drivers/usb/gadget/udc/r8a66597-udc.c
45
static inline u16 get_usb_speed(struct r8a66597 *r8a66597)
drivers/usb/gadget/udc/r8a66597-udc.c
453
struct r8a66597 *r8a66597 = ep->r8a66597;
drivers/usb/gadget/udc/r8a66597-udc.c
466
if (r8a66597->bulk >= R8A66597_MAX_NUM_BULK) {
drivers/usb/gadget/udc/r8a66597-udc.c
467
if (r8a66597->isochronous >= R8A66597_MAX_NUM_ISOC) {
drivers/usb/gadget/udc/r8a66597-udc.c
468
dev_err(r8a66597_to_dev(r8a66597),
drivers/usb/gadget/udc/r8a66597-udc.c
47
return r8a66597_read(r8a66597, DVSTCTR0) & RHST;
drivers/usb/gadget/udc/r8a66597-udc.c
473
+ r8a66597->isochronous;
drivers/usb/gadget/udc/r8a66597-udc.c
474
counter = &r8a66597->isochronous;
drivers/usb/gadget/udc/r8a66597-udc.c
477
info.pipe = R8A66597_BASE_PIPENUM_BULK + r8a66597->bulk;
drivers/usb/gadget/udc/r8a66597-udc.c
478
counter = &r8a66597->bulk;
drivers/usb/gadget/udc/r8a66597-udc.c
484
if (r8a66597->interrupt >= R8A66597_MAX_NUM_INT) {
drivers/usb/gadget/udc/r8a66597-udc.c
485
dev_err(r8a66597_to_dev(r8a66597),
drivers/usb/gadget/udc/r8a66597-udc.c
489
info.pipe = R8A66597_BASE_PIPENUM_INT + r8a66597->interrupt;
drivers/usb/gadget/udc/r8a66597-udc.c
491
counter = &r8a66597->interrupt;
drivers/usb/gadget/udc/r8a66597-udc.c
494
if (r8a66597->isochronous >= R8A66597_MAX_NUM_ISOC) {
drivers/usb/gadget/udc/r8a66597-udc.c
495
dev_err(r8a66597_to_dev(r8a66597),
drivers/usb/gadget/udc/r8a66597-udc.c
499
info.pipe = R8A66597_BASE_PIPENUM_ISOC + r8a66597->isochronous;
drivers/usb/gadget/udc/r8a66597-udc.c
50
static void enable_pipe_irq(struct r8a66597 *r8a66597, u16 pipenum,
drivers/usb/gadget/udc/r8a66597-udc.c
501
counter = &r8a66597->isochronous;
drivers/usb/gadget/udc/r8a66597-udc.c
504
dev_err(r8a66597_to_dev(r8a66597), "unexpect xfer type\n");
drivers/usb/gadget/udc/r8a66597-udc.c
517
ret = pipe_buffer_setting(r8a66597, &info);
drivers/usb/gadget/udc/r8a66597-udc.c
519
dev_err(r8a66597_to_dev(r8a66597),
drivers/usb/gadget/udc/r8a66597-udc.c
525
if ((counter == &r8a66597->isochronous) && info.type == R8A66597_BULK)
drivers/usb/gadget/udc/r8a66597-udc.c
526
r8a66597->bulk++;
drivers/usb/gadget/udc/r8a66597-udc.c
528
r8a66597_ep_setting(r8a66597, ep, desc, info.pipe, dma);
drivers/usb/gadget/udc/r8a66597-udc.c
536
struct r8a66597 *r8a66597 = ep->r8a66597;
drivers/usb/gadget/udc/r8a66597-udc.c
541
pipe_buffer_release(r8a66597, &info);
drivers/usb/gadget/udc/r8a66597-udc.c
548
static void pipe_irq_enable(struct r8a66597 *r8a66597, u16 pipenum)
drivers/usb/gadget/udc/r8a66597-udc.c
55
tmp = r8a66597_read(r8a66597, INTENB0);
drivers/usb/gadget/udc/r8a66597-udc.c
550
enable_irq_ready(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
551
enable_irq_nrdy(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
554
static void pipe_irq_disable(struct r8a66597 *r8a66597, u16 pipenum)
drivers/usb/gadget/udc/r8a66597-udc.c
556
disable_irq_ready(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
557
disable_irq_nrdy(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
56
r8a66597_bclr(r8a66597, BEMPE | NRDYE | BRDYE,
drivers/usb/gadget/udc/r8a66597-udc.c
561
static void control_end(struct r8a66597 *r8a66597, unsigned ccpl)
drivers/usb/gadget/udc/r8a66597-udc.c
563
r8a66597->ep[0].internal_ccpl = ccpl;
drivers/usb/gadget/udc/r8a66597-udc.c
564
pipe_start(r8a66597, 0);
drivers/usb/gadget/udc/r8a66597-udc.c
565
r8a66597_bset(r8a66597, CCPL, DCPCTR);
drivers/usb/gadget/udc/r8a66597-udc.c
571
struct r8a66597 *r8a66597 = ep->r8a66597;
drivers/usb/gadget/udc/r8a66597-udc.c
573
pipe_change(r8a66597, ep->pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
574
r8a66597_mdfy(r8a66597, ISEL, (ISEL | CURPIPE), CFIFOSEL);
drivers/usb/gadget/udc/r8a66597-udc.c
575
r8a66597_write(r8a66597, BCLR, ep->fifoctr);
drivers/usb/gadget/udc/r8a66597-udc.c
577
r8a66597_bset(r8a66597, BVAL, ep->fifoctr);
drivers/usb/gadget/udc/r8a66597-udc.c
578
pipe_start(r8a66597, 0);
drivers/usb/gadget/udc/r8a66597-udc.c
58
r8a66597_bset(r8a66597, (1 << pipenum), reg);
drivers/usb/gadget/udc/r8a66597-udc.c
581
r8a66597_write(r8a66597, ~BEMP0, BEMPSTS);
drivers/usb/gadget/udc/r8a66597-udc.c
586
static void disable_fifosel(struct r8a66597 *r8a66597, u16 pipenum,
drivers/usb/gadget/udc/r8a66597-udc.c
59
r8a66597_write(r8a66597, tmp, INTENB0);
drivers/usb/gadget/udc/r8a66597-udc.c
591
tmp = r8a66597_read(r8a66597, fifosel) & CURPIPE;
drivers/usb/gadget/udc/r8a66597-udc.c
593
r8a66597_change_curpipe(r8a66597, 0, 0, fifosel);
drivers/usb/gadget/udc/r8a66597-udc.c
596
static void change_bfre_mode(struct r8a66597 *r8a66597, u16 pipenum,
drivers/usb/gadget/udc/r8a66597-udc.c
599
struct r8a66597_ep *ep = r8a66597->pipenum2ep[pipenum];
drivers/usb/gadget/udc/r8a66597-udc.c
603
r8a66597_write(r8a66597, pipenum, PIPESEL);
drivers/usb/gadget/udc/r8a66597-udc.c
604
tmp = r8a66597_read(r8a66597, PIPECFG) & R8A66597_BFRE;
drivers/usb/gadget/udc/r8a66597-udc.c
609
pipe_stop(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
610
disable_fifosel(r8a66597, pipenum, CFIFOSEL);
drivers/usb/gadget/udc/r8a66597-udc.c
611
disable_fifosel(r8a66597, pipenum, D0FIFOSEL);
drivers/usb/gadget/udc/r8a66597-udc.c
612
disable_fifosel(r8a66597, pipenum, D1FIFOSEL);
drivers/usb/gadget/udc/r8a66597-udc.c
614
toggle = save_usb_toggle(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
616
r8a66597_write(r8a66597, pipenum, PIPESEL);
drivers/usb/gadget/udc/r8a66597-udc.c
618
r8a66597_bset(r8a66597, R8A66597_BFRE, PIPECFG);
drivers/usb/gadget/udc/r8a66597-udc.c
62
static void disable_pipe_irq(struct r8a66597 *r8a66597, u16 pipenum,
drivers/usb/gadget/udc/r8a66597-udc.c
620
r8a66597_bclr(r8a66597, R8A66597_BFRE, PIPECFG);
drivers/usb/gadget/udc/r8a66597-udc.c
623
r8a66597_bset(r8a66597, ACLRM, ep->pipectr);
drivers/usb/gadget/udc/r8a66597-udc.c
624
r8a66597_bclr(r8a66597, ACLRM, ep->pipectr);
drivers/usb/gadget/udc/r8a66597-udc.c
626
restore_usb_toggle(r8a66597, pipenum, toggle);
drivers/usb/gadget/udc/r8a66597-udc.c
629
static int sudmac_alloc_channel(struct r8a66597 *r8a66597,
drivers/usb/gadget/udc/r8a66597-udc.c
635
if (!r8a66597_is_sudmac(r8a66597))
drivers/usb/gadget/udc/r8a66597-udc.c
642
if (r8a66597->dma.used)
drivers/usb/gadget/udc/r8a66597-udc.c
646
dma = &r8a66597->dma;
drivers/usb/gadget/udc/r8a66597-udc.c
652
change_bfre_mode(r8a66597, ep->pipenum, 1);
drivers/usb/gadget/udc/r8a66597-udc.c
663
return usb_gadget_map_request(&r8a66597->gadget, &req->req, dma->dir);
drivers/usb/gadget/udc/r8a66597-udc.c
666
static void sudmac_free_channel(struct r8a66597 *r8a66597,
drivers/usb/gadget/udc/r8a66597-udc.c
67
tmp = r8a66597_read(r8a66597, INTENB0);
drivers/usb/gadget/udc/r8a66597-udc.c
670
if (!r8a66597_is_sudmac(r8a66597))
drivers/usb/gadget/udc/r8a66597-udc.c
673
usb_gadget_unmap_request(&r8a66597->gadget, &req->req, ep->dma->dir);
drivers/usb/gadget/udc/r8a66597-udc.c
675
r8a66597_bclr(r8a66597, DREQE, ep->fifosel);
drivers/usb/gadget/udc/r8a66597-udc.c
676
r8a66597_change_curpipe(r8a66597, 0, 0, ep->fifosel);
drivers/usb/gadget/udc/r8a66597-udc.c
68
r8a66597_bclr(r8a66597, BEMPE | NRDYE | BRDYE,
drivers/usb/gadget/udc/r8a66597-udc.c
685
static void sudmac_start(struct r8a66597 *r8a66597, struct r8a66597_ep *ep,
drivers/usb/gadget/udc/r8a66597-udc.c
690
r8a66597_sudmac_write(r8a66597, LBA_WAIT, CH0CFG);
drivers/usb/gadget/udc/r8a66597-udc.c
691
r8a66597_sudmac_write(r8a66597, req->req.dma, CH0BA);
drivers/usb/gadget/udc/r8a66597-udc.c
692
r8a66597_sudmac_write(r8a66597, req->req.length, CH0BBC);
drivers/usb/gadget/udc/r8a66597-udc.c
693
r8a66597_sudmac_write(r8a66597, CH0ENDE, DINTCTRL);
drivers/usb/gadget/udc/r8a66597-udc.c
695
r8a66597_sudmac_write(r8a66597, DEN, CH0DEN);
drivers/usb/gadget/udc/r8a66597-udc.c
70
r8a66597_bclr(r8a66597, (1 << pipenum), reg);
drivers/usb/gadget/udc/r8a66597-udc.c
701
struct r8a66597 *r8a66597 = ep->r8a66597;
drivers/usb/gadget/udc/r8a66597-udc.c
704
pipe_change(r8a66597, ep->pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
705
disable_irq_empty(r8a66597, ep->pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
706
pipe_start(r8a66597, ep->pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
71
r8a66597_write(r8a66597, tmp, INTENB0);
drivers/usb/gadget/udc/r8a66597-udc.c
711
r8a66597_write(r8a66597, ~(1 << ep->pipenum), BRDYSTS);
drivers/usb/gadget/udc/r8a66597-udc.c
712
if (sudmac_alloc_channel(r8a66597, ep, req) < 0) {
drivers/usb/gadget/udc/r8a66597-udc.c
714
pipe_change(r8a66597, ep->pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
715
disable_irq_empty(r8a66597, ep->pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
716
pipe_start(r8a66597, ep->pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
717
tmp = r8a66597_read(r8a66597, ep->fifoctr);
drivers/usb/gadget/udc/r8a66597-udc.c
719
pipe_irq_enable(r8a66597, ep->pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
724
pipe_change(r8a66597, ep->pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
725
disable_irq_nrdy(r8a66597, ep->pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
726
pipe_start(r8a66597, ep->pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
727
enable_irq_nrdy(r8a66597, ep->pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
728
sudmac_start(r8a66597, ep, req);
drivers/usb/gadget/udc/r8a66597-udc.c
736
struct r8a66597 *r8a66597 = ep->r8a66597;
drivers/usb/gadget/udc/r8a66597-udc.c
74
static void r8a66597_usb_connect(struct r8a66597 *r8a66597)
drivers/usb/gadget/udc/r8a66597-udc.c
740
r8a66597_mdfy(r8a66597, 0, (ISEL | CURPIPE), CFIFOSEL);
drivers/usb/gadget/udc/r8a66597-udc.c
741
r8a66597_write(r8a66597, BCLR, ep->fifoctr);
drivers/usb/gadget/udc/r8a66597-udc.c
742
pipe_start(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
743
pipe_irq_enable(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
745
pipe_stop(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
747
enable_irq_nrdy(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
748
r8a66597_write(r8a66597, TRCLR, ep->pipetre);
drivers/usb/gadget/udc/r8a66597-udc.c
749
r8a66597_write(r8a66597,
drivers/usb/gadget/udc/r8a66597-udc.c
752
r8a66597_bset(r8a66597, TRENB, ep->pipetre);
drivers/usb/gadget/udc/r8a66597-udc.c
755
if (sudmac_alloc_channel(r8a66597, ep, req) < 0) {
drivers/usb/gadget/udc/r8a66597-udc.c
757
change_bfre_mode(r8a66597, ep->pipenum, 0);
drivers/usb/gadget/udc/r8a66597-udc.c
758
pipe_start(r8a66597, pipenum); /* trigger once */
drivers/usb/gadget/udc/r8a66597-udc.c
759
pipe_irq_enable(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
76
r8a66597_bset(r8a66597, CTRE, INTENB0);
drivers/usb/gadget/udc/r8a66597-udc.c
761
pipe_change(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
762
sudmac_start(r8a66597, ep, req);
drivers/usb/gadget/udc/r8a66597-udc.c
763
pipe_start(r8a66597, pipenum); /* trigger once */
drivers/usb/gadget/udc/r8a66597-udc.c
77
r8a66597_bset(r8a66597, BEMPE | BRDYE, INTENB0);
drivers/usb/gadget/udc/r8a66597-udc.c
780
ctsq = r8a66597_read(ep->r8a66597, INTSTS0) & CTSQ;
drivers/usb/gadget/udc/r8a66597-udc.c
79
r8a66597_bset(r8a66597, DPRPU, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
791
control_end(ep->r8a66597, 0);
drivers/usb/gadget/udc/r8a66597-udc.c
794
dev_err(r8a66597_to_dev(ep->r8a66597),
drivers/usb/gadget/udc/r8a66597-udc.c
800
static void init_controller(struct r8a66597 *r8a66597)
drivers/usb/gadget/udc/r8a66597-udc.c
802
u16 vif = r8a66597->pdata->vif ? LDRV : 0;
drivers/usb/gadget/udc/r8a66597-udc.c
803
u16 irq_sense = r8a66597->irq_sense_low ? INTL : 0;
drivers/usb/gadget/udc/r8a66597-udc.c
804
u16 endian = r8a66597->pdata->endian ? BIGEND : 0;
drivers/usb/gadget/udc/r8a66597-udc.c
806
if (r8a66597->pdata->on_chip) {
drivers/usb/gadget/udc/r8a66597-udc.c
807
if (r8a66597->pdata->buswait)
drivers/usb/gadget/udc/r8a66597-udc.c
808
r8a66597_write(r8a66597, r8a66597->pdata->buswait,
drivers/usb/gadget/udc/r8a66597-udc.c
811
r8a66597_write(r8a66597, 0x0f, SYSCFG1);
drivers/usb/gadget/udc/r8a66597-udc.c
812
r8a66597_bset(r8a66597, HSE, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
814
r8a66597_bclr(r8a66597, USBE, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
815
r8a66597_bclr(r8a66597, DPRPU, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
816
r8a66597_bset(r8a66597, USBE, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
818
r8a66597_bset(r8a66597, SCKE, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
82
static void r8a66597_usb_disconnect(struct r8a66597 *r8a66597)
drivers/usb/gadget/udc/r8a66597-udc.c
820
r8a66597_bset(r8a66597, irq_sense, INTENB1);
drivers/usb/gadget/udc/r8a66597-udc.c
821
r8a66597_write(r8a66597, BURST | CPU_ADR_RD_WR,
drivers/usb/gadget/udc/r8a66597-udc.c
824
r8a66597_bset(r8a66597, vif | endian, PINCFG);
drivers/usb/gadget/udc/r8a66597-udc.c
825
r8a66597_bset(r8a66597, HSE, SYSCFG0); /* High spd */
drivers/usb/gadget/udc/r8a66597-udc.c
826
r8a66597_mdfy(r8a66597, get_xtal_from_pdata(r8a66597->pdata),
drivers/usb/gadget/udc/r8a66597-udc.c
829
r8a66597_bclr(r8a66597, USBE, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
83
__releases(r8a66597->lock)
drivers/usb/gadget/udc/r8a66597-udc.c
830
r8a66597_bclr(r8a66597, DPRPU, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
831
r8a66597_bset(r8a66597, USBE, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
833
r8a66597_bset(r8a66597, XCKE, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
837
r8a66597_bset(r8a66597, PLLC, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
84
__acquires(r8a66597->lock)
drivers/usb/gadget/udc/r8a66597-udc.c
841
r8a66597_bset(r8a66597, SCKE, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
843
r8a66597_bset(r8a66597, irq_sense, INTENB1);
drivers/usb/gadget/udc/r8a66597-udc.c
844
r8a66597_write(r8a66597, BURST | CPU_ADR_RD_WR,
drivers/usb/gadget/udc/r8a66597-udc.c
849
static void disable_controller(struct r8a66597 *r8a66597)
drivers/usb/gadget/udc/r8a66597-udc.c
851
if (r8a66597->pdata->on_chip) {
drivers/usb/gadget/udc/r8a66597-udc.c
852
r8a66597_bset(r8a66597, SCKE, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
853
r8a66597_bclr(r8a66597, UTST, TESTMODE);
drivers/usb/gadget/udc/r8a66597-udc.c
856
r8a66597_write(r8a66597, 0, INTENB0);
drivers/usb/gadget/udc/r8a66597-udc.c
857
r8a66597_write(r8a66597, 0, INTENB1);
drivers/usb/gadget/udc/r8a66597-udc.c
858
r8a66597_write(r8a66597, 0, BRDYENB);
drivers/usb/gadget/udc/r8a66597-udc.c
859
r8a66597_write(r8a66597, 0, BEMPENB);
drivers/usb/gadget/udc/r8a66597-udc.c
86
r8a66597_bclr(r8a66597, CTRE, INTENB0);
drivers/usb/gadget/udc/r8a66597-udc.c
860
r8a66597_write(r8a66597, 0, NRDYENB);
drivers/usb/gadget/udc/r8a66597-udc.c
863
r8a66597_write(r8a66597, 0, BRDYSTS);
drivers/usb/gadget/udc/r8a66597-udc.c
864
r8a66597_write(r8a66597, 0, NRDYSTS);
drivers/usb/gadget/udc/r8a66597-udc.c
865
r8a66597_write(r8a66597, 0, BEMPSTS);
drivers/usb/gadget/udc/r8a66597-udc.c
867
r8a66597_bclr(r8a66597, USBE, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
868
r8a66597_bclr(r8a66597, SCKE, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
87
r8a66597_bclr(r8a66597, BEMPE | BRDYE, INTENB0);
drivers/usb/gadget/udc/r8a66597-udc.c
871
r8a66597_bclr(r8a66597, UTST, TESTMODE);
drivers/usb/gadget/udc/r8a66597-udc.c
872
r8a66597_bclr(r8a66597, SCKE, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
874
r8a66597_bclr(r8a66597, PLLC, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
877
r8a66597_bclr(r8a66597, XCKE, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
88
r8a66597_bclr(r8a66597, DPRPU, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
881
static void r8a66597_start_xclock(struct r8a66597 *r8a66597)
drivers/usb/gadget/udc/r8a66597-udc.c
885
if (!r8a66597->pdata->on_chip) {
drivers/usb/gadget/udc/r8a66597-udc.c
886
tmp = r8a66597_read(r8a66597, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
888
r8a66597_bset(r8a66597, XCKE, SYSCFG0);
drivers/usb/gadget/udc/r8a66597-udc.c
90
r8a66597->gadget.speed = USB_SPEED_UNKNOWN;
drivers/usb/gadget/udc/r8a66597-udc.c
900
__releases(r8a66597->lock)
drivers/usb/gadget/udc/r8a66597-udc.c
901
__acquires(r8a66597->lock)
drivers/usb/gadget/udc/r8a66597-udc.c
91
spin_unlock(&r8a66597->lock);
drivers/usb/gadget/udc/r8a66597-udc.c
913
if (ep->r8a66597->gadget.speed == USB_SPEED_UNKNOWN)
drivers/usb/gadget/udc/r8a66597-udc.c
92
r8a66597->driver->disconnect(&r8a66597->gadget);
drivers/usb/gadget/udc/r8a66597-udc.c
922
sudmac_free_channel(ep->r8a66597, ep, req);
drivers/usb/gadget/udc/r8a66597-udc.c
924
spin_unlock(&ep->r8a66597->lock);
drivers/usb/gadget/udc/r8a66597-udc.c
926
spin_lock(&ep->r8a66597->lock);
drivers/usb/gadget/udc/r8a66597-udc.c
93
spin_lock(&r8a66597->lock);
drivers/usb/gadget/udc/r8a66597-udc.c
943
struct r8a66597 *r8a66597 = ep->r8a66597;
drivers/usb/gadget/udc/r8a66597-udc.c
945
pipe_change(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
946
r8a66597_bset(r8a66597, ISEL, ep->fifosel);
drivers/usb/gadget/udc/r8a66597-udc.c
95
disable_controller(r8a66597);
drivers/usb/gadget/udc/r8a66597-udc.c
950
tmp = r8a66597_read(r8a66597, ep->fifoctr);
drivers/usb/gadget/udc/r8a66597-udc.c
952
dev_err(r8a66597_to_dev(r8a66597),
drivers/usb/gadget/udc/r8a66597-udc.c
96
init_controller(r8a66597);
drivers/usb/gadget/udc/r8a66597-udc.c
961
bufsize = get_buffer_size(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
968
r8a66597_write_fifo(r8a66597, ep, buf, size);
drivers/usb/gadget/udc/r8a66597-udc.c
97
r8a66597_bset(r8a66597, VBSE, INTENB0);
drivers/usb/gadget/udc/r8a66597-udc.c
970
r8a66597_bset(r8a66597, BVAL, ep->fifoctr);
drivers/usb/gadget/udc/r8a66597-udc.c
98
INIT_LIST_HEAD(&r8a66597->ep[0].queue);
drivers/usb/gadget/udc/r8a66597-udc.c
980
disable_irq_ready(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
981
disable_irq_empty(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
983
disable_irq_ready(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
984
enable_irq_empty(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
986
pipe_start(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.c
997
struct r8a66597 *r8a66597 = ep->r8a66597;
drivers/usb/gadget/udc/r8a66597-udc.c
999
pipe_change(r8a66597, pipenum);
drivers/usb/gadget/udc/r8a66597-udc.h
118
container_of(_gadget, struct r8a66597, gadget)
drivers/usb/gadget/udc/r8a66597-udc.h
119
#define r8a66597_to_gadget(r8a66597) (&r8a66597->gadget)
drivers/usb/gadget/udc/r8a66597-udc.h
120
#define r8a66597_to_dev(r8a66597) (r8a66597->gadget.dev.parent)
drivers/usb/gadget/udc/r8a66597-udc.h
122
static inline u16 r8a66597_read(struct r8a66597 *r8a66597, unsigned long offset)
drivers/usb/gadget/udc/r8a66597-udc.h
124
return ioread16(r8a66597->reg + offset);
drivers/usb/gadget/udc/r8a66597-udc.h
127
static inline void r8a66597_read_fifo(struct r8a66597 *r8a66597,
drivers/usb/gadget/udc/r8a66597-udc.h
132
void __iomem *fifoaddr = r8a66597->reg + offset;
drivers/usb/gadget/udc/r8a66597-udc.h
136
if (r8a66597->pdata->on_chip) {
drivers/usb/gadget/udc/r8a66597-udc.h
173
static inline void r8a66597_write(struct r8a66597 *r8a66597, u16 val,
drivers/usb/gadget/udc/r8a66597-udc.h
176
iowrite16(val, r8a66597->reg + offset);
drivers/usb/gadget/udc/r8a66597-udc.h
179
static inline void r8a66597_mdfy(struct r8a66597 *r8a66597,
drivers/usb/gadget/udc/r8a66597-udc.h
183
tmp = r8a66597_read(r8a66597, offset);
drivers/usb/gadget/udc/r8a66597-udc.h
186
r8a66597_write(r8a66597, tmp, offset);
drivers/usb/gadget/udc/r8a66597-udc.h
189
#define r8a66597_bclr(r8a66597, val, offset) \
drivers/usb/gadget/udc/r8a66597-udc.h
190
r8a66597_mdfy(r8a66597, 0, val, offset)
drivers/usb/gadget/udc/r8a66597-udc.h
191
#define r8a66597_bset(r8a66597, val, offset) \
drivers/usb/gadget/udc/r8a66597-udc.h
192
r8a66597_mdfy(r8a66597, val, 0, offset)
drivers/usb/gadget/udc/r8a66597-udc.h
194
static inline void r8a66597_write_fifo(struct r8a66597 *r8a66597,
drivers/usb/gadget/udc/r8a66597-udc.h
199
void __iomem *fifoaddr = r8a66597->reg + ep->fifoaddr;
drivers/usb/gadget/udc/r8a66597-udc.h
203
if (r8a66597->pdata->on_chip) {
drivers/usb/gadget/udc/r8a66597-udc.h
220
if (!(r8a66597_read(r8a66597, CFIFOSEL) & BIGEND)) {
drivers/usb/gadget/udc/r8a66597-udc.h
221
if (r8a66597->pdata->on_chip)
drivers/usb/gadget/udc/r8a66597-udc.h
227
if (r8a66597->pdata->wr0_shorted_to_wr1)
drivers/usb/gadget/udc/r8a66597-udc.h
228
r8a66597_bclr(r8a66597, MBW_16, ep->fifosel);
drivers/usb/gadget/udc/r8a66597-udc.h
231
if (r8a66597->pdata->wr0_shorted_to_wr1)
drivers/usb/gadget/udc/r8a66597-udc.h
232
r8a66597_bclr(r8a66597, MBW_16, ep->fifosel);
drivers/usb/gadget/udc/r8a66597-udc.h
257
static inline u32 r8a66597_sudmac_read(struct r8a66597 *r8a66597,
drivers/usb/gadget/udc/r8a66597-udc.h
260
return ioread32(r8a66597->sudmac_reg + offset);
drivers/usb/gadget/udc/r8a66597-udc.h
263
static inline void r8a66597_sudmac_write(struct r8a66597 *r8a66597, u32 val,
drivers/usb/gadget/udc/r8a66597-udc.h
266
iowrite32(val, r8a66597->sudmac_reg + offset);
drivers/usb/gadget/udc/r8a66597-udc.h
273
#define enable_irq_ready(r8a66597, pipenum) \
drivers/usb/gadget/udc/r8a66597-udc.h
274
enable_pipe_irq(r8a66597, pipenum, BRDYENB)
drivers/usb/gadget/udc/r8a66597-udc.h
275
#define disable_irq_ready(r8a66597, pipenum) \
drivers/usb/gadget/udc/r8a66597-udc.h
276
disable_pipe_irq(r8a66597, pipenum, BRDYENB)
drivers/usb/gadget/udc/r8a66597-udc.h
277
#define enable_irq_empty(r8a66597, pipenum) \
drivers/usb/gadget/udc/r8a66597-udc.h
278
enable_pipe_irq(r8a66597, pipenum, BEMPENB)
drivers/usb/gadget/udc/r8a66597-udc.h
279
#define disable_irq_empty(r8a66597, pipenum) \
drivers/usb/gadget/udc/r8a66597-udc.h
280
disable_pipe_irq(r8a66597, pipenum, BEMPENB)
drivers/usb/gadget/udc/r8a66597-udc.h
281
#define enable_irq_nrdy(r8a66597, pipenum) \
drivers/usb/gadget/udc/r8a66597-udc.h
282
enable_pipe_irq(r8a66597, pipenum, NRDYENB)
drivers/usb/gadget/udc/r8a66597-udc.h
283
#define disable_irq_nrdy(r8a66597, pipenum) \
drivers/usb/gadget/udc/r8a66597-udc.h
284
disable_pipe_irq(r8a66597, pipenum, NRDYENB)
drivers/usb/gadget/udc/r8a66597-udc.h
40
#define r8a66597_is_sudmac(r8a66597) (r8a66597->pdata->sudmac)
drivers/usb/gadget/udc/r8a66597-udc.h
57
struct r8a66597 *r8a66597;
drivers/usb/host/r8a66597-hcd.c
1006
r8a66597_root_hub_start_polling(r8a66597);
drivers/usb/host/r8a66597-hcd.c
1010
static void r8a66597_check_syssts(struct r8a66597 *r8a66597, int port,
drivers/usb/host/r8a66597-hcd.c
1012
__releases(r8a66597->lock)
drivers/usb/host/r8a66597-hcd.c
1013
__acquires(r8a66597->lock)
drivers/usb/host/r8a66597-hcd.c
1016
r8a66597_write(r8a66597, ~ATTCH, get_intsts_reg(port));
drivers/usb/host/r8a66597-hcd.c
1017
r8a66597_bset(r8a66597, ATTCHE, get_intenb_reg(port));
drivers/usb/host/r8a66597-hcd.c
1020
r8a66597_bset(r8a66597, HSE, get_syscfg_reg(port));
drivers/usb/host/r8a66597-hcd.c
1022
r8a66597_bclr(r8a66597, HSE, get_syscfg_reg(port));
drivers/usb/host/r8a66597-hcd.c
1024
r8a66597_write(r8a66597, ~DTCH, get_intsts_reg(port));
drivers/usb/host/r8a66597-hcd.c
1025
r8a66597_bset(r8a66597, DTCHE, get_intenb_reg(port));
drivers/usb/host/r8a66597-hcd.c
1027
if (r8a66597->bus_suspended)
drivers/usb/host/r8a66597-hcd.c
1028
usb_hcd_resume_root_hub(r8a66597_to_hcd(r8a66597));
drivers/usb/host/r8a66597-hcd.c
103
r8a66597_bclr(r8a66597, USBE, SYSCFG0);
drivers/usb/host/r8a66597-hcd.c
1031
spin_unlock(&r8a66597->lock);
drivers/usb/host/r8a66597-hcd.c
1032
usb_hcd_poll_rh_status(r8a66597_to_hcd(r8a66597));
drivers/usb/host/r8a66597-hcd.c
1033
spin_lock(&r8a66597->lock);
drivers/usb/host/r8a66597-hcd.c
1037
static void r8a66597_usb_connect(struct r8a66597 *r8a66597, int port)
drivers/usb/host/r8a66597-hcd.c
1039
u16 speed = get_rh_usb_speed(r8a66597, port);
drivers/usb/host/r8a66597-hcd.c
104
r8a66597_mdfy(r8a66597, get_xtal_from_pdata(r8a66597->pdata),
drivers/usb/host/r8a66597-hcd.c
1040
struct r8a66597_root_hub *rh = &r8a66597->root_hub[port];
drivers/usb/host/r8a66597-hcd.c
1053
static void r8a66597_usb_disconnect(struct r8a66597 *r8a66597, int port)
drivers/usb/host/r8a66597-hcd.c
1055
struct r8a66597_device *dev = r8a66597->root_hub[port].dev;
drivers/usb/host/r8a66597-hcd.c
1057
disable_r8a66597_pipe_all(r8a66597, dev);
drivers/usb/host/r8a66597-hcd.c
1058
free_usb_address(r8a66597, dev, 0);
drivers/usb/host/r8a66597-hcd.c
1060
start_root_hub_sampling(r8a66597, port, 0);
drivers/usb/host/r8a66597-hcd.c
1064
static void prepare_setup_packet(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597-hcd.c
1071
r8a66597_write(r8a66597, make_devsel(td->address) | td->maxpacket,
drivers/usb/host/r8a66597-hcd.c
1073
r8a66597_write(r8a66597, ~(SIGN | SACK), INTSTS1);
drivers/usb/host/r8a66597-hcd.c
1076
r8a66597_write(r8a66597, le16_to_cpu(p[i]), setup_addr);
drivers/usb/host/r8a66597-hcd.c
1079
r8a66597_write(r8a66597, SUREQ, DCPCTR);
drivers/usb/host/r8a66597-hcd.c
108
r8a66597_bset(r8a66597, XCKE, SYSCFG0);
drivers/usb/host/r8a66597-hcd.c
1083
static void prepare_packet_read(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597-hcd.c
1089
r8a66597_bclr(r8a66597, R8A66597_DIR, DCPCFG);
drivers/usb/host/r8a66597-hcd.c
1090
r8a66597_mdfy(r8a66597, 0, ISEL | CURPIPE, CFIFOSEL);
drivers/usb/host/r8a66597-hcd.c
1091
r8a66597_reg_wait(r8a66597, CFIFOSEL, CURPIPE, 0);
drivers/usb/host/r8a66597-hcd.c
1093
r8a66597_pipe_toggle(r8a66597, td->pipe, 1);
drivers/usb/host/r8a66597-hcd.c
1094
r8a66597_write(r8a66597, BCLR, CFIFOCTR);
drivers/usb/host/r8a66597-hcd.c
1096
pipe_irq_disable(r8a66597, td->pipenum);
drivers/usb/host/r8a66597-hcd.c
1097
pipe_start(r8a66597, td->pipe);
drivers/usb/host/r8a66597-hcd.c
1098
pipe_irq_enable(r8a66597, urb, td->pipenum);
drivers/usb/host/r8a66597-hcd.c
1101
pipe_irq_disable(r8a66597, td->pipenum);
drivers/usb/host/r8a66597-hcd.c
1102
pipe_setting(r8a66597, td);
drivers/usb/host/r8a66597-hcd.c
1103
pipe_stop(r8a66597, td->pipe);
drivers/usb/host/r8a66597-hcd.c
1104
r8a66597_write(r8a66597, ~(1 << td->pipenum), BRDYSTS);
drivers/usb/host/r8a66597-hcd.c
1107
r8a66597_write(r8a66597, TRCLR,
drivers/usb/host/r8a66597-hcd.c
1109
r8a66597_write(r8a66597,
drivers/usb/host/r8a66597-hcd.c
111
tmp = r8a66597_read(r8a66597, SYSCFG0);
drivers/usb/host/r8a66597-hcd.c
1114
r8a66597_bset(r8a66597, TRENB,
drivers/usb/host/r8a66597-hcd.c
1118
pipe_start(r8a66597, td->pipe);
drivers/usb/host/r8a66597-hcd.c
1119
pipe_irq_enable(r8a66597, urb, td->pipenum);
drivers/usb/host/r8a66597-hcd.c
1125
static void prepare_packet_write(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597-hcd.c
1132
pipe_stop(r8a66597, td->pipe);
drivers/usb/host/r8a66597-hcd.c
1133
r8a66597_bset(r8a66597, R8A66597_DIR, DCPCFG);
drivers/usb/host/r8a66597-hcd.c
1134
r8a66597_mdfy(r8a66597, ISEL, ISEL | CURPIPE, CFIFOSEL);
drivers/usb/host/r8a66597-hcd.c
1135
r8a66597_reg_wait(r8a66597, CFIFOSEL, CURPIPE, 0);
drivers/usb/host/r8a66597-hcd.c
1137
r8a66597_pipe_toggle(r8a66597, td->pipe, 1);
drivers/usb/host/r8a66597-hcd.c
1138
r8a66597_write(r8a66597, BCLR, CFIFOCTR);
drivers/usb/host/r8a66597-hcd.c
1142
pipe_setting(r8a66597, td);
drivers/usb/host/r8a66597-hcd.c
1144
r8a66597_bclr(r8a66597, TRENB, td->pipe->pipetre);
drivers/usb/host/r8a66597-hcd.c
1146
r8a66597_write(r8a66597, ~(1 << td->pipenum), BRDYSTS);
drivers/usb/host/r8a66597-hcd.c
1148
fifo_change_from_pipe(r8a66597, td->pipe);
drivers/usb/host/r8a66597-hcd.c
1149
tmp = r8a66597_read(r8a66597, td->pipe->fifoctr);
drivers/usb/host/r8a66597-hcd.c
1151
pipe_irq_enable(r8a66597, urb, td->pipenum);
drivers/usb/host/r8a66597-hcd.c
1153
packet_write(r8a66597, td->pipenum);
drivers/usb/host/r8a66597-hcd.c
1154
pipe_start(r8a66597, td->pipe);
drivers/usb/host/r8a66597-hcd.c
1158
static void prepare_status_packet(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597-hcd.c
1163
r8a66597_pipe_toggle(r8a66597, td->pipe, 1);
drivers/usb/host/r8a66597-hcd.c
1164
pipe_stop(r8a66597, td->pipe);
drivers/usb/host/r8a66597-hcd.c
1167
r8a66597_bset(r8a66597, R8A66597_DIR, DCPCFG);
drivers/usb/host/r8a66597-hcd.c
1168
r8a66597_mdfy(r8a66597, ISEL, ISEL | CURPIPE, CFIFOSEL);
drivers/usb/host/r8a66597-hcd.c
1169
r8a66597_reg_wait(r8a66597, CFIFOSEL, CURPIPE, 0);
drivers/usb/host/r8a66597-hcd.c
1170
r8a66597_write(r8a66597, ~BEMP0, BEMPSTS);
drivers/usb/host/r8a66597-hcd.c
1171
r8a66597_write(r8a66597, BCLR | BVAL, CFIFOCTR);
drivers/usb/host/r8a66597-hcd.c
1172
enable_irq_empty(r8a66597, 0);
drivers/usb/host/r8a66597-hcd.c
1174
r8a66597_bclr(r8a66597, R8A66597_DIR, DCPCFG);
drivers/usb/host/r8a66597-hcd.c
1175
r8a66597_mdfy(r8a66597, 0, ISEL | CURPIPE, CFIFOSEL);
drivers/usb/host/r8a66597-hcd.c
1176
r8a66597_reg_wait(r8a66597, CFIFOSEL, CURPIPE, 0);
drivers/usb/host/r8a66597-hcd.c
1177
r8a66597_write(r8a66597, BCLR, CFIFOCTR);
drivers/usb/host/r8a66597-hcd.c
1178
enable_irq_ready(r8a66597, 0);
drivers/usb/host/r8a66597-hcd.c
1180
enable_irq_nrdy(r8a66597, 0);
drivers/usb/host/r8a66597-hcd.c
1181
pipe_start(r8a66597, td->pipe);
drivers/usb/host/r8a66597-hcd.c
1194
static int start_transfer(struct r8a66597 *r8a66597, struct r8a66597_td *td)
drivers/usb/host/r8a66597-hcd.c
1202
td->urb->setup_packet[2] = alloc_usb_address(r8a66597,
drivers/usb/host/r8a66597-hcd.c
1207
prepare_setup_packet(r8a66597, td);
drivers/usb/host/r8a66597-hcd.c
1210
prepare_packet_read(r8a66597, td);
drivers/usb/host/r8a66597-hcd.c
1213
prepare_packet_write(r8a66597, td);
drivers/usb/host/r8a66597-hcd.c
1216
prepare_status_packet(r8a66597, td);
drivers/usb/host/r8a66597-hcd.c
122
static void r8a66597_clock_disable(struct r8a66597 *r8a66597)
drivers/usb/host/r8a66597-hcd.c
124
r8a66597_bclr(r8a66597, SCKE, SYSCFG0);
drivers/usb/host/r8a66597-hcd.c
1242
static void set_td_timer(struct r8a66597 *r8a66597, struct r8a66597_td *td)
drivers/usb/host/r8a66597-hcd.c
1248
if (!list_empty(&r8a66597->pipe_queue[td->pipenum]) &&
drivers/usb/host/r8a66597-hcd.c
1250
r8a66597->timeout_map |= 1 << td->pipenum;
drivers/usb/host/r8a66597-hcd.c
1261
mod_timer(&r8a66597->timers[td->pipenum].td,
drivers/usb/host/r8a66597-hcd.c
1267
static void finish_request(struct r8a66597 *r8a66597, struct r8a66597_td *td,
drivers/usb/host/r8a66597-hcd.c
1269
__releases(r8a66597->lock) __acquires(r8a66597->lock)
drivers/usb/host/r8a66597-hcd.c
127
if (r8a66597->pdata->on_chip) {
drivers/usb/host/r8a66597-hcd.c
1272
struct usb_hcd *hcd = r8a66597_to_hcd(r8a66597);
drivers/usb/host/r8a66597-hcd.c
1274
r8a66597->timeout_map &= ~(1 << pipenum);
drivers/usb/host/r8a66597-hcd.c
1278
r8a66597->address_map &= ~(1 << urb->setup_packet[2]);
drivers/usb/host/r8a66597-hcd.c
128
clk_disable_unprepare(r8a66597->clk);
drivers/usb/host/r8a66597-hcd.c
1280
pipe_toggle_save(r8a66597, td->pipe, urb);
drivers/usb/host/r8a66597-hcd.c
1285
if (!list_empty(&r8a66597->pipe_queue[pipenum]))
drivers/usb/host/r8a66597-hcd.c
1292
r8a66597_urb_done(r8a66597, urb, status);
drivers/usb/host/r8a66597-hcd.c
1296
td = r8a66597_get_td(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
130
r8a66597_bclr(r8a66597, PLLC, SYSCFG0);
drivers/usb/host/r8a66597-hcd.c
1300
start_transfer(r8a66597, td);
drivers/usb/host/r8a66597-hcd.c
1301
set_td_timer(r8a66597, td);
drivers/usb/host/r8a66597-hcd.c
1305
static void packet_read(struct r8a66597 *r8a66597, u16 pipenum)
drivers/usb/host/r8a66597-hcd.c
131
r8a66597_bclr(r8a66597, XCKE, SYSCFG0);
drivers/usb/host/r8a66597-hcd.c
1310
struct r8a66597_td *td = r8a66597_get_td(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
1319
fifo_change_from_pipe(r8a66597, td->pipe);
drivers/usb/host/r8a66597-hcd.c
132
r8a66597_bclr(r8a66597, USBE, SYSCFG0);
drivers/usb/host/r8a66597-hcd.c
1320
tmp = r8a66597_read(r8a66597, td->pipe->fifoctr);
drivers/usb/host/r8a66597-hcd.c
1322
pipe_stop(r8a66597, td->pipe);
drivers/usb/host/r8a66597-hcd.c
1323
pipe_irq_disable(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
1325
finish_request(r8a66597, td, pipenum, td->urb, -EPIPE);
drivers/usb/host/r8a66597-hcd.c
136
static void r8a66597_enable_port(struct r8a66597 *r8a66597, int port)
drivers/usb/host/r8a66597-hcd.c
1364
pipe_stop(r8a66597, td->pipe);
drivers/usb/host/r8a66597-hcd.c
1365
pipe_irq_disable(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
1372
r8a66597_write(r8a66597, BCLR, td->pipe->fifoctr);
drivers/usb/host/r8a66597-hcd.c
1374
r8a66597_read_fifo(r8a66597, td->pipe->fifoaddr,
drivers/usb/host/r8a66597-hcd.c
1379
finish_request(r8a66597, td, pipenum, urb, status);
drivers/usb/host/r8a66597-hcd.c
1382
static void packet_write(struct r8a66597 *r8a66597, u16 pipenum)
drivers/usb/host/r8a66597-hcd.c
1387
struct r8a66597_td *td = r8a66597_get_td(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
1394
fifo_change_from_pipe(r8a66597, td->pipe);
drivers/usb/host/r8a66597-hcd.c
1395
tmp = r8a66597_read(r8a66597, td->pipe->fifoctr);
drivers/usb/host/r8a66597-hcd.c
1397
pipe_stop(r8a66597, td->pipe);
drivers/usb/host/r8a66597-hcd.c
1398
pipe_irq_disable(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
1400
finish_request(r8a66597, td, pipenum, urb, -EPIPE);
drivers/usb/host/r8a66597-hcd.c
141
r8a66597_bset(r8a66597, val, get_syscfg_reg(port));
drivers/usb/host/r8a66597-hcd.c
1419
r8a66597_write(r8a66597, ~(1 << pipenum), BEMPSTS);
drivers/usb/host/r8a66597-hcd.c
142
r8a66597_bset(r8a66597, HSE, get_syscfg_reg(port));
drivers/usb/host/r8a66597-hcd.c
1421
r8a66597_write_fifo(r8a66597, td->pipe, buf, size);
drivers/usb/host/r8a66597-hcd.c
1423
r8a66597_write(r8a66597, BVAL, td->pipe->fifoctr);
drivers/usb/host/r8a66597-hcd.c
1436
disable_irq_ready(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
1437
enable_irq_empty(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
1439
enable_irq_nrdy(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
144
r8a66597_write(r8a66597, BURST | CPU_ADR_RD_WR, get_dmacfg_reg(port));
drivers/usb/host/r8a66597-hcd.c
1441
pipe_irq_enable(r8a66597, urb, pipenum);
drivers/usb/host/r8a66597-hcd.c
1445
static void check_next_phase(struct r8a66597 *r8a66597, int status)
drivers/usb/host/r8a66597-hcd.c
1447
struct r8a66597_td *td = r8a66597_get_td(r8a66597, 0);
drivers/usb/host/r8a66597-hcd.c
145
r8a66597_bclr(r8a66597, DTCHE, get_intenb_reg(port));
drivers/usb/host/r8a66597-hcd.c
146
r8a66597_bset(r8a66597, ATTCHE, get_intenb_reg(port));
drivers/usb/host/r8a66597-hcd.c
1475
finish_request(r8a66597, td, 0, urb, status);
drivers/usb/host/r8a66597-hcd.c
1477
start_transfer(r8a66597, td);
drivers/usb/host/r8a66597-hcd.c
1480
static int get_urb_error(struct r8a66597 *r8a66597, u16 pipenum)
drivers/usb/host/r8a66597-hcd.c
1482
struct r8a66597_td *td = r8a66597_get_td(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
1485
u16 pid = r8a66597_read(r8a66597, td->pipe->pipectr) & PID;
drivers/usb/host/r8a66597-hcd.c
149
static void r8a66597_disable_port(struct r8a66597 *r8a66597, int port)
drivers/usb/host/r8a66597-hcd.c
1495
static void irq_pipe_ready(struct r8a66597 *r8a66597)
drivers/usb/host/r8a66597-hcd.c
1502
mask = r8a66597_read(r8a66597, BRDYSTS)
drivers/usb/host/r8a66597-hcd.c
1503
& r8a66597_read(r8a66597, BRDYENB);
drivers/usb/host/r8a66597-hcd.c
1504
r8a66597_write(r8a66597, ~mask, BRDYSTS);
drivers/usb/host/r8a66597-hcd.c
1506
td = r8a66597_get_td(r8a66597, 0);
drivers/usb/host/r8a66597-hcd.c
1508
packet_read(r8a66597, 0);
drivers/usb/host/r8a66597-hcd.c
1510
pipe_irq_disable(r8a66597, 0);
drivers/usb/host/r8a66597-hcd.c
1511
check_next_phase(r8a66597, 0);
drivers/usb/host/r8a66597-hcd.c
1517
td = r8a66597_get_td(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
1522
packet_read(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
1524
packet_write(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
1529
static void irq_pipe_empty(struct r8a66597 *r8a66597)
drivers/usb/host/r8a66597-hcd.c
153
r8a66597_write(r8a66597, 0, get_intenb_reg(port));
drivers/usb/host/r8a66597-hcd.c
1537
mask = r8a66597_read(r8a66597, BEMPSTS)
drivers/usb/host/r8a66597-hcd.c
1538
& r8a66597_read(r8a66597, BEMPENB);
drivers/usb/host/r8a66597-hcd.c
1539
r8a66597_write(r8a66597, ~mask, BEMPSTS);
drivers/usb/host/r8a66597-hcd.c
154
r8a66597_write(r8a66597, 0, get_intsts_reg(port));
drivers/usb/host/r8a66597-hcd.c
1541
cfifo_change(r8a66597, 0);
drivers/usb/host/r8a66597-hcd.c
1542
td = r8a66597_get_td(r8a66597, 0);
drivers/usb/host/r8a66597-hcd.c
1544
disable_irq_empty(r8a66597, 0);
drivers/usb/host/r8a66597-hcd.c
1545
check_next_phase(r8a66597, 0);
drivers/usb/host/r8a66597-hcd.c
1552
td = r8a66597_get_td(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
1556
tmp = r8a66597_read(r8a66597, td->pipe->pipectr);
drivers/usb/host/r8a66597-hcd.c
1558
disable_irq_empty(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
1559
pipe_irq_disable(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
156
r8a66597_port_power(r8a66597, port, 0);
drivers/usb/host/r8a66597-hcd.c
1560
finish_request(r8a66597, td, pipenum, td->urb,
drivers/usb/host/r8a66597-hcd.c
1567
static void irq_pipe_nrdy(struct r8a66597 *r8a66597)
drivers/usb/host/r8a66597-hcd.c
1574
mask = r8a66597_read(r8a66597, NRDYSTS)
drivers/usb/host/r8a66597-hcd.c
1575
& r8a66597_read(r8a66597, NRDYENB);
drivers/usb/host/r8a66597-hcd.c
1576
r8a66597_write(r8a66597, ~mask, NRDYSTS);
drivers/usb/host/r8a66597-hcd.c
1578
cfifo_change(r8a66597, 0);
drivers/usb/host/r8a66597-hcd.c
1579
status = get_urb_error(r8a66597, 0);
drivers/usb/host/r8a66597-hcd.c
1580
pipe_irq_disable(r8a66597, 0);
drivers/usb/host/r8a66597-hcd.c
1581
check_next_phase(r8a66597, status);
drivers/usb/host/r8a66597-hcd.c
1588
td = r8a66597_get_td(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
159
tmp = r8a66597_read(r8a66597, SOFCFG) & EDGESTS;
drivers/usb/host/r8a66597-hcd.c
1592
status = get_urb_error(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
1593
pipe_irq_disable(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
1594
pipe_stop(r8a66597, td->pipe);
drivers/usb/host/r8a66597-hcd.c
1595
finish_request(r8a66597, td, pipenum, td->urb, status);
drivers/usb/host/r8a66597-hcd.c
1602
struct r8a66597 *r8a66597 = hcd_to_r8a66597(hcd);
drivers/usb/host/r8a66597-hcd.c
1608
spin_lock(&r8a66597->lock);
drivers/usb/host/r8a66597-hcd.c
1610
intsts0 = r8a66597_read(r8a66597, INTSTS0);
drivers/usb/host/r8a66597-hcd.c
1611
intsts1 = r8a66597_read(r8a66597, INTSTS1);
drivers/usb/host/r8a66597-hcd.c
1612
intsts2 = r8a66597_read(r8a66597, INTSTS2);
drivers/usb/host/r8a66597-hcd.c
1613
intenb0 = r8a66597_read(r8a66597, INTENB0);
drivers/usb/host/r8a66597-hcd.c
1614
intenb1 = r8a66597_read(r8a66597, INTENB1);
drivers/usb/host/r8a66597-hcd.c
1615
intenb2 = r8a66597_read(r8a66597, INTENB2);
drivers/usb/host/r8a66597-hcd.c
1622
r8a66597_write(r8a66597, ~ATTCH, INTSTS2);
drivers/usb/host/r8a66597-hcd.c
1623
r8a66597_bclr(r8a66597, ATTCHE, INTENB2);
drivers/usb/host/r8a66597-hcd.c
1626
start_root_hub_sampling(r8a66597, 1, 1);
drivers/usb/host/r8a66597-hcd.c
1629
r8a66597_write(r8a66597, ~DTCH, INTSTS2);
drivers/usb/host/r8a66597-hcd.c
1630
r8a66597_bclr(r8a66597, DTCHE, INTENB2);
drivers/usb/host/r8a66597-hcd.c
1631
r8a66597_usb_disconnect(r8a66597, 1);
drivers/usb/host/r8a66597-hcd.c
1634
r8a66597_write(r8a66597, ~BCHG, INTSTS2);
drivers/usb/host/r8a66597-hcd.c
1635
r8a66597_bclr(r8a66597, BCHGE, INTENB2);
drivers/usb/host/r8a66597-hcd.c
1636
usb_hcd_resume_root_hub(r8a66597_to_hcd(r8a66597));
drivers/usb/host/r8a66597-hcd.c
164
r8a66597_bclr(r8a66597, val, get_syscfg_reg(port));
drivers/usb/host/r8a66597-hcd.c
1642
r8a66597_write(r8a66597, ~ATTCH, INTSTS1);
drivers/usb/host/r8a66597-hcd.c
1643
r8a66597_bclr(r8a66597, ATTCHE, INTENB1);
drivers/usb/host/r8a66597-hcd.c
1646
start_root_hub_sampling(r8a66597, 0, 1);
drivers/usb/host/r8a66597-hcd.c
1649
r8a66597_write(r8a66597, ~DTCH, INTSTS1);
drivers/usb/host/r8a66597-hcd.c
165
r8a66597_bclr(r8a66597, HSE, get_syscfg_reg(port));
drivers/usb/host/r8a66597-hcd.c
1650
r8a66597_bclr(r8a66597, DTCHE, INTENB1);
drivers/usb/host/r8a66597-hcd.c
1651
r8a66597_usb_disconnect(r8a66597, 0);
drivers/usb/host/r8a66597-hcd.c
1654
r8a66597_write(r8a66597, ~BCHG, INTSTS1);
drivers/usb/host/r8a66597-hcd.c
1655
r8a66597_bclr(r8a66597, BCHGE, INTENB1);
drivers/usb/host/r8a66597-hcd.c
1656
usb_hcd_resume_root_hub(r8a66597_to_hcd(r8a66597));
drivers/usb/host/r8a66597-hcd.c
1660
r8a66597_write(r8a66597, ~SIGN, INTSTS1);
drivers/usb/host/r8a66597-hcd.c
1661
status = get_urb_error(r8a66597, 0);
drivers/usb/host/r8a66597-hcd.c
1662
check_next_phase(r8a66597, status);
drivers/usb/host/r8a66597-hcd.c
1665
r8a66597_write(r8a66597, ~SACK, INTSTS1);
drivers/usb/host/r8a66597-hcd.c
1666
check_next_phase(r8a66597, 0);
drivers/usb/host/r8a66597-hcd.c
1671
irq_pipe_ready(r8a66597);
drivers/usb/host/r8a66597-hcd.c
1673
irq_pipe_empty(r8a66597);
drivers/usb/host/r8a66597-hcd.c
1675
irq_pipe_nrdy(r8a66597);
drivers/usb/host/r8a66597-hcd.c
1678
spin_unlock(&r8a66597->lock);
drivers/usb/host/r8a66597-hcd.c
168
static int enable_controller(struct r8a66597 *r8a66597)
drivers/usb/host/r8a66597-hcd.c
1683
static void r8a66597_root_hub_control(struct r8a66597 *r8a66597, int port)
drivers/usb/host/r8a66597-hcd.c
1686
struct r8a66597_root_hub *rh = &r8a66597->root_hub[port];
drivers/usb/host/r8a66597-hcd.c
1691
tmp = r8a66597_read(r8a66597, dvstctr_reg);
drivers/usb/host/r8a66597-hcd.c
1693
r8a66597_mdfy(r8a66597, UACT, USBRST | UACT,
drivers/usb/host/r8a66597-hcd.c
1695
r8a66597_root_hub_start_polling(r8a66597);
drivers/usb/host/r8a66597-hcd.c
1697
r8a66597_usb_connect(r8a66597, port);
drivers/usb/host/r8a66597-hcd.c
1701
r8a66597_write(r8a66597, ~ATTCH, get_intsts_reg(port));
drivers/usb/host/r8a66597-hcd.c
1702
r8a66597_bset(r8a66597, ATTCHE, get_intenb_reg(port));
drivers/usb/host/r8a66597-hcd.c
1706
tmp = r8a66597_read(r8a66597, get_syssts_reg(port)) & LNST;
drivers/usb/host/r8a66597-hcd.c
171
u16 vif = r8a66597->pdata->vif ? LDRV : 0;
drivers/usb/host/r8a66597-hcd.c
1710
r8a66597_check_syssts(r8a66597, port, tmp);
drivers/usb/host/r8a66597-hcd.c
1712
r8a66597_root_hub_start_polling(r8a66597);
drivers/usb/host/r8a66597-hcd.c
1716
r8a66597_root_hub_start_polling(r8a66597);
drivers/usb/host/r8a66597-hcd.c
172
u16 irq_sense = r8a66597->irq_sense_low ? INTL : 0;
drivers/usb/host/r8a66597-hcd.c
1725
struct r8a66597 *r8a66597 = timers->r8a66597;
drivers/usb/host/r8a66597-hcd.c
173
u16 endian = r8a66597->pdata->endian ? BIGEND : 0;
drivers/usb/host/r8a66597-hcd.c
1730
spin_lock_irqsave(&r8a66597->lock, flags);
drivers/usb/host/r8a66597-hcd.c
1733
if (!(r8a66597->interval_map & (1 << pipenum)))
drivers/usb/host/r8a66597-hcd.c
1735
if (timer_pending(&r8a66597->timers[pipenum].interval))
drivers/usb/host/r8a66597-hcd.c
1738
td = r8a66597_get_td(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
1740
start_transfer(r8a66597, td);
drivers/usb/host/r8a66597-hcd.c
1743
spin_unlock_irqrestore(&r8a66597->lock, flags);
drivers/usb/host/r8a66597-hcd.c
1749
struct r8a66597 *r8a66597 = timers->r8a66597;
drivers/usb/host/r8a66597-hcd.c
175
ret = r8a66597_clock_enable(r8a66597);
drivers/usb/host/r8a66597-hcd.c
1755
spin_lock_irqsave(&r8a66597->lock, flags);
drivers/usb/host/r8a66597-hcd.c
1757
if (!(r8a66597->timeout_map & (1 << pipenum)))
drivers/usb/host/r8a66597-hcd.c
1759
if (timer_pending(&r8a66597->timers[pipenum].td))
drivers/usb/host/r8a66597-hcd.c
1762
td = r8a66597_get_td(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
1764
r8a66597->timeout_map &= ~(1 << pipenum);
drivers/usb/host/r8a66597-hcd.c
1769
set_td_timer(r8a66597, td);
drivers/usb/host/r8a66597-hcd.c
1774
pipe_stop(r8a66597, pipe);
drivers/usb/host/r8a66597-hcd.c
1780
&r8a66597->pipe_queue[pipenum]);
drivers/usb/host/r8a66597-hcd.c
1781
new_td = r8a66597_get_td(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
1789
start_transfer(r8a66597, new_td);
drivers/usb/host/r8a66597-hcd.c
179
r8a66597_bset(r8a66597, vif & LDRV, PINCFG);
drivers/usb/host/r8a66597-hcd.c
1792
r8a66597->timeout_map &= ~(1 << pipenum);
drivers/usb/host/r8a66597-hcd.c
1794
set_td_timer(r8a66597, new_td);
drivers/usb/host/r8a66597-hcd.c
1797
spin_unlock_irqrestore(&r8a66597->lock, flags);
drivers/usb/host/r8a66597-hcd.c
180
r8a66597_bset(r8a66597, USBE, SYSCFG0);
drivers/usb/host/r8a66597-hcd.c
1802
struct r8a66597 *r8a66597 = timer_container_of(r8a66597, t, rh_timer);
drivers/usb/host/r8a66597-hcd.c
1806
spin_lock_irqsave(&r8a66597->lock, flags);
drivers/usb/host/r8a66597-hcd.c
1808
for (port = 0; port < r8a66597->max_root_hub; port++)
drivers/usb/host/r8a66597-hcd.c
1809
r8a66597_root_hub_control(r8a66597, port);
drivers/usb/host/r8a66597-hcd.c
1811
spin_unlock_irqrestore(&r8a66597->lock, flags);
drivers/usb/host/r8a66597-hcd.c
1814
static int check_pipe_config(struct r8a66597 *r8a66597, struct urb *urb)
drivers/usb/host/r8a66597-hcd.c
1816
struct r8a66597_device *dev = get_urb_to_r8a66597_dev(r8a66597, urb);
drivers/usb/host/r8a66597-hcd.c
182
r8a66597_bset(r8a66597, BEMPE | NRDYE | BRDYE, INTENB0);
drivers/usb/host/r8a66597-hcd.c
1827
struct r8a66597 *r8a66597 = hcd_to_r8a66597(hcd);
drivers/usb/host/r8a66597-hcd.c
183
r8a66597_bset(r8a66597, irq_sense & INTL, SOFCFG);
drivers/usb/host/r8a66597-hcd.c
1830
return enable_controller(r8a66597);
drivers/usb/host/r8a66597-hcd.c
1835
struct r8a66597 *r8a66597 = hcd_to_r8a66597(hcd);
drivers/usb/host/r8a66597-hcd.c
1837
disable_controller(r8a66597);
drivers/usb/host/r8a66597-hcd.c
184
r8a66597_bset(r8a66597, BRDY0, BRDYENB);
drivers/usb/host/r8a66597-hcd.c
1840
static void set_address_zero(struct r8a66597 *r8a66597, struct urb *urb)
drivers/usb/host/r8a66597-hcd.c
1846
get_port_number(r8a66597, urb->dev->devpath,
drivers/usb/host/r8a66597-hcd.c
1848
set_devadd_reg(r8a66597, 0,
drivers/usb/host/r8a66597-hcd.c
185
r8a66597_bset(r8a66597, BEMP0, BEMPENB);
drivers/usb/host/r8a66597-hcd.c
1850
get_parent_r8a66597_address(r8a66597, urb->dev),
drivers/usb/host/r8a66597-hcd.c
1855
static struct r8a66597_td *r8a66597_make_td(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597-hcd.c
187
r8a66597_bset(r8a66597, endian & BIGEND, CFIFOSEL);
drivers/usb/host/r8a66597-hcd.c
1870
td->address = get_urb_to_r8a66597_addr(r8a66597, urb);
drivers/usb/host/r8a66597-hcd.c
188
r8a66597_bset(r8a66597, endian & BIGEND, D0FIFOSEL);
drivers/usb/host/r8a66597-hcd.c
1888
struct r8a66597 *r8a66597 = hcd_to_r8a66597(hcd);
drivers/usb/host/r8a66597-hcd.c
189
r8a66597_bset(r8a66597, endian & BIGEND, D1FIFOSEL);
drivers/usb/host/r8a66597-hcd.c
1893
spin_lock_irqsave(&r8a66597->lock, flags);
drivers/usb/host/r8a66597-hcd.c
1894
if (!get_urb_to_r8a66597_dev(r8a66597, urb)) {
drivers/usb/host/r8a66597-hcd.c
190
r8a66597_bset(r8a66597, TRNENSEL, SOFCFG);
drivers/usb/host/r8a66597-hcd.c
1911
init_pipe_info(r8a66597, urb, hep, &hep->desc);
drivers/usb/host/r8a66597-hcd.c
1914
if (unlikely(check_pipe_config(r8a66597, urb)))
drivers/usb/host/r8a66597-hcd.c
1915
init_pipe_config(r8a66597, urb);
drivers/usb/host/r8a66597-hcd.c
1917
set_address_zero(r8a66597, urb);
drivers/usb/host/r8a66597-hcd.c
1918
td = r8a66597_make_td(r8a66597, urb, hep);
drivers/usb/host/r8a66597-hcd.c
192
r8a66597_bset(r8a66597, SIGNE | SACKE, INTENB1);
drivers/usb/host/r8a66597-hcd.c
1923
if (list_empty(&r8a66597->pipe_queue[td->pipenum]))
drivers/usb/host/r8a66597-hcd.c
1925
list_add_tail(&td->queue, &r8a66597->pipe_queue[td->pipenum]);
drivers/usb/host/r8a66597-hcd.c
1930
r8a66597->interval_map |= 1 << td->pipenum;
drivers/usb/host/r8a66597-hcd.c
1931
mod_timer(&r8a66597->timers[td->pipenum].interval,
drivers/usb/host/r8a66597-hcd.c
1935
ret = start_transfer(r8a66597, td);
drivers/usb/host/r8a66597-hcd.c
194
for (port = 0; port < r8a66597->max_root_hub; port++)
drivers/usb/host/r8a66597-hcd.c
1942
set_td_timer(r8a66597, td);
drivers/usb/host/r8a66597-hcd.c
1948
spin_unlock_irqrestore(&r8a66597->lock, flags);
drivers/usb/host/r8a66597-hcd.c
195
r8a66597_enable_port(r8a66597, port);
drivers/usb/host/r8a66597-hcd.c
1955
struct r8a66597 *r8a66597 = hcd_to_r8a66597(hcd);
drivers/usb/host/r8a66597-hcd.c
1960
spin_lock_irqsave(&r8a66597->lock, flags);
drivers/usb/host/r8a66597-hcd.c
1967
pipe_stop(r8a66597, td->pipe);
drivers/usb/host/r8a66597-hcd.c
1968
pipe_irq_disable(r8a66597, td->pipenum);
drivers/usb/host/r8a66597-hcd.c
1969
disable_irq_empty(r8a66597, td->pipenum);
drivers/usb/host/r8a66597-hcd.c
1970
finish_request(r8a66597, td, td->pipenum, urb, status);
drivers/usb/host/r8a66597-hcd.c
1973
spin_unlock_irqrestore(&r8a66597->lock, flags);
drivers/usb/host/r8a66597-hcd.c
1979
__acquires(r8a66597->lock)
drivers/usb/host/r8a66597-hcd.c
1980
__releases(r8a66597->lock)
drivers/usb/host/r8a66597-hcd.c
1982
struct r8a66597 *r8a66597 = hcd_to_r8a66597(hcd);
drivers/usb/host/r8a66597-hcd.c
1993
spin_lock_irqsave(&r8a66597->lock, flags);
drivers/usb/host/r8a66597-hcd.c
1997
spin_unlock_irqrestore(&r8a66597->lock, flags);
drivers/usb/host/r8a66597-hcd.c
200
static void disable_controller(struct r8a66597 *r8a66597)
drivers/usb/host/r8a66597-hcd.c
2001
pipe_stop(r8a66597, pipe);
drivers/usb/host/r8a66597-hcd.c
2002
pipe_irq_disable(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
2003
disable_irq_empty(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
2004
td = r8a66597_get_td(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
2007
finish_request(r8a66597, td, pipenum, urb, -ESHUTDOWN);
drivers/usb/host/r8a66597-hcd.c
2010
spin_unlock_irqrestore(&r8a66597->lock, flags);
drivers/usb/host/r8a66597-hcd.c
2015
struct r8a66597 *r8a66597 = hcd_to_r8a66597(hcd);
drivers/usb/host/r8a66597-hcd.c
2016
return r8a66597_read(r8a66597, FRMNUM) & 0x03FF;
drivers/usb/host/r8a66597-hcd.c
2034
static struct r8a66597_device *get_r8a66597_device(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597-hcd.c
2038
struct list_head *list = &r8a66597->child_device;
drivers/usb/host/r8a66597-hcd.c
205
r8a66597_write(r8a66597, 0, INTENB0);
drivers/usb/host/r8a66597-hcd.c
2051
static void update_usb_address_map(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597-hcd.c
206
r8a66597_write(r8a66597, 0, INTENB1);
drivers/usb/host/r8a66597-hcd.c
2060
diff = r8a66597->child_connect_map[i] ^ map[i];
drivers/usb/host/r8a66597-hcd.c
207
r8a66597_write(r8a66597, 0, BRDYENB);
drivers/usb/host/r8a66597-hcd.c
2070
set_child_connect_map(r8a66597, addr);
drivers/usb/host/r8a66597-hcd.c
2074
spin_lock_irqsave(&r8a66597->lock, flags);
drivers/usb/host/r8a66597-hcd.c
2075
dev = get_r8a66597_device(r8a66597, addr);
drivers/usb/host/r8a66597-hcd.c
2076
disable_r8a66597_pipe_all(r8a66597, dev);
drivers/usb/host/r8a66597-hcd.c
2077
free_usb_address(r8a66597, dev, 0);
drivers/usb/host/r8a66597-hcd.c
2078
put_child_connect_map(r8a66597, addr);
drivers/usb/host/r8a66597-hcd.c
2079
spin_unlock_irqrestore(&r8a66597->lock, flags);
drivers/usb/host/r8a66597-hcd.c
208
r8a66597_write(r8a66597, 0, BEMPENB);
drivers/usb/host/r8a66597-hcd.c
2085
static void r8a66597_check_detect_child(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597-hcd.c
209
r8a66597_write(r8a66597, 0, NRDYENB);
drivers/usb/host/r8a66597-hcd.c
2097
update_usb_address_map(r8a66597, bus->root_hub, now_map);
drivers/usb/host/r8a66597-hcd.c
2104
struct r8a66597 *r8a66597 = hcd_to_r8a66597(hcd);
drivers/usb/host/r8a66597-hcd.c
2108
r8a66597_check_detect_child(r8a66597, hcd);
drivers/usb/host/r8a66597-hcd.c
2110
spin_lock_irqsave(&r8a66597->lock, flags);
drivers/usb/host/r8a66597-hcd.c
2114
for (i = 0; i < r8a66597->max_root_hub; i++) {
drivers/usb/host/r8a66597-hcd.c
2115
if (r8a66597->root_hub[i].port & 0xffff0000)
drivers/usb/host/r8a66597-hcd.c
2119
spin_unlock_irqrestore(&r8a66597->lock, flags);
drivers/usb/host/r8a66597-hcd.c
212
r8a66597_write(r8a66597, 0, BRDYSTS);
drivers/usb/host/r8a66597-hcd.c
2124
static void r8a66597_hub_descriptor(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597-hcd.c
2129
desc->bNbrPorts = r8a66597->max_root_hub;
drivers/usb/host/r8a66597-hcd.c
213
r8a66597_write(r8a66597, 0, NRDYSTS);
drivers/usb/host/r8a66597-hcd.c
2135
((1 << r8a66597->max_root_hub) - 1) << 1;
drivers/usb/host/r8a66597-hcd.c
214
r8a66597_write(r8a66597, 0, BEMPSTS);
drivers/usb/host/r8a66597-hcd.c
2142
struct r8a66597 *r8a66597 = hcd_to_r8a66597(hcd);
drivers/usb/host/r8a66597-hcd.c
2145
struct r8a66597_root_hub *rh = &r8a66597->root_hub[port];
drivers/usb/host/r8a66597-hcd.c
2150
spin_lock_irqsave(&r8a66597->lock, flags);
drivers/usb/host/r8a66597-hcd.c
216
for (port = 0; port < r8a66597->max_root_hub; port++)
drivers/usb/host/r8a66597-hcd.c
2163
if (wIndex > r8a66597->max_root_hub)
drivers/usb/host/r8a66597-hcd.c
217
r8a66597_disable_port(r8a66597, port);
drivers/usb/host/r8a66597-hcd.c
2175
r8a66597_port_power(r8a66597, port, 0);
drivers/usb/host/r8a66597-hcd.c
2189
r8a66597_hub_descriptor(r8a66597,
drivers/usb/host/r8a66597-hcd.c
219
r8a66597_clock_disable(r8a66597);
drivers/usb/host/r8a66597-hcd.c
2196
if (wIndex > r8a66597->max_root_hub)
drivers/usb/host/r8a66597-hcd.c
2201
if (wIndex > r8a66597->max_root_hub)
drivers/usb/host/r8a66597-hcd.c
2210
r8a66597_port_power(r8a66597, port, 1);
drivers/usb/host/r8a66597-hcd.c
2218
disable_r8a66597_pipe_all(r8a66597, dev);
drivers/usb/host/r8a66597-hcd.c
2219
free_usb_address(r8a66597, dev, 1);
drivers/usb/host/r8a66597-hcd.c
222
static int get_parent_r8a66597_address(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597-hcd.c
2221
r8a66597_mdfy(r8a66597, USBRST, USBRST | UACT,
drivers/usb/host/r8a66597-hcd.c
2223
mod_timer(&r8a66597->rh_timer,
drivers/usb/host/r8a66597-hcd.c
2238
spin_unlock_irqrestore(&r8a66597->lock, flags);
drivers/usb/host/r8a66597-hcd.c
2245
struct r8a66597 *r8a66597 = hcd_to_r8a66597(hcd);
drivers/usb/host/r8a66597-hcd.c
2248
dev_dbg(&r8a66597->device0.udev->dev, "%s\n", __func__);
drivers/usb/host/r8a66597-hcd.c
2250
for (port = 0; port < r8a66597->max_root_hub; port++) {
drivers/usb/host/r8a66597-hcd.c
2251
struct r8a66597_root_hub *rh = &r8a66597->root_hub[port];
drivers/usb/host/r8a66597-hcd.c
2258
r8a66597_bclr(r8a66597, UACT, dvstctr_reg); /* suspend */
drivers/usb/host/r8a66597-hcd.c
2263
r8a66597_bset(r8a66597, RWUPE, dvstctr_reg);
drivers/usb/host/r8a66597-hcd.c
2264
r8a66597_write(r8a66597, ~BCHG, get_intsts_reg(port));
drivers/usb/host/r8a66597-hcd.c
2265
r8a66597_bset(r8a66597, BCHGE, get_intenb_reg(port));
drivers/usb/host/r8a66597-hcd.c
2269
r8a66597->bus_suspended = 1;
drivers/usb/host/r8a66597-hcd.c
2276
struct r8a66597 *r8a66597 = hcd_to_r8a66597(hcd);
drivers/usb/host/r8a66597-hcd.c
2279
dev_dbg(&r8a66597->device0.udev->dev, "%s\n", __func__);
drivers/usb/host/r8a66597-hcd.c
2281
for (port = 0; port < r8a66597->max_root_hub; port++) {
drivers/usb/host/r8a66597-hcd.c
2282
struct r8a66597_root_hub *rh = &r8a66597->root_hub[port];
drivers/usb/host/r8a66597-hcd.c
2291
r8a66597_mdfy(r8a66597, RESUME, RESUME | UACT, dvstctr_reg);
drivers/usb/host/r8a66597-hcd.c
2293
r8a66597_mdfy(r8a66597, UACT, RESUME | UACT, dvstctr_reg);
drivers/usb/host/r8a66597-hcd.c
2306
.hcd_priv_size = sizeof(struct r8a66597),
drivers/usb/host/r8a66597-hcd.c
2341
struct r8a66597 *r8a66597 = dev_get_drvdata(dev);
drivers/usb/host/r8a66597-hcd.c
2346
disable_controller(r8a66597);
drivers/usb/host/r8a66597-hcd.c
2348
for (port = 0; port < r8a66597->max_root_hub; port++) {
drivers/usb/host/r8a66597-hcd.c
2349
struct r8a66597_root_hub *rh = &r8a66597->root_hub[port];
drivers/usb/host/r8a66597-hcd.c
2359
struct r8a66597 *r8a66597 = dev_get_drvdata(dev);
drivers/usb/host/r8a66597-hcd.c
2360
struct usb_hcd *hcd = r8a66597_to_hcd(r8a66597);
drivers/usb/host/r8a66597-hcd.c
2364
enable_controller(r8a66597);
drivers/usb/host/r8a66597-hcd.c
2384
struct r8a66597 *r8a66597 = platform_get_drvdata(pdev);
drivers/usb/host/r8a66597-hcd.c
2385
struct usb_hcd *hcd = r8a66597_to_hcd(r8a66597);
drivers/usb/host/r8a66597-hcd.c
2387
timer_delete_sync(&r8a66597->rh_timer);
drivers/usb/host/r8a66597-hcd.c
2389
iounmap(r8a66597->reg);
drivers/usb/host/r8a66597-hcd.c
2390
if (r8a66597->pdata->on_chip)
drivers/usb/host/r8a66597-hcd.c
2391
clk_put(r8a66597->clk);
drivers/usb/host/r8a66597-hcd.c
2402
struct r8a66597 *r8a66597;
drivers/usb/host/r8a66597-hcd.c
2448
r8a66597 = hcd_to_r8a66597(hcd);
drivers/usb/host/r8a66597-hcd.c
2449
memset(r8a66597, 0, sizeof(struct r8a66597));
drivers/usb/host/r8a66597-hcd.c
2450
platform_set_drvdata(pdev, r8a66597);
drivers/usb/host/r8a66597-hcd.c
2451
r8a66597->pdata = dev_get_platdata(&pdev->dev);
drivers/usb/host/r8a66597-hcd.c
2452
r8a66597->irq_sense_low = irq_trigger == IRQF_TRIGGER_LOW;
drivers/usb/host/r8a66597-hcd.c
2454
if (r8a66597->pdata->on_chip) {
drivers/usb/host/r8a66597-hcd.c
2456
r8a66597->clk = clk_get(&pdev->dev, clk_name);
drivers/usb/host/r8a66597-hcd.c
2457
if (IS_ERR(r8a66597->clk)) {
drivers/usb/host/r8a66597-hcd.c
2460
ret = PTR_ERR(r8a66597->clk);
drivers/usb/host/r8a66597-hcd.c
2463
r8a66597->max_root_hub = 1;
drivers/usb/host/r8a66597-hcd.c
2465
r8a66597->max_root_hub = 2;
drivers/usb/host/r8a66597-hcd.c
2467
spin_lock_init(&r8a66597->lock);
drivers/usb/host/r8a66597-hcd.c
2468
timer_setup(&r8a66597->rh_timer, r8a66597_timer, 0);
drivers/usb/host/r8a66597-hcd.c
2469
r8a66597->reg = reg;
drivers/usb/host/r8a66597-hcd.c
247
static void get_port_number(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597-hcd.c
2472
ret = r8a66597_clock_enable(r8a66597);
drivers/usb/host/r8a66597-hcd.c
2475
disable_controller(r8a66597);
drivers/usb/host/r8a66597-hcd.c
2478
INIT_LIST_HEAD(&r8a66597->pipe_queue[i]);
drivers/usb/host/r8a66597-hcd.c
2479
r8a66597->timers[i].r8a66597 = r8a66597;
drivers/usb/host/r8a66597-hcd.c
2480
timer_setup(&r8a66597->timers[i].td, r8a66597_td_timer, 0);
drivers/usb/host/r8a66597-hcd.c
2481
timer_setup(&r8a66597->timers[i].interval,
drivers/usb/host/r8a66597-hcd.c
2484
INIT_LIST_HEAD(&r8a66597->child_device);
drivers/usb/host/r8a66597-hcd.c
2499
if (r8a66597->pdata->on_chip)
drivers/usb/host/r8a66597-hcd.c
2500
clk_put(r8a66597->clk);
drivers/usb/host/r8a66597-hcd.c
252
if (*root_port >= r8a66597->max_root_hub)
drivers/usb/host/r8a66597-hcd.c
281
static void set_child_connect_map(struct r8a66597 *r8a66597, int address)
drivers/usb/host/r8a66597-hcd.c
286
r8a66597->child_connect_map[idx] |= 1 << (address % 32);
drivers/usb/host/r8a66597-hcd.c
289
static void put_child_connect_map(struct r8a66597 *r8a66597, int address)
drivers/usb/host/r8a66597-hcd.c
294
r8a66597->child_connect_map[idx] &= ~(1 << (address % 32));
drivers/usb/host/r8a66597-hcd.c
326
get_urb_to_r8a66597_dev(struct r8a66597 *r8a66597, struct urb *urb)
drivers/usb/host/r8a66597-hcd.c
329
return &r8a66597->device0;
drivers/usb/host/r8a66597-hcd.c
334
static int make_r8a66597_device(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597-hcd.c
352
list_add_tail(&dev->device_list, &r8a66597->child_device);
drivers/usb/host/r8a66597-hcd.c
354
get_port_number(r8a66597, urb->dev->devpath,
drivers/usb/host/r8a66597-hcd.c
357
r8a66597->root_hub[dev->root_port].dev = dev;
drivers/usb/host/r8a66597-hcd.c
359
set_devadd_reg(r8a66597, dev->address,
drivers/usb/host/r8a66597-hcd.c
361
get_parent_r8a66597_address(r8a66597, urb->dev),
drivers/usb/host/r8a66597-hcd.c
368
static u8 alloc_usb_address(struct r8a66597 *r8a66597, struct urb *urb)
drivers/usb/host/r8a66597-hcd.c
378
dev = get_urb_to_r8a66597_dev(r8a66597, urb);
drivers/usb/host/r8a66597-hcd.c
383
if (r8a66597->address_map & (1 << addr))
drivers/usb/host/r8a66597-hcd.c
387
r8a66597->address_map |= 1 << addr;
drivers/usb/host/r8a66597-hcd.c
389
if (make_r8a66597_device(r8a66597, urb, addr) < 0)
drivers/usb/host/r8a66597-hcd.c
397
r8a66597->address_map);
drivers/usb/host/r8a66597-hcd.c
403
static void free_usb_address(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597-hcd.c
41
static void packet_write(struct r8a66597 *r8a66597, u16 pipenum);
drivers/usb/host/r8a66597-hcd.c
414
r8a66597->address_map &= ~(1 << dev->address);
drivers/usb/host/r8a66597-hcd.c
426
for (port = 0; port < r8a66597->max_root_hub; port++) {
drivers/usb/host/r8a66597-hcd.c
427
if (r8a66597->root_hub[port].dev == dev) {
drivers/usb/host/r8a66597-hcd.c
428
r8a66597->root_hub[port].dev = NULL;
drivers/usb/host/r8a66597-hcd.c
434
static void r8a66597_reg_wait(struct r8a66597 *r8a66597, unsigned long reg,
drivers/usb/host/r8a66597-hcd.c
441
tmp = r8a66597_read(r8a66597, reg);
drivers/usb/host/r8a66597-hcd.c
45
static void enable_pipe_irq(struct r8a66597 *r8a66597, u16 pipenum,
drivers/usb/host/r8a66597-hcd.c
452
static void pipe_start(struct r8a66597 *r8a66597, struct r8a66597_pipe *pipe)
drivers/usb/host/r8a66597-hcd.c
456
tmp = r8a66597_read(r8a66597, pipe->pipectr) & PID;
drivers/usb/host/r8a66597-hcd.c
458
r8a66597_mdfy(r8a66597, PID_NAK, PID, pipe->pipectr);
drivers/usb/host/r8a66597-hcd.c
459
r8a66597_mdfy(r8a66597, PID_BUF, PID, pipe->pipectr);
drivers/usb/host/r8a66597-hcd.c
463
static void pipe_stop(struct r8a66597 *r8a66597, struct r8a66597_pipe *pipe)
drivers/usb/host/r8a66597-hcd.c
467
tmp = r8a66597_read(r8a66597, pipe->pipectr) & PID;
drivers/usb/host/r8a66597-hcd.c
469
r8a66597_mdfy(r8a66597, PID_STALL, PID, pipe->pipectr);
drivers/usb/host/r8a66597-hcd.c
470
r8a66597_mdfy(r8a66597, PID_NAK, PID, pipe->pipectr);
drivers/usb/host/r8a66597-hcd.c
471
r8a66597_reg_wait(r8a66597, pipe->pipectr, PBUSY, 0);
drivers/usb/host/r8a66597-hcd.c
475
static void clear_all_buffer(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597-hcd.c
481
pipe_stop(r8a66597, pipe);
drivers/usb/host/r8a66597-hcd.c
482
r8a66597_bset(r8a66597, ACLRM, pipe->pipectr);
drivers/usb/host/r8a66597-hcd.c
483
r8a66597_read(r8a66597, pipe->pipectr);
drivers/usb/host/r8a66597-hcd.c
484
r8a66597_read(r8a66597, pipe->pipectr);
drivers/usb/host/r8a66597-hcd.c
485
r8a66597_read(r8a66597, pipe->pipectr);
drivers/usb/host/r8a66597-hcd.c
486
r8a66597_bclr(r8a66597, ACLRM, pipe->pipectr);
drivers/usb/host/r8a66597-hcd.c
490
static void r8a66597_pipe_toggle(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597-hcd.c
494
r8a66597_bset(r8a66597, SQSET, pipe->pipectr);
drivers/usb/host/r8a66597-hcd.c
496
r8a66597_bset(r8a66597, SQCLR, pipe->pipectr);
drivers/usb/host/r8a66597-hcd.c
499
static inline unsigned short mbw_value(struct r8a66597 *r8a66597)
drivers/usb/host/r8a66597-hcd.c
50
tmp = r8a66597_read(r8a66597, INTENB0);
drivers/usb/host/r8a66597-hcd.c
501
if (r8a66597->pdata->on_chip)
drivers/usb/host/r8a66597-hcd.c
508
static inline void cfifo_change(struct r8a66597 *r8a66597, u16 pipenum)
drivers/usb/host/r8a66597-hcd.c
51
r8a66597_bclr(r8a66597, BEMPE | NRDYE | BRDYE, INTENB0);
drivers/usb/host/r8a66597-hcd.c
510
unsigned short mbw = mbw_value(r8a66597);
drivers/usb/host/r8a66597-hcd.c
512
r8a66597_mdfy(r8a66597, mbw | pipenum, mbw | CURPIPE, CFIFOSEL);
drivers/usb/host/r8a66597-hcd.c
513
r8a66597_reg_wait(r8a66597, CFIFOSEL, CURPIPE, pipenum);
drivers/usb/host/r8a66597-hcd.c
517
static inline void fifo_change_from_pipe(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597-hcd.c
52
r8a66597_bset(r8a66597, 1 << pipenum, reg);
drivers/usb/host/r8a66597-hcd.c
520
unsigned short mbw = mbw_value(r8a66597);
drivers/usb/host/r8a66597-hcd.c
522
cfifo_change(r8a66597, 0);
drivers/usb/host/r8a66597-hcd.c
523
r8a66597_mdfy(r8a66597, mbw | 0, mbw | CURPIPE, D0FIFOSEL);
drivers/usb/host/r8a66597-hcd.c
524
r8a66597_mdfy(r8a66597, mbw | 0, mbw | CURPIPE, D1FIFOSEL);
drivers/usb/host/r8a66597-hcd.c
526
r8a66597_mdfy(r8a66597, mbw | pipe->info.pipenum, mbw | CURPIPE,
drivers/usb/host/r8a66597-hcd.c
528
r8a66597_reg_wait(r8a66597, pipe->fifosel, CURPIPE, pipe->info.pipenum);
drivers/usb/host/r8a66597-hcd.c
53
r8a66597_write(r8a66597, tmp, INTENB0);
drivers/usb/host/r8a66597-hcd.c
541
static u16 get_urb_to_r8a66597_addr(struct r8a66597 *r8a66597, struct urb *urb)
drivers/usb/host/r8a66597-hcd.c
543
struct r8a66597_device *dev = get_urb_to_r8a66597_dev(r8a66597, urb);
drivers/usb/host/r8a66597-hcd.c
558
static void pipe_toggle_set(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597-hcd.c
562
struct r8a66597_device *dev = get_urb_to_r8a66597_dev(r8a66597, urb);
drivers/usb/host/r8a66597-hcd.c
57
static void disable_pipe_irq(struct r8a66597 *r8a66597, u16 pipenum,
drivers/usb/host/r8a66597-hcd.c
576
static void pipe_toggle_save(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597-hcd.c
580
if (r8a66597_read(r8a66597, pipe->pipectr) & SQMON)
drivers/usb/host/r8a66597-hcd.c
581
pipe_toggle_set(r8a66597, pipe, urb, 1);
drivers/usb/host/r8a66597-hcd.c
583
pipe_toggle_set(r8a66597, pipe, urb, 0);
drivers/usb/host/r8a66597-hcd.c
587
static void pipe_toggle_restore(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597-hcd.c
591
struct r8a66597_device *dev = get_urb_to_r8a66597_dev(r8a66597, urb);
drivers/usb/host/r8a66597-hcd.c
598
r8a66597_pipe_toggle(r8a66597, pipe, *toggle & (1 << endpoint));
drivers/usb/host/r8a66597-hcd.c
602
static void pipe_buffer_setting(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597-hcd.c
610
r8a66597_bset(r8a66597, ACLRM, get_pipectr_addr(info->pipenum));
drivers/usb/host/r8a66597-hcd.c
611
r8a66597_bclr(r8a66597, ACLRM, get_pipectr_addr(info->pipenum));
drivers/usb/host/r8a66597-hcd.c
612
r8a66597_write(r8a66597, info->pipenum, PIPESEL);
drivers/usb/host/r8a66597-hcd.c
618
r8a66597_write(r8a66597, val, PIPECFG);
drivers/usb/host/r8a66597-hcd.c
62
tmp = r8a66597_read(r8a66597, INTENB0);
drivers/usb/host/r8a66597-hcd.c
620
r8a66597_write(r8a66597, (info->buf_bsize << 10) | (info->bufnum),
drivers/usb/host/r8a66597-hcd.c
622
r8a66597_write(r8a66597, make_devsel(info->address) | info->maxpacket,
drivers/usb/host/r8a66597-hcd.c
624
r8a66597_write(r8a66597, info->interval, PIPEPERI);
drivers/usb/host/r8a66597-hcd.c
628
static void pipe_setting(struct r8a66597 *r8a66597, struct r8a66597_td *td)
drivers/usb/host/r8a66597-hcd.c
63
r8a66597_bclr(r8a66597, BEMPE | NRDYE | BRDYE, INTENB0);
drivers/usb/host/r8a66597-hcd.c
635
cfifo_change(r8a66597, 0);
drivers/usb/host/r8a66597-hcd.c
636
pipe_buffer_setting(r8a66597, info);
drivers/usb/host/r8a66597-hcd.c
64
r8a66597_bclr(r8a66597, 1 << pipenum, reg);
drivers/usb/host/r8a66597-hcd.c
641
r8a66597_pipe_toggle(r8a66597, td->pipe, 0);
drivers/usb/host/r8a66597-hcd.c
642
pipe_toggle_set(r8a66597, td->pipe, urb, 0);
drivers/usb/host/r8a66597-hcd.c
643
clear_all_buffer(r8a66597, td->pipe);
drivers/usb/host/r8a66597-hcd.c
647
pipe_toggle_restore(r8a66597, td->pipe, urb);
drivers/usb/host/r8a66597-hcd.c
65
r8a66597_write(r8a66597, tmp, INTENB0);
drivers/usb/host/r8a66597-hcd.c
652
static u16 get_empty_pipenum(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597-hcd.c
68
static void set_devadd_reg(struct r8a66597 *r8a66597, u8 r8a66597_address,
drivers/usb/host/r8a66597-hcd.c
689
if (r8a66597->pipe_cnt[min] > r8a66597->pipe_cnt[array[i]])
drivers/usb/host/r8a66597-hcd.c
75
r8a66597_write(r8a66597, val, devadd_reg);
drivers/usb/host/r8a66597-hcd.c
753
static void enable_r8a66597_pipe_dma(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597-hcd.c
760
unsigned short mbw = mbw_value(r8a66597);
drivers/usb/host/r8a66597-hcd.c
763
if (r8a66597->pdata->on_chip)
drivers/usb/host/r8a66597-hcd.c
768
if ((r8a66597->dma_map & (1 << i)) != 0)
drivers/usb/host/r8a66597-hcd.c
778
r8a66597->dma_map |= 1 << i;
drivers/usb/host/r8a66597-hcd.c
78
static int r8a66597_clock_enable(struct r8a66597 *r8a66597)
drivers/usb/host/r8a66597-hcd.c
782
cfifo_change(r8a66597, 0);
drivers/usb/host/r8a66597-hcd.c
783
r8a66597_mdfy(r8a66597, mbw | pipe->info.pipenum,
drivers/usb/host/r8a66597-hcd.c
786
r8a66597_reg_wait(r8a66597, pipe->fifosel, CURPIPE,
drivers/usb/host/r8a66597-hcd.c
788
r8a66597_bset(r8a66597, BCLR, pipe->fifoctr);
drivers/usb/host/r8a66597-hcd.c
795
static void enable_r8a66597_pipe(struct r8a66597 *r8a66597, struct urb *urb,
drivers/usb/host/r8a66597-hcd.c
799
struct r8a66597_device *dev = get_urb_to_r8a66597_dev(r8a66597, urb);
drivers/usb/host/r8a66597-hcd.c
806
r8a66597->pipe_cnt[pipe->info.pipenum]++;
drivers/usb/host/r8a66597-hcd.c
809
enable_r8a66597_pipe_dma(r8a66597, dev, pipe, urb);
drivers/usb/host/r8a66597-hcd.c
812
static void r8a66597_urb_done(struct r8a66597 *r8a66597, struct urb *urb,
drivers/usb/host/r8a66597-hcd.c
814
__releases(r8a66597->lock)
drivers/usb/host/r8a66597-hcd.c
815
__acquires(r8a66597->lock)
drivers/usb/host/r8a66597-hcd.c
826
usb_hcd_unlink_urb_from_ep(r8a66597_to_hcd(r8a66597), urb);
drivers/usb/host/r8a66597-hcd.c
827
spin_unlock(&r8a66597->lock);
drivers/usb/host/r8a66597-hcd.c
828
usb_hcd_giveback_urb(r8a66597_to_hcd(r8a66597), urb, status);
drivers/usb/host/r8a66597-hcd.c
829
spin_lock(&r8a66597->lock);
drivers/usb/host/r8a66597-hcd.c
83
if (r8a66597->pdata->on_chip) {
drivers/usb/host/r8a66597-hcd.c
833
static void force_dequeue(struct r8a66597 *r8a66597, u16 pipenum, u16 address)
drivers/usb/host/r8a66597-hcd.c
837
struct list_head *list = &r8a66597->pipe_queue[pipenum];
drivers/usb/host/r8a66597-hcd.c
84
clk_prepare_enable(r8a66597->clk);
drivers/usb/host/r8a66597-hcd.c
851
r8a66597_urb_done(r8a66597, urb, -ENODEV);
drivers/usb/host/r8a66597-hcd.c
858
static void disable_r8a66597_pipe_all(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597-hcd.c
86
r8a66597_write(r8a66597, SCKE, SYSCFG0);
drivers/usb/host/r8a66597-hcd.c
87
tmp = r8a66597_read(r8a66597, SYSCFG0);
drivers/usb/host/r8a66597-hcd.c
873
force_dequeue(r8a66597, 0, dev->address);
drivers/usb/host/r8a66597-hcd.c
876
r8a66597->pipe_cnt[pipenum] -= dev->pipe_cnt[pipenum];
drivers/usb/host/r8a66597-hcd.c
878
force_dequeue(r8a66597, pipenum, dev->address);
drivers/usb/host/r8a66597-hcd.c
883
r8a66597->dma_map &= ~(dev->dma_map);
drivers/usb/host/r8a66597-hcd.c
93
r8a66597_write(r8a66597, 0x04, 0x02);
drivers/usb/host/r8a66597-hcd.c
933
static void init_pipe_info(struct r8a66597 *r8a66597, struct urb *urb,
drivers/usb/host/r8a66597-hcd.c
939
info.pipenum = get_empty_pipenum(r8a66597, ep);
drivers/usb/host/r8a66597-hcd.c
940
info.address = get_urb_to_r8a66597_addr(r8a66597, urb);
drivers/usb/host/r8a66597-hcd.c
958
enable_r8a66597_pipe(r8a66597, urb, hep, &info);
drivers/usb/host/r8a66597-hcd.c
96
r8a66597_write(r8a66597, USBE, SYSCFG0);
drivers/usb/host/r8a66597-hcd.c
961
static void init_pipe_config(struct r8a66597 *r8a66597, struct urb *urb)
drivers/usb/host/r8a66597-hcd.c
965
dev = get_urb_to_r8a66597_dev(r8a66597, urb);
drivers/usb/host/r8a66597-hcd.c
969
static void pipe_irq_enable(struct r8a66597 *r8a66597, struct urb *urb,
drivers/usb/host/r8a66597-hcd.c
97
tmp = r8a66597_read(r8a66597, SYSCFG0);
drivers/usb/host/r8a66597-hcd.c
973
enable_irq_empty(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
975
enable_irq_ready(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
978
enable_irq_nrdy(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
981
static void pipe_irq_disable(struct r8a66597 *r8a66597, u16 pipenum)
drivers/usb/host/r8a66597-hcd.c
983
disable_irq_ready(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
984
disable_irq_nrdy(r8a66597, pipenum);
drivers/usb/host/r8a66597-hcd.c
987
static void r8a66597_root_hub_start_polling(struct r8a66597 *r8a66597)
drivers/usb/host/r8a66597-hcd.c
989
mod_timer(&r8a66597->rh_timer,
drivers/usb/host/r8a66597-hcd.c
993
static void start_root_hub_sampling(struct r8a66597 *r8a66597, int port,
drivers/usb/host/r8a66597-hcd.c
996
struct r8a66597_root_hub *rh = &r8a66597->root_hub[port];
drivers/usb/host/r8a66597-hcd.c
998
rh->old_syssts = r8a66597_read(r8a66597, get_syssts_reg(port)) & LNST;
drivers/usb/host/r8a66597.h
102
struct r8a66597 *r8a66597;
drivers/usb/host/r8a66597.h
131
static inline struct r8a66597 *hcd_to_r8a66597(struct usb_hcd *hcd)
drivers/usb/host/r8a66597.h
133
return (struct r8a66597 *)(hcd->hcd_priv);
drivers/usb/host/r8a66597.h
136
static inline struct usb_hcd *r8a66597_to_hcd(struct r8a66597 *r8a66597)
drivers/usb/host/r8a66597.h
138
return container_of((void *)r8a66597, struct usb_hcd, hcd_priv);
drivers/usb/host/r8a66597.h
141
static inline struct r8a66597_td *r8a66597_get_td(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597.h
144
if (unlikely(list_empty(&r8a66597->pipe_queue[pipenum])))
drivers/usb/host/r8a66597.h
147
return list_entry(r8a66597->pipe_queue[pipenum].next,
drivers/usb/host/r8a66597.h
151
static inline struct urb *r8a66597_get_urb(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597.h
156
td = r8a66597_get_td(r8a66597, pipenum);
drivers/usb/host/r8a66597.h
160
static inline u16 r8a66597_read(struct r8a66597 *r8a66597, unsigned long offset)
drivers/usb/host/r8a66597.h
162
return ioread16(r8a66597->reg + offset);
drivers/usb/host/r8a66597.h
165
static inline void r8a66597_read_fifo(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597.h
169
void __iomem *fifoaddr = r8a66597->reg + offset;
drivers/usb/host/r8a66597.h
172
if (r8a66597->pdata->on_chip) {
drivers/usb/host/r8a66597.h
187
static inline void r8a66597_write(struct r8a66597 *r8a66597, u16 val,
drivers/usb/host/r8a66597.h
190
iowrite16(val, r8a66597->reg + offset);
drivers/usb/host/r8a66597.h
193
static inline void r8a66597_mdfy(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597.h
197
tmp = r8a66597_read(r8a66597, offset);
drivers/usb/host/r8a66597.h
200
r8a66597_write(r8a66597, tmp, offset);
drivers/usb/host/r8a66597.h
203
#define r8a66597_bclr(r8a66597, val, offset) \
drivers/usb/host/r8a66597.h
204
r8a66597_mdfy(r8a66597, 0, val, offset)
drivers/usb/host/r8a66597.h
205
#define r8a66597_bset(r8a66597, val, offset) \
drivers/usb/host/r8a66597.h
206
r8a66597_mdfy(r8a66597, val, 0, offset)
drivers/usb/host/r8a66597.h
208
static inline void r8a66597_write_fifo(struct r8a66597 *r8a66597,
drivers/usb/host/r8a66597.h
212
void __iomem *fifoaddr = r8a66597->reg + pipe->fifoaddr;
drivers/usb/host/r8a66597.h
217
if (r8a66597->pdata->on_chip) {
drivers/usb/host/r8a66597.h
224
if (r8a66597_read(r8a66597, CFIFOSEL) & BIGEND)
drivers/usb/host/r8a66597.h
237
if (r8a66597->pdata->wr0_shorted_to_wr1)
drivers/usb/host/r8a66597.h
238
r8a66597_bclr(r8a66597, MBW_16, pipe->fifosel);
drivers/usb/host/r8a66597.h
240
if (r8a66597->pdata->wr0_shorted_to_wr1)
drivers/usb/host/r8a66597.h
241
r8a66597_bset(r8a66597, MBW_16, pipe->fifosel);
drivers/usb/host/r8a66597.h
276
static inline u16 get_rh_usb_speed(struct r8a66597 *r8a66597, int port)
drivers/usb/host/r8a66597.h
280
return r8a66597_read(r8a66597, dvstctr_reg) & RHST;
drivers/usb/host/r8a66597.h
283
static inline void r8a66597_port_power(struct r8a66597 *r8a66597, int port,
drivers/usb/host/r8a66597.h
288
if (r8a66597->pdata->port_power) {
drivers/usb/host/r8a66597.h
289
r8a66597->pdata->port_power(port, power);
drivers/usb/host/r8a66597.h
292
r8a66597_bset(r8a66597, VBOUT, dvstctr_reg);
drivers/usb/host/r8a66597.h
294
r8a66597_bclr(r8a66597, VBOUT, dvstctr_reg);
drivers/usb/host/r8a66597.h
325
#define enable_irq_ready(r8a66597, pipenum) \
drivers/usb/host/r8a66597.h
326
enable_pipe_irq(r8a66597, pipenum, BRDYENB)
drivers/usb/host/r8a66597.h
327
#define disable_irq_ready(r8a66597, pipenum) \
drivers/usb/host/r8a66597.h
328
disable_pipe_irq(r8a66597, pipenum, BRDYENB)
drivers/usb/host/r8a66597.h
329
#define enable_irq_empty(r8a66597, pipenum) \
drivers/usb/host/r8a66597.h
330
enable_pipe_irq(r8a66597, pipenum, BEMPENB)
drivers/usb/host/r8a66597.h
331
#define disable_irq_empty(r8a66597, pipenum) \
drivers/usb/host/r8a66597.h
332
disable_pipe_irq(r8a66597, pipenum, BEMPENB)
drivers/usb/host/r8a66597.h
333
#define enable_irq_nrdy(r8a66597, pipenum) \
drivers/usb/host/r8a66597.h
334
enable_pipe_irq(r8a66597, pipenum, NRDYENB)
drivers/usb/host/r8a66597.h
335
#define disable_irq_nrdy(r8a66597, pipenum) \
drivers/usb/host/r8a66597.h
336
disable_pipe_irq(r8a66597, pipenum, NRDYENB)
drivers/usb/host/r8a66597.h
97
struct r8a66597;