Implement tea5767 tuner detection - FS#11714 by me
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28493 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
f174c3513b
commit
981a639ade
3 changed files with 25 additions and 2 deletions
|
@ -34,6 +34,7 @@
|
|||
#define I2C_ADR 0xC0
|
||||
#endif
|
||||
|
||||
static bool tuner_present = true;
|
||||
static unsigned char write_bytes[5] = { 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||
|
||||
static void tea5767_set_clear(int byte, unsigned char bits, int set)
|
||||
|
@ -116,7 +117,7 @@ int tea5767_get(int setting)
|
|||
switch(setting)
|
||||
{
|
||||
case RADIO_PRESENT:
|
||||
val = 1; /* true */
|
||||
val = tuner_present;
|
||||
break;
|
||||
|
||||
case RADIO_TUNED:
|
||||
|
@ -136,6 +137,26 @@ int tea5767_get(int setting)
|
|||
return val;
|
||||
}
|
||||
|
||||
void tea5767_init(void)
|
||||
{
|
||||
/* save binsize by only detecting presence for targets where it may be absent */
|
||||
#if defined(PHILIPS_HDD1630)
|
||||
unsigned char buf[5];
|
||||
unsigned char chipid;
|
||||
|
||||
/* init chipid register with 0xFF in case fmradio_i2c_read fails silently */
|
||||
buf[3] = 0xFF;
|
||||
if (fmradio_i2c_read(I2C_ADR, buf, sizeof(buf)) < 0) {
|
||||
/* no i2c device detected */
|
||||
tuner_present = false;
|
||||
} else {
|
||||
/* check chip id */
|
||||
chipid = buf[3] & 0x0F;
|
||||
tuner_present = (chipid == 0);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void tea5767_dbg_info(struct tea5767_dbg_info *info)
|
||||
{
|
||||
fmradio_i2c_read(I2C_ADR, info->read_regs, 5);
|
||||
|
|
|
@ -32,6 +32,7 @@ struct tea5767_dbg_info
|
|||
unsigned char write_regs[5];
|
||||
};
|
||||
|
||||
void tea5767_init(void);
|
||||
int tea5767_set(int setting, int value);
|
||||
int tea5767_get(int setting);
|
||||
void tea5767_dbg_info(struct tea5767_dbg_info *info);
|
||||
|
|
|
@ -74,7 +74,8 @@ void tuner_init(void)
|
|||
#if (CONFIG_TUNER & TEA5767)
|
||||
TUNER_TYPE_CASE(TEA5767,
|
||||
tea5767_set,
|
||||
tea5767_get)
|
||||
tea5767_get,
|
||||
tea5767_init())
|
||||
#endif
|
||||
#if (CONFIG_TUNER & S1A0903X01)
|
||||
TUNER_TYPE_CASE(S1A0903X01,
|
||||
|
|
Loading…
Reference in a new issue