Lines Matching defs:adg

25 	.name = "adg",
46 #define for_each_rsnd_clk(pos, adg, i) \
49 ((pos) = adg->clk[i]); \
51 #define for_each_rsnd_clkout(pos, adg, i) \
54 ((pos) = adg->clkout[i]); \
56 #define rsnd_priv_to_adg(priv) ((struct rsnd_adg *)(priv)->adg)
112 struct rsnd_adg *adg = rsnd_priv_to_adg(priv);
118 adg->clk_rate[CLKA], /* 0000: CLKA */
119 adg->clk_rate[CLKB], /* 0001: CLKB */
120 adg->clk_rate[CLKC], /* 0010: CLKC */
121 adg->rbga_rate_for_441khz, /* 0011: RBGA */
122 adg->rbgb_rate_for_48khz, /* 0100: RBGB */
212 struct rsnd_adg *adg = rsnd_priv_to_adg(priv);
213 struct rsnd_mod *adg_mod = rsnd_mod_get(adg);
237 struct rsnd_adg *adg = rsnd_priv_to_adg(priv);
238 struct rsnd_mod *adg_mod = rsnd_mod_get(adg);
266 struct rsnd_adg *adg = rsnd_priv_to_adg(priv);
267 struct rsnd_mod *adg_mod = rsnd_mod_get(adg);
291 struct rsnd_adg *adg = rsnd_priv_to_adg(priv);
305 if (rate == adg->clk_rate[i])
311 if (rate == adg->rbga_rate_for_441khz)
314 if (rate == adg->rbgb_rate_for_48khz)
330 struct rsnd_adg *adg = rsnd_priv_to_adg(priv);
332 struct rsnd_mod *adg_mod = rsnd_mod_get(adg);
342 if (rsnd_flags_has(adg, LRCLK_ASYNC)) {
343 if (rsnd_flags_has(adg, AUDIO_OUT_48))
350 rsnd_mod_bset(adg_mod, BRGCKR, 0x80770000, adg->ckr | ckr);
351 rsnd_mod_write(adg_mod, BRRA, adg->rbga);
352 rsnd_mod_write(adg_mod, BRRB, adg->rbgb);
356 (ckr) ? adg->rbgb_rate_for_48khz :
357 adg->rbga_rate_for_441khz);
364 struct rsnd_adg *adg = rsnd_priv_to_adg(priv);
369 for_each_rsnd_clk(clk, adg, i) {
379 adg->clk_rate[i] = clk_get_rate(adg->clk[i]);
390 struct rsnd_adg *adg)
398 adg->clk[i] = IS_ERR(clk) ? NULL : clk;
403 struct rsnd_adg *adg)
460 rsnd_flags_set(adg, AUDIO_OUT_48);
463 rsnd_flags_set(adg, LRCLK_ASYNC);
474 adg->rbga_rate_for_441khz = 0;
475 adg->rbgb_rate_for_48khz = 0;
476 for_each_rsnd_clk(clk, adg, i) {
483 if (!adg->rbga_rate_for_441khz && (0 == rate % 44100)) {
490 adg->rbga_rate_for_441khz = rate / div;
493 !rsnd_flags_has(adg, AUDIO_OUT_48))
499 if (!adg->rbgb_rate_for_48khz && (0 == rate % 48000)) {
506 adg->rbgb_rate_for_48khz = rate / div;
509 rsnd_flags_has(adg, AUDIO_OUT_48))
528 adg->clkout[CLKOUT] = clk;
541 adg->clkout[i] = clk;
543 adg->onecell.clks = adg->clkout;
544 adg->onecell.clk_num = CLKOUTMAX;
546 &adg->onecell);
550 adg->ckr = ckr;
551 adg->rbga = rbga;
552 adg->rbgb = rbgb;
556 static void rsnd_adg_clk_dbg_info(struct rsnd_priv *priv, struct rsnd_adg *adg)
562 for_each_rsnd_clk(clk, adg, i)
567 adg->ckr, adg->rbga, adg->rbgb);
568 dev_dbg(dev, "BRGA (for 44100 base) = %d\n", adg->rbga_rate_for_441khz);
569 dev_dbg(dev, "BRGB (for 48000 base) = %d\n", adg->rbgb_rate_for_48khz);
575 for_each_rsnd_clkout(clk, adg, i)
580 #define rsnd_adg_clk_dbg_info(priv, adg)
585 struct rsnd_adg *adg;
589 adg = devm_kzalloc(dev, sizeof(*adg), GFP_KERNEL);
590 if (!adg)
593 ret = rsnd_mod_init(priv, &adg->mod, &adg_ops,
598 rsnd_adg_get_clkin(priv, adg);
599 rsnd_adg_get_clkout(priv, adg);
600 rsnd_adg_clk_dbg_info(priv, adg);
602 priv->adg = adg;
613 struct rsnd_adg *adg = priv->adg;
617 for_each_rsnd_clkout(clk, adg, i)
618 if (adg->clkout[i])
619 clk_unregister_fixed_rate(adg->clkout[i]);