Commit 79f4bde8 authored by Mark Brown's avatar Mark Brown

ASoC: mt8188: add memory-region support

Merge series from Trevor Wu <trevor.wu@mediatek.com>:

This series introduces support for memory-region, allowing afe memif to
utilize the region specified in dts.
parents 860c9ef0 e3326e3b
...@@ -25,6 +25,12 @@ properties: ...@@ -25,6 +25,12 @@ properties:
reset-names: reset-names:
const: audiosys const: audiosys
memory-region:
maxItems: 1
description: |
Shared memory region for AFE memif. A "shared-dma-pool".
See ../reserved-memory/reserved-memory.yaml for details.
mediatek,topckgen: mediatek,topckgen:
$ref: /schemas/types.yaml#/definitions/phandle $ref: /schemas/types.yaml#/definitions/phandle
description: The phandle of the mediatek topckgen controller description: The phandle of the mediatek topckgen controller
...@@ -176,6 +182,7 @@ examples: ...@@ -176,6 +182,7 @@ examples:
interrupts = <GIC_SPI 822 IRQ_TYPE_LEVEL_HIGH 0>; interrupts = <GIC_SPI 822 IRQ_TYPE_LEVEL_HIGH 0>;
resets = <&watchdog 14>; resets = <&watchdog 14>;
reset-names = "audiosys"; reset-names = "audiosys";
memory-region = <&snd_dma_mem_reserved>;
mediatek,topckgen = <&topckgen>; mediatek,topckgen = <&topckgen>;
mediatek,infracfg = <&infracfg_ao>; mediatek,infracfg = <&infracfg_ao>;
power-domains = <&spm 13>; //MT8188_POWER_DOMAIN_AUDIO power-domains = <&spm 13>; //MT8188_POWER_DOMAIN_AUDIO
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_address.h> #include <linux/of_address.h>
#include <linux/of_platform.h> #include <linux/of_platform.h>
#include <linux/of_reserved_mem.h>
#include <linux/pm_runtime.h> #include <linux/pm_runtime.h>
#include <linux/soc/mediatek/infracfg.h> #include <linux/soc/mediatek/infracfg.h>
#include <linux/reset.h> #include <linux/reset.h>
...@@ -3193,11 +3194,15 @@ static int mt8188_afe_pcm_dev_probe(struct platform_device *pdev) ...@@ -3193,11 +3194,15 @@ static int mt8188_afe_pcm_dev_probe(struct platform_device *pdev)
{ {
struct mtk_base_afe *afe; struct mtk_base_afe *afe;
struct mt8188_afe_private *afe_priv; struct mt8188_afe_private *afe_priv;
struct device *dev; struct device *dev = &pdev->dev;
struct reset_control *rstc; struct reset_control *rstc;
struct regmap *infra_ao; struct regmap *infra_ao;
int i, irq_id, ret; int i, irq_id, ret;
ret = of_reserved_mem_device_init(dev);
if (ret)
dev_dbg(dev, "failed to assign memory region: %d\n", ret);
ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(33)); ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(33));
if (ret) if (ret)
return ret; return ret;
...@@ -3213,7 +3218,6 @@ static int mt8188_afe_pcm_dev_probe(struct platform_device *pdev) ...@@ -3213,7 +3218,6 @@ static int mt8188_afe_pcm_dev_probe(struct platform_device *pdev)
afe_priv = afe->platform_priv; afe_priv = afe->platform_priv;
afe->dev = &pdev->dev; afe->dev = &pdev->dev;
dev = afe->dev;
afe->base_addr = devm_platform_ioremap_resource(pdev, 0); afe->base_addr = devm_platform_ioremap_resource(pdev, 0);
if (IS_ERR(afe->base_addr)) if (IS_ERR(afe->base_addr))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment