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

          Line data    Source code
       1           0 : /*
       2             :  * Copyright (c) 2024 Silicon Labs
       3             :  * SPDX-License-Identifier: Apache-2.0
       4             :  */
       5             : 
       6             : #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_SILABS_PINCTRL_DBUS_H_
       7             : #define ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_SILABS_PINCTRL_DBUS_H_
       8             : 
       9             : #include <zephyr/dt-bindings/dt-util.h>
      10             : 
      11             : /*
      12             :  * Silabs Series 2 DBUS configuration is encoded in a 32-bit bitfield organized as follows:
      13             :  *
      14             :  * 31..29: Reserved
      15             :  * 28..24: Route register offset in words from peripheral config (offset of <fun>ROUTE
      16             :  *         register in GPIO_<periph>ROUTE_TypeDef)
      17             :  * 23..19: Enable bit (offset into ROUTEEN register for given function)
      18             :  * 18    : Enable bit presence (some inputs are auto-enabled)
      19             :  * 17..8 : Peripheral config offset in words from DBUS base within GPIO (offset of <periph>ROUTE[n]
      20             :  *         register in GPIO_TypeDef minus offset of first route register [DBGROUTEPEN, 0x440])
      21             :  *  7..4 : GPIO pin
      22             :  *  3..0 : GPIO port
      23             :  */
      24             : 
      25           0 : #define SILABS_PINCTRL_GPIO_PORT_MASK   0x0000000FUL
      26           0 : #define SILABS_PINCTRL_GPIO_PIN_MASK    0x000000F0UL
      27           0 : #define SILABS_PINCTRL_PERIPH_BASE_MASK 0x0003FF00UL
      28           0 : #define SILABS_PINCTRL_HAVE_EN_MASK     0x00040000UL
      29           0 : #define SILABS_PINCTRL_EN_BIT_MASK      0x00F80000UL
      30           0 : #define SILABS_PINCTRL_ROUTE_MASK       0x1F000000UL
      31             : 
      32           0 : #define SILABS_DBUS(port, pin, periph_base, en_present, en_bit, route)                             \
      33             :         (FIELD_PREP(SILABS_PINCTRL_GPIO_PORT_MASK, port) |                                         \
      34             :          FIELD_PREP(SILABS_PINCTRL_GPIO_PIN_MASK, pin) |                                           \
      35             :          FIELD_PREP(SILABS_PINCTRL_PERIPH_BASE_MASK, periph_base) |                                \
      36             :          FIELD_PREP(SILABS_PINCTRL_HAVE_EN_MASK, en_present) |                                     \
      37             :          FIELD_PREP(SILABS_PINCTRL_EN_BIT_MASK, en_bit) |                                          \
      38             :          FIELD_PREP(SILABS_PINCTRL_ROUTE_MASK, route))
      39             : 
      40             : #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_SILABS_PINCTRL_DBUS_H_ */

Generated by: LCOV version 1.14