LCOV - code coverage report
Current view: top level - zephyr/dt-bindings/gpio - digilent-pmod.h Coverage Total Hit
Test: new.info Lines: 100.0 % 30 30
Test Date: 2025-09-05 20:47:19

            Line data    Source code
       1            1 : /*
       2              :  * Copyright (c) 2023 Elektronikutvecklingsbyrån EUB AB
       3              :  * SPDX-License-Identifier: Apache-2.0
       4              :  */
       5              : 
       6              : /**
       7              :  * @file
       8              :  * @brief Pmod GPIO nexus signal index definitions
       9              :  *
      10              :  * Defines meant to be used in conjunction with the "digilent,pmod"
      11              :  * GPIO nexus mapping.
      12              :  *
      13              :  * Example usage:
      14              :  *
      15              :  * @code{.dts}
      16              :  * &spi1 {
      17              :  *         cs-gpios = <&pmod0 PMOD_SPI_CS GPIO_ACTIVE_LOW>;
      18              :  *
      19              :  *         example_device: example-dev@0 {
      20              :  *                 compatible = "vnd,spi-device";
      21              :  *                 reg = <0>;
      22              :  *         };
      23              :  * };
      24              :  * @endcode
      25              :  */
      26              : 
      27              : #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_GPIO_DIGILENT_PMOD_H_
      28              : #define ZEPHYR_INCLUDE_DT_BINDINGS_GPIO_DIGILENT_PMOD_H_
      29              : 
      30              : /**
      31              :  * For reference see the Pmod interface specification:
      32              :  * https://digilent.com/reference/_media/reference/pmod/pmod-interface-specification-1_2_0.pdf
      33              :  */
      34              : 
      35              : /* GPIO */
      36              : 
      37              : /**
      38              :  * @brief IO[n] signal on a Pmod GPIO nexus node following
      39              :  * Pmod Interface Type 1 or 1A (GPIO or expanded GPIO)
      40              :  *
      41              :  * The Pmod GPIO nexus maps pin indexes 0..7 to IO1..IO8.
      42              :  */
      43            1 : #define PMOD_IO(n) ((n) - 1)
      44              : 
      45              : /* SPI */
      46              : 
      47              : /**
      48              :  * @brief SPI CS signal index on a Pmod GPIO nexus node.
      49              :  * Used with Pmod Interface Type 2 (SPI) peripherals.
      50              :  */
      51            1 : #define PMOD_SPI_CS     PMOD_IO(1)
      52              : 
      53              : /**
      54              :  * @brief SPI MOSI signal index on a Pmod GPIO nexus node.
      55              :  * Used with Pmod Interface Type 2 (SPI) peripherals.
      56              :  */
      57            1 : #define PMOD_SPI_MOSI   PMOD_IO(2)
      58              : 
      59              : /**
      60              :  * @brief SPI MISO signal index on a Pmod GPIO nexus node.
      61              :  * Used with Pmod Interface Type 2 (SPI) peripherals.
      62              :  */
      63            1 : #define PMOD_SPI_MISO   PMOD_IO(3)
      64              : 
      65              : /**
      66              :  * @brief SPI SCK signal index on a Pmod GPIO nexus node.
      67              :  * Used with Pmod Interface Type 2 (SPI) peripherals.
      68              :  */
      69            1 : #define PMOD_SPI_SCK    PMOD_IO(4)
      70              : 
      71              : /* Expanded SPI */
      72              : 
      73              : /**
      74              :  * @brief SPI CS signal index on a Pmod GPIO nexus node.
      75              :  * Used with Pmod Interface Type 2A (expanded SPI) peripherals.
      76              :  */
      77            1 : #define PMOD_EXP_SPI_CS         PMOD_IO(1)
      78              : 
      79              : /**
      80              :  * @brief SPI MOSI signal index on a Pmod GPIO nexus node.
      81              :  * Used with Pmod Interface Type 2A (expanded SPI) peripherals.
      82              :  */
      83            1 : #define PMOD_EXP_SPI_MOSI       PMOD_IO(2)
      84              : 
      85              : /**
      86              :  * @brief SPI MISO signal index on a Pmod GPIO nexus node.
      87              :  * Used with Pmod Interface Type 2A (expanded SPI) peripherals.
      88              :  */
      89            1 : #define PMOD_EXP_SPI_MISO       PMOD_IO(3)
      90              : 
      91              : /**
      92              :  * @brief SPI SCK signal index on a Pmod GPIO nexus node.
      93              :  * Used with Pmod Interface Type 2A (expanded SPI) peripherals.
      94              :  */
      95            1 : #define PMOD_EXP_SPI_SCK        PMOD_IO(4)
      96              : 
      97              : /**
      98              :  * @brief INT alternate signal index on a Pmod GPIO nexus node.
      99              :  * Used with Pmod Interface Type 2A (expanded SPI) peripherals.
     100              :  */
     101            1 : #define PMOD_EXP_SPI_INT        PMOD_IO(5)
     102              : 
     103              : /**
     104              :  * @brief RESET alternate signal index on a Pmod GPIO nexus node.
     105              :  * Used with Pmod Interface Type 2A (expanded SPI) peripherals.
     106              :  */
     107            1 : #define PMOD_EXP_SPI_RESET      PMOD_IO(6)
     108              : 
     109              : /**
     110              :  * @brief SPI CS2 alternate signal index on a Pmod GPIO nexus node.
     111              :  * Used with Pmod Interface Type 2A (expanded SPI) peripherals.
     112              :  */
     113            1 : #define PMOD_EXP_SPI_CS2        PMOD_IO(7)
     114              : 
     115              : /**
     116              :  * @brief SPI CS3 alternate signal index on a Pmod GPIO nexus node.
     117              :  * Used with Pmod Interface Type 2A (expanded SPI) peripherals.
     118              :  */
     119            1 : #define PMOD_EXP_SPI_CS3        PMOD_IO(8)
     120              : 
     121              : /* Expanded UART */
     122              : 
     123              : /**
     124              :  * @brief INT alternate signal index on a Pmod GPIO nexus node.
     125              :  * Used with Pmod Interface Type 3A (expanded UART) peripherals.
     126              :  */
     127            1 : #define PMOD_EXP_UART_INT       PMOD_IO(5)
     128              : 
     129              : /**
     130              :  * @brief RESET alternate signal index on a Pmod GPIO nexus node.
     131              :  * Used with Pmod Interface Type 3A (expanded UART) peripherals.
     132              :  */
     133            1 : #define PMOD_EXP_UART_RESET     PMOD_IO(6)
     134              : 
     135              : /* H-bridge */
     136              : 
     137              : /**
     138              :  * @brief DIR signal index on a Pmod GPIO nexus node.
     139              :  * Used with Pmod Interface Type 4 (H-bridge) peripherals.
     140              :  */
     141            1 : #define PMOD_HBRIDGE_DIR        PMOD_IO(1)
     142              : 
     143              : /**
     144              :  * @brief EN signal index on a Pmod GPIO nexus node.
     145              :  * Used with Pmod Interface Type 4 (H-bridge) peripherals.
     146              :  */
     147            1 : #define PMOD_HBRIDGE_EN         PMOD_IO(2)
     148              : 
     149              : /* Dual H-bridge */
     150              : 
     151              : /**
     152              :  * @brief DIR1 signal index on a Pmod GPIO nexus node.
     153              :  * Used with Pmod Interface Type 5 (dual H-bridge) peripherals.
     154              :  */
     155            1 : #define PMOD_DUAL_HBRIDGE_DIR1  PMOD_IO(1)
     156              : 
     157              : /**
     158              :  * @brief EN1 signal index on a Pmod GPIO nexus node.
     159              :  * Used with Pmod Interface Type 5 (dual H-bridge) peripherals.
     160              :  */
     161            1 : #define PMOD_DUAL_HBRIDGE_EN1   PMOD_IO(2)
     162              : 
     163              : /**
     164              :  * @brief DIR2 signal index on a Pmod GPIO nexus node.
     165              :  * Used with Pmod Interface Type 5 (dual H-bridge) peripherals.
     166              :  */
     167            1 : #define PMOD_DUAL_HBRIDGE_DIR2  PMOD_IO(3)
     168              : 
     169              : /**
     170              :  * @brief EN2 signal index on a Pmod GPIO nexus node.
     171              :  * Used with Pmod Interface Type 5 (dual H-bridge) peripherals.
     172              :  */
     173            1 : #define PMOD_DUAL_HBRIDGE_EN2   PMOD_IO(4)
     174              : 
     175              : /* Expanded dual H-bridge */
     176              : 
     177              : /**
     178              :  * @brief DIR1 signal index on a Pmod GPIO nexus node.
     179              :  * Used with Pmod Interface Type 5A (expanded dual H-bridge) peripherals.
     180              :  */
     181            1 : #define PMOD_EXP_DUAL_HBRIDGE_DIR1      PMOD_IO(1)
     182              : 
     183              : /**
     184              :  * @brief EN1 signal index on a Pmod GPIO nexus node.
     185              :  * Used with Pmod Interface Type 5A (expanded dual H-bridge) peripherals.
     186              :  */
     187            1 : #define PMOD_EXP_DUAL_HBRIDGE_EN1       PMOD_IO(2)
     188              : 
     189              : /**
     190              :  * @brief DIR2 signal index on a Pmod GPIO nexus node.
     191              :  * Used with Pmod Interface Type 5A (expanded dual H-bridge) peripherals.
     192              :  */
     193            1 : #define PMOD_EXP_DUAL_HBRIDGE_DIR2      PMOD_IO(5)
     194              : 
     195              : /**
     196              :  * @brief EN2 signal index on a Pmod GPIO nexus node.
     197              :  * Used with Pmod Interface Type 5A (expanded dual H-bridge) peripherals.
     198              :  */
     199            1 : #define PMOD_EXP_DUAL_HBRIDGE_EN2       PMOD_IO(6)
     200              : 
     201              : /* I2C */
     202              : 
     203              : /**
     204              :  * @brief INT signal index on a Pmod GPIO nexus node.
     205              :  * Used with Pmod Interface Type 6 (I2C) peripherals.
     206              :  */
     207            1 : #define PMOD_I2C_INT    PMOD_IO(1)
     208              : 
     209              : /**
     210              :  * @brief RESET signal index on a Pmod GPIO nexus node.
     211              :  * Used with Pmod Interface Type 6 (I2C) peripherals.
     212              :  */
     213            1 : #define PMOD_I2C_RESET  PMOD_IO(2)
     214              : 
     215              : /**
     216              :  * @brief SCL signal index on a Pmod GPIO nexus node.
     217              :  * Used with Pmod Interface Type 6 (I2C) peripherals.
     218              :  */
     219            1 : #define PMOD_I2C_SCL    PMOD_IO(3)
     220              : 
     221              : /**
     222              :  * @brief SDA signal index on a Pmod GPIO nexus node.
     223              :  * Used with Pmod Interface Type 6 (I2C) peripherals.
     224              :  */
     225            1 : #define PMOD_I2C_SDA    PMOD_IO(4)
     226              : 
     227              : #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_GPIO_DIGILENT_PMOD_H_ */
        

Generated by: LCOV version 2.0-1