/*
 * SPDX-License-Identifier: Apache-2.0
 *
 * Copyright (c) 2023 STMicroelectronics
 */

/ {
	/* Change min residency time to ease power consumption measurement */
	cpus {
		power-states {
			stop0: state0 {
				min-residency-us = <500000>;
				exit-latency-us = <50>;
			};
			stop1: state1 {
				min-residency-us = <1000000>;
				exit-latency-us = <100>;
			};
			standby: state2 {
				min-residency-us = <2000000>;
				exit-latency-us = <1000>;
			};
		};
	};

	zephyr,user {
		/* adjust channel number according to pinmux in board.dts */
		io-channels = <&adc4 8>;
	};
};

&lptim1 {
	status = "okay";
};

&adc4 {
	pinctrl-0 = <&adc4_in8_pa1>;
	#address-cells = <1>;
	#size-cells = <0>;

	channel@8 {
		reg = <8>;
		zephyr,gain = "ADC_GAIN_1";
		zephyr,reference = "ADC_REF_INTERNAL";
		zephyr,acquisition-time = <ADC_ACQ_TIME_MAX>;
		zephyr,resolution = <12>;
	};
};
