1 import Adafruit_BBIO.GPIO as GPIO
3 # Pins dont exist in CPython so...lets make our own!
17 def __init__(self, pin_name):
23 def __eq__(self, other):
24 return self.id == other
26 def init(self, mode=IN, pull=None):
30 GPIO.setup(self.id, GPIO.IN)
31 elif mode == self.OUT:
33 GPIO.setup(self.id, GPIO.OUT)
35 raise RuntimeError("Invalid mode for pin: %s" % self.id)
37 if self._mode != self.IN:
38 raise RuntimeError("Cannot set pull resistor on output")
39 if pull == self.PULL_UP:
40 GPIO.setup(self.id, GPIO.IN, pull_up_down=GPIO.PUD_UP)
41 elif pull == self.PULL_DOWN:
42 GPIO.setup(self.id, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
44 raise RuntimeError("Invalid pull for pin: %s" % self.id)
46 def value(self, val=None):
50 GPIO.output(self.id, val)
51 elif val == self.HIGH:
53 GPIO.output(self.id, val)
55 raise RuntimeError("Invalid value for pin")
57 return GPIO.input(self.id)
62 P1_2 = Pin('P1_2') # GPIO_87
63 P1_3 = Pin('P1_3') # GPIO_109
64 P1_4 = Pin('P1_4') # GPIO_89
66 P1_6 = Pin('P1_6') # GPIO_5
68 P1_8 = Pin('P1_8') # GPIO_2
70 P1_10 = Pin('P1_10') # GPIO_3
72 P1_12 = Pin('P1_12') # GPIO_4
77 # P1_17 = AIN 1.8V REF-
78 # P1_18 = AIN 1.8V REF+
79 P1_19 = Pin('P1_19') # AIN0
80 P1_20 = Pin('P1_20') # GPIO_20
81 P1_21 = Pin('P1_21') # AIN1
83 P1_23 = Pin('P1_23') # AIN2
85 P1_25 = Pin('P1_25') # AIN3
86 P1_26 = Pin('P1_26') # GPIO_12
87 P1_27 = Pin('P1_27') # AIN4
88 P1_28 = Pin('P1_28') # GPIO_13
89 P1_29 = Pin('P1_29') # GPIO_117
90 P1_30 = Pin('P1_30') # GPIO_43
91 P1_31 = Pin('P1_31') # GPIO_114
92 P1_32 = Pin('P1_32') # GPIO_42
93 P1_33 = Pin('P1_33') # GPIO_111
94 P1_34 = Pin('P1_34') # GPIO_26
95 P1_35 = Pin('P1_35') # GPIO_88
96 P1_36 = Pin('P1_36') # GPIO_110
99 P2_1 = Pin('P2_1') # GPIO_50
100 P2_2 = Pin('P2_2') # GPIO_59
101 P2_3 = Pin('P2_3') # GPIO_23
102 P2_4 = Pin('P2_4') # GPIO_58
103 P2_5 = Pin('P2_5') # GPIO_30
104 P2_6 = Pin('P2_6') # GPIO_57
105 P2_7 = Pin('P2_7') # GPIO_31
106 P2_8 = Pin('P2_8') # GPIO_60
107 P2_9 = Pin('P2_9') # GPIO_15
108 P2_10 = Pin('P2_10') # GPIO_52
109 P2_11 = Pin('P2_11') # GPIO_14
110 # P2_12 = SYS PWR BTN
115 P2_17 = Pin('P2_17') # GPIO_65
116 P2_18 = Pin('P2_18') # GPIO_47
117 P2_19 = Pin('P2_19') # GPIO_27
118 P2_20 = Pin('P2_20') # GPIO_64
120 P2_22 = Pin('P2_22') # GPIO_46
122 P2_24 = Pin('P2_24') # GPIO_44
123 P2_25 = Pin('P2_25') # GPIO_41
125 P2_27 = Pin('P2_27') # GPIO_40
126 P2_28 = Pin('P2_28') # GPIO_116
127 P2_29 = Pin('P2_29') # GPIO_7
128 P2_30 = Pin('P2_30') # GPIO_113
129 P2_31 = Pin('P2_31') # GPIO_19
130 P2_32 = Pin('P2_32') # GPIO_112
131 P2_33 = Pin('P2_33') # GPIO_45
132 P2_34 = Pin('P2_34') # GPIO_115
133 P2_35 = Pin('P2_35') # GPIO_86
134 P2_36 = Pin('P2_36') # AIN7
140 P8_3 = Pin('P8_3') # GPIO_38
141 P8_4 = Pin('P8_4') # GPIO_39
142 P8_5 = Pin('P8_5') # GPIO_34
143 P8_6 = Pin('P8_6') # GPIO_35
144 P8_7 = Pin('P8_7') # GPIO_66
145 P8_8 = Pin('P8_8') # GPIO_67
146 P8_9 = Pin('P8_9') # GPIO_69
147 P8_10 = Pin('P8_10') # GPIO_68
148 P8_11 = Pin('P8_11') # GPIO_45
149 P8_12 = Pin('P8_12') # GPIO_44
150 P8_13 = Pin('P8_13') # GPIO_23
151 P8_14 = Pin('P8_14') # GPIO_26
152 P8_15 = Pin('P8_15') # GPIO_47
153 P8_16 = Pin('P8_16') # GPIO_46
154 P8_17 = Pin('P8_17') # GPIO_27
155 P8_18 = Pin('P8_18') # GPIO_65
156 P8_19 = Pin('P8_19') # GPIO_22
157 P8_20 = Pin('P8_20') # GPIO_63
158 P8_21 = Pin('P8_21') # GPIO_62
159 P8_22 = Pin('P8_22') # GPIO_37
160 P8_23 = Pin('P8_23') # GPIO_36
161 P8_24 = Pin('P8_24') # GPIO_33
162 P8_25 = Pin('P8_25') # GPIO_32
163 P8_26 = Pin('P8_26') # GPIO_61
164 P8_27 = Pin('P8_27') # GPIO_86
165 P8_28 = Pin('P8_28') # GPIO_88
166 P8_29 = Pin('P8_29') # GPIO_87
167 P8_30 = Pin('P8_30') # GPIO_89
168 P8_31 = Pin('P8_31') # GPIO_10
169 P8_32 = Pin('P8_32') # GPIO_11
170 P8_33 = Pin('P8_33') # GPIO_9
171 P8_34 = Pin('P8_34') # GPIO_81
172 P8_35 = Pin('P8_35') # GPIO_8
173 P8_36 = Pin('P8_36') # GPIO_80
174 P8_37 = Pin('P8_37') # GPIO_78
175 P8_38 = Pin('P8_38') # GPIO_79
176 P8_39 = Pin('P8_39') # GPIO_76
177 P8_40 = Pin('P8_40') # GPIO_77
178 P8_41 = Pin('P8_41') # GPIO_74
179 P8_42 = Pin('P8_42') # GPIO_75
180 P8_43 = Pin('P8_43') # GPIO_72
181 P8_44 = Pin('P8_44') # GPIO_73
182 P8_45 = Pin('P8_45') # GPIO_70
183 P8_46 = Pin('P8_46') # GPIO_71
195 P9_11 = Pin('P9_11') # GPIO_30
196 P9_12 = Pin('P9_12') # GPIO_60
197 P9_13 = Pin('P9_13') # GPIO_31
198 P9_14 = Pin('P9_14') # GPIO_40
199 P9_15 = Pin('P9_15') # GPIO_48
200 P9_16 = Pin('P9_16') # GPIO_51
201 P9_17 = Pin('P9_17') # GPIO_4
202 P9_18 = Pin('P9_18') # GPIO_5
203 P9_19 = Pin('P9_19') # I2C2_SCL
204 P9_20 = Pin('P9_20') # I2C2_SDA
205 P9_21 = Pin('P9_21') # GPIO_3
206 P9_22 = Pin('P9_22') # GPIO_2
207 P9_23 = Pin('P9_23') # GPIO_49
208 P9_24 = Pin('P9_24') # GPIO_15
209 P9_25 = Pin('P9_25') # GPIO_117
210 P9_26 = Pin('P9_26') # GPIO_14
211 P9_27 = Pin('P9_27') # GPIO_125
212 P9_28 = Pin('P9_28') # GPIO_123
213 P9_29 = Pin('P9_29') # GPIO_121
214 P9_30 = Pin('P9_30') # GPIO_122
215 P9_31 = Pin('P9_31') # GPIO_120
225 P9_41 = Pin('P9_41') # GPIO_20
226 P9_42 = Pin('P9_42') # GPIO_7
232 # common to all beagles
238 # all special functions (SPI / I2C) are moved to
239 # src/adafruit_blinka/board/beaglebone_black.py
241 # # ordered as spiId, sckId, mosiId, misoId
243 # (0, SCLK, MOSI, MISO),
244 # (1, SCLK_1, MOSI_1, MISO_1)
247 # # ordered as uartId, txId, rxId