mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
i2c: Create common default i2c_[set|get]_bus_speed() functions
New default, weak i2c_get_bus_speed() and i2c_set_bus_speed() functions replace a number of architecture-specific implementations. Also, providing default functions will allow all boards to enable CONFIG_I2C_CMD_TREE. This was previously not possible since the tree-form of the i2c command provides the ability to display and modify the i2c bus speed which requires i2c_[set|get]_bus_speed() to be present. Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
This commit is contained in:
parent
8229e9c04f
commit
655b34a78a
6 changed files with 18 additions and 65 deletions
|
@ -138,6 +138,24 @@ DECLARE_GLOBAL_DATA_PTR;
|
||||||
static int
|
static int
|
||||||
mod_i2c_mem(cmd_tbl_t *cmdtp, int incrflag, int flag, int argc, char *argv[]);
|
mod_i2c_mem(cmd_tbl_t *cmdtp, int incrflag, int flag, int argc, char *argv[]);
|
||||||
|
|
||||||
|
/* TODO: Implement architecture-specific get/set functions */
|
||||||
|
unsigned int __def_i2c_get_bus_speed(void)
|
||||||
|
{
|
||||||
|
return CONFIG_SYS_I2C_SPEED;
|
||||||
|
}
|
||||||
|
unsigned int i2c_get_bus_speed(void)
|
||||||
|
__attribute__((weak, alias("__def_i2c_get_bus_speed")));
|
||||||
|
|
||||||
|
int __def_i2c_set_bus_speed(unsigned int speed)
|
||||||
|
{
|
||||||
|
if (speed != CONFIG_SYS_I2C_SPEED)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
int i2c_set_bus_speed(unsigned int)
|
||||||
|
__attribute__((weak, alias("__def_i2c_set_bus_speed")));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Syntax:
|
* Syntax:
|
||||||
* imd {i2c_chip} {addr}{.0, .1, .2} {len}
|
* imd {i2c_chip} {addr}{.0, .1, .2} {len}
|
||||||
|
|
|
@ -189,14 +189,4 @@ i2c_init(int speed, int slaveaddr)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int i2c_set_bus_speed(unsigned int speed)
|
|
||||||
{
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
unsigned int i2c_get_bus_speed(void)
|
|
||||||
{
|
|
||||||
return CONFIG_SYS_I2C_SPEED;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* CONFIG_HARD_I2C */
|
#endif /* CONFIG_HARD_I2C */
|
||||||
|
|
|
@ -397,18 +397,4 @@ unsigned int i2c_get_bus_num (void)
|
||||||
return bus_num;
|
return bus_num;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO */
|
|
||||||
unsigned int i2c_get_bus_speed (void)
|
|
||||||
{
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int i2c_set_bus_speed (unsigned int speed)
|
|
||||||
{
|
|
||||||
if (speed != CONFIG_SYS_I2C_SPEED)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* CONFIG_HARD_I2C */
|
#endif /* CONFIG_HARD_I2C */
|
||||||
|
|
|
@ -780,19 +780,6 @@ int i2c_set_bus_num(unsigned int bus)
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/* TODO: add 100/400k switching */
|
|
||||||
unsigned int i2c_get_bus_speed(void)
|
|
||||||
{
|
|
||||||
return CONFIG_SYS_I2C_SPEED;
|
|
||||||
}
|
|
||||||
|
|
||||||
int i2c_set_bus_speed(unsigned int speed)
|
|
||||||
{
|
|
||||||
if (speed != CONFIG_SYS_I2C_SPEED)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* CONFIG_I2C_MULTI_BUS */
|
#endif /* CONFIG_I2C_MULTI_BUS */
|
||||||
#endif /* CONFIG_HARD_I2C */
|
#endif /* CONFIG_HARD_I2C */
|
||||||
|
|
|
@ -438,18 +438,4 @@ int i2c_set_bus_num(unsigned int bus)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_I2C_MULTI_BUS */
|
#endif /* CONFIG_I2C_MULTI_BUS */
|
||||||
|
|
||||||
/* TODO: add 100/400k switching */
|
|
||||||
unsigned int i2c_get_bus_speed(void)
|
|
||||||
{
|
|
||||||
return CONFIG_SYS_I2C_SPEED;
|
|
||||||
}
|
|
||||||
|
|
||||||
int i2c_set_bus_speed(unsigned int speed)
|
|
||||||
{
|
|
||||||
if (speed != CONFIG_SYS_I2C_SPEED)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_HARD_I2C */
|
#endif /* CONFIG_HARD_I2C */
|
||||||
|
|
|
@ -244,20 +244,6 @@ int i2c_set_bus_num(unsigned int bus)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* TODO: add 100/400k switching */
|
|
||||||
unsigned int i2c_get_bus_speed(void)
|
|
||||||
{
|
|
||||||
return CONFIG_SYS_I2C_SPEED;
|
|
||||||
}
|
|
||||||
|
|
||||||
int i2c_set_bus_speed(unsigned int speed)
|
|
||||||
{
|
|
||||||
if (speed != CONFIG_SYS_I2C_SPEED)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------
|
/*-----------------------------------------------------------------------
|
||||||
* if ack == I2C_ACK, ACK the byte so can continue reading, else
|
* if ack == I2C_ACK, ACK the byte so can continue reading, else
|
||||||
* send I2C_NOACK to end the read.
|
* send I2C_NOACK to end the read.
|
||||||
|
|
Loading…
Reference in a new issue