Lines Matching refs:adg
45 #define for_each_rsnd_clk(pos, adg, i) \ argument
48 ((pos) = adg->clk[i]); \
50 #define for_each_rsnd_clkout(pos, adg, i) \ argument
53 ((pos) = adg->clkout[i]); \
55 #define rsnd_priv_to_adg(priv) ((struct rsnd_adg *)(priv)->adg)
110 struct rsnd_adg *adg = rsnd_priv_to_adg(priv); in __rsnd_adg_get_timesel_ratio() local
116 clk_get_rate(adg->clk[CLKA]), /* 0000: CLKA */ in __rsnd_adg_get_timesel_ratio()
117 clk_get_rate(adg->clk[CLKB]), /* 0001: CLKB */ in __rsnd_adg_get_timesel_ratio()
118 clk_get_rate(adg->clk[CLKC]), /* 0010: CLKC */ in __rsnd_adg_get_timesel_ratio()
119 adg->rbga_rate_for_441khz, /* 0011: RBGA */ in __rsnd_adg_get_timesel_ratio()
120 adg->rbgb_rate_for_48khz, /* 0100: RBGB */ in __rsnd_adg_get_timesel_ratio()
210 struct rsnd_adg *adg = rsnd_priv_to_adg(priv); in rsnd_adg_set_cmd_timsel_gen2() local
211 struct rsnd_mod *adg_mod = rsnd_mod_get(adg); in rsnd_adg_set_cmd_timsel_gen2()
235 struct rsnd_adg *adg = rsnd_priv_to_adg(priv); in rsnd_adg_set_src_timesel_gen2() local
236 struct rsnd_mod *adg_mod = rsnd_mod_get(adg); in rsnd_adg_set_src_timesel_gen2()
284 struct rsnd_adg *adg = rsnd_priv_to_adg(priv); in rsnd_adg_set_ssi_clk() local
285 struct rsnd_mod *adg_mod = rsnd_mod_get(adg); in rsnd_adg_set_ssi_clk()
319 struct rsnd_adg *adg = rsnd_priv_to_adg(priv); in rsnd_adg_clk_query() local
333 for_each_rsnd_clk(clk, adg, i) { in rsnd_adg_clk_query()
341 if (rate == adg->rbga_rate_for_441khz) in rsnd_adg_clk_query()
344 if (rate == adg->rbgb_rate_for_48khz) in rsnd_adg_clk_query()
360 struct rsnd_adg *adg = rsnd_priv_to_adg(priv); in rsnd_adg_ssi_clk_try_start() local
362 struct rsnd_mod *adg_mod = rsnd_mod_get(adg); in rsnd_adg_ssi_clk_try_start()
372 if (rsnd_flags_has(adg, LRCLK_ASYNC)) { in rsnd_adg_ssi_clk_try_start()
373 if (rsnd_flags_has(adg, AUDIO_OUT_48)) in rsnd_adg_ssi_clk_try_start()
380 rsnd_mod_bset(adg_mod, BRGCKR, 0x80770000, adg->ckr | ckr); in rsnd_adg_ssi_clk_try_start()
381 rsnd_mod_write(adg_mod, BRRA, adg->rbga); in rsnd_adg_ssi_clk_try_start()
382 rsnd_mod_write(adg_mod, BRRB, adg->rbgb); in rsnd_adg_ssi_clk_try_start()
386 (ckr) ? adg->rbgb_rate_for_48khz : in rsnd_adg_ssi_clk_try_start()
387 adg->rbga_rate_for_441khz); in rsnd_adg_ssi_clk_try_start()
394 struct rsnd_adg *adg = rsnd_priv_to_adg(priv); in rsnd_adg_clk_control() local
399 for_each_rsnd_clk(clk, adg, i) { in rsnd_adg_clk_control()
412 struct rsnd_adg *adg) in rsnd_adg_get_clkin() argument
420 adg->clk[i] = IS_ERR(clk) ? NULL : clk; in rsnd_adg_get_clkin()
425 struct rsnd_adg *adg) in rsnd_adg_get_clkout() argument
482 rsnd_flags_set(adg, AUDIO_OUT_48); in rsnd_adg_get_clkout()
485 rsnd_flags_set(adg, LRCLK_ASYNC); in rsnd_adg_get_clkout()
496 adg->rbga_rate_for_441khz = 0; in rsnd_adg_get_clkout()
497 adg->rbgb_rate_for_48khz = 0; in rsnd_adg_get_clkout()
498 for_each_rsnd_clk(clk, adg, i) { in rsnd_adg_get_clkout()
505 if (!adg->rbga_rate_for_441khz && (0 == rate % 44100)) { in rsnd_adg_get_clkout()
512 adg->rbga_rate_for_441khz = rate / div; in rsnd_adg_get_clkout()
515 !rsnd_flags_has(adg, AUDIO_OUT_48)) in rsnd_adg_get_clkout()
521 if (!adg->rbgb_rate_for_48khz && (0 == rate % 48000)) { in rsnd_adg_get_clkout()
528 adg->rbgb_rate_for_48khz = rate / div; in rsnd_adg_get_clkout()
531 rsnd_flags_has(adg, AUDIO_OUT_48)) in rsnd_adg_get_clkout()
550 adg->clkout[CLKOUT] = clk; in rsnd_adg_get_clkout()
563 adg->clkout[i] = clk; in rsnd_adg_get_clkout()
565 adg->onecell.clks = adg->clkout; in rsnd_adg_get_clkout()
566 adg->onecell.clk_num = CLKOUTMAX; in rsnd_adg_get_clkout()
568 &adg->onecell); in rsnd_adg_get_clkout()
572 adg->ckr = ckr; in rsnd_adg_get_clkout()
573 adg->rbga = rbga; in rsnd_adg_get_clkout()
574 adg->rbgb = rbgb; in rsnd_adg_get_clkout()
578 static void rsnd_adg_clk_dbg_info(struct rsnd_priv *priv, struct rsnd_adg *adg) in rsnd_adg_clk_dbg_info() argument
584 for_each_rsnd_clk(clk, adg, i) in rsnd_adg_clk_dbg_info()
589 adg->ckr, adg->rbga, adg->rbgb); in rsnd_adg_clk_dbg_info()
590 dev_dbg(dev, "BRGA (for 44100 base) = %d\n", adg->rbga_rate_for_441khz); in rsnd_adg_clk_dbg_info()
591 dev_dbg(dev, "BRGB (for 48000 base) = %d\n", adg->rbgb_rate_for_48khz); in rsnd_adg_clk_dbg_info()
597 for_each_rsnd_clkout(clk, adg, i) in rsnd_adg_clk_dbg_info()
602 #define rsnd_adg_clk_dbg_info(priv, adg) argument
607 struct rsnd_adg *adg; in rsnd_adg_probe() local
611 adg = devm_kzalloc(dev, sizeof(*adg), GFP_KERNEL); in rsnd_adg_probe()
612 if (!adg) in rsnd_adg_probe()
615 ret = rsnd_mod_init(priv, &adg->mod, &adg_ops, in rsnd_adg_probe()
620 rsnd_adg_get_clkin(priv, adg); in rsnd_adg_probe()
621 rsnd_adg_get_clkout(priv, adg); in rsnd_adg_probe()
622 rsnd_adg_clk_dbg_info(priv, adg); in rsnd_adg_probe()
624 priv->adg = adg; in rsnd_adg_probe()
635 struct rsnd_adg *adg = priv->adg; in rsnd_adg_remove() local
639 for_each_rsnd_clkout(clk, adg, i) in rsnd_adg_remove()
640 if (adg->clkout[i]) in rsnd_adg_remove()
641 clk_unregister_fixed_rate(adg->clkout[i]); in rsnd_adg_remove()