/*
 * SPDX-License-Identifier: Apache-2.0
 *
 * Copyright (c) 2023 Microchip Technology Inc.
 */

/ {
	zephyr,user {
		io-channels =  <&adc0 4>, <&adc0 5>, <&adc0 6>, <&adc0 7>;
	};
};
&adc0 {
	#address-cells = <1>;
	#size-cells = <0>;

	channel@4 {
		reg = <4>;
		zephyr,gain = "ADC_GAIN_1";
		zephyr,reference = "ADC_REF_INTERNAL";
		zephyr,acquisition-time = <0>;
		zephyr,resolution = <12>;
	};
	channel@5 {
		reg = <5>;
		zephyr,gain = "ADC_GAIN_1";
		zephyr,reference = "ADC_REF_INTERNAL";
		zephyr,acquisition-time = <0>;
		zephyr,resolution = <12>;
	};
	channel@6 {
		reg = <6>;
		zephyr,gain = "ADC_GAIN_1";
		zephyr,reference = "ADC_REF_INTERNAL";
		zephyr,acquisition-time = <0>;
		zephyr,resolution = <12>;
	};
	channel@7 {
		reg = <7>;
		zephyr,gain = "ADC_GAIN_1";
		zephyr,reference = "ADC_REF_INTERNAL";
		zephyr,acquisition-time = <0>;
		zephyr,resolution = <12>;
	};
};
