aic32x4 771 sound/soc/codecs/tlv320aic32x4.c struct aic32x4_priv *aic32x4 = snd_soc_component_get_drvdata(component); aic32x4 801 sound/soc/codecs/tlv320aic32x4.c if (aic32x4->swapdacs) aic32x4 891 sound/soc/codecs/tlv320aic32x4.c struct aic32x4_priv *aic32x4 = snd_soc_component_get_drvdata(component); aic32x4 895 sound/soc/codecs/tlv320aic32x4.c if (aic32x4->setup->gpio_func[0] != AIC32X4_MFPX_DEFAULT_VALUE) { aic32x4 897 sound/soc/codecs/tlv320aic32x4.c aic32x4->setup->gpio_func[0]); aic32x4 903 sound/soc/codecs/tlv320aic32x4.c if (aic32x4->setup->gpio_func[1] != AIC32X4_MFPX_DEFAULT_VALUE) { aic32x4 905 sound/soc/codecs/tlv320aic32x4.c aic32x4->setup->gpio_func[1]); aic32x4 911 sound/soc/codecs/tlv320aic32x4.c if (aic32x4->setup->gpio_func[2] != AIC32X4_MFPX_DEFAULT_VALUE) { aic32x4 913 sound/soc/codecs/tlv320aic32x4.c aic32x4->setup->gpio_func[2]); aic32x4 919 sound/soc/codecs/tlv320aic32x4.c if (aic32x4->setup->gpio_func[3] != AIC32X4_MFPX_DEFAULT_VALUE) { aic32x4 921 sound/soc/codecs/tlv320aic32x4.c aic32x4->setup->gpio_func[3]); aic32x4 927 sound/soc/codecs/tlv320aic32x4.c if (aic32x4->setup->gpio_func[4] != AIC32X4_MFPX_DEFAULT_VALUE) { aic32x4 929 sound/soc/codecs/tlv320aic32x4.c aic32x4->setup->gpio_func[4]); aic32x4 937 sound/soc/codecs/tlv320aic32x4.c struct aic32x4_priv *aic32x4 = snd_soc_component_get_drvdata(component); aic32x4 952 sound/soc/codecs/tlv320aic32x4.c if (gpio_is_valid(aic32x4->rstn_gpio)) { aic32x4 954 sound/soc/codecs/tlv320aic32x4.c gpio_set_value(aic32x4->rstn_gpio, 1); aic32x4 960 sound/soc/codecs/tlv320aic32x4.c if (aic32x4->setup) aic32x4 967 sound/soc/codecs/tlv320aic32x4.c if (aic32x4->power_cfg & AIC32X4_PWR_MICBIAS_2075_LDOIN) { aic32x4 971 sound/soc/codecs/tlv320aic32x4.c if (aic32x4->power_cfg & AIC32X4_PWR_AVDD_DVDD_WEAK_DISABLE) aic32x4 974 sound/soc/codecs/tlv320aic32x4.c tmp_reg = (aic32x4->power_cfg & AIC32X4_PWR_AIC32X4_LDO_ENABLE) ? aic32x4 979 sound/soc/codecs/tlv320aic32x4.c if (aic32x4->power_cfg & AIC32X4_PWR_CMMODE_LDOIN_RANGE_18_36) aic32x4 981 sound/soc/codecs/tlv320aic32x4.c if (aic32x4->power_cfg & AIC32X4_PWR_CMMODE_HP_LDOIN_POWERED) aic32x4 986 sound/soc/codecs/tlv320aic32x4.c if (aic32x4->micpga_routing & AIC32X4_MICPGA_ROUTE_LMIC_IN2R_10K) aic32x4 992 sound/soc/codecs/tlv320aic32x4.c if (aic32x4->micpga_routing & AIC32X4_MICPGA_ROUTE_RMIC_IN1L_10K) aic32x4 1028 sound/soc/codecs/tlv320aic32x4.c static int aic32x4_parse_dt(struct aic32x4_priv *aic32x4, aic32x4 1034 sound/soc/codecs/tlv320aic32x4.c aic32x4_setup = devm_kzalloc(aic32x4->dev, sizeof(*aic32x4_setup), aic32x4 1042 sound/soc/codecs/tlv320aic32x4.c aic32x4->mclk_name = of_clk_get_parent_name(np, ret); aic32x4 1044 sound/soc/codecs/tlv320aic32x4.c aic32x4->swapdacs = false; aic32x4 1045 sound/soc/codecs/tlv320aic32x4.c aic32x4->micpga_routing = 0; aic32x4 1046 sound/soc/codecs/tlv320aic32x4.c aic32x4->rstn_gpio = of_get_named_gpio(np, "reset-gpios", 0); aic32x4 1050 sound/soc/codecs/tlv320aic32x4.c aic32x4->setup = aic32x4_setup; aic32x4 1054 sound/soc/codecs/tlv320aic32x4.c static void aic32x4_disable_regulators(struct aic32x4_priv *aic32x4) aic32x4 1056 sound/soc/codecs/tlv320aic32x4.c regulator_disable(aic32x4->supply_iov); aic32x4 1058 sound/soc/codecs/tlv320aic32x4.c if (!IS_ERR(aic32x4->supply_ldo)) aic32x4 1059 sound/soc/codecs/tlv320aic32x4.c regulator_disable(aic32x4->supply_ldo); aic32x4 1061 sound/soc/codecs/tlv320aic32x4.c if (!IS_ERR(aic32x4->supply_dv)) aic32x4 1062 sound/soc/codecs/tlv320aic32x4.c regulator_disable(aic32x4->supply_dv); aic32x4 1064 sound/soc/codecs/tlv320aic32x4.c if (!IS_ERR(aic32x4->supply_av)) aic32x4 1065 sound/soc/codecs/tlv320aic32x4.c regulator_disable(aic32x4->supply_av); aic32x4 1069 sound/soc/codecs/tlv320aic32x4.c struct aic32x4_priv *aic32x4) aic32x4 1073 sound/soc/codecs/tlv320aic32x4.c aic32x4->supply_ldo = devm_regulator_get_optional(dev, "ldoin"); aic32x4 1074 sound/soc/codecs/tlv320aic32x4.c aic32x4->supply_iov = devm_regulator_get(dev, "iov"); aic32x4 1075 sound/soc/codecs/tlv320aic32x4.c aic32x4->supply_dv = devm_regulator_get_optional(dev, "dv"); aic32x4 1076 sound/soc/codecs/tlv320aic32x4.c aic32x4->supply_av = devm_regulator_get_optional(dev, "av"); aic32x4 1080 sound/soc/codecs/tlv320aic32x4.c if (IS_ERR(aic32x4->supply_iov)) { aic32x4 1082 sound/soc/codecs/tlv320aic32x4.c return PTR_ERR(aic32x4->supply_iov); aic32x4 1085 sound/soc/codecs/tlv320aic32x4.c if (IS_ERR(aic32x4->supply_ldo)) { aic32x4 1086 sound/soc/codecs/tlv320aic32x4.c if (PTR_ERR(aic32x4->supply_ldo) == -EPROBE_DEFER) aic32x4 1089 sound/soc/codecs/tlv320aic32x4.c if (IS_ERR(aic32x4->supply_dv)) { aic32x4 1091 sound/soc/codecs/tlv320aic32x4.c return PTR_ERR(aic32x4->supply_dv); aic32x4 1093 sound/soc/codecs/tlv320aic32x4.c if (IS_ERR(aic32x4->supply_av)) { aic32x4 1095 sound/soc/codecs/tlv320aic32x4.c return PTR_ERR(aic32x4->supply_av); aic32x4 1098 sound/soc/codecs/tlv320aic32x4.c if (IS_ERR(aic32x4->supply_dv) && aic32x4 1099 sound/soc/codecs/tlv320aic32x4.c PTR_ERR(aic32x4->supply_dv) == -EPROBE_DEFER) aic32x4 1101 sound/soc/codecs/tlv320aic32x4.c if (IS_ERR(aic32x4->supply_av) && aic32x4 1102 sound/soc/codecs/tlv320aic32x4.c PTR_ERR(aic32x4->supply_av) == -EPROBE_DEFER) aic32x4 1106 sound/soc/codecs/tlv320aic32x4.c ret = regulator_enable(aic32x4->supply_iov); aic32x4 1112 sound/soc/codecs/tlv320aic32x4.c if (!IS_ERR(aic32x4->supply_ldo)) { aic32x4 1113 sound/soc/codecs/tlv320aic32x4.c ret = regulator_enable(aic32x4->supply_ldo); aic32x4 1120 sound/soc/codecs/tlv320aic32x4.c if (!IS_ERR(aic32x4->supply_dv)) { aic32x4 1121 sound/soc/codecs/tlv320aic32x4.c ret = regulator_enable(aic32x4->supply_dv); aic32x4 1128 sound/soc/codecs/tlv320aic32x4.c if (!IS_ERR(aic32x4->supply_av)) { aic32x4 1129 sound/soc/codecs/tlv320aic32x4.c ret = regulator_enable(aic32x4->supply_av); aic32x4 1136 sound/soc/codecs/tlv320aic32x4.c if (!IS_ERR(aic32x4->supply_ldo) && IS_ERR(aic32x4->supply_av)) aic32x4 1137 sound/soc/codecs/tlv320aic32x4.c aic32x4->power_cfg |= AIC32X4_PWR_AIC32X4_LDO_ENABLE; aic32x4 1142 sound/soc/codecs/tlv320aic32x4.c if (!IS_ERR(aic32x4->supply_dv)) aic32x4 1143 sound/soc/codecs/tlv320aic32x4.c regulator_disable(aic32x4->supply_dv); aic32x4 1146 sound/soc/codecs/tlv320aic32x4.c if (!IS_ERR(aic32x4->supply_ldo)) aic32x4 1147 sound/soc/codecs/tlv320aic32x4.c regulator_disable(aic32x4->supply_ldo); aic32x4 1150 sound/soc/codecs/tlv320aic32x4.c regulator_disable(aic32x4->supply_iov); aic32x4 1156 sound/soc/codecs/tlv320aic32x4.c struct aic32x4_priv *aic32x4; aic32x4 1164 sound/soc/codecs/tlv320aic32x4.c aic32x4 = devm_kzalloc(dev, sizeof(struct aic32x4_priv), aic32x4 1166 sound/soc/codecs/tlv320aic32x4.c if (aic32x4 == NULL) aic32x4 1169 sound/soc/codecs/tlv320aic32x4.c aic32x4->dev = dev; aic32x4 1170 sound/soc/codecs/tlv320aic32x4.c dev_set_drvdata(dev, aic32x4); aic32x4 1173 sound/soc/codecs/tlv320aic32x4.c aic32x4->power_cfg = pdata->power_cfg; aic32x4 1174 sound/soc/codecs/tlv320aic32x4.c aic32x4->swapdacs = pdata->swapdacs; aic32x4 1175 sound/soc/codecs/tlv320aic32x4.c aic32x4->micpga_routing = pdata->micpga_routing; aic32x4 1176 sound/soc/codecs/tlv320aic32x4.c aic32x4->rstn_gpio = pdata->rstn_gpio; aic32x4 1177 sound/soc/codecs/tlv320aic32x4.c aic32x4->mclk_name = "mclk"; aic32x4 1179 sound/soc/codecs/tlv320aic32x4.c ret = aic32x4_parse_dt(aic32x4, np); aic32x4 1185 sound/soc/codecs/tlv320aic32x4.c aic32x4->power_cfg = 0; aic32x4 1186 sound/soc/codecs/tlv320aic32x4.c aic32x4->swapdacs = false; aic32x4 1187 sound/soc/codecs/tlv320aic32x4.c aic32x4->micpga_routing = 0; aic32x4 1188 sound/soc/codecs/tlv320aic32x4.c aic32x4->rstn_gpio = -1; aic32x4 1189 sound/soc/codecs/tlv320aic32x4.c aic32x4->mclk_name = "mclk"; aic32x4 1192 sound/soc/codecs/tlv320aic32x4.c ret = aic32x4_register_clocks(dev, aic32x4->mclk_name); aic32x4 1196 sound/soc/codecs/tlv320aic32x4.c if (gpio_is_valid(aic32x4->rstn_gpio)) { aic32x4 1197 sound/soc/codecs/tlv320aic32x4.c ret = devm_gpio_request_one(dev, aic32x4->rstn_gpio, aic32x4 1203 sound/soc/codecs/tlv320aic32x4.c ret = aic32x4_setup_regulators(dev, aic32x4); aic32x4 1213 sound/soc/codecs/tlv320aic32x4.c aic32x4_disable_regulators(aic32x4); aic32x4 1223 sound/soc/codecs/tlv320aic32x4.c struct aic32x4_priv *aic32x4 = dev_get_drvdata(dev); aic32x4 1225 sound/soc/codecs/tlv320aic32x4.c aic32x4_disable_regulators(aic32x4);