Skip to content
  • Chris Zhong's avatar
    drivers/rtc/rtc-rk808.c: fix rtc time reading issue · c412c603
    Chris Zhong authored
    
    
    After we set the GET_TIME bit, the rtc time can't be read immediately.  We
    should wait up to 31.25 us, about one cycle of 32khz.  Otherwise reading
    RTC time will return a old time.  If we clear the GET_TIME bit after
    setting, the time of i2c transfer is certainly more than 31.25us.
    
    Doug said:
    
    : I think we are safe.  At 400kHz (the max speed of this part) each bit can
    : be transferred no faster than 2.5us.  In order to do a valid i2c
    : transaction we need to _at least_ write the address of the device and the
    : data onto the bus, which is 16 bits.  16 * 2.5us = 40us.  That's above the
    : 31.25us
    
    [akpm@linux-foundation.org: tweak comment per review discussion]
    Signed-off-by: default avatarChris Zhong <zyw@rock-chips.com>
    Reviewed-by: default avatarDoug Anderson <dianders@chromium.org>
    Cc: Sonny Rao <sonnyrao@chromium.org>
    Cc: Heiko Stübner <heiko@sntech.de>
    Cc: Alessandro Zummo <a.zummo@towertech.it>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    c412c603