| /linux/drivers/dma/ |
| H A D | lpc18xx-dmamux.c | 44 struct lpc18xx_dmamux_data *dmamux = dev_get_drvdata(dev); in lpc18xx_dmamux_free() local 48 spin_lock_irqsave(&dmamux->lock, flags); in lpc18xx_dmamux_free() 50 spin_unlock_irqrestore(&dmamux->lock, flags); in lpc18xx_dmamux_free() 57 struct lpc18xx_dmamux_data *dmamux = platform_get_drvdata(pdev); in lpc18xx_dmamux_reserve() local 68 if (mux >= dmamux->dma_master_requests) { in lpc18xx_dmamux_reserve() 87 spin_lock_irqsave(&dmamux->lock, flags); in lpc18xx_dmamux_reserve() 88 if (dmamux->muxes[mux].busy) { in lpc18xx_dmamux_reserve() 89 spin_unlock_irqrestore(&dmamux->lock, flags); in lpc18xx_dmamux_reserve() 91 mux, mux, dmamux->muxes[mux].value); in lpc18xx_dmamux_reserve() 97 dmamux->muxes[mux].busy = true; in lpc18xx_dmamux_reserve() [all …]
|
| H A D | lpc32xx-dmamux.c | 79 struct lpc32xx_dmamux_data *dmamux = dev_get_drvdata(dev); in lpc32xx_dmamux_release() local 85 guard(spinlock)(&dmamux->lock); in lpc32xx_dmamux_release() 95 struct lpc32xx_dmamux_data *dmamux = platform_get_drvdata(pdev); in lpc32xx_dmamux_reserve() local 131 spin_lock_irqsave(&dmamux->lock, flags); in lpc32xx_dmamux_reserve() 133 spin_unlock_irqrestore(&dmamux->lock, flags); in lpc32xx_dmamux_reserve() 144 regmap_update_bits(dmamux->reg, mux->muxreg, BIT(mux->bit), mux->muxval); in lpc32xx_dmamux_reserve() 145 spin_unlock_irqrestore(&dmamux->lock, flags); in lpc32xx_dmamux_reserve() 166 struct lpc32xx_dmamux_data *dmamux; in lpc32xx_dmamux_probe() local 168 dmamux = devm_kzalloc(&pdev->dev, sizeof(*dmamux), GFP_KERNEL); in lpc32xx_dmamux_probe() 169 if (!dmamux) in lpc32xx_dmamux_probe() [all …]
|
| H A D | cv1800b-dmamux.c | 78 struct cv1800_dmamux_data *dmamux = dev_get_drvdata(dev); in cv1800_dmamux_free() local 81 guard(spinlock_irqsave)(&dmamux->lock); in cv1800_dmamux_free() 83 regmap_update_bits(dmamux->regmap, in cv1800_dmamux_free() 88 regmap_update_bits(dmamux->regmap, REG_DMA_INT_MUX, in cv1800_dmamux_free() 100 struct cv1800_dmamux_data *dmamux = platform_get_drvdata(pdev); in cv1800_dmamux_route_allocate() local 132 spin_lock_irqsave(&dmamux->lock, flags); in cv1800_dmamux_route_allocate() 134 if (test_bit(devid, dmamux->mapped_peripherals)) { in cv1800_dmamux_route_allocate() 135 llist_for_each_entry(map, dmamux->reserve_maps.first, node) { in cv1800_dmamux_route_allocate() 141 node = llist_del_first(&dmamux->free_maps); in cv1800_dmamux_route_allocate() 148 llist_add(&map->node, &dmamux->reserve_maps); in cv1800_dmamux_route_allocate() [all …]
|
| H A D | Makefile | 54 obj-$(CONFIG_LPC18XX_DMAMUX) += lpc18xx-dmamux.o 55 obj-$(CONFIG_LPC32XX_DMAMUX) += lpc32xx-dmamux.o 74 obj-$(CONFIG_SOPHGO_CV1800B_DMAMUX) += cv1800b-dmamux.o
|
| /linux/drivers/dma/stm32/ |
| H A D | stm32-dmamux.c | 41 u32 dma_requests; /* Number of DMA requests connected to DMAMUX */ 66 struct stm32_dmamux_data *dmamux = dev_get_drvdata(dev); in stm32_dmamux_free() local 71 spin_lock_irqsave(&dmamux->lock, flags); in stm32_dmamux_free() 73 stm32_dmamux_write(dmamux->iomem, STM32_DMAMUX_CCR(mux->chan_id), 0); in stm32_dmamux_free() 74 clear_bit(mux->chan_id, dmamux->dma_inuse); in stm32_dmamux_free() 78 spin_unlock_irqrestore(&dmamux->lock, flags); in stm32_dmamux_free() 80 dev_dbg(dev, "Unmapping DMAMUX(%u) to DMA%u(%u)\n", in stm32_dmamux_free() 90 struct stm32_dmamux_data *dmamux = platform_get_drvdata(pdev); in stm32_dmamux_route_allocate() local 101 if (dma_spec->args[0] > dmamux->dmamux_requests) { in stm32_dmamux_route_allocate() 113 spin_lock_irqsave(&dmamux->lock, flags); in stm32_dmamux_route_allocate() [all …]
|
| H A D | Makefile | 3 obj-$(CONFIG_STM32_DMAMUX) += stm32-dmamux.o
|
| H A D | Kconfig | 24 and want to use DMAMUX say Y here.
|
| /linux/drivers/dma/dw/ |
| H A D | rzn1-dmamux.c | 31 struct rzn1_dmamux_data *dmamux = dev_get_drvdata(dev); in rzn1_dmamux_free() local 34 dev_dbg(dev, "Unmapping DMAMUX request %u\n", map->req_idx); in rzn1_dmamux_free() 36 clear_bit(map->req_idx, dmamux->used_chans); in rzn1_dmamux_free() 45 struct rzn1_dmamux_data *dmamux = platform_get_drvdata(pdev); in rzn1_dmamux_route_allocate() local 88 dev_dbg(&pdev->dev, "Mapping DMAMUX request %u to DMAC%u request %u\n", in rzn1_dmamux_route_allocate() 91 if (test_and_set_bit(map->req_idx, dmamux->used_chans)) { in rzn1_dmamux_route_allocate() 105 clear_bit(map->req_idx, dmamux->used_chans); in rzn1_dmamux_route_allocate() 128 struct rzn1_dmamux_data *dmamux; in rzn1_dmamux_probe() local 130 dmamux = devm_kzalloc(&pdev->dev, sizeof(*dmamux), GFP_KERNEL); in rzn1_dmamux_probe() 131 if (!dmamux) in rzn1_dmamux_probe() [all …]
|
| H A D | Kconfig | 20 tristate "Renesas RZ/N1 DMAMUX driver" 24 Support the Renesas RZ/N1 DMAMUX which is located in front of
|
| H A D | Makefile | 13 obj-$(CONFIG_RZN1_DMAMUX) += rzn1-dmamux.o
|
| /linux/Documentation/devicetree/bindings/dma/ |
| H A D | nxp,lpc3220-dmamux.yaml | 4 $id: http://devicetree.org/schemas/dma/nxp,lpc3220-dmamux.yaml# 18 const: nxp,lpc3220-dmamux 43 compatible = "nxp,lpc3220-dmamux";
|
| H A D | sophgo,cv1800b-dmamux.yaml | 4 $id: http://devicetree.org/schemas/dma/sophgo,cv1800b-dmamux.yaml# 22 const: sophgo,cv1800b-dmamux 47 compatible = "sophgo,cv1800b-dmamux";
|
| H A D | renesas,rzn1-dmamux.yaml | 4 $id: http://devicetree.org/schemas/dma/renesas,rzn1-dmamux.yaml# 17 const: renesas,rzn1-dmamux 46 compatible = "renesas,rzn1-dmamux";
|
| /linux/Documentation/arch/arm/stm32/ |
| H A D | stm32-dma-mdma-chaining.rst | 19 (STM32 DMAMUX). 21 **STM32 DMAMUX** 23 STM32 DMAMUX routes any DMA request from a given peripheral to any STM32 DMA 72 | STM32 DMAMUX | STM32 DMA | STM32 DMA | STM32 MDMA | 132 * the STM32 MDMA request (which is actually the DMAMUX channel ID), 190 by MDMA driver with the STM32 DMAMUX channel ID passed through 300 three u32 : the first one containing STM32 DMAMUX channel ID, the second one 406 dealing with STM32 DMAMUX, STM32 DMA and STM32 MDMA. 409 .. _AN5224: https://www.st.com/resource/en/application_note/an5224-stm32-dmamux-the-dma-request-rou…
|
| /linux/Documentation/devicetree/bindings/soc/sophgo/ |
| H A D | sophgo,cv1800b-top-syscon.yaml | 36 $ref: /schemas/dma/sophgo,cv1800b-dmamux.yaml# 73 compatible = "sophgo,cv1800b-dmamux";
|
| /linux/Documentation/devicetree/bindings/clock/ |
| H A D | renesas,r9a06g032-sysctrl.yaml | 51 $ref: /schemas/dma/renesas,rzn1-dmamux.yaml#
|
| /linux/include/dt-bindings/clock/ |
| H A D | stm32mp1-clks.h | 86 #define DMAMUX 73 macro
|
| /linux/drivers/clk/renesas/ |
| H A D | r9a06g032-clocks.c | 686 /* Exported helper to access the DMAMUX register */ 690 u32 dmamux; in r9a06g032_sysctrl_set_dmamux() local 697 dmamux = readl(sysctrl_priv->reg + R9A06G032_SYSCTRL_DMAMUX); in r9a06g032_sysctrl_set_dmamux() 698 dmamux &= ~mask; in r9a06g032_sysctrl_set_dmamux() 699 dmamux |= val & mask; in r9a06g032_sysctrl_set_dmamux() 700 writel(dmamux, sysctrl_priv->reg + R9A06G032_SYSCTRL_DMAMUX); in r9a06g032_sysctrl_set_dmamux()
|
| /linux/arch/arm/boot/dts/st/ |
| H A D | stm32h743.dtsi | 300 compatible = "st,stm32h7-dmamux";
|
| H A D | stm32mp131.dtsi | 779 compatible = "st,stm32h7-dmamux";
|
| /linux/drivers/clk/stm32/ |
| H A D | clk-stm32mp1.c | 1959 PCLK(DMAMUX, "dmamux", "ck_mcu", 0, G_DMAMUX),
|
| /linux/ |
| H A D | MAINTAINERS | 2951 F: drivers/dma/lpc32xx-dmamux.c 2958 LPC32XX DMAMUX SUPPORT 2964 F: Documentation/devicetree/bindings/dma/nxp,lpc3220-dmamux.yaml 25605 F: Documentation/devicetree/bindings/dma/renesas,rzn1-dmamux.yaml
|