• Sylwester Nawrocki's avatar
    ASoC: samsung: i2s: Add clock provider for the I2S internal clocks · 074b89bb
    Sylwester Nawrocki authored
    This patch adds clock provider (currently only for DT platforms) for
    the CODECLKO (CDCLK) gate, RCLKSRC mux and RCLK pre-scaler divider
    divider clock. Those all tree clock are only available in the IIS
    Multi Audio Interface (I2S0), the regular IIS Bus Interface has only
    CDCLK gate clock.
    
    The motivation behind this patch is to expose the I2S internal clocks
    which are currently controlled through set_sysclk() through the clk
    API, so dedicated sound machine driver per each board can be avoided.
    
    The intention is also to fix the CDCLK gating issue reported by
    Daniel Drake:
    http://mailman.alsa-project.org/pipermail/alsa-devel/2014-September/081753.html
    
    This patch also reverts commit b97c60ab
    ("ASoC: samsung-i2s: Maintain CDCLK settings across i2s_{shutdown/
    startup}") The problem that commit attempted to solve only affects
    the Odroid X2/U3, which doesn't configure the CDCLK clock in
    struct snd_soc_dai_ops hw_params callback and the issue should be
    now resolved by using clk API, i.e. having the codec enabling/
    disabling the CDCLK clock as required.
    Signed-off-by: default avatarSylwester Nawrocki <s.nawrocki@samsung.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    074b89bb
i2s.c 35.7 KB