static int __init smdk_audio_init(void) { int ret; char *str; if (machine_is_smdkc100() || machine_is_smdkv210() || machine_is_smdkc110()) { 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()) { str = (char *)smdk_dai[PRI_PLAYBACK].cpu_dai_name; str[strlen(str) - 1] = '2'; str = (char *)smdk_dai[PRI_CAPTURE].cpu_dai_name; str[strlen(str) - 1] = '2'; } smdk_snd_device = platform_device_alloc("soc-audio", -1); if (!smdk_snd_device) return -ENOMEM; platform_set_drvdata(smdk_snd_device, &smdk); ret = platform_device_add(smdk_snd_device); if (ret) platform_device_put(smdk_snd_device); return ret; }
/* * After SMDKC110 Base Board's Rev is '0.1', 12MHz External OSC(X1) * is absent (or not connected), so we connect EXT_VOICE_CLK(OSC4), * 2.0484Mhz, directly with MCLK both Codec and SoC. */ static int snd_smdk_probe(struct platform_device *pdev) { int ret = 0; xtal_freq = SMDK_WM8580_EXT_OSC; mclk_freq = SMDK_WM8580_EXT_MCLK; if (machine_is_smdkc110() || machine_is_smdkv210()) xtal_freq = mclk_freq = SMDK_WM8580_EXT_VOICE; smdk_pcm.dev = &pdev->dev; ret = devm_snd_soc_register_card(&pdev->dev, &smdk_pcm); if (ret) dev_err(&pdev->dev, "snd_soc_register_card failed %d\n", ret); return ret; }
static int __init smdk_audio_init(void) { int ret; char *str; //ToDO: Need to do further implementation #if 0 if (machine_is_smdkc100() || machine_is_smdkv210() || machine_is_smdkc110()) { if(1){ 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()) { str = (char *)smdk_dai[PRI_PLAYBACK].cpu_dai_name; str[strlen(str) - 1] = '2'; str = (char *)smdk_dai[PRI_CAPTURE].cpu_dai_name; str[strlen(str) - 1] = '2'; } #endif smdk_snd_device = platform_device_alloc("soc-audio", -1); if (!smdk_snd_device) return -ENOMEM; platform_set_drvdata(smdk_snd_device, &smdk); ret = platform_device_add(smdk_snd_device); if (ret){ platform_device_put(smdk_snd_device); } return ret; } module_init(smdk_audio_init); static void __exit smdk_audio_exit(void) { platform_device_unregister(smdk_snd_device); }