]> Repositories - Adafruit_Blinka-hackapet.git/blob - src/adafruit_blinka/microcontroller/allwinner/h618/pin.py
ab32a88f6067f6465cd5649a38424c53e5c6966e
[Adafruit_Blinka-hackapet.git] / src / adafruit_blinka / microcontroller / allwinner / h618 / pin.py
1 # SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
2 #
3 # SPDX-License-Identifier: MIT
4 """Allwinner H618 Pin Names"""
5 import re
6 from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
7
8 def find_gpiochip_number(target_label):
9     try:
10         with open('/sys/kernel/debug/gpio', 'r') as f:
11             lines = f.readlines()
12     except FileNotFoundError:
13         print("The file /sys/kernel/debug/gpio does not exist.")
14         return None
15
16     gpiochip_number = None
17     for line in lines:
18         if target_label in line:
19             match = re.search(r'gpiochip(\d+)', line)
20             if match:
21                 gpiochip_number = match.group(1)
22                 break
23
24     return gpiochip_number
25
26 if find_gpiochip_number("300b000.pinctrl"):
27     __chip_num = 1
28 else:
29     __chip_num = 0
30
31 PC0 = Pin((__chip_num, 64))
32 SPI0_SCLK = PC0
33 PC1 = Pin((__chip_num, 65))
34 PC2 = Pin((__chip_num, 66))
35 SPI0_MOSI = PC2
36 PC3 = Pin((__chip_num, 67))
37 SPI0_CS0 = PC3
38 PC4 = Pin((__chip_num, 68))
39 SPI0_MISO = PC4
40 PC5 = Pin((__chip_num, 69))
41 PC6 = Pin((__chip_num, 70))
42 PC7 = Pin((__chip_num, 71))
43 PC8 = Pin((__chip_num, 72))
44 PC9 = Pin((__chip_num, 73))
45 PC10 = Pin((__chip_num, 74))
46 PC11 = Pin((__chip_num, 75))
47 PC12 = Pin((__chip_num, 76))
48 PC13 = Pin((__chip_num, 77))
49 PC14 = Pin((__chip_num, 78))
50 PC15 = Pin((__chip_num, 79))
51
52 PF0 = Pin((__chip_num, 160))
53 PF1 = Pin((__chip_num, 161))
54 PF2 = Pin((__chip_num, 162))
55 PF3 = Pin((__chip_num, 163))
56 PF4 = Pin((__chip_num, 164))
57 PF5 = Pin((__chip_num, 165))
58 PF6 = Pin((__chip_num, 166))
59
60 PG0 = Pin((__chip_num, 192))
61 PG1 = Pin((__chip_num, 193))
62 PG2 = Pin((__chip_num, 194))
63 PG3 = Pin((__chip_num, 195))
64 PG4 = Pin((__chip_num, 196))
65 PG5 = Pin((__chip_num, 197))
66 PG6 = Pin((__chip_num, 198))
67 UART1_TX = PG6
68 PG7 = Pin((__chip_num, 199))
69 UART1_RX = PG7
70 PG8 = Pin((__chip_num, 200))
71 PG9 = Pin((__chip_num, 201))
72 PG10 = Pin((__chip_num, 202))
73 PG11 = Pin((__chip_num, 203))
74 PG12 = Pin((__chip_num, 204))
75 PG13 = Pin((__chip_num, 205))
76 PG14 = Pin((__chip_num, 206))
77 PG15 = Pin((__chip_num, 207))
78 TWI4_SCL = PG15
79 PG16 = Pin((__chip_num, 208))
80 TWI4_SDA = PG16
81 PG17 = Pin((__chip_num, 209))
82 TWI3_SCL = PG17
83 PG18 = Pin((__chip_num, 210))
84 TWI3_SDA = PG18
85 PG19 = Pin((__chip_num, 211))
86 PWM1 = PG19
87
88 PH0 = Pin((__chip_num, 224))
89 PH1 = Pin((__chip_num, 225))
90 PH2 = Pin((__chip_num, 226))
91 UART5_TX = PH2
92 PH3 = Pin((__chip_num, 227))
93 UART5_RX = PH3
94 PH4 = Pin((__chip_num, 228))
95 PH5 = Pin((__chip_num, 229))
96 UART2_TX = PH5
97 SPI1_CS0 = PH5
98 PH6 = Pin((__chip_num, 230))
99 UART2_RX = PH6
100 SPI1_SCLK = PH6
101 PH7 = Pin((__chip_num, 231))
102 SPI1_MOSI = PH7
103 PH8 = Pin((__chip_num, 232))
104 SPI1_MISO = PH8
105 PH9 = Pin((__chip_num, 233))
106 SPI1_CS1 = PH9
107 PH10 = Pin((__chip_num, 234))
108
109 PI0 = Pin((__chip_num, 256))
110 PI1 = Pin((__chip_num, 257))
111 PI2 = Pin((__chip_num, 258))
112 PI3 = Pin((__chip_num, 259))
113 PI4 = Pin((__chip_num, 260))
114 PI5 = Pin((__chip_num, 261))
115 TWI0_SCL = PI5
116 PI6 = Pin((__chip_num, 262))
117 TWI0_SDA = PI6
118 PI7 = Pin((__chip_num, 263))
119 TWI1_SCL = PI7
120 PI8 = Pin((__chip_num, 264))
121 TWI1_SDA = PI8
122 PI9 = Pin((__chip_num, 265))
123 UART3_TX = PI9
124 PI10 = Pin((__chip_num, 266))
125 UART3_RX = PI10
126 PI11 = Pin((__chip_num, 267))
127 PI12 = Pin((__chip_num, 268))
128 PWM2 = PI12
129 PI13 = Pin((__chip_num, 269))
130 UART4_TX = PI13
131 PI14 = Pin((__chip_num, 270))
132 UART4_RX = PI14
133 PI15 = Pin((__chip_num, 271))
134 PI16 = Pin((__chip_num, 272))
135
136 i2cPorts = (
137     (0, TWI0_SCL, TWI0_SDA),
138     (1, TWI1_SCL, TWI1_SDA),
139     (3, TWI3_SCL, TWI3_SDA),
140     (4, TWI4_SCL, TWI4_SDA),
141 )
142 # ordered as spiId, sckId, mosiId, misoId
143 spiPorts = (
144     (0, SPI0_SCLK, SPI0_MOSI, SPI0_MISO),
145     (1, SPI1_SCLK, SPI1_MOSI, SPI1_MISO),
146 )
147 # ordered as uartId, txId, rxId
148 uartPorts = (
149     (1, UART1_TX, UART1_RX),
150     (2, UART2_TX, UART2_RX),
151     (3, UART3_TX, UART3_RX),
152     (4, UART4_TX, UART4_RX),
153     (5, UART5_TX, UART5_RX),
154 )
155
156 # SysFS pwm outputs, pwm channel and pin in first tuple
157 pwmOuts = [
158     ((0, 1), PWM1),
159     ((0, 2), PWM2),
160 ]