]> Repositories - Adafruit_Blinka-hackapet.git/blob - src/adafruit_blinka/microcontroller/allwinner/h618/pin.py
fix Missing function or method docstring (missing-function-docstring)
[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     """Get correct gpiochip number, legacy kernel and mainline kernel are different"""
10     try:
11         with open('/sys/kernel/debug/gpio', 'r') as f:
12             lines = f.readlines()
13     except FileNotFoundError:
14         print("The file /sys/kernel/debug/gpio does not exist.")
15         return None
16
17     gpiochip_number = None
18     for line in lines:
19         if target_label in line:
20             match = re.search(r'gpiochip(\d+)', line)
21             if match:
22                 gpiochip_number = match.group(1)
23                 break
24
25     return gpiochip_number
26
27 if find_gpiochip_number("300b000.pinctrl"):
28     __chip_num = 1
29 else:
30     __chip_num = 0
31
32 PC0 = Pin((__chip_num, 64))
33 SPI0_SCLK = PC0
34 PC1 = Pin((__chip_num, 65))
35 PC2 = Pin((__chip_num, 66))
36 SPI0_MOSI = PC2
37 PC3 = Pin((__chip_num, 67))
38 SPI0_CS0 = PC3
39 PC4 = Pin((__chip_num, 68))
40 SPI0_MISO = PC4
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))
52
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))
60
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))
68 UART1_TX = PG6
69 PG7 = Pin((__chip_num, 199))
70 UART1_RX = PG7
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))
79 TWI4_SCL = PG15
80 PG16 = Pin((__chip_num, 208))
81 TWI4_SDA = PG16
82 PG17 = Pin((__chip_num, 209))
83 TWI3_SCL = PG17
84 PG18 = Pin((__chip_num, 210))
85 TWI3_SDA = PG18
86 PG19 = Pin((__chip_num, 211))
87 PWM1 = PG19
88
89 PH0 = Pin((__chip_num, 224))
90 PH1 = Pin((__chip_num, 225))
91 PH2 = Pin((__chip_num, 226))
92 UART5_TX = PH2
93 PH3 = Pin((__chip_num, 227))
94 UART5_RX = PH3
95 PH4 = Pin((__chip_num, 228))
96 PH5 = Pin((__chip_num, 229))
97 UART2_TX = PH5
98 SPI1_CS0 = PH5
99 PH6 = Pin((__chip_num, 230))
100 UART2_RX = PH6
101 SPI1_SCLK = PH6
102 PH7 = Pin((__chip_num, 231))
103 SPI1_MOSI = PH7
104 PH8 = Pin((__chip_num, 232))
105 SPI1_MISO = PH8
106 PH9 = Pin((__chip_num, 233))
107 SPI1_CS1 = PH9
108 PH10 = Pin((__chip_num, 234))
109
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))
116 TWI0_SCL = PI5
117 PI6 = Pin((__chip_num, 262))
118 TWI0_SDA = PI6
119 PI7 = Pin((__chip_num, 263))
120 TWI1_SCL = PI7
121 PI8 = Pin((__chip_num, 264))
122 TWI1_SDA = PI8
123 PI9 = Pin((__chip_num, 265))
124 UART3_TX = PI9
125 PI10 = Pin((__chip_num, 266))
126 UART3_RX = PI10
127 PI11 = Pin((__chip_num, 267))
128 PI12 = Pin((__chip_num, 268))
129 PWM2 = PI12
130 PI13 = Pin((__chip_num, 269))
131 UART4_TX = PI13
132 PI14 = Pin((__chip_num, 270))
133 UART4_RX = PI14
134 PI15 = Pin((__chip_num, 271))
135 PI16 = Pin((__chip_num, 272))
136
137 i2cPorts = (
138     (0, TWI0_SCL, TWI0_SDA),
139     (1, TWI1_SCL, TWI1_SDA),
140     (3, TWI3_SCL, TWI3_SDA),
141     (4, TWI4_SCL, TWI4_SDA),
142 )
143 # ordered as spiId, sckId, mosiId, misoId
144 spiPorts = (
145     (0, SPI0_SCLK, SPI0_MOSI, SPI0_MISO),
146     (1, SPI1_SCLK, SPI1_MOSI, SPI1_MISO),
147 )
148 # ordered as uartId, txId, rxId
149 uartPorts = (
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),
155 )
156
157 # SysFS pwm outputs, pwm channel and pin in first tuple
158 pwmOuts = [
159     ((0, 1), PWM1),
160     ((0, 2), PWM2),
161 ]