Lines Matching refs:ret
616 int ret; in pcm512x_set_bias_level() local
624 ret = regmap_update_bits(pcm512x->regmap, PCM512x_POWER, in pcm512x_set_bias_level()
626 if (ret != 0) { in pcm512x_set_bias_level()
628 ret); in pcm512x_set_bias_level()
629 return ret; in pcm512x_set_bias_level()
634 ret = regmap_update_bits(pcm512x->regmap, PCM512x_POWER, in pcm512x_set_bias_level()
636 if (ret != 0) { in pcm512x_set_bias_level()
638 ret); in pcm512x_set_bias_level()
639 return ret; in pcm512x_set_bias_level()
852 int ret; in pcm512x_set_dividers() local
870 ret = snd_soc_params_to_bclk(params); in pcm512x_set_dividers()
871 if (ret < 0) { in pcm512x_set_dividers()
872 dev_err(dev, "Failed to find suitable BCLK: %d\n", ret); in pcm512x_set_dividers()
873 return ret; in pcm512x_set_dividers()
875 if (ret == 0) { in pcm512x_set_dividers()
879 bclk_rate = ret; in pcm512x_set_dividers()
888 ret = pcm512x_find_pll_coeff(dai, pllin_rate, pll_rate); in pcm512x_set_dividers()
889 if (ret != 0) in pcm512x_set_dividers()
890 return ret; in pcm512x_set_dividers()
892 ret = regmap_write(pcm512x->regmap, in pcm512x_set_dividers()
894 if (ret != 0) { in pcm512x_set_dividers()
895 dev_err(dev, "Failed to write PLL P: %d\n", ret); in pcm512x_set_dividers()
896 return ret; in pcm512x_set_dividers()
899 ret = regmap_write(pcm512x->regmap, in pcm512x_set_dividers()
901 if (ret != 0) { in pcm512x_set_dividers()
902 dev_err(dev, "Failed to write PLL J: %d\n", ret); in pcm512x_set_dividers()
903 return ret; in pcm512x_set_dividers()
906 ret = regmap_write(pcm512x->regmap, in pcm512x_set_dividers()
908 if (ret != 0) { in pcm512x_set_dividers()
909 dev_err(dev, "Failed to write PLL D msb: %d\n", ret); in pcm512x_set_dividers()
910 return ret; in pcm512x_set_dividers()
913 ret = regmap_write(pcm512x->regmap, in pcm512x_set_dividers()
915 if (ret != 0) { in pcm512x_set_dividers()
916 dev_err(dev, "Failed to write PLL D lsb: %d\n", ret); in pcm512x_set_dividers()
917 return ret; in pcm512x_set_dividers()
920 ret = regmap_write(pcm512x->regmap, in pcm512x_set_dividers()
922 if (ret != 0) { in pcm512x_set_dividers()
923 dev_err(dev, "Failed to write PLL R: %d\n", ret); in pcm512x_set_dividers()
924 return ret; in pcm512x_set_dividers()
952 ret = regmap_update_bits(pcm512x->regmap, PCM512x_DAC_REF, in pcm512x_set_dividers()
954 if (ret != 0) { in pcm512x_set_dividers()
956 "Failed to set gpio as dacref: %d\n", ret); in pcm512x_set_dividers()
957 return ret; in pcm512x_set_dividers()
961 ret = regmap_update_bits(pcm512x->regmap, PCM512x_GPIO_DACIN, in pcm512x_set_dividers()
963 if (ret != 0) { in pcm512x_set_dividers()
966 pcm512x->pll_in, ret); in pcm512x_set_dividers()
967 return ret; in pcm512x_set_dividers()
990 ret = regmap_update_bits(pcm512x->regmap, PCM512x_DAC_REF, in pcm512x_set_dividers()
992 if (ret != 0) { in pcm512x_set_dividers()
994 "Failed to set sck as dacref: %d\n", ret); in pcm512x_set_dividers()
995 return ret; in pcm512x_set_dividers()
1027 ret = regmap_write(pcm512x->regmap, PCM512x_DSP_CLKDIV, dsp_div - 1); in pcm512x_set_dividers()
1028 if (ret != 0) { in pcm512x_set_dividers()
1029 dev_err(dev, "Failed to write DSP divider: %d\n", ret); in pcm512x_set_dividers()
1030 return ret; in pcm512x_set_dividers()
1033 ret = regmap_write(pcm512x->regmap, PCM512x_DAC_CLKDIV, dac_div - 1); in pcm512x_set_dividers()
1034 if (ret != 0) { in pcm512x_set_dividers()
1035 dev_err(dev, "Failed to write DAC divider: %d\n", ret); in pcm512x_set_dividers()
1036 return ret; in pcm512x_set_dividers()
1039 ret = regmap_write(pcm512x->regmap, PCM512x_NCP_CLKDIV, ncp_div - 1); in pcm512x_set_dividers()
1040 if (ret != 0) { in pcm512x_set_dividers()
1041 dev_err(dev, "Failed to write NCP divider: %d\n", ret); in pcm512x_set_dividers()
1042 return ret; in pcm512x_set_dividers()
1045 ret = regmap_write(pcm512x->regmap, PCM512x_OSR_CLKDIV, osr_div - 1); in pcm512x_set_dividers()
1046 if (ret != 0) { in pcm512x_set_dividers()
1047 dev_err(dev, "Failed to write OSR divider: %d\n", ret); in pcm512x_set_dividers()
1048 return ret; in pcm512x_set_dividers()
1051 ret = regmap_write(pcm512x->regmap, in pcm512x_set_dividers()
1053 if (ret != 0) { in pcm512x_set_dividers()
1054 dev_err(dev, "Failed to write BCLK divider: %d\n", ret); in pcm512x_set_dividers()
1055 return ret; in pcm512x_set_dividers()
1058 ret = regmap_write(pcm512x->regmap, in pcm512x_set_dividers()
1060 if (ret != 0) { in pcm512x_set_dividers()
1061 dev_err(dev, "Failed to write LRCLK divider: %d\n", ret); in pcm512x_set_dividers()
1062 return ret; in pcm512x_set_dividers()
1065 ret = regmap_write(pcm512x->regmap, PCM512x_IDAC_1, idac >> 8); in pcm512x_set_dividers()
1066 if (ret != 0) { in pcm512x_set_dividers()
1067 dev_err(dev, "Failed to write IDAC msb divider: %d\n", ret); in pcm512x_set_dividers()
1068 return ret; in pcm512x_set_dividers()
1071 ret = regmap_write(pcm512x->regmap, PCM512x_IDAC_2, idac & 0xff); in pcm512x_set_dividers()
1072 if (ret != 0) { in pcm512x_set_dividers()
1073 dev_err(dev, "Failed to write IDAC lsb divider: %d\n", ret); in pcm512x_set_dividers()
1074 return ret; in pcm512x_set_dividers()
1085 ret = regmap_update_bits(pcm512x->regmap, PCM512x_FS_SPEED_MODE, in pcm512x_set_dividers()
1087 if (ret != 0) { in pcm512x_set_dividers()
1088 dev_err(codec->dev, "Failed to set fs speed: %d\n", ret); in pcm512x_set_dividers()
1089 return ret; in pcm512x_set_dividers()
1114 int ret; in pcm512x_hw_params() local
1141 ret = regmap_update_bits(pcm512x->regmap, in pcm512x_hw_params()
1146 if (ret != 0) { in pcm512x_hw_params()
1148 "Failed to enable slave mode: %d\n", ret); in pcm512x_hw_params()
1149 return ret; in pcm512x_hw_params()
1152 ret = regmap_update_bits(pcm512x->regmap, PCM512x_ERROR_DETECT, in pcm512x_hw_params()
1154 if (ret != 0) { in pcm512x_hw_params()
1157 ret); in pcm512x_hw_params()
1158 return ret; in pcm512x_hw_params()
1173 ret = regmap_update_bits(pcm512x->regmap, PCM512x_I2S_1, in pcm512x_hw_params()
1175 if (ret != 0) { in pcm512x_hw_params()
1176 dev_err(codec->dev, "Failed to set frame size: %d\n", ret); in pcm512x_hw_params()
1177 return ret; in pcm512x_hw_params()
1181 ret = regmap_write(pcm512x->regmap, PCM512x_FLEX_A, 0x11); in pcm512x_hw_params()
1182 if (ret != 0) { in pcm512x_hw_params()
1183 dev_err(codec->dev, "Failed to set FLEX_A: %d\n", ret); in pcm512x_hw_params()
1184 return ret; in pcm512x_hw_params()
1187 ret = regmap_write(pcm512x->regmap, PCM512x_FLEX_B, 0xff); in pcm512x_hw_params()
1188 if (ret != 0) { in pcm512x_hw_params()
1189 dev_err(codec->dev, "Failed to set FLEX_B: %d\n", ret); in pcm512x_hw_params()
1190 return ret; in pcm512x_hw_params()
1193 ret = regmap_update_bits(pcm512x->regmap, PCM512x_ERROR_DETECT, in pcm512x_hw_params()
1201 if (ret != 0) { in pcm512x_hw_params()
1204 ret); in pcm512x_hw_params()
1205 return ret; in pcm512x_hw_params()
1208 ret = regmap_update_bits(pcm512x->regmap, PCM512x_ERROR_DETECT, in pcm512x_hw_params()
1216 if (ret != 0) { in pcm512x_hw_params()
1219 ret); in pcm512x_hw_params()
1220 return ret; in pcm512x_hw_params()
1223 ret = regmap_update_bits(pcm512x->regmap, PCM512x_PLL_EN, in pcm512x_hw_params()
1225 if (ret != 0) { in pcm512x_hw_params()
1226 dev_err(codec->dev, "Failed to disable pll: %d\n", ret); in pcm512x_hw_params()
1227 return ret; in pcm512x_hw_params()
1231 ret = pcm512x_set_dividers(dai, params); in pcm512x_hw_params()
1232 if (ret != 0) in pcm512x_hw_params()
1233 return ret; in pcm512x_hw_params()
1236 ret = regmap_update_bits(pcm512x->regmap, PCM512x_PLL_REF, in pcm512x_hw_params()
1238 if (ret != 0) { in pcm512x_hw_params()
1240 "Failed to set gpio as pllref: %d\n", ret); in pcm512x_hw_params()
1241 return ret; in pcm512x_hw_params()
1245 ret = regmap_update_bits(pcm512x->regmap, PCM512x_GPIO_PLLIN, in pcm512x_hw_params()
1247 if (ret != 0) { in pcm512x_hw_params()
1250 pcm512x->pll_in, ret); in pcm512x_hw_params()
1251 return ret; in pcm512x_hw_params()
1254 ret = regmap_update_bits(pcm512x->regmap, PCM512x_PLL_EN, in pcm512x_hw_params()
1256 if (ret != 0) { in pcm512x_hw_params()
1257 dev_err(codec->dev, "Failed to enable pll: %d\n", ret); in pcm512x_hw_params()
1258 return ret; in pcm512x_hw_params()
1262 ret = regmap_update_bits(pcm512x->regmap, PCM512x_BCLK_LRCLK_CFG, in pcm512x_hw_params()
1265 if (ret != 0) { in pcm512x_hw_params()
1266 dev_err(codec->dev, "Failed to enable clock output: %d\n", ret); in pcm512x_hw_params()
1267 return ret; in pcm512x_hw_params()
1270 ret = regmap_update_bits(pcm512x->regmap, PCM512x_MASTER_MODE, in pcm512x_hw_params()
1273 if (ret != 0) { in pcm512x_hw_params()
1274 dev_err(codec->dev, "Failed to enable master mode: %d\n", ret); in pcm512x_hw_params()
1275 return ret; in pcm512x_hw_params()
1280 ret = regmap_update_bits(pcm512x->regmap, PCM512x_GPIO_EN, in pcm512x_hw_params()
1282 if (ret != 0) { in pcm512x_hw_params()
1284 pcm512x->pll_out, ret); in pcm512x_hw_params()
1285 return ret; in pcm512x_hw_params()
1289 ret = regmap_update_bits(pcm512x->regmap, gpio, in pcm512x_hw_params()
1291 if (ret != 0) { in pcm512x_hw_params()
1293 ret, pcm512x->pll_out); in pcm512x_hw_params()
1294 return ret; in pcm512x_hw_params()
1298 ret = regmap_update_bits(pcm512x->regmap, PCM512x_SYNCHRONIZE, in pcm512x_hw_params()
1300 if (ret != 0) { in pcm512x_hw_params()
1301 dev_err(codec->dev, "Failed to halt clocks: %d\n", ret); in pcm512x_hw_params()
1302 return ret; in pcm512x_hw_params()
1305 ret = regmap_update_bits(pcm512x->regmap, PCM512x_SYNCHRONIZE, in pcm512x_hw_params()
1307 if (ret != 0) { in pcm512x_hw_params()
1308 dev_err(codec->dev, "Failed to resume clocks: %d\n", ret); in pcm512x_hw_params()
1309 return ret; in pcm512x_hw_params()
1387 int i, ret; in pcm512x_probe() local
1399 ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(pcm512x->supplies), in pcm512x_probe()
1401 if (ret != 0) { in pcm512x_probe()
1402 dev_err(dev, "Failed to get supplies: %d\n", ret); in pcm512x_probe()
1403 return ret; in pcm512x_probe()
1411 ret = regulator_register_notifier(pcm512x->supplies[i].consumer, in pcm512x_probe()
1413 if (ret != 0) { in pcm512x_probe()
1416 ret); in pcm512x_probe()
1420 ret = regulator_bulk_enable(ARRAY_SIZE(pcm512x->supplies), in pcm512x_probe()
1422 if (ret != 0) { in pcm512x_probe()
1423 dev_err(dev, "Failed to enable supplies: %d\n", ret); in pcm512x_probe()
1424 return ret; in pcm512x_probe()
1428 ret = regmap_write(regmap, PCM512x_RESET, in pcm512x_probe()
1430 if (ret != 0) { in pcm512x_probe()
1431 dev_err(dev, "Failed to reset device: %d\n", ret); in pcm512x_probe()
1435 ret = regmap_write(regmap, PCM512x_RESET, 0); in pcm512x_probe()
1436 if (ret != 0) { in pcm512x_probe()
1437 dev_err(dev, "Failed to reset device: %d\n", ret); in pcm512x_probe()
1443 ret = -EPROBE_DEFER; in pcm512x_probe()
1447 ret = clk_prepare_enable(pcm512x->sclk); in pcm512x_probe()
1448 if (ret != 0) { in pcm512x_probe()
1449 dev_err(dev, "Failed to enable SCLK: %d\n", ret); in pcm512x_probe()
1455 ret = regmap_update_bits(pcm512x->regmap, PCM512x_POWER, in pcm512x_probe()
1457 if (ret != 0) { in pcm512x_probe()
1459 ret); in pcm512x_probe()
1475 ret = -EINVAL; in pcm512x_probe()
1484 ret = -EINVAL; in pcm512x_probe()
1493 ret = -EINVAL; in pcm512x_probe()
1498 ret = -EINVAL; in pcm512x_probe()
1504 ret = snd_soc_register_codec(dev, &pcm512x_codec_driver, in pcm512x_probe()
1506 if (ret != 0) { in pcm512x_probe()
1507 dev_err(dev, "Failed to register CODEC: %d\n", ret); in pcm512x_probe()
1521 return ret; in pcm512x_probe()
1542 int ret; in pcm512x_suspend() local
1544 ret = regmap_update_bits(pcm512x->regmap, PCM512x_POWER, in pcm512x_suspend()
1546 if (ret != 0) { in pcm512x_suspend()
1547 dev_err(dev, "Failed to request power down: %d\n", ret); in pcm512x_suspend()
1548 return ret; in pcm512x_suspend()
1551 ret = regulator_bulk_disable(ARRAY_SIZE(pcm512x->supplies), in pcm512x_suspend()
1553 if (ret != 0) { in pcm512x_suspend()
1554 dev_err(dev, "Failed to disable supplies: %d\n", ret); in pcm512x_suspend()
1555 return ret; in pcm512x_suspend()
1567 int ret; in pcm512x_resume() local
1570 ret = clk_prepare_enable(pcm512x->sclk); in pcm512x_resume()
1571 if (ret != 0) { in pcm512x_resume()
1572 dev_err(dev, "Failed to enable SCLK: %d\n", ret); in pcm512x_resume()
1573 return ret; in pcm512x_resume()
1577 ret = regulator_bulk_enable(ARRAY_SIZE(pcm512x->supplies), in pcm512x_resume()
1579 if (ret != 0) { in pcm512x_resume()
1580 dev_err(dev, "Failed to enable supplies: %d\n", ret); in pcm512x_resume()
1581 return ret; in pcm512x_resume()
1585 ret = regcache_sync(pcm512x->regmap); in pcm512x_resume()
1586 if (ret != 0) { in pcm512x_resume()
1587 dev_err(dev, "Failed to sync cache: %d\n", ret); in pcm512x_resume()
1588 return ret; in pcm512x_resume()
1591 ret = regmap_update_bits(pcm512x->regmap, PCM512x_POWER, in pcm512x_resume()
1593 if (ret != 0) { in pcm512x_resume()
1594 dev_err(dev, "Failed to remove power down: %d\n", ret); in pcm512x_resume()
1595 return ret; in pcm512x_resume()