Commit b7af54a9 authored by Mark Brown's avatar Mark Brown

Merge remote-tracking branches 'asoc/topic/dmaengine', 'asoc/topic/fsi',...

Merge remote-tracking branches 'asoc/topic/dmaengine', 'asoc/topic/fsi', 'asoc/topic/fsl' and 'asoc/topic/fsl-ssi' into asoc-next
...@@ -194,6 +194,7 @@ struct dma_chan *of_dma_request_slave_channel(struct device_node *np, ...@@ -194,6 +194,7 @@ struct dma_chan *of_dma_request_slave_channel(struct device_node *np,
return ERR_PTR(ret_no_channel); return ERR_PTR(ret_no_channel);
} }
EXPORT_SYMBOL_GPL(of_dma_request_slave_channel);
/** /**
* of_dma_simple_xlate - Simple DMA engine translation function * of_dma_simple_xlate - Simple DMA engine translation function
......
...@@ -24,7 +24,7 @@ config SND_SOC_FSL_SAI ...@@ -24,7 +24,7 @@ config SND_SOC_FSL_SAI
in-tree drivers select it automatically. in-tree drivers select it automatically.
config SND_SOC_FSL_SSI config SND_SOC_FSL_SSI
tristate "Synchronous Serial Interface module support" tristate "Synchronous Serial Interface module (SSI) support"
select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC) select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC)
select REGMAP_MMIO select REGMAP_MMIO
...@@ -35,7 +35,7 @@ config SND_SOC_FSL_SSI ...@@ -35,7 +35,7 @@ config SND_SOC_FSL_SSI
in-tree drivers select it automatically. in-tree drivers select it automatically.
config SND_SOC_FSL_SPDIF config SND_SOC_FSL_SPDIF
tristate "Sony/Philips Digital Interface module support" tristate "Sony/Philips Digital Interface (S/PDIF) module support"
select REGMAP_MMIO select REGMAP_MMIO
select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC) select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC)
......
...@@ -1288,7 +1288,7 @@ static int fsl_ssi_probe(struct platform_device *pdev) ...@@ -1288,7 +1288,7 @@ static int fsl_ssi_probe(struct platform_device *pdev)
const struct of_device_id *of_id; const struct of_device_id *of_id;
const char *p, *sprop; const char *p, *sprop;
const uint32_t *iprop; const uint32_t *iprop;
struct resource res; struct resource *res;
void __iomem *iomem; void __iomem *iomem;
char name[64]; char name[64];
...@@ -1335,19 +1335,11 @@ static int fsl_ssi_probe(struct platform_device *pdev) ...@@ -1335,19 +1335,11 @@ static int fsl_ssi_probe(struct platform_device *pdev)
} }
ssi_private->cpu_dai_drv.name = dev_name(&pdev->dev); ssi_private->cpu_dai_drv.name = dev_name(&pdev->dev);
/* Get the addresses and IRQ */ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
ret = of_address_to_resource(np, 0, &res); iomem = devm_ioremap_resource(&pdev->dev, res);
if (ret) { if (IS_ERR(iomem))
dev_err(&pdev->dev, "could not determine device resources\n"); return PTR_ERR(iomem);
return ret; ssi_private->ssi_phys = res->start;
}
ssi_private->ssi_phys = res.start;
iomem = devm_ioremap(&pdev->dev, res.start, resource_size(&res));
if (!iomem) {
dev_err(&pdev->dev, "could not map device resources\n");
return -ENOMEM;
}
ret = of_property_match_string(np, "clock-names", "ipg"); ret = of_property_match_string(np, "clock-names", "ipg");
if (ret < 0) { if (ret < 0) {
...@@ -1393,7 +1385,7 @@ static int fsl_ssi_probe(struct platform_device *pdev) ...@@ -1393,7 +1385,7 @@ static int fsl_ssi_probe(struct platform_device *pdev)
return ret; return ret;
} }
ret = snd_soc_register_component(&pdev->dev, &fsl_ssi_component, ret = devm_snd_soc_register_component(&pdev->dev, &fsl_ssi_component,
&ssi_private->cpu_dai_drv, 1); &ssi_private->cpu_dai_drv, 1);
if (ret) { if (ret) {
dev_err(&pdev->dev, "failed to register DAI: %d\n", ret); dev_err(&pdev->dev, "failed to register DAI: %d\n", ret);
...@@ -1407,13 +1399,13 @@ static int fsl_ssi_probe(struct platform_device *pdev) ...@@ -1407,13 +1399,13 @@ static int fsl_ssi_probe(struct platform_device *pdev)
if (ret < 0) { if (ret < 0) {
dev_err(&pdev->dev, "could not claim irq %u\n", dev_err(&pdev->dev, "could not claim irq %u\n",
ssi_private->irq); ssi_private->irq);
goto error_irq; goto error_asoc_register;
} }
} }
ret = fsl_ssi_debugfs_create(&ssi_private->dbg_stats, &pdev->dev); ret = fsl_ssi_debugfs_create(&ssi_private->dbg_stats, &pdev->dev);
if (ret) if (ret)
goto error_irq; goto error_asoc_register;
/* /*
* If codec-handle property is missing from SSI node, we assume * If codec-handle property is missing from SSI node, we assume
...@@ -1454,9 +1446,6 @@ static int fsl_ssi_probe(struct platform_device *pdev) ...@@ -1454,9 +1446,6 @@ static int fsl_ssi_probe(struct platform_device *pdev)
error_sound_card: error_sound_card:
fsl_ssi_debugfs_remove(&ssi_private->dbg_stats); fsl_ssi_debugfs_remove(&ssi_private->dbg_stats);
error_irq:
snd_soc_unregister_component(&pdev->dev);
error_asoc_register: error_asoc_register:
if (ssi_private->soc->imx) if (ssi_private->soc->imx)
fsl_ssi_imx_clean(pdev, ssi_private); fsl_ssi_imx_clean(pdev, ssi_private);
...@@ -1472,7 +1461,6 @@ static int fsl_ssi_remove(struct platform_device *pdev) ...@@ -1472,7 +1461,6 @@ static int fsl_ssi_remove(struct platform_device *pdev)
if (ssi_private->pdev) if (ssi_private->pdev)
platform_device_unregister(ssi_private->pdev); platform_device_unregister(ssi_private->pdev);
snd_soc_unregister_component(&pdev->dev);
if (ssi_private->soc->imx) if (ssi_private->soc->imx)
fsl_ssi_imx_clean(pdev, ssi_private); fsl_ssi_imx_clean(pdev, ssi_private);
......
...@@ -326,7 +326,7 @@ static int psc_ac97_of_remove(struct platform_device *op) ...@@ -326,7 +326,7 @@ static int psc_ac97_of_remove(struct platform_device *op)
} }
/* Match table for of_platform binding */ /* Match table for of_platform binding */
static struct of_device_id psc_ac97_match[] = { static const struct of_device_id psc_ac97_match[] = {
{ .compatible = "fsl,mpc5200-psc-ac97", }, { .compatible = "fsl,mpc5200-psc-ac97", },
{ .compatible = "fsl,mpc5200b-psc-ac97", }, { .compatible = "fsl,mpc5200b-psc-ac97", },
{} {}
......
...@@ -217,7 +217,7 @@ static int psc_i2s_of_remove(struct platform_device *op) ...@@ -217,7 +217,7 @@ static int psc_i2s_of_remove(struct platform_device *op)
} }
/* Match table for of_platform binding */ /* Match table for of_platform binding */
static struct of_device_id psc_i2s_match[] = { static const struct of_device_id psc_i2s_match[] = {
{ .compatible = "fsl,mpc5200-psc-i2s", }, { .compatible = "fsl,mpc5200-psc-i2s", },
{ .compatible = "fsl,mpc5200b-psc-i2s", }, { .compatible = "fsl,mpc5200b-psc-i2s", },
{} {}
......
...@@ -113,7 +113,7 @@ static int pcm030_fabric_remove(struct platform_device *op) ...@@ -113,7 +113,7 @@ static int pcm030_fabric_remove(struct platform_device *op)
return ret; return ret;
} }
static struct of_device_id pcm030_audio_match[] = { static const struct of_device_id pcm030_audio_match[] = {
{ .compatible = "phytec,pcm030-audio-fabric", }, { .compatible = "phytec,pcm030-audio-fabric", },
{} {}
}; };
......
...@@ -1876,7 +1876,40 @@ static void fsi_handler_init(struct fsi_priv *fsi, ...@@ -1876,7 +1876,40 @@ static void fsi_handler_init(struct fsi_priv *fsi,
} }
} }
static struct of_device_id fsi_of_match[]; static const struct fsi_core fsi1_core = {
.ver = 1,
/* Interrupt */
.int_st = INT_ST,
.iemsk = IEMSK,
.imsk = IMSK,
};
static const struct fsi_core fsi2_core = {
.ver = 2,
/* Interrupt */
.int_st = CPU_INT_ST,
.iemsk = CPU_IEMSK,
.imsk = CPU_IMSK,
.a_mclk = A_MST_CTLR,
.b_mclk = B_MST_CTLR,
};
static const struct of_device_id fsi_of_match[] = {
{ .compatible = "renesas,sh_fsi", .data = &fsi1_core},
{ .compatible = "renesas,sh_fsi2", .data = &fsi2_core},
{},
};
MODULE_DEVICE_TABLE(of, fsi_of_match);
static const struct platform_device_id fsi_id_table[] = {
{ "sh_fsi", (kernel_ulong_t)&fsi1_core },
{ "sh_fsi2", (kernel_ulong_t)&fsi2_core },
{},
};
MODULE_DEVICE_TABLE(platform, fsi_id_table);
static int fsi_probe(struct platform_device *pdev) static int fsi_probe(struct platform_device *pdev)
{ {
struct fsi_master *master; struct fsi_master *master;
...@@ -2072,40 +2105,6 @@ static struct dev_pm_ops fsi_pm_ops = { ...@@ -2072,40 +2105,6 @@ static struct dev_pm_ops fsi_pm_ops = {
.resume = fsi_resume, .resume = fsi_resume,
}; };
static struct fsi_core fsi1_core = {
.ver = 1,
/* Interrupt */
.int_st = INT_ST,
.iemsk = IEMSK,
.imsk = IMSK,
};
static struct fsi_core fsi2_core = {
.ver = 2,
/* Interrupt */
.int_st = CPU_INT_ST,
.iemsk = CPU_IEMSK,
.imsk = CPU_IMSK,
.a_mclk = A_MST_CTLR,
.b_mclk = B_MST_CTLR,
};
static struct of_device_id fsi_of_match[] = {
{ .compatible = "renesas,sh_fsi", .data = &fsi1_core},
{ .compatible = "renesas,sh_fsi2", .data = &fsi2_core},
{},
};
MODULE_DEVICE_TABLE(of, fsi_of_match);
static struct platform_device_id fsi_id_table[] = {
{ "sh_fsi", (kernel_ulong_t)&fsi1_core },
{ "sh_fsi2", (kernel_ulong_t)&fsi2_core },
{},
};
MODULE_DEVICE_TABLE(platform, fsi_id_table);
static struct platform_driver fsi_driver = { static struct platform_driver fsi_driver = {
.driver = { .driver = {
.name = "fsi-pcm-audio", .name = "fsi-pcm-audio",
...@@ -2119,7 +2118,7 @@ static struct platform_driver fsi_driver = { ...@@ -2119,7 +2118,7 @@ static struct platform_driver fsi_driver = {
module_platform_driver(fsi_driver); module_platform_driver(fsi_driver);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL v2");
MODULE_DESCRIPTION("SuperH onchip FSI audio driver"); MODULE_DESCRIPTION("SuperH onchip FSI audio driver");
MODULE_AUTHOR("Kuninori Morimoto <morimoto.kuninori@renesas.com>"); MODULE_AUTHOR("Kuninori Morimoto <morimoto.kuninori@renesas.com>");
MODULE_ALIAS("platform:fsi-pcm-audio"); MODULE_ALIAS("platform:fsi-pcm-audio");
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