• Fugang Duan's avatar
    i2c: imx: update i2c clock divider for each transaction · 9b2a6da3
    Fugang Duan authored
    Since IMX serial SOCs support low bus freq mode, some clocks freq
    may change to save power. I2C needs to check the clock source and
    update the divider.
    
    For example:
    i.MX6SL I2C clk is from IPG_PERCLK which is sourced from IPG_CLK.
    Under normal operation, IPG_CLK is 66MHz, ipg_perclk is at 22MHz.
    In low bus freq mode, IPG_CLK is at 12MHz and IPG_PERCLK is down
    to 4MHz. So the I2C driver must update the divider register for
    each transaction when the current IPG_PERCLK is not equal to the
    clock of previous transaction.
    Signed-off-by: default avatarFugang Duan  <B38611@freescale.com>
    [wsa: removed an outdated comment and simplified debug output]
    Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
    9b2a6da3
i2c-imx.c 22.8 KB