On Tue, Jan 27, 2009 at 06:22:25PM +0200, Vasily Khoruzhick wrote: > Btw, on rx1950 there're 4 gpio pins involved: > GPJ0 controls codec power > GPA1 controls amplifier power > GPG12 is jack sense pin, it's value depends whether headphone jack is inserted You might want to have a look at the jack reporting API that was recently added, it should save you a bit of code: http://git.kernel.org/?p=linux/kernel/git/broonie/sound-2.6.git;a=commit;h=8a2cd6180f8fa00111843c2f4a4f4361995358e0 It'll need a little helper for GPIOs adding to the core but that should be reusable. > down(&rx1950_power_mutex); > printk("%s: enable == %d\n", __func__, enable); > if (enable) { > if (s3c2410_gpio_getpin(S3C2440_GPJ0)) > goto done; > //spin_lock(&cmpl_lock); > //waiting_for_completion = 1; > //spin_unlock(&cmpl_lock); > s3c2410_gpio_setpin(S3C2410_GPD0, 0); > s3c2410_gpio_setpin(S3C2440_GPJ0, 0); > s3c2410_gpio_setpin(S3C2440_GPJ0, 1); > > /* Wait for EINT20 irq to ensure uda1380 is powered */ > //printk("%s: waiting for compeltion...\n", __func__); > //wait_for_completion(&rx1950_sound_completion); > //printk("%s: completed\n", __func__); > //printk("%s: GPG12: %d\n", __func__, > // s3c2410_gpio_getpin(S3C2410_GPG12)); > mdelay(50); > s3c2410_gpio_setpin(S3C2410_GPD0, 1); > s3c2410_gpio_setpin(S3C2410_GPD0, 0); Hrm. The completion makes this look more like it could use a full blown regulator - it's certainly a pattern that will get reused often enough. > /* configure some gpios */ > s3c2410_gpio_cfgpin(S3C2410_GPD0, S3C2410_GPIO_OUTPUT); > s3c2410_gpio_cfgpin(S3C2410_GPG12, S3C2410_GPIO_IRQ); > s3c2410_gpio_cfgpin(S3C2440_GPJ0, S3C2410_GPIO_OUTPUT); The S3C24xx now supports gpiolib so you should be able to use that - the platform specific GPIO API will probably get killed at some point. _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel