LCOV - code coverage report
Current view: top level - zephyr/dt-bindings/pinctrl - ifx_cat1-pinctrl.h Coverage Total Hit
Test: new.info Lines: 6.2 % 65 4
Test Date: 2025-09-05 16:43:28

            Line data    Source code
       1            0 : /* Copyright 2022 Cypress Semiconductor Corporation (an Infineon company) or
       2              :  * an affiliate of Cypress Semiconductor Corporation
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_IFX_CAT1_PINCTRL_H_
       7              : #define ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_IFX_CAT1_PINCTRL_H_
       8              : /**
       9              :  * @brief Pin control binding helper.
      10              :  */
      11              : 
      12              : /**
      13              :  * Bit definition in PINMUX field
      14              :  */
      15            1 : #define SOC_PINMUX_PORT_POS                                (0)
      16            0 : #define SOC_PINMUX_PORT_MASK                               (0xFFul << SOC_PINMUX_PORT_POS)
      17            0 : #define SOC_PINMUX_PIN_POS                                 (8)
      18            0 : #define SOC_PINMUX_PIN_MASK                                (0xFFul << SOC_PINMUX_PIN_POS)
      19            0 : #define SOC_PINMUX_HSIOM_FUNC_POS                          (16)
      20            0 : #define SOC_PINMUX_HSIOM_MASK                              (0xFFul << SOC_PINMUX_HSIOM_FUNC_POS)
      21            0 : #define SOC_PINMUX_SIGNAL_POS                              (24)
      22            0 : #define SOC_PINMUX_SIGNAL_MASK                             (0xFFul << SOC_PINMUX_SIGNAL_POS)
      23              : 
      24              : /**
      25              :  * Functions are defined using HSIOM SEL
      26              :  */
      27            1 : #define HSIOM_SEL_GPIO                                     (0)
      28            0 : #define HSIOM_SEL_GPIO_DSI                                 (1)
      29            0 : #define HSIOM_SEL_DSI_DSI                                  (2)
      30            0 : #define HSIOM_SEL_DSI_GPIO                                 (3)
      31            0 : #define HSIOM_SEL_AMUXA                                    (4)
      32            0 : #define HSIOM_SEL_AMUXB                                    (5)
      33            0 : #define HSIOM_SEL_AMUXA_DSI                                (6)
      34            0 : #define HSIOM_SEL_AMUXB_DSI                                (7)
      35            0 : #define HSIOM_SEL_ACT_0                                    (8)
      36            0 : #define HSIOM_SEL_ACT_1                                    (9)
      37            0 : #define HSIOM_SEL_ACT_2                                    (10)
      38            0 : #define HSIOM_SEL_ACT_3                                    (11)
      39            0 : #define HSIOM_SEL_DS_0                                     (12)
      40            0 : #define HSIOM_SEL_DS_1                                     (13)
      41            0 : #define HSIOM_SEL_DS_2                                     (14)
      42            0 : #define HSIOM_SEL_DS_3                                     (15)
      43            0 : #define HSIOM_SEL_ACT_4                                    (16)
      44            0 : #define HSIOM_SEL_ACT_5                                    (17)
      45            0 : #define HSIOM_SEL_ACT_6                                    (18)
      46            0 : #define HSIOM_SEL_ACT_7                                    (19)
      47            0 : #define HSIOM_SEL_ACT_8                                    (20)
      48            0 : #define HSIOM_SEL_ACT_9                                    (21)
      49            0 : #define HSIOM_SEL_ACT_10                                   (22)
      50            0 : #define HSIOM_SEL_ACT_11                                   (23)
      51            0 : #define HSIOM_SEL_ACT_12                                   (24)
      52            0 : #define HSIOM_SEL_ACT_13                                   (25)
      53            0 : #define HSIOM_SEL_ACT_14                                   (26)
      54            0 : #define HSIOM_SEL_ACT_15                                   (27)
      55            0 : #define HSIOM_SEL_DS_4                                     (28)
      56            0 : #define HSIOM_SEL_DS_5                                     (29)
      57            0 : #define HSIOM_SEL_DS_6                                     (30)
      58            0 : #define HSIOM_SEL_DS_7                                     (31)
      59              : 
      60              : /**
      61              :  * Macro to set drive mode
      62              :  */
      63            1 : #define DT_CAT1_DRIVE_MODE_INFO(peripheral_signal) \
      64              :         CAT1_PIN_MAP_DRIVE_MODE_##peripheral_signal
      65              : 
      66              : /**
      67              :  * Macro to set pin control information (from pinctrl node)
      68              :  */
      69            1 : #define DT_CAT1_PINMUX(port, pin, hsiom) \
      70              :         ((port << SOC_PINMUX_PORT_POS) | \
      71              :          (pin << SOC_PINMUX_PIN_POS) |     \
      72              :          (hsiom << SOC_PINMUX_HSIOM_FUNC_POS))
      73              : 
      74              : /* Redefine DT GPIO label (Px) to CYHAL port macros (CYHAL_PORT_x) */
      75            0 : #define P0  CYHAL_PORT_0
      76            0 : #define P1  CYHAL_PORT_1
      77            0 : #define P2  CYHAL_PORT_2
      78            0 : #define P3  CYHAL_PORT_3
      79            0 : #define P4  CYHAL_PORT_4
      80            0 : #define P5  CYHAL_PORT_5
      81            0 : #define P6  CYHAL_PORT_6
      82            0 : #define P7  CYHAL_PORT_7
      83            0 : #define P8  CYHAL_PORT_8
      84            0 : #define P9  CYHAL_PORT_9
      85            0 : #define P10 CYHAL_PORT_10
      86            0 : #define P11 CYHAL_PORT_11
      87            0 : #define P12 CYHAL_PORT_12
      88            0 : #define P13 CYHAL_PORT_13
      89            0 : #define P14 CYHAL_PORT_14
      90            0 : #define P15 CYHAL_PORT_15
      91            0 : #define P16 CYHAL_PORT_16
      92            0 : #define P17 CYHAL_PORT_17
      93            0 : #define P18 CYHAL_PORT_18
      94            0 : #define P19 CYHAL_PORT_19
      95            0 : #define P20 CYHAL_PORT_20
      96              : 
      97              : /* Returns CYHAL GPIO from Board device tree GPIO configuration
      98              :  * CYHAL_GET_GPIO(port_number, pin_number),
      99              :  * port_number = ((REG ADDR of node) - (REG ADDR of gpio_prt0)) / (REG SIZE of gpio_prt0)
     100              :  * pin_number  = DT_PHA_BY_IDX(node, gpios_prop, 0, pin)
     101              :  */
     102            0 : #define DT_GET_CYHAL_GPIO_FROM_DT_GPIOS(node, gpios_prop)                          \
     103              :         CYHAL_GET_GPIO(                                                            \
     104              :                 (DT_REG_ADDR_BY_IDX(DT_GPIO_CTLR_BY_IDX(node, gpios_prop, 0), 0) - \
     105              :                  DT_REG_ADDR_BY_IDX(DT_NODELABEL(gpio_prt0), 0)) /                 \
     106              :                 DT_REG_ADDR_BY_IDX(DT_NODELABEL(gpio_prt0), 1),                    \
     107              :                 DT_PHA_BY_IDX(node, gpios_prop, 0, pin)                            \
     108              :                 )
     109              : 
     110              : #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_IFX_CAT1_PINCTRL_H_ */
        

Generated by: LCOV version 2.0-1