mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 18:41:58 +09:00
Merge tag 'i2c-for-6.6-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
Pull i2c fixes from Wolfram Sang: "The main thing is the removal of 'probe_new' because all i2c client drivers are converted now. Thanks Uwe, this marks the end of a long conversion process. Other than that, we have a few Kconfig updates and driver bugfixes" * tag 'i2c-for-6.6-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: i2c: cadence: Fix the kernel-doc warnings i2c: aspeed: Reset the i2c controller when timeout occurs i2c: I2C_MLXCPLD on ARM64 should depend on ACPI i2c: Make I2C_ATR invisible i2c: Drop legacy callback .probe_new() w1: ds2482: Switch back to use struct i2c_driver's .probe()
This commit is contained in:
@@ -72,7 +72,7 @@ config I2C_MUX
|
||||
source "drivers/i2c/muxes/Kconfig"
|
||||
|
||||
config I2C_ATR
|
||||
tristate "I2C Address Translator (ATR) support"
|
||||
tristate "I2C Address Translator (ATR) support" if COMPILE_TEST
|
||||
help
|
||||
Enable support for I2C Address Translator (ATR) chips.
|
||||
|
||||
|
||||
@@ -1384,10 +1384,10 @@ config I2C_ICY
|
||||
|
||||
config I2C_MLXCPLD
|
||||
tristate "Mellanox I2C driver"
|
||||
depends on X86_64 || ARM64 || COMPILE_TEST
|
||||
depends on X86_64 || (ARM64 && ACPI) || COMPILE_TEST
|
||||
help
|
||||
This exposes the Mellanox platform I2C busses to the linux I2C layer
|
||||
for X86 based systems.
|
||||
for X86 and ARM64/ACPI based systems.
|
||||
Controller is implemented as CPLD logic.
|
||||
|
||||
This driver can also be built as a module. If so, the module will be
|
||||
|
||||
@@ -698,13 +698,16 @@ static int aspeed_i2c_master_xfer(struct i2c_adapter *adap,
|
||||
|
||||
if (time_left == 0) {
|
||||
/*
|
||||
* If timed out and bus is still busy in a multi master
|
||||
* environment, attempt recovery at here.
|
||||
* In a multi-master setup, if a timeout occurs, attempt
|
||||
* recovery. But if the bus is idle, we still need to reset the
|
||||
* i2c controller to clear the remaining interrupts.
|
||||
*/
|
||||
if (bus->multi_master &&
|
||||
(readl(bus->base + ASPEED_I2C_CMD_REG) &
|
||||
ASPEED_I2CD_BUS_BUSY_STS))
|
||||
aspeed_i2c_recover_bus(bus);
|
||||
else
|
||||
aspeed_i2c_reset(bus);
|
||||
|
||||
/*
|
||||
* If timed out and the state is still pending, drop the pending
|
||||
|
||||
@@ -182,6 +182,7 @@ enum cdns_i2c_slave_state {
|
||||
* @reset: Reset control for the device
|
||||
* @quirks: flag for broken hold bit usage in r1p10
|
||||
* @ctrl_reg: Cached value of the control register.
|
||||
* @rinfo: I2C GPIO recovery information
|
||||
* @ctrl_reg_diva_divb: value of fields DIV_A and DIV_B from CR register
|
||||
* @slave: Registered slave instance.
|
||||
* @dev_mode: I2C operating role(master/slave).
|
||||
|
||||
@@ -551,7 +551,7 @@ static struct i2c_driver ds2482_driver = {
|
||||
.driver = {
|
||||
.name = "ds2482",
|
||||
},
|
||||
.probe_new = ds2482_probe,
|
||||
.probe = ds2482_probe,
|
||||
.remove = ds2482_remove,
|
||||
.id_table = ds2482_id,
|
||||
};
|
||||
|
||||
@@ -237,7 +237,6 @@ enum i2c_driver_flags {
|
||||
* struct i2c_driver - represent an I2C device driver
|
||||
* @class: What kind of i2c device we instantiate (for detect)
|
||||
* @probe: Callback for device binding
|
||||
* @probe_new: Transitional callback for device binding - do not use
|
||||
* @remove: Callback for device unbinding
|
||||
* @shutdown: Callback for device shutdown
|
||||
* @alert: Alert callback, for example for the SMBus alert protocol
|
||||
@@ -272,16 +271,8 @@ enum i2c_driver_flags {
|
||||
struct i2c_driver {
|
||||
unsigned int class;
|
||||
|
||||
union {
|
||||
/* Standard driver model interfaces */
|
||||
int (*probe)(struct i2c_client *client);
|
||||
/*
|
||||
* Legacy callback that was part of a conversion of .probe().
|
||||
* Today it has the same semantic as .probe(). Don't use for new
|
||||
* code.
|
||||
*/
|
||||
int (*probe_new)(struct i2c_client *client);
|
||||
};
|
||||
int (*probe)(struct i2c_client *client);
|
||||
void (*remove)(struct i2c_client *client);
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user