Biggest news is that Andi Shyti steps in for maintaining the controller
drivers. Thank you very much! Other than that, one new driver maintainer and the rest is usual driver bugfixes. at24 has a Kconfig dependecy fix. -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEOZGx6rniZ1Gk92RdFA3kzBSgKbYFAmSE1fcACgkQFA3kzBSg KbYLJQ//TdGn7LIpmF62lmKSvgE/AePRI055dbfxCy2ChR0wFEl8kSikVOwk1/tJ bJ7OoUK7kegXWzj2Mj4t9+Gu8lByvxa6E6jmviqrdJjKj8ZECObJJ1EjbWugtQxp Gtf+PiaaUMg/gMw43PV9/pSevKcD5bhekIdrIIDWdWfWQikfpuDm8Mo5btMYKQtt pWITwfdKnMiDHrpCO5VV9sz4JPd+f968xpmsnZJ/mkDqLdb9VA9U7vm62cvS3g4X N04noEKGfmWmO25inK3HDPyhVptVkzkR7kc0E6gqF6Tm+yX9LOmV5r2/9QwgJD25 9T/oLmYvFjBvBgcqpFIU70PMpUi3/jZhpz+TLNa3szWttbr2m9buCyRBUYCxKC/D XYW3ge5aojpi2Xl2DPaSwwrBW80V1TTOSpSJsjD3pGhujEZizaWS6PaVHgCNvf6/ /mse1+GjYwbnBAhdaaOgGDIIoQJ4giu8AUoLNhYrqBxkJnUdCqLcNITKNGWr2RFF 0Zn9Aa7/9YbIs1ojpgYumWwgFlILwAk8kRqCz1J/madh2+Z+tCq+QKnfgTZ6YGPM HN+M0NhHJllDNtx/+r+95WWPUf0fHy2MiPU/RrifBiTdy3rdCzcOAyk6CvVbJpfk seeq6jxrxqcYWz1cMTfCOVCwO3WQ0TZvL13Db49fLELtMJRhFw0= =m0XT -----END PGP SIGNATURE----- Merge tag 'i2c-for-6.4-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux Pull i2c fixes from Wolfram Sang: "Biggest news is that Andi Shyti steps in for maintaining the controller drivers. Thank you very much! Other than that, one new driver maintainer and the rest is usual driver bugfixes. at24 has a Kconfig dependecy fix" * tag 'i2c-for-6.4-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: MAINTAINERS: Add entries for Renesas RZ/V2M I2C driver eeprom: at24: also select REGMAP i2c: sprd: Delete i2c adapter in .remove's error path i2c: mv64xxx: Fix reading invalid status value in atomic mode i2c: designware: fix idx_write_cnt in read loop i2c: mchp-pci1xxxx: Avoid cast to incompatible function type i2c: img-scb: Fix spelling mistake "innacurate" -> "inaccurate" MAINTAINERS: Add myself as I2C host drivers maintainer
This commit is contained in:
commit
022ce8862d
11
MAINTAINERS
11
MAINTAINERS
|
@ -9696,8 +9696,9 @@ F: include/uapi/linux/i2c-*.h
|
|||
F: include/uapi/linux/i2c.h
|
||||
|
||||
I2C SUBSYSTEM HOST DRIVERS
|
||||
M: Andi Shyti <andi.shyti@kernel.org>
|
||||
L: linux-i2c@vger.kernel.org
|
||||
S: Odd Fixes
|
||||
S: Maintained
|
||||
W: https://i2c.wiki.kernel.org/
|
||||
Q: https://patchwork.ozlabs.org/project/linux-i2c/list/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git
|
||||
|
@ -18047,6 +18048,14 @@ S: Maintained
|
|||
F: Documentation/devicetree/bindings/usb/renesas,rzn1-usbf.yaml
|
||||
F: drivers/usb/gadget/udc/renesas_usbf.c
|
||||
|
||||
RENESAS RZ/V2M I2C DRIVER
|
||||
M: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
|
||||
L: linux-i2c@vger.kernel.org
|
||||
L: linux-renesas-soc@vger.kernel.org
|
||||
S: Supported
|
||||
F: Documentation/devicetree/bindings/i2c/renesas,rzv2m.yaml
|
||||
F: drivers/i2c/busses/i2c-rzv2m.c
|
||||
|
||||
RENESAS USB PHY DRIVER
|
||||
M: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
|
||||
L: linux-renesas-soc@vger.kernel.org
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#define DW_IC_CON_BUS_CLEAR_CTRL BIT(11)
|
||||
|
||||
#define DW_IC_DATA_CMD_DAT GENMASK(7, 0)
|
||||
#define DW_IC_DATA_CMD_FIRST_DATA_BYTE BIT(11)
|
||||
|
||||
/*
|
||||
* Registers offset
|
||||
|
|
|
@ -176,6 +176,10 @@ static irqreturn_t i2c_dw_isr_slave(int this_irq, void *dev_id)
|
|||
|
||||
do {
|
||||
regmap_read(dev->map, DW_IC_DATA_CMD, &tmp);
|
||||
if (tmp & DW_IC_DATA_CMD_FIRST_DATA_BYTE)
|
||||
i2c_slave_event(dev->slave,
|
||||
I2C_SLAVE_WRITE_REQUESTED,
|
||||
&val);
|
||||
val = tmp;
|
||||
i2c_slave_event(dev->slave, I2C_SLAVE_WRITE_RECEIVED,
|
||||
&val);
|
||||
|
|
|
@ -257,7 +257,7 @@
|
|||
#define IMG_I2C_TIMEOUT (msecs_to_jiffies(1000))
|
||||
|
||||
/*
|
||||
* Worst incs are 1 (innacurate) and 16*256 (irregular).
|
||||
* Worst incs are 1 (inaccurate) and 16*256 (irregular).
|
||||
* So a sensible inc is the logarithmic mean: 64 (2^6), which is
|
||||
* in the middle of the valid range (0-127).
|
||||
*/
|
||||
|
|
|
@ -1118,8 +1118,10 @@ static int pci1xxxx_i2c_resume(struct device *dev)
|
|||
static DEFINE_SIMPLE_DEV_PM_OPS(pci1xxxx_i2c_pm_ops, pci1xxxx_i2c_suspend,
|
||||
pci1xxxx_i2c_resume);
|
||||
|
||||
static void pci1xxxx_i2c_shutdown(struct pci1xxxx_i2c *i2c)
|
||||
static void pci1xxxx_i2c_shutdown(void *data)
|
||||
{
|
||||
struct pci1xxxx_i2c *i2c = data;
|
||||
|
||||
pci1xxxx_i2c_config_padctrl(i2c, false);
|
||||
pci1xxxx_i2c_configure_core_reg(i2c, false);
|
||||
}
|
||||
|
@ -1156,7 +1158,7 @@ static int pci1xxxx_i2c_probe_pci(struct pci_dev *pdev,
|
|||
init_completion(&i2c->i2c_xfer_done);
|
||||
pci1xxxx_i2c_init(i2c);
|
||||
|
||||
ret = devm_add_action(dev, (void (*)(void *))pci1xxxx_i2c_shutdown, i2c);
|
||||
ret = devm_add_action(dev, pci1xxxx_i2c_shutdown, i2c);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
|
|
@ -520,6 +520,17 @@ mv64xxx_i2c_intr(int irq, void *dev_id)
|
|||
|
||||
while (readl(drv_data->reg_base + drv_data->reg_offsets.control) &
|
||||
MV64XXX_I2C_REG_CONTROL_IFLG) {
|
||||
/*
|
||||
* It seems that sometime the controller updates the status
|
||||
* register only after it asserts IFLG in control register.
|
||||
* This may result in weird bugs when in atomic mode. A delay
|
||||
* of 100 ns before reading the status register solves this
|
||||
* issue. This bug does not seem to appear when using
|
||||
* interrupts.
|
||||
*/
|
||||
if (drv_data->atomic)
|
||||
ndelay(100);
|
||||
|
||||
status = readl(drv_data->reg_base + drv_data->reg_offsets.status);
|
||||
mv64xxx_i2c_fsm(drv_data, status);
|
||||
mv64xxx_i2c_do_action(drv_data);
|
||||
|
|
|
@ -576,12 +576,14 @@ static int sprd_i2c_remove(struct platform_device *pdev)
|
|||
struct sprd_i2c *i2c_dev = platform_get_drvdata(pdev);
|
||||
int ret;
|
||||
|
||||
ret = pm_runtime_resume_and_get(i2c_dev->dev);
|
||||
ret = pm_runtime_get_sync(i2c_dev->dev);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
dev_err(&pdev->dev, "Failed to resume device (%pe)\n", ERR_PTR(ret));
|
||||
|
||||
i2c_del_adapter(&i2c_dev->adap);
|
||||
clk_disable_unprepare(i2c_dev->clk);
|
||||
|
||||
if (ret >= 0)
|
||||
clk_disable_unprepare(i2c_dev->clk);
|
||||
|
||||
pm_runtime_put_noidle(i2c_dev->dev);
|
||||
pm_runtime_disable(i2c_dev->dev);
|
||||
|
|
|
@ -6,6 +6,7 @@ config EEPROM_AT24
|
|||
depends on I2C && SYSFS
|
||||
select NVMEM
|
||||
select NVMEM_SYSFS
|
||||
select REGMAP
|
||||
select REGMAP_I2C
|
||||
help
|
||||
Enable this driver to get read/write support to most I2C EEPROMs
|
||||
|
|
Loading…
Reference in New Issue