1 /* 2 * Copyright (c) 2020 Vestas Wind Systems A/S 3 * Copyright 2024 NXP 4 * 5 * SPDX-License-Identifier: Apache-2.0 6 */ 7 8 /** 9 * @file 10 * @brief Data structure for the NXP MCUX low-power analog comparator (LPCMP) 11 */ 12 13 #ifndef ZEPHYR_INCLUDE_DRIVERS_SENSOR_MCUX_LPCMP_H_ 14 #define ZEPHYR_INCLUDE_DRIVERS_SENSOR_MCUX_LPCMP_H_ 15 16 #ifdef __cplusplus 17 extern "C" { 18 #endif 19 20 #include <zephyr/drivers/sensor.h> 21 22 /** 23 * @brief lpcmp channels. 24 */ 25 enum sensor_channel_mcux_lpcmp { 26 /** LPCMP output. */ 27 SENSOR_CHAN_MCUX_LPCMP_OUTPUT = SENSOR_CHAN_PRIV_START, 28 }; 29 30 /** 31 * @brief lpcmp trigger types. 32 */ 33 enum sensor_trigger_type_mcux_lpcmp { 34 /** LPCMP output rising event trigger. */ 35 SENSOR_TRIG_MCUX_LPCMP_OUTPUT_RISING = SENSOR_TRIG_PRIV_START, 36 /** LPCMP output falling event trigger. */ 37 SENSOR_TRIG_MCUX_LPCMP_OUTPUT_FALLING, 38 }; 39 40 /** 41 * @brief lpcmp attribute types. 42 */ 43 enum sensor_attribute_mcux_lpcmp { 44 /** LPCMP positive input mux. */ 45 SENSOR_ATTR_MCUX_LPCMP_POSITIVE_MUX_INPUT = SENSOR_ATTR_COMMON_COUNT, 46 /** LPCMP negative input mux. */ 47 SENSOR_ATTR_MCUX_LPCMP_NEGATIVE_MUX_INPUT, 48 49 /** 50 * LPCMP internal DAC enable. 51 * 0b: disable 52 * 1b: enable 53 */ 54 SENSOR_ATTR_MCUX_LPCMP_DAC_ENABLE, 55 /** 56 * LPCMP internal DAC high power mode disabled. 57 * 0b: disable 58 * 1b: enable 59 */ 60 SENSOR_ATTR_MCUX_LPCMP_DAC_HIGH_POWER_MODE_ENABLE, 61 /** LPCMP internal DAC voltage reference source. */ 62 SENSOR_ATTR_MCUX_LPCMP_DAC_REFERENCE_VOLTAGE_SOURCE, 63 /** LPCMP internal DAC output voltage value. */ 64 SENSOR_ATTR_MCUX_LPCMP_DAC_OUTPUT_VOLTAGE, 65 66 /** LPCMP internal filter sample enable. */ 67 SENSOR_ATTR_MCUX_LPCMP_SAMPLE_ENABLE, 68 /** LPCMP internal filter sample count. */ 69 SENSOR_ATTR_MCUX_LPCMP_FILTER_COUNT, 70 /** LPCMP internal filter sample period. */ 71 SENSOR_ATTR_MCUX_LPCMP_FILTER_PERIOD, 72 73 /** LPCMP window signal invert. */ 74 SENSOR_ATTR_MCUX_LPCMP_COUTA_WINDOW_ENABLE, 75 /** LPCMP window signal invert. */ 76 SENSOR_ATTR_MCUX_LPCMP_COUTA_WINDOW_SIGNAL_INVERT_ENABLE, 77 /** 78 * LPCMP COUTA signal value when a window is closed: 79 * 00b: latched 80 * 01b: set to low 81 * 11b: set to high 82 */ 83 SENSOR_ATTR_MCUX_LPCMP_COUTA_SIGNAL, 84 /** 85 * LPCMP COUT event to close an active window: 86 * xx0b: COUT event cannot close an active window 87 * 001b: COUT rising edge event close an active window 88 * 011b: COUT falling edge event close an active window 89 * 1x1b: COUT both edges event close an active window 90 */ 91 SENSOR_ATTR_MCUX_LPCMP_COUT_EVENT_TO_CLOSE_WINDOW 92 }; 93 94 #ifdef __cplusplus 95 } 96 #endif 97 98 #endif /* ZEPHYR_INCLUDE_DRIVERS_SENSOR_MCUX_LPCMP_H_ */ 99