| /linux-6.15/drivers/dma/ |
| H A D | lpc18xx-dmamux.c | 87 if (dmamux->muxes[mux].busy) { in lpc18xx_dmamux_reserve() 95 dmamux->muxes[mux].busy = true; in lpc18xx_dmamux_reserve() 109 return &dmamux->muxes[mux]; in lpc18xx_dmamux_reserve() 118 dmamux = devm_kzalloc(&pdev->dev, sizeof(*dmamux), GFP_KERNEL); in lpc18xx_dmamux_probe() 119 if (!dmamux) in lpc18xx_dmamux_probe() 123 if (IS_ERR(dmamux->reg)) { in lpc18xx_dmamux_probe() 125 return PTR_ERR(dmamux->reg); in lpc18xx_dmamux_probe() 149 dmamux->muxes = devm_kcalloc(&pdev->dev, dmamux->dma_master_requests, in lpc18xx_dmamux_probe() 152 if (!dmamux->muxes) in lpc18xx_dmamux_probe() 155 spin_lock_init(&dmamux->lock); in lpc18xx_dmamux_probe() [all …]
|
| H A D | lpc32xx-dmamux.c | 85 guard(spinlock)(&dmamux->lock); in lpc32xx_dmamux_release() 130 spin_lock_irqsave(&dmamux->lock, flags); in lpc32xx_dmamux_reserve() 157 struct lpc32xx_dmamux_data *dmamux; in lpc32xx_dmamux_probe() local 159 dmamux = devm_kzalloc(&pdev->dev, sizeof(*dmamux), GFP_KERNEL); in lpc32xx_dmamux_probe() 160 if (!dmamux) in lpc32xx_dmamux_probe() 164 if (IS_ERR(dmamux->reg)) { in lpc32xx_dmamux_probe() 166 return PTR_ERR(dmamux->reg); in lpc32xx_dmamux_probe() 169 spin_lock_init(&dmamux->lock); in lpc32xx_dmamux_probe() 170 platform_set_drvdata(pdev, dmamux); in lpc32xx_dmamux_probe() 171 dmamux->dmarouter.dev = &pdev->dev; in lpc32xx_dmamux_probe() [all …]
|
| H A D | Makefile | 53 obj-$(CONFIG_LPC18XX_DMAMUX) += lpc18xx-dmamux.o 54 obj-$(CONFIG_LPC32XX_DMAMUX) += lpc32xx-dmamux.o
|
| /linux-6.15/drivers/dma/dw/ |
| H A D | rzn1-dmamux.c | 31 struct rzn1_dmamux_data *dmamux = dev_get_drvdata(dev); in rzn1_dmamux_free() local 36 clear_bit(map->req_idx, dmamux->used_chans); in rzn1_dmamux_free() 87 if (test_and_set_bit(map->req_idx, dmamux->used_chans)) { in rzn1_dmamux_route_allocate() 100 clear_bit(map->req_idx, dmamux->used_chans); in rzn1_dmamux_route_allocate() 119 struct rzn1_dmamux_data *dmamux; in rzn1_dmamux_probe() local 121 dmamux = devm_kzalloc(&pdev->dev, sizeof(*dmamux), GFP_KERNEL); in rzn1_dmamux_probe() 122 if (!dmamux) in rzn1_dmamux_probe() 134 dmamux->dmarouter.dev = &pdev->dev; in rzn1_dmamux_probe() 135 dmamux->dmarouter.route_free = rzn1_dmamux_free; in rzn1_dmamux_probe() 137 platform_set_drvdata(pdev, dmamux); in rzn1_dmamux_probe() [all …]
|
| H A D | Makefile | 13 obj-$(CONFIG_RZN1_DMAMUX) += rzn1-dmamux.o
|
| /linux-6.15/drivers/dma/stm32/ |
| H A D | stm32-dmamux.c | 71 spin_lock_irqsave(&dmamux->lock, flags); 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() 111 spin_lock_irqsave(&dmamux->lock, flags); in stm32_dmamux_route_allocate() 113 dmamux->dma_requests); in stm32_dmamux_route_allocate() 115 if (mux->chan_id == dmamux->dma_requests) { in stm32_dmamux_route_allocate() 121 set_bit(mux->chan_id, dmamux->dma_inuse); in stm32_dmamux_route_allocate() 126 i <= dmamux->dma_reqs[0]; in stm32_dmamux_route_allocate() 127 min += dmamux->dma_reqs[i], max += dmamux->dma_reqs[++i]) in stm32_dmamux_route_allocate() 141 spin_lock_irqsave(&dmamux->lock, flags); in stm32_dmamux_route_allocate() [all …]
|
| H A D | Makefile | 3 obj-$(CONFIG_STM32_DMAMUX) += stm32-dmamux.o
|
| /linux-6.15/arch/arm/boot/dts/nxp/lpc/ |
| H A D | lpc18xx.dtsi | 292 &dmamux 2 1 2 293 &dmamux 11 2 2 308 &dmamux 4 1 2>; 395 &dmamux 8 1 2 396 &dmamux 13 3 2 428 &dmamux 12 2 2 429 &dmamux 3 3 2 430 &dmamux 4 3 2 431 &dmamux 5 2 2 432 &dmamux 6 2 2 [all …]
|
| /linux-6.15/Documentation/devicetree/bindings/dma/ |
| H A D | lpc1850-dmamux.txt | 4 - compatible: "nxp,lpc1850-dmamux" 37 dmamux: dma-mux { 38 compatible = "nxp,lpc1850-dmamux"; 51 dmas = <&dmamux 1 1 2 52 &dmamux 2 1 2>;
|
| 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 | 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-6.15/arch/arm/boot/dts/renesas/ |
| H A D | r9a06g032.dtsi | 111 dmamux: dma-router@a0 { label 112 compatible = "renesas,rzn1-dmamux"; 214 dmas = <&dmamux 1 0 0 0 1 1>, <&dmamux 0 0 0 0 0 1>; 227 dmas = <&dmamux 3 0 0 0 3 1>, <&dmamux 2 0 0 0 2 1>; 240 dmas = <&dmamux 5 0 0 0 5 1>, <&dmamux 4 0 0 0 4 1>; 253 dmas = <&dmamux 7 0 0 0 7 1>, <&dmamux 6 0 0 0 6 1>; 266 dmas = <&dmamux 5 0 0 0 21 1>, <&dmamux 4 0 0 0 20 1>;
|
| /linux-6.15/Documentation/devicetree/bindings/dma/stm32/ |
| H A D | st,stm32-dmamux.yaml | 4 $id: http://devicetree.org/schemas/dma/stm32/st,stm32-dmamux.yaml# 30 const: st,stm32h7-dmamux 58 compatible = "st,stm32h7-dmamux";
|
| /linux-6.15/Documentation/devicetree/bindings/clock/ |
| H A D | renesas,r9a06g032-sysctrl.yaml | 51 $ref: /schemas/dma/renesas,rzn1-dmamux.yaml#
|
| /linux-6.15/drivers/clk/renesas/ |
| H A D | r9a06g032-clocks.c | 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-6.15/arch/arm/boot/dts/st/ |
| H A D | stm32h743.dtsi | 292 compatible = "st,stm32h7-dmamux";
|
| H A D | stm32mp131.dtsi | 773 compatible = "st,stm32h7-dmamux";
|
| H A D | stm32mp151.dtsi | 1450 compatible = "st,stm32h7-dmamux";
|
| /linux-6.15/Documentation/arch/arm/stm32/ |
| H A D | stm32-dma-mdma-chaining.rst | 409 .. _AN5224: https://www.st.com/resource/en/application_note/an5224-stm32-dmamux-the-dma-request-rou…
|
| /linux-6.15/ |
| H A D | MAINTAINERS | 2665 F: drivers/dma/lpc32xx-dmamux.c 2678 F: Documentation/devicetree/bindings/dma/nxp,lpc3220-dmamux.yaml 23643 F: Documentation/devicetree/bindings/dma/renesas,rzn1-dmamux.yaml
|