]> Repositories - Adafruit_Blinka-hackapet.git/blob - src/adafruit_blinka/microcontroller/allwinner/a20/pin.py
7e2d41de809552a3465b859fbf45c18651828aa6
[Adafruit_Blinka-hackapet.git] / src / adafruit_blinka / microcontroller / allwinner / a20 / pin.py
1 # SPDX-FileCopyrightText: 2023 Xenokrates
2 #
3 # SPDX-License-Identifier: MIT
4 """Allwinner A20 pin names"""
5 from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
6
7 # Pin descriptions at https://linux-sunxi.org/A20/PIO
8
9 PA0 = Pin(0)
10 PA1 = Pin(1)
11 PA2 = Pin(2)
12 UART2_TX = PA2
13 PA3 = Pin(3)
14 UART2_RX = PA3
15 PA6 = Pin(6)
16 PA7 = Pin(7)
17 PA8 = Pin(8)
18 PA9 = Pin(9)
19 PA10 = Pin(10)
20 UART1_TX = PA10
21 PA11 = Pin(11)
22 UART1_RX = PA11
23 PA12 = Pin(12)
24 PA13 = Pin(13)
25 PA14 = Pin(14)
26 PA15 = Pin(15)
27 PA16 = Pin(16)
28 PA17 = Pin(17)
29
30 PB0 = Pin(32)
31 TWI0_SCK = PB0
32 PB1 = Pin(33)
33 TWI0_SDA = PB1
34 PB2 = Pin(34)
35 PWM0 = PB2
36 PB3 = Pin(35)
37 IR0_TX = PB3
38 PB4 = Pin(36)
39 IR0_RX = PB4
40 PB5 = Pin(37)
41 PB6 = Pin(38)
42 PB7 = Pin(39)
43 PB8 = Pin(40)
44 PB12 = Pin(44)
45 PB13 = Pin(45)
46 PB18 = Pin(50)
47 TWI1_SCK = PB18
48 PB19 = Pin(51)
49 TWI1_SDA = PB19
50 PB20 = Pin(52)
51 TWI2_SCK = PB20
52 PB21 = Pin(53)
53 TWI2_SDA = PB21
54 PB22 = Pin(54)
55 UART0_TX = PB22
56 PB23 = Pin(55)
57 UART0_RX = PB23
58
59 PC19 = Pin(83)
60 SPI2_CS0 = PC19
61 PC20 = Pin(84)
62 SPI2_SCLK = PC20
63 PC21 = Pin(85)
64 SPI2_MOSI = PC21
65 PC22 = Pin(86)
66 SPI2_MISO = PC22
67
68 PG2 = Pin(194)
69
70 PH2 = Pin(226)
71 PH4 = Pin(228)
72 UART4_TX = PH4
73 PH5 = Pin(229)
74 UART4_RX = PH5
75 PH6 = Pin(230)
76 UART5_TX = PH6
77 PH7 = Pin(231)
78 UART5_RX = PH7
79 PH8 = Pin(232)
80 PH9 = Pin(233)
81 PH10 = Pin(234)
82 PH11 = Pin(235)
83 PH12 = Pin(236)
84 PH13 = Pin(237)
85 PH14 = Pin(238)
86 PH15 = Pin(239)
87 PH16 = Pin(240)
88 PH17 = Pin(241)
89 PH18 = Pin(242)
90 PH19 = Pin(243)
91 PH20 = Pin(244)
92 CAN_TX = PH20
93 PH21 = Pin(245)
94 CAN_RX = PH21
95 PH24 = Pin(248)
96
97 PI0 = Pin(256)
98 TWI3_SCK = PI0
99 PI1 = Pin(257)
100 TWI3_SDA = PI1
101 PI3 = Pin(259)
102 PWM1 = PI3
103 PI10 = Pin(266)
104 SPI0_CS0 = PI10
105 PI11 = Pin(267)
106 SPI0_SCLK = PI11
107 PI12 = Pin(268)
108 SPI0_MOSI = PI12
109 UART6_TX = PI12
110 PI13 = Pin(269)
111 SPI0_MISO = PI13
112 UART6_RX = PI13
113 PI14 = Pin(270)
114 SPI0_CS1 = PI14
115 PI16 = Pin(272)
116 UART2_RTS = PI16
117 PI17 = Pin(273)
118 UART2_CTS = PI17
119 PI18 = Pin(274)
120 UART2_TX = PI18
121 PI19 = Pin(275)
122 UART2_RX = PI19
123 PI20 = Pin(276)
124 UART7_TX = PI20
125 PI21 = Pin(277)
126 UART7_RX = PI21
127
128 # A10/A20 has a touch panel controller which can be configured to operate
129 # as four seperate adc chanels, providing 12-bit resolution.
130 XP_TP = 1 
131 XN_TP = 2
132 YP_TP = 3
133 YN_TP = 4
134
135 # SysFS pwm outputs, pwm channel and pin in first tuple
136 pwmOuts = (
137     ((0, 0), PWM0),
138     ((0, 1), PWM1),
139 )
140
141 # ordered as i2cId, sclId, sdaId
142 i2cPorts = (
143     (0, TWI0_SCK, TWI0_SDA),
144     (1, TWI1_SCK, TWI1_SDA),
145     (2, TWI2_SCK, TWI2_SDA),
146 )
147
148 # ordered as spiId, sckId, mosiId, misoId
149 spiPorts = ((0, SPI0_SCLK, SPI0_MOSI, SPI0_MISO),
150             (2, SPI2_SCLK, SPI2_MOSI, SPI2_MISO),
151 )
152
153 # ordered as uartId, txId, rxId
154 uartPorts = (
155     (0, UART0_TX, UART0_RX),
156     (2, UART2_TX, UART2_RX),
157     (5, UART5_TX, UART5_RX),
158     (6, UART6_TX, UART6_RX),
159     (4, UART4_TX, UART4_RX),
160     (7, UART7_TX, UART7_RX),
161 )
162
163 # sysFs analog inputs, Ordered as analogInId, device, and channel
164 analogIns = (
165     (XP_TP, 1, 0),
166     (XN_TP, 1, 1),
167     (YP_TP, 1, 2),
168     (YN_TP, 1, 3),
169 )