Loading Documentation/devicetree/bindings/dma/st_fdma.txt 0 → 100644 +87 −0 Original line number Diff line number Diff line * STMicroelectronics Flexible Direct Memory Access Device Tree bindings The FDMA is a general-purpose direct memory access controller capable of supporting 16 independent DMA channels. It accepts up to 32 DMA requests. The FDMA is based on a Slim processor which requires a firmware. * FDMA Controller Required properties: - compatible : Should be one of - st,stih407-fdma-mpe31-11, "st,slim-rproc"; - st,stih407-fdma-mpe31-12, "st,slim-rproc"; - st,stih407-fdma-mpe31-13, "st,slim-rproc"; - reg : Should contain an entry for each name in reg-names - reg-names : Must contain "slimcore", "dmem", "peripherals", "imem" entries - interrupts : Should contain one interrupt shared by all channels - dma-channels : Number of channels supported by the controller - #dma-cells : Must be <3>. See DMA client section below - clocks : Must contain an entry for each clock See: Documentation/devicetree/bindings/clock/clock-bindings.txt Example: fdma0: dma-controller@8e20000 { compatible = "st,stih407-fdma-mpe31-11", "st,slim-rproc"; reg = <0x8e20000 0x8000>, <0x8e30000 0x3000>, <0x8e37000 0x1000>, <0x8e38000 0x8000>; reg-names = "slimcore", "dmem", "peripherals", "imem"; clocks = <&clk_s_c0_flexgen CLK_FDMA>, <&clk_s_c0_flexgen CLK_EXT2F_A9>, <&clk_s_c0_flexgen CLK_EXT2F_A9>, <&clk_s_c0_flexgen CLK_EXT2F_A9>; interrupts = <GIC_SPI 5 IRQ_TYPE_NONE>; dma-channels = <16>; #dma-cells = <3>; }; * DMA client Required properties: - dmas: Comma separated list of dma channel requests - dma-names: Names of the aforementioned requested channels Each dmas request consists of 4 cells: 1. A phandle pointing to the FDMA controller 2. The request line number 3. A 32bit mask specifying (see include/linux/platform_data/dma-st-fdma.h) -bit 2-0: Holdoff value, dreq will be masked for 0x0: 0-0.5us 0x1: 0.5-1us 0x2: 1-1.5us -bit 17: data swap 0x0: disabled 0x1: enabled -bit 21: Increment Address 0x0: no address increment between transfers 0x1: increment address between transfers -bit 22: 2 STBus Initiator Coprocessor interface 0x0: high priority port 0x1: low priority port 4. transfers type 0 free running 1 paced Example: sti_uni_player2: sti-uni-player@2 { compatible = "st,sti-uni-player"; status = "disabled"; #sound-dai-cells = <0>; st,syscfg = <&syscfg_core>; clocks = <&clk_s_d0_flexgen CLK_PCM_2>; assigned-clocks = <&clk_s_d0_flexgen CLK_PCM_2>; assigned-clock-parents = <&clk_s_d0_quadfs 2>; assigned-clock-rates = <50000000>; reg = <0x8D82000 0x158>; interrupts = <GIC_SPI 86 IRQ_TYPE_NONE>; dmas = <&fdma0 4 0 1>; dai-name = "Uni Player #1 (DAC)"; dma-names = "tx"; st,uniperiph-id = <2>; st,version = <5>; st,mode = "PCM"; }; MAINTAINERS +3 −0 Original line number Diff line number Diff line Loading @@ -1774,6 +1774,7 @@ F: drivers/char/hw_random/st-rng.c F: drivers/clocksource/arm_global_timer.c F: drivers/clocksource/clksrc_st_lpc.c F: drivers/cpufreq/sti-cpufreq.c F: drivers/dma/st_fdma* F: drivers/i2c/busses/i2c-st.c F: drivers/media/rc/st_rc.c F: drivers/media/platform/sti/c8sectpfe/ Loading @@ -1784,6 +1785,7 @@ F: drivers/phy/phy-stih407-usb.c F: drivers/phy/phy-stih41x-usb.c F: drivers/pinctrl/pinctrl-st.c F: drivers/remoteproc/st_remoteproc.c F: drivers/remoteproc/st_slim_rproc.c F: drivers/reset/sti/ F: drivers/rtc/rtc-st-lpc.c F: drivers/tty/serial/st-asc.c Loading @@ -1792,6 +1794,7 @@ F: drivers/usb/host/ehci-st.c F: drivers/usb/host/ohci-st.c F: drivers/watchdog/st_lpc_wdt.c F: drivers/ata/ahci_st.c F: include/linux/remoteproc/st_slim_rproc.h ARM/STM32 ARCHITECTURE M: Maxime Coquelin <mcoquelin.stm32@gmail.com> Loading arch/arm/configs/multi_v7_defconfig +6 −0 Original line number Diff line number Diff line Loading @@ -649,6 +649,9 @@ CONFIG_SND_SOC_AK4642=m CONFIG_SND_SOC_SGTL5000=m CONFIG_SND_SOC_SPDIF=m CONFIG_SND_SOC_WM8978=m CONFIG_SND_SOC_STI=m CONFIG_SND_SOC_STI_SAS=m CONFIG_SND_SIMPLE_CARD=m CONFIG_USB=y CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_MVEBU=y Loading Loading @@ -790,6 +793,7 @@ CONFIG_DMA_OMAP=y CONFIG_QCOM_BAM_DMA=y CONFIG_XILINX_DMA=y CONFIG_DMA_SUN6I=y CONFIG_ST_FDMA=m CONFIG_STAGING=y CONFIG_SENSORS_ISL29018=y CONFIG_SENSORS_ISL29028=y Loading Loading @@ -823,6 +827,8 @@ CONFIG_HWSPINLOCK_QCOM=y CONFIG_ROCKCHIP_IOMMU=y CONFIG_TEGRA_IOMMU_GART=y CONFIG_TEGRA_IOMMU_SMMU=y CONFIG_REMOTEPROC=m CONFIG_ST_REMOTEPROC=m CONFIG_PM_DEVFREQ=y CONFIG_ARM_TEGRA_DEVFREQ=m CONFIG_MEMORY=y Loading drivers/dma/Kconfig +14 −0 Original line number Diff line number Diff line Loading @@ -435,6 +435,20 @@ config STE_DMA40 help Support for ST-Ericsson DMA40 controller config ST_FDMA tristate "ST FDMA dmaengine support" depends on ARCH_STI depends on REMOTEPROC select ST_SLIM_REMOTEPROC select DMA_ENGINE select DMA_VIRTUAL_CHANNELS help Enable support for ST FDMA controller. It supports 16 independent DMA channels, accepts up to 32 DMA requests Say Y here if you have such a chipset. If unsure, say N. config STM32_DMA bool "STMicroelectronics STM32 DMA support" depends on ARCH_STM32 || COMPILE_TEST Loading drivers/dma/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ obj-$(CONFIG_TI_DMA_CROSSBAR) += ti-dma-crossbar.o obj-$(CONFIG_TI_EDMA) += edma.o obj-$(CONFIG_XGENE_DMA) += xgene-dma.o obj-$(CONFIG_ZX_DMA) += zx296702_dma.o obj-$(CONFIG_ST_FDMA) += st_fdma.o obj-y += qcom/ obj-y += xilinx/ Loading
Documentation/devicetree/bindings/dma/st_fdma.txt 0 → 100644 +87 −0 Original line number Diff line number Diff line * STMicroelectronics Flexible Direct Memory Access Device Tree bindings The FDMA is a general-purpose direct memory access controller capable of supporting 16 independent DMA channels. It accepts up to 32 DMA requests. The FDMA is based on a Slim processor which requires a firmware. * FDMA Controller Required properties: - compatible : Should be one of - st,stih407-fdma-mpe31-11, "st,slim-rproc"; - st,stih407-fdma-mpe31-12, "st,slim-rproc"; - st,stih407-fdma-mpe31-13, "st,slim-rproc"; - reg : Should contain an entry for each name in reg-names - reg-names : Must contain "slimcore", "dmem", "peripherals", "imem" entries - interrupts : Should contain one interrupt shared by all channels - dma-channels : Number of channels supported by the controller - #dma-cells : Must be <3>. See DMA client section below - clocks : Must contain an entry for each clock See: Documentation/devicetree/bindings/clock/clock-bindings.txt Example: fdma0: dma-controller@8e20000 { compatible = "st,stih407-fdma-mpe31-11", "st,slim-rproc"; reg = <0x8e20000 0x8000>, <0x8e30000 0x3000>, <0x8e37000 0x1000>, <0x8e38000 0x8000>; reg-names = "slimcore", "dmem", "peripherals", "imem"; clocks = <&clk_s_c0_flexgen CLK_FDMA>, <&clk_s_c0_flexgen CLK_EXT2F_A9>, <&clk_s_c0_flexgen CLK_EXT2F_A9>, <&clk_s_c0_flexgen CLK_EXT2F_A9>; interrupts = <GIC_SPI 5 IRQ_TYPE_NONE>; dma-channels = <16>; #dma-cells = <3>; }; * DMA client Required properties: - dmas: Comma separated list of dma channel requests - dma-names: Names of the aforementioned requested channels Each dmas request consists of 4 cells: 1. A phandle pointing to the FDMA controller 2. The request line number 3. A 32bit mask specifying (see include/linux/platform_data/dma-st-fdma.h) -bit 2-0: Holdoff value, dreq will be masked for 0x0: 0-0.5us 0x1: 0.5-1us 0x2: 1-1.5us -bit 17: data swap 0x0: disabled 0x1: enabled -bit 21: Increment Address 0x0: no address increment between transfers 0x1: increment address between transfers -bit 22: 2 STBus Initiator Coprocessor interface 0x0: high priority port 0x1: low priority port 4. transfers type 0 free running 1 paced Example: sti_uni_player2: sti-uni-player@2 { compatible = "st,sti-uni-player"; status = "disabled"; #sound-dai-cells = <0>; st,syscfg = <&syscfg_core>; clocks = <&clk_s_d0_flexgen CLK_PCM_2>; assigned-clocks = <&clk_s_d0_flexgen CLK_PCM_2>; assigned-clock-parents = <&clk_s_d0_quadfs 2>; assigned-clock-rates = <50000000>; reg = <0x8D82000 0x158>; interrupts = <GIC_SPI 86 IRQ_TYPE_NONE>; dmas = <&fdma0 4 0 1>; dai-name = "Uni Player #1 (DAC)"; dma-names = "tx"; st,uniperiph-id = <2>; st,version = <5>; st,mode = "PCM"; };
MAINTAINERS +3 −0 Original line number Diff line number Diff line Loading @@ -1774,6 +1774,7 @@ F: drivers/char/hw_random/st-rng.c F: drivers/clocksource/arm_global_timer.c F: drivers/clocksource/clksrc_st_lpc.c F: drivers/cpufreq/sti-cpufreq.c F: drivers/dma/st_fdma* F: drivers/i2c/busses/i2c-st.c F: drivers/media/rc/st_rc.c F: drivers/media/platform/sti/c8sectpfe/ Loading @@ -1784,6 +1785,7 @@ F: drivers/phy/phy-stih407-usb.c F: drivers/phy/phy-stih41x-usb.c F: drivers/pinctrl/pinctrl-st.c F: drivers/remoteproc/st_remoteproc.c F: drivers/remoteproc/st_slim_rproc.c F: drivers/reset/sti/ F: drivers/rtc/rtc-st-lpc.c F: drivers/tty/serial/st-asc.c Loading @@ -1792,6 +1794,7 @@ F: drivers/usb/host/ehci-st.c F: drivers/usb/host/ohci-st.c F: drivers/watchdog/st_lpc_wdt.c F: drivers/ata/ahci_st.c F: include/linux/remoteproc/st_slim_rproc.h ARM/STM32 ARCHITECTURE M: Maxime Coquelin <mcoquelin.stm32@gmail.com> Loading
arch/arm/configs/multi_v7_defconfig +6 −0 Original line number Diff line number Diff line Loading @@ -649,6 +649,9 @@ CONFIG_SND_SOC_AK4642=m CONFIG_SND_SOC_SGTL5000=m CONFIG_SND_SOC_SPDIF=m CONFIG_SND_SOC_WM8978=m CONFIG_SND_SOC_STI=m CONFIG_SND_SOC_STI_SAS=m CONFIG_SND_SIMPLE_CARD=m CONFIG_USB=y CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_MVEBU=y Loading Loading @@ -790,6 +793,7 @@ CONFIG_DMA_OMAP=y CONFIG_QCOM_BAM_DMA=y CONFIG_XILINX_DMA=y CONFIG_DMA_SUN6I=y CONFIG_ST_FDMA=m CONFIG_STAGING=y CONFIG_SENSORS_ISL29018=y CONFIG_SENSORS_ISL29028=y Loading Loading @@ -823,6 +827,8 @@ CONFIG_HWSPINLOCK_QCOM=y CONFIG_ROCKCHIP_IOMMU=y CONFIG_TEGRA_IOMMU_GART=y CONFIG_TEGRA_IOMMU_SMMU=y CONFIG_REMOTEPROC=m CONFIG_ST_REMOTEPROC=m CONFIG_PM_DEVFREQ=y CONFIG_ARM_TEGRA_DEVFREQ=m CONFIG_MEMORY=y Loading
drivers/dma/Kconfig +14 −0 Original line number Diff line number Diff line Loading @@ -435,6 +435,20 @@ config STE_DMA40 help Support for ST-Ericsson DMA40 controller config ST_FDMA tristate "ST FDMA dmaengine support" depends on ARCH_STI depends on REMOTEPROC select ST_SLIM_REMOTEPROC select DMA_ENGINE select DMA_VIRTUAL_CHANNELS help Enable support for ST FDMA controller. It supports 16 independent DMA channels, accepts up to 32 DMA requests Say Y here if you have such a chipset. If unsure, say N. config STM32_DMA bool "STMicroelectronics STM32 DMA support" depends on ARCH_STM32 || COMPILE_TEST Loading
drivers/dma/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ obj-$(CONFIG_TI_DMA_CROSSBAR) += ti-dma-crossbar.o obj-$(CONFIG_TI_EDMA) += edma.o obj-$(CONFIG_XGENE_DMA) += xgene-dma.o obj-$(CONFIG_ZX_DMA) += zx296702_dma.o obj-$(CONFIG_ST_FDMA) += st_fdma.o obj-y += qcom/ obj-y += xilinx/