summaryrefslogtreecommitdiff
path: root/target/linux/omap/patches-3.12/402-ASoC-davinci-mcasp-Add-DMA-register-locations-to-DT.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/omap/patches-3.12/402-ASoC-davinci-mcasp-Add-DMA-register-locations-to-DT.patch')
-rw-r--r--target/linux/omap/patches-3.12/402-ASoC-davinci-mcasp-Add-DMA-register-locations-to-DT.patch171
1 files changed, 0 insertions, 171 deletions
diff --git a/target/linux/omap/patches-3.12/402-ASoC-davinci-mcasp-Add-DMA-register-locations-to-DT.patch b/target/linux/omap/patches-3.12/402-ASoC-davinci-mcasp-Add-DMA-register-locations-to-DT.patch
deleted file mode 100644
index ef7b436..0000000
--- a/target/linux/omap/patches-3.12/402-ASoC-davinci-mcasp-Add-DMA-register-locations-to-DT.patch
+++ /dev/null
@@ -1,171 +0,0 @@
-From fb2002dbc326d2e408698038b668b19741567a48 Mon Sep 17 00:00:00 2001
-From: Jyri Sarha <jsarha@ti.com>
-Date: Fri, 6 Sep 2013 12:15:00 +0300
-Subject: [PATCH 213/752] ASoC: davinci-mcasp: Add DMA register locations to
- DT
-
-This patch adds DMA register location to mcasp DT bindings. On am33xx
-SoCs the McASP registers are mapped trough L4 interconnect, which is
-not accessible by the DMA controller, so McASP data port is mapped
-trough L3 to a different location.
-
-Signed-off-by: Hebbar, Gururaja <gururaja.hebbar@ti.com>
-Signed-off-by: Darren Etheridge <detheridge@ti.com>
-Signed-off-by: Jyri Sarha <jsarha@ti.com>
----
- .../bindings/sound/davinci-mcasp-audio.txt | 8 ++-
- sound/soc/davinci/davinci-mcasp.c | 59 +++++++++++++-------
- 2 files changed, 46 insertions(+), 21 deletions(-)
-
---- a/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt
-+++ b/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt
-@@ -6,7 +6,11 @@ Required properties:
- "ti,da830-mcasp-audio" : for both DA830 & DA850 platforms
- "ti,omap2-mcasp-audio" : for OMAP2 platforms (TI81xx, AM33xx)
-
--- reg : Should contain McASP registers offset and length
-+- reg : Should contain McASP registers address and length for mpu and
-+ optionally for dma controller access.
-+- reg-names : The mandatory reg-range must be named "mpu" and the optional DMA
-+ reg-range must be named "dma". For backward compatibility it is
-+ good to keep "mpu" first in the list.
- - interrupts : Interrupt number for McASP
- - op-mode : I2S/DIT ops mode.
- - tdm-slots : Slots for TDM operation.
-@@ -15,7 +19,6 @@ Required properties:
- to "num-serializer" parameter. Each entry is a number indication
- serializer pin direction. (0 - INACTIVE, 1 - TX, 2 - RX)
-
--
- Optional properties:
-
- - ti,hwmods : Must be "mcasp<n>", n is controller instance starting 0
-@@ -31,6 +34,7 @@ mcasp0: mcasp0@1d00000 {
- #address-cells = <1>;
- #size-cells = <0>;
- reg = <0x100000 0x3000>;
-+ reg-names "mpu";
- interrupts = <82 83>;
- op-mode = <0>; /* MCASP_IIS_MODE */
- tdm-slots = <2>;
---- a/sound/soc/davinci/davinci-mcasp.c
-+++ b/sound/soc/davinci/davinci-mcasp.c
-@@ -1001,18 +1001,40 @@ static const struct snd_soc_component_dr
- .name = "davinci-mcasp",
- };
-
-+/* Some HW specific values and defaults. The rest is filled in from DT. */
-+static struct snd_platform_data dm646x_mcasp_pdata = {
-+ .tx_dma_offset = 0x400,
-+ .rx_dma_offset = 0x400,
-+ .asp_chan_q = EVENTQ_0,
-+ .version = MCASP_VERSION_1,
-+};
-+
-+static struct snd_platform_data da830_mcasp_pdata = {
-+ .tx_dma_offset = 0x2000,
-+ .rx_dma_offset = 0x2000,
-+ .asp_chan_q = EVENTQ_0,
-+ .version = MCASP_VERSION_2,
-+};
-+
-+static struct snd_platform_data omap2_mcasp_pdata = {
-+ .tx_dma_offset = 0,
-+ .rx_dma_offset = 0,
-+ .asp_chan_q = EVENTQ_0,
-+ .version = MCASP_VERSION_3,
-+};
-+
- static const struct of_device_id mcasp_dt_ids[] = {
- {
- .compatible = "ti,dm646x-mcasp-audio",
-- .data = (void *)MCASP_VERSION_1,
-+ .data = &dm646x_mcasp_pdata,
- },
- {
- .compatible = "ti,da830-mcasp-audio",
-- .data = (void *)MCASP_VERSION_2,
-+ .data = &da830_mcasp_pdata,
- },
- {
- .compatible = "ti,omap2-mcasp-audio",
-- .data = (void *)MCASP_VERSION_3,
-+ .data = &omap2_mcasp_pdata,
- },
- { /* sentinel */ }
- };
-@@ -1035,20 +1057,13 @@ static struct snd_platform_data *davinci
- pdata = pdev->dev.platform_data;
- return pdata;
- } else if (match) {
-- pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL);
-- if (!pdata) {
-- ret = -ENOMEM;
-- goto nodata;
-- }
-+ pdata = (struct snd_platform_data *) match->data;
- } else {
- /* control shouldn't reach here. something is wrong */
- ret = -EINVAL;
- goto nodata;
- }
-
-- if (match->data)
-- pdata->version = (u8)((int)match->data);
--
- ret = of_property_read_u32(np, "op-mode", &val);
- if (ret >= 0)
- pdata->op_mode = val;
-@@ -1145,10 +1160,15 @@ static int davinci_mcasp_probe(struct pl
- return -EINVAL;
- }
-
-- mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-+ mem = platform_get_resource_byname(pdev, IORESOURCE_MEM, "mpu");
- if (!mem) {
-- dev_err(&pdev->dev, "no mem resource?\n");
-- return -ENODEV;
-+ dev_warn(dev->dev,
-+ "\"mpu\" mem resource not found, using index 0\n");
-+ mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-+ if (!mem) {
-+ dev_err(&pdev->dev, "no mem resource?\n");
-+ return -ENODEV;
-+ }
- }
-
- ioarea = devm_request_mem_region(&pdev->dev, mem->start,
-@@ -1182,13 +1202,16 @@ static int davinci_mcasp_probe(struct pl
- dev->rxnumevt = pdata->rxnumevt;
- dev->dev = &pdev->dev;
-
-+ dma = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dma");
-+ if (!dma)
-+ dma = mem;
-+
- dma_data = &dev->dma_params[SNDRV_PCM_STREAM_PLAYBACK];
- dma_data->asp_chan_q = pdata->asp_chan_q;
- dma_data->ram_chan_q = pdata->ram_chan_q;
- dma_data->sram_pool = pdata->sram_pool;
- dma_data->sram_size = pdata->sram_size_playback;
-- dma_data->dma_addr = (dma_addr_t) (pdata->tx_dma_offset +
-- mem->start);
-+ dma_data->dma_addr = dma->start + pdata->tx_dma_offset;
-
- /* first TX, then RX */
- res = platform_get_resource(pdev, IORESOURCE_DMA, 0);
-@@ -1205,8 +1228,7 @@ static int davinci_mcasp_probe(struct pl
- dma_data->ram_chan_q = pdata->ram_chan_q;
- dma_data->sram_pool = pdata->sram_pool;
- dma_data->sram_size = pdata->sram_size_capture;
-- dma_data->dma_addr = (dma_addr_t)(pdata->rx_dma_offset +
-- mem->start);
-+ dma_data->dma_addr = dma->start + pdata->rx_dma_offset;
-
- res = platform_get_resource(pdev, IORESOURCE_DMA, 1);
- if (!res) {
-@@ -1266,4 +1288,3 @@ module_platform_driver(davinci_mcasp_dri
- MODULE_AUTHOR("Steve Chen");
- MODULE_DESCRIPTION("TI DAVINCI McASP SoC Interface");
- MODULE_LICENSE("GPL");
--