console/i2c_smbus: Allow to send data w/o register offset
Not every I2C target requires a register address. Not sending one for every console char saves us a lot of overhead. Change-Id: I1c714768fdd4aea4885e40a85d21fa42414ce32c Signed-off-by: Nico Huber <nico.h@gmx.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/82762 Reviewed-by: Elyes Haouas <ehaouas@noos.fr> Reviewed-by: Angel Pons <th3fanbus@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
77ae8f0f24
commit
ae77d8afac
@ -318,8 +318,16 @@ config CONSOLE_I2C_SMBUS_SLAVE_ADDRESS
|
||||
help
|
||||
I2C address of the device which logs the data.
|
||||
|
||||
config CONSOLE_I2C_SMBUS_HAVE_DATA_REGISTER
|
||||
bool "Write to a specific data register"
|
||||
default y if SC16IS7XX_INIT
|
||||
help
|
||||
Select this to provide a register address that will
|
||||
be sent before every data byte.
|
||||
|
||||
config CONSOLE_I2C_SMBUS_SLAVE_DATA_REGISTER
|
||||
hex "Data register address of the I2C logging device"
|
||||
depends on CONSOLE_I2C_SMBUS_HAVE_DATA_REGISTER
|
||||
default 0x00 if SC16IS7XX_INIT
|
||||
help
|
||||
This an 8-bit data register.
|
||||
|
@ -13,7 +13,12 @@ void i2c_smbus_console_init(void)
|
||||
|
||||
void i2c_smbus_console_tx_byte(unsigned char c)
|
||||
{
|
||||
do_smbus_write_byte(CONFIG_FIXED_SMBUS_IO_BASE,
|
||||
CONFIG_CONSOLE_I2C_SMBUS_SLAVE_ADDRESS,
|
||||
CONFIG_CONSOLE_I2C_SMBUS_SLAVE_DATA_REGISTER, c);
|
||||
if (CONFIG(CONSOLE_I2C_SMBUS_HAVE_DATA_REGISTER)) {
|
||||
do_smbus_write_byte(CONFIG_FIXED_SMBUS_IO_BASE,
|
||||
CONFIG_CONSOLE_I2C_SMBUS_SLAVE_ADDRESS,
|
||||
CONFIG_CONSOLE_I2C_SMBUS_SLAVE_DATA_REGISTER, c);
|
||||
} else {
|
||||
do_smbus_send_byte(CONFIG_FIXED_SMBUS_IO_BASE,
|
||||
CONFIG_CONSOLE_I2C_SMBUS_SLAVE_ADDRESS, c);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user