Hi Wolfram, Am Dienstag, 19. Dezember 2023, 18:06:26 CET schrieb Wolfram Sang: > On Sun, Dec 03, 2023 at 11:39:59PM +1100, Tim Lunn wrote: > > Rockchip RV1126 is using old style i2c controller, the i2c2 > > bus uses a non-sequential offset in the grf register for the > > mask/value bits for this bus. > > > > This patch fixes i2c2 bus on rv1126 SoCs. > > > > Signed-off-by: Tim Lunn <tim@xxxxxxxxxxxxxx> > > Acked-by: Heiko Stuebner <heiko@xxxxxxxxx> > > > > Applied to for-next, thanks! > > But, phew, the fact that this driver _needs_ i2c-aliases in DT should be > fixed somewhen. I totally overlooked this so far :/ Yeah, relying on aliases for this is probably not the most elegant thing to do ;-) Though right now I don't see the perfect way to change that. Options I can think of, could be: (1) As this really is "just" a thing for older socs that offer both a very legacy i2c and the more modern one we use, I guess one possibility would be to move this completely out of the i2c driver and into the "grf-cleanup" driver [0]. We never actually implemented the "old"-style i2c driver for rk29xx and earlier - and that thing is more than 10 years old now, so noone ever will. So we always want to switch to the new one anyway in the kernel. (2) The other option would be to try to identify the busses by their address. We do this in some places, like the dsi driver [1] with the entry matched against the reg property. I guess from a "being done with it" perspective, the first option would be nicer ;-) . Thoughts? Heiko [0] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/soc/rockchip/grf.c That code does a number of settings the in the "General Register Files" that we simply expect, so also doing the i2c controller switch there for all i2c busses in one go would make sense. [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c#n1586