[PATCH v4 0/9] i2c: riic: driver cleanup and improvements

From: Prabhakar
Date: Fri Jan 03 2025 - 04:19:32 EST


From: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>

Simplify and modernize the RIIC I2C driver with the following changes:

1. Refactor error handling in `riic_i2c_probe()` and `riic_init_hw()` by
replacing `dev_err()` with `dev_err_probe()` and using a local `dev`
pointer.
2. Use `BIT()` and `GENMASK()` macros for consistent and clear bit
handling.
3. Manage reset lines with `devm_reset_control_get_exclusive()` to
simplify resource handling.
4. Mark `riic_irqs` as `const` and simplify clock tick calculations with
predefined macros.
5. Add `riic_bus_barrier()` to check bus availability and improve
reliability.

v3->v4
-> Created new patch 1/9
-> Dropped RB/TB tags from patch 8/9
-> Dropped `unsigned long` cast and updated the format specifier while
printing bus frequency
-> Included required headers
-> Propogated the error

Cheers,
Prabhakar

Lad Prabhakar (9):
i2c: riic: Introduce a separate variable for IRQ
i2c: riic: Use dev_err_probe in probe and riic_init_hw functions
i2c: riic: Use local `dev` pointer in `dev_err_probe()`
i2c: riic: Use BIT macro consistently
i2c: riic: Use GENMASK() macro for bitmask definitions
i2c: riic: Make use of devres helper to request deasserted reset line
i2c: riic: Mark riic_irqs array as const
i2c: riic: Use predefined macro and simplify clock tick calculation
i2c: riic: Add `riic_bus_barrier()` to check bus availability

drivers/i2c/busses/i2c-riic.c | 137 ++++++++++++++++++----------------
1 file changed, 72 insertions(+), 65 deletions(-)

--
2.43.0