Commit 7c62eebb authored by Padmavathi Venna's avatar Padmavathi Venna Committed by Mark Brown

ASoC: samsung: Rename samsung i2s secondary device name

All Samsung SoCs has max 3 i2s controllers. So the i2s secondary fifo
interface device id was named as samsung-i2s.4. Renaming this to
"samsung-i2s-sec" to support device tree in i2s driver.
Signed-off-by: default avatarPadmavathi Venna <padma.v@samsung.com>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 7d1f9aef
...@@ -29,6 +29,11 @@ ...@@ -29,6 +29,11 @@
#define msecs_to_loops(t) (loops_per_jiffy / 1000 * HZ * t) #define msecs_to_loops(t) (loops_per_jiffy / 1000 * HZ * t)
enum samsung_dai_type {
TYPE_PRI,
TYPE_SEC,
};
struct i2s_dai { struct i2s_dai {
/* Platform device for this DAI */ /* Platform device for this DAI */
struct platform_device *pdev; struct platform_device *pdev;
...@@ -981,8 +986,7 @@ static struct i2s_dai *i2s_alloc_dai(struct platform_device *pdev, bool sec) ...@@ -981,8 +986,7 @@ static struct i2s_dai *i2s_alloc_dai(struct platform_device *pdev, bool sec)
i2s->i2s_dai_drv.capture.formats = SAMSUNG_I2S_FMTS; i2s->i2s_dai_drv.capture.formats = SAMSUNG_I2S_FMTS;
} else { /* Create a new platform_device for Secondary */ } else { /* Create a new platform_device for Secondary */
i2s->pdev = platform_device_register_resndata(NULL, i2s->pdev = platform_device_register_resndata(NULL,
pdev->name, pdev->id + SAMSUNG_I2S_SECOFF, "samsung-i2s-sec", -1, NULL, 0, NULL, 0);
NULL, 0, NULL, 0);
if (IS_ERR(i2s->pdev)) if (IS_ERR(i2s->pdev))
return NULL; return NULL;
} }
...@@ -993,6 +997,11 @@ static struct i2s_dai *i2s_alloc_dai(struct platform_device *pdev, bool sec) ...@@ -993,6 +997,11 @@ static struct i2s_dai *i2s_alloc_dai(struct platform_device *pdev, bool sec)
return i2s; return i2s;
} }
static inline int samsung_i2s_get_driver_data(struct platform_device *pdev)
{
return platform_get_device_id(pdev)->driver_data;
}
static int samsung_i2s_probe(struct platform_device *pdev) static int samsung_i2s_probe(struct platform_device *pdev)
{ {
u32 dma_pl_chan, dma_cp_chan, dma_pl_sec_chan; u32 dma_pl_chan, dma_cp_chan, dma_pl_sec_chan;
...@@ -1001,10 +1010,13 @@ static int samsung_i2s_probe(struct platform_device *pdev) ...@@ -1001,10 +1010,13 @@ static int samsung_i2s_probe(struct platform_device *pdev)
struct samsung_i2s *i2s_cfg; struct samsung_i2s *i2s_cfg;
struct resource *res; struct resource *res;
u32 regs_base, quirks; u32 regs_base, quirks;
enum samsung_dai_type samsung_dai_type;
int ret = 0; int ret = 0;
/* Call during Seconday interface registration */ /* Call during Seconday interface registration */
if (pdev->id >= SAMSUNG_I2S_SECOFF) { samsung_dai_type = samsung_i2s_get_driver_data(pdev);
if (samsung_dai_type == TYPE_SEC) {
sec_dai = dev_get_drvdata(&pdev->dev); sec_dai = dev_get_drvdata(&pdev->dev);
snd_soc_register_dai(&sec_dai->pdev->dev, snd_soc_register_dai(&sec_dai->pdev->dev,
&sec_dai->i2s_dai_drv); &sec_dai->i2s_dai_drv);
...@@ -1143,9 +1155,22 @@ static int samsung_i2s_remove(struct platform_device *pdev) ...@@ -1143,9 +1155,22 @@ static int samsung_i2s_remove(struct platform_device *pdev)
return 0; return 0;
} }
static struct platform_device_id samsung_i2s_driver_ids[] = {
{
.name = "samsung-i2s",
.driver_data = TYPE_PRI,
}, {
.name = "samsung-i2s-sec",
.driver_data = TYPE_SEC,
},
{},
};
MODULE_DEVICE_TABLE(platform, samsung-i2s-driver-ids);
static struct platform_driver samsung_i2s_driver = { static struct platform_driver samsung_i2s_driver = {
.probe = samsung_i2s_probe, .probe = samsung_i2s_probe,
.remove = samsung_i2s_remove, .remove = samsung_i2s_remove,
.id_table = samsung_i2s_driver_ids,
.driver = { .driver = {
.name = "samsung-i2s", .name = "samsung-i2s",
.owner = THIS_MODULE, .owner = THIS_MODULE,
......
...@@ -13,13 +13,6 @@ ...@@ -13,13 +13,6 @@
#ifndef __SND_SOC_SAMSUNG_I2S_H #ifndef __SND_SOC_SAMSUNG_I2S_H
#define __SND_SOC_SAMSUNG_I2S_H #define __SND_SOC_SAMSUNG_I2S_H
/*
* Maximum number of I2S blocks that any SoC can have.
* The secondary interface of a CPU dai(if there exists any),
* is indexed at [cpu-dai's ID + SAMSUNG_I2S_SECOFF]
*/
#define SAMSUNG_I2S_SECOFF 4
#define SAMSUNG_I2S_DIV_BCLK 1 #define SAMSUNG_I2S_DIV_BCLK 1
#define SAMSUNG_I2S_RCLKSRC_0 0 #define SAMSUNG_I2S_RCLKSRC_0 0
......
...@@ -193,9 +193,9 @@ static struct snd_soc_dai_link smdk_dai[] = { ...@@ -193,9 +193,9 @@ static struct snd_soc_dai_link smdk_dai[] = {
[SEC_PLAYBACK] = { /* Sec_Fifo Playback i/f */ [SEC_PLAYBACK] = { /* Sec_Fifo Playback i/f */
.name = "Sec_FIFO TX", .name = "Sec_FIFO TX",
.stream_name = "Playback", .stream_name = "Playback",
.cpu_dai_name = "samsung-i2s.x", .cpu_dai_name = "samsung-i2s-sec",
.codec_dai_name = "wm8580-hifi-playback", .codec_dai_name = "wm8580-hifi-playback",
.platform_name = "samsung-i2s.x", .platform_name = "samsung-i2s-sec",
.codec_name = "wm8580.0-001b", .codec_name = "wm8580.0-001b",
.ops = &smdk_ops, .ops = &smdk_ops,
}, },
...@@ -223,9 +223,6 @@ static int __init smdk_audio_init(void) ...@@ -223,9 +223,6 @@ static int __init smdk_audio_init(void)
if (machine_is_smdkc100() if (machine_is_smdkc100()
|| machine_is_smdkv210() || machine_is_smdkc110()) { || machine_is_smdkv210() || machine_is_smdkc110()) {
smdk.num_links = 3; smdk.num_links = 3;
/* Secondary is at offset SAMSUNG_I2S_SECOFF from Primary */
str = (char *)smdk_dai[SEC_PLAYBACK].cpu_dai_name;
str[strlen(str) - 1] = '0' + SAMSUNG_I2S_SECOFF;
} else if (machine_is_smdk6410()) { } else if (machine_is_smdk6410()) {
str = (char *)smdk_dai[PRI_PLAYBACK].cpu_dai_name; str = (char *)smdk_dai[PRI_PLAYBACK].cpu_dai_name;
str[strlen(str) - 1] = '2'; str[strlen(str) - 1] = '2';
......
...@@ -134,9 +134,9 @@ static struct snd_soc_dai_link smdk_dai[] = { ...@@ -134,9 +134,9 @@ static struct snd_soc_dai_link smdk_dai[] = {
}, { /* Sec_Fifo Playback i/f */ }, { /* Sec_Fifo Playback i/f */
.name = "Sec_FIFO TX", .name = "Sec_FIFO TX",
.stream_name = "Sec_Dai", .stream_name = "Sec_Dai",
.cpu_dai_name = "samsung-i2s.4", .cpu_dai_name = "samsung-i2s-sec",
.codec_dai_name = "wm8994-aif1", .codec_dai_name = "wm8994-aif1",
.platform_name = "samsung-i2s.4", .platform_name = "samsung-i2s-sec",
.codec_name = "wm8994-codec", .codec_name = "wm8994-codec",
.ops = &smdk_ops, .ops = &smdk_ops,
}, },
......
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