Lines Matching +full:dma +full:- +full:related
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.
45 /* EP0CS - bitmasks. */
59 /* EP0FIFO - bitmasks. */
70 * struct cdns2_epx_base - base endpoint registers.
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.
152 /* ENDPRST - bitmasks. */
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. */
256 /* LPMCLOCK - bitmasks. */
264 /* USBCS - bitmasks. */
267 /* Remote wake-up bit. */
274 /* FIFOCTRL - bitmasks. */
286 /* SPEEDCTRL - bitmasks. */
294 /* CPUCTRL- bitmasks. */
308 * struct cdns2_adma_regs - ADMA controller registers.
309 * @conf: DMA global configuration register.
310 * @sts: DMA global Status register.
312 * @ep_sel: DMA endpoint select register.
313 * @ep_traddr: DMA endpoint transfer ring address register.
314 * @ep_cfg: DMA endpoint configuration register.
315 * @ep_cmd: DMA endpoint command register.
316 * @ep_sts: DMA endpoint status register.
318 * @ep_sts_en: DMA endpoint status enable register.
319 * @drbl: DMA doorbell register.
320 * @ep_ien: DMA endpoint interrupt enable register.
321 * @ep_ists: DMA endpoint interrupt status register.
355 /* DMA_CONF - bitmasks. */
358 /* Singular DMA transfer mode.*/
360 /* Multiple DMA transfers mode.*/
363 /* DMA_EP_CFG - bitmasks. */
367 /* DMA_EP_CMD - bitmasks. */
375 /* DMA_EP_STS - bitmasks. */
384 /* DMA busy bit. */
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.
441 * This structure describes transfer block handled by DMA module.
468 /* Cycle bit - indicates TRB ownership by driver or hw. */
489 /*-------------------------------------------------------------------------*/
500 /*-------------------------------------------------------------------------*/
506 * struct cdns2_ring - transfer ring representation.
508 * @dma: dma address of transfer ring.
517 dma_addr_t dma; member
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).
539 * @buffering: on-chip buffers assigned to endpoint.
587 * struct cdns2_request - extended device side representation of usb_request
617 * struct cdns2_device - represent USB device.
625 * @ep0_regs: base address for endpoint 0 related registers.
627 * @interrupt_regs: base address for interrupt handling related registers.
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 */
688 ((pdev)->eps_supported & \