Lines Matching +full:axi +full:- +full:dma +full:- +full:1
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. */
49 #define EP0CS_HSNAK BIT(1)
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. */
89 #define EPX_CON_BUF GENMASK(1, 0)
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. */
192 #define EXTIRQ_VBUSFAULT_RISE BIT(1)
196 /* USBIEN and USBIRQ - bitmasks. */
199 /* Start-of-frame interrupt bit. */
200 #define USBIRQ_SOF BIT(1)
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. */
258 * If bit is 1 the controller automatically turns off clock
264 /* USBCS - bitmasks. */
267 /* Remote wake-up bit. */
274 /* FIFOCTRL - bitmasks. */
286 /* SPEEDCTRL - bitmasks. */
288 #define SPEEDCTRL_FS BIT(1)
294 /* CPUCTRL- bitmasks. */
298 #define CPUCTRL_SW_RST BIT(1)
300 * If the wuen bit is ‘1’, the upclken is automatically set to ‘1’ after
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.
322 * @axim_ctrl: AXI Master Control register.
323 * @axim_id: AXI Master ID register.
325 * @axim_cap: AXI Master Wrapper Extended Capability.
327 * @axim_ctrl0: AXI Master Wrapper Extended Capability Control Register 0.
328 * @axim_ctrl1: AXI Master Wrapper Extended Capability Control Register 1.
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. */
404 #define DMA_EP_IEN(index) (1 << (index))
408 /* DMA_EP_ISTS - bitmasks. */
409 #define DMA_EP_ISTS(index) (1 << (index))
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.
464 #define TRB_NORMAL 1
468 /* Cycle bit - indicates TRB ownership by driver or hw. */
471 * When set to '1', the device will toggle its interpretation of the Cycle bit.
473 #define TRB_TOGGLE BIT(1)
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.
562 #define EP_STALLED BIT(1)
580 unsigned int wa1_set:1;
583 unsigned int wa1_cycle_bit:1;
587 * struct cdns2_request - extended device side representation of usb_request
617 * struct cdns2_device - represent USB device.
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 */
680 u8 burst_opt[MAX_ISO_SIZE + 1];
688 ((pdev)->eps_supported & \