<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lwn.git/drivers/i2c/busses/i2c-cadence.c, branch docs-mw</title>
<subtitle>Linux kernel documentation tree maintained by Jonathan Corbet</subtitle>
<id>http://mirrors.hust.edu.cn/git/lwn.git/atom?h=docs-mw</id>
<link rel='self' href='http://mirrors.hust.edu.cn/git/lwn.git/atom?h=docs-mw'/>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/'/>
<updated>2025-10-14T11:51:07+00:00</updated>
<entry>
<title>i2c: Remove redundant pm_runtime_mark_last_busy() calls</title>
<updated>2025-10-14T11:51:07+00:00</updated>
<author>
<name>Sakari Ailus</name>
<email>sakari.ailus@linux.intel.com</email>
</author>
<published>2025-07-04T07:54:15+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=ae11e08c3d0c78d08dac4cea30bf39ede2130b03'/>
<id>urn:sha1:ae11e08c3d0c78d08dac4cea30bf39ede2130b03</id>
<content type='text'>
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().

Signed-off-by: Sakari Ailus &lt;sakari.ailus@linux.intel.com&gt;
Acked-by: Andi Shyti &lt;andi.shyti@kernel.org&gt;
Signed-off-by: Wolfram Sang &lt;wsa+renesas@sang-engineering.com&gt;
</content>
</entry>
<entry>
<title>i2c: use inclusive callbacks in struct i2c_algorithm</title>
<updated>2025-06-12T08:05:31+00:00</updated>
<author>
<name>Wolfram Sang</name>
<email>wsa+renesas@sang-engineering.com</email>
</author>
<published>2025-06-12T07:27:22+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=614b1c3cbfb0ecbafd40284d2f8e67c865818714'/>
<id>urn:sha1:614b1c3cbfb0ecbafd40284d2f8e67c865818714</id>
<content type='text'>
Convert the I2C subsystem to drop using the 'master_'-prefixed callbacks
in favor of the simplified ones. Fix alignment of '=' while here.

Signed-off-by: Wolfram Sang &lt;wsa+renesas@sang-engineering.com&gt;
</content>
</entry>
<entry>
<title>i2c: cadence: Move reset_control_assert after pm_runtime_set_suspended in probe error path</title>
<updated>2025-03-18T20:53:54+00:00</updated>
<author>
<name>Manikanta Guntupalli</name>
<email>manikanta.guntupalli@amd.com</email>
</author>
<published>2025-02-06T11:57:08+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=61b804548e17447b2a777650a8ff0708707f0cb9'/>
<id>urn:sha1:61b804548e17447b2a777650a8ff0708707f0cb9</id>
<content type='text'>
Ensure reset_control_assert() is called after pm_runtime_set_suspended()
in the cdns_i2c_probe exit path to maintain proper power management
sequence in error cases.

Signed-off-by: Manikanta Guntupalli &lt;manikanta.guntupalli@amd.com&gt;
Signed-off-by: Andi Shyti &lt;andi.shyti@kernel.org&gt;
Link: https://lore.kernel.org/r/20250206115708.1085523-3-manikanta.guntupalli@amd.com
</content>
</entry>
<entry>
<title>i2c: cadence: Simplify using devm_clk_get_enabled()</title>
<updated>2025-03-18T20:53:54+00:00</updated>
<author>
<name>Michal Simek</name>
<email>michal.simek@amd.com</email>
</author>
<published>2025-02-06T11:57:07+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=3d36dd1161ca3158f600d6dbeab8b645e56d1d92'/>
<id>urn:sha1:3d36dd1161ca3158f600d6dbeab8b645e56d1d92</id>
<content type='text'>
Clock handling can be very simplified with using devm_clk_get_enabled() as
was done by commit 8d2aaf4382b7 ("gpio: zynq: Simplify using
devm_clk_get_enabled()").
And also fix issue in connection to incorrect sequence when err_clk_dis
label is called.
When reset_control_deassert() fails it jumps to err_clk_dis label which
disables clock and also disable pm_runtime setup but nothing has been setup
at this time of failure because initialization is done below
reset_control_deassert() call.

Signed-off-by: Michal Simek &lt;michal.simek@amd.com&gt;
Signed-off-by: Manikanta Guntupalli &lt;manikanta.guntupalli@amd.com&gt;
Signed-off-by: Andi Shyti &lt;andi.shyti@kernel.org&gt;
Link: https://lore.kernel.org/r/20250206115708.1085523-2-manikanta.guntupalli@amd.com
</content>
</entry>
<entry>
<title>i2c: Switch back to struct platform_driver::remove()</title>
<updated>2024-11-17T10:58:14+00:00</updated>
<author>
<name>Uwe Kleine-König</name>
<email>u.kleine-koenig@baylibre.com</email>
</author>
<published>2024-09-29T07:21:57+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=32a0a94aa09e7095fccec1ffc969911f492cc7b9'/>
<id>urn:sha1:32a0a94aa09e7095fccec1ffc969911f492cc7b9</id>
<content type='text'>
After commit 0edb555a65d1 ("platform: Make platform_driver::remove()
return void") .remove() is (again) the right callback to implement for
platform drivers.

Convert all platform drivers below drivers/i2c to use .remove(), with
the eventual goal to drop struct platform_driver::remove_new(). As
.remove() and .remove_new() have the same prototypes, conversion is done
by just changing the structure member name in the driver initializer.

Signed-off-by: Uwe Kleine-König &lt;u.kleine-koenig@baylibre.com&gt;
Signed-off-by: Andi Shyti &lt;andi.shyti@kernel.org&gt;
</content>
</entry>
<entry>
<title>i2c: cadence: Add atomic transfer support for controller version 1.4</title>
<updated>2024-11-13T22:29:45+00:00</updated>
<author>
<name>Manikanta Guntupalli</name>
<email>manikanta.guntupalli@amd.com</email>
</author>
<published>2024-09-11T10:38:52+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=7cfe1a45de8d506d0722abda25430986376d3676'/>
<id>urn:sha1:7cfe1a45de8d506d0722abda25430986376d3676</id>
<content type='text'>
Rework the read and write code paths in the driver to support operation
in atomic contexts in master mode. This change does not apply to slave
mode because there is no way to handle interruptions in that context.

Adjust the message timeout to include some extra time. For non-atomic
contexts, 500 ms is added to the timeout. For atomic contexts,
2000 ms is added because transfers happen in polled mode, requiring
more time to account for the polling overhead.

Similar changes have been implemented in other drivers, including:
commit 3a5ee18d2a32 ("i2c: imx: implement master_xfer_atomic callback")
commit 445094c8a9fb ("i2c: exynos5: add support for atomic transfers")
commit ede2299f7101 ("i2c: tegra: Support atomic transfers")
commit fe402bd09049 ("i2c: meson: implement the master_xfer_atomic
callback")

Signed-off-by: Manikanta Guntupalli &lt;manikanta.guntupalli@amd.com&gt;
Reviewed-by: Andi Shyti &lt;andi.shyti@kernel.org&gt;
Signed-off-by: Andi Shyti &lt;andi.shyti@kernel.org&gt;
</content>
</entry>
<entry>
<title>i2c: cadence: Split cdns_i2c_master_xfer for Atomic Mode</title>
<updated>2024-11-13T22:29:45+00:00</updated>
<author>
<name>Manikanta Guntupalli</name>
<email>manikanta.guntupalli@amd.com</email>
</author>
<published>2024-09-11T10:38:51+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=ed866f41612a3f3934d0fbeb193fad334adcbc94'/>
<id>urn:sha1:ed866f41612a3f3934d0fbeb193fad334adcbc94</id>
<content type='text'>
The cdns_i2c_master_xfer function has been refactored to separate
the common code. This change facilitates better support for atomic
mode operations by isolating the shared logic.

Signed-off-by: Manikanta Guntupalli &lt;manikanta.guntupalli@amd.com&gt;
Reviewed-by: Andi Shyti &lt;andi.shyti@kernel.org&gt;
Acked-by: Michal Simek &lt;michal.simek@amd.com&gt;
Signed-off-by: Andi Shyti &lt;andi.shyti@kernel.org&gt;
</content>
</entry>
<entry>
<title>i2c: cadence: Relocate cdns_i2c_runtime_suspend and cdns_i2c_runtime_resume to facilitate atomic mode</title>
<updated>2024-11-13T22:29:45+00:00</updated>
<author>
<name>Manikanta Guntupalli</name>
<email>manikanta.guntupalli@amd.com</email>
</author>
<published>2024-09-11T10:38:50+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=ae8ec9dd19b3b55505a09b9d605efa5509d4c6fa'/>
<id>urn:sha1:ae8ec9dd19b3b55505a09b9d605efa5509d4c6fa</id>
<content type='text'>
Relocate cdns_i2c_runtime_suspend, cdns_i2c_runtime_resume and
cdns_i2c_init functions to avoid prototype statement in atomic
mode changes.

Signed-off-by: Manikanta Guntupalli &lt;manikanta.guntupalli@amd.com&gt;
Reviewed-by: Andi Shyti &lt;andi.shyti@kernel.org&gt;
Acked-by: Michal Simek &lt;michal.simek@amd.com&gt;
Signed-off-by: Andi Shyti &lt;andi.shyti@kernel.org&gt;
</content>
</entry>
<entry>
<title>Merge tag 'i2c-host-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux into i2c/for-mergewindow</title>
<updated>2024-05-13T13:56:14+00:00</updated>
<author>
<name>Wolfram Sang</name>
<email>wsa+renesas@sang-engineering.com</email>
</author>
<published>2024-05-13T13:56:14+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=0e9ee7dd7449371d221ce048615e5d1e271dacfc'/>
<id>urn:sha1:0e9ee7dd7449371d221ce048615e5d1e271dacfc</id>
<content type='text'>
Code cleanup:

A substantial code cleanup from Wolfram affects many drivers:

 - Removed dev_err() in case of timeout during i2c transfers, as
   timeouts are not considered errors and should not be treated
   as such.
 - For the same reason, 'timeout' variables have been renamed to
   'time_left'.

Other cleanups:

 - The viperboard driver now omits the "owner = THIS_MODULE"
   assignment.
 - Finally, we have eliminated the last remnants of
   I2C_CLASS_SPD: support for class-based devices has been
   completely removed from the mux-gpio driver.
 - In the ocore devices, a more standard use of ioport_map() for
   8-bit I/O read/write operations has been implemented.
 - The mpc driver will be among the first i2c drivers and one of
   the first in the kernel to use the __free auto cleanup
   routine.
 - The designware driver now uses MODULE_DEVICE_TABLE() instead
   of MODULE_ALIAS() for better consistency with the ID table.
 - Added prefixes to the octeon register macros.
 - Fixed some checkpatch errors in the newly created
   i2c-viai2c-common.c file.

Code refactoring:

 - The riic driver has refactored read/write operations to more
   flexibly support new platforms, laying the foundation for new
   SoC peculiarities.
 - In the i801 driver, a notifier callback has been created for
   muxed child segments.
 - The lpi2c driver now sets a clock rate during probe instead
   of continuously calling clk_get_rate().
 - Improvements in the clock divisor logic to accommodate other
   clock frequencies.
 - Combined some common functionalities during initialization
   for the wmt driver and separated others that can be
   independently used by different drivers. Now, all the common
   functionalities are grouped in the i2c-viai2c-common.c file.
 - Improved the clock stretching mechanism in the newly created
   i2c-viai2c-common.c file, inherited from the previous
   i2c-wmt.c.

Features added:

 - The octeon driver now includes watchdog timeout handling.
 - Added high-speed support for the octeon driver.

Added support for:

 - R9A09G057 SoC in the riic driver.
 - Rapids-D I2C controller in the designware driver.
 - Cadence driver now also supports RISC-V architectures.
 - Added support to the WMT device as a separate driver using the
   newly created i2c-viai2c-common.c functionalities.
 - Added support for the Zhaoxin I2C controller.

Some improvements in the bindings:

 - The pnx driver is converted to dtschema.
 - Added documentation for the Qualcomm SC8280XP.
</content>
</entry>
<entry>
<title>i2c: cadence: remove printout on handled timeouts</title>
<updated>2024-05-05T22:56:32+00:00</updated>
<author>
<name>Wolfram Sang</name>
<email>wsa+renesas@sang-engineering.com</email>
</author>
<published>2024-04-10T11:24:18+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=6808d67f512ab0db5d6f44c2f13e7d6a6fd5e4f5'/>
<id>urn:sha1:6808d67f512ab0db5d6f44c2f13e7d6a6fd5e4f5</id>
<content type='text'>
I2C and SMBus timeouts are not something the user needs to be informed
about on controller level. The client driver may know if that really is
a problem and give more detailed information to the user. The controller
should just pass this information upwards. Remove the printout.

Signed-off-by: Wolfram Sang &lt;wsa+renesas@sang-engineering.com&gt;
Acked-by: Michal Simek &lt;michal.simek@amd.com&gt;
Signed-off-by: Andi Shyti &lt;andi.shyti@kernel.org&gt;
</content>
</entry>
</feed>
