1 # SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
 
   3 # SPDX-License-Identifier: MIT
 
   4 """Allwinner H618 Pin Names"""
 
   6 from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
 
   9 def find_gpiochip_number(target_label):
 
  10     """Get correct gpiochip number, legacy kernel and mainline kernel are different"""
 
  12         with open("/sys/kernel/debug/gpio", "r") as f:
 
  14     except FileNotFoundError:
 
  15         print("The file /sys/kernel/debug/gpio does not exist.")
 
  18     gpiochip_number = None
 
  20         if target_label in line:
 
  21             match = re.search(r"gpiochip(\d+)", line)
 
  23                 gpiochip_number = match.group(1)
 
  26     return gpiochip_number
 
  29 if find_gpiochip_number("300b000.pinctrl"):
 
  34 PC0 = Pin((__chip_num, 64))
 
  36 PC1 = Pin((__chip_num, 65))
 
  37 PC2 = Pin((__chip_num, 66))
 
  39 PC3 = Pin((__chip_num, 67))
 
  41 PC4 = Pin((__chip_num, 68))
 
  43 PC5 = Pin((__chip_num, 69))
 
  44 PC6 = Pin((__chip_num, 70))
 
  45 PC7 = Pin((__chip_num, 71))
 
  46 PC8 = Pin((__chip_num, 72))
 
  47 PC9 = Pin((__chip_num, 73))
 
  48 PC10 = Pin((__chip_num, 74))
 
  49 PC11 = Pin((__chip_num, 75))
 
  50 PC12 = Pin((__chip_num, 76))
 
  51 PC13 = Pin((__chip_num, 77))
 
  52 PC14 = Pin((__chip_num, 78))
 
  53 PC15 = Pin((__chip_num, 79))
 
  55 PF0 = Pin((__chip_num, 160))
 
  56 PF1 = Pin((__chip_num, 161))
 
  57 PF2 = Pin((__chip_num, 162))
 
  58 PF3 = Pin((__chip_num, 163))
 
  59 PF4 = Pin((__chip_num, 164))
 
  60 PF5 = Pin((__chip_num, 165))
 
  61 PF6 = Pin((__chip_num, 166))
 
  63 PG0 = Pin((__chip_num, 192))
 
  64 PG1 = Pin((__chip_num, 193))
 
  65 PG2 = Pin((__chip_num, 194))
 
  66 PG3 = Pin((__chip_num, 195))
 
  67 PG4 = Pin((__chip_num, 196))
 
  68 PG5 = Pin((__chip_num, 197))
 
  69 PG6 = Pin((__chip_num, 198))
 
  71 PG7 = Pin((__chip_num, 199))
 
  73 PG8 = Pin((__chip_num, 200))
 
  74 PG9 = Pin((__chip_num, 201))
 
  75 PG10 = Pin((__chip_num, 202))
 
  76 PG11 = Pin((__chip_num, 203))
 
  77 PG12 = Pin((__chip_num, 204))
 
  78 PG13 = Pin((__chip_num, 205))
 
  79 PG14 = Pin((__chip_num, 206))
 
  80 PG15 = Pin((__chip_num, 207))
 
  82 PG16 = Pin((__chip_num, 208))
 
  84 PG17 = Pin((__chip_num, 209))
 
  86 PG18 = Pin((__chip_num, 210))
 
  88 PG19 = Pin((__chip_num, 211))
 
  91 PH0 = Pin((__chip_num, 224))
 
  92 PH1 = Pin((__chip_num, 225))
 
  93 PH2 = Pin((__chip_num, 226))
 
  95 PH3 = Pin((__chip_num, 227))
 
  97 PH4 = Pin((__chip_num, 228))
 
  98 PH5 = Pin((__chip_num, 229))
 
 101 PH6 = Pin((__chip_num, 230))
 
 104 PH7 = Pin((__chip_num, 231))
 
 106 PH8 = Pin((__chip_num, 232))
 
 108 PH9 = Pin((__chip_num, 233))
 
 110 PH10 = Pin((__chip_num, 234))
 
 112 PI0 = Pin((__chip_num, 256))
 
 113 PI1 = Pin((__chip_num, 257))
 
 114 PI2 = Pin((__chip_num, 258))
 
 115 PI3 = Pin((__chip_num, 259))
 
 116 PI4 = Pin((__chip_num, 260))
 
 117 PI5 = Pin((__chip_num, 261))
 
 119 PI6 = Pin((__chip_num, 262))
 
 121 PI7 = Pin((__chip_num, 263))
 
 123 PI8 = Pin((__chip_num, 264))
 
 125 PI9 = Pin((__chip_num, 265))
 
 127 PI10 = Pin((__chip_num, 266))
 
 129 PI11 = Pin((__chip_num, 267))
 
 130 PI12 = Pin((__chip_num, 268))
 
 132 PI13 = Pin((__chip_num, 269))
 
 134 PI14 = Pin((__chip_num, 270))
 
 136 PI15 = Pin((__chip_num, 271))
 
 137 PI16 = Pin((__chip_num, 272))
 
 140     (0, TWI0_SCL, TWI0_SDA),
 
 141     (1, TWI1_SCL, TWI1_SDA),
 
 142     (3, TWI3_SCL, TWI3_SDA),
 
 143     (4, TWI4_SCL, TWI4_SDA),
 
 145 # ordered as spiId, sckId, mosiId, misoId
 
 147     (0, SPI0_SCLK, SPI0_MOSI, SPI0_MISO),
 
 148     (1, SPI1_SCLK, SPI1_MOSI, SPI1_MISO),
 
 150 # ordered as uartId, txId, rxId
 
 152     (1, UART1_TX, UART1_RX),
 
 153     (2, UART2_TX, UART2_RX),
 
 154     (3, UART3_TX, UART3_RX),
 
 155     (4, UART4_TX, UART4_RX),
 
 156     (5, UART5_TX, UART5_RX),
 
 159 # SysFS pwm outputs, pwm channel and pin in first tuple