<feed xmlns='http://www.w3.org/2005/Atom'>
<title>u-boot.git/drivers/i2c, branch v2025.07</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/'/>
<entry>
<title>i2c: mux: Fix the crash when the i2c-arbitrator node is present</title>
<updated>2025-06-24T14:18:08+00:00</updated>
<author>
<name>Venkatesh Yadav Abbarapu</name>
<email>venkatesh.abbarapu@amd.com</email>
</author>
<published>2025-06-23T08:06:07+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=903eb123236ccbd8ef05d43507a2a910b785bd56'/>
<id>903eb123236ccbd8ef05d43507a2a910b785bd56</id>
<content type='text'>
Observing the crash when we add the i2c-arbitrator node in the device
tree as per the DT bindings. The issue is with the child node of
i2c-arbitrator@72 i.e., i2c@f1950000-&gt;i2c-arbitrator@72-&gt;i2c-arb, as the
arbitrator uses the uclass of mux(UCLASS_I2C_MUX) and the mux uclass driver
checks for the "reg" property using the i2c_mux_child_post_bind() function,
if it won't find the "reg" property it will return -EINVAL which is leading
to the crash.
So, add the logic to check whether the  child node has the "reg" property,
if the "reg" property exists then read the "reg" and update the channel.

https://www.kernel.org/doc/Documentation/devicetree/bindings/i2c/i2c-arb.txt

Signed-off-by: Venkatesh Yadav Abbarapu &lt;venkatesh.abbarapu@amd.com&gt;
Reviewed-by: Heiko Schocher &lt;hs@denx.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Observing the crash when we add the i2c-arbitrator node in the device
tree as per the DT bindings. The issue is with the child node of
i2c-arbitrator@72 i.e., i2c@f1950000-&gt;i2c-arbitrator@72-&gt;i2c-arb, as the
arbitrator uses the uclass of mux(UCLASS_I2C_MUX) and the mux uclass driver
checks for the "reg" property using the i2c_mux_child_post_bind() function,
if it won't find the "reg" property it will return -EINVAL which is leading
to the crash.
So, add the logic to check whether the  child node has the "reg" property,
if the "reg" property exists then read the "reg" and update the channel.

https://www.kernel.org/doc/Documentation/devicetree/bindings/i2c/i2c-arb.txt

Signed-off-by: Venkatesh Yadav Abbarapu &lt;venkatesh.abbarapu@amd.com&gt;
Reviewed-by: Heiko Schocher &lt;hs@denx.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c: designware_i2c Return -ETIMEDOUT for timeout errors</title>
<updated>2025-06-02T09:02:58+00:00</updated>
<author>
<name>Wojciech Szamocki</name>
<email>wojciech.szamocki@nokia.com</email>
</author>
<published>2025-05-23T10:57:07+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=ec7b49c4108afdca3864da45b5444efb327ce75c'/>
<id>ec7b49c4108afdca3864da45b5444efb327ce75c</id>
<content type='text'>
Change the return value for timeout errors in i2c-designware from 1 to
-ETIMEDOUT. Returning errors as negative values is standard practice in the
u-boot, which enhances error handling consistency across the codebase.

The current behavior can lead to silent errors when functions check for
negative return values to identify errors. For example, in
`dm_i2c_reg_read` from i2c-uclass.c, a timeout results in an uninitialized
value being returned, potentially causing unexpected behavior.

Cc: Heiko Schocher &lt;hs@denx.de&gt;
Cc: Tom Rini &lt;trini@konsulko.com&gt;
Cc: Wojciech Szamocki &lt;wojciech.szamocki@nokia.com&gt;
Signed-off-by: Wojciech Szamocki &lt;wojciech.szamocki@nokia.com&gt;
Reviewed-by: Heiko Schocher &lt;hs@denx.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change the return value for timeout errors in i2c-designware from 1 to
-ETIMEDOUT. Returning errors as negative values is standard practice in the
u-boot, which enhances error handling consistency across the codebase.

The current behavior can lead to silent errors when functions check for
negative return values to identify errors. For example, in
`dm_i2c_reg_read` from i2c-uclass.c, a timeout results in an uninitialized
value being returned, potentially causing unexpected behavior.

Cc: Heiko Schocher &lt;hs@denx.de&gt;
Cc: Tom Rini &lt;trini@konsulko.com&gt;
Cc: Wojciech Szamocki &lt;wojciech.szamocki@nokia.com&gt;
Signed-off-by: Wojciech Szamocki &lt;wojciech.szamocki@nokia.com&gt;
Reviewed-by: Heiko Schocher &lt;hs@denx.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c: mediatek: remove duplicate entry in mt_i2c_regs_v1[]</title>
<updated>2025-04-22T11:04:22+00:00</updated>
<author>
<name>Martin Schiller</name>
<email>ms@dev.tdt.de</email>
</author>
<published>2025-04-16T06:29:19+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=28d78a53c72c4ac3d5033a0c21396cadf7438bee'/>
<id>28d78a53c72c4ac3d5033a0c21396cadf7438bee</id>
<content type='text'>
This removes a duplicate entry in mt_i2c_regs_v1[].

Signed-off-by: Martin Schiller &lt;ms@dev.tdt.de&gt;
Reviewed-by: Heiko Schocher &lt;hs@denx.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This removes a duplicate entry in mt_i2c_regs_v1[].

Signed-off-by: Martin Schiller &lt;ms@dev.tdt.de&gt;
Reviewed-by: Heiko Schocher &lt;hs@denx.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c: mediatek: add missing empty entry at end of mkt_i2c_ids[]</title>
<updated>2025-04-22T11:04:16+00:00</updated>
<author>
<name>Martin Schiller</name>
<email>ms@dev.tdt.de</email>
</author>
<published>2025-04-16T06:29:18+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=99fc450cc7f9f07741a197866e59031f98b442dd'/>
<id>99fc450cc7f9f07741a197866e59031f98b442dd</id>
<content type='text'>
This adds the missing empty entry at the end of mtk_i2c_ids[].

Signed-off-by: Martin Schiller &lt;ms@dev.tdt.de&gt;
Reviewed-by: Heiko Schocher &lt;hs@denx.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds the missing empty entry at the end of mtk_i2c_ids[].

Signed-off-by: Martin Schiller &lt;ms@dev.tdt.de&gt;
Reviewed-by: Heiko Schocher &lt;hs@denx.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drivers: i2c: Kconfig: Add CONFIG_SYS_I2C_OMAP24XX_REPEATED_START</title>
<updated>2025-04-22T11:03:48+00:00</updated>
<author>
<name>Aniket Limaye</name>
<email>a-limaye@ti.com</email>
</author>
<published>2025-04-22T10:19:52+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=fdab9d4b8082a0f7df3b3a5b613e69963c4666cb'/>
<id>fdab9d4b8082a0f7df3b3a5b613e69963c4666cb</id>
<content type='text'>
Add a Kconfig option to disable sending Stop conditions between multiple
i2c_msgs within a single xfer. Enable this config by default for ARCH_K3
platforms.

Signed-off-by: Aniket Limaye &lt;a-limaye@ti.com&gt;
Reviewed-by: Heiko Schocher &lt;hs@denx.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add a Kconfig option to disable sending Stop conditions between multiple
i2c_msgs within a single xfer. Enable this config by default for ARCH_K3
platforms.

Signed-off-by: Aniket Limaye &lt;a-limaye@ti.com&gt;
Reviewed-by: Heiko Schocher &lt;hs@denx.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c: omap24xx_i2c: support CONFIG for repeated start in DM_I2C xfer</title>
<updated>2025-04-22T11:03:43+00:00</updated>
<author>
<name>Aniket Limaye</name>
<email>a-limaye@ti.com</email>
</author>
<published>2025-04-22T10:19:51+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=5b0c6e02f83c9407103cc472e3313335c4f92dff'/>
<id>5b0c6e02f83c9407103cc472e3313335c4f92dff</id>
<content type='text'>
Repeated Start Condition (Sr) can be used to transfer multiple i2c msgs
without sending a Stop condition (P). So far, the driver default was to
always send a Stop condition after every i2c msg.

Add support for a config option (CONFIG_SYS_I2C_OMAP24XX_REPEATED_START)
to disable sending the Stop condition by default. If this config is
enabled, Stop condition will be sent only if explicitly requested in the
msg flags OR if it is the last msg in the transfer.

Consequently, handle the Repeated Start condition (Sr) in the next msg
by not calling the wait_for_bb() check since it will simply timeout in
the absence of a stop condition (BB will be 1 until Stop is programmed)

Signed-off-by: Aniket Limaye &lt;a-limaye@ti.com&gt;
Reviewed-by: Heiko Schocher &lt;hs@denx.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Repeated Start Condition (Sr) can be used to transfer multiple i2c msgs
without sending a Stop condition (P). So far, the driver default was to
always send a Stop condition after every i2c msg.

Add support for a config option (CONFIG_SYS_I2C_OMAP24XX_REPEATED_START)
to disable sending the Stop condition by default. If this config is
enabled, Stop condition will be sent only if explicitly requested in the
msg flags OR if it is the last msg in the transfer.

Consequently, handle the Repeated Start condition (Sr) in the next msg
by not calling the wait_for_bb() check since it will simply timeout in
the absence of a stop condition (BB will be 1 until Stop is programmed)

Signed-off-by: Aniket Limaye &lt;a-limaye@ti.com&gt;
Reviewed-by: Heiko Schocher &lt;hs@denx.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c: omap24xx_i2c: Use new function __omap24_i2c_xfer_msg()</title>
<updated>2025-04-22T11:03:37+00:00</updated>
<author>
<name>Aniket Limaye</name>
<email>a-limaye@ti.com</email>
</author>
<published>2025-04-22T10:19:50+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=520b57ee4763a81a165eabf700a585ae67d79aa7'/>
<id>520b57ee4763a81a165eabf700a585ae67d79aa7</id>
<content type='text'>
Remove __omap24_i2c_read/write() usage from omap_i2c_xfer() in favour of
the more flexible __omap24_i2c_xfer_msg().
Consequently, these are also no longer needed when DM_I2C is enabled.

New function __omap24_i2c_xfer_msg() will take care of individual read
OR write transfers with a target device. It goes through below sequence:
- Program the provided Target Chip address (OMAP_I2C_SA_REG)
- Program the provided Data len (OMAP_I2C_CNT_REG)
- Program the provided Control register flags (OMAP_I2C_CON_REG)
- Read from or Write to the provided Data buffer (OMAP_I2C_DATA_REG)

For a detailed programming guide, refer to the TRM[0] (12.1.3.4 I2C
Programming Guide).

This patch by itself should be a transparent change. However this is
needed for implementing a proper Repeated Start (Sr) functionality for
i2c_msgs.

Previous implementation for omap_i2c_xfer called __omap24_i2c_read/write
functions, with hardcoded addr=0 and alen=0 for each i2c_msg. Each of
these calls would program the registers always with a Stop bit set, not
allowing for a repeated start between i2c_msgs in the same xfer().

[0]: https://www.ti.com/lit/zip/spruj28 (TRM)

Signed-off-by: Aniket Limaye &lt;a-limaye@ti.com&gt;
Reviewed-by: Heiko Schocher &lt;hs@denx.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove __omap24_i2c_read/write() usage from omap_i2c_xfer() in favour of
the more flexible __omap24_i2c_xfer_msg().
Consequently, these are also no longer needed when DM_I2C is enabled.

New function __omap24_i2c_xfer_msg() will take care of individual read
OR write transfers with a target device. It goes through below sequence:
- Program the provided Target Chip address (OMAP_I2C_SA_REG)
- Program the provided Data len (OMAP_I2C_CNT_REG)
- Program the provided Control register flags (OMAP_I2C_CON_REG)
- Read from or Write to the provided Data buffer (OMAP_I2C_DATA_REG)

For a detailed programming guide, refer to the TRM[0] (12.1.3.4 I2C
Programming Guide).

This patch by itself should be a transparent change. However this is
needed for implementing a proper Repeated Start (Sr) functionality for
i2c_msgs.

Previous implementation for omap_i2c_xfer called __omap24_i2c_read/write
functions, with hardcoded addr=0 and alen=0 for each i2c_msg. Each of
these calls would program the registers always with a Stop bit set, not
allowing for a repeated start between i2c_msgs in the same xfer().

[0]: https://www.ti.com/lit/zip/spruj28 (TRM)

Signed-off-by: Aniket Limaye &lt;a-limaye@ti.com&gt;
Reviewed-by: Heiko Schocher &lt;hs@denx.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c: omap24xx_i2c: Remove unused CONFIG_I2C_REPEATED_START</title>
<updated>2025-04-22T11:03:31+00:00</updated>
<author>
<name>Aniket Limaye</name>
<email>a-limaye@ti.com</email>
</author>
<published>2025-04-22T10:19:49+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=640f9f33a17ad799d63a8b6f44ce494193d64656'/>
<id>640f9f33a17ad799d63a8b6f44ce494193d64656</id>
<content type='text'>
Remove unused piece of code under CONFIG_I2C_REPEATED_START which does
not have any Kconfig entry at all.

Signed-off-by: Aniket Limaye &lt;a-limaye@ti.com&gt;
Reviewed-by: Heiko Schocher &lt;hs@denx.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove unused piece of code under CONFIG_I2C_REPEATED_START which does
not have any Kconfig entry at all.

Signed-off-by: Aniket Limaye &lt;a-limaye@ti.com&gt;
Reviewed-by: Heiko Schocher &lt;hs@denx.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Kbuild: Always use $(PHASE_)</title>
<updated>2025-04-11T18:16:44+00:00</updated>
<author>
<name>Tom Rini</name>
<email>trini@konsulko.com</email>
</author>
<published>2025-04-01T22:55:23+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=302b41d5397e9f821d360a74335e8821d4513970'/>
<id>302b41d5397e9f821d360a74335e8821d4513970</id>
<content type='text'>
It is confusing to have both "$(PHASE_)" and "$(XPL_)" be used in our
Makefiles as part of the macros to determine when to do something in our
Makefiles based on what phase of the build we are in. For consistency,
bring this down to a single macro and use "$(PHASE_)" only.

Signed-off-by: Tom Rini &lt;trini@konsulko.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is confusing to have both "$(PHASE_)" and "$(XPL_)" be used in our
Makefiles as part of the macros to determine when to do something in our
Makefiles based on what phase of the build we are in. For consistency,
bring this down to a single macro and use "$(PHASE_)" only.

Signed-off-by: Tom Rini &lt;trini@konsulko.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c: Add support for ADI SC5XX-family I2C peripheral</title>
<updated>2025-03-12T16:24:58+00:00</updated>
<author>
<name>Nathan Barrett-Morrison</name>
<email>nathan.morrison@timesys.com</email>
</author>
<published>2025-02-26T17:30:28+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=7f99650bb8f592827fc687022f4238ffdd4fde3e'/>
<id>7f99650bb8f592827fc687022f4238ffdd4fde3e</id>
<content type='text'>
Co-developed-by: Greg Malysa &lt;malysagreg@gmail.com&gt;
Signed-off-by: Greg Malysa &lt;malysagreg@gmail.com&gt;
Co-developed-by: Ian Roberts &lt;ian.roberts@timesys.com&gt;
Signed-off-by: Ian Roberts &lt;ian.roberts@timesys.com&gt;
Co-developed-by: Angelo Dureghello &lt;angelo.dureghello@timesys.com&gt;
Signed-off-by: Angelo Dureghello &lt;angelo.dureghello@timesys.com&gt;
Signed-off-by: Vasileios Bimpikas &lt;vasileios.bimpikas@analog.com&gt;
Signed-off-by: Utsav Agarwal &lt;utsav.agarwal@analog.com&gt;
Signed-off-by: Arturs Artamonovs &lt;arturs.artamonovs@analog.com&gt;
Signed-off-by: Oliver Gaskell &lt;Oliver.Gaskell@analog.com&gt;
Signed-off-by: Nathan Barrett-Morrison &lt;nathan.morrison@timesys.com&gt;
Reviewed-by: Heiko Schocher &lt;hs@denx.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-developed-by: Greg Malysa &lt;malysagreg@gmail.com&gt;
Signed-off-by: Greg Malysa &lt;malysagreg@gmail.com&gt;
Co-developed-by: Ian Roberts &lt;ian.roberts@timesys.com&gt;
Signed-off-by: Ian Roberts &lt;ian.roberts@timesys.com&gt;
Co-developed-by: Angelo Dureghello &lt;angelo.dureghello@timesys.com&gt;
Signed-off-by: Angelo Dureghello &lt;angelo.dureghello@timesys.com&gt;
Signed-off-by: Vasileios Bimpikas &lt;vasileios.bimpikas@analog.com&gt;
Signed-off-by: Utsav Agarwal &lt;utsav.agarwal@analog.com&gt;
Signed-off-by: Arturs Artamonovs &lt;arturs.artamonovs@analog.com&gt;
Signed-off-by: Oliver Gaskell &lt;Oliver.Gaskell@analog.com&gt;
Signed-off-by: Nathan Barrett-Morrison &lt;nathan.morrison@timesys.com&gt;
Reviewed-by: Heiko Schocher &lt;hs@denx.de&gt;
</pre>
</div>
</content>
</entry>
</feed>
