Lines Matching defs:scodec

250 static void sun4i_codec_start_playback(struct sun4i_codec *scodec)
253 regmap_update_bits(scodec->regmap, SUN4I_CODEC_DAC_FIFOC,
258 regmap_update_bits(scodec->regmap, SUN4I_CODEC_DAC_FIFOC,
263 static void sun4i_codec_stop_playback(struct sun4i_codec *scodec)
266 regmap_update_bits(scodec->regmap, SUN4I_CODEC_DAC_FIFOC,
271 static void sun4i_codec_start_capture(struct sun4i_codec *scodec)
274 regmap_field_update_bits(scodec->reg_adc_fifoc,
279 static void sun4i_codec_stop_capture(struct sun4i_codec *scodec)
282 regmap_field_update_bits(scodec->reg_adc_fifoc,
290 struct sun4i_codec *scodec = snd_soc_card_get_drvdata(rtd->card);
297 sun4i_codec_start_playback(scodec);
299 sun4i_codec_start_capture(scodec);
306 sun4i_codec_stop_playback(scodec);
308 sun4i_codec_stop_capture(scodec);
322 struct sun4i_codec *scodec = snd_soc_card_get_drvdata(rtd->card);
326 regmap_field_update_bits(scodec->reg_adc_fifoc,
332 regmap_field_update_bits(scodec->reg_adc_fifoc,
341 if (of_device_is_compatible(scodec->dev->of_node,
343 of_device_is_compatible(scodec->dev->of_node,
345 regmap_update_bits(scodec->regmap, SUN4I_CODEC_ADC_ACTL,
350 if (of_device_is_compatible(scodec->dev->of_node,
353 regmap_update_bits(scodec->regmap, SUN4I_CODEC_DAC_TUNE,
364 struct sun4i_codec *scodec = snd_soc_card_get_drvdata(rtd->card);
368 regmap_update_bits(scodec->regmap, SUN4I_CODEC_DAC_FIFOC,
373 regmap_update_bits(scodec->regmap, SUN4I_CODEC_DAC_FIFOC,
384 regmap_update_bits(scodec->regmap, SUN4I_CODEC_DAC_FIFOC,
389 regmap_update_bits(scodec->regmap, SUN4I_CODEC_DAC_FIFOC,
477 static int sun4i_codec_hw_params_capture(struct sun4i_codec *scodec,
482 regmap_field_update_bits(scodec->reg_adc_fifoc,
488 regmap_field_update_bits(scodec->reg_adc_fifoc,
492 regmap_field_update_bits(scodec->reg_adc_fifoc,
498 regmap_field_update_bits(scodec->reg_adc_fifoc,
502 regmap_field_update_bits(scodec->reg_adc_fifoc,
506 scodec->capture_dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
508 regmap_field_update_bits(scodec->reg_adc_fifoc,
513 regmap_field_update_bits(scodec->reg_adc_fifoc,
517 scodec->capture_dma_data.addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;
523 static int sun4i_codec_hw_params_playback(struct sun4i_codec *scodec,
530 regmap_update_bits(scodec->regmap, SUN4I_CODEC_DAC_FIFOC,
540 regmap_update_bits(scodec->regmap, SUN4I_CODEC_DAC_FIFOC,
546 regmap_update_bits(scodec->regmap, SUN4I_CODEC_DAC_FIFOC,
551 regmap_update_bits(scodec->regmap, SUN4I_CODEC_DAC_FIFOC,
555 scodec->playback_dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
557 regmap_update_bits(scodec->regmap, SUN4I_CODEC_DAC_FIFOC,
562 regmap_update_bits(scodec->regmap, SUN4I_CODEC_DAC_FIFOC,
566 scodec->playback_dma_data.addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;
577 struct sun4i_codec *scodec = snd_soc_card_get_drvdata(rtd->card);
585 ret = clk_set_rate(scodec->clk_module, clk_freq);
594 return sun4i_codec_hw_params_playback(scodec, params,
597 return sun4i_codec_hw_params_capture(scodec, params,
618 struct sun4i_codec *scodec = snd_soc_card_get_drvdata(rtd->card);
627 regmap_update_bits(scodec->regmap, SUN4I_CODEC_DAC_FIFOC,
631 return clk_prepare_enable(scodec->clk_module);
638 struct sun4i_codec *scodec = snd_soc_card_get_drvdata(rtd->card);
640 clk_disable_unprepare(scodec->clk_module);
1265 struct sun4i_codec *scodec = snd_soc_card_get_drvdata(card);
1267 snd_soc_dai_init_dma_data(dai, &scodec->playback_dma_data,
1268 &scodec->capture_dma_data);
1328 struct sun4i_codec *scodec = snd_soc_card_get_drvdata(w->dapm->card);
1330 gpiod_set_value_cansleep(scodec->gpio_pa,
1700 struct sun4i_codec *scodec;
1706 scodec = devm_kzalloc(&pdev->dev, sizeof(*scodec), GFP_KERNEL);
1707 if (!scodec)
1710 scodec->dev = &pdev->dev;
1725 scodec->regmap = devm_regmap_init_mmio(&pdev->dev, base,
1727 if (IS_ERR(scodec->regmap)) {
1729 return PTR_ERR(scodec->regmap);
1733 scodec->clk_apb = devm_clk_get(&pdev->dev, "apb");
1734 if (IS_ERR(scodec->clk_apb)) {
1736 return PTR_ERR(scodec->clk_apb);
1739 scodec->clk_module = devm_clk_get(&pdev->dev, "codec");
1740 if (IS_ERR(scodec->clk_module)) {
1742 return PTR_ERR(scodec->clk_module);
1746 scodec->rst = devm_reset_control_get_exclusive(&pdev->dev,
1748 if (IS_ERR(scodec->rst)) {
1750 return PTR_ERR(scodec->rst);
1754 scodec->gpio_pa = devm_gpiod_get_optional(&pdev->dev, "allwinner,pa",
1756 if (IS_ERR(scodec->gpio_pa)) {
1757 ret = PTR_ERR(scodec->gpio_pa);
1764 scodec->reg_adc_fifoc = devm_regmap_field_alloc(&pdev->dev,
1765 scodec->regmap,
1767 if (IS_ERR(scodec->reg_adc_fifoc)) {
1768 ret = PTR_ERR(scodec->reg_adc_fifoc);
1775 if (clk_prepare_enable(scodec->clk_apb)) {
1781 if (scodec->rst) {
1782 ret = reset_control_deassert(scodec->rst);
1791 scodec->playback_dma_data.addr = res->start + quirks->reg_dac_txdata;
1792 scodec->playback_dma_data.maxburst = 8;
1793 scodec->playback_dma_data.addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;
1796 scodec->capture_dma_data.addr = res->start + quirks->reg_adc_rxdata;
1797 scodec->capture_dma_data.maxburst = 8;
1798 scodec->capture_dma_data.addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;
1828 snd_soc_card_set_drvdata(card, scodec);
1839 if (scodec->rst)
1840 reset_control_assert(scodec->rst);
1842 clk_disable_unprepare(scodec->clk_apb);
1849 struct sun4i_codec *scodec = snd_soc_card_get_drvdata(card);
1852 if (scodec->rst)
1853 reset_control_assert(scodec->rst);
1854 clk_disable_unprepare(scodec->clk_apb);