LCOV - code coverage report
Current view: top level - zephyr/drivers/pinctrl - pinctrl_nxp_port_common.h Coverage Total Hit
Test: new.info Lines: 0.0 % 1 0
Test Date: 2025-09-05 20:47:19

            Line data    Source code
       1            0 : /*
       2              :  * Copyright 2022, 2024 NXP
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : 
       7              : /*
       8              :  * @file
       9              :  * NXP PORT SOC specific helpers for pinctrl driver
      10              :  */
      11              : 
      12              : 
      13              : #ifndef ZEPHYR_INCLUDE_DRIVERS_PINCTRL_PINCTRL_NXP_PORT_COMMON_H_
      14              : #define ZEPHYR_INCLUDE_DRIVERS_PINCTRL_PINCTRL_NXP_PORT_COMMON_H_
      15              : 
      16              : /** @cond INTERNAL_HIDDEN */
      17              : 
      18              : #include <zephyr/devicetree.h>
      19              : #include <zephyr/types.h>
      20              : 
      21              : /* Include SOC headers, so we get definitions for PCR bitmasks */
      22              : #include <soc.h>
      23              : 
      24              : #ifdef __cplusplus
      25              : extern "C" {
      26              : #endif
      27              : 
      28              : /*
      29              :  * Some PORT IP instantiations lack certain features, include input buffers,
      30              :  * open drain, and slew rate. If masks aren't defined for these bitfields,
      31              :  * define them to have no effect
      32              :  */
      33              : #ifndef PORT_PCR_IBE_MASK /* Input buffer enable */
      34              : #define PORT_PCR_IBE_MASK 0x0
      35              : #define PORT_PCR_IBE(x) 0x0
      36              : #endif
      37              : 
      38              : #ifndef PORT_PCR_SRE_MASK /* Slew rate */
      39              : #define PORT_PCR_SRE_MASK 0x0
      40              : #define PORT_PCR_SRE(x) 0x0
      41              : #endif
      42              : 
      43              : #ifndef PORT_PCR_ODE_MASK /* Open drain */
      44              : #define PORT_PCR_ODE_MASK 0x0
      45              : #define PORT_PCR_ODE(x) 0x0
      46              : #endif
      47              : 
      48              : 
      49              : typedef uint32_t pinctrl_soc_pin_t;
      50              : 
      51              : #define Z_PINCTRL_NXP_PORT_PINCFG(node_id)                                                         \
      52              :         (PORT_PCR_DSE(DT_ENUM_IDX(node_id, drive_strength)) |                                      \
      53              :          PORT_PCR_PS(DT_PROP(node_id, bias_pull_up)) |                                             \
      54              :          PORT_PCR_PE(DT_PROP(node_id, bias_pull_up)) |                                             \
      55              :          PORT_PCR_PE(DT_PROP(node_id, bias_pull_down)) |                                           \
      56              :          PORT_PCR_ODE(DT_PROP(node_id, drive_open_drain)) |                                        \
      57              :          PORT_PCR_SRE(DT_ENUM_IDX(node_id, slew_rate)) |                                           \
      58              :          PORT_PCR_IBE(DT_PROP(node_id, input_enable)) |                                            \
      59              :          PORT_PCR_PFE(DT_PROP(node_id, nxp_passive_filter)))
      60              : 
      61              : #define Z_PINCTRL_NXP_PORT_PCR_MASK                                                                \
      62              :         (PORT_PCR_MUX_MASK | PORT_PCR_DSE_MASK | PORT_PCR_ODE_MASK | PORT_PCR_PFE_MASK |           \
      63              :          PORT_PCR_IBE_MASK | PORT_PCR_SRE_MASK | PORT_PCR_PE_MASK | PORT_PCR_PS_MASK)
      64              : 
      65              : #define Z_PINCTRL_STATE_PIN_INIT(group, pin_prop, idx)                                             \
      66              :         DT_PROP_BY_IDX(group, pin_prop, idx) | Z_PINCTRL_NXP_PORT_PINCFG(group),
      67              : 
      68              : #define Z_PINCTRL_STATE_PINS_INIT(node_id, prop)                                                   \
      69              :         {DT_FOREACH_CHILD_VARGS(DT_PHANDLE(node_id, prop), DT_FOREACH_PROP_ELEM, pinmux,           \
      70              :                                 Z_PINCTRL_STATE_PIN_INIT)};
      71              : 
      72              : #ifdef __cplusplus
      73              : }
      74              : #endif
      75              : 
      76              : /** @endcond */
      77              : 
      78              : #endif /* ZEPHYR_INCLUDE_DRIVERS_PINCTRL_PINCTRL_NXP_PORT_COMMON_H_ */
        

Generated by: LCOV version 2.0-1