3b70bb5f45104bf6b48a379158393fd015c570fc
3 from spec
.base
import PinSpec
5 from spec
.ifaceprint
import display
, display_fns
, check_functions
6 from spec
.ifaceprint
import display_fixed
33 function_names
= {'EINT': 'External Interrupt',
34 'FB': 'MC68k FlexBus',
36 'JTAG0': 'JTAG (same as JTAG1, JTAG_SEL=LOW)',
37 'JTAG1': 'JTAG (same as JTAG0, JTAG_SEL=HIGH)',
38 'LCD': '24-pin RGB/TTL LCD',
39 'RG': 'RGMII Ethernet',
40 'MMC': 'eMMC 1/2/4/8 pin',
41 'PWM': 'PWM (pulse-width modulation)',
45 'SPI0': 'SPI (Serial Peripheral Interface) 0',
46 'SPI1': 'SPI (Serial Peripheral Interface) 1',
47 'QSPI': 'Quad SPI (Serial Peripheral Interface) 1',
51 'UARTQ0': 'UART (TX/RX/CTS/RTS) 0',
52 'UARTQ1': 'UART (TX/RX/CTS/RTS) 1',
53 'UART0': 'UART (TX/RX) 0',
54 'UART1': 'UART (TX/RX) 1',
55 'UART2': 'UART (TX/RX) 2',
56 'ULPI0': 'ULPI (USB Low Pin-count) 0',
57 'ULPI1': 'ULPI (USB Low Pin-count) 1',
58 'ULPI2': 'ULPI (USB Low Pin-count) 2',
61 ps
= PinSpec(pinbanks
, fixedpins
, function_names
)
64 ps
.gpio("", ('B', 0), 0, 0, 28)
65 ps
.rgbttl("", ('B', 0), 1, limit
=23)
66 ps
.spi("0", ('B', 10), 2)
67 ps
.quadspi("", ('B', 4), 2)
68 ps
.uart("0", ('B', 16), 2)
69 ps
.i2c("1", ('B', 18), 2)
70 ps
.pwm("", ('B', 21), 2, 0, 3)
71 ps
.sdmmc("0", ('B', 22), 3)
72 ps
.eint("", ('B', 0), 3, 0, 4)
73 ps
.eint("", ('B', 20), 2, 4, 1)
74 ps
.eint("", ('B', 23), 1, 5, 1)
75 ps
.sdmmc("1", ('B', 4), 3)
76 ps
.jtag("1", ('B', 10), 3)
77 ps
.uartfull("0", ('B', 14), 3)
78 ps
.uartfull("1", ('B', 18), 3)
79 ps
.jtag("0", ('B', 24), 2)
80 ps
.spi("1", ('B', 24), 1)
81 ps
.i2c("0", ('B', 0), 2)
82 ps
.uart("1", ('B', 2), 2)
83 ps
.uart("2", ('B', 14), 2)
85 # Scenarios below can be spec'd out as either "find first interface"
86 # by name/number e.g. SPI1, or as "find in bank/mux" which must be
87 # spec'd as "BM:Name" where B is bank (A-F), M is Mux (0-3)
88 # EINT and PWM are grouped together, specially, but may still be spec'd
89 # using "BM:Name". Pins are removed in-order as listed from
90 # lists (interfaces, EINTs, PWMs) from available pins.
92 minitest
= ['ULPI0/8', 'ULPI1', 'MMC', 'SD0', 'UART0',
93 'TWI0', 'SPI0', 'B3:SD1', ]
94 minitest_eint
= ['EINT_0', 'EINT_1', 'EINT_2', 'EINT_3', 'EINT_4']
95 minitest_pwm
= ['B2:PWM_0']
97 'MMC': 'internal (on Card)',
98 'SD0': 'user-facing: internal (on Card), multiplexed with JTAG1\n'
99 'and UART2, for debug purposes',
104 'B1:LCD/22': '18-bit RGB/TTL LCD',
105 'ULPI0/8': 'user-facing: internal (on Card), USB-OTG ULPI PHY',
106 'ULPI1': 'dual USB2 Host ULPI PHY'
109 ps
.add_scenario("MiniTest", minitest
, minitest_eint
, minitest_pwm
,