LCOV - code coverage report
Current view: top level - zephyr/dt-bindings/pinctrl - nxp-s32-pinctrl.h Coverage Total Hit
Test: new.info Lines: 3.8 % 26 1
Test Date: 2025-09-05 16:43:28

            Line data    Source code
       1            0 : /*
       2              :  * Copyright 2022, 2024 NXP
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : 
       7              : #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_NXP_S32_PINCTRL_H_
       8              : #define ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_NXP_S32_PINCTRL_H_
       9              : 
      10              : #include <zephyr/dt-bindings/dt-util.h>
      11              : 
      12              : /*
      13              :  * The NXP S32 pinmux configuration is encoded in a 32-bit field value as follows:
      14              :  *
      15              :  * - 0..2:   Output mux Source Signal Selection (MSCR.SSS)
      16              :  * - 3..6:   Input mux Source Signal Selection (IMCR.SSS)
      17              :  * - 7..15:  Input Multiplexed Signal Configuration Register (IMCR) index
      18              :  * - 16..24: Multiplexed Signal Configuration Register (MSCR) index
      19              :  * - 25..27: MSCR SIUL2 instance index (0..7)
      20              :  * - 28..30: IMCR SIUL2 instance index (0..7)
      21              :  * - 31:     Reserved for future use
      22              :  */
      23            0 : #define NXP_S32_MSCR_SSS_SHIFT       0U
      24            0 : #define NXP_S32_MSCR_SSS_MASK        BIT_MASK(3)
      25            0 : #define NXP_S32_IMCR_SSS_SHIFT       3U
      26            0 : #define NXP_S32_IMCR_SSS_MASK        BIT_MASK(4)
      27            0 : #define NXP_S32_IMCR_IDX_SHIFT       7U
      28            0 : #define NXP_S32_IMCR_IDX_MASK        BIT_MASK(9)
      29            0 : #define NXP_S32_MSCR_IDX_SHIFT       16U
      30            0 : #define NXP_S32_MSCR_IDX_MASK        BIT_MASK(9)
      31            0 : #define NXP_S32_MSCR_SIUL2_IDX_SHIFT 25U
      32            0 : #define NXP_S32_MSCR_SIUL2_IDX_MASK  BIT_MASK(3)
      33            0 : #define NXP_S32_IMCR_SIUL2_IDX_SHIFT 28U
      34            0 : #define NXP_S32_IMCR_SIUL2_IDX_MASK  BIT_MASK(3)
      35              : 
      36            0 : #define NXP_S32_PINMUX_MSCR_SSS(cfg)    \
      37              :         (((cfg) & NXP_S32_MSCR_SSS_MASK) << NXP_S32_MSCR_SSS_SHIFT)
      38              : 
      39            0 : #define NXP_S32_PINMUX_IMCR_SSS(cfg)    \
      40              :         (((cfg) & NXP_S32_IMCR_SSS_MASK) << NXP_S32_IMCR_SSS_SHIFT)
      41              : 
      42            0 : #define NXP_S32_PINMUX_IMCR_IDX(cfg)    \
      43              :         (((cfg) & NXP_S32_IMCR_IDX_MASK) << NXP_S32_IMCR_IDX_SHIFT)
      44              : 
      45            0 : #define NXP_S32_PINMUX_MSCR_IDX(cfg)    \
      46              :         (((cfg) & NXP_S32_MSCR_IDX_MASK) << NXP_S32_MSCR_IDX_SHIFT)
      47              : 
      48            0 : #define NXP_S32_PINMUX_MSCR_SIUL2_IDX(cfg)      \
      49              :         (((cfg) & NXP_S32_MSCR_SIUL2_IDX_MASK) << NXP_S32_MSCR_SIUL2_IDX_SHIFT)
      50              : 
      51            0 : #define NXP_S32_PINMUX_IMCR_SIUL2_IDX(cfg)      \
      52              :         (((cfg) & NXP_S32_IMCR_SIUL2_IDX_MASK) << NXP_S32_IMCR_SIUL2_IDX_SHIFT)
      53              : 
      54            0 : #define NXP_S32_PINMUX_GET_MSCR_SSS(cfg)        \
      55              :         (((cfg) >> NXP_S32_MSCR_SSS_SHIFT) & NXP_S32_MSCR_SSS_MASK)
      56              : 
      57            0 : #define NXP_S32_PINMUX_GET_IMCR_SSS(cfg)        \
      58              :         (((cfg) >> NXP_S32_IMCR_SSS_SHIFT) & NXP_S32_IMCR_SSS_MASK)
      59              : 
      60            0 : #define NXP_S32_PINMUX_GET_IMCR_IDX(cfg)        \
      61              :         (((cfg) >> NXP_S32_IMCR_IDX_SHIFT) & NXP_S32_IMCR_IDX_MASK)
      62              : 
      63            0 : #define NXP_S32_PINMUX_GET_MSCR_IDX(cfg)        \
      64              :         (((cfg) >> NXP_S32_MSCR_IDX_SHIFT) & NXP_S32_MSCR_IDX_MASK)
      65              : 
      66            0 : #define NXP_S32_PINMUX_GET_MSCR_SIUL2_IDX(cfg)  \
      67              :         (((cfg) >> NXP_S32_MSCR_SIUL2_IDX_SHIFT) & NXP_S32_MSCR_SIUL2_IDX_MASK)
      68              : 
      69            0 : #define NXP_S32_PINMUX_GET_IMCR_SIUL2_IDX(cfg)  \
      70              :         (((cfg) >> NXP_S32_IMCR_SIUL2_IDX_SHIFT) & NXP_S32_IMCR_SIUL2_IDX_MASK)
      71              : 
      72              : /**
      73              :  * @brief Utility macro to build NXP S32 pinmux property for pinctrl nodes.
      74              :  *
      75              :  * @param mscr_siul2_idx MSCR SIUL2 instance index
      76              :  * @param imcr_siul2_idx IMCR SIUL2 instance index
      77              :  * @param mscr_idx Multiplexed Signal Configuration Register (MSCR) index
      78              :  * @param mscr_sss Output mux Source Signal Selection (MSCR.SSS)
      79              :  * @param imcr_idx Input Multiplexed Signal Configuration Register (IMCR) index
      80              :  * @param imcr_sss Input mux Source Signal Selection (IMCR.SSS)
      81              :  */
      82            1 : #define NXP_S32_PINMUX(mscr_siul2_idx, imcr_siul2_idx, mscr_idx, mscr_sss, imcr_idx, imcr_sss)     \
      83              :         (NXP_S32_PINMUX_MSCR_SIUL2_IDX(mscr_siul2_idx) |                                           \
      84              :          NXP_S32_PINMUX_IMCR_SIUL2_IDX(imcr_siul2_idx) |                                           \
      85              :          NXP_S32_PINMUX_MSCR_IDX(mscr_idx) |                                                       \
      86              :          NXP_S32_PINMUX_MSCR_SSS(mscr_sss) |                                                       \
      87              :          NXP_S32_PINMUX_IMCR_IDX(imcr_idx) |                                                       \
      88              :          NXP_S32_PINMUX_IMCR_SSS(imcr_sss))
      89              : 
      90              : #endif  /* ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_NXP_NXP_S32_PINCTRL_H_ */
        

Generated by: LCOV version 2.0-1