Re: [EXT] Re: [PATCH 1/2] i2c: imx: I2C Driver doesn't consider I2C_IPGCLK_SEL RCW bit when using ls1046a SoC

From: Wolfram Sang
Date: Thu May 09 2019 - 03:56:45 EST



> > There are 2 places where clock division takes place -
> >
> > 1) There is a clock divider outside of I2C block, which makes the clock reaching
> > I2C module as - Platform Clock/2
> > 2) There is another clock divider which specifically divides the clock to the I2C block,
> > based on RCW bit 424 (if 424th bit is 0 then the baud clock source is Platform Clock/4,
> > if 424th bit is 1 then it remains Platform Clock/2)
>
> So there is a clock divider which based on RCW bit 424 divides the clock
> *to* the i2c module. This suggests the divider is outside of the i2c
> module itself and thus part of the clock module.
>
> We could argue that this divider sits between the clock module and the
> i2c module, but for sure it's not in the i2c module. I really suggest to
> put this SoC specific into the SoC specific clock driver rather than
> littering the i2c driver with it.

I am with Sascha here. The fact that you need to of_ioremap some
registers is a really strong indication that the code should go
somewhere else. I can't tell the best place (clock driver or seperate
GUTS driver or syscon driver), but the I2C bus driver seems not
suitable.

Attachment: signature.asc
Description: PGP signature