mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-17 22:49:02 +00:00
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. Signed-off-by: Lukasz Majewski <l.majewski@samsung.com> Cc: Minkyu Kang <mk7.kang@samsung.com> Cc: Heiko Schocher <hs@denx.de>
This commit is contained in:
parent
ea0f73abb1
commit
2936df1f11
5 changed files with 30 additions and 14 deletions
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue