Lines Matching +full:4 +full:- +full:ch

1 // SPDX-License-Identifier: GPL-2.0-only
10 #include <linux/dma-mapping.h>
45 #define DMA_PCTRL_4W_BURST 0x2 /* 4 word burst length */
47 #define DMA_TX_BURST_SHIFT 4 /* tx burst shift */
61 ltq_dma_enable_irq(struct ltq_dma_channel *ch) in ltq_dma_enable_irq() argument
66 ltq_dma_w32(ch->nr, LTQ_DMA_CS); in ltq_dma_enable_irq()
67 ltq_dma_w32_mask(0, 1 << ch->nr, LTQ_DMA_IRNEN); in ltq_dma_enable_irq()
73 ltq_dma_disable_irq(struct ltq_dma_channel *ch) in ltq_dma_disable_irq() argument
78 ltq_dma_w32(ch->nr, LTQ_DMA_CS); in ltq_dma_disable_irq()
79 ltq_dma_w32_mask(1 << ch->nr, 0, LTQ_DMA_IRNEN); in ltq_dma_disable_irq()
85 ltq_dma_ack_irq(struct ltq_dma_channel *ch) in ltq_dma_ack_irq() argument
90 ltq_dma_w32(ch->nr, LTQ_DMA_CS); in ltq_dma_ack_irq()
97 ltq_dma_open(struct ltq_dma_channel *ch) in ltq_dma_open() argument
102 ltq_dma_w32(ch->nr, LTQ_DMA_CS); in ltq_dma_open()
109 ltq_dma_close(struct ltq_dma_channel *ch) in ltq_dma_close() argument
114 ltq_dma_w32(ch->nr, LTQ_DMA_CS); in ltq_dma_close()
116 ltq_dma_w32_mask(1 << ch->nr, 0, LTQ_DMA_IRNEN); in ltq_dma_close()
122 ltq_dma_alloc(struct ltq_dma_channel *ch) in ltq_dma_alloc() argument
126 ch->desc = 0; in ltq_dma_alloc()
127 ch->desc_base = dma_alloc_coherent(ch->dev, in ltq_dma_alloc()
129 &ch->phys, GFP_ATOMIC); in ltq_dma_alloc()
132 ltq_dma_w32(ch->nr, LTQ_DMA_CS); in ltq_dma_alloc()
133 ltq_dma_w32(ch->phys, LTQ_DMA_CDBA); in ltq_dma_alloc()
144 ltq_dma_alloc_tx(struct ltq_dma_channel *ch) in ltq_dma_alloc_tx() argument
148 ltq_dma_alloc(ch); in ltq_dma_alloc_tx()
152 ltq_dma_w32_mask(0, 1 << ch->nr, LTQ_DMA_IRNEN); in ltq_dma_alloc_tx()
159 ltq_dma_alloc_rx(struct ltq_dma_channel *ch) in ltq_dma_alloc_rx() argument
163 ltq_dma_alloc(ch); in ltq_dma_alloc_rx()
167 ltq_dma_w32_mask(0, 1 << ch->nr, LTQ_DMA_IRNEN); in ltq_dma_alloc_rx()
174 ltq_dma_free(struct ltq_dma_channel *ch) in ltq_dma_free() argument
176 if (!ch->desc_base) in ltq_dma_free()
178 ltq_dma_close(ch); in ltq_dma_free()
179 dma_free_coherent(ch->dev, LTQ_DESC_NUM * LTQ_DESC_SIZE, in ltq_dma_free()
180 ch->desc_base, ch->phys); in ltq_dma_free()
207 case 4: in ltq_dma_init_port()
224 case 4: in ltq_dma_init_port()
247 ltq_dma_membase = devm_ioremap_resource(&pdev->dev, res); in ltq_dma_init()
252 clk = clk_get(&pdev->dev, NULL); in ltq_dma_init()
274 dev_info(&pdev->dev, in ltq_dma_init()
275 "Init done - hw rev: %X, ports: %d, channels: %d\n", in ltq_dma_init()
282 { .compatible = "lantiq,dma-xway" },
289 .name = "dma-xway",