diff options
-rw-r--r-- | sound/soc/sh/rcar/gen.c | 8 | ||||
-rw-r--r-- | sound/soc/sh/rcar/rsnd.h | 8 | ||||
-rw-r--r-- | sound/soc/sh/rcar/ssiu.c | 20 |
3 files changed, 36 insertions, 0 deletions
diff --git a/sound/soc/sh/rcar/gen.c b/sound/soc/sh/rcar/gen.c index 7d2fdf8dd188..d653cf488f73 100644 --- a/sound/soc/sh/rcar/gen.c +++ b/sound/soc/sh/rcar/gen.c | |||
@@ -211,6 +211,14 @@ static int rsnd_gen2_probe(struct rsnd_priv *priv) | |||
211 | RSND_GEN_S_REG(SSI_MODE1, 0x804), | 211 | RSND_GEN_S_REG(SSI_MODE1, 0x804), |
212 | RSND_GEN_S_REG(SSI_MODE2, 0x808), | 212 | RSND_GEN_S_REG(SSI_MODE2, 0x808), |
213 | RSND_GEN_S_REG(SSI_CONTROL, 0x810), | 213 | RSND_GEN_S_REG(SSI_CONTROL, 0x810), |
214 | RSND_GEN_S_REG(SSI_SYS_STATUS0, 0x840), | ||
215 | RSND_GEN_S_REG(SSI_SYS_STATUS1, 0x844), | ||
216 | RSND_GEN_S_REG(SSI_SYS_STATUS2, 0x848), | ||
217 | RSND_GEN_S_REG(SSI_SYS_STATUS3, 0x84c), | ||
218 | RSND_GEN_S_REG(SSI_SYS_STATUS4, 0x880), | ||
219 | RSND_GEN_S_REG(SSI_SYS_STATUS5, 0x884), | ||
220 | RSND_GEN_S_REG(SSI_SYS_STATUS6, 0x888), | ||
221 | RSND_GEN_S_REG(SSI_SYS_STATUS7, 0x88c), | ||
214 | 222 | ||
215 | /* FIXME: it needs SSI_MODE2/3 in the future */ | 223 | /* FIXME: it needs SSI_MODE2/3 in the future */ |
216 | RSND_GEN_M_REG(SSI_BUSIF_MODE, 0x0, 0x80), | 224 | RSND_GEN_M_REG(SSI_BUSIF_MODE, 0x0, 0x80), |
diff --git a/sound/soc/sh/rcar/rsnd.h b/sound/soc/sh/rcar/rsnd.h index 678a9914c96f..d6bb53009123 100644 --- a/sound/soc/sh/rcar/rsnd.h +++ b/sound/soc/sh/rcar/rsnd.h | |||
@@ -161,6 +161,14 @@ enum rsnd_reg { | |||
161 | RSND_REG_SSI_BUSIF_ADINR, | 161 | RSND_REG_SSI_BUSIF_ADINR, |
162 | RSND_REG_SSI_BUSIF_DALIGN, | 162 | RSND_REG_SSI_BUSIF_DALIGN, |
163 | RSND_REG_SSI_INT_ENABLE, | 163 | RSND_REG_SSI_INT_ENABLE, |
164 | RSND_REG_SSI_SYS_STATUS0, | ||
165 | RSND_REG_SSI_SYS_STATUS1, | ||
166 | RSND_REG_SSI_SYS_STATUS2, | ||
167 | RSND_REG_SSI_SYS_STATUS3, | ||
168 | RSND_REG_SSI_SYS_STATUS4, | ||
169 | RSND_REG_SSI_SYS_STATUS5, | ||
170 | RSND_REG_SSI_SYS_STATUS6, | ||
171 | RSND_REG_SSI_SYS_STATUS7, | ||
164 | 172 | ||
165 | /* SSI */ | 173 | /* SSI */ |
166 | RSND_REG_SSICR, | 174 | RSND_REG_SSICR, |
diff --git a/sound/soc/sh/rcar/ssiu.c b/sound/soc/sh/rcar/ssiu.c index 6f9b388ec5a8..4e817c8a18c0 100644 --- a/sound/soc/sh/rcar/ssiu.c +++ b/sound/soc/sh/rcar/ssiu.c | |||
@@ -33,6 +33,26 @@ static int rsnd_ssiu_init(struct rsnd_mod *mod, | |||
33 | u32 mask1, val1; | 33 | u32 mask1, val1; |
34 | u32 mask2, val2; | 34 | u32 mask2, val2; |
35 | 35 | ||
36 | /* clear status */ | ||
37 | switch (id) { | ||
38 | case 0: | ||
39 | case 1: | ||
40 | case 2: | ||
41 | case 3: | ||
42 | case 4: | ||
43 | rsnd_mod_write(mod, SSI_SYS_STATUS0, 0xf << (id * 4)); | ||
44 | rsnd_mod_write(mod, SSI_SYS_STATUS2, 0xf << (id * 4)); | ||
45 | rsnd_mod_write(mod, SSI_SYS_STATUS4, 0xf << (id * 4)); | ||
46 | rsnd_mod_write(mod, SSI_SYS_STATUS6, 0xf << (id * 4)); | ||
47 | break; | ||
48 | case 9: | ||
49 | rsnd_mod_write(mod, SSI_SYS_STATUS1, 0xf << 4); | ||
50 | rsnd_mod_write(mod, SSI_SYS_STATUS3, 0xf << 4); | ||
51 | rsnd_mod_write(mod, SSI_SYS_STATUS5, 0xf << 4); | ||
52 | rsnd_mod_write(mod, SSI_SYS_STATUS7, 0xf << 4); | ||
53 | break; | ||
54 | } | ||
55 | |||
36 | /* | 56 | /* |
37 | * SSI_MODE0 | 57 | * SSI_MODE0 |
38 | */ | 58 | */ |