Lines Matching full:component
37 static int es8323_set_bias_level(struct snd_soc_component *component,
94 struct snd_soc_component *component; member
98 static int es8323_reset(struct snd_soc_component *component) in es8323_reset() argument
100 snd_soc_component_write(component, ES8323_CONTROL1, 0x80); in es8323_reset()
101 return snd_soc_component_write(component, ES8323_CONTROL1, 0x00); in es8323_reset()
430 struct snd_soc_component *component = codec_dai->component; in es8323_set_dai_sysclk() local
431 struct es8323_priv *es8323 = snd_soc_component_get_drvdata(component); in es8323_set_dai_sysclk()
465 struct snd_soc_component *component = codec_dai->component; in es8323_set_dai_fmt() local
470 iface = snd_soc_component_read(component, ES8323_IFACE); in es8323_set_dai_fmt()
471 adciface = snd_soc_component_read(component, ES8323_ADC_IFACE); in es8323_set_dai_fmt()
472 daciface = snd_soc_component_read(component, ES8323_DAC_IFACE); in es8323_set_dai_fmt()
530 snd_soc_component_write(component, ES8323_IFACE, iface); in es8323_set_dai_fmt()
531 snd_soc_component_write(component, ES8323_ADC_IFACE, adciface); in es8323_set_dai_fmt()
532 snd_soc_component_write(component, ES8323_DAC_IFACE, daciface); in es8323_set_dai_fmt()
547 struct snd_soc_component *component = dai->component; in es8323_pcm_hw_params() local
548 struct es8323_priv *es8323 = snd_soc_component_get_drvdata(component); in es8323_pcm_hw_params()
549 u16 srate = snd_soc_component_read(component, ES8323_IFACE) & 0x80; in es8323_pcm_hw_params()
550 u16 adciface = snd_soc_component_read(component, ES8323_ADC_IFACE) & 0xE3; in es8323_pcm_hw_params()
551 u16 daciface = snd_soc_component_read(component, ES8323_DAC_IFACE) & 0xC7; in es8323_pcm_hw_params()
565 dev_err(component->dev, in es8323_pcm_hw_params()
576 dev_err(component->dev, in es8323_pcm_hw_params()
601 snd_soc_component_write(component, ES8323_DAC_IFACE, daciface); in es8323_pcm_hw_params()
602 snd_soc_component_write(component, ES8323_ADC_IFACE, adciface); in es8323_pcm_hw_params()
605 snd_soc_component_write(component, ES8323_IFACE, srate); in es8323_pcm_hw_params()
606 snd_soc_component_write(component, ES8323_ADCCONTROL5, in es8323_pcm_hw_params()
609 snd_soc_component_write(component, ES8323_DACCONTROL2, in es8323_pcm_hw_params()
622 static int es8323_set_bias_level(struct snd_soc_component *component, in es8323_set_bias_level() argument
625 struct es8323_priv *es8323 = snd_soc_component_get_drvdata(component); in es8323_set_bias_level()
630 dev_dbg(component->dev, "%s on\n", __func__); in es8323_set_bias_level()
633 dev_dbg(component->dev, "%s prepare\n", __func__); in es8323_set_bias_level()
636 if (snd_soc_component_get_bias_level(component) == SND_SOC_BIAS_ON) { in es8323_set_bias_level()
643 snd_soc_component_write(component, ES8323_ANAVOLMANAG, 0x7C); in es8323_set_bias_level()
644 snd_soc_component_write(component, ES8323_CHIPLOPOW1, 0x00); in es8323_set_bias_level()
645 snd_soc_component_write(component, ES8323_CHIPLOPOW2, 0x00); in es8323_set_bias_level()
646 snd_soc_component_write(component, ES8323_CHIPPOWER, 0x00); in es8323_set_bias_level()
647 snd_soc_component_write(component, ES8323_ADCPOWER, 0x59); in es8323_set_bias_level()
650 dev_dbg(component->dev, "%s standby\n", __func__); in es8323_set_bias_level()
651 snd_soc_component_write(component, ES8323_ANAVOLMANAG, 0x7C); in es8323_set_bias_level()
652 snd_soc_component_write(component, ES8323_CHIPLOPOW1, 0x00); in es8323_set_bias_level()
653 snd_soc_component_write(component, ES8323_CHIPLOPOW2, 0x00); in es8323_set_bias_level()
654 snd_soc_component_write(component, ES8323_CHIPPOWER, 0x00); in es8323_set_bias_level()
655 snd_soc_component_write(component, ES8323_ADCPOWER, 0x59); in es8323_set_bias_level()
658 dev_dbg(component->dev, "%s off\n", __func__); in es8323_set_bias_level()
659 snd_soc_component_write(component, ES8323_ADCPOWER, 0xFF); in es8323_set_bias_level()
660 snd_soc_component_write(component, ES8323_DACPOWER, 0xC0); in es8323_set_bias_level()
661 snd_soc_component_write(component, ES8323_CHIPLOPOW1, 0xFF); in es8323_set_bias_level()
662 snd_soc_component_write(component, ES8323_CHIPLOPOW2, 0xFF); in es8323_set_bias_level()
663 snd_soc_component_write(component, ES8323_CHIPPOWER, 0xFF); in es8323_set_bias_level()
664 snd_soc_component_write(component, ES8323_ANAVOLMANAG, 0x7B); in es8323_set_bias_level()
704 static int es8323_suspend(struct snd_soc_component *component) in es8323_suspend() argument
706 struct es8323_priv *es8323 = snd_soc_component_get_drvdata(component); in es8323_suspend()
708 snd_soc_component_write(component, 0x19, 0x06); in es8323_suspend()
709 snd_soc_component_write(component, 0x30, 0x00); in es8323_suspend()
710 snd_soc_component_write(component, 0x31, 0x00); in es8323_suspend()
711 snd_soc_component_write(component, ES8323_ADCPOWER, 0xFF); in es8323_suspend()
712 snd_soc_component_write(component, ES8323_DACPOWER, 0xc0); in es8323_suspend()
713 snd_soc_component_write(component, ES8323_CHIPPOWER, 0xF3); in es8323_suspend()
714 snd_soc_component_write(component, 0x00, 0x00); in es8323_suspend()
715 snd_soc_component_write(component, 0x01, 0x58); in es8323_suspend()
716 snd_soc_component_write(component, 0x2b, 0x9c); in es8323_suspend()
723 static int es8323_resume(struct snd_soc_component *component) in es8323_resume() argument
725 struct es8323_priv *es8323 = snd_soc_component_get_drvdata(component); in es8323_resume()
728 snd_soc_component_cache_sync(component); in es8323_resume()
729 snd_soc_component_write(component, 0x2b, 0x80); in es8323_resume()
730 snd_soc_component_write(component, 0x01, 0x50); in es8323_resume()
731 snd_soc_component_write(component, 0x00, 0x32); in es8323_resume()
732 snd_soc_component_write(component, ES8323_CHIPPOWER, 0x00); in es8323_resume()
733 snd_soc_component_write(component, ES8323_DACPOWER, 0x0c); in es8323_resume()
734 snd_soc_component_write(component, ES8323_ADCPOWER, 0x59); in es8323_resume()
735 snd_soc_component_write(component, 0x31, es8323_DEF_VOL); in es8323_resume()
736 snd_soc_component_write(component, 0x30, es8323_DEF_VOL); in es8323_resume()
737 snd_soc_component_write(component, 0x19, 0x02); in es8323_resume()
741 static int es8323_probe(struct snd_soc_component *component) in es8323_probe() argument
743 struct es8323_priv *es8323 = snd_soc_component_get_drvdata(component); in es8323_probe()
746 es8323->mclk = devm_clk_get(component->dev, "mclk"); in es8323_probe()
748 dev_err(component->dev, "%s mclk is missing or invalid\n", __func__); in es8323_probe()
754 es8323->component = component; in es8323_probe()
756 ret = es8323_reset(component); in es8323_probe()
758 dev_err(component->dev, "Failed to issue reset\n"); in es8323_probe()
763 snd_soc_component_write(component, 0x01, 0x60); in es8323_probe()
764 snd_soc_component_write(component, 0x02, 0xF3); in es8323_probe()
765 snd_soc_component_write(component, 0x02, 0xF0); in es8323_probe()
766 snd_soc_component_write(component, 0x2B, 0x80); in es8323_probe()
767 snd_soc_component_write(component, 0x00, 0x36); in es8323_probe()
768 snd_soc_component_write(component, 0x08, 0x00); in es8323_probe()
769 snd_soc_component_write(component, 0x04, 0x00); in es8323_probe()
770 snd_soc_component_write(component, 0x06, 0xC3); in es8323_probe()
771 snd_soc_component_write(component, 0x19, 0x02); in es8323_probe()
772 snd_soc_component_write(component, 0x09, 0x00); in es8323_probe()
773 snd_soc_component_write(component, 0x0A, 0x00); in es8323_probe()
774 snd_soc_component_write(component, 0x0B, 0x02); in es8323_probe()
775 snd_soc_component_write(component, 0x0C, 0x4C); in es8323_probe()
776 snd_soc_component_write(component, 0x0D, 0x02); in es8323_probe()
777 snd_soc_component_write(component, 0x10, 0x00); in es8323_probe()
778 snd_soc_component_write(component, 0x11, 0x00); in es8323_probe()
779 snd_soc_component_write(component, 0x12, 0xea); in es8323_probe()
780 snd_soc_component_write(component, 0x13, 0xc0); in es8323_probe()
781 snd_soc_component_write(component, 0x14, 0x05); in es8323_probe()
782 snd_soc_component_write(component, 0x15, 0x06); in es8323_probe()
783 snd_soc_component_write(component, 0x16, 0x53); in es8323_probe()
785 snd_soc_component_write(component, 0x17, 0x18); in es8323_probe()
786 snd_soc_component_write(component, 0x18, 0x02); in es8323_probe()
787 snd_soc_component_write(component, 0x1A, 0x00); in es8323_probe()
788 snd_soc_component_write(component, 0x1B, 0x00); in es8323_probe()
789 snd_soc_component_write(component, 0x27, 0xB8); in es8323_probe()
790 snd_soc_component_write(component, 0x2A, 0xB8); in es8323_probe()
791 snd_soc_component_write(component, 0x35, 0xA0); in es8323_probe()
793 snd_soc_component_write(component, 0x2E, 0x1E); in es8323_probe()
794 snd_soc_component_write(component, 0x2F, 0x1E); in es8323_probe()
795 snd_soc_component_write(component, 0x30, 0x1E); in es8323_probe()
796 snd_soc_component_write(component, 0x31, 0x1E); in es8323_probe()
797 snd_soc_component_write(component, 0x03, 0x09); in es8323_probe()
798 snd_soc_component_write(component, 0x02, 0x00); in es8323_probe()
800 snd_soc_component_write(component, 0x04, 0x3C); in es8323_probe()
802 es8323_set_bias_level(component, SND_SOC_BIAS_STANDBY); in es8323_probe()
806 static void es8323_remove(struct snd_soc_component *component) in es8323_remove() argument
808 es8323_set_bias_level(component, SND_SOC_BIAS_OFF); in es8323_remove()