LCOV - code coverage report
Current view: top level - zephyr/dt-bindings/adc - stm32_adc.h Coverage Total Hit
Test: new.info Lines: 5.6 % 18 1
Test Date: 2025-03-11 06:50:38

            Line data    Source code
       1            0 : /*
       2              :  * Copyright (c) 2023 STMicrelectronics
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_STM32_ADC_H_
       7              : #define ZEPHYR_INCLUDE_DT_BINDINGS_STM32_ADC_H_
       8              : 
       9              : #include <zephyr/dt-bindings/adc/adc.h>
      10              : 
      11            0 : #define STM32_ADC_REG_MASK              BIT_MASK(8)
      12            0 : #define STM32_ADC_REG_SHIFT             0U
      13            0 : #define STM32_ADC_SHIFT_MASK            BIT_MASK(5)
      14            0 : #define STM32_ADC_SHIFT_SHIFT           8U
      15            0 : #define STM32_ADC_MASK_MASK             BIT_MASK(3)
      16            0 : #define STM32_ADC_MASK_SHIFT            13U
      17            0 : #define STM32_ADC_REG_VAL_MASK          BIT_MASK(3)
      18            0 : #define STM32_ADC_REG_VAL_SHIFT         16U
      19            0 : #define STM32_ADC_REAL_VAL_MASK         BIT_MASK(13)
      20            0 : #define STM32_ADC_REAL_VAL_SHIFT        19U
      21              : 
      22              : /**
      23              :  * @brief STM32 ADC configuration bit field.
      24              :  *
      25              :  * - reg      (0..0xFF)       [ 0 : 7 ]
      26              :  * - shift    (0..31)         [ 8 : 12 ]
      27              :  * - mask     (0x1, 0x3, 0x7) [ 13 : 15 ]
      28              :  * - reg_val  (0..7)          [ 16 : 18 ]
      29              :  * - real_val (0..8191)       [ 19 : 31 ]
      30              :  *
      31              :  * @param reg ADC_x register offset
      32              :  * @param shift Position within ADC_x.
      33              :  * @param mask Mask for the ADC_x field.
      34              :  * @param reg_val Register value (0, 1, ... 7).
      35              :  * @param real_val Real corresponding value (0, 1, ... 8191).
      36              :  */
      37            1 : #define STM32_ADC(real_val, reg_val, mask, shift, reg)                          \
      38              :         ((((reg) & STM32_ADC_REG_MASK) << STM32_ADC_REG_SHIFT) |              \
      39              :          (((shift) & STM32_ADC_SHIFT_MASK) << STM32_ADC_SHIFT_SHIFT) |                \
      40              :          (((mask) & STM32_ADC_MASK_MASK) << STM32_ADC_MASK_SHIFT) |           \
      41              :          (((reg_val) & STM32_ADC_REG_VAL_MASK) << STM32_ADC_REG_VAL_SHIFT) |  \
      42              :          (((real_val) & STM32_ADC_REAL_VAL_MASK) << STM32_ADC_REAL_VAL_SHIFT))
      43              : 
      44            0 : #define STM32_ADC_GET_REAL_VAL(val)     \
      45              :         (((val) >> STM32_ADC_REAL_VAL_SHIFT) & STM32_ADC_REAL_VAL_MASK)
      46              : 
      47            0 : #define STM32_ADC_GET_REG_VAL(val)      \
      48              :         (((val) >> STM32_ADC_REG_VAL_SHIFT) & STM32_ADC_REG_VAL_MASK)
      49              : 
      50            0 : #define STM32_ADC_GET_MASK(val)         \
      51              :         (((val) >> STM32_ADC_MASK_SHIFT) & STM32_ADC_MASK_MASK)
      52              : 
      53            0 : #define STM32_ADC_GET_SHIFT(val)        \
      54              :         (((val) >> STM32_ADC_SHIFT_SHIFT) & STM32_ADC_SHIFT_MASK)
      55              : 
      56            0 : #define STM32_ADC_GET_REG(val)          \
      57              :         (((val) >> STM32_ADC_REG_SHIFT) & STM32_ADC_REG_MASK)
      58              : 
      59              : /*
      60              :  * Macro used to store resolution info. STM32_ADC_RES_* macros are defined in
      61              :  * respective stm32xx_adc.h files
      62              :  */
      63            0 : #define STM32_ADC_RES(resolution, reg_val)      \
      64              :         STM32_ADC(resolution, reg_val, STM32_ADC_RES_MASK, STM32_ADC_RES_SHIFT, \
      65              :                   STM32_ADC_RES_REG)
      66              : 
      67              : #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_STM32_ADC_H_ */
        

Generated by: LCOV version 2.0-1