/*
 * SPDX-License-Identifier: Apache-2.0
 *
 * Copyright (c) 2023 Benjamin Björnsson <benjamin.bjornsson@gmail.com>
 */

/ {
	zephyr,user {
		io-channels = <&adc 0>, <&adc 2>;
	};
};

&adc {
	#address-cells = <1>;
	#size-cells = <0>;

	channel@0 {
		reg = <0>;
		zephyr,gain = "ADC_GAIN_1_3";
		zephyr,reference = "ADC_REF_INTERNAL";
		zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
		zephyr,input-positive = <NRF_ADC_AIN2>;
		zephyr,resolution = <10>;
	};

	channel@2 {
		reg = <2>;
		zephyr,gain = "ADC_GAIN_1_3";
		zephyr,reference = "ADC_REF_INTERNAL";
		zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
		zephyr,input-positive = <NRF_ADC_AIN3>;
		zephyr,resolution = <10>;
	};
};
