diff options
Diffstat (limited to 'firmware/target/coldfire/i2c-coldfire.c')
-rw-r--r-- | firmware/target/coldfire/i2c-coldfire.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/firmware/target/coldfire/i2c-coldfire.c b/firmware/target/coldfire/i2c-coldfire.c index 06c196792f..83d8db4048 100644 --- a/firmware/target/coldfire/i2c-coldfire.c +++ b/firmware/target/coldfire/i2c-coldfire.c | |||
@@ -56,15 +56,16 @@ void i2c_init(void) | |||
56 | 56 | ||
57 | /* I2C Clock divisor = 160 => 124.1556 MHz / 2 / 160 = 388.08 kHz */ | 57 | /* I2C Clock divisor = 160 => 124.1556 MHz / 2 / 160 = 388.08 kHz */ |
58 | MFDR = 0x0d; | 58 | MFDR = 0x0d; |
59 | MFDR2 = 0x0d; | ||
60 | 59 | ||
61 | #if defined(IAUDIO_X5) || defined(IAUDIO_M5) | 60 | #if defined(IAUDIO_M3) |
62 | MBCR = IEN; /* Enable interface */ | 61 | MBCR = IEN; /* Enable interface 1 */ |
63 | MBCR2 = IEN; | 62 | /* secondary channel is handled in the interrupt driven ADC driver */ |
64 | #endif | 63 | #elif defined(IAUDIO_X5) || defined(IAUDIO_M5) |
64 | MBCR = IEN; /* Enable interface 1 */ | ||
65 | 65 | ||
66 | #if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES) | 66 | MFDR2 = 0x0d; |
67 | /* Audio Codec */ | 67 | MBCR2 = IEN; /* Enable interface 2 */ |
68 | #elif defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES) | ||
68 | MBDR = 0; /* iRiver firmware does this */ | 69 | MBDR = 0; /* iRiver firmware does this */ |
69 | MBCR = IEN; /* Enable interface */ | 70 | MBCR = IEN; /* Enable interface */ |
70 | #endif | 71 | #endif |
@@ -156,7 +157,7 @@ int i2c_read(volatile unsigned char *iface, unsigned char addr, | |||
156 | iface[O_MBCR] |= TXAK; | 157 | iface[O_MBCR] |= TXAK; |
157 | else if (i == 1) | 158 | else if (i == 1) |
158 | /* Generate STOP before reading last byte received */ | 159 | /* Generate STOP before reading last byte received */ |
159 | i2c_stop(iface); | 160 | i2c_stop(iface); |
160 | 161 | ||
161 | *buf++ = iface[O_MBDR]; | 162 | *buf++ = iface[O_MBDR]; |
162 | } | 163 | } |