• Ben Hutchings's avatar
    mmc: tmio, sh_mobile_sdhi: Add support for variable input clock frequency · 2fb55956
    Ben Hutchings authored
    Currently tmio_mmc assumes that the input clock frequency is fixed and
    only its own clock divider can be changed.  This is not true in the
    case of sh_mobile_sdhi; we can use the clock API to change it.
    
    In tmio_mmc:
    - Delegate setting of f_min from tmio to the clk_enable operation (if
      implemented), as it can be smaller than f_max / 512
    - Add an optional clk_update operation called from tmio_mmc_set_clock()
      that updates the input clock frequency
    - Rename tmio_mmc_clk_update() to tmio_mmc_clk_enable(), to avoid
      confusion with the clk_update operation
    
    In sh_mobile_sdhi:
    - Make the setting of f_max conditional; it should be set through the
      max-frequency property in the device tree in future
    - Set f_min based on the input clock's minimum frequency
    - Implement the clk_update operation, selecting the best input clock
      frequency for the bus frequency that's wanted
    
    sh_mobile_sdhi_clk_update() is loosely based on Kuninori Morimoto's work
    in sh_mmcif.
    Signed-off-by: default avatarBen Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: default avatarWolfram Sang <wsa+renesas@sang-engineering.com>
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    2fb55956
tmio_mmc_pio.c 32 KB