# Copyright (c) 2022 Joylab AG
# SPDX-License-Identifier: Apache-2.0

description: |
    GPIO pins exposed on Arduino Nano (R3) headers.

    The Arduino Nano layout provides two headers on opposite edges of the board.

    * A 15-pin header with mostly digital signals. The additional NRST (pin3)
      and GND (pin 4) pins are not exposed by this binding.
    * A 15-pin Analog Input and power supply header. This has analog input
      signals labeled from A0 through A7, as well a digital signal D13. The
      power supply and reset pins are not exposed by this binding.

    This binding provides a nexus mapping for 22 pins where parent pins 0
    through 13 correspond to D0 through D13, and parent pins 14 through 21
    correspond to A0 through A7, as depicted below.

        1  D1                   VIN    -
        0  D0                   GND    -
        -  RESET                RESET  -
        -  GND                  5V     -
        2  D2                   A7/D21 21
        3  D3                   A6/D20 20
        4  D4                   A5/D19 19
        5  D5                   A4/D18 18
        6  D6                   A3/D17 17
        7  D7                   A2/D16 16
        8  D8                   A1/D15 15
        9  D9                   A0/D14 14
        10 D10                  AREF   -
        11 D11                  3V3    -
        12 D12                  D13    13


compatible: "arduino-nano-header-r3"

include: [gpio-nexus.yaml, base.yaml]
