* [PATCH v2 0/2] dma: imx-sdma: add generic DMA device tree bindings support
@ 2013-04-25 14:43 Shawn Guo
2013-04-25 14:43 ` [PATCH v2 1/2] dma: imx: change enum definitions to macros Shawn Guo
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Shawn Guo @ 2013-04-25 14:43 UTC (permalink / raw)
To: linux-arm-kernel
Changes since v1:
* Fix the example typo in bindings doc. Thanks to Fabio.
Shawn Guo (2):
dma: imx: change enum definitions to macros
dma: imx-sdma: move to generic device tree bindings
.../devicetree/bindings/dma/fsl-imx-sdma.txt | 22 ++++++++++
drivers/dma/imx-sdma.c | 44 +++++++++++++++++++-
include/dt-bindings/dma/imx.h | 29 +++++++++++++
include/linux/platform_data/dma-imx.h | 37 +---------------
4 files changed, 95 insertions(+), 37 deletions(-)
create mode 100644 include/dt-bindings/dma/imx.h
--
1.7.9.5
^ permalink raw reply [flat|nested] 9+ messages in thread* [PATCH v2 1/2] dma: imx: change enum definitions to macros 2013-04-25 14:43 [PATCH v2 0/2] dma: imx-sdma: add generic DMA device tree bindings support Shawn Guo @ 2013-04-25 14:43 ` Shawn Guo 2013-04-25 14:43 ` [PATCH v2 2/2] dma: imx-sdma: move to generic device tree bindings Shawn Guo 2013-05-24 5:29 ` [PATCH v2 0/2] dma: imx-sdma: add generic DMA device tree bindings support Shawn Guo 2 siblings, 0 replies; 9+ messages in thread From: Shawn Guo @ 2013-04-25 14:43 UTC (permalink / raw) To: linux-arm-kernel Change enum sdma_peripheral_type and imx_dma_prio to macro definitions for easing the migration to generic DMA device tree bindings later. Signed-off-by: Shawn Guo <shawn.guo@linaro.org> --- drivers/dma/imx-sdma.c | 4 +-- include/linux/platform_data/dma-imx.h | 56 +++++++++++++++------------------ 2 files changed, 28 insertions(+), 32 deletions(-) diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c index 092867b..e57a0c6 100644 --- a/drivers/dma/imx-sdma.c +++ b/drivers/dma/imx-sdma.c @@ -249,7 +249,7 @@ struct sdma_channel { struct sdma_engine *sdma; unsigned int channel; enum dma_transfer_direction direction; - enum sdma_peripheral_type peripheral_type; + int peripheral_type; unsigned int event_id0; unsigned int event_id1; enum dma_slave_buswidth word_size; @@ -580,7 +580,7 @@ static irqreturn_t sdma_int_handler(int irq, void *dev_id) * sets the pc of SDMA script according to the peripheral type */ static void sdma_get_pc(struct sdma_channel *sdmac, - enum sdma_peripheral_type peripheral_type) + int peripheral_type) { struct sdma_engine *sdma = sdmac->sdma; int per_2_emi = 0, emi_2_per = 0; diff --git a/include/linux/platform_data/dma-imx.h b/include/linux/platform_data/dma-imx.h index f6d30cc..8a8a684 100644 --- a/include/linux/platform_data/dma-imx.h +++ b/include/linux/platform_data/dma-imx.h @@ -16,40 +16,36 @@ /* * This enumerates peripheral types. Used for SDMA. */ -enum sdma_peripheral_type { - IMX_DMATYPE_SSI, /* MCU domain SSI */ - IMX_DMATYPE_SSI_SP, /* Shared SSI */ - IMX_DMATYPE_MMC, /* MMC */ - IMX_DMATYPE_SDHC, /* SDHC */ - IMX_DMATYPE_UART, /* MCU domain UART */ - IMX_DMATYPE_UART_SP, /* Shared UART */ - IMX_DMATYPE_FIRI, /* FIRI */ - IMX_DMATYPE_CSPI, /* MCU domain CSPI */ - IMX_DMATYPE_CSPI_SP, /* Shared CSPI */ - IMX_DMATYPE_SIM, /* SIM */ - IMX_DMATYPE_ATA, /* ATA */ - IMX_DMATYPE_CCM, /* CCM */ - IMX_DMATYPE_EXT, /* External peripheral */ - IMX_DMATYPE_MSHC, /* Memory Stick Host Controller */ - IMX_DMATYPE_MSHC_SP, /* Shared Memory Stick Host Controller */ - IMX_DMATYPE_DSP, /* DSP */ - IMX_DMATYPE_MEMORY, /* Memory */ - IMX_DMATYPE_FIFO_MEMORY,/* FIFO type Memory */ - IMX_DMATYPE_SPDIF, /* SPDIF */ - IMX_DMATYPE_IPU_MEMORY, /* IPU Memory */ - IMX_DMATYPE_ASRC, /* ASRC */ - IMX_DMATYPE_ESAI, /* ESAI */ -}; +#define IMX_DMATYPE_SSI 0 /* MCU domain SSI */ +#define IMX_DMATYPE_SSI_SP 1 /* Shared SSI */ +#define IMX_DMATYPE_MMC 2 /* MMC */ +#define IMX_DMATYPE_SDHC 3 /* SDHC */ +#define IMX_DMATYPE_UART 4 /* MCU domain UART */ +#define IMX_DMATYPE_UART_SP 5 /* Shared UART */ +#define IMX_DMATYPE_FIRI 6 /* FIRI */ +#define IMX_DMATYPE_CSPI 7 /* MCU domain CSPI */ +#define IMX_DMATYPE_CSPI_SP 8 /* Shared CSPI */ +#define IMX_DMATYPE_SIM 9 /* SIM */ +#define IMX_DMATYPE_ATA 10 /* ATA */ +#define IMX_DMATYPE_CCM 11 /* CCM */ +#define IMX_DMATYPE_EXT 12 /* External peripheral */ +#define IMX_DMATYPE_MSHC 13 /* Memory Stick Host Controller */ +#define IMX_DMATYPE_MSHC_SP 14 /* Shared Memory Stick Host Controller */ +#define IMX_DMATYPE_DSP 15 /* DSP */ +#define IMX_DMATYPE_MEMORY 16 /* Memory */ +#define IMX_DMATYPE_FIFO_MEMORY 17 /* FIFO type Memory */ +#define IMX_DMATYPE_SPDIF 18 /* SPDIF */ +#define IMX_DMATYPE_IPU_MEMORY 19 /* IPU Memory */ +#define IMX_DMATYPE_ASRC 20 /* ASRC */ +#define IMX_DMATYPE_ESAI 21 /* ESAI */ -enum imx_dma_prio { - DMA_PRIO_HIGH = 0, - DMA_PRIO_MEDIUM = 1, - DMA_PRIO_LOW = 2 -}; +#define DMA_PRIO_HIGH 0 +#define DMA_PRIO_MEDIUM 1 +#define DMA_PRIO_LOW 2 struct imx_dma_data { int dma_request; /* DMA request line */ - enum sdma_peripheral_type peripheral_type; + int peripheral_type; int priority; }; -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v2 2/2] dma: imx-sdma: move to generic device tree bindings 2013-04-25 14:43 [PATCH v2 0/2] dma: imx-sdma: add generic DMA device tree bindings support Shawn Guo 2013-04-25 14:43 ` [PATCH v2 1/2] dma: imx: change enum definitions to macros Shawn Guo @ 2013-04-25 14:43 ` Shawn Guo 2013-04-30 10:51 ` Vinod Koul 2013-05-24 5:29 ` [PATCH v2 0/2] dma: imx-sdma: add generic DMA device tree bindings support Shawn Guo 2 siblings, 1 reply; 9+ messages in thread From: Shawn Guo @ 2013-04-25 14:43 UTC (permalink / raw) To: linux-arm-kernel Update imx-sdma driver to adopt generic DMA device tree bindings. It calls of_dma_controller_register() with imx-sdma specific of_dma_xlate to get the generic DMA device tree helper support. The #dma-cells for imx-sdma must be 3, which includes request ID, peripheral type and priority. The definitions of peripheral type and priority get moved into include/dt-bindings/dma/imx.h, so that the macros can also be used in dts files. The existing way of requesting channel, clients directly call dma_request_channel(), still work there, and will be removed after all imx-sdma clients get converted to generic DMA device tree helper. Signed-off-by: Shawn Guo <shawn.guo@linaro.org> --- .../devicetree/bindings/dma/fsl-imx-sdma.txt | 22 +++++++++++ drivers/dma/imx-sdma.c | 40 ++++++++++++++++++++ include/dt-bindings/dma/imx.h | 29 ++++++++++++++ include/linux/platform_data/dma-imx.h | 31 +-------------- 4 files changed, 92 insertions(+), 30 deletions(-) create mode 100644 include/dt-bindings/dma/imx.h diff --git a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt index d1e3f44..8bd8d35 100644 --- a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt +++ b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt @@ -4,6 +4,11 @@ Required properties: - compatible : Should be "fsl,<chip>-sdma" - reg : Should contain SDMA registers location and length - interrupts : Should contain SDMA interrupt +- #dma-cells : Must be <3>. + The first cell specifies the DMA request/event ID. The second and + third cell specifies the peripheral type and priority of DMA transfer + respectively. Refer to include/dt-bindings/dma/imx.h for available + peripheral types and priorities. - fsl,sdma-ram-script-name : Should contain the full path of SDMA RAM scripts firmware @@ -13,5 +18,22 @@ sdma at 83fb0000 { compatible = "fsl,imx51-sdma", "fsl,imx35-sdma"; reg = <0x83fb0000 0x4000>; interrupts = <6>; + #dma-cells = <3>; fsl,sdma-ram-script-name = "sdma-imx51.bin"; }; + +DMA clients connected to the i.MX SDMA controller must use the format +described in the dma.txt file. + +Examples: + +ssi2: ssi at 70014000 { + compatible = "fsl,imx51-ssi", "fsl,imx21-ssi"; + reg = <0x70014000 0x4000>; + interrupts = <30>; + clocks = <&clks 49>; + dmas = <&sdma 24 IMX_DMATYPE_SSI_SP DMA_PRIO_HIGH>, + <&sdma 25 IMX_DMATYPE_SSI_SP DMA_PRIO_HIGH>; + dma-names = "rx", "tx"; + fsl,fifo-depth = <15>; +}; diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c index e57a0c6..f1324da 100644 --- a/drivers/dma/imx-sdma.c +++ b/drivers/dma/imx-sdma.c @@ -36,6 +36,7 @@ #include <linux/dmaengine.h> #include <linux/of.h> #include <linux/of_device.h> +#include <linux/of_dma.h> #include <asm/irq.h> #include <linux/platform_data/dma-imx-sdma.h> @@ -1296,6 +1297,35 @@ err_dma_alloc: return ret; } +static bool sdma_filter_fn(struct dma_chan *chan, void *fn_param) +{ + struct imx_dma_data *data = fn_param; + + if (!imx_dma_is_general_purpose(chan)) + return false; + + chan->private = data; + + return true; +} + +struct dma_chan *sdma_xlate(struct of_phandle_args *dma_spec, + struct of_dma *ofdma) +{ + struct sdma_engine *sdma = ofdma->of_dma_data; + dma_cap_mask_t mask = sdma->dma_device.cap_mask; + struct imx_dma_data data; + + if (dma_spec->args_count != 3) + return NULL; + + data.dma_request = dma_spec->args[0]; + data.peripheral_type = dma_spec->args[1]; + data.priority = dma_spec->args[2]; + + return dma_request_channel(mask, sdma_filter_fn, &data); +} + static int __init sdma_probe(struct platform_device *pdev) { const struct of_device_id *of_id = @@ -1443,10 +1473,20 @@ static int __init sdma_probe(struct platform_device *pdev) goto err_init; } + if (np) { + ret = of_dma_controller_register(np, sdma_xlate, sdma); + if (ret) { + dev_err(&pdev->dev, "failed to register controller\n"); + goto err_register; + } + } + dev_info(sdma->dev, "initialized\n"); return 0; +err_register: + dma_async_device_unregister(&sdma->dma_device); err_init: kfree(sdma->script_addrs); err_alloc: diff --git a/include/dt-bindings/dma/imx.h b/include/dt-bindings/dma/imx.h new file mode 100644 index 0000000..d5de68c --- /dev/null +++ b/include/dt-bindings/dma/imx.h @@ -0,0 +1,29 @@ +/* + * This enumerates peripheral types. Used for SDMA. + */ +#define IMX_DMATYPE_SSI 0 /* MCU domain SSI */ +#define IMX_DMATYPE_SSI_SP 1 /* Shared SSI */ +#define IMX_DMATYPE_MMC 2 /* MMC */ +#define IMX_DMATYPE_SDHC 3 /* SDHC */ +#define IMX_DMATYPE_UART 4 /* MCU domain UART */ +#define IMX_DMATYPE_UART_SP 5 /* Shared UART */ +#define IMX_DMATYPE_FIRI 6 /* FIRI */ +#define IMX_DMATYPE_CSPI 7 /* MCU domain CSPI */ +#define IMX_DMATYPE_CSPI_SP 8 /* Shared CSPI */ +#define IMX_DMATYPE_SIM 9 /* SIM */ +#define IMX_DMATYPE_ATA 10 /* ATA */ +#define IMX_DMATYPE_CCM 11 /* CCM */ +#define IMX_DMATYPE_EXT 12 /* External peripheral */ +#define IMX_DMATYPE_MSHC 13 /* Memory Stick Host Controller */ +#define IMX_DMATYPE_MSHC_SP 14 /* Shared Memory Stick Host Controller */ +#define IMX_DMATYPE_DSP 15 /* DSP */ +#define IMX_DMATYPE_MEMORY 16 /* Memory */ +#define IMX_DMATYPE_FIFO_MEMORY 17 /* FIFO type Memory */ +#define IMX_DMATYPE_SPDIF 18 /* SPDIF */ +#define IMX_DMATYPE_IPU_MEMORY 19 /* IPU Memory */ +#define IMX_DMATYPE_ASRC 20 /* ASRC */ +#define IMX_DMATYPE_ESAI 21 /* ESAI */ + +#define DMA_PRIO_HIGH 0 +#define DMA_PRIO_MEDIUM 1 +#define DMA_PRIO_LOW 2 diff --git a/include/linux/platform_data/dma-imx.h b/include/linux/platform_data/dma-imx.h index 8a8a684..33f7eda 100644 --- a/include/linux/platform_data/dma-imx.h +++ b/include/linux/platform_data/dma-imx.h @@ -12,36 +12,7 @@ #include <linux/scatterlist.h> #include <linux/device.h> #include <linux/dmaengine.h> - -/* - * This enumerates peripheral types. Used for SDMA. - */ -#define IMX_DMATYPE_SSI 0 /* MCU domain SSI */ -#define IMX_DMATYPE_SSI_SP 1 /* Shared SSI */ -#define IMX_DMATYPE_MMC 2 /* MMC */ -#define IMX_DMATYPE_SDHC 3 /* SDHC */ -#define IMX_DMATYPE_UART 4 /* MCU domain UART */ -#define IMX_DMATYPE_UART_SP 5 /* Shared UART */ -#define IMX_DMATYPE_FIRI 6 /* FIRI */ -#define IMX_DMATYPE_CSPI 7 /* MCU domain CSPI */ -#define IMX_DMATYPE_CSPI_SP 8 /* Shared CSPI */ -#define IMX_DMATYPE_SIM 9 /* SIM */ -#define IMX_DMATYPE_ATA 10 /* ATA */ -#define IMX_DMATYPE_CCM 11 /* CCM */ -#define IMX_DMATYPE_EXT 12 /* External peripheral */ -#define IMX_DMATYPE_MSHC 13 /* Memory Stick Host Controller */ -#define IMX_DMATYPE_MSHC_SP 14 /* Shared Memory Stick Host Controller */ -#define IMX_DMATYPE_DSP 15 /* DSP */ -#define IMX_DMATYPE_MEMORY 16 /* Memory */ -#define IMX_DMATYPE_FIFO_MEMORY 17 /* FIFO type Memory */ -#define IMX_DMATYPE_SPDIF 18 /* SPDIF */ -#define IMX_DMATYPE_IPU_MEMORY 19 /* IPU Memory */ -#define IMX_DMATYPE_ASRC 20 /* ASRC */ -#define IMX_DMATYPE_ESAI 21 /* ESAI */ - -#define DMA_PRIO_HIGH 0 -#define DMA_PRIO_MEDIUM 1 -#define DMA_PRIO_LOW 2 +#include <dt-bindings/dma/imx.h> struct imx_dma_data { int dma_request; /* DMA request line */ -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v2 2/2] dma: imx-sdma: move to generic device tree bindings 2013-04-25 14:43 ` [PATCH v2 2/2] dma: imx-sdma: move to generic device tree bindings Shawn Guo @ 2013-04-30 10:51 ` Vinod Koul 2013-05-07 2:56 ` Shawn Guo 0 siblings, 1 reply; 9+ messages in thread From: Vinod Koul @ 2013-04-30 10:51 UTC (permalink / raw) To: linux-arm-kernel On Thu, Apr 25, 2013 at 10:43:28PM +0800, Shawn Guo wrote: > Update imx-sdma driver to adopt generic DMA device tree bindings. It > calls of_dma_controller_register() with imx-sdma specific of_dma_xlate > to get the generic DMA device tree helper support. The #dma-cells for > imx-sdma must be 3, which includes request ID, peripheral type and > priority. > > The definitions of peripheral type and priority get moved into > include/dt-bindings/dma/imx.h, so that the macros can also be used in > dts files. > > The existing way of requesting channel, clients directly call > dma_request_channel(), still work there, and will be removed after > all imx-sdma clients get converted to generic DMA device tree helper. > > Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Looks fine to me, Arnd? -- ~Vinod > --- > .../devicetree/bindings/dma/fsl-imx-sdma.txt | 22 +++++++++++ > drivers/dma/imx-sdma.c | 40 ++++++++++++++++++++ > include/dt-bindings/dma/imx.h | 29 ++++++++++++++ > include/linux/platform_data/dma-imx.h | 31 +-------------- > 4 files changed, 92 insertions(+), 30 deletions(-) > create mode 100644 include/dt-bindings/dma/imx.h > > diff --git a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt > index d1e3f44..8bd8d35 100644 > --- a/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt > +++ b/Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt > @@ -4,6 +4,11 @@ Required properties: > - compatible : Should be "fsl,<chip>-sdma" > - reg : Should contain SDMA registers location and length > - interrupts : Should contain SDMA interrupt > +- #dma-cells : Must be <3>. > + The first cell specifies the DMA request/event ID. The second and > + third cell specifies the peripheral type and priority of DMA transfer > + respectively. Refer to include/dt-bindings/dma/imx.h for available > + peripheral types and priorities. > - fsl,sdma-ram-script-name : Should contain the full path of SDMA RAM > scripts firmware > > @@ -13,5 +18,22 @@ sdma at 83fb0000 { > compatible = "fsl,imx51-sdma", "fsl,imx35-sdma"; > reg = <0x83fb0000 0x4000>; > interrupts = <6>; > + #dma-cells = <3>; > fsl,sdma-ram-script-name = "sdma-imx51.bin"; > }; > + > +DMA clients connected to the i.MX SDMA controller must use the format > +described in the dma.txt file. > + > +Examples: > + > +ssi2: ssi at 70014000 { > + compatible = "fsl,imx51-ssi", "fsl,imx21-ssi"; > + reg = <0x70014000 0x4000>; > + interrupts = <30>; > + clocks = <&clks 49>; > + dmas = <&sdma 24 IMX_DMATYPE_SSI_SP DMA_PRIO_HIGH>, > + <&sdma 25 IMX_DMATYPE_SSI_SP DMA_PRIO_HIGH>; > + dma-names = "rx", "tx"; > + fsl,fifo-depth = <15>; > +}; > diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c > index e57a0c6..f1324da 100644 > --- a/drivers/dma/imx-sdma.c > +++ b/drivers/dma/imx-sdma.c > @@ -36,6 +36,7 @@ > #include <linux/dmaengine.h> > #include <linux/of.h> > #include <linux/of_device.h> > +#include <linux/of_dma.h> > > #include <asm/irq.h> > #include <linux/platform_data/dma-imx-sdma.h> > @@ -1296,6 +1297,35 @@ err_dma_alloc: > return ret; > } > > +static bool sdma_filter_fn(struct dma_chan *chan, void *fn_param) > +{ > + struct imx_dma_data *data = fn_param; > + > + if (!imx_dma_is_general_purpose(chan)) > + return false; > + > + chan->private = data; > + > + return true; > +} > + > +struct dma_chan *sdma_xlate(struct of_phandle_args *dma_spec, > + struct of_dma *ofdma) > +{ > + struct sdma_engine *sdma = ofdma->of_dma_data; > + dma_cap_mask_t mask = sdma->dma_device.cap_mask; > + struct imx_dma_data data; > + > + if (dma_spec->args_count != 3) > + return NULL; > + > + data.dma_request = dma_spec->args[0]; > + data.peripheral_type = dma_spec->args[1]; > + data.priority = dma_spec->args[2]; > + > + return dma_request_channel(mask, sdma_filter_fn, &data); > +} > + > static int __init sdma_probe(struct platform_device *pdev) > { > const struct of_device_id *of_id = > @@ -1443,10 +1473,20 @@ static int __init sdma_probe(struct platform_device *pdev) > goto err_init; > } > > + if (np) { > + ret = of_dma_controller_register(np, sdma_xlate, sdma); > + if (ret) { > + dev_err(&pdev->dev, "failed to register controller\n"); > + goto err_register; > + } > + } > + > dev_info(sdma->dev, "initialized\n"); > > return 0; > > +err_register: > + dma_async_device_unregister(&sdma->dma_device); > err_init: > kfree(sdma->script_addrs); > err_alloc: > diff --git a/include/dt-bindings/dma/imx.h b/include/dt-bindings/dma/imx.h > new file mode 100644 > index 0000000..d5de68c > --- /dev/null > +++ b/include/dt-bindings/dma/imx.h > @@ -0,0 +1,29 @@ > +/* > + * This enumerates peripheral types. Used for SDMA. > + */ > +#define IMX_DMATYPE_SSI 0 /* MCU domain SSI */ > +#define IMX_DMATYPE_SSI_SP 1 /* Shared SSI */ > +#define IMX_DMATYPE_MMC 2 /* MMC */ > +#define IMX_DMATYPE_SDHC 3 /* SDHC */ > +#define IMX_DMATYPE_UART 4 /* MCU domain UART */ > +#define IMX_DMATYPE_UART_SP 5 /* Shared UART */ > +#define IMX_DMATYPE_FIRI 6 /* FIRI */ > +#define IMX_DMATYPE_CSPI 7 /* MCU domain CSPI */ > +#define IMX_DMATYPE_CSPI_SP 8 /* Shared CSPI */ > +#define IMX_DMATYPE_SIM 9 /* SIM */ > +#define IMX_DMATYPE_ATA 10 /* ATA */ > +#define IMX_DMATYPE_CCM 11 /* CCM */ > +#define IMX_DMATYPE_EXT 12 /* External peripheral */ > +#define IMX_DMATYPE_MSHC 13 /* Memory Stick Host Controller */ > +#define IMX_DMATYPE_MSHC_SP 14 /* Shared Memory Stick Host Controller */ > +#define IMX_DMATYPE_DSP 15 /* DSP */ > +#define IMX_DMATYPE_MEMORY 16 /* Memory */ > +#define IMX_DMATYPE_FIFO_MEMORY 17 /* FIFO type Memory */ > +#define IMX_DMATYPE_SPDIF 18 /* SPDIF */ > +#define IMX_DMATYPE_IPU_MEMORY 19 /* IPU Memory */ > +#define IMX_DMATYPE_ASRC 20 /* ASRC */ > +#define IMX_DMATYPE_ESAI 21 /* ESAI */ > + > +#define DMA_PRIO_HIGH 0 > +#define DMA_PRIO_MEDIUM 1 > +#define DMA_PRIO_LOW 2 > diff --git a/include/linux/platform_data/dma-imx.h b/include/linux/platform_data/dma-imx.h > index 8a8a684..33f7eda 100644 > --- a/include/linux/platform_data/dma-imx.h > +++ b/include/linux/platform_data/dma-imx.h > @@ -12,36 +12,7 @@ > #include <linux/scatterlist.h> > #include <linux/device.h> > #include <linux/dmaengine.h> > - > -/* > - * This enumerates peripheral types. Used for SDMA. > - */ > -#define IMX_DMATYPE_SSI 0 /* MCU domain SSI */ > -#define IMX_DMATYPE_SSI_SP 1 /* Shared SSI */ > -#define IMX_DMATYPE_MMC 2 /* MMC */ > -#define IMX_DMATYPE_SDHC 3 /* SDHC */ > -#define IMX_DMATYPE_UART 4 /* MCU domain UART */ > -#define IMX_DMATYPE_UART_SP 5 /* Shared UART */ > -#define IMX_DMATYPE_FIRI 6 /* FIRI */ > -#define IMX_DMATYPE_CSPI 7 /* MCU domain CSPI */ > -#define IMX_DMATYPE_CSPI_SP 8 /* Shared CSPI */ > -#define IMX_DMATYPE_SIM 9 /* SIM */ > -#define IMX_DMATYPE_ATA 10 /* ATA */ > -#define IMX_DMATYPE_CCM 11 /* CCM */ > -#define IMX_DMATYPE_EXT 12 /* External peripheral */ > -#define IMX_DMATYPE_MSHC 13 /* Memory Stick Host Controller */ > -#define IMX_DMATYPE_MSHC_SP 14 /* Shared Memory Stick Host Controller */ > -#define IMX_DMATYPE_DSP 15 /* DSP */ > -#define IMX_DMATYPE_MEMORY 16 /* Memory */ > -#define IMX_DMATYPE_FIFO_MEMORY 17 /* FIFO type Memory */ > -#define IMX_DMATYPE_SPDIF 18 /* SPDIF */ > -#define IMX_DMATYPE_IPU_MEMORY 19 /* IPU Memory */ > -#define IMX_DMATYPE_ASRC 20 /* ASRC */ > -#define IMX_DMATYPE_ESAI 21 /* ESAI */ > - > -#define DMA_PRIO_HIGH 0 > -#define DMA_PRIO_MEDIUM 1 > -#define DMA_PRIO_LOW 2 > +#include <dt-bindings/dma/imx.h> > > struct imx_dma_data { > int dma_request; /* DMA request line */ > -- > 1.7.9.5 > > ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 2/2] dma: imx-sdma: move to generic device tree bindings 2013-04-30 10:51 ` Vinod Koul @ 2013-05-07 2:56 ` Shawn Guo 0 siblings, 0 replies; 9+ messages in thread From: Shawn Guo @ 2013-05-07 2:56 UTC (permalink / raw) To: linux-arm-kernel On Tue, Apr 30, 2013 at 04:21:05PM +0530, Vinod Koul wrote: > On Thu, Apr 25, 2013 at 10:43:28PM +0800, Shawn Guo wrote: > > Update imx-sdma driver to adopt generic DMA device tree bindings. It > > calls of_dma_controller_register() with imx-sdma specific of_dma_xlate > > to get the generic DMA device tree helper support. The #dma-cells for > > imx-sdma must be 3, which includes request ID, peripheral type and > > priority. > > > > The definitions of peripheral type and priority get moved into > > include/dt-bindings/dma/imx.h, so that the macros can also be used in > > dts files. > > > > The existing way of requesting channel, clients directly call > > dma_request_channel(), still work there, and will be removed after > > all imx-sdma clients get converted to generic DMA device tree helper. > > > > Signed-off-by: Shawn Guo <shawn.guo@linaro.org> > Looks fine to me, Arnd? ping. I was hoping we can get this in with 3.10 merge window, and start convert client device drivers to it during 3.11 development cycle. Is it still possible? Shawn ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 0/2] dma: imx-sdma: add generic DMA device tree bindings support 2013-04-25 14:43 [PATCH v2 0/2] dma: imx-sdma: add generic DMA device tree bindings support Shawn Guo 2013-04-25 14:43 ` [PATCH v2 1/2] dma: imx: change enum definitions to macros Shawn Guo 2013-04-25 14:43 ` [PATCH v2 2/2] dma: imx-sdma: move to generic device tree bindings Shawn Guo @ 2013-05-24 5:29 ` Shawn Guo 2013-05-24 5:03 ` Vinod Koul 2 siblings, 1 reply; 9+ messages in thread From: Shawn Guo @ 2013-05-24 5:29 UTC (permalink / raw) To: linux-arm-kernel Vinod, On Thu, Apr 25, 2013 at 10:43:26PM +0800, Shawn Guo wrote: > Changes since v1: > * Fix the example typo in bindings doc. Thanks to Fabio. > > Shawn Guo (2): > dma: imx: change enum definitions to macros > dma: imx-sdma: move to generic device tree bindings Can you please apply these for 3.11? Shawn ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 0/2] dma: imx-sdma: add generic DMA device tree bindings support 2013-05-24 5:29 ` [PATCH v2 0/2] dma: imx-sdma: add generic DMA device tree bindings support Shawn Guo @ 2013-05-24 5:03 ` Vinod Koul 2013-05-24 5:53 ` Shawn Guo 0 siblings, 1 reply; 9+ messages in thread From: Vinod Koul @ 2013-05-24 5:03 UTC (permalink / raw) To: linux-arm-kernel On Fri, May 24, 2013 at 01:29:05PM +0800, Shawn Guo wrote: > Vinod, > > On Thu, Apr 25, 2013 at 10:43:26PM +0800, Shawn Guo wrote: > > Changes since v1: > > * Fix the example typo in bindings doc. Thanks to Fabio. > > > > Shawn Guo (2): > > dma: imx: change enum definitions to macros > > dma: imx-sdma: move to generic device tree bindings > > Can you please apply these for 3.11? Sorry I was thinking that you will update the patchset based on Arnd last comment on (ab)use of macro. Can you fix that & resend -- ~Vinod ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 0/2] dma: imx-sdma: add generic DMA device tree bindings support 2013-05-24 5:03 ` Vinod Koul @ 2013-05-24 5:53 ` Shawn Guo 2013-05-24 5:32 ` Vinod Koul 0 siblings, 1 reply; 9+ messages in thread From: Shawn Guo @ 2013-05-24 5:53 UTC (permalink / raw) To: linux-arm-kernel On Fri, May 24, 2013 at 10:33:29AM +0530, Vinod Koul wrote: > On Fri, May 24, 2013 at 01:29:05PM +0800, Shawn Guo wrote: > > Vinod, > > > > On Thu, Apr 25, 2013 at 10:43:26PM +0800, Shawn Guo wrote: > > > Changes since v1: > > > * Fix the example typo in bindings doc. Thanks to Fabio. > > > > > > Shawn Guo (2): > > > dma: imx: change enum definitions to macros > > > dma: imx-sdma: move to generic device tree bindings > > > > Can you please apply these for 3.11? > Sorry I was thinking that you will update the patchset based on Arnd last > comment on (ab)use of macro. Can you fix that & resend I had a response [1] on that to explain why I think the macro is being reasonably used there. Shawn [1] http://thread.gmane.org/gmane.linux.ports.arm.kernel/233361/focus=233395 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 0/2] dma: imx-sdma: add generic DMA device tree bindings support 2013-05-24 5:53 ` Shawn Guo @ 2013-05-24 5:32 ` Vinod Koul 0 siblings, 0 replies; 9+ messages in thread From: Vinod Koul @ 2013-05-24 5:32 UTC (permalink / raw) To: linux-arm-kernel On Fri, May 24, 2013 at 01:53:41PM +0800, Shawn Guo wrote: > On Fri, May 24, 2013 at 10:33:29AM +0530, Vinod Koul wrote: > > On Fri, May 24, 2013 at 01:29:05PM +0800, Shawn Guo wrote: > > > Vinod, > > > > > > On Thu, Apr 25, 2013 at 10:43:26PM +0800, Shawn Guo wrote: > > > > Changes since v1: > > > > * Fix the example typo in bindings doc. Thanks to Fabio. > > > > > > > > Shawn Guo (2): > > > > dma: imx: change enum definitions to macros > > > > dma: imx-sdma: move to generic device tree bindings > > > > > > Can you please apply these for 3.11? > > Sorry I was thinking that you will update the patchset based on Arnd last > > comment on (ab)use of macro. Can you fix that & resend > > I had a response [1] on that to explain why I think the macro is > being reasonably used there. I see the reason for this. Arnd replied to me only. I think an honest mistake. Here are his comments > > Looks fine to me, Arnd? > > I still think that the move of the numbers to include/dt-bindings/dma/imx.h > is abuse of the preprocessor infrastructure and should not be there. > The actual binding looks fine though. > > Arnd > What I didnt realize that it was not on list and you havent seen it. Can you fix this up and resend... -- ~Vinod > ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2013-05-24 5:53 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-04-25 14:43 [PATCH v2 0/2] dma: imx-sdma: add generic DMA device tree bindings support Shawn Guo 2013-04-25 14:43 ` [PATCH v2 1/2] dma: imx: change enum definitions to macros Shawn Guo 2013-04-25 14:43 ` [PATCH v2 2/2] dma: imx-sdma: move to generic device tree bindings Shawn Guo 2013-04-30 10:51 ` Vinod Koul 2013-05-07 2:56 ` Shawn Guo 2013-05-24 5:29 ` [PATCH v2 0/2] dma: imx-sdma: add generic DMA device tree bindings support Shawn Guo 2013-05-24 5:03 ` Vinod Koul 2013-05-24 5:53 ` Shawn Guo 2013-05-24 5:32 ` Vinod Koul
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).