> > 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

Reply via email to