Lines Matching refs:aic32x4

317 	struct aic32x4_priv *aic32x4 = snd_soc_codec_get_drvdata(codec);  in aic32x4_set_dai_sysclk()  local
323 aic32x4->sysclk = freq; in aic32x4_set_dai_sysclk()
392 struct aic32x4_priv *aic32x4 = snd_soc_codec_get_drvdata(codec); in aic32x4_hw_params() local
396 i = aic32x4_get_divs(aic32x4->sysclk, params_rate(params)); in aic32x4_hw_params()
471 if (aic32x4->swapdacs) in aic32x4_hw_params()
498 struct aic32x4_priv *aic32x4 = snd_soc_codec_get_drvdata(codec); in aic32x4_set_bias_level() local
504 ret = clk_prepare_enable(aic32x4->mclk); in aic32x4_set_bias_level()
562 clk_disable_unprepare(aic32x4->mclk); in aic32x4_set_bias_level()
601 struct aic32x4_priv *aic32x4 = snd_soc_codec_get_drvdata(codec); in aic32x4_probe() local
604 if (gpio_is_valid(aic32x4->rstn_gpio)) { in aic32x4_probe()
606 gpio_set_value(aic32x4->rstn_gpio, 1); in aic32x4_probe()
612 if (aic32x4->power_cfg & AIC32X4_PWR_MICBIAS_2075_LDOIN) { in aic32x4_probe()
616 if (aic32x4->power_cfg & AIC32X4_PWR_AVDD_DVDD_WEAK_DISABLE) in aic32x4_probe()
619 tmp_reg = (aic32x4->power_cfg & AIC32X4_PWR_AIC32X4_LDO_ENABLE) ? in aic32x4_probe()
624 if (aic32x4->power_cfg & AIC32X4_PWR_CMMODE_LDOIN_RANGE_18_36) in aic32x4_probe()
626 if (aic32x4->power_cfg & AIC32X4_PWR_CMMODE_HP_LDOIN_POWERED) in aic32x4_probe()
631 if (aic32x4->micpga_routing & AIC32X4_MICPGA_ROUTE_LMIC_IN2R_10K) in aic32x4_probe()
637 if (aic32x4->micpga_routing & AIC32X4_MICPGA_ROUTE_RMIC_IN1L_10K) in aic32x4_probe()
670 static int aic32x4_parse_dt(struct aic32x4_priv *aic32x4, in aic32x4_parse_dt() argument
673 aic32x4->swapdacs = false; in aic32x4_parse_dt()
674 aic32x4->micpga_routing = 0; in aic32x4_parse_dt()
675 aic32x4->rstn_gpio = of_get_named_gpio(np, "reset-gpios", 0); in aic32x4_parse_dt()
680 static void aic32x4_disable_regulators(struct aic32x4_priv *aic32x4) in aic32x4_disable_regulators() argument
682 regulator_disable(aic32x4->supply_iov); in aic32x4_disable_regulators()
684 if (!IS_ERR(aic32x4->supply_ldo)) in aic32x4_disable_regulators()
685 regulator_disable(aic32x4->supply_ldo); in aic32x4_disable_regulators()
687 if (!IS_ERR(aic32x4->supply_dv)) in aic32x4_disable_regulators()
688 regulator_disable(aic32x4->supply_dv); in aic32x4_disable_regulators()
690 if (!IS_ERR(aic32x4->supply_av)) in aic32x4_disable_regulators()
691 regulator_disable(aic32x4->supply_av); in aic32x4_disable_regulators()
695 struct aic32x4_priv *aic32x4) in aic32x4_setup_regulators() argument
699 aic32x4->supply_ldo = devm_regulator_get_optional(dev, "ldoin"); in aic32x4_setup_regulators()
700 aic32x4->supply_iov = devm_regulator_get(dev, "iov"); in aic32x4_setup_regulators()
701 aic32x4->supply_dv = devm_regulator_get_optional(dev, "dv"); in aic32x4_setup_regulators()
702 aic32x4->supply_av = devm_regulator_get_optional(dev, "av"); in aic32x4_setup_regulators()
706 if (IS_ERR(aic32x4->supply_iov)) { in aic32x4_setup_regulators()
708 return PTR_ERR(aic32x4->supply_iov); in aic32x4_setup_regulators()
711 if (IS_ERR(aic32x4->supply_ldo)) { in aic32x4_setup_regulators()
712 if (PTR_ERR(aic32x4->supply_ldo) == -EPROBE_DEFER) in aic32x4_setup_regulators()
715 if (IS_ERR(aic32x4->supply_dv)) { in aic32x4_setup_regulators()
717 return PTR_ERR(aic32x4->supply_dv); in aic32x4_setup_regulators()
719 if (IS_ERR(aic32x4->supply_av)) { in aic32x4_setup_regulators()
721 return PTR_ERR(aic32x4->supply_av); in aic32x4_setup_regulators()
724 if (IS_ERR(aic32x4->supply_dv) && in aic32x4_setup_regulators()
725 PTR_ERR(aic32x4->supply_dv) == -EPROBE_DEFER) in aic32x4_setup_regulators()
727 if (IS_ERR(aic32x4->supply_av) && in aic32x4_setup_regulators()
728 PTR_ERR(aic32x4->supply_av) == -EPROBE_DEFER) in aic32x4_setup_regulators()
732 ret = regulator_enable(aic32x4->supply_iov); in aic32x4_setup_regulators()
738 if (!IS_ERR(aic32x4->supply_ldo)) { in aic32x4_setup_regulators()
739 ret = regulator_enable(aic32x4->supply_ldo); in aic32x4_setup_regulators()
746 if (!IS_ERR(aic32x4->supply_dv)) { in aic32x4_setup_regulators()
747 ret = regulator_enable(aic32x4->supply_dv); in aic32x4_setup_regulators()
754 if (!IS_ERR(aic32x4->supply_av)) { in aic32x4_setup_regulators()
755 ret = regulator_enable(aic32x4->supply_av); in aic32x4_setup_regulators()
762 if (!IS_ERR(aic32x4->supply_ldo) && IS_ERR(aic32x4->supply_av)) in aic32x4_setup_regulators()
763 aic32x4->power_cfg |= AIC32X4_PWR_AIC32X4_LDO_ENABLE; in aic32x4_setup_regulators()
768 if (!IS_ERR(aic32x4->supply_dv)) in aic32x4_setup_regulators()
769 regulator_disable(aic32x4->supply_dv); in aic32x4_setup_regulators()
772 if (!IS_ERR(aic32x4->supply_ldo)) in aic32x4_setup_regulators()
773 regulator_disable(aic32x4->supply_ldo); in aic32x4_setup_regulators()
776 regulator_disable(aic32x4->supply_iov); in aic32x4_setup_regulators()
784 struct aic32x4_priv *aic32x4; in aic32x4_i2c_probe() local
788 aic32x4 = devm_kzalloc(&i2c->dev, sizeof(struct aic32x4_priv), in aic32x4_i2c_probe()
790 if (aic32x4 == NULL) in aic32x4_i2c_probe()
793 aic32x4->regmap = devm_regmap_init_i2c(i2c, &aic32x4_regmap); in aic32x4_i2c_probe()
794 if (IS_ERR(aic32x4->regmap)) in aic32x4_i2c_probe()
795 return PTR_ERR(aic32x4->regmap); in aic32x4_i2c_probe()
797 i2c_set_clientdata(i2c, aic32x4); in aic32x4_i2c_probe()
800 aic32x4->power_cfg = pdata->power_cfg; in aic32x4_i2c_probe()
801 aic32x4->swapdacs = pdata->swapdacs; in aic32x4_i2c_probe()
802 aic32x4->micpga_routing = pdata->micpga_routing; in aic32x4_i2c_probe()
803 aic32x4->rstn_gpio = pdata->rstn_gpio; in aic32x4_i2c_probe()
805 ret = aic32x4_parse_dt(aic32x4, np); in aic32x4_i2c_probe()
811 aic32x4->power_cfg = 0; in aic32x4_i2c_probe()
812 aic32x4->swapdacs = false; in aic32x4_i2c_probe()
813 aic32x4->micpga_routing = 0; in aic32x4_i2c_probe()
814 aic32x4->rstn_gpio = -1; in aic32x4_i2c_probe()
817 aic32x4->mclk = devm_clk_get(&i2c->dev, "mclk"); in aic32x4_i2c_probe()
818 if (IS_ERR(aic32x4->mclk)) { in aic32x4_i2c_probe()
820 return PTR_ERR(aic32x4->mclk); in aic32x4_i2c_probe()
823 if (gpio_is_valid(aic32x4->rstn_gpio)) { in aic32x4_i2c_probe()
824 ret = devm_gpio_request_one(&i2c->dev, aic32x4->rstn_gpio, in aic32x4_i2c_probe()
830 ret = aic32x4_setup_regulators(&i2c->dev, aic32x4); in aic32x4_i2c_probe()
840 aic32x4_disable_regulators(aic32x4); in aic32x4_i2c_probe()
844 i2c_set_clientdata(i2c, aic32x4); in aic32x4_i2c_probe()
851 struct aic32x4_priv *aic32x4 = i2c_get_clientdata(client); in aic32x4_i2c_remove() local
853 aic32x4_disable_regulators(aic32x4); in aic32x4_i2c_remove()