1 # SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
 
   3 # SPDX-License-Identifier: MIT
 
   4 """Pin definitions for the Beaglebone Black."""
 
   5 from adafruit_blinka.microcontroller.am335x import pin
 
   7 # initial pins, to mimic bonescript demo
 
  11 P8_3 = pin.P8_3  # GPIO1_6 - GPIO_38
 
  12 P8_4 = pin.P8_4  # GPIO1_7 - GPIO_39
 
  13 P8_5 = pin.P8_5  # GPIO1_2 - GPIO_34
 
  14 P8_6 = pin.P8_6  # GPIO1_3 - GPIO_35
 
  15 P8_7 = pin.P8_7  # TIMER4 - GPIO_66
 
  16 P8_8 = pin.P8_8  # TIMER7 - GPIO_67
 
  17 P8_9 = pin.P8_9  # TIMER5 - GPIO_69
 
  18 P8_10 = pin.P8_10  # TIMER6 - GPIO_68
 
  19 P8_11 = pin.P8_11  # GPIO1_13 - GPIO_45
 
  20 P8_12 = pin.P8_12  # GPIO1_12 - GPIO_44
 
  21 P8_13 = pin.P8_13  # EHRPWM2B - GPIO_23
 
  22 P8_14 = pin.P8_14  # GPIO0_26 - GPIO_26
 
  23 P8_15 = pin.P8_15  # GPIO1_15 - GPIO_47
 
  24 P8_16 = pin.P8_16  # GPIO1_14 - GPIO_46
 
  25 P8_17 = pin.P8_17  # GPIO0_27 - GPIO_27
 
  26 P8_18 = pin.P8_18  # GPIO2_1 - GPIO_65
 
  27 P8_19 = pin.P8_19  # EHRPWM2A - GPIO_22
 
  28 P8_20 = pin.P8_20  # GPIO1_31 - GPIO_63
 
  29 P8_21 = pin.P8_21  # GPIO1_30 - GPIO_62
 
  30 P8_22 = pin.P8_22  # GPIO1_5 - GPIO_37
 
  31 P8_23 = pin.P8_23  # GPIO1_4 - GPIO_36
 
  32 P8_24 = pin.P8_24  # GPIO1_1 - GPIO_33
 
  33 P8_25 = pin.P8_25  # GPIO1_0 - GPIO_32
 
  34 P8_26 = pin.P8_26  # GPIO1_29 - GPIO_61
 
  35 P8_27 = pin.P8_27  # GPIO2_22 - GPIO_86
 
  36 P8_28 = pin.P8_28  # GPIO2_24 - GPIO_88
 
  37 P8_29 = pin.P8_29  # GPIO2_23 - GPIO_87
 
  38 P8_30 = pin.P8_30  # GPIO2_25 - GPIO_89
 
  39 P8_31 = pin.P8_31  # UART5_CTSN - GPIO_10
 
  40 P8_32 = pin.P8_32  # UART5_RTSN - GPIO_11
 
  41 P8_33 = pin.P8_33  # UART4_RTSN - GPIO_9
 
  42 P8_34 = pin.P8_34  # UART3_RTSN - GPIO_81
 
  43 P8_35 = pin.P8_35  # UART4_CTSN - GPIO_8
 
  44 P8_36 = pin.P8_36  # UART3_CTSN - GPIO_80
 
  45 P8_37 = pin.P8_37  # UART5_TXD - GPIO_78
 
  46 P8_38 = pin.P8_38  # UART5_RXD - GPIO_79
 
  47 P8_39 = pin.P8_39  # GPIO2_12 - GPIO_76
 
  48 P8_40 = pin.P8_40  # GPIO2_13 - GPIO_77
 
  49 P8_41 = pin.P8_41  # GPIO2_10 - GPIO_74
 
  50 P8_42 = pin.P8_42  # GPIO2_11 - GPIO_75
 
  51 P8_43 = pin.P8_43  # GPIO2_8 - GPIO_72
 
  52 P8_44 = pin.P8_44  # GPIO2_9 - GPIO_73
 
  53 P8_45 = pin.P8_45  # GPIO2_6 - GPIO_70
 
  54 P8_46 = pin.P8_46  # GPIO2_7 - GPIO_71
 
  58 # P9_3 = VDD_3V3     # VDD_3V3
 
  59 # P9_4 = VDD_3V3     # VDD_3V3
 
  60 # P9_5 = VDD_5V      # VDD_5V
 
  61 # P9_6 = VDD_5V      # VDD_5V
 
  62 # P9_7 = SYS_5V      # SYS_5V
 
  63 # P9_8 = SYS_5V      # SYS_5V
 
  64 # P9_9 = PWR_BUT     # PWR_BUT
 
  65 # P9_10 = SYS_RESETN # SYS_RESETn
 
  66 P9_11 = pin.P9_11  # UART4_RXD - GPIO_30
 
  67 P9_12 = pin.P9_12  # GPIO1_28 - GPIO_60
 
  68 P9_13 = pin.P9_13  # UART4_TXD - GPIO_31
 
  69 P9_14 = pin.P9_14  # EHRPWM1A - GPIO_50
 
  70 P9_15 = pin.P9_15  # GPIO1_16 - GPIO_48
 
  71 P9_16 = pin.P9_16  # EHRPWM1B - GPIO_51
 
  72 P9_17 = pin.P9_17  # I2C1_SCL - GPIO_5
 
  73 P9_18 = pin.P9_18  # I2C1_SDA - GPIO_4
 
  74 P9_19 = pin.P9_19  # I2C2_SCL - GPIO_13
 
  75 P9_20 = pin.P9_20  # I2C2_SDA - GPIO_12
 
  76 P9_21 = pin.P9_21  # UART2_TXD - GPIO_3
 
  77 P9_22 = pin.P9_22  # UART2_RXD - GPIO_2
 
  78 P9_23 = pin.P9_23  # GPIO1_17 - GPIO_49
 
  79 P9_24 = pin.P9_24  # UART1_TXD - GPIO_15
 
  80 P9_25 = pin.P9_25  # GPIO3_21 - GPIO_117
 
  81 P9_26 = pin.P9_26  # UART1_RXD - GPIO_14
 
  82 P9_27 = pin.P9_27  # GPIO3_19 - GPIO_115
 
  83 P9_28 = pin.P9_28  # SPI1_CS0 - GPIO_113
 
  84 P9_29 = pin.P9_29  # SPI1_D0 - GPIO_111
 
  85 P9_30 = pin.P9_30  # SPI1_D1 - GPIO_112
 
  86 P9_31 = pin.P9_31  # SPI1_SCLK - GPIO_110
 
  87 # P9_32 = VDD_ADC    # VDD_ADC
 
  89 # P9_34 = GNDA_ADC   # GNDA_ADC
 
  96 P9_41 = pin.P9_41  # CLKOUT2 - GPIO_20
 
  97 P9_42 = pin.P9_42  # GPIO0_7 - GPIO_7
 
 100 # P9_45 = DGND       # DGND
 
 101 # P9_46 = DGND       # DGND
 
 103 # common to all beagles
 
 109 # I2C and SPI pins from:
 
 110 # src/adafruit_blinka/board/raspi_40pin.py
 
 126 SDA = pin.I2C2_SDA  # P9_19
 
 127 SCL = pin.I2C2_SCL  # P9_20
 
 129 # Refer to header default pin modes
 
 130 # http://beagleboard.org/static/images/cape-headers.png
 
 132 # P9_17 (SPI0_CSO => CE0) enables peripheral device
 
 133 # P9_18 (SPI0_D1 => MOSI) outputs data to peripheral device
 
 134 # P9_21 (SPIO_DO => MISO) receives data from peripheral device
 
 135 # P9_22 (SPI0_SCLK => SCLK) outputs clock signal
 
 137 # Use config-pin to set pin mode for SPI pins
 
 138 # https://github.com/beagleboard/bb.org-overlays/tree/master/tools/beaglebone-universal-io
 
 139 # config-pin p9.17 spi_cs
 
 140 # config-pin p9.18 spi
 
 141 # config-pin p9.21 spi
 
 142 # config-pin p9.22 spi_sclk
 
 144 CE0 = pin.SPI0_CS0  # P9_17
 
 145 MOSI = pin.SPI0_D1  # P9_18
 
 146 MISO = pin.SPI0_D0  # P9_21
 
 147 SCLK = pin.SPI0_SCLK  # P9_22
 
 148 # CircuitPython naming convention for SPI Clock
 
 153 # http://beagleboard.org/static/images/cape-headers-spi.png
 
 156 # MISO_1 P9.29 SPI1_D0
 
 157 # MOSI_1 P9.30 SPI1_D1
 
 158 # SCLK_1 P9.31 SPI_SCLK
 
 160 # SPI1 conflicts with HDMI Audio (McASP)
 
 163 # https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#U-Boot_Overlays
 
 165 # To Disable HDMI AUDIO, uncomment this line in /boot/uEnv.txt:
 
 166 # disable_uboot_overlay_audio=1
 
 168 # Set pin modes for SPI1 with:
 
 170 # config-pin p9.28 spi1_cs
 
 171 # config-pin p9.29 spi1
 
 172 # config-pin p9.30 spi1
 
 173 # config-pin p9.31 spi_sclk
 
 174 CE1 = pin.SPI1_CS0  # P9_28
 
 175 MOSI_1 = pin.SPI1_D0  # P9_29
 
 176 MISO_1 = pin.SPI1_D1  # P9_30
 
 177 SCLK_1 = pin.SPI1_SCLK  # P9_31
 
 178 # CircuitPython naming convention for SPI Clock