diff options
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.patch | 171 |
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"); -- |