LCOV - code coverage report
Current view: top level - zephyr/drivers/sensor - mcux_acmp.h Coverage Total Hit
Test: new.info Lines: 9.1 % 11 1
Test Date: 2025-09-05 22:20:39

            Line data    Source code
       1            1 : /*
       2              :  * Copyright (c) 2020 Vestas Wind Systems A/S
       3              :  * Copyright 2022, 2024-2025 NXP
       4              :  *
       5              :  * SPDX-License-Identifier: Apache-2.0
       6              :  */
       7              : 
       8              : /**
       9              :  * @file
      10              :  * @brief Extended public API for the NXP MCUX Analog Comparator (ACMP)
      11              :  */
      12              : 
      13              : #ifndef ZEPHYR_INCLUDE_DRIVERS_SENSOR_MCUX_ACMP_H_
      14              : #define ZEPHYR_INCLUDE_DRIVERS_SENSOR_MCUX_ACMP_H_
      15              : 
      16              : #ifdef __cplusplus
      17              : extern "C" {
      18              : #endif
      19              : 
      20              : #include <zephyr/drivers/sensor.h>
      21              : 
      22              : #if defined(FSL_FEATURE_ACMP_HAS_C1_INPSEL_BIT) && (FSL_FEATURE_ACMP_HAS_C1_INPSEL_BIT == 1U)
      23              : #define MCUX_ACMP_HAS_INPSEL 1
      24              : #else
      25            0 : #define MCUX_ACMP_HAS_INPSEL 0
      26              : #endif
      27              : 
      28              : #if defined(FSL_FEATURE_ACMP_HAS_C1_INNSEL_BIT) && (FSL_FEATURE_ACMP_HAS_C1_INNSEL_BIT == 1U)
      29              : #define MCUX_ACMP_HAS_INNSEL 1
      30              : #else
      31            0 : #define MCUX_ACMP_HAS_INNSEL 0
      32              : #endif
      33              : 
      34              : #if defined(FSL_FEATURE_ACMP_HAS_C0_OFFSET_BIT) && (FSL_FEATURE_ACMP_HAS_C0_OFFSET_BIT == 1U)
      35              : #define MCUX_ACMP_HAS_OFFSET 1
      36              : #else
      37            0 : #define MCUX_ACMP_HAS_OFFSET 0
      38              : #endif
      39              : 
      40              : #if defined(FSL_FEATURE_ACMP_HAS_C3_REG) && (FSL_FEATURE_ACMP_HAS_C3_REG != 0U) && \
      41              :         (FSL_FEATURE_ACMP_HAS_NO_3V_DOMAIN == 0U)
      42              : #define MCUX_ACMP_HAS_DISCRETE_MODE 1
      43              : #else
      44            0 : #define MCUX_ACMP_HAS_DISCRETE_MODE 0
      45              : #endif
      46              : 
      47              : #if defined(FSL_FEATURE_ACMP_HAS_C0_HYSTCTR_BIT) && (FSL_FEATURE_ACMP_HAS_C0_HYSTCTR_BIT == 1U)
      48              : #define MCUX_ACMP_HAS_HYSTCTR 1
      49              : #else
      50            0 : #define MCUX_ACMP_HAS_HYSTCTR 0
      51              : #endif
      52              : 
      53              : #if defined(FSL_FEATURE_ACMP_HAS_NO_WINDOW_MODE) && (FSL_FEATURE_ACMP_HAS_NO_WINDOW_MODE == 1U)
      54              : #define MCUX_ACMP_HAS_WINDOW_MODE 0
      55              : #else
      56            0 : #define MCUX_ACMP_HAS_WINDOW_MODE 1
      57              : #endif
      58              : 
      59              : #if defined(FSL_FEATURE_ACMP_HAS_NO_C0_SE_BIT) && (FSL_FEATURE_ACMP_HAS_NO_C0_SE_BIT == 1U)
      60              : #define MCUX_ACMP_HAS_SAMPLE_CLOCK_SELECTION 0
      61              : #else
      62            0 : #define MCUX_ACMP_HAS_SAMPLE_CLOCK_SELECTION 1
      63              : #endif
      64              : 
      65            0 : enum sensor_channel_mcux_acmp {
      66              :         /** Analog Comparator Output. */
      67              :         SENSOR_CHAN_MCUX_ACMP_OUTPUT = SENSOR_CHAN_PRIV_START,
      68              : };
      69              : 
      70            0 : enum sensor_trigger_type_mcux_acmp {
      71              :         /** Analog Comparator Output rising event trigger. */
      72              :         SENSOR_TRIG_MCUX_ACMP_OUTPUT_RISING = SENSOR_TRIG_PRIV_START,
      73              :         /** Analog Comparator Output falling event trigger. */
      74              :         SENSOR_TRIG_MCUX_ACMP_OUTPUT_FALLING,
      75              : };
      76              : 
      77            0 : enum sensor_attribute_mcux_acmp {
      78              :         /** Analog Comparator hard block offset. */
      79              :         SENSOR_ATTR_MCUX_ACMP_OFFSET_LEVEL = SENSOR_ATTR_COMMON_COUNT,
      80              :         /** Analog Comparator hysteresis level. */
      81              :         SENSOR_ATTR_MCUX_ACMP_HYSTERESIS_LEVEL,
      82              :         /**
      83              :          * Analog Comparator Digital-to-Analog Converter voltage
      84              :          * reference source.
      85              :          */
      86              :         SENSOR_ATTR_MCUX_ACMP_DAC_VOLTAGE_REFERENCE,
      87              :         /** Analog Comparator Digital-to-Analog Converter value. */
      88              :         SENSOR_ATTR_MCUX_ACMP_DAC_VALUE,
      89              :         /** Analog Comparator positive port input. */
      90              :         SENSOR_ATTR_MCUX_ACMP_POSITIVE_PORT_INPUT,
      91              :         /** Analog Comparator positive mux input. */
      92              :         SENSOR_ATTR_MCUX_ACMP_POSITIVE_MUX_INPUT,
      93              :         /** Analog Comparator negative port input. */
      94              :         SENSOR_ATTR_MCUX_ACMP_NEGATIVE_PORT_INPUT,
      95              :         /** Analog Comparator negative mux input. */
      96              :         SENSOR_ATTR_MCUX_ACMP_NEGATIVE_MUX_INPUT,
      97              : #if MCUX_ACMP_HAS_DISCRETE_MODE
      98              :         /** Analog Comparator Positive Channel Discrete Mode Enable. */
      99              :         SENSOR_ATTR_MCUX_ACMP_POSITIVE_DISCRETE_MODE,
     100              :         /** Analog Comparator Negative Channel Discrete Mode Enable. */
     101              :         SENSOR_ATTR_MCUX_ACMP_NEGATIVE_DISCRETE_MODE,
     102              :         /** Analog Comparator discrete mode clock selection. */
     103              :         SENSOR_ATTR_MCUX_ACMP_DISCRETE_CLOCK,
     104              :         /** Analog Comparator resistor divider enable. */
     105              :         SENSOR_ATTR_MCUX_ACMP_DISCRETE_ENABLE_RESISTOR_DIVIDER,
     106              :         /** Analog Comparator discrete sample selection. */
     107              :         SENSOR_ATTR_MCUX_ACMP_DISCRETE_SAMPLE_TIME,
     108              :         /** Analog Comparator discrete phase1 sampling time selection. */
     109              :         SENSOR_ATTR_MCUX_ACMP_DISCRETE_PHASE1_TIME,
     110              :         /** Analog Comparator discrete phase2 sampling time selection. */
     111              :         SENSOR_ATTR_MCUX_ACMP_DISCRETE_PHASE2_TIME,
     112              : #endif
     113              : };
     114              : 
     115              : #ifdef __cplusplus
     116              : }
     117              : #endif
     118              : 
     119              : #endif /* ZEPHYR_INCLUDE_DRIVERS_SENSOR_MCUX_ACMP_H_ */
        

Generated by: LCOV version 2.0-1