Commit 1dc7df4d authored by Marcel Hasler's avatar Marcel Hasler Committed by Mauro Carvalho Chehab

[media] stk1160: Check whether to use AC97 codec

Some STK1160-based devices use the chip's internal 8-bit ADC. This is
configured through a strap pin. The value of this and other pins can be
read through the POSVA register. If the internal ADC is used, or if
audio is disabled altogether, there's no point trying to setup the AC97
codec.
Signed-off-by: default avatarMarcel Hasler <mahasler@gmail.com>
Acked-by: default avatarEzequiel Garcia <ezequiel@vanguardiasur.com.ar>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent e36e6b5f
......@@ -91,8 +91,34 @@ void stk1160_ac97_dump_regs(struct stk1160 *dev)
}
#endif
int stk1160_has_audio(struct stk1160 *dev)
{
u8 value;
stk1160_read_reg(dev, STK1160_POSV_L, &value);
return !(value & STK1160_POSV_L_ACDOUT);
}
int stk1160_has_ac97(struct stk1160 *dev)
{
u8 value;
stk1160_read_reg(dev, STK1160_POSV_L, &value);
return !(value & STK1160_POSV_L_ACSYNC);
}
void stk1160_ac97_setup(struct stk1160 *dev)
{
if (!stk1160_has_audio(dev)) {
stk1160_info("Device doesn't support audio, skipping AC97 setup.");
return;
}
if (!stk1160_has_ac97(dev)) {
stk1160_info("Device uses internal 8-bit ADC, skipping AC97 setup.");
return;
}
/* Two-step reset AC97 interface and hardware codec */
stk1160_write_reg(dev, STK1160_AC97CTL_0, 0x94);
stk1160_write_reg(dev, STK1160_AC97CTL_0, 0x8c);
......
......@@ -20,8 +20,7 @@
*
* TODO:
*
* 1. (Try to) detect if we must register ac97 mixer
* 2. Support stream at lower speed: lower frame rate or lower frame size.
* 1. Support stream at lower speed: lower frame rate or lower frame size.
*
*/
......
......@@ -26,6 +26,14 @@
/* Remote Wakup Control */
#define STK1160_RMCTL 0x00c
/* Power-on Strapping Data */
#define STK1160_POSVA 0x010
#define STK1160_POSV_L 0x010
#define STK1160_POSV_M 0x011
#define STK1160_POSV_H 0x012
#define STK1160_POSV_L_ACDOUT BIT(3)
#define STK1160_POSV_L_ACSYNC BIT(2)
/*
* Decoder Control Register:
* This byte controls capture start/stop
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment