i2c:samsung: Adjust Trats, GONI and Universal_c210 boards to work with new I2C framework
PATCH 1/1 i2c:samsung: Adjust Trats, GONI and Universal_c210 boards to work with new I2C framework
New I2C framework, introduced after v2013.07 final release, imposed I2C code adjustment for some Samsung boards - namely Trats, GONI and Universal_c210.
Those boards were using schematic based I2C enumeration (I2C_5, I2C_9). However, new I2C framework imposes usage of logical I2C adapters numbering (e.g. I2C_0, I2C_1, etc).
Additionally, I2C_GET_* macros were replaced with i2c_*_bus_num() functions.
Trats board gained definition of second soft I2C adapter.
--- board/samsung/common/multi_i2c.c | 14 ++++++-------- board/samsung/goni/goni.c | 6 +++++- board/samsung/trats/trats.c | 17 ++++++++++++----- board/samsung/universal_c210/universal.c | 4 ++++ include/configs/trats.h | 3 +++ 5 files changed, 30 insertions(+), 14 deletions(-)
board/samsung/common/multi_i2c.c +6 -8
@@ -11,13 +11,12 @@/* Handle multiple I2C buses instances */ int get_multi_scl_pin (void ) { -unsigned int bus =I2C_GET_BUS (); +unsigned int bus =i2c_get_bus_num ();switch (bus) { -case I2C_0 :/* I2C_0 definition - compatibility layer */ -case I2C_5 : +case I2C_0 :return CONFIG_SOFT_I2C_I2C5_SCL ; -case I2C_9 : +case I2C_1 :return CONFIG_SOFT_I2C_I2C9_SCL ;default :printf ("I2C_%d not supported!\n" , bus);
@@ -28,13 +27,12 @@ int get_multi_scl_pin(void)int get_multi_sda_pin (void ) { -unsigned int bus =I2C_GET_BUS (); +unsigned int bus =i2c_get_bus_num ();switch (bus) { -case I2C_0 :/* I2C_0 definition - compatibility layer */ -case I2C_5 : +case I2C_0 :return CONFIG_SOFT_I2C_I2C5_SDA ; -case I2C_9 : +case I2C_1 :return CONFIG_SOFT_I2C_I2C9_SDA ;default :printf ("I2C_%d not supported!\n" , bus);
board/samsung/goni/goni.c +5 -1
@@ -32,7 +32,11 @@ int power_init_board(void) {int ret; - ret =pmic_init (I2C_5 ); +/* +* For PMIC the I2C bus is named as I2C5, but it is connected +* to logical I2C adapter 0 +*/ + ret =pmic_init (I2C_0 );if (ret)return ret;
board/samsung/trats/trats.c +12 -5
@@ -61,10 +61,10 @@ void i2c_init_board(void)struct exynos4_gpio_part2 *gpio2 = (struct exynos4_gpio_part2 *)samsung_get_base_gpio_part2 (); -/* I2C_5 -> PMIC */ +/* I2C_5 -> PMIC -> Adapter 0 */ s5p_gpio_direction_output (&gpio1->b,7 ,1 );s5p_gpio_direction_output (&gpio1->b,6 ,1 ); -/* I2C_9 -> FG */ +/* I2C_9 -> FG -> Adapter 1 */ s5p_gpio_direction_output (&gpio2->y4,0 ,1 );s5p_gpio_direction_output (&gpio2->y4,1 ,1 ); }
@@ -282,10 +282,17 @@ int power_init_board(void)struct power_battery *pb;struct pmic *p_fg, *p_chrg, *p_muic, *p_bat; - ret =pmic_init (I2C_5 ); +/* +* For PMIC/MUIC the I2C bus is named as I2C5, but it is connected +* to logical I2C adapter 0 +* +* The FUEL_GAUGE is marked as I2C9 on the schematic, but connected +* to logical I2C adapter 1 +*/ + ret =pmic_init (I2C_0 ); ret |=pmic_init_max8997 (); - ret |=power_fg_init (I2C_9 ); - ret |=power_muic_init (I2C_5 ); + ret |=power_fg_init (I2C_1 ); + ret |=power_muic_init (I2C_0 ); ret |=power_bat_init (0 );if (ret)return ret;
board/samsung/universal_c210/universal.c +4 -0
@@ -45,6 +45,10 @@ int power_init_board(void) {int ret; +/* +* For PMIC the I2C bus is named as I2C5, but it is connected +* to logical I2C adapter 0 +*/ ret =pmic_init (I2C_5 );if (ret)return ret;
include/configs/trats.h +3 -0
@@ -263,6 +263,9 @@#define CONFIG_SYS_I2C_SOFT /* I2C bit-banged */ #define CONFIG_SYS_I2C_SOFT_SPEED 50000#define CONFIG_SYS_I2C_SOFT_SLAVE 0xFE +#define I2C_SOFT_DECLARATIONS2 +#define CONFIG_SYS_I2C_SOFT_SPEED_2 50000 +#define CONFIG_SYS_I2C_SOFT_SLAVE_2 0x7F#define CONFIG_SOFT_I2C_READ_REPEATED_START #define CONFIG_SYS_I2C_INIT_BOARD #define CONFIG_I2C_MULTI_BUS
Signature · 1 line
1.7.10.4
PATCH 1/1 i2c:samsung: Adjust Trats, GONI and Universal_c210 boards to work with new I2C framework
Hello Lukasz,
Am 16.08.2013 15:33, schrieb Lukasz Majewski:
Quoted 14 lines
New I2C framework, introduced after v2013.07 final release, imposed I2C code adjustment for some Samsung boards - namely Trats, GONI and
Universal_c210.Those boards were using schematic based I2C enumeration (
I2C_5,I2C_9). However, new I2C framework imposes usage of logical I2C adapters numbering (e.g.I2C_0,I2C_1, etc).Additionally, I2C_GET_* macros were replaced with i2c_*_bus_num() functions.
Trats board gained definition of second soft I2C adapter.
Signed-off-by Lukasz Majewski<[email protected]>Cc Minkyu Kang<[email protected]>Cc Heiko Schocher<[email protected]>
Quoted 7 lines
--- board/samsung/common/multi_i2c.c | 14 ++++++-------- board/samsung/goni/goni.c | 6 +++++- board/samsung/trats/trats.c | 17 ++++++++++++----- board/samsung/universal_c210/universal.c | 4 ++++ include/configs/trats.h | 3 +++ 5 files changed, 30 insertions(+), 14 deletions(-)
Applied to u-boot-i2c.git, thanks.
bye,
Heiko
Signature · 2 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany