* [PATCH V2 0/2] ARM: dts: Add DT bindings for OMAP SDMA @ 2013-02-08 1:05 ` Jon Hunter 0 siblings, 0 replies; 14+ messages in thread From: Jon Hunter @ 2013-02-08 1:05 UTC (permalink / raw) To: Rob Herring, Grant Likely, Tony Lindgren, Benoit Cousson, Vinod Koul, Russell King Cc: device-tree, linux-omap, linux-arm, Santosh Shilimkar, Matt Porter, Felipe Balbi, Sourav Poddar, Balaji T K, Jon Hunter Adds device-tree bindings from SDMA on OMAP2+ devices. DMA client bindings are also added for devices that have SPI and MMC bindings populated. Client binding data is based upon existing HWMOD data for OMAP and has been checked against OMAP documentation. Please note that the underlying (legacy) OMAP SDMA driver has not been ported over to DT and this still needs to be done. However, this allows DMA clients to look-up the DMA resource information via device-tree. Testing includes ... 1. Boot tested on OMAP3430 Beagle board, OMAP4430 Panda board and OMAP4460 Panda board with and without device-tree present. 2. Testing of MMC1 with SD card on OMAP3430 Beagle board, OMAP4430 Panda board and OMAP4460 Panda board with and without device-tree present. Testing branch available here [1]. Series is based upon Tony Lindgren's omap-for-v3.9/multiplatform-v2 branch [2] on top of the following ... - Vinod's topic/dmaengine_dt branch [3] - Matt Porter's series "DMA Engine support for AM33XX" [4] - Matt Porter's series "omap_hsmmc DT DMA Client support" [5] - Sourav Poddar's series "add omap mcspi device tree data" [6] V2 changes: - Updated to Tony's omap-for-v3.9/multiplatform-v2 branch to pull in DMA changes for v3.9 - Added comma to omap_dma_driver structure as pointed out by Arnd. - Updated OMAP SDMA DT binding compatible strings to indicate which devices are bit compatible with each other with respect to the SDMA controller. Grant had mentioned in the past that he wants the compatible string to be based upon a particular device and not something generic like "ti,omap-sdma". [1] https://github.com/jonhunter/linux/commits/dev-dt-dma [2] git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git omap-for-v3.9/multiplatform-v2 [3] http://git.infradead.org/users/vkoul/slave-dma.git/shortlog/refs/heads/topic/dmaengine_dt [4] http://permalink.gmane.org/gmane.linux.kernel.spi.devel/12508 [5] http://permalink.gmane.org/gmane.linux.ports.arm.omap/93165 [6] http://permalink.gmane.org/gmane.linux.kernel/1435002 Jon Hunter (2): ARM: dts: OMAP2+: Add SDMA controller bindings and nodes dmaengine: OMAP: Register SDMA controller with Device Tree DMA driver .../devicetree/bindings/dma/omap-sdma.txt | 51 ++++++++++++++++++++ arch/arm/boot/dts/omap2.dtsi | 12 +++++ arch/arm/boot/dts/omap3.dtsi | 40 +++++++++++++++ arch/arm/boot/dts/omap4.dtsi | 41 ++++++++++++++++ arch/arm/boot/dts/omap5.dtsi | 41 ++++++++++++++++ arch/arm/mach-omap2/dma.c | 4 ++ drivers/dma/omap-dma.c | 37 +++++++++++++- 7 files changed, 224 insertions(+), 2 deletions(-) create mode 100644 Documentation/devicetree/bindings/dma/omap-sdma.txt -- 1.7.10.4 ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH V2 0/2] ARM: dts: Add DT bindings for OMAP SDMA @ 2013-02-08 1:05 ` Jon Hunter 0 siblings, 0 replies; 14+ messages in thread From: Jon Hunter @ 2013-02-08 1:05 UTC (permalink / raw) To: linux-arm-kernel Adds device-tree bindings from SDMA on OMAP2+ devices. DMA client bindings are also added for devices that have SPI and MMC bindings populated. Client binding data is based upon existing HWMOD data for OMAP and has been checked against OMAP documentation. Please note that the underlying (legacy) OMAP SDMA driver has not been ported over to DT and this still needs to be done. However, this allows DMA clients to look-up the DMA resource information via device-tree. Testing includes ... 1. Boot tested on OMAP3430 Beagle board, OMAP4430 Panda board and OMAP4460 Panda board with and without device-tree present. 2. Testing of MMC1 with SD card on OMAP3430 Beagle board, OMAP4430 Panda board and OMAP4460 Panda board with and without device-tree present. Testing branch available here [1]. Series is based upon Tony Lindgren's omap-for-v3.9/multiplatform-v2 branch [2] on top of the following ... - Vinod's topic/dmaengine_dt branch [3] - Matt Porter's series "DMA Engine support for AM33XX" [4] - Matt Porter's series "omap_hsmmc DT DMA Client support" [5] - Sourav Poddar's series "add omap mcspi device tree data" [6] V2 changes: - Updated to Tony's omap-for-v3.9/multiplatform-v2 branch to pull in DMA changes for v3.9 - Added comma to omap_dma_driver structure as pointed out by Arnd. - Updated OMAP SDMA DT binding compatible strings to indicate which devices are bit compatible with each other with respect to the SDMA controller. Grant had mentioned in the past that he wants the compatible string to be based upon a particular device and not something generic like "ti,omap-sdma". [1] https://github.com/jonhunter/linux/commits/dev-dt-dma [2] git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git omap-for-v3.9/multiplatform-v2 [3] http://git.infradead.org/users/vkoul/slave-dma.git/shortlog/refs/heads/topic/dmaengine_dt [4] http://permalink.gmane.org/gmane.linux.kernel.spi.devel/12508 [5] http://permalink.gmane.org/gmane.linux.ports.arm.omap/93165 [6] http://permalink.gmane.org/gmane.linux.kernel/1435002 Jon Hunter (2): ARM: dts: OMAP2+: Add SDMA controller bindings and nodes dmaengine: OMAP: Register SDMA controller with Device Tree DMA driver .../devicetree/bindings/dma/omap-sdma.txt | 51 ++++++++++++++++++++ arch/arm/boot/dts/omap2.dtsi | 12 +++++ arch/arm/boot/dts/omap3.dtsi | 40 +++++++++++++++ arch/arm/boot/dts/omap4.dtsi | 41 ++++++++++++++++ arch/arm/boot/dts/omap5.dtsi | 41 ++++++++++++++++ arch/arm/mach-omap2/dma.c | 4 ++ drivers/dma/omap-dma.c | 37 +++++++++++++- 7 files changed, 224 insertions(+), 2 deletions(-) create mode 100644 Documentation/devicetree/bindings/dma/omap-sdma.txt -- 1.7.10.4 ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH V2 1/2] ARM: dts: OMAP2+: Add SDMA controller bindings and nodes 2013-02-08 1:05 ` Jon Hunter @ 2013-02-08 1:05 ` Jon Hunter -1 siblings, 0 replies; 14+ messages in thread From: Jon Hunter @ 2013-02-08 1:05 UTC (permalink / raw) To: Rob Herring, Grant Likely, Tony Lindgren, Benoit Cousson, Vinod Koul, Russell King Cc: device-tree, linux-omap, linux-arm, Santosh Shilimkar, Matt Porter, Felipe Balbi, Sourav Poddar, Balaji T K, Jon Hunter Add SDMA controller binding for OMAP2+ devices and populate DMA client information for SPI and MMC periperhal on OMAP3+ devices. Please note that OMAP24xx devices do not have SPI and MMC bindings available yet and so DMA client information is not populated. Signed-off-by: Jon Hunter <jon-hunter@ti.com> --- .../devicetree/bindings/dma/omap-sdma.txt | 51 ++++++++++++++++++++ arch/arm/boot/dts/omap2.dtsi | 12 +++++ arch/arm/boot/dts/omap3.dtsi | 40 +++++++++++++++ arch/arm/boot/dts/omap4.dtsi | 41 ++++++++++++++++ arch/arm/boot/dts/omap5.dtsi | 41 ++++++++++++++++ 5 files changed, 185 insertions(+) create mode 100644 Documentation/devicetree/bindings/dma/omap-sdma.txt diff --git a/Documentation/devicetree/bindings/dma/omap-sdma.txt b/Documentation/devicetree/bindings/dma/omap-sdma.txt new file mode 100644 index 0000000..22aab28 --- /dev/null +++ b/Documentation/devicetree/bindings/dma/omap-sdma.txt @@ -0,0 +1,51 @@ +* TI OMAP SDMA controller + +Required properties: +- compatible: Should be set to one of the following: + + ti,omap2420-sdma (omap2420) + ti,omap2430-sdma (omap2430) + ti,omap3430-sdma (omap3430) + ti,omap3630-sdma (omap3630) + ti,omap4430-sdma (omap4430 & omap4460 & omap543x) + +- reg: Contains DMA registers location and length. +- interrupts: Contains DMA interrupt information. +- #dma-cells: Must be 1. +- #dma-channels: Contains total number of programmable DMA channels. +- #dma-requests: Contains total number of DMA requests. + +Example: + + sdma: dma-controller@4A056000 { + compatible = "ti,omap-sdma"; + reg = <0x4A056000 0x1000>; + interrupts = <0 12 0x4>, + <0 13 0x4>, + <0 14 0x4>, + <0 15 0x4>; + #dma-cells = <1>; + #dma-channels = <32>; + #dma-requests = <127>; + }; + + +* TI OMAP SDMA clients + +Required properties: +- dmas: List of one or more DMA specifiers, each consisting of + - A phandle pointing to DMA controller node + - The DMA request number associated with client device +- dma-names: Contains one identifier string for each dma specifier in + the dmas property. The specific strings that can be used + are defined in the binding of the DMA client device. + +Example: + + mmc1: mmc@4809c000 { + ... + dmas = <&sdma 61>, /* TX channel */ + <&sdma 62>; /* RX channel */ + dma-names = "tx", "rx"; + ... + }; diff --git a/arch/arm/boot/dts/omap2.dtsi b/arch/arm/boot/dts/omap2.dtsi index 761c4b6..22dffa0 100644 --- a/arch/arm/boot/dts/omap2.dtsi +++ b/arch/arm/boot/dts/omap2.dtsi @@ -49,6 +49,18 @@ reg = <0x480FE000 0x1000>; }; + sdma: dma-controller@48056000 { + compatible = "ti,omap2430-sdma", "ti,omap2420-sdma"; + reg = <0x48056000 0x1000>; + interrupts = <12>, + <13>, + <14>, + <15>; + #dma-cells = <1>; + #dma-channels = <32>; + #dma-requests = <64>; + }; + uart1: serial@4806a000 { compatible = "ti,omap2-uart"; ti,hwmods = "uart1"; diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi index 1acc261..4e7acb6 100644 --- a/arch/arm/boot/dts/omap3.dtsi +++ b/arch/arm/boot/dts/omap3.dtsi @@ -75,6 +75,18 @@ reg = <0x48200000 0x1000>; }; + sdma: dma-controller@48056000 { + compatible = "ti,omap3630-sdma", "ti,omap3430-sdma"; + reg = <0x48056000 0x1000>; + interrupts = <12>, + <13>, + <14>, + <15>; + #dma-cells = <1>; + #dma-channels = <32>; + #dma-requests = <96>; + }; + omap3_pmx_core: pinmux@48002030 { compatible = "ti,omap3-padconf", "pinctrl-single"; reg = <0x48002030 0x05cc>; @@ -192,6 +204,16 @@ #size-cells = <0>; ti,hwmods = "mcspi1"; ti,spi-num-cs = <4>; + dmas = <&sdma 35>, + <&sdma 36>, + <&sdma 37>, + <&sdma 38>, + <&sdma 39>, + <&sdma 40>, + <&sdma 41>, + <&sdma 42>; + dma-names = "tx0", "rx0", "tx1", "rx1", + "tx2", "rx2", "tx3", "rx3"; }; mcspi2: spi@4809a000 { @@ -200,6 +222,11 @@ #size-cells = <0>; ti,hwmods = "mcspi2"; ti,spi-num-cs = <2>; + dmas = <&sdma 43>, + <&sdma 44>, + <&sdma 45>, + <&sdma 46>; + dma-names = "tx0", "rx0", "tx1", "rx1"; }; mcspi3: spi@480b8000 { @@ -208,6 +235,11 @@ #size-cells = <0>; ti,hwmods = "mcspi3"; ti,spi-num-cs = <2>; + dmas = <&sdma 15>, + <&sdma 16>, + <&sdma 23>, + <&sdma 24>; + dma-names = "tx0", "rx0", "tx1", "rx1"; }; mcspi4: spi@480ba000 { @@ -216,22 +248,30 @@ #size-cells = <0>; ti,hwmods = "mcspi4"; ti,spi-num-cs = <1>; + dmas = <&sdma 70>, <&sdma 71>; + dma-names = "tx0", "rx0"; }; mmc1: mmc@4809c000 { compatible = "ti,omap3-hsmmc"; ti,hwmods = "mmc1"; ti,dual-volt; + dmas = <&sdma 61>, <&sdma 62>; + dma-names = "tx", "rx"; }; mmc2: mmc@480b4000 { compatible = "ti,omap3-hsmmc"; ti,hwmods = "mmc2"; + dmas = <&sdma 47>, <&sdma 48>; + dma-names = "tx", "rx"; }; mmc3: mmc@480ad000 { compatible = "ti,omap3-hsmmc"; ti,hwmods = "mmc3"; + dmas = <&sdma 77>, <&sdma 78>; + dma-names = "tx", "rx"; }; wdt2: wdt@48314000 { diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi index 739bb79..827f6f3 100644 --- a/arch/arm/boot/dts/omap4.dtsi +++ b/arch/arm/boot/dts/omap4.dtsi @@ -118,6 +118,18 @@ pinctrl-single,function-mask = <0x7fff>; }; + sdma: dma-controller@4A056000 { + compatible = "ti,omap4430-sdma"; + reg = <0x4A056000 0x1000>; + interrupts = <0 12 0x4>, + <0 13 0x4>, + <0 14 0x4>, + <0 15 0x4>; + #dma-cells = <1>; + #dma-channels = <32>; + #dma-requests = <127>; + }; + gpio1: gpio@4a310000 { compatible = "ti,omap4-gpio"; reg = <0x4a310000 0x200>; @@ -260,6 +272,16 @@ #size-cells = <0>; ti,hwmods = "mcspi1"; ti,spi-num-cs = <4>; + dmas = <&sdma 35>, + <&sdma 36>, + <&sdma 37>, + <&sdma 38>, + <&sdma 39>, + <&sdma 40>, + <&sdma 41>, + <&sdma 42>; + dma-names = "tx0", "rx0", "tx1", "rx1", + "tx2", "rx2", "tx3", "rx3"; }; mcspi2: spi@4809a000 { @@ -270,6 +292,11 @@ #size-cells = <0>; ti,hwmods = "mcspi2"; ti,spi-num-cs = <2>; + dmas = <&sdma 43>, + <&sdma 44>, + <&sdma 45>, + <&sdma 46>; + dma-names = "tx0", "rx0", "tx1", "rx1"; }; mcspi3: spi@480b8000 { @@ -280,6 +307,8 @@ #size-cells = <0>; ti,hwmods = "mcspi3"; ti,spi-num-cs = <2>; + dmas = <&sdma 15>, <&sdma 16>; + dma-names = "tx0", "rx0"; }; mcspi4: spi@480ba000 { @@ -290,6 +319,8 @@ #size-cells = <0>; ti,hwmods = "mcspi4"; ti,spi-num-cs = <1>; + dmas = <&sdma 70>, <&sdma 71>; + dma-names = "tx0", "rx0"; }; mmc1: mmc@4809c000 { @@ -299,6 +330,8 @@ ti,hwmods = "mmc1"; ti,dual-volt; ti,needs-special-reset; + dmas = <&sdma 61>, <&sdma 62>; + dma-names = "tx", "rx"; }; mmc2: mmc@480b4000 { @@ -307,6 +340,8 @@ interrupts = <0 86 0x4>; ti,hwmods = "mmc2"; ti,needs-special-reset; + dmas = <&sdma 47>, <&sdma 48>; + dma-names = "tx", "rx"; }; mmc3: mmc@480ad000 { @@ -315,6 +350,8 @@ interrupts = <0 94 0x4>; ti,hwmods = "mmc3"; ti,needs-special-reset; + dmas = <&sdma 77>, <&sdma 78>; + dma-names = "tx", "rx"; }; mmc4: mmc@480d1000 { @@ -323,6 +360,8 @@ interrupts = <0 96 0x4>; ti,hwmods = "mmc4"; ti,needs-special-reset; + dmas = <&sdma 57>, <&sdma 58>; + dma-names = "tx", "rx"; }; mmc5: mmc@480d5000 { @@ -331,6 +370,8 @@ interrupts = <0 59 0x4>; ti,hwmods = "mmc5"; ti,needs-special-reset; + dmas = <&sdma 59>, <&sdma 60>; + dma-names = "tx", "rx"; }; wdt2: wdt@4a314000 { diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi index 9e182a9..06d21d6 100644 --- a/arch/arm/boot/dts/omap5.dtsi +++ b/arch/arm/boot/dts/omap5.dtsi @@ -108,6 +108,18 @@ <0x48212000 0x1000>; }; + sdma: dma-controller@4A056000 { + compatible = "ti,omap4430-sdma"; + reg = <0x4A056000 0x1000>; + interrupts = <0 12 0x4>, + <0 13 0x4>, + <0 14 0x4>, + <0 15 0x4>; + #dma-cells = <1>; + #dma-channels = <32>; + #dma-requests = <127>; + }; + gpio1: gpio@4ae10000 { compatible = "ti,omap4-gpio"; reg = <0x4ae10000 0x200>; @@ -249,6 +261,16 @@ #size-cells = <0>; ti,hwmods = "mcspi1"; ti,spi-num-cs = <4>; + dmas = <&sdma 35>, + <&sdma 36>, + <&sdma 37>, + <&sdma 38>, + <&sdma 39>, + <&sdma 40>, + <&sdma 41>, + <&sdma 42>; + dma-names = "tx0", "rx0", "tx1", "rx1", + "tx2", "rx2", "tx3", "rx3"; }; mcspi2: spi@4809a000 { @@ -259,6 +281,11 @@ #size-cells = <0>; ti,hwmods = "mcspi2"; ti,spi-num-cs = <2>; + dmas = <&sdma 43>, + <&sdma 44>, + <&sdma 45>, + <&sdma 46>; + dma-names = "tx0", "rx0", "tx1", "rx1"; }; mcspi3: spi@480b8000 { @@ -269,6 +296,8 @@ #size-cells = <0>; ti,hwmods = "mcspi3"; ti,spi-num-cs = <2>; + dmas = <&sdma 15>, <&sdma 16>; + dma-names = "tx0", "rx0"; }; mcspi4: spi@480ba000 { @@ -279,6 +308,8 @@ #size-cells = <0>; ti,hwmods = "mcspi4"; ti,spi-num-cs = <1>; + dmas = <&sdma 70>, <&sdma 71>; + dma-names = "tx0", "rx0"; }; uart1: serial@4806a000 { @@ -336,6 +367,8 @@ ti,hwmods = "mmc1"; ti,dual-volt; ti,needs-special-reset; + dmas = <&sdma 61>, <&sdma 62>; + dma-names = "tx", "rx"; }; mmc2: mmc@480b4000 { @@ -344,6 +377,8 @@ interrupts = <0 86 0x4>; ti,hwmods = "mmc2"; ti,needs-special-reset; + dmas = <&sdma 47>, <&sdma 48>; + dma-names = "tx", "rx"; }; mmc3: mmc@480ad000 { @@ -352,6 +387,8 @@ interrupts = <0 94 0x4>; ti,hwmods = "mmc3"; ti,needs-special-reset; + dmas = <&sdma 77>, <&sdma 78>; + dma-names = "tx", "rx"; }; mmc4: mmc@480d1000 { @@ -360,6 +397,8 @@ interrupts = <0 96 0x4>; ti,hwmods = "mmc4"; ti,needs-special-reset; + dmas = <&sdma 57>, <&sdma 58>; + dma-names = "tx", "rx"; }; mmc5: mmc@480d5000 { @@ -368,6 +407,8 @@ interrupts = <0 59 0x4>; ti,hwmods = "mmc5"; ti,needs-special-reset; + dmas = <&sdma 59>, <&sdma 60>; + dma-names = "tx", "rx"; }; keypad: keypad@4ae1c000 { -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH V2 1/2] ARM: dts: OMAP2+: Add SDMA controller bindings and nodes @ 2013-02-08 1:05 ` Jon Hunter 0 siblings, 0 replies; 14+ messages in thread From: Jon Hunter @ 2013-02-08 1:05 UTC (permalink / raw) To: linux-arm-kernel Add SDMA controller binding for OMAP2+ devices and populate DMA client information for SPI and MMC periperhal on OMAP3+ devices. Please note that OMAP24xx devices do not have SPI and MMC bindings available yet and so DMA client information is not populated. Signed-off-by: Jon Hunter <jon-hunter@ti.com> --- .../devicetree/bindings/dma/omap-sdma.txt | 51 ++++++++++++++++++++ arch/arm/boot/dts/omap2.dtsi | 12 +++++ arch/arm/boot/dts/omap3.dtsi | 40 +++++++++++++++ arch/arm/boot/dts/omap4.dtsi | 41 ++++++++++++++++ arch/arm/boot/dts/omap5.dtsi | 41 ++++++++++++++++ 5 files changed, 185 insertions(+) create mode 100644 Documentation/devicetree/bindings/dma/omap-sdma.txt diff --git a/Documentation/devicetree/bindings/dma/omap-sdma.txt b/Documentation/devicetree/bindings/dma/omap-sdma.txt new file mode 100644 index 0000000..22aab28 --- /dev/null +++ b/Documentation/devicetree/bindings/dma/omap-sdma.txt @@ -0,0 +1,51 @@ +* TI OMAP SDMA controller + +Required properties: +- compatible: Should be set to one of the following: + + ti,omap2420-sdma (omap2420) + ti,omap2430-sdma (omap2430) + ti,omap3430-sdma (omap3430) + ti,omap3630-sdma (omap3630) + ti,omap4430-sdma (omap4430 & omap4460 & omap543x) + +- reg: Contains DMA registers location and length. +- interrupts: Contains DMA interrupt information. +- #dma-cells: Must be 1. +- #dma-channels: Contains total number of programmable DMA channels. +- #dma-requests: Contains total number of DMA requests. + +Example: + + sdma: dma-controller at 4A056000 { + compatible = "ti,omap-sdma"; + reg = <0x4A056000 0x1000>; + interrupts = <0 12 0x4>, + <0 13 0x4>, + <0 14 0x4>, + <0 15 0x4>; + #dma-cells = <1>; + #dma-channels = <32>; + #dma-requests = <127>; + }; + + +* TI OMAP SDMA clients + +Required properties: +- dmas: List of one or more DMA specifiers, each consisting of + - A phandle pointing to DMA controller node + - The DMA request number associated with client device +- dma-names: Contains one identifier string for each dma specifier in + the dmas property. The specific strings that can be used + are defined in the binding of the DMA client device. + +Example: + + mmc1: mmc at 4809c000 { + ... + dmas = <&sdma 61>, /* TX channel */ + <&sdma 62>; /* RX channel */ + dma-names = "tx", "rx"; + ... + }; diff --git a/arch/arm/boot/dts/omap2.dtsi b/arch/arm/boot/dts/omap2.dtsi index 761c4b6..22dffa0 100644 --- a/arch/arm/boot/dts/omap2.dtsi +++ b/arch/arm/boot/dts/omap2.dtsi @@ -49,6 +49,18 @@ reg = <0x480FE000 0x1000>; }; + sdma: dma-controller at 48056000 { + compatible = "ti,omap2430-sdma", "ti,omap2420-sdma"; + reg = <0x48056000 0x1000>; + interrupts = <12>, + <13>, + <14>, + <15>; + #dma-cells = <1>; + #dma-channels = <32>; + #dma-requests = <64>; + }; + uart1: serial at 4806a000 { compatible = "ti,omap2-uart"; ti,hwmods = "uart1"; diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi index 1acc261..4e7acb6 100644 --- a/arch/arm/boot/dts/omap3.dtsi +++ b/arch/arm/boot/dts/omap3.dtsi @@ -75,6 +75,18 @@ reg = <0x48200000 0x1000>; }; + sdma: dma-controller at 48056000 { + compatible = "ti,omap3630-sdma", "ti,omap3430-sdma"; + reg = <0x48056000 0x1000>; + interrupts = <12>, + <13>, + <14>, + <15>; + #dma-cells = <1>; + #dma-channels = <32>; + #dma-requests = <96>; + }; + omap3_pmx_core: pinmux at 48002030 { compatible = "ti,omap3-padconf", "pinctrl-single"; reg = <0x48002030 0x05cc>; @@ -192,6 +204,16 @@ #size-cells = <0>; ti,hwmods = "mcspi1"; ti,spi-num-cs = <4>; + dmas = <&sdma 35>, + <&sdma 36>, + <&sdma 37>, + <&sdma 38>, + <&sdma 39>, + <&sdma 40>, + <&sdma 41>, + <&sdma 42>; + dma-names = "tx0", "rx0", "tx1", "rx1", + "tx2", "rx2", "tx3", "rx3"; }; mcspi2: spi at 4809a000 { @@ -200,6 +222,11 @@ #size-cells = <0>; ti,hwmods = "mcspi2"; ti,spi-num-cs = <2>; + dmas = <&sdma 43>, + <&sdma 44>, + <&sdma 45>, + <&sdma 46>; + dma-names = "tx0", "rx0", "tx1", "rx1"; }; mcspi3: spi at 480b8000 { @@ -208,6 +235,11 @@ #size-cells = <0>; ti,hwmods = "mcspi3"; ti,spi-num-cs = <2>; + dmas = <&sdma 15>, + <&sdma 16>, + <&sdma 23>, + <&sdma 24>; + dma-names = "tx0", "rx0", "tx1", "rx1"; }; mcspi4: spi at 480ba000 { @@ -216,22 +248,30 @@ #size-cells = <0>; ti,hwmods = "mcspi4"; ti,spi-num-cs = <1>; + dmas = <&sdma 70>, <&sdma 71>; + dma-names = "tx0", "rx0"; }; mmc1: mmc at 4809c000 { compatible = "ti,omap3-hsmmc"; ti,hwmods = "mmc1"; ti,dual-volt; + dmas = <&sdma 61>, <&sdma 62>; + dma-names = "tx", "rx"; }; mmc2: mmc at 480b4000 { compatible = "ti,omap3-hsmmc"; ti,hwmods = "mmc2"; + dmas = <&sdma 47>, <&sdma 48>; + dma-names = "tx", "rx"; }; mmc3: mmc at 480ad000 { compatible = "ti,omap3-hsmmc"; ti,hwmods = "mmc3"; + dmas = <&sdma 77>, <&sdma 78>; + dma-names = "tx", "rx"; }; wdt2: wdt at 48314000 { diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi index 739bb79..827f6f3 100644 --- a/arch/arm/boot/dts/omap4.dtsi +++ b/arch/arm/boot/dts/omap4.dtsi @@ -118,6 +118,18 @@ pinctrl-single,function-mask = <0x7fff>; }; + sdma: dma-controller at 4A056000 { + compatible = "ti,omap4430-sdma"; + reg = <0x4A056000 0x1000>; + interrupts = <0 12 0x4>, + <0 13 0x4>, + <0 14 0x4>, + <0 15 0x4>; + #dma-cells = <1>; + #dma-channels = <32>; + #dma-requests = <127>; + }; + gpio1: gpio at 4a310000 { compatible = "ti,omap4-gpio"; reg = <0x4a310000 0x200>; @@ -260,6 +272,16 @@ #size-cells = <0>; ti,hwmods = "mcspi1"; ti,spi-num-cs = <4>; + dmas = <&sdma 35>, + <&sdma 36>, + <&sdma 37>, + <&sdma 38>, + <&sdma 39>, + <&sdma 40>, + <&sdma 41>, + <&sdma 42>; + dma-names = "tx0", "rx0", "tx1", "rx1", + "tx2", "rx2", "tx3", "rx3"; }; mcspi2: spi at 4809a000 { @@ -270,6 +292,11 @@ #size-cells = <0>; ti,hwmods = "mcspi2"; ti,spi-num-cs = <2>; + dmas = <&sdma 43>, + <&sdma 44>, + <&sdma 45>, + <&sdma 46>; + dma-names = "tx0", "rx0", "tx1", "rx1"; }; mcspi3: spi at 480b8000 { @@ -280,6 +307,8 @@ #size-cells = <0>; ti,hwmods = "mcspi3"; ti,spi-num-cs = <2>; + dmas = <&sdma 15>, <&sdma 16>; + dma-names = "tx0", "rx0"; }; mcspi4: spi at 480ba000 { @@ -290,6 +319,8 @@ #size-cells = <0>; ti,hwmods = "mcspi4"; ti,spi-num-cs = <1>; + dmas = <&sdma 70>, <&sdma 71>; + dma-names = "tx0", "rx0"; }; mmc1: mmc at 4809c000 { @@ -299,6 +330,8 @@ ti,hwmods = "mmc1"; ti,dual-volt; ti,needs-special-reset; + dmas = <&sdma 61>, <&sdma 62>; + dma-names = "tx", "rx"; }; mmc2: mmc at 480b4000 { @@ -307,6 +340,8 @@ interrupts = <0 86 0x4>; ti,hwmods = "mmc2"; ti,needs-special-reset; + dmas = <&sdma 47>, <&sdma 48>; + dma-names = "tx", "rx"; }; mmc3: mmc at 480ad000 { @@ -315,6 +350,8 @@ interrupts = <0 94 0x4>; ti,hwmods = "mmc3"; ti,needs-special-reset; + dmas = <&sdma 77>, <&sdma 78>; + dma-names = "tx", "rx"; }; mmc4: mmc at 480d1000 { @@ -323,6 +360,8 @@ interrupts = <0 96 0x4>; ti,hwmods = "mmc4"; ti,needs-special-reset; + dmas = <&sdma 57>, <&sdma 58>; + dma-names = "tx", "rx"; }; mmc5: mmc at 480d5000 { @@ -331,6 +370,8 @@ interrupts = <0 59 0x4>; ti,hwmods = "mmc5"; ti,needs-special-reset; + dmas = <&sdma 59>, <&sdma 60>; + dma-names = "tx", "rx"; }; wdt2: wdt at 4a314000 { diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi index 9e182a9..06d21d6 100644 --- a/arch/arm/boot/dts/omap5.dtsi +++ b/arch/arm/boot/dts/omap5.dtsi @@ -108,6 +108,18 @@ <0x48212000 0x1000>; }; + sdma: dma-controller at 4A056000 { + compatible = "ti,omap4430-sdma"; + reg = <0x4A056000 0x1000>; + interrupts = <0 12 0x4>, + <0 13 0x4>, + <0 14 0x4>, + <0 15 0x4>; + #dma-cells = <1>; + #dma-channels = <32>; + #dma-requests = <127>; + }; + gpio1: gpio at 4ae10000 { compatible = "ti,omap4-gpio"; reg = <0x4ae10000 0x200>; @@ -249,6 +261,16 @@ #size-cells = <0>; ti,hwmods = "mcspi1"; ti,spi-num-cs = <4>; + dmas = <&sdma 35>, + <&sdma 36>, + <&sdma 37>, + <&sdma 38>, + <&sdma 39>, + <&sdma 40>, + <&sdma 41>, + <&sdma 42>; + dma-names = "tx0", "rx0", "tx1", "rx1", + "tx2", "rx2", "tx3", "rx3"; }; mcspi2: spi at 4809a000 { @@ -259,6 +281,11 @@ #size-cells = <0>; ti,hwmods = "mcspi2"; ti,spi-num-cs = <2>; + dmas = <&sdma 43>, + <&sdma 44>, + <&sdma 45>, + <&sdma 46>; + dma-names = "tx0", "rx0", "tx1", "rx1"; }; mcspi3: spi at 480b8000 { @@ -269,6 +296,8 @@ #size-cells = <0>; ti,hwmods = "mcspi3"; ti,spi-num-cs = <2>; + dmas = <&sdma 15>, <&sdma 16>; + dma-names = "tx0", "rx0"; }; mcspi4: spi at 480ba000 { @@ -279,6 +308,8 @@ #size-cells = <0>; ti,hwmods = "mcspi4"; ti,spi-num-cs = <1>; + dmas = <&sdma 70>, <&sdma 71>; + dma-names = "tx0", "rx0"; }; uart1: serial at 4806a000 { @@ -336,6 +367,8 @@ ti,hwmods = "mmc1"; ti,dual-volt; ti,needs-special-reset; + dmas = <&sdma 61>, <&sdma 62>; + dma-names = "tx", "rx"; }; mmc2: mmc at 480b4000 { @@ -344,6 +377,8 @@ interrupts = <0 86 0x4>; ti,hwmods = "mmc2"; ti,needs-special-reset; + dmas = <&sdma 47>, <&sdma 48>; + dma-names = "tx", "rx"; }; mmc3: mmc at 480ad000 { @@ -352,6 +387,8 @@ interrupts = <0 94 0x4>; ti,hwmods = "mmc3"; ti,needs-special-reset; + dmas = <&sdma 77>, <&sdma 78>; + dma-names = "tx", "rx"; }; mmc4: mmc at 480d1000 { @@ -360,6 +397,8 @@ interrupts = <0 96 0x4>; ti,hwmods = "mmc4"; ti,needs-special-reset; + dmas = <&sdma 57>, <&sdma 58>; + dma-names = "tx", "rx"; }; mmc5: mmc at 480d5000 { @@ -368,6 +407,8 @@ interrupts = <0 59 0x4>; ti,hwmods = "mmc5"; ti,needs-special-reset; + dmas = <&sdma 59>, <&sdma 60>; + dma-names = "tx", "rx"; }; keypad: keypad at 4ae1c000 { -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH V2 1/2] ARM: dts: OMAP2+: Add SDMA controller bindings and nodes 2013-02-08 1:05 ` Jon Hunter @ 2013-02-08 7:53 ` Felipe Balbi -1 siblings, 0 replies; 14+ messages in thread From: Felipe Balbi @ 2013-02-08 7:53 UTC (permalink / raw) To: Jon Hunter Cc: Rob Herring, Grant Likely, Tony Lindgren, Benoit Cousson, Vinod Koul, Russell King, device-tree, linux-omap, linux-arm, Santosh Shilimkar, Matt Porter, Felipe Balbi, Sourav Poddar, Balaji T K [-- Attachment #1: Type: text/plain, Size: 484 bytes --] On Thu, Feb 07, 2013 at 07:05:05PM -0600, Jon Hunter wrote: > Add SDMA controller binding for OMAP2+ devices and populate DMA client > information for SPI and MMC periperhal on OMAP3+ devices. Please note > that OMAP24xx devices do not have SPI and MMC bindings available yet and > so DMA client information is not populated. > > Signed-off-by: Jon Hunter <jon-hunter@ti.com> already given before, but here you go: Reviewed-by: Felipe Balbi <balbi@ti.com> -- balbi [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH V2 1/2] ARM: dts: OMAP2+: Add SDMA controller bindings and nodes @ 2013-02-08 7:53 ` Felipe Balbi 0 siblings, 0 replies; 14+ messages in thread From: Felipe Balbi @ 2013-02-08 7:53 UTC (permalink / raw) To: linux-arm-kernel On Thu, Feb 07, 2013 at 07:05:05PM -0600, Jon Hunter wrote: > Add SDMA controller binding for OMAP2+ devices and populate DMA client > information for SPI and MMC periperhal on OMAP3+ devices. Please note > that OMAP24xx devices do not have SPI and MMC bindings available yet and > so DMA client information is not populated. > > Signed-off-by: Jon Hunter <jon-hunter@ti.com> already given before, but here you go: Reviewed-by: Felipe Balbi <balbi@ti.com> -- balbi -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130208/5b822ef6/attachment.sig> ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <1360285506-22354-1-git-send-email-jon-hunter-l0cyMroinI0@public.gmane.org>]
* [PATCH V2 2/2] dmaengine: OMAP: Register SDMA controller with Device Tree DMA driver 2013-02-08 1:05 ` Jon Hunter @ 2013-02-08 1:05 ` Jon Hunter -1 siblings, 0 replies; 14+ messages in thread From: Jon Hunter @ 2013-02-08 1:05 UTC (permalink / raw) To: Rob Herring, Grant Likely, Tony Lindgren, Benoit Cousson, Vinod Koul, Russell King Cc: Matt Porter, Balaji T K, device-tree, Felipe Balbi, Santosh Shilimkar, Sourav Poddar, linux-omap, linux-arm If the device-tree blob is present during boot, then register the SDMA controller with the device-tree DMA driver so that we can use device-tree to look-up DMA client information. Signed-off-by: Jon Hunter <jon-hunter-l0cyMroinI0@public.gmane.org> --- arch/arm/mach-omap2/dma.c | 4 ++++ drivers/dma/omap-dma.c | 37 +++++++++++++++++++++++++++++++++++-- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-omap2/dma.c b/arch/arm/mach-omap2/dma.c index 5cd8d76..71dadff 100644 --- a/arch/arm/mach-omap2/dma.c +++ b/arch/arm/mach-omap2/dma.c @@ -28,6 +28,7 @@ #include <linux/init.h> #include <linux/device.h> #include <linux/dma-mapping.h> +#include <linux/of.h> #include <linux/omap-dma.h> #include "soc.h" @@ -304,6 +305,9 @@ static int __init omap2_system_dma_init(void) if (res) return res; + if (of_have_populated_dt()) + return res; + pdev = platform_device_register_full(&omap_dma_dev_info); if (IS_ERR(pdev)) return PTR_ERR(pdev); diff --git a/drivers/dma/omap-dma.c b/drivers/dma/omap-dma.c index c4b4fd2..0067bd0 100644 --- a/drivers/dma/omap-dma.c +++ b/drivers/dma/omap-dma.c @@ -16,6 +16,8 @@ #include <linux/platform_device.h> #include <linux/slab.h> #include <linux/spinlock.h> +#include <linux/of_dma.h> +#include <linux/of_device.h> #include "virt-dma.h" @@ -67,6 +69,8 @@ static const unsigned es_bytes[] = { [OMAP_DMA_DATA_TYPE_S32] = 4, }; +static struct of_dma_filter_info info; + static inline struct omap_dmadev *to_omap_dma_dev(struct dma_device *d) { return container_of(d, struct omap_dmadev, ddev); @@ -621,8 +625,23 @@ static int omap_dma_probe(struct platform_device *pdev) pr_warn("OMAP-DMA: failed to register slave DMA engine device: %d\n", rc); omap_dma_free(od); - } else { - platform_set_drvdata(pdev, od); + return rc; + } + + platform_set_drvdata(pdev, od); + + if (pdev->dev.of_node) { + info.dma_cap = od->ddev.cap_mask; + info.filter_fn = omap_dma_filter_fn; + + /* Device-tree DMA controller registration */ + rc = of_dma_controller_register(pdev->dev.of_node, + of_dma_simple_xlate, &info); + if (rc) { + pr_warn("OMAP-DMA: failed to register DMA controller\n"); + dma_async_device_unregister(&od->ddev); + omap_dma_free(od); + } } dev_info(&pdev->dev, "OMAP DMA engine driver\n"); @@ -634,18 +653,32 @@ static int omap_dma_remove(struct platform_device *pdev) { struct omap_dmadev *od = platform_get_drvdata(pdev); + if (pdev->dev.of_node) + of_dma_controller_free(pdev->dev.of_node); + dma_async_device_unregister(&od->ddev); omap_dma_free(od); return 0; } +static const struct of_device_id omap_dma_match[] = { + { .compatible = "ti,omap2420-sdma", }, + { .compatible = "ti,omap2430-sdma", }, + { .compatible = "ti,omap3430-sdma", }, + { .compatible = "ti,omap3630-sdma", }, + { .compatible = "ti,omap4430-sdma", }, + {}, +}; +MODULE_DEVICE_TABLE(of, omap_dma_match); + static struct platform_driver omap_dma_driver = { .probe = omap_dma_probe, .remove = omap_dma_remove, .driver = { .name = "omap-dma-engine", .owner = THIS_MODULE, + .of_match_table = of_match_ptr(omap_dma_match), }, }; -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH V2 2/2] dmaengine: OMAP: Register SDMA controller with Device Tree DMA driver @ 2013-02-08 1:05 ` Jon Hunter 0 siblings, 0 replies; 14+ messages in thread From: Jon Hunter @ 2013-02-08 1:05 UTC (permalink / raw) To: linux-arm-kernel If the device-tree blob is present during boot, then register the SDMA controller with the device-tree DMA driver so that we can use device-tree to look-up DMA client information. Signed-off-by: Jon Hunter <jon-hunter@ti.com> --- arch/arm/mach-omap2/dma.c | 4 ++++ drivers/dma/omap-dma.c | 37 +++++++++++++++++++++++++++++++++++-- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-omap2/dma.c b/arch/arm/mach-omap2/dma.c index 5cd8d76..71dadff 100644 --- a/arch/arm/mach-omap2/dma.c +++ b/arch/arm/mach-omap2/dma.c @@ -28,6 +28,7 @@ #include <linux/init.h> #include <linux/device.h> #include <linux/dma-mapping.h> +#include <linux/of.h> #include <linux/omap-dma.h> #include "soc.h" @@ -304,6 +305,9 @@ static int __init omap2_system_dma_init(void) if (res) return res; + if (of_have_populated_dt()) + return res; + pdev = platform_device_register_full(&omap_dma_dev_info); if (IS_ERR(pdev)) return PTR_ERR(pdev); diff --git a/drivers/dma/omap-dma.c b/drivers/dma/omap-dma.c index c4b4fd2..0067bd0 100644 --- a/drivers/dma/omap-dma.c +++ b/drivers/dma/omap-dma.c @@ -16,6 +16,8 @@ #include <linux/platform_device.h> #include <linux/slab.h> #include <linux/spinlock.h> +#include <linux/of_dma.h> +#include <linux/of_device.h> #include "virt-dma.h" @@ -67,6 +69,8 @@ static const unsigned es_bytes[] = { [OMAP_DMA_DATA_TYPE_S32] = 4, }; +static struct of_dma_filter_info info; + static inline struct omap_dmadev *to_omap_dma_dev(struct dma_device *d) { return container_of(d, struct omap_dmadev, ddev); @@ -621,8 +625,23 @@ static int omap_dma_probe(struct platform_device *pdev) pr_warn("OMAP-DMA: failed to register slave DMA engine device: %d\n", rc); omap_dma_free(od); - } else { - platform_set_drvdata(pdev, od); + return rc; + } + + platform_set_drvdata(pdev, od); + + if (pdev->dev.of_node) { + info.dma_cap = od->ddev.cap_mask; + info.filter_fn = omap_dma_filter_fn; + + /* Device-tree DMA controller registration */ + rc = of_dma_controller_register(pdev->dev.of_node, + of_dma_simple_xlate, &info); + if (rc) { + pr_warn("OMAP-DMA: failed to register DMA controller\n"); + dma_async_device_unregister(&od->ddev); + omap_dma_free(od); + } } dev_info(&pdev->dev, "OMAP DMA engine driver\n"); @@ -634,18 +653,32 @@ static int omap_dma_remove(struct platform_device *pdev) { struct omap_dmadev *od = platform_get_drvdata(pdev); + if (pdev->dev.of_node) + of_dma_controller_free(pdev->dev.of_node); + dma_async_device_unregister(&od->ddev); omap_dma_free(od); return 0; } +static const struct of_device_id omap_dma_match[] = { + { .compatible = "ti,omap2420-sdma", }, + { .compatible = "ti,omap2430-sdma", }, + { .compatible = "ti,omap3430-sdma", }, + { .compatible = "ti,omap3630-sdma", }, + { .compatible = "ti,omap4430-sdma", }, + {}, +}; +MODULE_DEVICE_TABLE(of, omap_dma_match); + static struct platform_driver omap_dma_driver = { .probe = omap_dma_probe, .remove = omap_dma_remove, .driver = { .name = "omap-dma-engine", .owner = THIS_MODULE, + .of_match_table = of_match_ptr(omap_dma_match), }, }; -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH V2 2/2] dmaengine: OMAP: Register SDMA controller with Device Tree DMA driver 2013-02-08 1:05 ` Jon Hunter @ 2013-02-08 7:55 ` Felipe Balbi -1 siblings, 0 replies; 14+ messages in thread From: Felipe Balbi @ 2013-02-08 7:55 UTC (permalink / raw) To: Jon Hunter Cc: Rob Herring, Grant Likely, Tony Lindgren, Benoit Cousson, Vinod Koul, Russell King, device-tree, linux-omap, linux-arm, Santosh Shilimkar, Matt Porter, Felipe Balbi, Sourav Poddar, Balaji T K [-- Attachment #1: Type: text/plain, Size: 1958 bytes --] Hi, On Thu, Feb 07, 2013 at 07:05:06PM -0600, Jon Hunter wrote: > If the device-tree blob is present during boot, then register the SDMA > controller with the device-tree DMA driver so that we can use device-tree > to look-up DMA client information. > > Signed-off-by: Jon Hunter <jon-hunter@ti.com> single comment below, other than that: Reviewed-by: Felipe Balbi <balbi@ti.com> > --- > arch/arm/mach-omap2/dma.c | 4 ++++ > drivers/dma/omap-dma.c | 37 +++++++++++++++++++++++++++++++++++-- > 2 files changed, 39 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/mach-omap2/dma.c b/arch/arm/mach-omap2/dma.c > index 5cd8d76..71dadff 100644 > --- a/arch/arm/mach-omap2/dma.c > +++ b/arch/arm/mach-omap2/dma.c > @@ -28,6 +28,7 @@ > #include <linux/init.h> > #include <linux/device.h> > #include <linux/dma-mapping.h> > +#include <linux/of.h> > #include <linux/omap-dma.h> > > #include "soc.h" > @@ -304,6 +305,9 @@ static int __init omap2_system_dma_init(void) > if (res) > return res; > > + if (of_have_populated_dt()) > + return res; > + > pdev = platform_device_register_full(&omap_dma_dev_info); > if (IS_ERR(pdev)) > return PTR_ERR(pdev); > diff --git a/drivers/dma/omap-dma.c b/drivers/dma/omap-dma.c > index c4b4fd2..0067bd0 100644 > --- a/drivers/dma/omap-dma.c > +++ b/drivers/dma/omap-dma.c > @@ -16,6 +16,8 @@ > #include <linux/platform_device.h> > #include <linux/slab.h> > #include <linux/spinlock.h> > +#include <linux/of_dma.h> > +#include <linux/of_device.h> > > #include "virt-dma.h" > > @@ -67,6 +69,8 @@ static const unsigned es_bytes[] = { > [OMAP_DMA_DATA_TYPE_S32] = 4, > }; > > +static struct of_dma_filter_info info; Arnd also mentioned that since all fields belonging to this are constant, you could statically initialize them here. He also mentioned you should call this by a more descriptive name: -- balbi [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH V2 2/2] dmaengine: OMAP: Register SDMA controller with Device Tree DMA driver @ 2013-02-08 7:55 ` Felipe Balbi 0 siblings, 0 replies; 14+ messages in thread From: Felipe Balbi @ 2013-02-08 7:55 UTC (permalink / raw) To: linux-arm-kernel Hi, On Thu, Feb 07, 2013 at 07:05:06PM -0600, Jon Hunter wrote: > If the device-tree blob is present during boot, then register the SDMA > controller with the device-tree DMA driver so that we can use device-tree > to look-up DMA client information. > > Signed-off-by: Jon Hunter <jon-hunter@ti.com> single comment below, other than that: Reviewed-by: Felipe Balbi <balbi@ti.com> > --- > arch/arm/mach-omap2/dma.c | 4 ++++ > drivers/dma/omap-dma.c | 37 +++++++++++++++++++++++++++++++++++-- > 2 files changed, 39 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/mach-omap2/dma.c b/arch/arm/mach-omap2/dma.c > index 5cd8d76..71dadff 100644 > --- a/arch/arm/mach-omap2/dma.c > +++ b/arch/arm/mach-omap2/dma.c > @@ -28,6 +28,7 @@ > #include <linux/init.h> > #include <linux/device.h> > #include <linux/dma-mapping.h> > +#include <linux/of.h> > #include <linux/omap-dma.h> > > #include "soc.h" > @@ -304,6 +305,9 @@ static int __init omap2_system_dma_init(void) > if (res) > return res; > > + if (of_have_populated_dt()) > + return res; > + > pdev = platform_device_register_full(&omap_dma_dev_info); > if (IS_ERR(pdev)) > return PTR_ERR(pdev); > diff --git a/drivers/dma/omap-dma.c b/drivers/dma/omap-dma.c > index c4b4fd2..0067bd0 100644 > --- a/drivers/dma/omap-dma.c > +++ b/drivers/dma/omap-dma.c > @@ -16,6 +16,8 @@ > #include <linux/platform_device.h> > #include <linux/slab.h> > #include <linux/spinlock.h> > +#include <linux/of_dma.h> > +#include <linux/of_device.h> > > #include "virt-dma.h" > > @@ -67,6 +69,8 @@ static const unsigned es_bytes[] = { > [OMAP_DMA_DATA_TYPE_S32] = 4, > }; > > +static struct of_dma_filter_info info; Arnd also mentioned that since all fields belonging to this are constant, you could statically initialize them here. He also mentioned you should call this by a more descriptive name: -- balbi -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130208/40ae99ac/attachment.sig> ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <20130208075552.GD21879-S8G//mZuvNWo5Im9Ml3/Zg@public.gmane.org>]
* Re: [PATCH V2 2/2] dmaengine: OMAP: Register SDMA controller with Device Tree DMA driver 2013-02-08 7:55 ` Felipe Balbi @ 2013-02-08 15:05 ` Jon Hunter -1 siblings, 0 replies; 14+ messages in thread From: Jon Hunter @ 2013-02-08 15:05 UTC (permalink / raw) To: balbi-l0cyMroinI0 Cc: Matt Porter, Russell King, device-tree, Rob Herring, Vinod Koul, Santosh Shilimkar, Sourav Poddar, linux-omap, linux-arm, Balaji T K On 02/08/2013 01:55 AM, Felipe Balbi wrote: > Hi, > > On Thu, Feb 07, 2013 at 07:05:06PM -0600, Jon Hunter wrote: >> If the device-tree blob is present during boot, then register the SDMA >> controller with the device-tree DMA driver so that we can use device-tree >> to look-up DMA client information. >> >> Signed-off-by: Jon Hunter <jon-hunter-l0cyMroinI0@public.gmane.org> > > single comment below, other than that: > > Reviewed-by: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org> > >> --- >> arch/arm/mach-omap2/dma.c | 4 ++++ >> drivers/dma/omap-dma.c | 37 +++++++++++++++++++++++++++++++++++-- >> 2 files changed, 39 insertions(+), 2 deletions(-) >> >> diff --git a/arch/arm/mach-omap2/dma.c b/arch/arm/mach-omap2/dma.c >> index 5cd8d76..71dadff 100644 >> --- a/arch/arm/mach-omap2/dma.c >> +++ b/arch/arm/mach-omap2/dma.c >> @@ -28,6 +28,7 @@ >> #include <linux/init.h> >> #include <linux/device.h> >> #include <linux/dma-mapping.h> >> +#include <linux/of.h> >> #include <linux/omap-dma.h> >> >> #include "soc.h" >> @@ -304,6 +305,9 @@ static int __init omap2_system_dma_init(void) >> if (res) >> return res; >> >> + if (of_have_populated_dt()) >> + return res; >> + >> pdev = platform_device_register_full(&omap_dma_dev_info); >> if (IS_ERR(pdev)) >> return PTR_ERR(pdev); >> diff --git a/drivers/dma/omap-dma.c b/drivers/dma/omap-dma.c >> index c4b4fd2..0067bd0 100644 >> --- a/drivers/dma/omap-dma.c >> +++ b/drivers/dma/omap-dma.c >> @@ -16,6 +16,8 @@ >> #include <linux/platform_device.h> >> #include <linux/slab.h> >> #include <linux/spinlock.h> >> +#include <linux/of_dma.h> >> +#include <linux/of_device.h> >> >> #include "virt-dma.h" >> >> @@ -67,6 +69,8 @@ static const unsigned es_bytes[] = { >> [OMAP_DMA_DATA_TYPE_S32] = 4, >> }; >> >> +static struct of_dma_filter_info info; > > Arnd also mentioned that since all fields belonging to this are > constant, you could statically initialize them here. He also mentioned > you should call this by a more descriptive name: Oops sorry missed that comment. Will fix up and re-send. Cheers Jon ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH V2 2/2] dmaengine: OMAP: Register SDMA controller with Device Tree DMA driver @ 2013-02-08 15:05 ` Jon Hunter 0 siblings, 0 replies; 14+ messages in thread From: Jon Hunter @ 2013-02-08 15:05 UTC (permalink / raw) To: linux-arm-kernel On 02/08/2013 01:55 AM, Felipe Balbi wrote: > Hi, > > On Thu, Feb 07, 2013 at 07:05:06PM -0600, Jon Hunter wrote: >> If the device-tree blob is present during boot, then register the SDMA >> controller with the device-tree DMA driver so that we can use device-tree >> to look-up DMA client information. >> >> Signed-off-by: Jon Hunter <jon-hunter@ti.com> > > single comment below, other than that: > > Reviewed-by: Felipe Balbi <balbi@ti.com> > >> --- >> arch/arm/mach-omap2/dma.c | 4 ++++ >> drivers/dma/omap-dma.c | 37 +++++++++++++++++++++++++++++++++++-- >> 2 files changed, 39 insertions(+), 2 deletions(-) >> >> diff --git a/arch/arm/mach-omap2/dma.c b/arch/arm/mach-omap2/dma.c >> index 5cd8d76..71dadff 100644 >> --- a/arch/arm/mach-omap2/dma.c >> +++ b/arch/arm/mach-omap2/dma.c >> @@ -28,6 +28,7 @@ >> #include <linux/init.h> >> #include <linux/device.h> >> #include <linux/dma-mapping.h> >> +#include <linux/of.h> >> #include <linux/omap-dma.h> >> >> #include "soc.h" >> @@ -304,6 +305,9 @@ static int __init omap2_system_dma_init(void) >> if (res) >> return res; >> >> + if (of_have_populated_dt()) >> + return res; >> + >> pdev = platform_device_register_full(&omap_dma_dev_info); >> if (IS_ERR(pdev)) >> return PTR_ERR(pdev); >> diff --git a/drivers/dma/omap-dma.c b/drivers/dma/omap-dma.c >> index c4b4fd2..0067bd0 100644 >> --- a/drivers/dma/omap-dma.c >> +++ b/drivers/dma/omap-dma.c >> @@ -16,6 +16,8 @@ >> #include <linux/platform_device.h> >> #include <linux/slab.h> >> #include <linux/spinlock.h> >> +#include <linux/of_dma.h> >> +#include <linux/of_device.h> >> >> #include "virt-dma.h" >> >> @@ -67,6 +69,8 @@ static const unsigned es_bytes[] = { >> [OMAP_DMA_DATA_TYPE_S32] = 4, >> }; >> >> +static struct of_dma_filter_info info; > > Arnd also mentioned that since all fields belonging to this are > constant, you could statically initialize them here. He also mentioned > you should call this by a more descriptive name: Oops sorry missed that comment. Will fix up and re-send. Cheers Jon ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH V2 0/2] ARM: dts: Add DT bindings for OMAP SDMA 2013-02-08 1:05 ` Jon Hunter @ 2013-02-08 9:28 ` Santosh Shilimkar -1 siblings, 0 replies; 14+ messages in thread From: Santosh Shilimkar @ 2013-02-08 9:28 UTC (permalink / raw) To: Jon Hunter Cc: Rob Herring, Grant Likely, Tony Lindgren, Benoit Cousson, Vinod Koul, Russell King, device-tree, linux-omap, linux-arm, Matt Porter, Felipe Balbi, Sourav Poddar, Balaji T K On Friday 08 February 2013 06:35 AM, Jon Hunter wrote: > Adds device-tree bindings from SDMA on OMAP2+ devices. DMA client > bindings are also added for devices that have SPI and MMC bindings > populated. Client binding data is based upon existing HWMOD data for > OMAP and has been checked against OMAP documentation. > > Please note that the underlying (legacy) OMAP SDMA driver has not been > ported over to DT and this still needs to be done. However, this allows > DMA clients to look-up the DMA resource information via device-tree. > > Testing includes ... > 1. Boot tested on OMAP3430 Beagle board, OMAP4430 Panda board and > OMAP4460 Panda board with and without device-tree present. > 2. Testing of MMC1 with SD card on OMAP3430 Beagle board, OMAP4430 > Panda board and OMAP4460 Panda board with and without device-tree > present. > > Testing branch available here [1]. > > Series is based upon Tony Lindgren's omap-for-v3.9/multiplatform-v2 > branch [2] on top of the following ... > - Vinod's topic/dmaengine_dt branch [3] > - Matt Porter's series "DMA Engine support for AM33XX" [4] > - Matt Porter's series "omap_hsmmc DT DMA Client support" [5] > - Sourav Poddar's series "add omap mcspi device tree data" [6] > > V2 changes: > - Updated to Tony's omap-for-v3.9/multiplatform-v2 branch to pull in > DMA changes for v3.9 > - Added comma to omap_dma_driver structure as pointed out by Arnd. > - Updated OMAP SDMA DT binding compatible strings to indicate which > devices are bit compatible with each other with respect to the SDMA > controller. Grant had mentioned in the past that he wants the > compatible string to be based upon a particular device and not > something generic like "ti,omap-sdma". > > [1] https://github.com/jonhunter/linux/commits/dev-dt-dma > [2] git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git omap-for-v3.9/multiplatform-v2 > [3] http://git.infradead.org/users/vkoul/slave-dma.git/shortlog/refs/heads/topic/dmaengine_dt > [4] http://permalink.gmane.org/gmane.linux.kernel.spi.devel/12508 > [5] http://permalink.gmane.org/gmane.linux.ports.arm.omap/93165 > [6] http://permalink.gmane.org/gmane.linux.kernel/1435002 > > Jon Hunter (2): > ARM: dts: OMAP2+: Add SDMA controller bindings and nodes > dmaengine: OMAP: Register SDMA controller with Device Tree DMA driver > > .../devicetree/bindings/dma/omap-sdma.txt | 51 ++++++++++++++++++++ > arch/arm/boot/dts/omap2.dtsi | 12 +++++ > arch/arm/boot/dts/omap3.dtsi | 40 +++++++++++++++ > arch/arm/boot/dts/omap4.dtsi | 41 ++++++++++++++++ > arch/arm/boot/dts/omap5.dtsi | 41 ++++++++++++++++ > arch/arm/mach-omap2/dma.c | 4 ++ > drivers/dma/omap-dma.c | 37 +++++++++++++- > 7 files changed, 224 insertions(+), 2 deletions(-) > create mode 100644 Documentation/devicetree/bindings/dma/omap-sdma.txt > Acked-Tested-by: Santosh Shilimkar <santosh.shilimkar@ti.com> ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH V2 0/2] ARM: dts: Add DT bindings for OMAP SDMA @ 2013-02-08 9:28 ` Santosh Shilimkar 0 siblings, 0 replies; 14+ messages in thread From: Santosh Shilimkar @ 2013-02-08 9:28 UTC (permalink / raw) To: linux-arm-kernel On Friday 08 February 2013 06:35 AM, Jon Hunter wrote: > Adds device-tree bindings from SDMA on OMAP2+ devices. DMA client > bindings are also added for devices that have SPI and MMC bindings > populated. Client binding data is based upon existing HWMOD data for > OMAP and has been checked against OMAP documentation. > > Please note that the underlying (legacy) OMAP SDMA driver has not been > ported over to DT and this still needs to be done. However, this allows > DMA clients to look-up the DMA resource information via device-tree. > > Testing includes ... > 1. Boot tested on OMAP3430 Beagle board, OMAP4430 Panda board and > OMAP4460 Panda board with and without device-tree present. > 2. Testing of MMC1 with SD card on OMAP3430 Beagle board, OMAP4430 > Panda board and OMAP4460 Panda board with and without device-tree > present. > > Testing branch available here [1]. > > Series is based upon Tony Lindgren's omap-for-v3.9/multiplatform-v2 > branch [2] on top of the following ... > - Vinod's topic/dmaengine_dt branch [3] > - Matt Porter's series "DMA Engine support for AM33XX" [4] > - Matt Porter's series "omap_hsmmc DT DMA Client support" [5] > - Sourav Poddar's series "add omap mcspi device tree data" [6] > > V2 changes: > - Updated to Tony's omap-for-v3.9/multiplatform-v2 branch to pull in > DMA changes for v3.9 > - Added comma to omap_dma_driver structure as pointed out by Arnd. > - Updated OMAP SDMA DT binding compatible strings to indicate which > devices are bit compatible with each other with respect to the SDMA > controller. Grant had mentioned in the past that he wants the > compatible string to be based upon a particular device and not > something generic like "ti,omap-sdma". > > [1] https://github.com/jonhunter/linux/commits/dev-dt-dma > [2] git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git omap-for-v3.9/multiplatform-v2 > [3] http://git.infradead.org/users/vkoul/slave-dma.git/shortlog/refs/heads/topic/dmaengine_dt > [4] http://permalink.gmane.org/gmane.linux.kernel.spi.devel/12508 > [5] http://permalink.gmane.org/gmane.linux.ports.arm.omap/93165 > [6] http://permalink.gmane.org/gmane.linux.kernel/1435002 > > Jon Hunter (2): > ARM: dts: OMAP2+: Add SDMA controller bindings and nodes > dmaengine: OMAP: Register SDMA controller with Device Tree DMA driver > > .../devicetree/bindings/dma/omap-sdma.txt | 51 ++++++++++++++++++++ > arch/arm/boot/dts/omap2.dtsi | 12 +++++ > arch/arm/boot/dts/omap3.dtsi | 40 +++++++++++++++ > arch/arm/boot/dts/omap4.dtsi | 41 ++++++++++++++++ > arch/arm/boot/dts/omap5.dtsi | 41 ++++++++++++++++ > arch/arm/mach-omap2/dma.c | 4 ++ > drivers/dma/omap-dma.c | 37 +++++++++++++- > 7 files changed, 224 insertions(+), 2 deletions(-) > create mode 100644 Documentation/devicetree/bindings/dma/omap-sdma.txt > Acked-Tested-by: Santosh Shilimkar <santosh.shilimkar@ti.com> ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2013-02-08 15:05 UTC | newest] Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2013-02-08 1:05 [PATCH V2 0/2] ARM: dts: Add DT bindings for OMAP SDMA Jon Hunter 2013-02-08 1:05 ` Jon Hunter 2013-02-08 1:05 ` [PATCH V2 1/2] ARM: dts: OMAP2+: Add SDMA controller bindings and nodes Jon Hunter 2013-02-08 1:05 ` Jon Hunter 2013-02-08 7:53 ` Felipe Balbi 2013-02-08 7:53 ` Felipe Balbi [not found] ` <1360285506-22354-1-git-send-email-jon-hunter-l0cyMroinI0@public.gmane.org> 2013-02-08 1:05 ` [PATCH V2 2/2] dmaengine: OMAP: Register SDMA controller with Device Tree DMA driver Jon Hunter 2013-02-08 1:05 ` Jon Hunter 2013-02-08 7:55 ` Felipe Balbi 2013-02-08 7:55 ` Felipe Balbi [not found] ` <20130208075552.GD21879-S8G//mZuvNWo5Im9Ml3/Zg@public.gmane.org> 2013-02-08 15:05 ` Jon Hunter 2013-02-08 15:05 ` Jon Hunter 2013-02-08 9:28 ` [PATCH V2 0/2] ARM: dts: Add DT bindings for OMAP SDMA Santosh Shilimkar 2013-02-08 9:28 ` Santosh Shilimkar
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.