20 Mar
2012
20 Mar
'12
5 p.m.
On Tue, Mar 20, 2012 at 05:03:50PM +0530, Rajeev Kumar wrote:
The patch add support for SPEAr ASoC machine driver.
This is the support for some particular board rather than for the SoC.
- if (cpu_is_spear1340()) {
+#ifdef CONFIG_CPU_SPEAR1340
u32 mode = 0;
u32 val = readl(VA_SPEAR1340_PERIP_CFG);
Ick, no! This should be in a driver for the SoC somewhere, not in the board. I've not really read most of the rest of the driver.
+static int __init spear_audio_init(void) +{
- int ret;
- struct snd_soc_card *spear_soc_card;
- if (machine_is_spear1340_lcad())
spear_soc_card = &lcad_snd_card;
- else if (cpu_is_spear1340())
spear_soc_card = &spear1340_snd_card;
- else if (cpu_is_spear320())
spear_soc_card = &spear320s_snd_card;
- else
spear_soc_card = &spear_snd_card;
Use snd_soc_register_card().
+#if defined(CONFIG_CPU_SPEAR1340)
- if (cpu_is_spear1340()) {
/* Create and register spdif platform devices */
spdif_dit_device = platform_device_alloc("spdif-dit", -1);
if (!spdif_dit_device) {
printk(KERN_ERR "spdif transceiver " \
"platform_device_alloc fails\n");
return -ENOMEM;
}
Absolutely no, all this setup of the devices for the SoC should be in your arch/arm code somewhere. This should only be a driver for the board.