fusb300            36 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_enable_bit(struct fusb300 *fusb300, u32 offset,
fusb300            39 drivers/usb/gadget/udc/fusb300_udc.c 	u32 reg = ioread32(fusb300->reg + offset);
fusb300            42 drivers/usb/gadget/udc/fusb300_udc.c 	iowrite32(reg, fusb300->reg + offset);
fusb300            45 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_disable_bit(struct fusb300 *fusb300, u32 offset,
fusb300            48 drivers/usb/gadget/udc/fusb300_udc.c 	u32 reg = ioread32(fusb300->reg + offset);
fusb300            51 drivers/usb/gadget/udc/fusb300_udc.c 	iowrite32(reg, fusb300->reg + offset);
fusb300            72 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_set_fifo_entry(struct fusb300 *fusb300,
fusb300            75 drivers/usb/gadget/udc/fusb300_udc.c 	u32 val = ioread32(fusb300->reg + FUSB300_OFFSET_EPSET1(ep));
fusb300            79 drivers/usb/gadget/udc/fusb300_udc.c 	iowrite32(val, fusb300->reg + FUSB300_OFFSET_EPSET1(ep));
fusb300            82 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_set_start_entry(struct fusb300 *fusb300,
fusb300            85 drivers/usb/gadget/udc/fusb300_udc.c 	u32 reg = ioread32(fusb300->reg + FUSB300_OFFSET_EPSET1(ep));
fusb300            86 drivers/usb/gadget/udc/fusb300_udc.c 	u32 start_entry = fusb300->fifo_entry_num * FUSB300_FIFO_ENTRY_NUM;
fusb300            90 drivers/usb/gadget/udc/fusb300_udc.c 	iowrite32(reg, fusb300->reg + FUSB300_OFFSET_EPSET1(ep));
fusb300            91 drivers/usb/gadget/udc/fusb300_udc.c 	if (fusb300->fifo_entry_num == FUSB300_MAX_FIFO_ENTRY) {
fusb300            92 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300->fifo_entry_num = 0;
fusb300            93 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300->addrofs = 0;
fusb300            96 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300->fifo_entry_num++;
fusb300           100 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_set_epaddrofs(struct fusb300 *fusb300,
fusb300           103 drivers/usb/gadget/udc/fusb300_udc.c 	u32 reg = ioread32(fusb300->reg + FUSB300_OFFSET_EPSET2(info.epnum));
fusb300           106 drivers/usb/gadget/udc/fusb300_udc.c 	reg |= FUSB300_EPSET2_ADDROFS(fusb300->addrofs);
fusb300           107 drivers/usb/gadget/udc/fusb300_udc.c 	iowrite32(reg, fusb300->reg + FUSB300_OFFSET_EPSET2(info.epnum));
fusb300           108 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300->addrofs += (info.maxpacket + 7) / 8 * FUSB300_FIFO_ENTRY_NUM;
fusb300           111 drivers/usb/gadget/udc/fusb300_udc.c static void ep_fifo_setting(struct fusb300 *fusb300,
fusb300           114 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300_set_fifo_entry(fusb300, info.epnum);
fusb300           115 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300_set_start_entry(fusb300, info.epnum);
fusb300           116 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300_set_epaddrofs(fusb300, info);
fusb300           119 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_set_eptype(struct fusb300 *fusb300,
fusb300           122 drivers/usb/gadget/udc/fusb300_udc.c 	u32 reg = ioread32(fusb300->reg + FUSB300_OFFSET_EPSET1(info.epnum));
fusb300           126 drivers/usb/gadget/udc/fusb300_udc.c 	iowrite32(reg, fusb300->reg + FUSB300_OFFSET_EPSET1(info.epnum));
fusb300           129 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_set_epdir(struct fusb300 *fusb300,
fusb300           136 drivers/usb/gadget/udc/fusb300_udc.c 	reg = ioread32(fusb300->reg + FUSB300_OFFSET_EPSET1(info.epnum));
fusb300           139 drivers/usb/gadget/udc/fusb300_udc.c 	iowrite32(reg, fusb300->reg + FUSB300_OFFSET_EPSET1(info.epnum));
fusb300           142 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_set_ep_active(struct fusb300 *fusb300,
fusb300           145 drivers/usb/gadget/udc/fusb300_udc.c 	u32 reg = ioread32(fusb300->reg + FUSB300_OFFSET_EPSET1(ep));
fusb300           148 drivers/usb/gadget/udc/fusb300_udc.c 	iowrite32(reg, fusb300->reg + FUSB300_OFFSET_EPSET1(ep));
fusb300           151 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_set_epmps(struct fusb300 *fusb300,
fusb300           154 drivers/usb/gadget/udc/fusb300_udc.c 	u32 reg = ioread32(fusb300->reg + FUSB300_OFFSET_EPSET2(info.epnum));
fusb300           158 drivers/usb/gadget/udc/fusb300_udc.c 	iowrite32(reg, fusb300->reg + FUSB300_OFFSET_EPSET2(info.epnum));
fusb300           161 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_set_interval(struct fusb300 *fusb300,
fusb300           164 drivers/usb/gadget/udc/fusb300_udc.c 	u32 reg = ioread32(fusb300->reg + FUSB300_OFFSET_EPSET1(info.epnum));
fusb300           168 drivers/usb/gadget/udc/fusb300_udc.c 	iowrite32(reg, fusb300->reg + FUSB300_OFFSET_EPSET1(info.epnum));
fusb300           171 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_set_bwnum(struct fusb300 *fusb300,
fusb300           174 drivers/usb/gadget/udc/fusb300_udc.c 	u32 reg = ioread32(fusb300->reg + FUSB300_OFFSET_EPSET1(info.epnum));
fusb300           178 drivers/usb/gadget/udc/fusb300_udc.c 	iowrite32(reg, fusb300->reg + FUSB300_OFFSET_EPSET1(info.epnum));
fusb300           181 drivers/usb/gadget/udc/fusb300_udc.c static void set_ep_reg(struct fusb300 *fusb300,
fusb300           184 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300_set_eptype(fusb300, info);
fusb300           185 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300_set_epdir(fusb300, info);
fusb300           186 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300_set_epmps(fusb300, info);
fusb300           189 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_set_interval(fusb300, info);
fusb300           192 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_set_bwnum(fusb300, info);
fusb300           194 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300_set_ep_active(fusb300, info.epnum);
fusb300           200 drivers/usb/gadget/udc/fusb300_udc.c 	struct fusb300 *fusb300 = ep->fusb300;
fusb300           221 drivers/usb/gadget/udc/fusb300_udc.c 	ep_fifo_setting(fusb300, info);
fusb300           223 drivers/usb/gadget/udc/fusb300_udc.c 	set_ep_reg(fusb300, info);
fusb300           227 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300->ep[info.epnum] = ep;
fusb300           239 drivers/usb/gadget/udc/fusb300_udc.c 	if (ep->fusb300->reenum) {
fusb300           240 drivers/usb/gadget/udc/fusb300_udc.c 		ep->fusb300->fifo_entry_num = 0;
fusb300           241 drivers/usb/gadget/udc/fusb300_udc.c 		ep->fusb300->addrofs = 0;
fusb300           242 drivers/usb/gadget/udc/fusb300_udc.c 		ep->fusb300->reenum = 0;
fusb300           260 drivers/usb/gadget/udc/fusb300_udc.c 		spin_lock_irqsave(&ep->fusb300->lock, flags);
fusb300           262 drivers/usb/gadget/udc/fusb300_udc.c 		spin_unlock_irqrestore(&ep->fusb300->lock, flags);
fusb300           291 drivers/usb/gadget/udc/fusb300_udc.c 	struct fusb300 *fusb300 = ep->fusb300;
fusb300           294 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_enable_bit(fusb300, FUSB300_OFFSET_IGER0,
fusb300           306 drivers/usb/gadget/udc/fusb300_udc.c 	struct fusb300 *fusb300 = ep->fusb300;
fusb300           309 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_disable_bit(fusb300, FUSB300_OFFSET_IGER0,
fusb300           319 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_set_cxlen(struct fusb300 *fusb300, u32 length)
fusb300           323 drivers/usb/gadget/udc/fusb300_udc.c 	reg = ioread32(fusb300->reg + FUSB300_OFFSET_CSR);
fusb300           326 drivers/usb/gadget/udc/fusb300_udc.c 	iowrite32(reg, fusb300->reg + FUSB300_OFFSET_CSR);
fusb300           336 drivers/usb/gadget/udc/fusb300_udc.c 	struct fusb300 *fusb300 = ep->fusb300;
fusb300           342 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_set_cxlen(fusb300, SS_CTL_MAX_PACKET_SIZE);
fusb300           346 drivers/usb/gadget/udc/fusb300_udc.c 			iowrite32(data, fusb300->reg + FUSB300_OFFSET_CXPORT);
fusb300           351 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_set_cxlen(fusb300, length);
fusb300           356 drivers/usb/gadget/udc/fusb300_udc.c 			iowrite32(data, fusb300->reg + FUSB300_OFFSET_CXPORT);
fusb300           363 drivers/usb/gadget/udc/fusb300_udc.c 			iowrite32(data, fusb300->reg + FUSB300_OFFSET_CXPORT);
fusb300           368 drivers/usb/gadget/udc/fusb300_udc.c 			iowrite32(data, fusb300->reg + FUSB300_OFFSET_CXPORT);
fusb300           373 drivers/usb/gadget/udc/fusb300_udc.c 			iowrite32(data, fusb300->reg + FUSB300_OFFSET_CXPORT);
fusb300           382 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_set_epnstall(struct fusb300 *fusb300, u8 ep)
fusb300           384 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300_enable_bit(fusb300, FUSB300_OFFSET_EPSET0(ep),
fusb300           388 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_clear_epnstall(struct fusb300 *fusb300, u8 ep)
fusb300           390 drivers/usb/gadget/udc/fusb300_udc.c 	u32 reg = ioread32(fusb300->reg + FUSB300_OFFSET_EPSET0(ep));
fusb300           395 drivers/usb/gadget/udc/fusb300_udc.c 		iowrite32(reg, fusb300->reg + FUSB300_OFFSET_EPSET0(ep));
fusb300           401 drivers/usb/gadget/udc/fusb300_udc.c 	if (ep->fusb300->ep0_dir) { /* if IN */
fusb300           414 drivers/usb/gadget/udc/fusb300_udc.c 			fusb300_enable_bit(ep->fusb300, FUSB300_OFFSET_IGER1,
fusb300           430 drivers/usb/gadget/udc/fusb300_udc.c 	if (ep->fusb300->gadget.speed == USB_SPEED_UNKNOWN)
fusb300           433 drivers/usb/gadget/udc/fusb300_udc.c 	spin_lock_irqsave(&ep->fusb300->lock, flags);
fusb300           448 drivers/usb/gadget/udc/fusb300_udc.c 	spin_unlock_irqrestore(&ep->fusb300->lock, flags);
fusb300           462 drivers/usb/gadget/udc/fusb300_udc.c 	spin_lock_irqsave(&ep->fusb300->lock, flags);
fusb300           465 drivers/usb/gadget/udc/fusb300_udc.c 	spin_unlock_irqrestore(&ep->fusb300->lock, flags);
fusb300           473 drivers/usb/gadget/udc/fusb300_udc.c 	struct fusb300 *fusb300;
fusb300           479 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300 = ep->fusb300;
fusb300           481 drivers/usb/gadget/udc/fusb300_udc.c 	spin_lock_irqsave(&ep->fusb300->lock, flags);
fusb300           489 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_set_epnstall(fusb300, ep->epnum);
fusb300           494 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_clear_epnstall(fusb300, ep->epnum);
fusb300           500 drivers/usb/gadget/udc/fusb300_udc.c 	spin_unlock_irqrestore(&ep->fusb300->lock, flags);
fusb300           534 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_clear_int(struct fusb300 *fusb300, u32 offset,
fusb300           537 drivers/usb/gadget/udc/fusb300_udc.c 	iowrite32(value, fusb300->reg + offset);
fusb300           544 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_set_cxstall(struct fusb300 *fusb300)
fusb300           546 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300_enable_bit(fusb300, FUSB300_OFFSET_CSR,
fusb300           550 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_set_cxdone(struct fusb300 *fusb300)
fusb300           552 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300_enable_bit(fusb300, FUSB300_OFFSET_CSR,
fusb300           557 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_rdcxf(struct fusb300 *fusb300,
fusb300           567 drivers/usb/gadget/udc/fusb300_udc.c 		data = ioread32(fusb300->reg + FUSB300_OFFSET_CXPORT);
fusb300           578 drivers/usb/gadget/udc/fusb300_udc.c 		data = ioread32(fusb300->reg + FUSB300_OFFSET_CXPORT);
fusb300           583 drivers/usb/gadget/udc/fusb300_udc.c 		data = ioread32(fusb300->reg + FUSB300_OFFSET_CXPORT);
fusb300           589 drivers/usb/gadget/udc/fusb300_udc.c 		data = ioread32(fusb300->reg + FUSB300_OFFSET_CXPORT);
fusb300           607 drivers/usb/gadget/udc/fusb300_udc.c 	struct fusb300 *fusb300 = ep->fusb300;
fusb300           616 drivers/usb/gadget/udc/fusb300_udc.c 		data = ioread32(fusb300->reg +
fusb300           627 drivers/usb/gadget/udc/fusb300_udc.c 		data = ioread32(fusb300->reg +
fusb300           632 drivers/usb/gadget/udc/fusb300_udc.c 		data = ioread32(fusb300->reg +
fusb300           638 drivers/usb/gadget/udc/fusb300_udc.c 		data = ioread32(fusb300->reg +
fusb300           649 drivers/usb/gadget/udc/fusb300_udc.c 		reg = ioread32(fusb300->reg + FUSB300_OFFSET_IGR1);
fusb300           657 drivers/usb/gadget/udc/fusb300_udc.c static u8 fusb300_get_epnstall(struct fusb300 *fusb300, u8 ep)
fusb300           660 drivers/usb/gadget/udc/fusb300_udc.c 	u32 reg = ioread32(fusb300->reg + FUSB300_OFFSET_EPSET0(ep));
fusb300           667 drivers/usb/gadget/udc/fusb300_udc.c static u8 fusb300_get_cxstall(struct fusb300 *fusb300)
fusb300           670 drivers/usb/gadget/udc/fusb300_udc.c 	u32 reg = ioread32(fusb300->reg + FUSB300_OFFSET_CSR);
fusb300           677 drivers/usb/gadget/udc/fusb300_udc.c static void request_error(struct fusb300 *fusb300)
fusb300           679 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300_set_cxstall(fusb300);
fusb300           683 drivers/usb/gadget/udc/fusb300_udc.c static void get_status(struct fusb300 *fusb300, struct usb_ctrlrequest *ctrl)
fusb300           684 drivers/usb/gadget/udc/fusb300_udc.c __releases(fusb300->lock)
fusb300           685 drivers/usb/gadget/udc/fusb300_udc.c __acquires(fusb300->lock)
fusb300           701 drivers/usb/gadget/udc/fusb300_udc.c 			if (fusb300_get_epnstall(fusb300, ep))
fusb300           704 drivers/usb/gadget/udc/fusb300_udc.c 			if (fusb300_get_cxstall(fusb300))
fusb300           710 drivers/usb/gadget/udc/fusb300_udc.c 		request_error(fusb300);
fusb300           714 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300->ep0_data = cpu_to_le16(status);
fusb300           715 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300->ep0_req->buf = &fusb300->ep0_data;
fusb300           716 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300->ep0_req->length = 2;
fusb300           718 drivers/usb/gadget/udc/fusb300_udc.c 	spin_unlock(&fusb300->lock);
fusb300           719 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300_queue(fusb300->gadget.ep0, fusb300->ep0_req, GFP_KERNEL);
fusb300           720 drivers/usb/gadget/udc/fusb300_udc.c 	spin_lock(&fusb300->lock);
fusb300           723 drivers/usb/gadget/udc/fusb300_udc.c static void set_feature(struct fusb300 *fusb300, struct usb_ctrlrequest *ctrl)
fusb300           729 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_set_cxdone(fusb300);
fusb300           732 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_set_cxdone(fusb300);
fusb300           739 drivers/usb/gadget/udc/fusb300_udc.c 			fusb300_set_epnstall(fusb300, ep);
fusb300           741 drivers/usb/gadget/udc/fusb300_udc.c 			fusb300_set_cxstall(fusb300);
fusb300           742 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_set_cxdone(fusb300);
fusb300           746 drivers/usb/gadget/udc/fusb300_udc.c 		request_error(fusb300);
fusb300           751 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_clear_seqnum(struct fusb300 *fusb300, u8 ep)
fusb300           753 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300_enable_bit(fusb300, FUSB300_OFFSET_EPSET0(ep),
fusb300           757 drivers/usb/gadget/udc/fusb300_udc.c static void clear_feature(struct fusb300 *fusb300, struct usb_ctrlrequest *ctrl)
fusb300           760 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300->ep[ctrl->wIndex & USB_ENDPOINT_NUMBER_MASK];
fusb300           764 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_set_cxdone(fusb300);
fusb300           767 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_set_cxdone(fusb300);
fusb300           772 drivers/usb/gadget/udc/fusb300_udc.c 				fusb300_set_cxdone(fusb300);
fusb300           777 drivers/usb/gadget/udc/fusb300_udc.c 				fusb300_clear_seqnum(fusb300, ep->epnum);
fusb300           778 drivers/usb/gadget/udc/fusb300_udc.c 				fusb300_clear_epnstall(fusb300, ep->epnum);
fusb300           783 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_set_cxdone(fusb300);
fusb300           786 drivers/usb/gadget/udc/fusb300_udc.c 		request_error(fusb300);
fusb300           791 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_set_dev_addr(struct fusb300 *fusb300, u16 addr)
fusb300           793 drivers/usb/gadget/udc/fusb300_udc.c 	u32 reg = ioread32(fusb300->reg + FUSB300_OFFSET_DAR);
fusb300           798 drivers/usb/gadget/udc/fusb300_udc.c 	iowrite32(reg, fusb300->reg + FUSB300_OFFSET_DAR);
fusb300           801 drivers/usb/gadget/udc/fusb300_udc.c static void set_address(struct fusb300 *fusb300, struct usb_ctrlrequest *ctrl)
fusb300           804 drivers/usb/gadget/udc/fusb300_udc.c 		request_error(fusb300);
fusb300           806 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_set_dev_addr(fusb300, ctrl->wValue);
fusb300           807 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_set_cxdone(fusb300);
fusb300           820 drivers/usb/gadget/udc/fusb300_udc.c static int setup_packet(struct fusb300 *fusb300, struct usb_ctrlrequest *ctrl)
fusb300           826 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300_rdcxf(fusb300, p, 8);
fusb300           827 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300->ep0_dir = ctrl->bRequestType & USB_DIR_IN;
fusb300           828 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300->ep0_length = ctrl->wLength;
fusb300           834 drivers/usb/gadget/udc/fusb300_udc.c 			get_status(fusb300, ctrl);
fusb300           837 drivers/usb/gadget/udc/fusb300_udc.c 			clear_feature(fusb300, ctrl);
fusb300           840 drivers/usb/gadget/udc/fusb300_udc.c 			set_feature(fusb300, ctrl);
fusb300           843 drivers/usb/gadget/udc/fusb300_udc.c 			set_address(fusb300, ctrl);
fusb300           846 drivers/usb/gadget/udc/fusb300_udc.c 			fusb300_enable_bit(fusb300, FUSB300_OFFSET_DAR,
fusb300           850 drivers/usb/gadget/udc/fusb300_udc.c 				fusb300_clear_seqnum(fusb300, i);
fusb300           851 drivers/usb/gadget/udc/fusb300_udc.c 			fusb300->reenum = 1;
fusb300           870 drivers/usb/gadget/udc/fusb300_udc.c 	if (ep->fusb300->gadget.speed == USB_SPEED_UNKNOWN)
fusb300           875 drivers/usb/gadget/udc/fusb300_udc.c 	spin_unlock(&ep->fusb300->lock);
fusb300           877 drivers/usb/gadget/udc/fusb300_udc.c 	spin_lock(&ep->fusb300->lock);
fusb300           884 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_set_cxdone(ep->fusb300);
fusb300           895 drivers/usb/gadget/udc/fusb300_udc.c 		reg = ioread32(ep->fusb300->reg +
fusb300           900 drivers/usb/gadget/udc/fusb300_udc.c 	iowrite32(d, ep->fusb300->reg + FUSB300_OFFSET_EPPRD_W1(ep->epnum));
fusb300           904 drivers/usb/gadget/udc/fusb300_udc.c 	iowrite32(value, ep->fusb300->reg + FUSB300_OFFSET_EPPRD_W0(ep->epnum));
fusb300           906 drivers/usb/gadget/udc/fusb300_udc.c 	iowrite32(0x0, ep->fusb300->reg + FUSB300_OFFSET_EPPRD_W2(ep->epnum));
fusb300           908 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300_enable_bit(ep->fusb300, FUSB300_OFFSET_EPPRDRDY,
fusb300           917 drivers/usb/gadget/udc/fusb300_udc.c 		reg = ioread32(ep->fusb300->reg + FUSB300_OFFSET_IGR1);
fusb300           924 drivers/usb/gadget/udc/fusb300_udc.c 		reg = ioread32(ep->fusb300->reg + FUSB300_OFFSET_IGR0);
fusb300           928 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300_clear_int(ep->fusb300, FUSB300_OFFSET_IGR0,
fusb300           933 drivers/usb/gadget/udc/fusb300_udc.c 	reg = ioread32(ep->fusb300->reg + FUSB300_OFFSET_IGER0);
fusb300           935 drivers/usb/gadget/udc/fusb300_udc.c 	iowrite32(reg, ep->fusb300->reg + FUSB300_OFFSET_IGER0);
fusb300           943 drivers/usb/gadget/udc/fusb300_udc.c 	ret = usb_gadget_map_request(&ep->fusb300->gadget,
fusb300           948 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300_enable_bit(ep->fusb300, FUSB300_OFFSET_IGER0,
fusb300           955 drivers/usb/gadget/udc/fusb300_udc.c 	usb_gadget_unmap_request(&ep->fusb300->gadget,
fusb300           971 drivers/usb/gadget/udc/fusb300_udc.c 	struct fusb300 *fusb300 = ep->fusb300;
fusb300           974 drivers/usb/gadget/udc/fusb300_udc.c 	u32 reg = ioread32(fusb300->reg + FUSB300_OFFSET_EPFFR(ep->epnum));
fusb300           984 drivers/usb/gadget/udc/fusb300_udc.c static void check_device_mode(struct fusb300 *fusb300)
fusb300           986 drivers/usb/gadget/udc/fusb300_udc.c 	u32 reg = ioread32(fusb300->reg + FUSB300_OFFSET_GCR);
fusb300           990 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300->gadget.speed = USB_SPEED_SUPER;
fusb300           993 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300->gadget.speed = USB_SPEED_HIGH;
fusb300           996 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300->gadget.speed = USB_SPEED_FULL;
fusb300           999 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300->gadget.speed = USB_SPEED_UNKNOWN;
fusb300          1006 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_ep0out(struct fusb300 *fusb300)
fusb300          1008 drivers/usb/gadget/udc/fusb300_udc.c 	struct fusb300_ep *ep = fusb300->ep[0];
fusb300          1017 drivers/usb/gadget/udc/fusb300_udc.c 			fusb300_rdcxf(ep->fusb300, req->req.buf,
fusb300          1020 drivers/usb/gadget/udc/fusb300_udc.c 		reg = ioread32(fusb300->reg + FUSB300_OFFSET_IGER1);
fusb300          1022 drivers/usb/gadget/udc/fusb300_udc.c 		iowrite32(reg, fusb300->reg + FUSB300_OFFSET_IGER1);
fusb300          1027 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_ep0in(struct fusb300 *fusb300)
fusb300          1030 drivers/usb/gadget/udc/fusb300_udc.c 	struct fusb300_ep *ep = fusb300->ep[0];
fusb300          1032 drivers/usb/gadget/udc/fusb300_udc.c 	if ((!list_empty(&ep->queue)) && (fusb300->ep0_dir)) {
fusb300          1040 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_set_cxdone(fusb300);
fusb300          1061 drivers/usb/gadget/udc/fusb300_udc.c 	struct fusb300 *fusb300 = _fusb300;
fusb300          1062 drivers/usb/gadget/udc/fusb300_udc.c 	u32 int_grp1 = ioread32(fusb300->reg + FUSB300_OFFSET_IGR1);
fusb300          1063 drivers/usb/gadget/udc/fusb300_udc.c 	u32 int_grp1_en = ioread32(fusb300->reg + FUSB300_OFFSET_IGER1);
fusb300          1064 drivers/usb/gadget/udc/fusb300_udc.c 	u32 int_grp0 = ioread32(fusb300->reg + FUSB300_OFFSET_IGR0);
fusb300          1065 drivers/usb/gadget/udc/fusb300_udc.c 	u32 int_grp0_en = ioread32(fusb300->reg + FUSB300_OFFSET_IGER0);
fusb300          1071 drivers/usb/gadget/udc/fusb300_udc.c 	spin_lock(&fusb300->lock);
fusb300          1077 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_clear_int(fusb300, FUSB300_OFFSET_IGR1,
fusb300          1084 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_clear_int(fusb300, FUSB300_OFFSET_IGR1,
fusb300          1091 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_clear_int(fusb300, FUSB300_OFFSET_IGR1,
fusb300          1098 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_clear_int(fusb300, FUSB300_OFFSET_IGR1,
fusb300          1104 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_clear_int(fusb300, FUSB300_OFFSET_IGR1,
fusb300          1110 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_clear_int(fusb300, FUSB300_OFFSET_IGR1,
fusb300          1115 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_clear_int(fusb300, FUSB300_OFFSET_IGR1,
fusb300          1120 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_clear_int(fusb300, FUSB300_OFFSET_IGR1,
fusb300          1125 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_clear_int(fusb300, FUSB300_OFFSET_IGR1,
fusb300          1130 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_clear_int(fusb300, FUSB300_OFFSET_IGR1,
fusb300          1135 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_clear_int(fusb300, FUSB300_OFFSET_IGR1,
fusb300          1141 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_clear_int(fusb300, FUSB300_OFFSET_IGR1,
fusb300          1147 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_clear_int(fusb300, FUSB300_OFFSET_IGR1,
fusb300          1153 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_clear_int(fusb300, FUSB300_OFFSET_IGR1,
fusb300          1156 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_enable_bit(fusb300, FUSB300_OFFSET_SSCR1,
fusb300          1161 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_clear_int(fusb300, FUSB300_OFFSET_IGR1,
fusb300          1167 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_clear_int(fusb300, FUSB300_OFFSET_IGR1,
fusb300          1173 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_clear_int(fusb300, FUSB300_OFFSET_IGR1,
fusb300          1179 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_clear_int(fusb300, FUSB300_OFFSET_IGR1,
fusb300          1185 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_clear_int(fusb300, FUSB300_OFFSET_IGR1,
fusb300          1191 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_clear_int(fusb300, FUSB300_OFFSET_IGR1,
fusb300          1193 drivers/usb/gadget/udc/fusb300_udc.c 		check_device_mode(fusb300);
fusb300          1197 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_set_cxstall(fusb300);
fusb300          1203 drivers/usb/gadget/udc/fusb300_udc.c 		if (setup_packet(fusb300, &ctrl)) {
fusb300          1204 drivers/usb/gadget/udc/fusb300_udc.c 			spin_unlock(&fusb300->lock);
fusb300          1205 drivers/usb/gadget/udc/fusb300_udc.c 			if (fusb300->driver->setup(&fusb300->gadget, &ctrl) < 0)
fusb300          1206 drivers/usb/gadget/udc/fusb300_udc.c 				fusb300_set_cxstall(fusb300);
fusb300          1207 drivers/usb/gadget/udc/fusb300_udc.c 			spin_lock(&fusb300->lock);
fusb300          1217 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_ep0out(fusb300);
fusb300          1222 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300_ep0in(fusb300);
fusb300          1240 drivers/usb/gadget/udc/fusb300_udc.c 				reg = ioread32(fusb300->reg +
fusb300          1244 drivers/usb/gadget/udc/fusb300_udc.c 					in_ep_fifo_handler(fusb300->ep[i]);
fusb300          1246 drivers/usb/gadget/udc/fusb300_udc.c 					out_ep_fifo_handler(fusb300->ep[i]);
fusb300          1251 drivers/usb/gadget/udc/fusb300_udc.c 	spin_unlock(&fusb300->lock);
fusb300          1256 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_set_u2_timeout(struct fusb300 *fusb300,
fusb300          1261 drivers/usb/gadget/udc/fusb300_udc.c 	reg = ioread32(fusb300->reg + FUSB300_OFFSET_TT);
fusb300          1265 drivers/usb/gadget/udc/fusb300_udc.c 	iowrite32(reg, fusb300->reg + FUSB300_OFFSET_TT);
fusb300          1268 drivers/usb/gadget/udc/fusb300_udc.c static void fusb300_set_u1_timeout(struct fusb300 *fusb300,
fusb300          1273 drivers/usb/gadget/udc/fusb300_udc.c 	reg = ioread32(fusb300->reg + FUSB300_OFFSET_TT);
fusb300          1277 drivers/usb/gadget/udc/fusb300_udc.c 	iowrite32(reg, fusb300->reg + FUSB300_OFFSET_TT);
fusb300          1280 drivers/usb/gadget/udc/fusb300_udc.c static void init_controller(struct fusb300 *fusb300)
fusb300          1288 drivers/usb/gadget/udc/fusb300_udc.c 	reg = ioread32(fusb300->reg + FUSB300_OFFSET_AHBCR);
fusb300          1291 drivers/usb/gadget/udc/fusb300_udc.c 	iowrite32(reg, fusb300->reg + FUSB300_OFFSET_AHBCR);
fusb300          1295 drivers/usb/gadget/udc/fusb300_udc.c 	reg = ioread32(fusb300->reg + FUSB300_OFFSET_HSCR);
fusb300          1298 drivers/usb/gadget/udc/fusb300_udc.c 	iowrite32(reg, fusb300->reg + FUSB300_OFFSET_HSCR);
fusb300          1301 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300_set_u2_timeout(fusb300, 0xff);
fusb300          1302 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300_set_u1_timeout(fusb300, 0xff);
fusb300          1305 drivers/usb/gadget/udc/fusb300_udc.c 	iowrite32(0xcfffff9f, fusb300->reg + FUSB300_OFFSET_IGER1);
fusb300          1311 drivers/usb/gadget/udc/fusb300_udc.c 	struct fusb300 *fusb300 = to_fusb300(g);
fusb300          1315 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300->driver = driver;
fusb300          1322 drivers/usb/gadget/udc/fusb300_udc.c 	struct fusb300 *fusb300 = to_fusb300(g);
fusb300          1324 drivers/usb/gadget/udc/fusb300_udc.c 	init_controller(fusb300);
fusb300          1325 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300->driver = NULL;
fusb300          1344 drivers/usb/gadget/udc/fusb300_udc.c 	struct fusb300 *fusb300 = platform_get_drvdata(pdev);
fusb300          1347 drivers/usb/gadget/udc/fusb300_udc.c 	usb_del_gadget_udc(&fusb300->gadget);
fusb300          1348 drivers/usb/gadget/udc/fusb300_udc.c 	iounmap(fusb300->reg);
fusb300          1349 drivers/usb/gadget/udc/fusb300_udc.c 	free_irq(platform_get_irq(pdev, 0), fusb300);
fusb300          1351 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300_free_request(&fusb300->ep[0]->ep, fusb300->ep0_req);
fusb300          1353 drivers/usb/gadget/udc/fusb300_udc.c 		kfree(fusb300->ep[i]);
fusb300          1354 drivers/usb/gadget/udc/fusb300_udc.c 	kfree(fusb300);
fusb300          1363 drivers/usb/gadget/udc/fusb300_udc.c 	struct fusb300 *fusb300 = NULL;
fusb300          1399 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300 = kzalloc(sizeof(struct fusb300), GFP_KERNEL);
fusb300          1400 drivers/usb/gadget/udc/fusb300_udc.c 	if (fusb300 == NULL) {
fusb300          1411 drivers/usb/gadget/udc/fusb300_udc.c 		fusb300->ep[i] = _ep[i];
fusb300          1414 drivers/usb/gadget/udc/fusb300_udc.c 	spin_lock_init(&fusb300->lock);
fusb300          1416 drivers/usb/gadget/udc/fusb300_udc.c 	platform_set_drvdata(pdev, fusb300);
fusb300          1418 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300->gadget.ops = &fusb300_gadget_ops;
fusb300          1420 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300->gadget.max_speed = USB_SPEED_HIGH;
fusb300          1421 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300->gadget.name = udc_name;
fusb300          1422 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300->reg = reg;
fusb300          1425 drivers/usb/gadget/udc/fusb300_udc.c 			  udc_name, fusb300);
fusb300          1432 drivers/usb/gadget/udc/fusb300_udc.c 			IRQF_SHARED, udc_name, fusb300);
fusb300          1438 drivers/usb/gadget/udc/fusb300_udc.c 	INIT_LIST_HEAD(&fusb300->gadget.ep_list);
fusb300          1441 drivers/usb/gadget/udc/fusb300_udc.c 		struct fusb300_ep *ep = fusb300->ep[i];
fusb300          1444 drivers/usb/gadget/udc/fusb300_udc.c 			INIT_LIST_HEAD(&fusb300->ep[i]->ep.ep_list);
fusb300          1445 drivers/usb/gadget/udc/fusb300_udc.c 			list_add_tail(&fusb300->ep[i]->ep.ep_list,
fusb300          1446 drivers/usb/gadget/udc/fusb300_udc.c 				     &fusb300->gadget.ep_list);
fusb300          1448 drivers/usb/gadget/udc/fusb300_udc.c 		ep->fusb300 = fusb300;
fusb300          1465 drivers/usb/gadget/udc/fusb300_udc.c 	usb_ep_set_maxpacket_limit(&fusb300->ep[0]->ep, HS_CTL_MAX_PACKET_SIZE);
fusb300          1466 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300->ep[0]->epnum = 0;
fusb300          1467 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300->gadget.ep0 = &fusb300->ep[0]->ep;
fusb300          1468 drivers/usb/gadget/udc/fusb300_udc.c 	INIT_LIST_HEAD(&fusb300->gadget.ep0->ep_list);
fusb300          1470 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300->ep0_req = fusb300_alloc_request(&fusb300->ep[0]->ep,
fusb300          1472 drivers/usb/gadget/udc/fusb300_udc.c 	if (fusb300->ep0_req == NULL) {
fusb300          1477 drivers/usb/gadget/udc/fusb300_udc.c 	init_controller(fusb300);
fusb300          1478 drivers/usb/gadget/udc/fusb300_udc.c 	ret = usb_add_gadget_udc(&pdev->dev, &fusb300->gadget);
fusb300          1487 drivers/usb/gadget/udc/fusb300_udc.c 	fusb300_free_request(&fusb300->ep[0]->ep, fusb300->ep0_req);
fusb300          1490 drivers/usb/gadget/udc/fusb300_udc.c 	free_irq(ires->start, fusb300);
fusb300          1493 drivers/usb/gadget/udc/fusb300_udc.c 	if (fusb300) {
fusb300          1494 drivers/usb/gadget/udc/fusb300_udc.c 		if (fusb300->ep0_req)
fusb300          1495 drivers/usb/gadget/udc/fusb300_udc.c 			fusb300_free_request(&fusb300->ep[0]->ep,
fusb300          1496 drivers/usb/gadget/udc/fusb300_udc.c 				fusb300->ep0_req);
fusb300          1498 drivers/usb/gadget/udc/fusb300_udc.c 			kfree(fusb300->ep[i]);
fusb300          1499 drivers/usb/gadget/udc/fusb300_udc.c 		kfree(fusb300);
fusb300           641 drivers/usb/gadget/udc/fusb300_udc.h 	struct fusb300		*fusb300;
fusb300           673 drivers/usb/gadget/udc/fusb300_udc.h #define to_fusb300(g)		(container_of((g), struct fusb300, gadget))