|
@@ -58,27 +58,23 @@ static struct platform_device *fsi_snd_device;
|
|
|
static int fsi_ak4642_probe(struct platform_device *pdev)
|
|
|
{
|
|
|
int ret = -ENOMEM;
|
|
|
- const struct platform_device_id *id_entry;
|
|
|
- struct fsi_ak4642_data *pdata;
|
|
|
+ struct fsi_ak4642_info *pinfo = pdev->dev.platform_data;
|
|
|
|
|
|
- id_entry = pdev->id_entry;
|
|
|
- if (!id_entry) {
|
|
|
- dev_err(&pdev->dev, "unknown fsi ak4642\n");
|
|
|
- return -ENODEV;
|
|
|
+ if (!pinfo) {
|
|
|
+ dev_err(&pdev->dev, "no info for fsi ak4642\n");
|
|
|
+ goto out;
|
|
|
}
|
|
|
|
|
|
- pdata = (struct fsi_ak4642_data *)id_entry->driver_data;
|
|
|
-
|
|
|
- fsi_snd_device = platform_device_alloc("soc-audio", pdata->id);
|
|
|
+ fsi_snd_device = platform_device_alloc("soc-audio", pinfo->id);
|
|
|
if (!fsi_snd_device)
|
|
|
goto out;
|
|
|
|
|
|
- fsi_dai_link.name = pdata->name;
|
|
|
- fsi_dai_link.stream_name = pdata->name;
|
|
|
- fsi_dai_link.cpu_dai_name = pdata->cpu_dai;
|
|
|
- fsi_dai_link.platform_name = pdata->platform;
|
|
|
- fsi_dai_link.codec_name = pdata->codec;
|
|
|
- fsi_soc_card.name = pdata->card;
|
|
|
+ fsi_dai_link.name = pinfo->name;
|
|
|
+ fsi_dai_link.stream_name = pinfo->name;
|
|
|
+ fsi_dai_link.cpu_dai_name = pinfo->cpu_dai;
|
|
|
+ fsi_dai_link.platform_name = pinfo->platform;
|
|
|
+ fsi_dai_link.codec_name = pinfo->codec;
|
|
|
+ fsi_soc_card.name = pinfo->card;
|
|
|
|
|
|
platform_set_drvdata(fsi_snd_device, &fsi_soc_card);
|
|
|
ret = platform_device_add(fsi_snd_device);
|
|
@@ -96,100 +92,12 @@ static int fsi_ak4642_remove(struct platform_device *pdev)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static struct fsi_ak4642_data fsi_a_ak4642 = {
|
|
|
- .name = "AK4642",
|
|
|
- .card = "FSIA-AK4642",
|
|
|
- .cpu_dai = "fsia-dai",
|
|
|
- .codec = "ak4642-codec.0-0012",
|
|
|
- .platform = "sh_fsi.0",
|
|
|
- .id = FSI_PORT_A,
|
|
|
-};
|
|
|
-
|
|
|
-static struct fsi_ak4642_data fsi_b_ak4642 = {
|
|
|
- .name = "AK4642",
|
|
|
- .card = "FSIB-AK4642",
|
|
|
- .cpu_dai = "fsib-dai",
|
|
|
- .codec = "ak4642-codec.0-0012",
|
|
|
- .platform = "sh_fsi.0",
|
|
|
- .id = FSI_PORT_B,
|
|
|
-};
|
|
|
-
|
|
|
-static struct fsi_ak4642_data fsi_a_ak4643 = {
|
|
|
- .name = "AK4643",
|
|
|
- .card = "FSIA-AK4643",
|
|
|
- .cpu_dai = "fsia-dai",
|
|
|
- .codec = "ak4642-codec.0-0013",
|
|
|
- .platform = "sh_fsi.0",
|
|
|
- .id = FSI_PORT_A,
|
|
|
-};
|
|
|
-
|
|
|
-static struct fsi_ak4642_data fsi_b_ak4643 = {
|
|
|
- .name = "AK4643",
|
|
|
- .card = "FSIB-AK4643",
|
|
|
- .cpu_dai = "fsib-dai",
|
|
|
- .codec = "ak4642-codec.0-0013",
|
|
|
- .platform = "sh_fsi.0",
|
|
|
- .id = FSI_PORT_B,
|
|
|
-};
|
|
|
-
|
|
|
-static struct fsi_ak4642_data fsi2_a_ak4642 = {
|
|
|
- .name = "AK4642",
|
|
|
- .card = "FSI2A-AK4642",
|
|
|
- .cpu_dai = "fsia-dai",
|
|
|
- .codec = "ak4642-codec.0-0012",
|
|
|
- .platform = "sh_fsi2",
|
|
|
- .id = FSI_PORT_A,
|
|
|
-};
|
|
|
-
|
|
|
-static struct fsi_ak4642_data fsi2_b_ak4642 = {
|
|
|
- .name = "AK4642",
|
|
|
- .card = "FSI2B-AK4642",
|
|
|
- .cpu_dai = "fsib-dai",
|
|
|
- .codec = "ak4642-codec.0-0012",
|
|
|
- .platform = "sh_fsi2",
|
|
|
- .id = FSI_PORT_B,
|
|
|
-};
|
|
|
-
|
|
|
-static struct fsi_ak4642_data fsi2_a_ak4643 = {
|
|
|
- .name = "AK4643",
|
|
|
- .card = "FSI2A-AK4643",
|
|
|
- .cpu_dai = "fsia-dai",
|
|
|
- .codec = "ak4642-codec.0-0013",
|
|
|
- .platform = "sh_fsi2",
|
|
|
- .id = FSI_PORT_A,
|
|
|
-};
|
|
|
-
|
|
|
-static struct fsi_ak4642_data fsi2_b_ak4643 = {
|
|
|
- .name = "AK4643",
|
|
|
- .card = "FSI2B-AK4643",
|
|
|
- .cpu_dai = "fsib-dai",
|
|
|
- .codec = "ak4642-codec.0-0013",
|
|
|
- .platform = "sh_fsi2",
|
|
|
- .id = FSI_PORT_B,
|
|
|
-};
|
|
|
-
|
|
|
-static struct platform_device_id fsi_id_table[] = {
|
|
|
- /* FSI */
|
|
|
- { "sh_fsi_a_ak4642", (kernel_ulong_t)&fsi_a_ak4642 },
|
|
|
- { "sh_fsi_b_ak4642", (kernel_ulong_t)&fsi_b_ak4642 },
|
|
|
- { "sh_fsi_a_ak4643", (kernel_ulong_t)&fsi_a_ak4643 },
|
|
|
- { "sh_fsi_b_ak4643", (kernel_ulong_t)&fsi_b_ak4643 },
|
|
|
-
|
|
|
- /* FSI 2 */
|
|
|
- { "sh_fsi2_a_ak4642", (kernel_ulong_t)&fsi2_a_ak4642 },
|
|
|
- { "sh_fsi2_b_ak4642", (kernel_ulong_t)&fsi2_b_ak4642 },
|
|
|
- { "sh_fsi2_a_ak4643", (kernel_ulong_t)&fsi2_a_ak4643 },
|
|
|
- { "sh_fsi2_b_ak4643", (kernel_ulong_t)&fsi2_b_ak4643 },
|
|
|
- {},
|
|
|
-};
|
|
|
-
|
|
|
static struct platform_driver fsi_ak4642 = {
|
|
|
.driver = {
|
|
|
.name = "fsi-ak4642-audio",
|
|
|
},
|
|
|
.probe = fsi_ak4642_probe,
|
|
|
.remove = fsi_ak4642_remove,
|
|
|
- .id_table = fsi_id_table,
|
|
|
};
|
|
|
|
|
|
static int __init fsi_ak4642_init(void)
|