Lines Matching defs:admaif

23 #define CH_TX_REG(reg, id) CH_REG(admaif->soc_data->tx_base, reg, id)
25 #define CH_RX_REG(reg, id) CH_REG(admaif->soc_data->rx_base, reg, id)
82 struct tegra_admaif *admaif = dev_get_drvdata(dev);
84 unsigned int num_ch = admaif->soc_data->num_ch;
85 unsigned int rx_base = admaif->soc_data->rx_base;
86 unsigned int tx_base = admaif->soc_data->tx_base;
87 unsigned int global_base = admaif->soc_data->global_base;
88 unsigned int reg_max = admaif->soc_data->regmap_conf->max_register;
116 struct tegra_admaif *admaif = dev_get_drvdata(dev);
118 unsigned int num_ch = admaif->soc_data->num_ch;
119 unsigned int rx_base = admaif->soc_data->rx_base;
120 unsigned int tx_base = admaif->soc_data->tx_base;
121 unsigned int global_base = admaif->soc_data->global_base;
122 unsigned int reg_max = admaif->soc_data->regmap_conf->max_register;
160 struct tegra_admaif *admaif = dev_get_drvdata(dev);
162 unsigned int num_ch = admaif->soc_data->num_ch;
163 unsigned int rx_base = admaif->soc_data->rx_base;
164 unsigned int tx_base = admaif->soc_data->tx_base;
165 unsigned int global_base = admaif->soc_data->global_base;
166 unsigned int reg_max = admaif->soc_data->regmap_conf->max_register;
224 struct tegra_admaif *admaif = dev_get_drvdata(dev);
226 regcache_cache_only(admaif->regmap, true);
227 regcache_mark_dirty(admaif->regmap);
234 struct tegra_admaif *admaif = dev_get_drvdata(dev);
236 regcache_cache_only(admaif->regmap, false);
237 regcache_sync(admaif->regmap);
270 struct tegra_admaif *admaif = snd_soc_dai_get_drvdata(dai);
310 cif_conf.mono_conv = admaif->mono_to_stereo[path][dai->id];
311 cif_conf.stereo_conv = admaif->stereo_to_mono[path][dai->id];
313 tegra_admaif_set_pack_mode(admaif->regmap, reg, valid_bit);
315 tegra_set_cif(admaif->regmap, reg, &cif_conf);
322 struct tegra_admaif *admaif = snd_soc_dai_get_drvdata(dai);
340 regmap_update_bits(admaif->regmap, reg, mask, val);
347 struct tegra_admaif *admaif = snd_soc_dai_get_drvdata(dai);
374 regmap_update_bits(admaif->regmap, enable_reg, mask, ~enable);
377 err = regmap_read_poll_timeout_atomic(admaif->regmap, status_reg, val,
384 regmap_update_bits(admaif->regmap, reset_reg, SW_RESET_MASK, SW_RESET);
387 err = regmap_read_poll_timeout_atomic(admaif->regmap, reset_reg, val,
431 struct tegra_admaif *admaif = snd_soc_component_get_drvdata(cmpnt);
435 admaif->mono_to_stereo[ADMAIF_TX_PATH][ec->reg];
444 struct tegra_admaif *admaif = snd_soc_component_get_drvdata(cmpnt);
448 if (value == admaif->mono_to_stereo[ADMAIF_TX_PATH][ec->reg])
451 admaif->mono_to_stereo[ADMAIF_TX_PATH][ec->reg] = value;
460 struct tegra_admaif *admaif = snd_soc_component_get_drvdata(cmpnt);
464 admaif->mono_to_stereo[ADMAIF_RX_PATH][ec->reg];
473 struct tegra_admaif *admaif = snd_soc_component_get_drvdata(cmpnt);
477 if (value == admaif->mono_to_stereo[ADMAIF_RX_PATH][ec->reg])
480 admaif->mono_to_stereo[ADMAIF_RX_PATH][ec->reg] = value;
489 struct tegra_admaif *admaif = snd_soc_component_get_drvdata(cmpnt);
493 admaif->stereo_to_mono[ADMAIF_TX_PATH][ec->reg];
502 struct tegra_admaif *admaif = snd_soc_component_get_drvdata(cmpnt);
506 if (value == admaif->stereo_to_mono[ADMAIF_TX_PATH][ec->reg])
509 admaif->stereo_to_mono[ADMAIF_TX_PATH][ec->reg] = value;
518 struct tegra_admaif *admaif = snd_soc_component_get_drvdata(cmpnt);
522 admaif->stereo_to_mono[ADMAIF_RX_PATH][ec->reg];
531 struct tegra_admaif *admaif = snd_soc_component_get_drvdata(cmpnt);
535 if (value == admaif->stereo_to_mono[ADMAIF_RX_PATH][ec->reg])
538 admaif->stereo_to_mono[ADMAIF_RX_PATH][ec->reg] = value;
545 struct tegra_admaif *admaif = snd_soc_dai_get_drvdata(dai);
547 dai->capture_dma_data = &admaif->capture_dma_data[dai->id];
548 dai->playback_dma_data = &admaif->playback_dma_data[dai->id];
738 { .compatible = "nvidia,tegra210-admaif", .data = &soc_data_tegra210 },
739 { .compatible = "nvidia,tegra186-admaif", .data = &soc_data_tegra186 },
746 struct tegra_admaif *admaif;
751 admaif = devm_kzalloc(&pdev->dev, sizeof(*admaif), GFP_KERNEL);
752 if (!admaif)
755 admaif->soc_data = of_device_get_match_data(&pdev->dev);
757 dev_set_drvdata(&pdev->dev, admaif);
759 admaif->capture_dma_data =
761 admaif->soc_data->num_ch,
764 if (!admaif->capture_dma_data)
767 admaif->playback_dma_data =
769 admaif->soc_data->num_ch,
772 if (!admaif->playback_dma_data)
776 admaif->mono_to_stereo[i] =
777 devm_kcalloc(&pdev->dev, admaif->soc_data->num_ch,
779 if (!admaif->mono_to_stereo[i])
782 admaif->stereo_to_mono[i] =
783 devm_kcalloc(&pdev->dev, admaif->soc_data->num_ch,
785 if (!admaif->stereo_to_mono[i])
795 admaif->regmap = devm_regmap_init_mmio(&pdev->dev, regs,
796 admaif->soc_data->regmap_conf);
797 if (IS_ERR(admaif->regmap)) {
799 return PTR_ERR(admaif->regmap);
802 regcache_cache_only(admaif->regmap, true);
804 regmap_update_bits(admaif->regmap, admaif->soc_data->global_base +
807 for (i = 0; i < admaif->soc_data->num_ch; i++) {
808 admaif->playback_dma_data[i].addr = res->start +
811 admaif->capture_dma_data[i].addr = res->start +
814 admaif->playback_dma_data[i].addr_width = 32;
818 &admaif->playback_dma_data[i].chan_name) < 0) {
825 admaif->capture_dma_data[i].addr_width = 32;
830 &admaif->capture_dma_data[i].chan_name) < 0) {
839 admaif->soc_data->cmpnt,
840 admaif->soc_data->dais,
841 admaif->soc_data->num_ch);
871 .name = "tegra210-admaif",