• Home
  • Raw
  • Download

Lines Matching +full:ssiu +full:- +full:2

1 // SPDX-License-Identifier: GPL-2.0
3 // Renesas R-Car SSIU support
9 #define SSIU_NAME "ssiu"
13 u32 busif_status[8]; /* for BUSIF0 - BUSIF7 */
23 #define rsnd_ssiu_nr(priv) ((priv)->ssiu_nr)
28 ((pos) = ((struct rsnd_ssiu *)(priv)->ssiu + i)); \
33 * 0 BUSIF0-3 BUSIF0-7
34 * 1 BUSIF0-3 BUSIF0-7
35 * 2 BUSIF0-3 BUSIF0-7
36 * 3 BUSIF0 BUSIF0-7
37 * 4 BUSIF0 BUSIF0-7
42 * 9 BUSIF0-3 BUSIF0-7
52 struct rsnd_ssiu *ssiu = rsnd_mod_to_ssiu(mod); in rsnd_ssiu_get_status() local
55 return &ssiu->busif_status[busif]; in rsnd_ssiu_get_status()
74 case 2: in rsnd_ssiu_init()
78 rsnd_mod_write(mod, SSI_SYS_STATUS(i * 2), 0xf << (id * 4)); in rsnd_ssiu_init()
82 rsnd_mod_write(mod, SSI_SYS_STATUS((i * 2) + 1), 0xf << 4); in rsnd_ssiu_init()
126 if (ssis & (1 << 2)) in rsnd_ssiu_init()
127 val1 |= is_clk_master ? 0x2 << 2 : in rsnd_ssiu_init()
128 0x1 << 2; in rsnd_ssiu_init()
153 struct rsnd_ssiu *ssiu = rsnd_mod_to_ssiu(mod); in rsnd_ssiu_init_gen2() local
163 ssiu->usrcnt++; in rsnd_ssiu_init_gen2()
259 struct rsnd_ssiu *ssiu = rsnd_mod_to_ssiu(mod); in rsnd_ssiu_stop_gen2() local
267 if (--ssiu->usrcnt) in rsnd_ssiu_stop_gen2()
278 struct rsnd_ssiu *ssiu = rsnd_mod_to_ssiu(mod); in rsnd_ssiu_id() local
281 return ssiu->id; in rsnd_ssiu_id()
286 struct rsnd_ssiu *ssiu = rsnd_mod_to_ssiu(mod); in rsnd_ssiu_id_sub() local
289 return ssiu->id_sub; in rsnd_ssiu_id_sub()
300 * It should use "rcar_sound,ssiu" on DT. in rsnd_ssiu_dma_req()
303 * If it has "rcar_sound.ssiu", it will be used. in rsnd_ssiu_dma_req()
330 return rsnd_mod_get((struct rsnd_ssiu *)(priv->ssiu) + id); in rsnd_ssiu_mod_get()
338 struct rsnd_ssiu *ssiu; in rsnd_parse_connect_ssiu_compatible() local
345 for_each_rsnd_ssiu(ssiu, priv, i) { in rsnd_parse_connect_ssiu_compatible()
346 mod = rsnd_mod_get(ssiu); in rsnd_parse_connect_ssiu_compatible()
350 rsnd_dai_connect(mod, io, mod->type); in rsnd_parse_connect_ssiu_compatible()
364 struct rsnd_dai_stream *io_p = &rdai->playback; in rsnd_parse_connect_ssiu()
365 struct rsnd_dai_stream *io_c = &rdai->capture; in rsnd_parse_connect_ssiu()
368 /* use rcar_sound,ssiu if exist */ in rsnd_parse_connect_ssiu()
374 rsnd_dai_connect(mod, io_p, mod->type); in rsnd_parse_connect_ssiu()
376 rsnd_dai_connect(mod, io_c, mod->type); in rsnd_parse_connect_ssiu()
394 struct rsnd_ssiu *ssiu; in rsnd_ssiu_probe() local
401 * if it has "rcar_sound,ssiu", use it. in rsnd_ssiu_probe()
410 nr = priv->ssi_nr; in rsnd_ssiu_probe()
412 ssiu = devm_kcalloc(dev, nr, sizeof(*ssiu), GFP_KERNEL); in rsnd_ssiu_probe()
413 if (!ssiu) in rsnd_ssiu_probe()
414 return -ENOMEM; in rsnd_ssiu_probe()
416 priv->ssiu = ssiu; in rsnd_ssiu_probe()
417 priv->ssiu_nr = nr; in rsnd_ssiu_probe()
428 ops->id = rsnd_ssiu_id; in rsnd_ssiu_probe()
429 ops->id_sub = rsnd_ssiu_id_sub; in rsnd_ssiu_probe()
438 dev_err(dev, "unknown SSIU\n"); in rsnd_ssiu_probe()
439 return -ENODEV; in rsnd_ssiu_probe()
443 for_each_rsnd_ssiu(ssiu, priv, i) { in rsnd_ssiu_probe()
455 ssiu->id = j; in rsnd_ssiu_probe()
456 ssiu->id_sub = i - list[ssiu->id]; in rsnd_ssiu_probe()
459 ssiu->id = i; in rsnd_ssiu_probe()
462 ret = rsnd_mod_init(priv, rsnd_mod_get(ssiu), in rsnd_ssiu_probe()
473 struct rsnd_ssiu *ssiu; in rsnd_ssiu_remove() local
476 for_each_rsnd_ssiu(ssiu, priv, i) { in rsnd_ssiu_remove()
477 rsnd_mod_quit(rsnd_mod_get(ssiu)); in rsnd_ssiu_remove()