Lines Matching +full:auto +full:- +full:detect
2 * cs42l42.c -- CS42L42 ALSA SoC audio driver
36 #include <sound/soc-dapm.h>
39 #include <dt-bindings/sound/cs42l42.h>
407 static DECLARE_TLV_DB_SCALE(adc_tlv, -9600, 100, false);
408 static DECLARE_TLV_DB_SCALE(mixer_tlv, -6200, 100, false);
471 struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); in cs42l42_hpdrv_evt()
497 dev_err(component->dev, "Invalid event 0x%x\n", event); in cs42l42_hpdrv_evt()
531 regcache_cache_only(cs42l42->regmap, false); in cs42l42_set_bias_level()
532 regcache_sync(cs42l42->regmap); in cs42l42_set_bias_level()
534 ARRAY_SIZE(cs42l42->supplies), in cs42l42_set_bias_level()
535 cs42l42->supplies); in cs42l42_set_bias_level()
537 dev_err(component->dev, in cs42l42_set_bias_level()
546 regcache_cache_only(cs42l42->regmap, true); in cs42l42_set_bias_level()
547 regulator_bulk_disable(ARRAY_SIZE(cs42l42->supplies), in cs42l42_set_bias_level()
548 cs42l42->supplies); in cs42l42_set_bias_level()
560 cs42l42->component = component; in cs42l42_component_probe()
594 * Table 4-5 from the Datasheet
621 if (pll_ratio_table[i].sclk == cs42l42->sclk) { in cs42l42_pll_config()
641 fsync = cs42l42->sclk / cs42l42->srate; in cs42l42_pll_config()
642 if (((fsync * cs42l42->srate) != cs42l42->sclk) in cs42l42_pll_config()
644 dev_err(component->dev, in cs42l42_pll_config()
646 cs42l42->sclk, in cs42l42_pll_config()
647 cs42l42->srate); in cs42l42_pll_config()
648 return -EINVAL; in cs42l42_pll_config()
654 CS42L42_FRAC0_VAL(fsync - 1) << in cs42l42_pll_config()
659 CS42L42_FRAC1_VAL(fsync - 1) << in cs42l42_pll_config()
666 CS42L42_FRAC0_VAL(fsync - 1) << in cs42l42_pll_config()
671 CS42L42_FRAC1_VAL(fsync - 1) << in cs42l42_pll_config()
722 /* Configure PLL per table 4-5 */ in cs42l42_pll_config()
771 return -EINVAL; in cs42l42_pll_config()
776 struct snd_soc_component *component = codec_dai->component; in cs42l42_set_dai_fmt()
789 return -EINVAL; in cs42l42_set_dai_fmt()
798 return -EINVAL; in cs42l42_set_dai_fmt()
833 struct snd_soc_component *component = dai->component; in cs42l42_pcm_hw_params()
837 cs42l42->srate = params_rate(params); in cs42l42_pcm_hw_params()
838 cs42l42->swidth = params_width(params); in cs42l42_pcm_hw_params()
848 struct snd_soc_component *component = dai->component; in cs42l42_set_sysclk()
851 cs42l42->sclk = freq; in cs42l42_set_sysclk()
858 struct snd_soc_component *component = dai->component; in cs42l42_digital_mute()
892 /* Un-mute the headphone, set the full scale volume flag */ in cs42l42_digital_mute()
943 /* Mask the auto detect interrupt */ in cs42l42_process_hs_type_detect()
944 regmap_update_bits(cs42l42->regmap, in cs42l42_process_hs_type_detect()
951 /* Set hs detect to automatic, disabled mode */ in cs42l42_process_hs_type_detect()
952 regmap_update_bits(cs42l42->regmap, in cs42l42_process_hs_type_detect()
964 regmap_read(cs42l42->regmap, CS42L42_HS_DET_STATUS, &hs_det_status); in cs42l42_process_hs_type_detect()
966 cs42l42->hs_type = (hs_det_status & CS42L42_HSDET_TYPE_MASK) >> in cs42l42_process_hs_type_detect()
970 if ((cs42l42->hs_type == CS42L42_PLUG_CTIA) || in cs42l42_process_hs_type_detect()
971 (cs42l42->hs_type == CS42L42_PLUG_OMTP)) { in cs42l42_process_hs_type_detect()
972 /* Set auto HS bias settings to default */ in cs42l42_process_hs_type_detect()
973 regmap_update_bits(cs42l42->regmap, in cs42l42_process_hs_type_detect()
984 /* Set up hs detect level sensitivity */ in cs42l42_process_hs_type_detect()
985 regmap_update_bits(cs42l42->regmap, in cs42l42_process_hs_type_detect()
992 (cs42l42->bias_thresholds[0] << in cs42l42_process_hs_type_detect()
995 /* Set auto HS bias settings to default */ in cs42l42_process_hs_type_detect()
996 regmap_update_bits(cs42l42->regmap, in cs42l42_process_hs_type_detect()
1007 /* Turn on level detect circuitry */ in cs42l42_process_hs_type_detect()
1008 regmap_update_bits(cs42l42->regmap, in cs42l42_process_hs_type_detect()
1017 msleep(cs42l42->btn_det_init_dbnce); in cs42l42_process_hs_type_detect()
1020 regmap_read(cs42l42->regmap, CS42L42_DET_INT_STATUS2, in cs42l42_process_hs_type_detect()
1023 /* Unmask button detect interrupts */ in cs42l42_process_hs_type_detect()
1024 regmap_update_bits(cs42l42->regmap, in cs42l42_process_hs_type_detect()
1037 /* Make sure button detect and HS bias circuits are off */ in cs42l42_process_hs_type_detect()
1038 regmap_update_bits(cs42l42->regmap, in cs42l42_process_hs_type_detect()
1048 regmap_update_bits(cs42l42->regmap, in cs42l42_process_hs_type_detect()
1062 regmap_update_bits(cs42l42->regmap, in cs42l42_process_hs_type_detect()
1077 regmap_update_bits(cs42l42->regmap, in cs42l42_init_hs_type_detect()
1088 /* Make sure button detect and HS bias circuits are off */ in cs42l42_init_hs_type_detect()
1089 regmap_update_bits(cs42l42->regmap, in cs42l42_init_hs_type_detect()
1098 /* Set auto HS bias settings to default */ in cs42l42_init_hs_type_detect()
1099 regmap_update_bits(cs42l42->regmap, in cs42l42_init_hs_type_detect()
1110 /* Set hs detect to manual, disabled mode */ in cs42l42_init_hs_type_detect()
1111 regmap_update_bits(cs42l42->regmap, in cs42l42_init_hs_type_detect()
1122 regmap_update_bits(cs42l42->regmap, in cs42l42_init_hs_type_detect()
1136 regmap_update_bits(cs42l42->regmap, in cs42l42_init_hs_type_detect()
1146 msleep(cs42l42->hs_bias_ramp_time); in cs42l42_init_hs_type_detect()
1148 /* Unmask auto detect interrupt */ in cs42l42_init_hs_type_detect()
1149 regmap_update_bits(cs42l42->regmap, in cs42l42_init_hs_type_detect()
1156 /* Set hs detect to automatic, enabled mode */ in cs42l42_init_hs_type_detect()
1157 regmap_update_bits(cs42l42->regmap, in cs42l42_init_hs_type_detect()
1171 /* Mask button detect interrupts */ in cs42l42_cancel_hs_type_detect()
1172 regmap_update_bits(cs42l42->regmap, in cs42l42_cancel_hs_type_detect()
1186 regmap_update_bits(cs42l42->regmap, in cs42l42_cancel_hs_type_detect()
1195 /* Set auto HS bias settings to default */ in cs42l42_cancel_hs_type_detect()
1196 regmap_update_bits(cs42l42->regmap, in cs42l42_cancel_hs_type_detect()
1207 /* Set hs detect to manual, disabled mode */ in cs42l42_cancel_hs_type_detect()
1208 regmap_update_bits(cs42l42->regmap, in cs42l42_cancel_hs_type_detect()
1225 /* Mask button detect interrupts */ in cs42l42_handle_button_press()
1226 regmap_update_bits(cs42l42->regmap, in cs42l42_handle_button_press()
1239 usleep_range(cs42l42->btn_det_event_dbnce * 1000, in cs42l42_handle_button_press()
1240 cs42l42->btn_det_event_dbnce * 2000); in cs42l42_handle_button_press()
1242 /* Test all 4 level detect biases */ in cs42l42_handle_button_press()
1245 /* Adjust button detect level sensitivity */ in cs42l42_handle_button_press()
1246 regmap_update_bits(cs42l42->regmap, in cs42l42_handle_button_press()
1253 (cs42l42->bias_thresholds[bias_level] << in cs42l42_handle_button_press()
1256 regmap_read(cs42l42->regmap, CS42L42_DET_STATUS2, in cs42l42_handle_button_press()
1263 dev_dbg(cs42l42->component->dev, "Function C button press\n"); in cs42l42_handle_button_press()
1266 dev_dbg(cs42l42->component->dev, "Function B button press\n"); in cs42l42_handle_button_press()
1269 dev_dbg(cs42l42->component->dev, "Function D button press\n"); in cs42l42_handle_button_press()
1272 dev_dbg(cs42l42->component->dev, "Function A button press\n"); in cs42l42_handle_button_press()
1276 /* Set button detect level sensitivity back to default */ in cs42l42_handle_button_press()
1277 regmap_update_bits(cs42l42->regmap, in cs42l42_handle_button_press()
1284 (cs42l42->bias_thresholds[0] << CS42L42_HS_DET_LEVEL_SHIFT)); in cs42l42_handle_button_press()
1287 regmap_read(cs42l42->regmap, CS42L42_DET_INT_STATUS2, in cs42l42_handle_button_press()
1290 /* Unmask button detect interrupts */ in cs42l42_handle_button_press()
1291 regmap_update_bits(cs42l42->regmap, in cs42l42_handle_button_press()
1341 struct snd_soc_component *component = cs42l42->component; in cs42l42_irq_thread()
1350 regmap_read(cs42l42->regmap, irq_params_table[i].status_addr, in cs42l42_irq_thread()
1352 regmap_read(cs42l42->regmap, irq_params_table[i].mask_addr, in cs42l42_irq_thread()
1358 /* Read tip sense status before handling type detect */ in cs42l42_irq_thread()
1369 /* Check auto-detect status */ in cs42l42_irq_thread()
1373 dev_dbg(component->dev, in cs42l42_irq_thread()
1374 "Auto detect done (%d)\n", in cs42l42_irq_thread()
1375 cs42l42->hs_type); in cs42l42_irq_thread()
1383 if (cs42l42->plug_state != CS42L42_TS_PLUG) { in cs42l42_irq_thread()
1384 cs42l42->plug_state = CS42L42_TS_PLUG; in cs42l42_irq_thread()
1390 if (cs42l42->plug_state != CS42L42_TS_UNPLUG) { in cs42l42_irq_thread()
1391 cs42l42->plug_state = CS42L42_TS_UNPLUG; in cs42l42_irq_thread()
1393 dev_dbg(component->dev, in cs42l42_irq_thread()
1399 if (cs42l42->plug_state != CS42L42_TS_TRANS) in cs42l42_irq_thread()
1400 cs42l42->plug_state = CS42L42_TS_TRANS; in cs42l42_irq_thread()
1404 /* Check button detect status */ in cs42l42_irq_thread()
1411 dev_dbg(component->dev, in cs42l42_irq_thread()
1425 regmap_update_bits(cs42l42->regmap, CS42L42_ADC_OVFL_INT_MASK, in cs42l42_set_interrupt_masks()
1429 regmap_update_bits(cs42l42->regmap, CS42L42_MIXER_INT_MASK, in cs42l42_set_interrupt_masks()
1439 regmap_update_bits(cs42l42->regmap, CS42L42_SRC_INT_MASK, in cs42l42_set_interrupt_masks()
1449 regmap_update_bits(cs42l42->regmap, CS42L42_ASP_RX_INT_MASK, in cs42l42_set_interrupt_masks()
1461 regmap_update_bits(cs42l42->regmap, CS42L42_ASP_TX_INT_MASK, in cs42l42_set_interrupt_masks()
1471 regmap_update_bits(cs42l42->regmap, CS42L42_CODEC_INT_MASK, in cs42l42_set_interrupt_masks()
1477 regmap_update_bits(cs42l42->regmap, CS42L42_SRCPL_INT_MASK, in cs42l42_set_interrupt_masks()
1487 regmap_update_bits(cs42l42->regmap, CS42L42_DET_INT1_MASK, in cs42l42_set_interrupt_masks()
1495 regmap_update_bits(cs42l42->regmap, CS42L42_DET_INT2_MASK, in cs42l42_set_interrupt_masks()
1507 regmap_update_bits(cs42l42->regmap, CS42L42_VPMON_INT_MASK, in cs42l42_set_interrupt_masks()
1511 regmap_update_bits(cs42l42->regmap, CS42L42_PLL_LOCK_INT_MASK, in cs42l42_set_interrupt_masks()
1515 regmap_update_bits(cs42l42->regmap, CS42L42_TSRS_PLUG_INT_MASK, in cs42l42_set_interrupt_masks()
1530 cs42l42->hs_type = CS42L42_PLUG_INVALID; in cs42l42_setup_hs_type_detect()
1533 regmap_update_bits(cs42l42->regmap, CS42L42_MIC_DET_CTL1, in cs42l42_setup_hs_type_detect()
1539 (cs42l42->bias_thresholds[0] << in cs42l42_setup_hs_type_detect()
1542 /* Remove ground noise-suppression clamps */ in cs42l42_setup_hs_type_detect()
1543 regmap_update_bits(cs42l42->regmap, in cs42l42_setup_hs_type_detect()
1549 regmap_update_bits(cs42l42->regmap, CS42L42_TIPSENSE_CTL, in cs42l42_setup_hs_type_detect()
1558 regmap_read(cs42l42->regmap, in cs42l42_setup_hs_type_detect()
1561 cs42l42->plug_state = (((char) reg) & in cs42l42_setup_hs_type_detect()
1576 struct device_node *np = i2c_client->dev.of_node; in cs42l42_handle_device_data()
1582 ret = of_property_read_u32(np, "cirrus,ts-inv", &val); in cs42l42_handle_device_data()
1588 cs42l42->ts_inv = val; in cs42l42_handle_device_data()
1591 dev_err(&i2c_client->dev, in cs42l42_handle_device_data()
1592 "Wrong cirrus,ts-inv DT value %d\n", in cs42l42_handle_device_data()
1594 cs42l42->ts_inv = CS42L42_TS_INV_DIS; in cs42l42_handle_device_data()
1597 cs42l42->ts_inv = CS42L42_TS_INV_DIS; in cs42l42_handle_device_data()
1600 regmap_update_bits(cs42l42->regmap, CS42L42_TSENSE_CTL, in cs42l42_handle_device_data()
1602 (cs42l42->ts_inv << CS42L42_TS_INV_SHIFT)); in cs42l42_handle_device_data()
1604 ret = of_property_read_u32(np, "cirrus,ts-dbnc-rise", &val); in cs42l42_handle_device_data()
1616 cs42l42->ts_dbnc_rise = val; in cs42l42_handle_device_data()
1619 dev_err(&i2c_client->dev, in cs42l42_handle_device_data()
1620 "Wrong cirrus,ts-dbnc-rise DT value %d\n", in cs42l42_handle_device_data()
1622 cs42l42->ts_dbnc_rise = CS42L42_TS_DBNCE_1000; in cs42l42_handle_device_data()
1625 cs42l42->ts_dbnc_rise = CS42L42_TS_DBNCE_1000; in cs42l42_handle_device_data()
1628 regmap_update_bits(cs42l42->regmap, CS42L42_TSENSE_CTL, in cs42l42_handle_device_data()
1630 (cs42l42->ts_dbnc_rise << in cs42l42_handle_device_data()
1633 ret = of_property_read_u32(np, "cirrus,ts-dbnc-fall", &val); in cs42l42_handle_device_data()
1645 cs42l42->ts_dbnc_fall = val; in cs42l42_handle_device_data()
1648 dev_err(&i2c_client->dev, in cs42l42_handle_device_data()
1649 "Wrong cirrus,ts-dbnc-fall DT value %d\n", in cs42l42_handle_device_data()
1651 cs42l42->ts_dbnc_fall = CS42L42_TS_DBNCE_0; in cs42l42_handle_device_data()
1654 cs42l42->ts_dbnc_fall = CS42L42_TS_DBNCE_0; in cs42l42_handle_device_data()
1657 regmap_update_bits(cs42l42->regmap, CS42L42_TSENSE_CTL, in cs42l42_handle_device_data()
1659 (cs42l42->ts_dbnc_fall << in cs42l42_handle_device_data()
1662 ret = of_property_read_u32(np, "cirrus,btn-det-init-dbnce", &val); in cs42l42_handle_device_data()
1667 cs42l42->btn_det_init_dbnce = val; in cs42l42_handle_device_data()
1669 dev_err(&i2c_client->dev, in cs42l42_handle_device_data()
1670 "Wrong cirrus,btn-det-init-dbnce DT value %d\n", in cs42l42_handle_device_data()
1672 cs42l42->btn_det_init_dbnce = in cs42l42_handle_device_data()
1676 cs42l42->btn_det_init_dbnce = in cs42l42_handle_device_data()
1680 ret = of_property_read_u32(np, "cirrus,btn-det-event-dbnce", &val); in cs42l42_handle_device_data()
1685 cs42l42->btn_det_event_dbnce = val; in cs42l42_handle_device_data()
1687 dev_err(&i2c_client->dev, in cs42l42_handle_device_data()
1688 "Wrong cirrus,btn-det-event-dbnce DT value %d\n", val); in cs42l42_handle_device_data()
1689 cs42l42->btn_det_event_dbnce = in cs42l42_handle_device_data()
1693 cs42l42->btn_det_event_dbnce = in cs42l42_handle_device_data()
1697 ret = of_property_read_u32_array(np, "cirrus,bias-lvls", in cs42l42_handle_device_data()
1704 cs42l42->bias_thresholds[i] = thresholds[i]; in cs42l42_handle_device_data()
1706 dev_err(&i2c_client->dev, in cs42l42_handle_device_data()
1707 "Wrong cirrus,bias-lvls[%d] DT value %d\n", i, in cs42l42_handle_device_data()
1709 cs42l42->bias_thresholds[i] = in cs42l42_handle_device_data()
1715 cs42l42->bias_thresholds[i] = threshold_defaults[i]; in cs42l42_handle_device_data()
1718 ret = of_property_read_u32(np, "cirrus,hs-bias-ramp-rate", &val); in cs42l42_handle_device_data()
1723 cs42l42->hs_bias_ramp_rate = val; in cs42l42_handle_device_data()
1724 cs42l42->hs_bias_ramp_time = CS42L42_HSBIAS_RAMP_TIME0; in cs42l42_handle_device_data()
1727 cs42l42->hs_bias_ramp_rate = val; in cs42l42_handle_device_data()
1728 cs42l42->hs_bias_ramp_time = CS42L42_HSBIAS_RAMP_TIME1; in cs42l42_handle_device_data()
1731 cs42l42->hs_bias_ramp_rate = val; in cs42l42_handle_device_data()
1732 cs42l42->hs_bias_ramp_time = CS42L42_HSBIAS_RAMP_TIME2; in cs42l42_handle_device_data()
1735 cs42l42->hs_bias_ramp_rate = val; in cs42l42_handle_device_data()
1736 cs42l42->hs_bias_ramp_time = CS42L42_HSBIAS_RAMP_TIME3; in cs42l42_handle_device_data()
1739 dev_err(&i2c_client->dev, in cs42l42_handle_device_data()
1740 "Wrong cirrus,hs-bias-ramp-rate DT value %d\n", in cs42l42_handle_device_data()
1742 cs42l42->hs_bias_ramp_rate = CS42L42_HSBIAS_RAMP_SLOW; in cs42l42_handle_device_data()
1743 cs42l42->hs_bias_ramp_time = CS42L42_HSBIAS_RAMP_TIME2; in cs42l42_handle_device_data()
1746 cs42l42->hs_bias_ramp_rate = CS42L42_HSBIAS_RAMP_SLOW; in cs42l42_handle_device_data()
1747 cs42l42->hs_bias_ramp_time = CS42L42_HSBIAS_RAMP_TIME2; in cs42l42_handle_device_data()
1750 regmap_update_bits(cs42l42->regmap, CS42L42_HS_BIAS_CTL, in cs42l42_handle_device_data()
1752 (cs42l42->hs_bias_ramp_rate << in cs42l42_handle_device_data()
1766 cs42l42 = devm_kzalloc(&i2c_client->dev, sizeof(struct cs42l42_private), in cs42l42_i2c_probe()
1769 return -ENOMEM; in cs42l42_i2c_probe()
1773 cs42l42->regmap = devm_regmap_init_i2c(i2c_client, &cs42l42_regmap); in cs42l42_i2c_probe()
1774 if (IS_ERR(cs42l42->regmap)) { in cs42l42_i2c_probe()
1775 ret = PTR_ERR(cs42l42->regmap); in cs42l42_i2c_probe()
1776 dev_err(&i2c_client->dev, "regmap_init() failed: %d\n", ret); in cs42l42_i2c_probe()
1780 for (i = 0; i < ARRAY_SIZE(cs42l42->supplies); i++) in cs42l42_i2c_probe()
1781 cs42l42->supplies[i].supply = cs42l42_supply_names[i]; in cs42l42_i2c_probe()
1783 ret = devm_regulator_bulk_get(&i2c_client->dev, in cs42l42_i2c_probe()
1784 ARRAY_SIZE(cs42l42->supplies), in cs42l42_i2c_probe()
1785 cs42l42->supplies); in cs42l42_i2c_probe()
1787 dev_err(&i2c_client->dev, in cs42l42_i2c_probe()
1792 ret = regulator_bulk_enable(ARRAY_SIZE(cs42l42->supplies), in cs42l42_i2c_probe()
1793 cs42l42->supplies); in cs42l42_i2c_probe()
1795 dev_err(&i2c_client->dev, in cs42l42_i2c_probe()
1801 cs42l42->reset_gpio = devm_gpiod_get_optional(&i2c_client->dev, in cs42l42_i2c_probe()
1803 if (IS_ERR(cs42l42->reset_gpio)) in cs42l42_i2c_probe()
1804 return PTR_ERR(cs42l42->reset_gpio); in cs42l42_i2c_probe()
1806 if (cs42l42->reset_gpio) { in cs42l42_i2c_probe()
1807 dev_dbg(&i2c_client->dev, "Found reset GPIO\n"); in cs42l42_i2c_probe()
1808 gpiod_set_value_cansleep(cs42l42->reset_gpio, 1); in cs42l42_i2c_probe()
1813 ret = devm_request_threaded_irq(&i2c_client->dev, in cs42l42_i2c_probe()
1814 i2c_client->irq, in cs42l42_i2c_probe()
1820 dev_err(&i2c_client->dev, in cs42l42_i2c_probe()
1824 ret = regmap_read(cs42l42->regmap, CS42L42_DEVID_AB, ®); in cs42l42_i2c_probe()
1827 ret = regmap_read(cs42l42->regmap, CS42L42_DEVID_CD, ®); in cs42l42_i2c_probe()
1830 ret = regmap_read(cs42l42->regmap, CS42L42_DEVID_E, ®); in cs42l42_i2c_probe()
1834 ret = -ENODEV; in cs42l42_i2c_probe()
1835 dev_err(&i2c_client->dev, in cs42l42_i2c_probe()
1841 ret = regmap_read(cs42l42->regmap, CS42L42_REVID, ®); in cs42l42_i2c_probe()
1843 dev_err(&i2c_client->dev, "Get Revision ID failed\n"); in cs42l42_i2c_probe()
1847 dev_info(&i2c_client->dev, in cs42l42_i2c_probe()
1851 regmap_update_bits(cs42l42->regmap, CS42L42_PWR_CTL1, in cs42l42_i2c_probe()
1867 if (i2c_client->dev.of_node) { in cs42l42_i2c_probe()
1880 ret = devm_snd_soc_register_component(&i2c_client->dev, in cs42l42_i2c_probe()
1887 regulator_bulk_disable(ARRAY_SIZE(cs42l42->supplies), in cs42l42_i2c_probe()
1888 cs42l42->supplies); in cs42l42_i2c_probe()
1897 gpiod_set_value_cansleep(cs42l42->reset_gpio, 0); in cs42l42_i2c_remove()
1907 regcache_cache_only(cs42l42->regmap, true); in cs42l42_runtime_suspend()
1908 regcache_mark_dirty(cs42l42->regmap); in cs42l42_runtime_suspend()
1911 gpiod_set_value_cansleep(cs42l42->reset_gpio, 0); in cs42l42_runtime_suspend()
1914 regulator_bulk_disable(ARRAY_SIZE(cs42l42->supplies), in cs42l42_runtime_suspend()
1915 cs42l42->supplies); in cs42l42_runtime_suspend()
1926 ret = regulator_bulk_enable(ARRAY_SIZE(cs42l42->supplies), in cs42l42_runtime_resume()
1927 cs42l42->supplies); in cs42l42_runtime_resume()
1934 gpiod_set_value_cansleep(cs42l42->reset_gpio, 1); in cs42l42_runtime_resume()
1936 regcache_cache_only(cs42l42->regmap, false); in cs42l42_runtime_resume()
1937 regcache_sync(cs42l42->regmap); in cs42l42_runtime_resume()