summaryrefslogtreecommitdiff
path: root/firmware/drivers/i2c.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers/i2c.c')
-rw-r--r--firmware/drivers/i2c.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/firmware/drivers/i2c.c b/firmware/drivers/i2c.c
index f5e8cb5240..ed12145da9 100644
--- a/firmware/drivers/i2c.c
+++ b/firmware/drivers/i2c.c
@@ -24,7 +24,7 @@
24#include "system.h" 24#include "system.h"
25 25
26/* cute little functions, atomic read-modify-write */ 26/* cute little functions, atomic read-modify-write */
27#ifdef HAVE_GMINI_I2C 27#if CONFIG_I2C == I2C_GMINI
28 28
29/* This is done like this in the Archos' firmware. 29/* This is done like this in the Archos' firmware.
30 * However, the TCC370 has an integrated I2C 30 * However, the TCC370 has an integrated I2C
@@ -43,7 +43,7 @@
43#define SCL_OUTPUT (P3CONH |= 0x01) 43#define SCL_OUTPUT (P3CONH |= 0x01)
44#define SCL (P3 & 0x10) 44#define SCL (P3 & 0x10)
45 45
46#else 46#else /* non Gmini below */
47 47
48/* SDA is PB7 */ 48/* SDA is PB7 */
49#define SDA_LO and_b(~0x80, &PBDRL) 49#define SDA_LO and_b(~0x80, &PBDRL)
@@ -52,7 +52,7 @@
52#define SDA_OUTPUT or_b(0x80, &PBIORL) 52#define SDA_OUTPUT or_b(0x80, &PBIORL)
53#define SDA (PBDR & 0x80) 53#define SDA (PBDR & 0x80)
54 54
55#ifdef HAVE_ONDIO_I2C 55#if CONFIG_I2C == I2C_ONDIO
56/* Ondio pinout, SCL moved to PB6 */ 56/* Ondio pinout, SCL moved to PB6 */
57#define SCL_INPUT and_b(~0x40, &PBIORL) 57#define SCL_INPUT and_b(~0x40, &PBIORL)
58#define SCL_OUTPUT or_b(0x40, &PBIORL) 58#define SCL_OUTPUT or_b(0x40, &PBIORL)
@@ -67,7 +67,7 @@
67#define SCL_HI or_b(0x20, &PBDRH) 67#define SCL_HI or_b(0x20, &PBDRH)
68#define SCL (PBDR & 0x2000) 68#define SCL (PBDR & 0x2000)
69#endif 69#endif
70#endif 70#endif /* ! I2C_GMINI */
71 71
72/* arbitrary delay loop */ 72/* arbitrary delay loop */
73#define DELAY do { int _x; for(_x=0;_x<20;_x++);} while (0) 73#define DELAY do { int _x; for(_x=0;_x<20;_x++);} while (0)
@@ -106,14 +106,14 @@ void i2c_init(void)
106{ 106{
107 int i; 107 int i;
108 108
109#ifdef HAVE_GMINI_I2C 109#if CONFIG_I2C == I2C_GMINI
110 SCL_INPUT; 110 SCL_INPUT;
111 SDA_INPUT; 111 SDA_INPUT;
112#else 112#else
113#ifdef HAVE_ONDIO_I2C 113#if CONFIG_I2C == I2C_ONDIO
114 /* make PB5, PB6 & PB7 general I/O */ 114 /* make PB5, PB6 & PB7 general I/O */
115 PBCR2 &= ~0xfc00; /* includes PB5, see FIXME below */ 115 PBCR2 &= ~0xfc00; /* includes PB5, see FIXME below */
116#else 116#else /* not Gmini, not Ondio */
117 /* make PB5, PB7 & PB13 general I/O */ 117 /* make PB5, PB7 & PB13 general I/O */
118 PBCR1 &= ~0x0c00; /* PB13 */ 118 PBCR1 &= ~0x0c00; /* PB13 */
119 PBCR2 &= ~0xcc00; /* PB5 and PB7, see FIXME below */ 119 PBCR2 &= ~0xcc00; /* PB5 and PB7, see FIXME below */
@@ -124,7 +124,7 @@ void i2c_init(void)
124 /* for Recorders, it shuts off the charger, for FM/V2 it holds power */ 124 /* for Recorders, it shuts off the charger, for FM/V2 it holds power */
125 or_b(0x20, &PBIORL); 125 or_b(0x20, &PBIORL);
126 or_b(0x20, &PBDRL); 126 or_b(0x20, &PBDRL);
127#endif 127#endif /* end of non-Gmini */
128 128
129 SCL_OUTPUT; 129 SCL_OUTPUT;
130 SDA_OUTPUT; 130 SDA_OUTPUT;