static int __init assabet_uda1341_init(void) { int ret; if (!machine_is_assabet()) return -ENODEV; ret = l3_attach_client(&uda1341, "l3-bit-sa1100-gpio", "uda1341"); if (ret) goto out; /* register devices */ audio_dev_id = register_sound_dsp(&assabet_audio_fops, -1); mixer_dev_id = register_sound_mixer(&assabet_mixer_fops, -1); #ifdef FIX_POWER_DRAIN { unsigned long flags; local_irq_save(flags); ASSABET_BCR_set(ASSABET_BCR_CODEC_RST); GPSR = GPIO_SSP_SFRM; GPDR |= GPIO_SSP_SFRM; GPCR = GPIO_SSP_SFRM; local_irq_restore(flags); } #endif printk(KERN_INFO "Assabet UDA1341 audio driver initialized\n"); return 0; release_l3: l3_detach_client(&uda1341); out: return ret; }
static int __init pangolin_uda1341_init(void) { unsigned long flags; int ret; if (!machine_is_pangolin()) return -ENODEV; ret = l3_attach_client(&uda1341, "l3-bit-sa1100-gpio", "uda1341"); if (ret) goto out; /* register devices */ audio_dev_id = register_sound_dsp(&pangolin_audio_fops, -1); mixer_dev_id = register_sound_mixer(&pangolin_mixer_fops, -1); local_irq_save(flags); GAFR &= ~(SpeakerOffPin | QmutePin); GPDR |= (SpeakerOffPin | QmutePin); local_irq_restore(flags); printk(KERN_INFO "Pangolin UDA1341 audio driver initialized\n"); return 0; release_l3: l3_detach_client(&uda1341); out: return ret; }
static int h3x00_audio_probe(struct device *_dev) { int ret; ret = l3_attach_client(&uda1341, "l3-bit-sa1100-gpio", "uda1341"); if (ret) goto out; /* register devices */ audio_dev_id = register_sound_dsp(&h3600_audio_fops, -1); mixer_dev_id = register_sound_mixer(&h3600_mixer_fops, -1); printk( KERN_INFO "iPAQ audio support initialized\n" ); out: return ret; }
static int __init omap1510_uda1341_init(void) { int ret; printk(__FUNCTION__ "called\n"); ret = l3_attach_client(&uda1341, "l3-bit-omap1510-gpio", "uda1341"); if (ret) goto out; /* register devices */ audio_dev_id = register_sound_dsp(&omap1510_audio_fops, -1); mixer_dev_id = register_sound_mixer(&omap1510_mixer_fops, -1); printk( KERN_INFO "OMAP1510 audio support initialized\n" ); return 0; out: return ret; }
static int __init sa1111_uda1341_init(void) { struct uda1341_cfg cfg; int ret; if ( !( (machine_is_assabet() && machine_has_neponset()) || machine_is_jornada720() )) return -ENODEV; ret = l3_attach_client(&uda1341, "l3-sa1111", "uda1341"); if (ret) goto out; /* Acquire and initialize DMA */ ret = sa1111_sac_request_dma(&output_stream.dma_ch, "SA1111 audio out", SA1111_SAC_XMT_CHANNEL); if (ret < 0) goto release_l3; ret = sa1111_sac_request_dma(&input_stream.dma_ch, "SA1111 audio in", SA1111_SAC_RCV_CHANNEL); if (ret < 0) goto release_dma; cfg.fs = 256; cfg.format = FMT_I2S; l3_command(&uda1341, L3_UDA1341_CONFIGURE, &cfg); /* register devices */ audio_dev_id = register_sound_dsp(&sa1111_audio_fops, -1); mixer_dev_id = register_sound_mixer(&uda1341_mixer_fops, -1); printk(KERN_INFO "SA1111 UDA1341 audio driver initialized\n"); return 0; release_dma: sa1100_free_dma(output_stream.dma_ch); release_l3: l3_detach_client(&uda1341); out: return ret; }
static int __init h3600_uda1341_init(void) { int ret; if (!machine_is_h3xxx()) return -ENODEV; ret = l3_attach_client(&uda1341, "l3-bit-sa1100-gpio", "uda1341"); if (ret) goto out; /* register devices */ audio_dev_id = register_sound_dsp(&h3600_audio_fops, -1); mixer_dev_id = register_sound_mixer(&h3600_mixer_fops, -1); printk( KERN_INFO "iPAQ audio support initialized\n" ); return 0; release_l3: l3_detach_client(&uda1341); out: return ret; }