Skip to content

Commit 4d9d079

Browse files
committed
support allwinner sun55iw3 T527, bananapif5
1 parent 1126135 commit 4d9d079

File tree

7 files changed

+390
-0
lines changed

7 files changed

+390
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
2+
#
3+
# SPDX-License-Identifier: MIT
4+
"""Pin definitions for the Banana Pi F5."""
5+
6+
from adafruit_blinka.microcontroller.allwinner.t527 import pin
7+
8+
# I2C
9+
I2C4_SCL = pin.I2C4_SCL
10+
I2C4_SDA = pin.I2C4_SDA
11+
I2C5_SCL = pin.I2C5_SCL
12+
I2C5_SDA = pin.I2C5_SDA
13+
14+
# Default I2C
15+
SCL = I2C5_SCL
16+
SDA = I2C5_SDA
17+
18+
# UART
19+
UART2_TX = pin.UART2_TX
20+
UART2_RX = pin.UART2_RX
21+
UART7_TX = pin.UART7_TX
22+
UART7_RX = pin.UART7_RX
23+
24+
# Default UART
25+
TX = UART7_TX
26+
RX = UART7_RX
27+
TXD = UART7_TX
28+
RXD = UART7_RX
29+
30+
# SPI
31+
SPI1_MOSI = pin.SPI1_MOSI
32+
SPI1_MISO = pin.SPI1_MISO
33+
SPI1_SCLK = pin.SPI1_SCLK
34+
SPI1_CS0 = pin.SPI1_CS0
35+
36+
# Default SPI
37+
MOSI = SPI1_MOSI
38+
MISO = SPI1_MISO
39+
SCLK = SPI1_SCLK
40+
CS = SPI1_CS0
41+
42+
# Pinout reference:
43+
# https://wiki.banana-pi.org/Banana_Pi_BPI-M4_Berry#BPI-M4_Berry_40-pin_header
44+
D3 = pin.PI9
45+
D5 = pin.PI8
46+
D7 = pin.PI10
47+
D8 = pin.PB13
48+
D10 = pin.PB14
49+
D11 = pin.PB0
50+
D12 = pin.PB5
51+
D13 = pin.PB1
52+
D15 = pin.PB2
53+
D16 = pin.PB11
54+
D18 = pin.PB12
55+
D19 = pin.PI4
56+
D21 = pin.PI5
57+
D22 = pin.PI7
58+
D23 = pin.PI3
59+
D24 = pin.PI2
60+
D26 = pin.PI6
61+
D27 = pin.PI1
62+
D28 = pin.PI0
63+
D29 = pin.PB3
64+
D31 = pin.PL4
65+
D32 = pin.PI11
66+
D33 = pin.PL5
67+
D35 = pin.PB6
68+
D36 = pin.PI12
69+
D37 = pin.PB4
70+
D38 = pin.PB8
71+
D40 = pin.PB7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
2+
#
3+
# SPDX-License-Identifier: MIT
4+
"""Definition for the AllWinner T527 chip"""
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,306 @@
1+
# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
2+
#
3+
# SPDX-License-Identifier: MIT
4+
"""Allwinner T527 Pin Names"""
5+
import gpiod
6+
from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
7+
8+
chip0 = gpiod.Chip("/dev/gpiochip0")
9+
chip1 = gpiod.Chip("/dev/gpiochip1")
10+
num = chip0.get_info().num_lines
11+
12+
if num < 100:
13+
__chip_num = 1
14+
__chip_r_num = 0
15+
else:
16+
__chip_num = 0
17+
__chip_r_num = 1
18+
19+
chip0.close()
20+
chip1.close()
21+
22+
PB0 = Pin((__chip_num, 32))
23+
PB1 = Pin((__chip_num, 33))
24+
PB2 = Pin((__chip_num, 34))
25+
PB3 = Pin((__chip_num, 35))
26+
PB4 = Pin((__chip_num, 36))
27+
PB5 = Pin((__chip_num, 37))
28+
PB6 = Pin((__chip_num, 38))
29+
PB7 = Pin((__chip_num, 39))
30+
PB8 = Pin((__chip_num, 40))
31+
PB9 = Pin((__chip_num, 41))
32+
PB10 = Pin((__chip_num, 42))
33+
PB11 = Pin((__chip_num, 43))
34+
PB12 = Pin((__chip_num, 44))
35+
PB13 = Pin((__chip_num, 45))
36+
PB14 = Pin((__chip_num, 46))
37+
38+
PC0 = Pin((__chip_num, 64))
39+
PC1 = Pin((__chip_num, 65))
40+
PC2 = Pin((__chip_num, 66))
41+
PC3 = Pin((__chip_num, 67))
42+
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))
54+
PC16 = Pin((__chip_num, 80))
55+
56+
PD0 = Pin((__chip_num, 96))
57+
PD1 = Pin((__chip_num, 97))
58+
PD2 = Pin((__chip_num, 98))
59+
PD3 = Pin((__chip_num, 99))
60+
PD4 = Pin((__chip_num, 100))
61+
PD5 = Pin((__chip_num, 101))
62+
PD6 = Pin((__chip_num, 102))
63+
PD7 = Pin((__chip_num, 103))
64+
PD8 = Pin((__chip_num, 104))
65+
PD9 = Pin((__chip_num, 105))
66+
PD10 = Pin((__chip_num, 106))
67+
PD11 = Pin((__chip_num, 107))
68+
PD12 = Pin((__chip_num, 108))
69+
PD13 = Pin((__chip_num, 109))
70+
PD14 = Pin((__chip_num, 110))
71+
PD15 = Pin((__chip_num, 111))
72+
PD16 = Pin((__chip_num, 112))
73+
PD17 = Pin((__chip_num, 113))
74+
PD18 = Pin((__chip_num, 114))
75+
PD19 = Pin((__chip_num, 115))
76+
PD20 = Pin((__chip_num, 116))
77+
PD21 = Pin((__chip_num, 117))
78+
PD22 = Pin((__chip_num, 118))
79+
PD23 = Pin((__chip_num, 119))
80+
81+
PE0 = Pin((__chip_num, 128))
82+
PE1 = Pin((__chip_num, 129))
83+
PE2 = Pin((__chip_num, 130))
84+
PE3 = Pin((__chip_num, 131))
85+
PE4 = Pin((__chip_num, 132))
86+
PE5 = Pin((__chip_num, 133))
87+
PE6 = Pin((__chip_num, 134))
88+
PE7 = Pin((__chip_num, 135))
89+
PE8 = Pin((__chip_num, 136))
90+
PE9 = Pin((__chip_num, 137))
91+
PE10 = Pin((__chip_num, 138))
92+
PE11 = Pin((__chip_num, 139))
93+
PE12 = Pin((__chip_num, 140))
94+
PE13 = Pin((__chip_num, 141))
95+
PE14 = Pin((__chip_num, 142))
96+
PE15 = Pin((__chip_num, 143))
97+
98+
PF0 = Pin((__chip_num, 160))
99+
PF1 = Pin((__chip_num, 161))
100+
PF2 = Pin((__chip_num, 162))
101+
PF3 = Pin((__chip_num, 163))
102+
PF4 = Pin((__chip_num, 164))
103+
PF5 = Pin((__chip_num, 165))
104+
PF6 = Pin((__chip_num, 166))
105+
106+
PG0 = Pin((__chip_num, 192))
107+
PG1 = Pin((__chip_num, 193))
108+
PG2 = Pin((__chip_num, 194))
109+
PG3 = Pin((__chip_num, 195))
110+
PG4 = Pin((__chip_num, 196))
111+
PG5 = Pin((__chip_num, 197))
112+
PG6 = Pin((__chip_num, 198))
113+
PG7 = Pin((__chip_num, 199))
114+
PG8 = Pin((__chip_num, 200))
115+
PG9 = Pin((__chip_num, 201))
116+
PG10 = Pin((__chip_num, 202))
117+
PG11 = Pin((__chip_num, 203))
118+
PG12 = Pin((__chip_num, 204))
119+
PG13 = Pin((__chip_num, 205))
120+
PG14 = Pin((__chip_num, 206))
121+
122+
PH0 = Pin((__chip_num, 224))
123+
PH1 = Pin((__chip_num, 225))
124+
PH2 = Pin((__chip_num, 226))
125+
PH3 = Pin((__chip_num, 227))
126+
PH4 = Pin((__chip_num, 228))
127+
PH5 = Pin((__chip_num, 229))
128+
PH6 = Pin((__chip_num, 230))
129+
PH7 = Pin((__chip_num, 231))
130+
PH8 = Pin((__chip_num, 232))
131+
PH9 = Pin((__chip_num, 233))
132+
PH10 = Pin((__chip_num, 234))
133+
PH11 = Pin((__chip_num, 235))
134+
PH12 = Pin((__chip_num, 236))
135+
PH13 = Pin((__chip_num, 237))
136+
PH14 = Pin((__chip_num, 238))
137+
PH15 = Pin((__chip_num, 239))
138+
PH16 = Pin((__chip_num, 240))
139+
PH17 = Pin((__chip_num, 241))
140+
PH18 = Pin((__chip_num, 242))
141+
PH19 = Pin((__chip_num, 243))
142+
143+
PI0 = Pin((__chip_num, 256))
144+
PI1 = Pin((__chip_num, 257))
145+
PI2 = Pin((__chip_num, 258))
146+
PI3 = Pin((__chip_num, 259))
147+
PI4 = Pin((__chip_num, 260))
148+
PI5 = Pin((__chip_num, 261))
149+
PI6 = Pin((__chip_num, 262))
150+
PI7 = Pin((__chip_num, 263))
151+
PI8 = Pin((__chip_num, 264))
152+
PI9 = Pin((__chip_num, 265))
153+
PI10 = Pin((__chip_num, 266))
154+
PI11 = Pin((__chip_num, 267))
155+
PI12 = Pin((__chip_num, 268))
156+
PI13 = Pin((__chip_num, 269))
157+
PI14 = Pin((__chip_num, 270))
158+
PI15 = Pin((__chip_num, 271))
159+
PI16 = Pin((__chip_num, 272))
160+
161+
PJ0 = Pin((__chip_num, 288))
162+
PJ1 = Pin((__chip_num, 289))
163+
PJ2 = Pin((__chip_num, 290))
164+
PJ3 = Pin((__chip_num, 291))
165+
PJ4 = Pin((__chip_num, 292))
166+
PJ5 = Pin((__chip_num, 293))
167+
PJ6 = Pin((__chip_num, 294))
168+
PJ7 = Pin((__chip_num, 295))
169+
PJ8 = Pin((__chip_num, 296))
170+
PJ9 = Pin((__chip_num, 297))
171+
PJ10 = Pin((__chip_num, 298))
172+
PJ11 = Pin((__chip_num, 299))
173+
PJ12 = Pin((__chip_num, 300))
174+
PJ13 = Pin((__chip_num, 301))
175+
PJ14 = Pin((__chip_num, 302))
176+
PJ15 = Pin((__chip_num, 303))
177+
PJ16 = Pin((__chip_num, 304))
178+
PJ17 = Pin((__chip_num, 305))
179+
PJ18 = Pin((__chip_num, 306))
180+
PJ19 = Pin((__chip_num, 307))
181+
PJ20 = Pin((__chip_num, 308))
182+
PJ21 = Pin((__chip_num, 309))
183+
PJ22 = Pin((__chip_num, 310))
184+
PJ23 = Pin((__chip_num, 311))
185+
PJ24 = Pin((__chip_num, 312))
186+
PJ25 = Pin((__chip_num, 313))
187+
PJ26 = Pin((__chip_num, 314))
188+
PJ27 = Pin((__chip_num, 315))
189+
190+
PK0 = Pin((__chip_num, 320))
191+
PK1 = Pin((__chip_num, 321))
192+
PK2 = Pin((__chip_num, 322))
193+
PK3 = Pin((__chip_num, 323))
194+
PK4 = Pin((__chip_num, 324))
195+
PK5 = Pin((__chip_num, 325))
196+
PK6 = Pin((__chip_num, 326))
197+
PK7 = Pin((__chip_num, 327))
198+
PK8 = Pin((__chip_num, 328))
199+
PK9 = Pin((__chip_num, 329))
200+
PK10 = Pin((__chip_num, 330))
201+
PK11 = Pin((__chip_num, 331))
202+
PK12 = Pin((__chip_num, 332))
203+
PK13 = Pin((__chip_num, 333))
204+
PK14 = Pin((__chip_num, 334))
205+
PK15 = Pin((__chip_num, 335))
206+
PK16 = Pin((__chip_num, 336))
207+
PK17 = Pin((__chip_num, 337))
208+
PK18 = Pin((__chip_num, 338))
209+
PK19 = Pin((__chip_num, 339))
210+
PK20 = Pin((__chip_num, 340))
211+
PK21 = Pin((__chip_num, 341))
212+
PK22 = Pin((__chip_num, 342))
213+
PK23 = Pin((__chip_num, 343))
214+
215+
PL0 = Pin((__chip_r_num, 0))
216+
PL1 = Pin((__chip_r_num, 1))
217+
PL2 = Pin((__chip_r_num, 2))
218+
PL3 = Pin((__chip_r_num, 3))
219+
PL4 = Pin((__chip_r_num, 4))
220+
PL5 = Pin((__chip_r_num, 5))
221+
PL6 = Pin((__chip_r_num, 6))
222+
PL7 = Pin((__chip_r_num, 7))
223+
PL8 = Pin((__chip_r_num, 8))
224+
PL9 = Pin((__chip_r_num, 9))
225+
PL10 = Pin((__chip_r_num, 10))
226+
PL11 = Pin((__chip_r_num, 11))
227+
PL12 = Pin((__chip_r_num, 12))
228+
PL13 = Pin((__chip_r_num, 13))
229+
230+
PM0 = Pin((__chip_r_num, 32))
231+
PM1 = Pin((__chip_r_num, 33))
232+
PM2 = Pin((__chip_r_num, 34))
233+
PM3 = Pin((__chip_r_num, 35))
234+
PM4 = Pin((__chip_r_num, 36))
235+
PM5 = Pin((__chip_r_num, 37))
236+
237+
# I2C
238+
I2C1_SCL = PB4
239+
I2C1_SDA = PB5
240+
I2C4_SCL = PI0
241+
I2C4_SDA = PI1
242+
I2C5_SCL = PI8
243+
I2C5_SDA = PI9
244+
245+
i2cPorts = (
246+
(1, I2C1_SCL, I2C1_SDA),
247+
(4, I2C4_SCL, I2C4_SDA),
248+
(5, I2C5_SCL, I2C5_SDA),
249+
)
250+
251+
# SPI
252+
SPI1_MOSI = PI4
253+
SPI1_MISO = PI5
254+
SPI1_SCLK = PI3
255+
SPI1_CS0 = PI2
256+
SPI2_MOSI = PB2
257+
SPI2_MISO = PB3
258+
SPI2_SCLK = PB1
259+
SPI2_CS0 = PB0
260+
261+
# ordered as spiId, sckId, mosiId, misoId
262+
spiPorts = (
263+
(1, SPI1_SCLK, SPI1_MOSI, SPI1_MISO),
264+
(2, SPI2_SCLK, SPI2_MOSI, SPI2_MISO),
265+
)
266+
267+
# UART
268+
UART2_TX = PB0
269+
UART2_RX = PB1
270+
UART3_TX = PI11
271+
UART3_RX = PI12
272+
UART4_TX = PI0
273+
UART4_RX = PI1
274+
UART5_TX = PI2
275+
UART5_RX = PI3
276+
UART6_TX = PI6
277+
UART6_RX = PI7
278+
UART7_TX = PB13
279+
UART7_RX = PB14
280+
281+
# ordered as uartId, txId, rxId
282+
uartPorts = (
283+
(2, UART2_TX, UART2_RX),
284+
(3, UART3_TX, UART3_RX),
285+
(4, UART4_TX, UART4_RX),
286+
(5, UART5_TX, UART5_RX),
287+
(6, UART6_TX, UART6_RX),
288+
(7, UART7_TX, UART7_RX),
289+
)
290+
291+
# SysFS pwm outputs, pwm channel and pin in first tuple
292+
pwmOuts = [
293+
((0, 1), PI0),
294+
((0, 2), PI1),
295+
((0, 3), PI2),
296+
((0, 4), PI3),
297+
((0, 5), PI4),
298+
((0, 6), PI5),
299+
((0, 7), PI6),
300+
((0, 8), PI7),
301+
((0, 9), PI8),
302+
((0, 10), PI9),
303+
((0, 11), PI10),
304+
((0, 12), PI11),
305+
((0, 13), PI12),
306+
]

src/board.py

+3
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,9 @@
167167
elif board_id == ap_board.BANANA_PI_F3:
168168
from adafruit_blinka.board.bananapi.bpif3 import *
169169

170+
elif board_id == ap_board.BANANA_PI_F5:
171+
from adafruit_blinka.board.bananapi.bpif5 import *
172+
170173
elif board_id == ap_board.LEMAKER_BANANA_PRO:
171174
from adafruit_blinka.board.lemaker.bananapro import *
172175

0 commit comments

Comments
 (0)