• Jon Hunter's avatar
    i2c: tegra: Add runtime power-management support · 1f50ad2c
    Jon Hunter authored
    Update the Tegra I2C driver to use runtime PM and move the code in the
    tegra_i2c_clock_enable/disable() functions to the PM runtime resume and
    suspend callbacks, respectively.
    
    Note that given that CONFIG_PM is not mandatory for Tegra, if CONFIG_PM
    is not enabled and so runtime PM is not enabled, ensure that the I2C
    clocks are turned on during probe and kept on by calling the resume
    callback directly.
    
    In the function tegra_i2c_init(), the variable 'err' does not need to be
    initialised to zero in tegra_i2c_init() because it is initialised when
    pm_runtime_get_sync() is called. Furthermore, to ensure we only return 0
    from tegra_i2c_init(), it is necessary to re-initialise 'err' to 0 after
    a successful call to pm_runtime_get_sync() because it can return a
    positive value on success. However, alternatively re-initialise 'err' by
    using the return value of the function tegra_i2c_flush_fifos() because
    it can only be 0 or -ETIMEDOUT.
    Signed-off-by: default avatarJon Hunter <jonathanh@nvidia.com>
    Acked-by: default avatarLaxman Dewangan <ldewangan@nvidia.com>
    Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
    1f50ad2c
i2c-tegra.c 29.1 KB