summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Gmeiner <christian.gmeiner@gmail.com>2005-07-31 17:31:33 +0000
committerChristian Gmeiner <christian.gmeiner@gmail.com>2005-07-31 17:31:33 +0000
commit4894a06a152fc0da99d8812958c3eb60d40de610 (patch)
tree859d3848ebf0f007a3fbba0e51801d254fdd2495
parent6109a3b0bee921ffe4f2a4cd06b5b8dcbc9bfe1f (diff)
downloadrockbox-4894a06a152fc0da99d8812958c3eb60d40de610.zip
rockbox-4894a06a152fc0da99d8812958c3eb60d40de610.tar.gz
rockbox-4894a06a152fc0da99d8812958c3eb60d40de610.tar.bz2
rockbox-4894a06a152fc0da99d8812958c3eb60d40de610.tar.xz
iAudio, iRiver: As both platforms use the same i2c interface i have renamed i2c-h100.c/h to i2c-coldfire.c/h. Also i have changed some stuff in config.h and config-xx.h. Hope everybody agrees with this patch, else we can unroll and improve it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7271 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/SOURCES4
-rw-r--r--firmware/drivers/i2c-coldfire.c (renamed from firmware/drivers/i2c-h100.c)34
-rw-r--r--firmware/export/config-h100.h3
-rw-r--r--firmware/export/config-h120.h3
-rw-r--r--firmware/export/config-h300.h3
-rw-r--r--firmware/export/config-iaudiox5.h5
-rw-r--r--firmware/export/config.h3
-rw-r--r--firmware/export/i2c-coldfire.h (renamed from firmware/export/i2c-h100.h)6
8 files changed, 32 insertions, 29 deletions
diff --git a/firmware/SOURCES b/firmware/SOURCES
index 06b4ce0..937bb0b 100644
--- a/firmware/SOURCES
+++ b/firmware/SOURCES
@@ -79,8 +79,8 @@ drivers/fmradio_i2c.c
tuner_philips.c
#endif
#endif
-#if CONFIG_I2C == I2C_H100
-drivers/i2c-h100.c
+#if CONFIG_I2C == I2C_COLDFIRE
+drivers/i2c-coldfire.c
#else
drivers/i2c.c
#endif
diff --git a/firmware/drivers/i2c-h100.c b/firmware/drivers/i2c-coldfire.c
index c50cd7e..5b4f4a1 100644
--- a/firmware/drivers/i2c-h100.c
+++ b/firmware/drivers/i2c-coldfire.c
@@ -21,7 +21,7 @@
#include "kernel.h"
#include "debug.h"
#include "system.h"
-#include "i2c-h100.h"
+#include "i2c-coldfire.h"
#define I2C_DEVICE_1 ((volatile unsigned char *)&MADR)
#define I2C_DEVICE_2 ((volatile unsigned char *)&MADR2)
@@ -37,6 +37,7 @@ static volatile unsigned char *i2c_get_addr(int device);
void i2c_init(void)
{
+#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD)
/* Audio Codec */
MADR = 0x6c; /* iRiver firmware uses this addr */
MBDR = 0; /* iRiver firmware does this */
@@ -48,22 +49,21 @@ void i2c_init(void)
MBDR2 = 0;
MBCR2 = IEN;
#endif
+
+#endif
}
void i2c_close(void)
{
MBCR = 0;
-
-#if 0
MBCR2 = 0;
-#endif
}
/**
* Writes bytes to the selected device.
*
- * Use device=1 for bus 1 at 0x40000280 (Audio Codec)
- * Use device=2 for bus 2 at 0x80000440 (Tuner ?)
+ * Use device=1 for bus 1 at 0x40000280
+ * Use device=2 for bus 2 at 0x80000440
*
* Returns number of bytes successfully send or -1 if START failed
*/
@@ -106,33 +106,33 @@ int i2c_write_byte(int device, unsigned char data)
/* Wait for bus busy */
while (!(regs[O_MBSR] & IBB) && count < MAX_LOOP)
{
- yield();
+ yield();
count++;
}
-
+
if (count >= MAX_LOOP)
return -1;
count = 0;
-
+
/* Wait for interrupt flag */
while (!(regs[O_MBSR] & IFF) && count < MAX_LOOP)
{
yield();
- count++;
+ count++;
}
if (count >= MAX_LOOP)
return -2;
regs[O_MBSR] &= ~IFF; /* Clear interrupt flag */
-
+
if (!(regs[O_MBSR] & ICF)) /* Check that transfer is complete */
- return -3;
+ return -3;
if (regs[O_MBSR] & RXAK) /* Check that the byte has been ACKed */
return -4;
-
+
return 0;
}
@@ -142,14 +142,14 @@ int i2c_gen_start(int device)
{
volatile unsigned char *regs = i2c_get_addr(device);
long count = 0;
-
+
/* Wait for bus to become free */
while ((regs[O_MBSR] & IBB) && (count < MAX_LOOP))
{
yield();
count++;
}
-
+
if (count >= MAX_LOOP)
return -1;
@@ -169,6 +169,6 @@ volatile unsigned char *i2c_get_addr(int device)
{
if (device == 1)
return I2C_DEVICE_1;
-
- return I2C_DEVICE_2;
+
+ return I2C_DEVICE_2;
}
diff --git a/firmware/export/config-h100.h b/firmware/export/config-h100.h
index e33b985..6bd94a2 100644
--- a/firmware/export/config-h100.h
+++ b/firmware/export/config-h100.h
@@ -52,7 +52,8 @@
/* Define this if you have a Motorola SCF5249 */
#define CONFIG_CPU MCF5249
-#define CONFIG_I2C I2C_H100
+/* Define this if you want to use coldfire's i2c interface */
+#define CONFIG_I2C I2C_COLDFIRE
#define HAVE_UDA1380
diff --git a/firmware/export/config-h120.h b/firmware/export/config-h120.h
index 9b93eae..2ddf821 100644
--- a/firmware/export/config-h120.h
+++ b/firmware/export/config-h120.h
@@ -48,7 +48,8 @@
/* Define this if you have a Motorola SCF5249 */
#define CONFIG_CPU MCF5249
-#define CONFIG_I2C I2C_H100
+/* Define this if you want to use coldfire's i2c interface */
+#define CONFIG_I2C I2C_COLDFIRE
#define HAVE_UDA1380
diff --git a/firmware/export/config-h300.h b/firmware/export/config-h300.h
index be6511c..251b691 100644
--- a/firmware/export/config-h300.h
+++ b/firmware/export/config-h300.h
@@ -44,7 +44,8 @@
/* Define this if you have a Motorola SCF5249 */
#define CONFIG_CPU MCF5249
-#define CONFIG_I2C I2C_H100
+/* Define this if you want to use coldfire's i2c interface */
+#define CONFIG_I2C I2C_COLDFIRE
#define HAVE_UDA1380
diff --git a/firmware/export/config-iaudiox5.h b/firmware/export/config-iaudiox5.h
index 7cdc861..e2a170a 100644
--- a/firmware/export/config-iaudiox5.h
+++ b/firmware/export/config-iaudiox5.h
@@ -42,10 +42,11 @@
#ifndef SIMULATOR
-/* Define this if you have a Motorola SCF5249 */
+/* Define this if you have a Motorola SCF5250 */
#define CONFIG_CPU MCF5250
-#define CONFIG_I2C I2C_IAUDIO
+/* Define this if you want to use coldfire's i2c interface */
+#define CONFIG_I2C I2C_COLDFIRE
#define HAVE_TLV320
diff --git a/firmware/export/config.h b/firmware/export/config.h
index 6b77f0d..16e235d 100644
--- a/firmware/export/config.h
+++ b/firmware/export/config.h
@@ -81,8 +81,7 @@
#define I2C_PLAYREC 0 /* Archos Player/Recorder style */
#define I2C_ONDIO 1 /* Ondio style */
#define I2C_GMINI 2 /* Gmini style */
-#define I2C_H100 3 /* iRiver h100 style */
-#define I2C_IAUDIO 4 /* iAuido style */
+#define I2C_COLDFIRE 3 /* Coldfire style */
/* CONFIG_LED */
#define LED_REAL 1 /* SW controlled LED (Archos recorders, player, Gmini) */
diff --git a/firmware/export/i2c-h100.h b/firmware/export/i2c-coldfire.h
index 5647b50..d4a5781 100644
--- a/firmware/export/i2c-h100.h
+++ b/firmware/export/i2c-coldfire.h
@@ -18,13 +18,13 @@
****************************************************************************/
/*
- * Driver for MCF5249's I2C interface
+ * Driver for MCF52xx's I2C interface
* 2005-02-17 hubble@mochine.com
*
*/
-#ifndef _I2C_H100_H
-#define _I2C_H100_H
+#ifndef _I2C_COLDFIRE_H
+#define _I2C_COLDFIRE_H
void i2c_init(void);
int i2c_write(int device, unsigned char *buf, int count);