<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/i2c/i2c-core-base.c, branch linux-5.11.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.11.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.11.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2021-04-14T06:47:14Z</updated>
<entry>
<title>i2c: turn recovery error on init to debug</title>
<updated>2021-04-14T06:47:14Z</updated>
<author>
<name>Wolfram Sang</name>
</author>
<published>2021-03-15T11:50:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9056443b5fc5d3a38d8ebd7137ba048dd838e5c7'/>
<id>urn:sha1:9056443b5fc5d3a38d8ebd7137ba048dd838e5c7</id>
<content type='text'>
commit e409a6a3e0690efdef9b8a96197bc61ff117cfaf upstream.

In some configurations, recovery is optional. So, don't throw an error
when it is not used because e.g. pinctrl settings for recovery are not
provided. Reword the message and make it debug output.

Reported-by: Klaus Kudielka &lt;klaus.kudielka@gmail.com&gt;
Tested-by: Klaus Kudielka &lt;klaus.kudielka@gmail.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa+renesas@sang-engineering.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa@kernel.org&gt;
Cc: stable@kernel.org
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>i2c: remove check that can never be true</title>
<updated>2020-12-11T14:43:49Z</updated>
<author>
<name>Uwe Kleine-König</name>
</author>
<published>2020-11-26T07:23:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4e970a0ada5299d017a4263074f725227c2d2852'/>
<id>urn:sha1:4e970a0ada5299d017a4263074f725227c2d2852</id>
<content type='text'>
A driver remove callback is only called if the device was bound before.
So it's sure that both dev and dev-&gt;driver are valid and dev is an i2c
device. If the check fails something louder than "return 0" might be
appropriate because the problem is grave (something like memory
corruption), otherwise the check is useless.

Signed-off-by: Uwe Kleine-König &lt;u.kleine-koenig@pengutronix.de&gt;
Signed-off-by: Wolfram Sang &lt;wsa@kernel.org&gt;
</content>
</entry>
<entry>
<title>i2c: Warn when device removing fails</title>
<updated>2020-12-11T14:42:19Z</updated>
<author>
<name>Uwe Kleine-König</name>
</author>
<published>2020-11-26T07:23:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=71637c620a826434ca6f888b0364a036faa27ffa'/>
<id>urn:sha1:71637c620a826434ca6f888b0364a036faa27ffa</id>
<content type='text'>
The driver core ignores the return value of struct bus_type::remove. So
warn if there is an error that went unnoticed before and return 0
unconditionally in i2c_device_remove().

This prepares changing struct bus_type::remove to return void.

Signed-off-by: Uwe Kleine-König &lt;u.kleine-koenig@pengutronix.de&gt;
[wsa: added a comment and removed unneeded initializtion]
Signed-off-by: Wolfram Sang &lt;wsa@kernel.org&gt;
</content>
</entry>
<entry>
<title>i2c: core: Call i2c_acpi_install_space_handler() before i2c_acpi_register_devices()</title>
<updated>2020-09-17T21:16:59Z</updated>
<author>
<name>Hans de Goede</name>
</author>
<published>2020-09-09T10:32:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=21653a4181ff292480599dad996a2b759ccf050f'/>
<id>urn:sha1:21653a4181ff292480599dad996a2b759ccf050f</id>
<content type='text'>
Some ACPI i2c-devices _STA method (which is used to detect if the device
is present) use autodetection code which probes which device is present
over i2c. This requires the I2C ACPI OpRegion handler to be registered
before we enumerate i2c-clients under the i2c-adapter.

This fixes the i2c touchpad on the Lenovo ThinkBook 14-IIL and
ThinkBook 15 IIL not getting an i2c-client instantiated and thus not
working.

BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1842039
Signed-off-by: Hans de Goede &lt;hdegoede@redhat.com&gt;
Reviewed-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa@kernel.org&gt;
</content>
</entry>
<entry>
<title>i2c: core: Don't fail PRP0001 enumeration when no ID table exist</title>
<updated>2020-08-25T07:21:55Z</updated>
<author>
<name>Andy Shevchenko</name>
</author>
<published>2020-08-21T17:03:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e3cb82c6d6f6c27ab754e13ae29bdd6b949982e2'/>
<id>urn:sha1:e3cb82c6d6f6c27ab754e13ae29bdd6b949982e2</id>
<content type='text'>
When commit c64ffff7a9d1 ("i2c: core: Allow empty id_table in ACPI case
as well") fixed the enumeration of I²C devices on ACPI enabled platforms
when driver has no ID table, it missed the PRP0001 support.

i2c_device_match() and i2c_acpi_match_device() differently match
driver against given device. Use acpi_driver_match_device(), that is used
in the former, in i2c_device_probe() and don't fail PRP0001 enumeration
when no ID table exist.

Fixes: c64ffff7a9d1 ("i2c: core: Allow empty id_table in ACPI case as well")
BugLink: https://stackoverflow.com/q/63519678/2511795
Signed-off-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;
Reviewed-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa@kernel.org&gt;
</content>
</entry>
<entry>
<title>i2c: core: treat EPROBE_DEFER when acquiring SCL/SDA GPIOs</title>
<updated>2020-08-05T09:52:27Z</updated>
<author>
<name>Codrin Ciubotariu</name>
</author>
<published>2020-08-04T09:59:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=23a698fe65eca15fbdf925e8d70c5bf20ebf989e'/>
<id>urn:sha1:23a698fe65eca15fbdf925e8d70c5bf20ebf989e</id>
<content type='text'>
Even if I2C bus GPIO recovery is optional, devm_gpiod_get() can return
-EPROBE_DEFER, so we should at least treat that. This ends up with
i2c_register_adapter() to be able to return -EPROBE_DEFER.

Signed-off-by: Codrin Ciubotariu &lt;codrin.ciubotariu@microchip.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa@kernel.org&gt;
</content>
</entry>
<entry>
<title>i2c: core: add generic I2C GPIO recovery</title>
<updated>2020-08-05T09:52:27Z</updated>
<author>
<name>Codrin Ciubotariu</name>
</author>
<published>2020-08-04T09:59:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=75820314de26b00aaea0d0e79269c0d17914c5c4'/>
<id>urn:sha1:75820314de26b00aaea0d0e79269c0d17914c5c4</id>
<content type='text'>
Multiple I2C bus drivers use similar bindings to obtain information needed
for I2C recovery. For example, for platforms using device-tree, the
properties look something like this:

&amp;i2c {
	...
	pinctrl-names = "default", "gpio";
	pinctrl-0 = &lt;&amp;pinctrl_i2c_default&gt;;
	pinctrl-1 = &lt;&amp;pinctrl_i2c_gpio&gt;;
	sda-gpios = &lt;&amp;pio 0 GPIO_ACTIVE_HIGH&gt;;
	scl-gpios = &lt;&amp;pio 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)&gt;;
	...
}

For this reason, we can add this common initialization in the core. This
way, other I2C bus drivers will be able to support GPIO recovery just by
providing a pointer to platform's pinctrl and calling i2c_recover_bus()
when SDA is stuck low.

Signed-off-by: Codrin Ciubotariu &lt;codrin.ciubotariu@microchip.com&gt;
[wsa: inverted one logic for better readability, minor update to kdoc]
Signed-off-by: Wolfram Sang &lt;wsa@kernel.org&gt;
</content>
</entry>
<entry>
<title>i2c: core: do not use logical device when creating irq domain</title>
<updated>2020-07-27T20:31:16Z</updated>
<author>
<name>Wolfram Sang</name>
</author>
<published>2020-07-01T08:23:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8682dc1245099cccd7e75f72ffb911341bf45ba7'/>
<id>urn:sha1:8682dc1245099cccd7e75f72ffb911341bf45ba7</id>
<content type='text'>
Let's rather use its physical parent device to give proper namings and
connections in debugfs.

Signed-off-by: Wolfram Sang &lt;wsa+renesas@sang-engineering.com&gt;
Reviewed-by: Benjamin Tissoires &lt;benjamin.tissoires@redhat.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa@kernel.org&gt;
</content>
</entry>
<entry>
<title>i2c: revert "i2c: core: Allow drivers to disable i2c-core irq mapping"</title>
<updated>2020-07-24T19:48:27Z</updated>
<author>
<name>Wolfram Sang</name>
</author>
<published>2020-06-30T16:24:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0c2a34937f7e4c4776bb261114c475392da2355c'/>
<id>urn:sha1:0c2a34937f7e4c4776bb261114c475392da2355c</id>
<content type='text'>
This manually reverts commit d1d84bb95364ed604015c2b788caaf3dbca0262f.
The only user has gone two years ago with commit 589edb56b424 ("ACPI /
scan: Create platform device for INT33FE ACPI nodes") and no new user
has showed up. Remove and hope we will never need it again.

Signed-off-by: Wolfram Sang &lt;wsa+renesas@sang-engineering.com&gt;
Acked-by: Hans de Goede &lt;hdegoede@redhat.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa@kernel.org&gt;
</content>
</entry>
<entry>
<title>i2c: remove deprecated i2c_new_device API</title>
<updated>2020-06-19T07:20:28Z</updated>
<author>
<name>Wolfram Sang</name>
</author>
<published>2020-06-15T07:58:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=390fd0475af565d2fc31de98fcc84f3c2922e008'/>
<id>urn:sha1:390fd0475af565d2fc31de98fcc84f3c2922e008</id>
<content type='text'>
All in-tree users have been converted to the new i2c_new_client_device
function, so remove this deprecated one.

Signed-off-by: Wolfram Sang &lt;wsa+renesas@sang-engineering.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa@kernel.org&gt;
</content>
</entry>
</feed>
