summaryrefslogtreecommitdiff
path: root/firmware/target/coldfire/i2c-coldfire.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/coldfire/i2c-coldfire.c')
-rw-r--r--firmware/target/coldfire/i2c-coldfire.c17
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 }