VDD as reference for ADC Channel fails

Hi,

I'm trying to run the zephyr/samples/drivers/adc/adc_dt example on the nRF54L15 DK.

I modified the board overlay file
zephyr/samples/drivers/adc/adc_dt/boards/nrf54l15dk_nrf54l15_cpuapp.overlay
as follows:

	channel@0 {
		reg = <0>;
		zephyr,gain = "ADC_GAIN_1";
		zephyr,reference = "ADC_REF_VDD_1";
		zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
		zephyr,input-positive = <NRF_SAADC_AIN4>; /* P1.11 */
		zephyr,resolution = <10>;
	};

This is the only change I made — the original overlay used:

zephyr,reference = "ADC_REF_INTERNAL";

However, after rebuilding and flashing, I get this output:

Could not setup channel #0 (-22)

From the Zephyr source, error -22 seems to correspond to EINVAL.

It works fine with "ADC_REF_INTERNAL", but fails with "ADC_REF_VDD_1".



Questions:
Does the nRF54L15 SAADC support ADC_REF_VDD_1ADC_REF_VDD_1_*  as a reference?
If not, is there another way to measure signals with VDD-based reference on this device?

Environment:
- Zephyr: 4.2.1
- Board: nrf54l15dk/nrf54l15/cpuapp

Related