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

          Line data    Source code
       1           0 : /*
       2             :  * Copyright (c) 2021 Telink Semiconductor
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : 
       7             : #ifndef ZEPHYR_B91_PINCTRL_COMMON_H_
       8             : #define ZEPHYR_B91_PINCTRL_COMMON_H_
       9             : 
      10             : /* IDs for GPIO functions */
      11             : 
      12           0 : #define B91_FUNC_A       0x00
      13           0 : #define B91_FUNC_B       0x01
      14           0 : #define B91_FUNC_C       0x02
      15             : 
      16             : /* IDs for GPIO Ports  */
      17             : 
      18           0 : #define B91_PORT_A       0x00
      19           0 : #define B91_PORT_B       0x01
      20           0 : #define B91_PORT_C       0x02
      21           0 : #define B91_PORT_D       0x03
      22           0 : #define B91_PORT_E       0x04
      23             : 
      24             : /* IDs for GPIO Pins */
      25             : 
      26           0 : #define B91_PIN_0        0x01
      27           0 : #define B91_PIN_1        0x02
      28           0 : #define B91_PIN_2        0x04
      29           0 : #define B91_PIN_3        0x08
      30           0 : #define B91_PIN_4        0x10
      31           0 : #define B91_PIN_5        0x20
      32           0 : #define B91_PIN_6        0x40
      33           0 : #define B91_PIN_7        0x80
      34             : 
      35             : /* B91 pinctrl pull-up/down */
      36             : 
      37           0 : #define B91_PULL_NONE    0
      38           0 : #define B91_PULL_DOWN    2
      39           0 : #define B91_PULL_UP      3
      40             : 
      41             : /* Pin function positions */
      42             : 
      43           0 : #define B91_PIN_0_FUNC_POS    0x00
      44           0 : #define B91_PIN_1_FUNC_POS    0x02
      45           0 : #define B91_PIN_2_FUNC_POS    0x04
      46           0 : #define B91_PIN_3_FUNC_POS    0x06
      47           0 : #define B91_PIN_4_FUNC_POS    0x00
      48           0 : #define B91_PIN_5_FUNC_POS    0x02
      49           0 : #define B91_PIN_6_FUNC_POS    0x04
      50           0 : #define B91_PIN_7_FUNC_POS    0x06
      51             : 
      52             : /* B91 pin configuration bit field positions and masks */
      53             : 
      54           0 : #define B91_PULL_POS     19
      55           0 : #define B91_PULL_MSK     0x3
      56           0 : #define B91_FUNC_POS     16
      57           0 : #define B91_FUNC_MSK     0x3
      58           0 : #define B91_PORT_POS     8
      59           0 : #define B91_PORT_MSK     0xFF
      60           0 : #define B91_PIN_POS      0
      61           0 : #define B91_PIN_MSK      0xFFFF
      62           0 : #define B91_PIN_ID_MSK   0xFF
      63             : 
      64             : /* Setters and getters */
      65             : 
      66           0 : #define B91_PINMUX_SET(port, pin, func)   ((func << B91_FUNC_POS) | \
      67             :                                            (port << B91_PORT_POS) | \
      68             :                                            (pin << B91_PIN_POS))
      69           0 : #define B91_PINMUX_GET_PULL(pinmux)       ((pinmux >> B91_PULL_POS) & B91_PULL_MSK)
      70           0 : #define B91_PINMUX_GET_FUNC(pinmux)       ((pinmux >> B91_FUNC_POS) & B91_FUNC_MSK)
      71           0 : #define B91_PINMUX_GET_PIN(pinmux)        ((pinmux >> B91_PIN_POS) & B91_PIN_MSK)
      72           0 : #define B91_PINMUX_GET_PIN_ID(pinmux)     ((pinmux >> B91_PIN_POS) & B91_PIN_ID_MSK)
      73             : 
      74             : #endif  /* ZEPHYR_B91_PINCTRL_COMMON_H_ */

Generated by: LCOV version 1.14