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
8 def find_gpiochip_number(target_label):
9 """Get correct gpiochip number, legacy kernel and mainline kernel are different"""
11 with open('/sys/kernel/debug/gpio', 'r') as f:
13 except FileNotFoundError:
14 print("The file /sys/kernel/debug/gpio does not exist.")
17 gpiochip_number = None
19 if target_label in line:
20 match = re.search(r'gpiochip(\d+)', line)
22 gpiochip_number = match.group(1)
25 return gpiochip_number
27 if find_gpiochip_number("300b000.pinctrl"):
32 PC0 = Pin((__chip_num, 64))
34 PC1 = Pin((__chip_num, 65))
35 PC2 = Pin((__chip_num, 66))
37 PC3 = Pin((__chip_num, 67))
39 PC4 = Pin((__chip_num, 68))
41 PC5 = Pin((__chip_num, 69))
42 PC6 = Pin((__chip_num, 70))
43 PC7 = Pin((__chip_num, 71))
44 PC8 = Pin((__chip_num, 72))
45 PC9 = Pin((__chip_num, 73))
46 PC10 = Pin((__chip_num, 74))
47 PC11 = Pin((__chip_num, 75))
48 PC12 = Pin((__chip_num, 76))
49 PC13 = Pin((__chip_num, 77))
50 PC14 = Pin((__chip_num, 78))
51 PC15 = Pin((__chip_num, 79))
53 PF0 = Pin((__chip_num, 160))
54 PF1 = Pin((__chip_num, 161))
55 PF2 = Pin((__chip_num, 162))
56 PF3 = Pin((__chip_num, 163))
57 PF4 = Pin((__chip_num, 164))
58 PF5 = Pin((__chip_num, 165))
59 PF6 = Pin((__chip_num, 166))
61 PG0 = Pin((__chip_num, 192))
62 PG1 = Pin((__chip_num, 193))
63 PG2 = Pin((__chip_num, 194))
64 PG3 = Pin((__chip_num, 195))
65 PG4 = Pin((__chip_num, 196))
66 PG5 = Pin((__chip_num, 197))
67 PG6 = Pin((__chip_num, 198))
69 PG7 = Pin((__chip_num, 199))
71 PG8 = Pin((__chip_num, 200))
72 PG9 = Pin((__chip_num, 201))
73 PG10 = Pin((__chip_num, 202))
74 PG11 = Pin((__chip_num, 203))
75 PG12 = Pin((__chip_num, 204))
76 PG13 = Pin((__chip_num, 205))
77 PG14 = Pin((__chip_num, 206))
78 PG15 = Pin((__chip_num, 207))
80 PG16 = Pin((__chip_num, 208))
82 PG17 = Pin((__chip_num, 209))
84 PG18 = Pin((__chip_num, 210))
86 PG19 = Pin((__chip_num, 211))
89 PH0 = Pin((__chip_num, 224))
90 PH1 = Pin((__chip_num, 225))
91 PH2 = Pin((__chip_num, 226))
93 PH3 = Pin((__chip_num, 227))
95 PH4 = Pin((__chip_num, 228))
96 PH5 = Pin((__chip_num, 229))
99 PH6 = Pin((__chip_num, 230))
102 PH7 = Pin((__chip_num, 231))
104 PH8 = Pin((__chip_num, 232))
106 PH9 = Pin((__chip_num, 233))
108 PH10 = Pin((__chip_num, 234))
110 PI0 = Pin((__chip_num, 256))
111 PI1 = Pin((__chip_num, 257))
112 PI2 = Pin((__chip_num, 258))
113 PI3 = Pin((__chip_num, 259))
114 PI4 = Pin((__chip_num, 260))
115 PI5 = Pin((__chip_num, 261))
117 PI6 = Pin((__chip_num, 262))
119 PI7 = Pin((__chip_num, 263))
121 PI8 = Pin((__chip_num, 264))
123 PI9 = Pin((__chip_num, 265))
125 PI10 = Pin((__chip_num, 266))
127 PI11 = Pin((__chip_num, 267))
128 PI12 = Pin((__chip_num, 268))
130 PI13 = Pin((__chip_num, 269))
132 PI14 = Pin((__chip_num, 270))
134 PI15 = Pin((__chip_num, 271))
135 PI16 = Pin((__chip_num, 272))
138 (0, TWI0_SCL, TWI0_SDA),
139 (1, TWI1_SCL, TWI1_SDA),
140 (3, TWI3_SCL, TWI3_SDA),
141 (4, TWI4_SCL, TWI4_SDA),
143 # ordered as spiId, sckId, mosiId, misoId
145 (0, SPI0_SCLK, SPI0_MOSI, SPI0_MISO),
146 (1, SPI1_SCLK, SPI1_MOSI, SPI1_MISO),
148 # ordered as uartId, txId, rxId
150 (1, UART1_TX, UART1_RX),
151 (2, UART2_TX, UART2_RX),
152 (3, UART3_TX, UART3_RX),
153 (4, UART4_TX, UART4_RX),
154 (5, UART5_TX, UART5_RX),
157 # SysFS pwm outputs, pwm channel and pin in first tuple