Lines Matching +full:isoc +full:- +full:in

1 /* SPDX-License-Identifier: GPL-2.0 */
3 * USBHS-DEV device controller driver header file
14 #include <linux/dma-direction.h>
22 * struct cdns2_ep0_regs - endpoint 0 related registers.
24 * @txbc: transmit (IN) 0 endpoint byte count register.
45 /* EP0CS - bitmasks. */
50 /* IN 0 endpoint busy bit. */
54 /* Send STALL in the data stage phase. */
59 /* EP0FIFO - bitmasks. */
70 * struct cdns2_epx_base - base endpoint registers.
74 * @txbc: IN endpoint byte count register.
75 * @txcon: IN endpoint control register.
76 * @txcs: IN endpoint control and status register.
87 /* rxcon/txcon - endpoint control register bitmasks. */
88 /* Endpoint buffering: 0 - single buffering ... 3 - quad buffering. */
106 /* rxcs/txcs - endpoint control and status bitmasks. */
111 * struct cdns2_epx_regs - endpoint 1..15 related registers.
117 * @isoautoarm: ISO auto-arm register.
127 * @txstaddr: transmit (IN) start address endpoint buffer register.
129 * @txmaxpack: transmit (IN) Max packet size register.
152 /* ENDPRST - bitmasks. */
155 /* IN direction bit. */
165 * struct cdns2_interrupt_regs - USB interrupt related registers.
188 /* EXTIRQ and EXTIEN - bitmasks. */
196 /* USBIEN and USBIRQ - bitmasks. */
199 /* Start-of-frame interrupt bit. */
207 /* USB high-speed mode interrupt bit. */
215 * struct cdns2_usb_regs - USB controller registers.
248 /* LPMCTRL - bitmasks. */
253 /* Reflects value of the lpmnyet bit located in the usbcs[1] register. */
256 /* LPMCLOCK - bitmasks. */
264 /* USBCS - bitmasks. */
267 /* Remote wake-up bit. */
274 /* FIFOCTRL - bitmasks. */
286 /* SPEEDCTRL - bitmasks. */
287 /* Device works in Full Speed. */
289 /* Device works in High Speed. */
294 /* CPUCTRL- bitmasks. */
308 * struct cdns2_adma_regs - ADMA controller registers.
355 /* DMA_CONF - bitmasks. */
363 /* DMA_EP_CFG - bitmasks. */
367 /* DMA_EP_CMD - bitmasks. */
375 /* DMA_EP_STS - bitmasks. */
393 /* DMA_EP_STS_EN - bitmasks. */
403 /* DMA_EP_IEN - bitmasks. */
408 /* DMA_EP_ISTS - bitmasks. */
416 /*-------------------------------------------------------------------------*/
428 #define TRB_BUFF_LEN_UP_TO_BOUNDARY(addr) (TRB_MAX_ISO_BUFF_SIZE - \
429 ((addr) & (TRB_MAX_ISO_BUFF_SIZE - 1)))
436 * struct cdns2_trb - represent Transfer Descriptor block.
463 /* Used for Bulk, Interrupt, ISOC, and control data stage. */
468 /* Cycle bit - indicates TRB ownership by driver or hw. */
489 /*-------------------------------------------------------------------------*/
495 /* One control and 15 IN and 15 OUT endpoints. */
500 /*-------------------------------------------------------------------------*/
506 * struct cdns2_ring - transfer ring representation.
509 * @free_trbs: number of free TRBs in transfer ring.
512 * @enqueue: enqueue index in transfer ring.
513 * @dequeue: dequeue index in transfer ring.
526 * struct cdns2_endpoint - extended device side representation of USB endpoint.
534 * @idx: index of endpoint in pdev->eps table.
536 * @num: endpoint number (1 - 15).
538 * @interval: interval between packets used for ISOC and Interrupt endpoint.
539 * @buffering: on-chip buffers assigned to endpoint.
540 * @trb_burst_size: number of burst used in TRB.
542 * quickly enough and it will miss some isoc tds on the ring and
587 * struct cdns2_request - extended device side representation of usb_request
592 * @start_trb: number of the first TRB in transfer ring.
593 * @end_trb: number of the last TRB in transfer ring.
594 * @list: used for queuing request in lists.
617 * struct cdns2_device - represent USB device.
641 * stage completion. It's used in deferred SET_CONFIGURATION request.
642 * @in_lpm: indicate the controller is in low power mode.
645 * @eps_supported: endpoints supported by controller in form:
646 * bit: 0 - ep0, 1 - epOut1, 2 - epIn1, 3 - epOut2 ...
648 * @onchip_tx_buf: size of transmit on-chip buffer in KB.
649 * @onchip_rx_buf: size of receive on-chip buffer in KB.
656 /* generic spin-lock for drivers */
682 /*in KB */
688 ((pdev)->eps_supported & \