ASoC: rsnd: ctu: add rsnd_mix_activation()
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Thu, 21 Jan 2016 01:58:53 +0000 (01:58 +0000)
committerMark Brown <broonie@kernel.org>
Fri, 22 Jan 2016 17:12:25 +0000 (17:12 +0000)
Based on datasheet

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sh/rcar/ctu.c
sound/soc/sh/rcar/gen.c
sound/soc/sh/rcar/rsnd.h

index 109930a2040109bee693bdf7673177414b7af56e..0dc451803eb6d28471f064cbd7da63a94f01e1ed 100644 (file)
@@ -24,6 +24,13 @@ struct rsnd_ctu {
             i++)
 
 #define rsnd_ctu_get(priv, id) ((struct rsnd_ctu *)(priv->ctu) + id)
+
+static void rsnd_ctu_activation(struct rsnd_mod *mod)
+{
+       rsnd_mod_write(mod, CTU_SWRSR, 0);
+       rsnd_mod_write(mod, CTU_SWRSR, 1);
+}
+
 #define rsnd_ctu_initialize_lock(mod)  __rsnd_ctu_initialize_lock(mod, 1)
 #define rsnd_ctu_initialize_unlock(mod)        __rsnd_ctu_initialize_lock(mod, 0)
 static void __rsnd_ctu_initialize_lock(struct rsnd_mod *mod, u32 enable)
@@ -44,6 +51,8 @@ static int rsnd_ctu_init(struct rsnd_mod *mod,
 {
        rsnd_mod_power_on(mod);
 
+       rsnd_ctu_activation(mod);
+
        rsnd_ctu_initialize_lock(mod);
 
        rsnd_mod_write(mod, CTU_ADINR, rsnd_get_adinr_chan(mod, io));
index c7aee9e59e8642a8aae806139e94479d7e0a5e62..2f01e5eb462c885fa896ed59896b358910f08ecf 100644 (file)
@@ -260,6 +260,7 @@ static int rsnd_gen2_probe(struct rsnd_priv *priv)
                RSND_GEN_M_REG(SRC_SRCCR,       0x224,  0x40),
                RSND_GEN_M_REG(SRC_BSDSR,       0x22c,  0x40),
                RSND_GEN_M_REG(SRC_BSISR,       0x238,  0x40),
+               RSND_GEN_M_REG(CTU_SWRSR,       0x500,  0x100),
                RSND_GEN_M_REG(CTU_CTUIR,       0x504,  0x100),
                RSND_GEN_M_REG(CTU_ADINR,       0x508,  0x100),
                RSND_GEN_M_REG(MIX_SWRSR,       0xd00,  0x40),
index 90c732e265a2e1a9581898fc9e35c3321e566cce..12227f6b62212584a4522d087f8b723e09a9a10c 100644 (file)
@@ -86,6 +86,7 @@ enum rsnd_reg {
        RSND_REG_CMD_BUSIF_DALIGN,      /* Gen2 only */
        RSND_REG_CMD_ROUTE_SLCT,
        RSND_REG_CMDOUT_TIMSEL,         /* Gen2 only */
+       RSND_REG_CTU_SWRSR,
        RSND_REG_CTU_CTUIR,
        RSND_REG_CTU_ADINR,
        RSND_REG_MIX_SWRSR,