Lines Matching refs:regmap

50 static bool nau8825_is_jack_inserted(struct regmap *regmap);
336 regmap_update_bits(nau8825->regmap, NAU8825_REG_HSVOL_CTRL, in nau8825_hpvol_ramp()
345 regmap_update_bits(nau8825->regmap, NAU8825_REG_HSVOL_CTRL, in nau8825_hpvol_ramp()
463 regmap_read(nau8825->regmap, nau8825_xtalk_baktab[i].reg, in nau8825_xtalk_backup()
490 regmap_write(nau8825->regmap, nau8825_xtalk_baktab[i].reg, in nau8825_xtalk_restore()
500 regmap_update_bits(nau8825->regmap, NAU8825_REG_ENA_CTRL, in nau8825_xtalk_prepare_dac()
509 regmap_update_bits(nau8825->regmap, NAU8825_REG_CHARGE_PUMP, in nau8825_xtalk_prepare_dac()
513 regmap_update_bits(nau8825->regmap, NAU8825_REG_RDAC, in nau8825_xtalk_prepare_dac()
518 regmap_update_bits(nau8825->regmap, NAU8825_REG_POWER_UP_CONTROL, in nau8825_xtalk_prepare_dac()
523 regmap_update_bits(nau8825->regmap, NAU8825_REG_POWER_UP_CONTROL, in nau8825_xtalk_prepare_dac()
527 regmap_update_bits(nau8825->regmap, NAU8825_REG_HSD_CTRL, in nau8825_xtalk_prepare_dac()
530 regmap_update_bits(nau8825->regmap, NAU8825_REG_BOOST, in nau8825_xtalk_prepare_dac()
533 regmap_update_bits(nau8825->regmap, NAU8825_REG_CLASSG_CTRL, in nau8825_xtalk_prepare_dac()
541 regmap_update_bits(nau8825->regmap, NAU8825_REG_ANALOG_ADC_2, in nau8825_xtalk_prepare_adc()
549 regmap_write(nau8825->regmap, NAU8825_REG_FLL1, 0x0); in nau8825_xtalk_clock()
550 regmap_write(nau8825->regmap, NAU8825_REG_FLL2, 0x3126); in nau8825_xtalk_clock()
551 regmap_write(nau8825->regmap, NAU8825_REG_FLL3, 0x0008); in nau8825_xtalk_clock()
552 regmap_write(nau8825->regmap, NAU8825_REG_FLL4, 0x0010); in nau8825_xtalk_clock()
553 regmap_write(nau8825->regmap, NAU8825_REG_FLL5, 0x0); in nau8825_xtalk_clock()
554 regmap_write(nau8825->regmap, NAU8825_REG_FLL6, 0x6000); in nau8825_xtalk_clock()
556 regmap_update_bits(nau8825->regmap, NAU8825_REG_CLK_DIVIDER, in nau8825_xtalk_clock()
558 regmap_update_bits(nau8825->regmap, NAU8825_REG_FLL6, NAU8825_DCO_EN, in nau8825_xtalk_clock()
563 regmap_update_bits(nau8825->regmap, NAU8825_REG_CLK_DIVIDER, in nau8825_xtalk_clock()
565 regmap_update_bits(nau8825->regmap, NAU8825_REG_FLL1, in nau8825_xtalk_clock()
576 regmap_update_bits(nau8825->regmap, NAU8825_REG_I2S_PCM_CTRL2, in nau8825_xtalk_prepare()
593 regmap_update_bits(nau8825->regmap, NAU8825_REG_DACL_CTRL, in nau8825_xtalk_prepare()
596 regmap_update_bits(nau8825->regmap, NAU8825_REG_DACR_CTRL, in nau8825_xtalk_prepare()
602 regmap_update_bits(nau8825->regmap, NAU8825_REG_IMM_MODE_CTRL, in nau8825_xtalk_prepare()
608 regmap_update_bits(nau8825->regmap, in nau8825_xtalk_prepare()
611 regmap_update_bits(nau8825->regmap, NAU8825_REG_CHARGE_PUMP, in nau8825_xtalk_prepare()
618 regmap_update_bits(nau8825->regmap, NAU8825_REG_BOOST, in nau8825_xtalk_clean_dac()
621 regmap_update_bits(nau8825->regmap, NAU8825_REG_HSD_CTRL, in nau8825_xtalk_clean_dac()
625 regmap_update_bits(nau8825->regmap, NAU8825_REG_CHARGE_PUMP, in nau8825_xtalk_clean_dac()
629 regmap_update_bits(nau8825->regmap, NAU8825_REG_BIAS_ADJ, in nau8825_xtalk_clean_dac()
633 regmap_update_bits(nau8825->regmap, NAU8825_REG_POWER_UP_CONTROL, in nau8825_xtalk_clean_dac()
635 regmap_update_bits(nau8825->regmap, NAU8825_REG_POWER_UP_CONTROL, in nau8825_xtalk_clean_dac()
639 regmap_update_bits(nau8825->regmap, NAU8825_REG_RDAC, in nau8825_xtalk_clean_dac()
642 regmap_update_bits(nau8825->regmap, NAU8825_REG_CHARGE_PUMP, in nau8825_xtalk_clean_dac()
645 regmap_update_bits(nau8825->regmap, NAU8825_REG_ENA_CTRL, in nau8825_xtalk_clean_dac()
649 regmap_update_bits(nau8825->regmap, in nau8825_xtalk_clean_dac()
656 regmap_update_bits(nau8825->regmap, NAU8825_REG_ANALOG_ADC_2, in nau8825_xtalk_clean_adc()
667 regmap_write(nau8825->regmap, NAU8825_REG_IMM_MODE_CTRL, 0); in nau8825_xtalk_clean()
669 regmap_update_bits(nau8825->regmap, NAU8825_REG_INTERRUPT_MASK, in nau8825_xtalk_clean()
672 regmap_update_bits(nau8825->regmap, NAU8825_REG_I2S_PCM_CTRL2, in nau8825_xtalk_clean()
682 regmap_update_bits(nau8825->regmap, NAU8825_REG_ADC_DGAIN_CTRL, in nau8825_xtalk_imm_start()
687 regmap_update_bits(nau8825->regmap, NAU8825_REG_BIAS_ADJ, in nau8825_xtalk_imm_start()
693 regmap_update_bits(nau8825->regmap, NAU8825_REG_BIAS_ADJ, in nau8825_xtalk_imm_start()
699 regmap_update_bits(nau8825->regmap, NAU8825_REG_BIAS_ADJ, in nau8825_xtalk_imm_start()
708 regmap_update_bits(nau8825->regmap, NAU8825_REG_IMM_MODE_CTRL, in nau8825_xtalk_imm_start()
715 regmap_update_bits(nau8825->regmap, in nau8825_xtalk_imm_stop()
758 regmap_read(nau8825->regmap, NAU8825_REG_IMM_RMS_L, in nau8825_xtalk_measure()
775 regmap_read(nau8825->regmap, NAU8825_REG_IMM_RMS_L, in nau8825_xtalk_measure()
793 regmap_write(nau8825->regmap, NAU8825_REG_DAC_DGAIN_CTRL, in nau8825_xtalk_measure()
923 regmap_update_bits(nau8825->regmap, NAU8825_REG_ENA_CTRL, in nau8825_adc_event()
928 regmap_update_bits(nau8825->regmap, in nau8825_adc_event()
948 regmap_update_bits(nau8825->regmap, NAU8825_REG_CHARGE_PUMP, in nau8825_pump_event()
952 regmap_update_bits(nau8825->regmap, NAU8825_REG_CHARGE_PUMP, in nau8825_pump_event()
971 regmap_update_bits(nau8825->regmap, NAU8825_REG_BIAS_ADJ, in nau8825_output_dac_event()
975 regmap_update_bits(nau8825->regmap, NAU8825_REG_BIAS_ADJ, in nau8825_output_dac_event()
990 struct regmap *regmap = nau8825->regmap; in system_clock_control() local
999 if (nau8825_is_jack_inserted(regmap)) { in system_clock_control()
1016 if (!component->regmap) in nau8825_biq_coeff_get()
1019 regmap_raw_read(component->regmap, NAU8825_REG_BIQ_COF1, in nau8825_biq_coeff_get()
1031 if (!component->regmap) in nau8825_biq_coeff_put()
1039 regmap_update_bits(component->regmap, NAU8825_REG_BIQ_CTRL, in nau8825_biq_coeff_put()
1041 regmap_raw_write(component->regmap, NAU8825_REG_BIQ_COF1, in nau8825_biq_coeff_put()
1043 regmap_update_bits(component->regmap, NAU8825_REG_BIQ_CTRL, in nau8825_biq_coeff_put()
1290 regmap_read(nau8825->regmap, NAU8825_REG_DAC_CTRL1, &osr); in nau8825_hw_params()
1297 regmap_update_bits(nau8825->regmap, NAU8825_REG_CLK_DIVIDER, in nau8825_hw_params()
1301 regmap_read(nau8825->regmap, NAU8825_REG_ADC_RATE, &osr); in nau8825_hw_params()
1308 regmap_update_bits(nau8825->regmap, NAU8825_REG_CLK_DIVIDER, in nau8825_hw_params()
1314 regmap_read(nau8825->regmap, NAU8825_REG_I2S_PCM_CTRL2, &ctrl_val); in nau8825_hw_params()
1328 regmap_update_bits(nau8825->regmap, NAU8825_REG_I2S_PCM_CTRL2, in nau8825_hw_params()
1351 regmap_update_bits(nau8825->regmap, NAU8825_REG_I2S_PCM_CTRL1, in nau8825_hw_params()
1409 regmap_update_bits(nau8825->regmap, NAU8825_REG_I2S_PCM_CTRL1, in nau8825_set_dai_fmt()
1413 regmap_update_bits(nau8825->regmap, NAU8825_REG_I2S_PCM_CTRL2, in nau8825_set_dai_fmt()
1464 struct regmap *regmap = nau8825->regmap; in nau8825_enable_jack_detect() local
1469 regmap_update_bits(regmap, NAU8825_REG_HSD_CTRL, in nau8825_enable_jack_detect()
1477 regmap_update_bits(regmap, NAU8825_REG_HSD_CTRL, in nau8825_enable_jack_detect()
1486 static bool nau8825_is_jack_inserted(struct regmap *regmap) in nau8825_is_jack_inserted() argument
1491 regmap_read(regmap, NAU8825_REG_JACK_DET_CTRL, &jkdet); in nau8825_is_jack_inserted()
1493 regmap_read(regmap, NAU8825_REG_I2C_DEVICE_ID, &status); in nau8825_is_jack_inserted()
1501 static void nau8825_restart_jack_detection(struct regmap *regmap) in nau8825_restart_jack_detection() argument
1507 regmap_update_bits(regmap, NAU8825_REG_JACK_DET_CTRL, in nau8825_restart_jack_detection()
1509 regmap_update_bits(regmap, NAU8825_REG_JACK_DET_CTRL, in nau8825_restart_jack_detection()
1513 static void nau8825_int_status_clear_all(struct regmap *regmap) in nau8825_int_status_clear_all() argument
1520 regmap_read(regmap, NAU8825_REG_IRQ_STATUS, &active_irq); in nau8825_int_status_clear_all()
1524 regmap_write(regmap, in nau8825_int_status_clear_all()
1532 struct regmap *regmap = nau8825->regmap; in nau8825_eject_jack() local
1540 regmap_update_bits(regmap, NAU8825_REG_MIC_BIAS, in nau8825_eject_jack()
1543 regmap_update_bits(regmap, NAU8825_REG_HSD_CTRL, 0xf, 0xf); in nau8825_eject_jack()
1548 nau8825_int_status_clear_all(regmap); in nau8825_eject_jack()
1553 regmap_update_bits(regmap, NAU8825_REG_INTERRUPT_DIS_CTRL, in nau8825_eject_jack()
1556 regmap_update_bits(regmap, NAU8825_REG_INTERRUPT_MASK, in nau8825_eject_jack()
1561 regmap_update_bits(regmap, NAU8825_REG_JACK_DET_CTRL, in nau8825_eject_jack()
1565 regmap_update_bits(regmap, NAU8825_REG_ENA_CTRL, in nau8825_eject_jack()
1575 struct regmap *regmap = nau8825->regmap; in nau8825_setup_auto_irq() local
1580 regmap_update_bits(regmap, NAU8825_REG_INTERRUPT_MASK, in nau8825_setup_auto_irq()
1587 regmap_update_bits(regmap, NAU8825_REG_ENA_CTRL, in nau8825_setup_auto_irq()
1595 regmap_update_bits(regmap, NAU8825_REG_I2S_PCM_CTRL2, in nau8825_setup_auto_irq()
1597 regmap_update_bits(regmap, NAU8825_REG_I2S_PCM_CTRL2, in nau8825_setup_auto_irq()
1601 regmap_update_bits(regmap, NAU8825_REG_JACK_DET_CTRL, in nau8825_setup_auto_irq()
1605 regmap_write(regmap, NAU8825_REG_INTERRUPT_DIS_CTRL, 0); in nau8825_setup_auto_irq()
1608 nau8825_restart_jack_detection(regmap); in nau8825_setup_auto_irq()
1634 struct regmap *regmap = nau8825->regmap; in nau8825_jack_insert() local
1639 regmap_read(regmap, NAU8825_REG_GENERAL_STATUS, &jack_status_reg); in nau8825_jack_insert()
1657 regmap_update_bits(regmap, NAU8825_REG_HSD_CTRL, 3 << 2, in nau8825_jack_insert()
1660 regmap_update_bits(regmap, NAU8825_REG_MIC_BIAS, in nau8825_jack_insert()
1664 regmap_update_bits(regmap, NAU8825_REG_SAR_CTRL, in nau8825_jack_insert()
1677 regmap_update_bits(regmap, NAU8825_REG_HSD_CTRL, 3 << 2, in nau8825_jack_insert()
1680 regmap_update_bits(regmap, NAU8825_REG_MIC_BIAS, in nau8825_jack_insert()
1684 regmap_update_bits(regmap, NAU8825_REG_SAR_CTRL, in nau8825_jack_insert()
1712 struct regmap *regmap = nau8825->regmap; in nau8825_interrupt() local
1715 if (regmap_read(regmap, NAU8825_REG_IRQ_STATUS, &active_irq)) { in nau8825_interrupt()
1729 regmap_read(regmap, NAU8825_REG_INT_CLR_KEY_STATUS, in nau8825_interrupt()
1745 if (nau8825_is_jack_inserted(regmap)) { in nau8825_interrupt()
1807 if (nau8825_is_jack_inserted(regmap)) { in nau8825_interrupt()
1809 regmap_update_bits(regmap, in nau8825_interrupt()
1813 regmap_update_bits(regmap, NAU8825_REG_INTERRUPT_MASK, in nau8825_interrupt()
1825 regmap_write(regmap, NAU8825_REG_INT_CLR_KEY_STATUS, clear_irq); in nau8825_interrupt()
1840 struct regmap *regmap = nau8825->regmap; in nau8825_setup_buttons() local
1842 regmap_update_bits(regmap, NAU8825_REG_SAR_CTRL, in nau8825_setup_buttons()
1845 regmap_update_bits(regmap, NAU8825_REG_SAR_CTRL, in nau8825_setup_buttons()
1848 regmap_update_bits(regmap, NAU8825_REG_SAR_CTRL, in nau8825_setup_buttons()
1852 regmap_update_bits(regmap, NAU8825_REG_KEYDET_CTRL, in nau8825_setup_buttons()
1855 regmap_update_bits(regmap, NAU8825_REG_KEYDET_CTRL, in nau8825_setup_buttons()
1858 regmap_update_bits(regmap, NAU8825_REG_KEYDET_CTRL, in nau8825_setup_buttons()
1862 regmap_write(regmap, NAU8825_REG_VDET_THRESHOLD_1, in nau8825_setup_buttons()
1864 regmap_write(regmap, NAU8825_REG_VDET_THRESHOLD_2, in nau8825_setup_buttons()
1866 regmap_write(regmap, NAU8825_REG_VDET_THRESHOLD_3, in nau8825_setup_buttons()
1868 regmap_write(regmap, NAU8825_REG_VDET_THRESHOLD_4, in nau8825_setup_buttons()
1872 regmap_update_bits(regmap, NAU8825_REG_INTERRUPT_MASK, in nau8825_setup_buttons()
1879 struct regmap *regmap = nau8825->regmap; in nau8825_init_regs() local
1882 regmap_write(regmap, NAU8825_REG_IIC_ADDR_SET, 0x0001); in nau8825_init_regs()
1884 regmap_update_bits(nau8825->regmap, NAU8825_REG_BIAS_ADJ, in nau8825_init_regs()
1886 regmap_update_bits(nau8825->regmap, NAU8825_REG_BOOST, in nau8825_init_regs()
1890 regmap_update_bits(regmap, NAU8825_REG_BIAS_ADJ, in nau8825_init_regs()
1894 regmap_update_bits(regmap, NAU8825_REG_BOOST, in nau8825_init_regs()
1900 regmap_update_bits(regmap, NAU8825_REG_GPIO12_CTRL, in nau8825_init_regs()
1903 regmap_update_bits(regmap, NAU8825_REG_GPIO12_CTRL, in nau8825_init_regs()
1906 regmap_update_bits(regmap, NAU8825_REG_GPIO12_CTRL, in nau8825_init_regs()
1909 regmap_update_bits(regmap, NAU8825_REG_JACK_DET_CTRL, in nau8825_init_regs()
1914 regmap_update_bits(regmap, NAU8825_REG_JACK_DET_CTRL, in nau8825_init_regs()
1917 regmap_update_bits(regmap, NAU8825_REG_JACK_DET_CTRL, in nau8825_init_regs()
1922 regmap_update_bits(regmap, NAU8825_REG_INTERRUPT_MASK, in nau8825_init_regs()
1926 regmap_update_bits(regmap, NAU8825_REG_INTERRUPT_MASK, 0x7ff, 0x7ff); in nau8825_init_regs()
1928 regmap_update_bits(regmap, NAU8825_REG_MIC_BIAS, in nau8825_init_regs()
1937 regmap_update_bits(regmap, NAU8825_REG_ADC_RATE, in nau8825_init_regs()
1940 regmap_update_bits(regmap, NAU8825_REG_DAC_CTRL1, in nau8825_init_regs()
1943 regmap_update_bits(regmap, NAU8825_REG_CHARGE_PUMP, in nau8825_init_regs()
1950 regmap_update_bits(nau8825->regmap, NAU8825_REG_BIAS_ADJ, in nau8825_init_regs()
1953 regmap_update_bits(regmap, NAU8825_REG_DAC_CTRL1, in nau8825_init_regs()
1957 regmap_update_bits(regmap, NAU8825_REG_ANALOG_CONTROL_2, in nau8825_init_regs()
1963 regmap_update_bits(regmap, NAU8825_REG_CLASSG_CTRL, in nau8825_init_regs()
1967 regmap_update_bits(regmap, NAU8825_REG_RDAC, in nau8825_init_regs()
1972 regmap_update_bits(nau8825->regmap, NAU8825_REG_DACL_CTRL, in nau8825_init_regs()
1974 regmap_update_bits(nau8825->regmap, NAU8825_REG_DACR_CTRL, in nau8825_init_regs()
1977 regmap_update_bits(regmap, NAU8825_REG_LEFT_TIME_SLOT, in nau8825_init_regs()
2082 regmap_update_bits(nau8825->regmap, NAU8825_REG_CLK_DIVIDER, in nau8825_fll_apply()
2086 regmap_update_bits(nau8825->regmap, NAU8825_REG_FLL1, in nau8825_fll_apply()
2090 regmap_write(nau8825->regmap, NAU8825_REG_FLL2, fll_param->fll_frac); in nau8825_fll_apply()
2092 regmap_update_bits(nau8825->regmap, NAU8825_REG_FLL3, in nau8825_fll_apply()
2095 regmap_update_bits(nau8825->regmap, NAU8825_REG_FLL4, in nau8825_fll_apply()
2099 regmap_update_bits(nau8825->regmap, NAU8825_REG_FLL5, in nau8825_fll_apply()
2102 regmap_update_bits(nau8825->regmap, in nau8825_fll_apply()
2106 regmap_update_bits(nau8825->regmap, NAU8825_REG_FLL5, in nau8825_fll_apply()
2111 regmap_update_bits(nau8825->regmap, NAU8825_REG_FLL6, in nau8825_fll_apply()
2116 regmap_update_bits(nau8825->regmap, NAU8825_REG_FLL5, in nau8825_fll_apply()
2119 regmap_update_bits(nau8825->regmap, NAU8825_REG_FLL6, in nau8825_fll_apply()
2144 regmap_update_bits(nau8825->regmap, NAU8825_REG_CLK_DIVIDER, in nau8825_set_pll()
2180 static void nau8825_configure_mclk_as_sysclk(struct regmap *regmap) in nau8825_configure_mclk_as_sysclk() argument
2182 regmap_update_bits(regmap, NAU8825_REG_CLK_DIVIDER, in nau8825_configure_mclk_as_sysclk()
2184 regmap_update_bits(regmap, NAU8825_REG_FLL6, in nau8825_configure_mclk_as_sysclk()
2187 regmap_update_bits(regmap, NAU8825_REG_FLL1, in nau8825_configure_mclk_as_sysclk()
2194 struct regmap *regmap = nau8825->regmap; in nau8825_configure_sysclk() local
2200 nau8825_configure_mclk_as_sysclk(regmap); in nau8825_configure_sysclk()
2214 nau8825_configure_mclk_as_sysclk(regmap); in nau8825_configure_sysclk()
2216 regmap_update_bits(regmap, NAU8825_REG_CLK_DIVIDER, in nau8825_configure_sysclk()
2227 if (nau8825_is_jack_inserted(nau8825->regmap)) { in nau8825_configure_sysclk()
2228 regmap_update_bits(regmap, NAU8825_REG_FLL6, in nau8825_configure_sysclk()
2230 regmap_update_bits(regmap, NAU8825_REG_CLK_DIVIDER, in nau8825_configure_sysclk()
2235 regmap_update_bits(regmap, NAU8825_REG_CLK_DIVIDER, in nau8825_configure_sysclk()
2237 regmap_update_bits(regmap, NAU8825_REG_FLL1, in nau8825_configure_sysclk()
2240 regmap_update_bits(regmap, NAU8825_REG_FLL6, in nau8825_configure_sysclk()
2246 nau8825_configure_mclk_as_sysclk(regmap); in nau8825_configure_sysclk()
2266 regmap_update_bits(regmap, NAU8825_REG_FLL3, in nau8825_configure_sysclk()
2290 regmap_update_bits(regmap, NAU8825_REG_FLL3, in nau8825_configure_sysclk()
2316 regmap_update_bits(regmap, NAU8825_REG_FLL3, in nau8825_configure_sysclk()
2349 struct regmap *regmap = nau8825->regmap; in nau8825_resume_setup() local
2355 nau8825_int_status_clear_all(regmap); in nau8825_resume_setup()
2360 regmap_update_bits(regmap, NAU8825_REG_INTERRUPT_MASK, in nau8825_resume_setup()
2364 regmap_update_bits(regmap, NAU8825_REG_JACK_DET_CTRL, in nau8825_resume_setup()
2366 regmap_update_bits(regmap, NAU8825_REG_INTERRUPT_DIS_CTRL, in nau8825_resume_setup()
2402 regmap_update_bits(nau8825->regmap, NAU8825_REG_MIC_BIAS, in nau8825_set_bias_level()
2405 regmap_update_bits(nau8825->regmap, in nau8825_set_bias_level()
2412 regmap_write(nau8825->regmap, in nau8825_set_bias_level()
2415 regmap_update_bits(nau8825->regmap, NAU8825_REG_ENA_CTRL, in nau8825_set_bias_level()
2434 regcache_cache_only(nau8825->regmap, true); in nau8825_suspend()
2435 regcache_mark_dirty(nau8825->regmap); in nau8825_suspend()
2445 regcache_cache_only(nau8825->regmap, false); in nau8825_resume()
2446 regcache_sync(nau8825->regmap); in nau8825_resume()
2484 static void nau8825_reset_chip(struct regmap *regmap) in nau8825_reset_chip() argument
2486 regmap_write(regmap, NAU8825_REG_RESET, 0x00); in nau8825_reset_chip()
2487 regmap_write(regmap, NAU8825_REG_RESET, 0x00); in nau8825_reset_chip()
2634 nau8825->regmap = devm_regmap_init_i2c(i2c, &nau8825_regmap_config); in nau8825_i2c_probe()
2635 if (IS_ERR(nau8825->regmap)) in nau8825_i2c_probe()
2636 return PTR_ERR(nau8825->regmap); in nau8825_i2c_probe()
2650 nau8825_reset_chip(nau8825->regmap); in nau8825_i2c_probe()
2651 ret = regmap_read(nau8825->regmap, NAU8825_REG_I2C_DEVICE_ID, &value); in nau8825_i2c_probe()