i2c: core: add api to provide frequency mode strings
Some I2C drivers like Designware and HiSilicon will print the bus frequency mode information, so add a public one that everyone can make use of. Tested-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Reviewed-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Yicong Yang <yangyicong@hisilicon.com> Signed-off-by: Wolfram Sang <wsa@kernel.org>
This commit is contained in:
parent
07740c92ae
commit
3b4c747cd3
@ -76,6 +76,27 @@ void i2c_transfer_trace_unreg(void)
|
||||
static_branch_dec(&i2c_trace_msg_key);
|
||||
}
|
||||
|
||||
const char *i2c_freq_mode_string(u32 bus_freq_hz)
|
||||
{
|
||||
switch (bus_freq_hz) {
|
||||
case I2C_MAX_STANDARD_MODE_FREQ:
|
||||
return "Standard Mode (100 kHz)";
|
||||
case I2C_MAX_FAST_MODE_FREQ:
|
||||
return "Fast Mode (400 kHz)";
|
||||
case I2C_MAX_FAST_MODE_PLUS_FREQ:
|
||||
return "Fast Mode Plus (1.0 MHz)";
|
||||
case I2C_MAX_TURBO_MODE_FREQ:
|
||||
return "Turbo Mode (1.4 MHz)";
|
||||
case I2C_MAX_HIGH_SPEED_MODE_FREQ:
|
||||
return "High Speed Mode (3.4 MHz)";
|
||||
case I2C_MAX_ULTRA_FAST_MODE_FREQ:
|
||||
return "Ultra Fast Mode (5.0 MHz)";
|
||||
default:
|
||||
return "Unknown Mode";
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(i2c_freq_mode_string);
|
||||
|
||||
const struct i2c_device_id *i2c_match_id(const struct i2c_device_id *id,
|
||||
const struct i2c_client *client)
|
||||
{
|
||||
|
@ -51,6 +51,9 @@ struct module;
|
||||
struct property_entry;
|
||||
|
||||
#if IS_ENABLED(CONFIG_I2C)
|
||||
/* Return the Frequency mode string based on the bus frequency */
|
||||
const char *i2c_freq_mode_string(u32 bus_freq_hz);
|
||||
|
||||
/*
|
||||
* The master routines are the ones normally used to transmit data to devices
|
||||
* on a bus (or read from them). Apart from two basic transfer functions to
|
||||
|
Loading…
Reference in New Issue
Block a user