* [U-Boot] [PATCH 1/5] i2c.h: Provide a default CONFIG_SYS_I2C_SLAVE value
2009-04-24 20:34 [U-Boot] [PATCH 0/5] I2C cleanup before removal of deprecated commands Peter Tyser
@ 2009-04-24 20:34 ` Peter Tyser
2009-04-24 20:34 ` [U-Boot] [PATCH 2/5] cpci750: i2c cleanup Peter Tyser
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Peter Tyser @ 2009-04-24 20:34 UTC (permalink / raw)
To: u-boot
Many boards/controllers/drivers don't support an I2C slave interface,
however CONFIG_SYS_I2C_SLAVE is used in common code so provide a
default
Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
---
common/cmd_eeprom.c | 4 ----
cpu/mpc8260/i2c.c | 3 ---
cpu/ppc4xx/40x_spd_sdram.c | 4 ----
cpu/ppc4xx/44x_spd_ddr.c | 4 ----
include/i2c.h | 12 +++++++++---
5 files changed, 9 insertions(+), 18 deletions(-)
diff --git a/common/cmd_eeprom.c b/common/cmd_eeprom.c
index e598bf1..f749087 100644
--- a/common/cmd_eeprom.c
+++ b/common/cmd_eeprom.c
@@ -401,10 +401,6 @@ eeprom_probe (unsigned dev_addr, unsigned offset)
#define CONFIG_SYS_I2C_SPEED 50000
#endif
-#ifndef CONFIG_SYS_I2C_SLAVE
-#define CONFIG_SYS_I2C_SLAVE 0xFE
-#endif
-
void eeprom_init (void)
{
#if defined(CONFIG_SPI)
diff --git a/cpu/mpc8260/i2c.c b/cpu/mpc8260/i2c.c
index 35cf8f1..2b954b4 100644
--- a/cpu/mpc8260/i2c.c
+++ b/cpu/mpc8260/i2c.c
@@ -58,9 +58,6 @@ static unsigned int i2c_bus_num __attribute__ ((section (".data"))) = 0;
#define CONFIG_SYS_I2C_SPEED 50000
#endif
-#ifndef CONFIG_SYS_I2C_SLAVE
-#define CONFIG_SYS_I2C_SLAVE 0xFE
-#endif
/*-----------------------------------------------------------------------
*/
diff --git a/cpu/ppc4xx/40x_spd_sdram.c b/cpu/ppc4xx/40x_spd_sdram.c
index 57861b3..75bd70d 100644
--- a/cpu/ppc4xx/40x_spd_sdram.c
+++ b/cpu/ppc4xx/40x_spd_sdram.c
@@ -56,10 +56,6 @@
#define CONFIG_SYS_I2C_SPEED 50000
#endif
-#ifndef CONFIG_SYS_I2C_SLAVE
-#define CONFIG_SYS_I2C_SLAVE 0xFE
-#endif
-
#define ONE_BILLION 1000000000
#define SDRAM0_CFG_DCE 0x80000000
diff --git a/cpu/ppc4xx/44x_spd_ddr.c b/cpu/ppc4xx/44x_spd_ddr.c
index 153391e..f26fcda 100644
--- a/cpu/ppc4xx/44x_spd_ddr.c
+++ b/cpu/ppc4xx/44x_spd_ddr.c
@@ -66,10 +66,6 @@
#define CONFIG_SYS_I2C_SPEED 50000
#endif
-#ifndef CONFIG_SYS_I2C_SLAVE
-#define CONFIG_SYS_I2C_SLAVE 0xFE
-#endif
-
#define ONE_BILLION 1000000000
/*
diff --git a/include/i2c.h b/include/i2c.h
index f8a59a6..668e754 100644
--- a/include/i2c.h
+++ b/include/i2c.h
@@ -78,16 +78,22 @@
#endif
#ifdef CONFIG_8xx
-/* Set default values for the I2C bus speed and slave address on 8xx. In the
+/* Set default value for the I2C bus speed on 8xx. In the
* future, we'll define these in all 8xx board config files.
*/
#ifndef CONFIG_SYS_I2C_SPEED
#define CONFIG_SYS_I2C_SPEED 50000
#endif
+#endif
+/*
+ * Many boards/controllers/drivers don't support an I2C slave interface so
+ * provide a default slave address for them for use in common code. A real
+ * value for CONFIG_SYS_I2C_SLAVE should be defined for any board which does
+ * support a slave interface.
+ */
#ifndef CONFIG_SYS_I2C_SLAVE
-#define CONFIG_SYS_I2C_SLAVE 0xFE
-#endif
+#define CONFIG_SYS_I2C_SLAVE 0xfe
#endif
/*
--
1.6.2.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* [U-Boot] [PATCH 2/5] cpci750: i2c cleanup
2009-04-24 20:34 [U-Boot] [PATCH 0/5] I2C cleanup before removal of deprecated commands Peter Tyser
2009-04-24 20:34 ` [U-Boot] [PATCH 1/5] i2c.h: Provide a default CONFIG_SYS_I2C_SLAVE value Peter Tyser
@ 2009-04-24 20:34 ` Peter Tyser
2009-04-24 20:34 ` [U-Boot] [PATCH 3/5] Marvell: " Peter Tyser
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Peter Tyser @ 2009-04-24 20:34 UTC (permalink / raw)
To: u-boot
The following changes were made, primarily to bring the cpci750 i2c
driver in line with U-Boot's current I2C API:
- Made i2c_init() globally accessible
- Made i2c_read() and i2c_write() return an integer
- Updated i2c_init() calls to pass in CONFIG_SYS_I2C_SLAVE in the
offhand chance someone adds slave support in the future
Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
---
board/esd/cpci750/i2c.c | 16 ++++++++++------
1 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/board/esd/cpci750/i2c.c b/board/esd/cpci750/i2c.c
index d95567f..b752903 100644
--- a/board/esd/cpci750/i2c.c
+++ b/board/esd/cpci750/i2c.c
@@ -27,6 +27,7 @@
#include <common.h>
#include <mpc8xx.h>
#include <malloc.h>
+#include <i2c.h>
#include "../../Marvell/include/mv_gen_reg.h"
#include "../../Marvell/include/core.h"
@@ -41,7 +42,7 @@
/* Assuming that there is only one master on the bus (us) */
-static void i2c_init (int speed, int slaveaddr)
+void i2c_init (int speed, int slaveaddr)
{
unsigned int n, m, freq, margin, power;
unsigned int actualN = 0, actualM = 0;
@@ -375,7 +376,7 @@ i2c_set_dev_offset (uchar dev_addr, unsigned int offset, int ten_bit,
return 0; /* sucessful completion */
}
-uchar
+int
i2c_read (uchar dev_addr, unsigned int offset, int alen, uchar * data,
int len)
{
@@ -384,7 +385,8 @@ i2c_read (uchar dev_addr, unsigned int offset, int alen, uchar * data,
DP (puts ("i2c_read\n"));
- i2c_init (i2cFreq, 0); /* set the i2c frequency */
+ /* set the i2c frequency */
+ i2c_init (i2cFreq, CONFIG_SYS_I2C_SLAVE);
status = i2c_set_dev_offset (dev_addr, offset, 0, alen); /* send the slave address + offset */
if (status) {
@@ -423,7 +425,7 @@ void i2c_stop (void)
}
-uchar
+int
i2c_write (uchar dev_addr, unsigned int offset, int alen, uchar * data,
int len)
{
@@ -432,7 +434,8 @@ i2c_write (uchar dev_addr, unsigned int offset, int alen, uchar * data,
DP (puts ("i2c_write\n"));
- i2c_init (i2cFreq, 0); /* set the i2c frequency */
+ /* set the i2c frequency */
+ i2c_init (i2cFreq, CONFIG_SYS_I2C_SLAVE);
status = i2c_set_dev_offset (dev_addr, offset, 0, alen); /* send the slave address + offset */
if (status) {
@@ -468,7 +471,8 @@ int i2c_probe (uchar chip)
DP (puts ("i2c_probe\n"));
- i2c_init (i2cFreq, 0); /* set the i2c frequency */
+ /* set the i2c frequency */
+ i2c_init (i2cFreq, CONFIG_SYS_I2C_SLAVE);
status = i2c_set_dev_offset (chip, 0, 0, 0); /* send the slave address + no offset */
if (status) {
--
1.6.2.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* [U-Boot] [PATCH 3/5] Marvell: i2c cleanup
2009-04-24 20:34 [U-Boot] [PATCH 0/5] I2C cleanup before removal of deprecated commands Peter Tyser
2009-04-24 20:34 ` [U-Boot] [PATCH 1/5] i2c.h: Provide a default CONFIG_SYS_I2C_SLAVE value Peter Tyser
2009-04-24 20:34 ` [U-Boot] [PATCH 2/5] cpci750: i2c cleanup Peter Tyser
@ 2009-04-24 20:34 ` Peter Tyser
2009-04-24 20:34 ` [U-Boot] [PATCH 4/5] mpc7448hpc2: Add CONFIG_SYS_I2C_SPEED define Peter Tyser
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Peter Tyser @ 2009-04-24 20:34 UTC (permalink / raw)
To: u-boot
The following changes were made, primarily to bring the Marvell i2c
driver in line with U-Boot's current I2C API:
- Made i2c_init() globally accessible
- Made i2c_read() and i2c_write() return an integer
- Updated i2c_init() calls to pass in CONFIG_SYS_I2C_SLAVE in the
offhand chance someone adds slave support in the future
Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
---
board/Marvell/common/i2c.c | 19 ++++++++++++-------
1 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/board/Marvell/common/i2c.c b/board/Marvell/common/i2c.c
index d426044..8d87b2d 100644
--- a/board/Marvell/common/i2c.c
+++ b/board/Marvell/common/i2c.c
@@ -26,6 +26,7 @@
#include <common.h>
#include <mpc8xx.h>
#include <malloc.h>
+#include <i2c.h>
#include "../include/mv_gen_reg.h"
#include "../include/core.h"
@@ -42,7 +43,7 @@
/* Assuming that there is only one master on the bus (us) */
-static void i2c_init (int speed, int slaveaddr)
+void i2c_init (int speed, int slaveaddr)
{
unsigned int n, m, freq, margin, power;
unsigned int actualN = 0, actualM = 0;
@@ -367,7 +368,7 @@ i2c_set_dev_offset (uchar dev_addr, unsigned int offset, int ten_bit,
return 0; /* sucessful completion */
}
-uchar
+int
i2c_read (uchar dev_addr, unsigned int offset, int alen, uchar * data,
int len)
{
@@ -376,7 +377,8 @@ i2c_read (uchar dev_addr, unsigned int offset, int alen, uchar * data,
DP (puts ("i2c_read\n"));
- i2c_init (i2cFreq, 0); /* set the i2c frequency */
+ /* set the i2c frequency */
+ i2c_init (i2cFreq, CONFIG_SYS_I2C_SLAVE);
status = i2c_start ();
@@ -396,7 +398,8 @@ i2c_read (uchar dev_addr, unsigned int offset, int alen, uchar * data,
return status;
}
- i2c_init (i2cFreq, 0); /* set the i2c frequency again */
+ /* set the i2c frequency again */
+ i2c_init (i2cFreq, CONFIG_SYS_I2C_SLAVE);
status = i2c_start ();
if (status) {
@@ -442,7 +445,7 @@ void i2c_stop (void)
/* */
/* returns 0 = succesful */
/* anything but zero is failure */
-uchar
+int
i2c_write (uchar dev_addr, unsigned int offset, int alen, uchar * data,
int len)
{
@@ -451,7 +454,8 @@ i2c_write (uchar dev_addr, unsigned int offset, int alen, uchar * data,
DP (puts ("i2c_write\n"));
- i2c_init (i2cFreq, 0); /* set the i2c frequency */
+ /* set the i2c frequency */
+ i2c_init (i2cFreq, CONFIG_SYS_I2C_SLAVE);
status = i2c_start (); /* send a start bit */
@@ -504,7 +508,8 @@ int i2c_probe (uchar chip)
DP (puts ("i2c_probe\n"));
- i2c_init (i2cFreq, 0); /* set the i2c frequency */
+ /* set the i2c frequency */
+ i2c_init (i2cFreq, CONFIG_SYS_I2C_SLAVE);
status = i2c_start (); /* send a start bit */
--
1.6.2.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* [U-Boot] [PATCH 4/5] mpc7448hpc2: Add CONFIG_SYS_I2C_SPEED define
2009-04-24 20:34 [U-Boot] [PATCH 0/5] I2C cleanup before removal of deprecated commands Peter Tyser
` (2 preceding siblings ...)
2009-04-24 20:34 ` [U-Boot] [PATCH 3/5] Marvell: " Peter Tyser
@ 2009-04-24 20:34 ` Peter Tyser
2009-04-24 20:34 ` [U-Boot] [PATCH 5/5] tsi108_i2c: Add i2c_init() stub function Peter Tyser
2009-04-27 7:22 ` [U-Boot] [PATCH 0/5] I2C cleanup before removal of deprecated commands Heiko Schocher
5 siblings, 0 replies; 7+ messages in thread
From: Peter Tyser @ 2009-04-24 20:34 UTC (permalink / raw)
To: u-boot
Add standard CONFIG_SYS_I2C_SPEED define for the mpc7448hpc2 so that
it can use the common 'i2c speed' command. Note that the I2C controller
utilized by the mpc7448hpc2 has a fixed speed and cannot be changed
dynamically.
Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
---
include/configs/mpc7448hpc2.h | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/include/configs/mpc7448hpc2.h b/include/configs/mpc7448hpc2.h
index a1783b2..7d42155 100644
--- a/include/configs/mpc7448hpc2.h
+++ b/include/configs/mpc7448hpc2.h
@@ -179,6 +179,7 @@
*/
#define CONFIG_VERSION_VARIABLE 1
#define CONFIG_TSI108_I2C
+#define CONFIG_SYS_I2C_SPEED 100000 /* I2C speed */
#define CONFIG_SYS_I2C_EEPROM_ADDR 0x50 /* I2C EEPROM page 1 */
#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 /* Bytes of address */
--
1.6.2.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* [U-Boot] [PATCH 5/5] tsi108_i2c: Add i2c_init() stub function
2009-04-24 20:34 [U-Boot] [PATCH 0/5] I2C cleanup before removal of deprecated commands Peter Tyser
` (3 preceding siblings ...)
2009-04-24 20:34 ` [U-Boot] [PATCH 4/5] mpc7448hpc2: Add CONFIG_SYS_I2C_SPEED define Peter Tyser
@ 2009-04-24 20:34 ` Peter Tyser
2009-04-27 7:22 ` [U-Boot] [PATCH 0/5] I2C cleanup before removal of deprecated commands Heiko Schocher
5 siblings, 0 replies; 7+ messages in thread
From: Peter Tyser @ 2009-04-24 20:34 UTC (permalink / raw)
To: u-boot
Add the i2c_init() function so that the tsi108_i2c.c driver fits
U-Boot's standard I2C API which is utilized by cmd_i2c.c
Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
---
drivers/i2c/tsi108_i2c.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/drivers/i2c/tsi108_i2c.c b/drivers/i2c/tsi108_i2c.c
index fda822c..3829ef9 100644
--- a/drivers/i2c/tsi108_i2c.c
+++ b/drivers/i2c/tsi108_i2c.c
@@ -41,6 +41,15 @@
/* All functions assume that Tsi108 I2C block is the only master on the bus */
/* I2C read helper function */
+void i2c_init(int speed, int slaveaddr)
+{
+ /*
+ * The TSI108 has a fixed I2C clock rate and doesn't support slave
+ * operation. This function only exists as a stub to fit into the
+ * U-Boot I2C API.
+ */
+}
+
static int i2c_read_byte (
uint i2c_chan, /* I2C channel number: 0 - main, 1 - SDC SPD */
uchar chip_addr,/* I2C device address on the bus */
--
1.6.2.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* [U-Boot] [PATCH 0/5] I2C cleanup before removal of deprecated commands
2009-04-24 20:34 [U-Boot] [PATCH 0/5] I2C cleanup before removal of deprecated commands Peter Tyser
` (4 preceding siblings ...)
2009-04-24 20:34 ` [U-Boot] [PATCH 5/5] tsi108_i2c: Add i2c_init() stub function Peter Tyser
@ 2009-04-27 7:22 ` Heiko Schocher
5 siblings, 0 replies; 7+ messages in thread
From: Heiko Schocher @ 2009-04-27 7:22 UTC (permalink / raw)
To: u-boot
Hello Peter,
Peter Tyser wrote:
> Hi Heiko,
> These 5 patches should clean up the compile issues that you noticed
> after application of the "[PATCH v2 0/7] Remove individual I2C commands
> and cleanup" series.
Thanks.
> I only have a build environment for powerpc boards so it'd be much
> appreciated if other architectures could do some basic compile
> testing after the "Remove individual I2C commands and cleanup"
> series is applied to the i2c repository.
I did a "powerpc" and an "arm" MAKEALL ... Hmm.. maybe we should
add somewhere in the tree a documentation, where toolchains can be found?
> Assuming these patches are accepted, the original "v2 Remove individual
> I2C commands and cleanup" series should then be applied.
Applied to u-boot-i2c next branch, also the "v2 Remove individual I2C
commands and cleanup" series, see:
http://git.denx.de/?p=u-boot/u-boot-i2c.git;a=shortlog;h=refs/heads/next
bye
Heiko
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
^ permalink raw reply [flat|nested] 7+ messages in thread