Lines Matching refs:ret
409 int ret, changed = 0; in pcm512x_digital_playback_switch_put() local
423 ret = pcm512x_update_mute(pcm512x); in pcm512x_digital_playback_switch_put()
424 if (ret != 0) { in pcm512x_digital_playback_switch_put()
426 "Failed to update digital mute: %d\n", ret); in pcm512x_digital_playback_switch_put()
428 return ret; in pcm512x_digital_playback_switch_put()
670 int ret; in pcm512x_set_bias_level() local
678 ret = regmap_update_bits(pcm512x->regmap, PCM512x_POWER, in pcm512x_set_bias_level()
680 if (ret != 0) { in pcm512x_set_bias_level()
682 ret); in pcm512x_set_bias_level()
683 return ret; in pcm512x_set_bias_level()
688 ret = regmap_update_bits(pcm512x->regmap, PCM512x_POWER, in pcm512x_set_bias_level()
690 if (ret != 0) { in pcm512x_set_bias_level()
692 ret); in pcm512x_set_bias_level()
693 return ret; in pcm512x_set_bias_level()
906 int ret; in pcm512x_set_dividers() local
929 ret = snd_soc_params_to_bclk(params); in pcm512x_set_dividers()
930 if (ret < 0) { in pcm512x_set_dividers()
931 dev_err(dev, "Failed to find suitable BCLK: %d\n", ret); in pcm512x_set_dividers()
932 return ret; in pcm512x_set_dividers()
934 if (ret == 0) { in pcm512x_set_dividers()
938 bclk_rate = ret; in pcm512x_set_dividers()
947 ret = pcm512x_find_pll_coeff(dai, pllin_rate, pll_rate); in pcm512x_set_dividers()
948 if (ret != 0) in pcm512x_set_dividers()
949 return ret; in pcm512x_set_dividers()
951 ret = regmap_write(pcm512x->regmap, in pcm512x_set_dividers()
953 if (ret != 0) { in pcm512x_set_dividers()
954 dev_err(dev, "Failed to write PLL P: %d\n", ret); in pcm512x_set_dividers()
955 return ret; in pcm512x_set_dividers()
958 ret = regmap_write(pcm512x->regmap, in pcm512x_set_dividers()
960 if (ret != 0) { in pcm512x_set_dividers()
961 dev_err(dev, "Failed to write PLL J: %d\n", ret); in pcm512x_set_dividers()
962 return ret; in pcm512x_set_dividers()
965 ret = regmap_write(pcm512x->regmap, in pcm512x_set_dividers()
967 if (ret != 0) { in pcm512x_set_dividers()
968 dev_err(dev, "Failed to write PLL D msb: %d\n", ret); in pcm512x_set_dividers()
969 return ret; in pcm512x_set_dividers()
972 ret = regmap_write(pcm512x->regmap, in pcm512x_set_dividers()
974 if (ret != 0) { in pcm512x_set_dividers()
975 dev_err(dev, "Failed to write PLL D lsb: %d\n", ret); in pcm512x_set_dividers()
976 return ret; in pcm512x_set_dividers()
979 ret = regmap_write(pcm512x->regmap, in pcm512x_set_dividers()
981 if (ret != 0) { in pcm512x_set_dividers()
982 dev_err(dev, "Failed to write PLL R: %d\n", ret); in pcm512x_set_dividers()
983 return ret; in pcm512x_set_dividers()
1011 ret = regmap_update_bits(pcm512x->regmap, PCM512x_DAC_REF, in pcm512x_set_dividers()
1013 if (ret != 0) { in pcm512x_set_dividers()
1015 "Failed to set gpio as dacref: %d\n", ret); in pcm512x_set_dividers()
1016 return ret; in pcm512x_set_dividers()
1020 ret = regmap_update_bits(pcm512x->regmap, PCM512x_GPIO_DACIN, in pcm512x_set_dividers()
1022 if (ret != 0) { in pcm512x_set_dividers()
1025 pcm512x->pll_in, ret); in pcm512x_set_dividers()
1026 return ret; in pcm512x_set_dividers()
1049 ret = regmap_update_bits(pcm512x->regmap, PCM512x_DAC_REF, in pcm512x_set_dividers()
1051 if (ret != 0) { in pcm512x_set_dividers()
1053 "Failed to set sck as dacref: %d\n", ret); in pcm512x_set_dividers()
1054 return ret; in pcm512x_set_dividers()
1086 ret = regmap_write(pcm512x->regmap, PCM512x_DSP_CLKDIV, dsp_div - 1); in pcm512x_set_dividers()
1087 if (ret != 0) { in pcm512x_set_dividers()
1088 dev_err(dev, "Failed to write DSP divider: %d\n", ret); in pcm512x_set_dividers()
1089 return ret; in pcm512x_set_dividers()
1092 ret = regmap_write(pcm512x->regmap, PCM512x_DAC_CLKDIV, dac_div - 1); in pcm512x_set_dividers()
1093 if (ret != 0) { in pcm512x_set_dividers()
1094 dev_err(dev, "Failed to write DAC divider: %d\n", ret); in pcm512x_set_dividers()
1095 return ret; in pcm512x_set_dividers()
1098 ret = regmap_write(pcm512x->regmap, PCM512x_NCP_CLKDIV, ncp_div - 1); in pcm512x_set_dividers()
1099 if (ret != 0) { in pcm512x_set_dividers()
1100 dev_err(dev, "Failed to write NCP divider: %d\n", ret); in pcm512x_set_dividers()
1101 return ret; in pcm512x_set_dividers()
1104 ret = regmap_write(pcm512x->regmap, PCM512x_OSR_CLKDIV, osr_div - 1); in pcm512x_set_dividers()
1105 if (ret != 0) { in pcm512x_set_dividers()
1106 dev_err(dev, "Failed to write OSR divider: %d\n", ret); in pcm512x_set_dividers()
1107 return ret; in pcm512x_set_dividers()
1110 ret = regmap_write(pcm512x->regmap, in pcm512x_set_dividers()
1112 if (ret != 0) { in pcm512x_set_dividers()
1113 dev_err(dev, "Failed to write BCLK divider: %d\n", ret); in pcm512x_set_dividers()
1114 return ret; in pcm512x_set_dividers()
1117 ret = regmap_write(pcm512x->regmap, in pcm512x_set_dividers()
1119 if (ret != 0) { in pcm512x_set_dividers()
1120 dev_err(dev, "Failed to write LRCLK divider: %d\n", ret); in pcm512x_set_dividers()
1121 return ret; in pcm512x_set_dividers()
1124 ret = regmap_write(pcm512x->regmap, PCM512x_IDAC_1, idac >> 8); in pcm512x_set_dividers()
1125 if (ret != 0) { in pcm512x_set_dividers()
1126 dev_err(dev, "Failed to write IDAC msb divider: %d\n", ret); in pcm512x_set_dividers()
1127 return ret; in pcm512x_set_dividers()
1130 ret = regmap_write(pcm512x->regmap, PCM512x_IDAC_2, idac & 0xff); in pcm512x_set_dividers()
1131 if (ret != 0) { in pcm512x_set_dividers()
1132 dev_err(dev, "Failed to write IDAC lsb divider: %d\n", ret); in pcm512x_set_dividers()
1133 return ret; in pcm512x_set_dividers()
1144 ret = regmap_update_bits(pcm512x->regmap, PCM512x_FS_SPEED_MODE, in pcm512x_set_dividers()
1146 if (ret != 0) { in pcm512x_set_dividers()
1147 dev_err(component->dev, "Failed to set fs speed: %d\n", ret); in pcm512x_set_dividers()
1148 return ret; in pcm512x_set_dividers()
1173 int ret; in pcm512x_hw_params() local
1200 ret = regmap_update_bits(pcm512x->regmap, in pcm512x_hw_params()
1205 if (ret != 0) { in pcm512x_hw_params()
1207 "Failed to enable slave mode: %d\n", ret); in pcm512x_hw_params()
1208 return ret; in pcm512x_hw_params()
1211 ret = regmap_update_bits(pcm512x->regmap, PCM512x_ERROR_DETECT, in pcm512x_hw_params()
1213 if (ret != 0) { in pcm512x_hw_params()
1216 ret); in pcm512x_hw_params()
1217 return ret; in pcm512x_hw_params()
1232 ret = regmap_update_bits(pcm512x->regmap, PCM512x_I2S_1, in pcm512x_hw_params()
1234 if (ret != 0) { in pcm512x_hw_params()
1235 dev_err(component->dev, "Failed to set frame size: %d\n", ret); in pcm512x_hw_params()
1236 return ret; in pcm512x_hw_params()
1240 ret = regmap_write(pcm512x->regmap, PCM512x_FLEX_A, 0x11); in pcm512x_hw_params()
1241 if (ret != 0) { in pcm512x_hw_params()
1242 dev_err(component->dev, "Failed to set FLEX_A: %d\n", ret); in pcm512x_hw_params()
1243 return ret; in pcm512x_hw_params()
1246 ret = regmap_write(pcm512x->regmap, PCM512x_FLEX_B, 0xff); in pcm512x_hw_params()
1247 if (ret != 0) { in pcm512x_hw_params()
1248 dev_err(component->dev, "Failed to set FLEX_B: %d\n", ret); in pcm512x_hw_params()
1249 return ret; in pcm512x_hw_params()
1252 ret = regmap_update_bits(pcm512x->regmap, PCM512x_ERROR_DETECT, in pcm512x_hw_params()
1260 if (ret != 0) { in pcm512x_hw_params()
1263 ret); in pcm512x_hw_params()
1264 return ret; in pcm512x_hw_params()
1267 ret = regmap_update_bits(pcm512x->regmap, PCM512x_ERROR_DETECT, in pcm512x_hw_params()
1275 if (ret != 0) { in pcm512x_hw_params()
1278 ret); in pcm512x_hw_params()
1279 return ret; in pcm512x_hw_params()
1282 ret = regmap_update_bits(pcm512x->regmap, PCM512x_PLL_EN, in pcm512x_hw_params()
1284 if (ret != 0) { in pcm512x_hw_params()
1285 dev_err(component->dev, "Failed to disable pll: %d\n", ret); in pcm512x_hw_params()
1286 return ret; in pcm512x_hw_params()
1290 ret = pcm512x_set_dividers(dai, params); in pcm512x_hw_params()
1291 if (ret != 0) in pcm512x_hw_params()
1292 return ret; in pcm512x_hw_params()
1295 ret = regmap_update_bits(pcm512x->regmap, PCM512x_PLL_REF, in pcm512x_hw_params()
1297 if (ret != 0) { in pcm512x_hw_params()
1299 "Failed to set gpio as pllref: %d\n", ret); in pcm512x_hw_params()
1300 return ret; in pcm512x_hw_params()
1304 ret = regmap_update_bits(pcm512x->regmap, PCM512x_GPIO_PLLIN, in pcm512x_hw_params()
1306 if (ret != 0) { in pcm512x_hw_params()
1309 pcm512x->pll_in, ret); in pcm512x_hw_params()
1310 return ret; in pcm512x_hw_params()
1313 ret = regmap_update_bits(pcm512x->regmap, PCM512x_PLL_EN, in pcm512x_hw_params()
1315 if (ret != 0) { in pcm512x_hw_params()
1316 dev_err(component->dev, "Failed to enable pll: %d\n", ret); in pcm512x_hw_params()
1317 return ret; in pcm512x_hw_params()
1321 ret = regmap_update_bits(pcm512x->regmap, PCM512x_BCLK_LRCLK_CFG, in pcm512x_hw_params()
1324 if (ret != 0) { in pcm512x_hw_params()
1325 dev_err(component->dev, "Failed to enable clock output: %d\n", ret); in pcm512x_hw_params()
1326 return ret; in pcm512x_hw_params()
1329 ret = regmap_update_bits(pcm512x->regmap, PCM512x_MASTER_MODE, in pcm512x_hw_params()
1332 if (ret != 0) { in pcm512x_hw_params()
1333 dev_err(component->dev, "Failed to enable master mode: %d\n", ret); in pcm512x_hw_params()
1334 return ret; in pcm512x_hw_params()
1339 ret = regmap_update_bits(pcm512x->regmap, PCM512x_GPIO_EN, in pcm512x_hw_params()
1341 if (ret != 0) { in pcm512x_hw_params()
1343 pcm512x->pll_out, ret); in pcm512x_hw_params()
1344 return ret; in pcm512x_hw_params()
1348 ret = regmap_update_bits(pcm512x->regmap, gpio, in pcm512x_hw_params()
1350 if (ret != 0) { in pcm512x_hw_params()
1352 ret, pcm512x->pll_out); in pcm512x_hw_params()
1353 return ret; in pcm512x_hw_params()
1357 ret = regmap_update_bits(pcm512x->regmap, PCM512x_SYNCHRONIZE, in pcm512x_hw_params()
1359 if (ret != 0) { in pcm512x_hw_params()
1360 dev_err(component->dev, "Failed to halt clocks: %d\n", ret); in pcm512x_hw_params()
1361 return ret; in pcm512x_hw_params()
1364 ret = regmap_update_bits(pcm512x->regmap, PCM512x_SYNCHRONIZE, in pcm512x_hw_params()
1366 if (ret != 0) { in pcm512x_hw_params()
1367 dev_err(component->dev, "Failed to resume clocks: %d\n", ret); in pcm512x_hw_params()
1368 return ret; in pcm512x_hw_params()
1401 int ret; in pcm512x_mute() local
1408 ret = regmap_update_bits(pcm512x->regmap, PCM512x_MUTE, in pcm512x_mute()
1411 if (ret != 0) { in pcm512x_mute()
1413 "Failed to set digital mute: %d\n", ret); in pcm512x_mute()
1423 ret = pcm512x_update_mute(pcm512x); in pcm512x_mute()
1424 if (ret != 0) { in pcm512x_mute()
1426 "Failed to update digital mute: %d\n", ret); in pcm512x_mute()
1441 return ret; in pcm512x_mute()
1510 int i, ret; in pcm512x_probe() local
1524 ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(pcm512x->supplies), in pcm512x_probe()
1526 if (ret != 0) { in pcm512x_probe()
1527 dev_err(dev, "Failed to get supplies: %d\n", ret); in pcm512x_probe()
1528 return ret; in pcm512x_probe()
1536 ret = devm_regulator_register_notifier( in pcm512x_probe()
1539 if (ret != 0) { in pcm512x_probe()
1542 ret); in pcm512x_probe()
1546 ret = regulator_bulk_enable(ARRAY_SIZE(pcm512x->supplies), in pcm512x_probe()
1548 if (ret != 0) { in pcm512x_probe()
1549 dev_err(dev, "Failed to enable supplies: %d\n", ret); in pcm512x_probe()
1550 return ret; in pcm512x_probe()
1554 ret = regmap_write(regmap, PCM512x_RESET, in pcm512x_probe()
1556 if (ret != 0) { in pcm512x_probe()
1557 dev_err(dev, "Failed to reset device: %d\n", ret); in pcm512x_probe()
1561 ret = regmap_write(regmap, PCM512x_RESET, 0); in pcm512x_probe()
1562 if (ret != 0) { in pcm512x_probe()
1563 dev_err(dev, "Failed to reset device: %d\n", ret); in pcm512x_probe()
1569 ret = -EPROBE_DEFER; in pcm512x_probe()
1573 ret = clk_prepare_enable(pcm512x->sclk); in pcm512x_probe()
1574 if (ret != 0) { in pcm512x_probe()
1575 dev_err(dev, "Failed to enable SCLK: %d\n", ret); in pcm512x_probe()
1581 ret = regmap_update_bits(pcm512x->regmap, PCM512x_POWER, in pcm512x_probe()
1583 if (ret != 0) { in pcm512x_probe()
1585 ret); in pcm512x_probe()
1601 ret = -EINVAL; in pcm512x_probe()
1610 ret = -EINVAL; in pcm512x_probe()
1619 ret = -EINVAL; in pcm512x_probe()
1624 ret = -EINVAL; in pcm512x_probe()
1630 ret = devm_snd_soc_register_component(dev, &pcm512x_component_driver, in pcm512x_probe()
1632 if (ret != 0) { in pcm512x_probe()
1633 dev_err(dev, "Failed to register CODEC: %d\n", ret); in pcm512x_probe()
1647 return ret; in pcm512x_probe()
1667 int ret; in pcm512x_suspend() local
1669 ret = regmap_update_bits(pcm512x->regmap, PCM512x_POWER, in pcm512x_suspend()
1671 if (ret != 0) { in pcm512x_suspend()
1672 dev_err(dev, "Failed to request power down: %d\n", ret); in pcm512x_suspend()
1673 return ret; in pcm512x_suspend()
1676 ret = regulator_bulk_disable(ARRAY_SIZE(pcm512x->supplies), in pcm512x_suspend()
1678 if (ret != 0) { in pcm512x_suspend()
1679 dev_err(dev, "Failed to disable supplies: %d\n", ret); in pcm512x_suspend()
1680 return ret; in pcm512x_suspend()
1692 int ret; in pcm512x_resume() local
1695 ret = clk_prepare_enable(pcm512x->sclk); in pcm512x_resume()
1696 if (ret != 0) { in pcm512x_resume()
1697 dev_err(dev, "Failed to enable SCLK: %d\n", ret); in pcm512x_resume()
1698 return ret; in pcm512x_resume()
1702 ret = regulator_bulk_enable(ARRAY_SIZE(pcm512x->supplies), in pcm512x_resume()
1704 if (ret != 0) { in pcm512x_resume()
1705 dev_err(dev, "Failed to enable supplies: %d\n", ret); in pcm512x_resume()
1706 return ret; in pcm512x_resume()
1710 ret = regcache_sync(pcm512x->regmap); in pcm512x_resume()
1711 if (ret != 0) { in pcm512x_resume()
1712 dev_err(dev, "Failed to sync cache: %d\n", ret); in pcm512x_resume()
1713 return ret; in pcm512x_resume()
1716 ret = regmap_update_bits(pcm512x->regmap, PCM512x_POWER, in pcm512x_resume()
1718 if (ret != 0) { in pcm512x_resume()
1719 dev_err(dev, "Failed to remove power down: %d\n", ret); in pcm512x_resume()
1720 return ret; in pcm512x_resume()