LCOV - code coverage report
Current view: top level - zephyr/dt-bindings/gpio - digilent-pmod.h Hit Total Coverage
Test: new.info Lines: 30 30 100.0 %
Date: 2024-12-21 18:13:37

          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 1.14