LCOV - code coverage report
Current view: top level - zephyr/drivers/pinctrl - pinctrl_nxp_port_common.h Hit Total Coverage
Test: new.info Lines: 0 1 0.0 %
Date: 2024-12-22 00:14:23

          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 1.14