[PATCH 3/5] i2c: rzg2l: Add I2C driver for RZ/G2L family

Paul Barker paul.barker.ct at bp.renesas.com
Sun Nov 19 21:48:53 CET 2023


On Sun, Nov 19, 2023 at 09:15:36PM +0100, Marek Vasut wrote:
> On 11/15/23 18:40, Paul Barker wrote:
> > This driver supports the I2C module on the Renesas RZ/G2L (R9A07G044)
> > SoC, also known as the RIIC module.
> > 
> > This patch is based on both the u-boot driver in the Renesas RZ BSP
> > 3.0.5 release [1] (commit 7fcc1fdc2534), and the Linux v6.6 driver
> > (commit ffc253263a13).
> > 
> > Support for deblocking the I2C bus is included as this may be needed
> > after triggering a reset via the Power Management IC (PMIC) over I2C
> > (the PMIC asserts the reset line before the SoC completes the I2C write
> > transaction with obvious bus locking effects). If the SDA line is
> > observed to be low during initialisation, we automatically attempt to
> > deblock.
> > 
> > [1]: https://github.com/renesas-rz/renesas-u-boot-cip
> > 
> > Signed-off-by: Paul Barker <paul.barker.ct at bp.renesas.com>
> 
> The driver seems very similar to drivers/i2c/rcar_iic.c , can there be some
> code reuse ?

My initial idea was to extend the R-Car iic driver but I quickly saw
that would be very messy. All the registers and bits are in different
places, the calculations are different (particularly in regard to
setting bus speed) and the read/write process has more edge cases for
the RZ/G2L. The bus recovery mechanism we use also doesn't exist on
previous R-Car SoCs.

The Linux drivers for these modules are also separate, see
drivers/i2c/busses/i2c-sh_mobile.c (for R-Car and earlier SoCs) and
drivers/i2c/busses/i2c-riic.c (for RZ/G2L) in the Linux kernel.

Thanks,
Paul
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20231119/d6ff3071/attachment.sig>


More information about the U-Boot mailing list