Commit 022ce886 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
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
parents 6be5e47b 33f36147
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -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
+1 −0
Original line number Diff line number Diff line
@@ -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
+4 −0
Original line number Diff line number Diff line
@@ -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);
+1 −1
Original line number Diff line number Diff line
@@ -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).
 */
+4 −2
Original line number Diff line number Diff line
@@ -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;

Loading