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()
854 int ret; in pcm512x_set_dividers() local
872 ret = snd_soc_params_to_bclk(params); in pcm512x_set_dividers()
873 if (ret < 0) { in pcm512x_set_dividers()
874 dev_err(dev, "Failed to find suitable BCLK: %d\n", ret); in pcm512x_set_dividers()
875 return ret; in pcm512x_set_dividers()
877 if (ret == 0) { in pcm512x_set_dividers()
881 bclk_rate = ret; in pcm512x_set_dividers()
890 ret = pcm512x_find_pll_coeff(dai, pllin_rate, pll_rate); in pcm512x_set_dividers()
891 if (ret != 0) in pcm512x_set_dividers()
892 return ret; in pcm512x_set_dividers()
894 ret = regmap_write(pcm512x->regmap, in pcm512x_set_dividers()
896 if (ret != 0) { in pcm512x_set_dividers()
897 dev_err(dev, "Failed to write PLL P: %d\n", ret); in pcm512x_set_dividers()
898 return ret; in pcm512x_set_dividers()
901 ret = regmap_write(pcm512x->regmap, in pcm512x_set_dividers()
903 if (ret != 0) { in pcm512x_set_dividers()
904 dev_err(dev, "Failed to write PLL J: %d\n", ret); in pcm512x_set_dividers()
905 return ret; in pcm512x_set_dividers()
908 ret = regmap_write(pcm512x->regmap, in pcm512x_set_dividers()
910 if (ret != 0) { in pcm512x_set_dividers()
911 dev_err(dev, "Failed to write PLL D msb: %d\n", ret); in pcm512x_set_dividers()
912 return ret; in pcm512x_set_dividers()
915 ret = regmap_write(pcm512x->regmap, in pcm512x_set_dividers()
917 if (ret != 0) { in pcm512x_set_dividers()
918 dev_err(dev, "Failed to write PLL D lsb: %d\n", ret); in pcm512x_set_dividers()
919 return ret; in pcm512x_set_dividers()
922 ret = regmap_write(pcm512x->regmap, in pcm512x_set_dividers()
924 if (ret != 0) { in pcm512x_set_dividers()
925 dev_err(dev, "Failed to write PLL R: %d\n", ret); in pcm512x_set_dividers()
926 return ret; in pcm512x_set_dividers()
954 ret = regmap_update_bits(pcm512x->regmap, PCM512x_DAC_REF, in pcm512x_set_dividers()
956 if (ret != 0) { in pcm512x_set_dividers()
958 "Failed to set gpio as dacref: %d\n", ret); in pcm512x_set_dividers()
959 return ret; in pcm512x_set_dividers()
963 ret = regmap_update_bits(pcm512x->regmap, PCM512x_GPIO_DACIN, in pcm512x_set_dividers()
965 if (ret != 0) { in pcm512x_set_dividers()
968 pcm512x->pll_in, ret); in pcm512x_set_dividers()
969 return ret; in pcm512x_set_dividers()
992 ret = regmap_update_bits(pcm512x->regmap, PCM512x_DAC_REF, in pcm512x_set_dividers()
994 if (ret != 0) { in pcm512x_set_dividers()
996 "Failed to set sck as dacref: %d\n", ret); in pcm512x_set_dividers()
997 return ret; in pcm512x_set_dividers()
1029 ret = regmap_write(pcm512x->regmap, PCM512x_DSP_CLKDIV, dsp_div - 1); in pcm512x_set_dividers()
1030 if (ret != 0) { in pcm512x_set_dividers()
1031 dev_err(dev, "Failed to write DSP divider: %d\n", ret); in pcm512x_set_dividers()
1032 return ret; in pcm512x_set_dividers()
1035 ret = regmap_write(pcm512x->regmap, PCM512x_DAC_CLKDIV, dac_div - 1); in pcm512x_set_dividers()
1036 if (ret != 0) { in pcm512x_set_dividers()
1037 dev_err(dev, "Failed to write DAC divider: %d\n", ret); in pcm512x_set_dividers()
1038 return ret; in pcm512x_set_dividers()
1041 ret = regmap_write(pcm512x->regmap, PCM512x_NCP_CLKDIV, ncp_div - 1); in pcm512x_set_dividers()
1042 if (ret != 0) { in pcm512x_set_dividers()
1043 dev_err(dev, "Failed to write NCP divider: %d\n", ret); in pcm512x_set_dividers()
1044 return ret; in pcm512x_set_dividers()
1047 ret = regmap_write(pcm512x->regmap, PCM512x_OSR_CLKDIV, osr_div - 1); in pcm512x_set_dividers()
1048 if (ret != 0) { in pcm512x_set_dividers()
1049 dev_err(dev, "Failed to write OSR divider: %d\n", ret); in pcm512x_set_dividers()
1050 return ret; in pcm512x_set_dividers()
1053 ret = regmap_write(pcm512x->regmap, in pcm512x_set_dividers()
1055 if (ret != 0) { in pcm512x_set_dividers()
1056 dev_err(dev, "Failed to write BCLK divider: %d\n", ret); in pcm512x_set_dividers()
1057 return ret; in pcm512x_set_dividers()
1060 ret = regmap_write(pcm512x->regmap, in pcm512x_set_dividers()
1062 if (ret != 0) { in pcm512x_set_dividers()
1063 dev_err(dev, "Failed to write LRCLK divider: %d\n", ret); in pcm512x_set_dividers()
1064 return ret; in pcm512x_set_dividers()
1067 ret = regmap_write(pcm512x->regmap, PCM512x_IDAC_1, idac >> 8); in pcm512x_set_dividers()
1068 if (ret != 0) { in pcm512x_set_dividers()
1069 dev_err(dev, "Failed to write IDAC msb divider: %d\n", ret); in pcm512x_set_dividers()
1070 return ret; in pcm512x_set_dividers()
1073 ret = regmap_write(pcm512x->regmap, PCM512x_IDAC_2, idac & 0xff); in pcm512x_set_dividers()
1074 if (ret != 0) { in pcm512x_set_dividers()
1075 dev_err(dev, "Failed to write IDAC lsb divider: %d\n", ret); in pcm512x_set_dividers()
1076 return ret; in pcm512x_set_dividers()
1087 ret = regmap_update_bits(pcm512x->regmap, PCM512x_FS_SPEED_MODE, in pcm512x_set_dividers()
1089 if (ret != 0) { in pcm512x_set_dividers()
1090 dev_err(codec->dev, "Failed to set fs speed: %d\n", ret); in pcm512x_set_dividers()
1091 return ret; in pcm512x_set_dividers()
1116 int ret; in pcm512x_hw_params() local
1143 ret = regmap_update_bits(pcm512x->regmap, in pcm512x_hw_params()
1148 if (ret != 0) { in pcm512x_hw_params()
1150 "Failed to enable slave mode: %d\n", ret); in pcm512x_hw_params()
1151 return ret; in pcm512x_hw_params()
1154 ret = regmap_update_bits(pcm512x->regmap, PCM512x_ERROR_DETECT, in pcm512x_hw_params()
1156 if (ret != 0) { in pcm512x_hw_params()
1159 ret); in pcm512x_hw_params()
1160 return ret; in pcm512x_hw_params()
1175 ret = regmap_update_bits(pcm512x->regmap, PCM512x_I2S_1, in pcm512x_hw_params()
1177 if (ret != 0) { in pcm512x_hw_params()
1178 dev_err(codec->dev, "Failed to set frame size: %d\n", ret); in pcm512x_hw_params()
1179 return ret; in pcm512x_hw_params()
1183 ret = regmap_write(pcm512x->regmap, PCM512x_FLEX_A, 0x11); in pcm512x_hw_params()
1184 if (ret != 0) { in pcm512x_hw_params()
1185 dev_err(codec->dev, "Failed to set FLEX_A: %d\n", ret); in pcm512x_hw_params()
1186 return ret; in pcm512x_hw_params()
1189 ret = regmap_write(pcm512x->regmap, PCM512x_FLEX_B, 0xff); in pcm512x_hw_params()
1190 if (ret != 0) { in pcm512x_hw_params()
1191 dev_err(codec->dev, "Failed to set FLEX_B: %d\n", ret); in pcm512x_hw_params()
1192 return ret; in pcm512x_hw_params()
1195 ret = regmap_update_bits(pcm512x->regmap, PCM512x_ERROR_DETECT, in pcm512x_hw_params()
1203 if (ret != 0) { in pcm512x_hw_params()
1206 ret); in pcm512x_hw_params()
1207 return ret; in pcm512x_hw_params()
1210 ret = regmap_update_bits(pcm512x->regmap, PCM512x_ERROR_DETECT, in pcm512x_hw_params()
1218 if (ret != 0) { in pcm512x_hw_params()
1221 ret); in pcm512x_hw_params()
1222 return ret; in pcm512x_hw_params()
1225 ret = regmap_update_bits(pcm512x->regmap, PCM512x_PLL_EN, in pcm512x_hw_params()
1227 if (ret != 0) { in pcm512x_hw_params()
1228 dev_err(codec->dev, "Failed to disable pll: %d\n", ret); in pcm512x_hw_params()
1229 return ret; in pcm512x_hw_params()
1233 ret = pcm512x_set_dividers(dai, params); in pcm512x_hw_params()
1234 if (ret != 0) in pcm512x_hw_params()
1235 return ret; in pcm512x_hw_params()
1238 ret = regmap_update_bits(pcm512x->regmap, PCM512x_PLL_REF, in pcm512x_hw_params()
1240 if (ret != 0) { in pcm512x_hw_params()
1242 "Failed to set gpio as pllref: %d\n", ret); in pcm512x_hw_params()
1243 return ret; in pcm512x_hw_params()
1247 ret = regmap_update_bits(pcm512x->regmap, PCM512x_GPIO_PLLIN, in pcm512x_hw_params()
1249 if (ret != 0) { in pcm512x_hw_params()
1252 pcm512x->pll_in, ret); in pcm512x_hw_params()
1253 return ret; in pcm512x_hw_params()
1256 ret = regmap_update_bits(pcm512x->regmap, PCM512x_PLL_EN, in pcm512x_hw_params()
1258 if (ret != 0) { in pcm512x_hw_params()
1259 dev_err(codec->dev, "Failed to enable pll: %d\n", ret); in pcm512x_hw_params()
1260 return ret; in pcm512x_hw_params()
1264 ret = regmap_update_bits(pcm512x->regmap, PCM512x_BCLK_LRCLK_CFG, in pcm512x_hw_params()
1267 if (ret != 0) { in pcm512x_hw_params()
1268 dev_err(codec->dev, "Failed to enable clock output: %d\n", ret); in pcm512x_hw_params()
1269 return ret; in pcm512x_hw_params()
1272 ret = regmap_update_bits(pcm512x->regmap, PCM512x_MASTER_MODE, in pcm512x_hw_params()
1275 if (ret != 0) { in pcm512x_hw_params()
1276 dev_err(codec->dev, "Failed to enable master mode: %d\n", ret); in pcm512x_hw_params()
1277 return ret; in pcm512x_hw_params()
1282 ret = regmap_update_bits(pcm512x->regmap, PCM512x_GPIO_EN, in pcm512x_hw_params()
1284 if (ret != 0) { in pcm512x_hw_params()
1286 pcm512x->pll_out, ret); in pcm512x_hw_params()
1287 return ret; in pcm512x_hw_params()
1291 ret = regmap_update_bits(pcm512x->regmap, gpio, in pcm512x_hw_params()
1293 if (ret != 0) { in pcm512x_hw_params()
1295 ret, pcm512x->pll_out); in pcm512x_hw_params()
1296 return ret; in pcm512x_hw_params()
1300 ret = regmap_update_bits(pcm512x->regmap, PCM512x_SYNCHRONIZE, in pcm512x_hw_params()
1302 if (ret != 0) { in pcm512x_hw_params()
1303 dev_err(codec->dev, "Failed to halt clocks: %d\n", ret); in pcm512x_hw_params()
1304 return ret; in pcm512x_hw_params()
1307 ret = regmap_update_bits(pcm512x->regmap, PCM512x_SYNCHRONIZE, in pcm512x_hw_params()
1309 if (ret != 0) { in pcm512x_hw_params()
1310 dev_err(codec->dev, "Failed to resume clocks: %d\n", ret); in pcm512x_hw_params()
1311 return ret; in pcm512x_hw_params()
1389 int i, ret; in pcm512x_probe() local
1401 ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(pcm512x->supplies), in pcm512x_probe()
1403 if (ret != 0) { in pcm512x_probe()
1404 dev_err(dev, "Failed to get supplies: %d\n", ret); in pcm512x_probe()
1405 return ret; in pcm512x_probe()
1413 ret = regulator_register_notifier(pcm512x->supplies[i].consumer, in pcm512x_probe()
1415 if (ret != 0) { in pcm512x_probe()
1418 ret); in pcm512x_probe()
1422 ret = regulator_bulk_enable(ARRAY_SIZE(pcm512x->supplies), in pcm512x_probe()
1424 if (ret != 0) { in pcm512x_probe()
1425 dev_err(dev, "Failed to enable supplies: %d\n", ret); in pcm512x_probe()
1426 return ret; in pcm512x_probe()
1430 ret = regmap_write(regmap, PCM512x_RESET, in pcm512x_probe()
1432 if (ret != 0) { in pcm512x_probe()
1433 dev_err(dev, "Failed to reset device: %d\n", ret); in pcm512x_probe()
1437 ret = regmap_write(regmap, PCM512x_RESET, 0); in pcm512x_probe()
1438 if (ret != 0) { in pcm512x_probe()
1439 dev_err(dev, "Failed to reset device: %d\n", ret); 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()
1450 return 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()