object_oriented_beaglebone_black 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +23 -0
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/Gemfile +8 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +113 -0
  8. data/Rakefile +7 -0
  9. data/config/environments/development.yml +3 -0
  10. data/config/environments/production.yml +3 -0
  11. data/config/environments/test.yml +3 -0
  12. data/config/i2c.json +26 -0
  13. data/config/pin_index.json +1519 -0
  14. data/config/uarts.json +31 -0
  15. data/examples/current_measurement.rb +7 -0
  16. data/examples/current_measurement/current_input.rb +16 -0
  17. data/examples/voltage_measurement.rb +7 -0
  18. data/examples/voltage_measurement/voltage_input.rb +16 -0
  19. data/lib/object_oriented_beaglebone_black.rb +26 -0
  20. data/lib/object_oriented_beaglebone_black/analog_input.rb +43 -0
  21. data/lib/object_oriented_beaglebone_black/gpio.rb +40 -0
  22. data/lib/object_oriented_beaglebone_black/io.rb +34 -0
  23. data/lib/object_oriented_beaglebone_black/io/direction.rb +10 -0
  24. data/lib/object_oriented_beaglebone_black/io/value.rb +10 -0
  25. data/lib/object_oriented_beaglebone_black/led.rb +43 -0
  26. data/lib/object_oriented_beaglebone_black/pin_mappings.rb +25 -0
  27. data/lib/object_oriented_beaglebone_black/pwm.rb +58 -0
  28. data/lib/object_oriented_beaglebone_black/version.rb +3 -0
  29. data/object_orieted_beaglebone_black.gemspec +27 -0
  30. data/spec/examples/current_measurement/current_input_spec.rb +46 -0
  31. data/spec/examples/voltage_measurement/voltage_input_spec.rb +46 -0
  32. data/spec/object_oriented_beaglebone_black/analog_input_spec.rb +49 -0
  33. data/spec/object_oriented_beaglebone_black/gpio_spec.rb +66 -0
  34. data/spec/object_oriented_beaglebone_black/led_spec.rb +29 -0
  35. data/spec/object_oriented_beaglebone_black/pin_mappings_spec.rb +35 -0
  36. data/spec/object_oriented_beaglebone_black/pwm_spec.rb +57 -0
  37. data/spec/spec_helper.rb +13 -0
  38. data/spec/support/analog_input_file_behavoir_helper.rb +34 -0
  39. data/spec/support/gpio_file_behavior_helper.rb +36 -0
  40. data/spec/support/pwm_file_behavior_helper.rb +23 -0
  41. metadata +138 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ca9f8e93d23dcac68ab2e8b25cd21ab4b2fd9ce3
4
+ data.tar.gz: 5a0ac3b554c50ddaa44adbf4587df2863306e18a
5
+ SHA512:
6
+ metadata.gz: 24542a044aed62e8bf5d8f73990bd029b0f8b3da7e80cf81b328b6dcbb25634f95d72d2cd39bf20fd825eb8e96e96adbf6ccad8406e5e45eedcccf826db35ffd
7
+ data.tar.gz: 4f8b02caee2697ec33e315e4bf767bdc05a927657bb8362e602712ad134d770eb5cfb7420e44a99f551f728dc2f13adb6c5ad72f35e3cbd13b0bba20f4669a90
data/.gitignore ADDED
@@ -0,0 +1,23 @@
1
+ .DS_Store
2
+ *.gem
3
+ *.rbc
4
+ .bundle
5
+ .config
6
+ .yardoc
7
+ Gemfile.lock
8
+ InstalledFiles
9
+ _yardoc
10
+ coverage
11
+ doc/
12
+ lib/bundler/man
13
+ pkg
14
+ rdoc
15
+ spec/reports
16
+ test/tmp
17
+ test/version_tmp
18
+ tmp
19
+ *.bundle
20
+ *.so
21
+ *.o
22
+ *.a
23
+ mkmf.log
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ object_oriented_beaglebone_black
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.1.5
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in object_oriented_beaglebone_black.gemspec
4
+ gemspec
5
+
6
+ group :development, :test do
7
+ gem "pry-byebug"
8
+ end
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Tadatoshi Takahashi
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,113 @@
1
+ # ObjectOrientedBeagleboneBlack
2
+
3
+ This is for using Beaglebone Black in Object-Oriented way through Ruby code.
4
+
5
+ There are many Ruby projects in GitHub to do a similar thing.
6
+ But I have decided to develop my own from scratch this time instead of using an existing one like I always do.
7
+
8
+ There are three reasons.
9
+
10
+ 1. Build my own expertise on controlling Beaglebone Black directly.
11
+
12
+ 2. Make the code Object-Oriented.
13
+
14
+ e.g. Instead of making the code pin_mode("USR0", "out"), make the code usr0_pin.pin_mode = "out". i.e. Make the PIN object usr0_pin hold the property pin_mode and tell that object to set that property. pin_mode("USR0", "out") is a procedural way of programming and usr0_pin.pin_mode = "out" is an Object-Oriented way of programming. While it is a good idea to follow the same syntax as Arduino's C-language-like code, it is a procedural programming language. Ruby is an Object-Oriented programming language and writing a code in Object-Oriented way in Ruby gives an advantage of using Ruby.
15
+
16
+ That being said, for controlling hardware, I am not against writing Ruby code in script-way, making it more procedural.
17
+
18
+ But I want to write a code in Object-Oriented way, i.e. Beaglebone Black hardware is one object, which contains many objects, such as PIN's. Each algorithm in there is one object. And build the software by interaction and collaboration of those objects.
19
+
20
+ 3. Many existing ones don't have proper testings.
21
+
22
+ I understand the difficulty of writing a test for a code to control hardware. But less test code makes the source code bulky and not modular. I want to make the code modular naturally by Test-Driven Development. (By Test-Driven Development, the code naturally becomes modular even when not consciously thinking about it by just thinking of making the code work.)
23
+
24
+ 4. Many existing ones for controlling hardware are focusing on Robotics (controlling motors).
25
+
26
+ My objective is for developing a controller for DC-DC converter. Because of it, what makes existing ones good (for robotics) sometimes makes the code I need difficult to write for my objective.
27
+
28
+ The important point in this gem is that everything is Object-Oriented.
29
+ In other words, controlling hardware in Object-Oriented way, treating everything as an Object.
30
+ For example, Pin is an Object with properties and functions for the pin.
31
+ If you want to do something with a pin, you instantiate Pin Object and ask it to perform operations on it. Pin object takes care of its properties, i.e. the values associated with it and takes care of performing the operations.
32
+
33
+ The features of Object-Oriented programming, such as Inheritance, etc. and techniques like Composition (and going further, Patterns), make the code organized and reduce duplication. Makes testing is easier.
34
+
35
+ Especially, the bigger your code becomes, the more you get the benefit of Object-Oriented programming. It's easier to trace what the code is doing among the big code base and it's easier to modify the code without influencing the other codes in the big code base.
36
+
37
+ ## Installation
38
+
39
+ Add this line to your application's Gemfile:
40
+
41
+ gem 'object_oriented_beaglebone_black'
42
+
43
+ And then execute:
44
+
45
+ $ bundle
46
+
47
+ Or install it yourself as:
48
+
49
+ $ gem install object_oriented_beaglebone_black
50
+
51
+ ## Usage
52
+
53
+ 1. GPIO.
54
+
55
+ Example:
56
+
57
+ require 'object_oriented_beaglebone_black'
58
+
59
+ led_gpio_pin_number = 60
60
+ button_gpio_pin_number = 15
61
+
62
+ led_gpio = ObjectOrientedBeagleboneBlack::Gpio.new(led_gpio_pin_number)
63
+
64
+ led_gpio.export
65
+
66
+ led_gpio.direction = ObjectOrientedBeagleboneBlack::IO::Direction::OUT
67
+
68
+ led_gpio.value = ObjectOrientedBeagleboneBlack::IO::Value::HIGH
69
+
70
+ led_gpio.value # Read the value. HIGH (1) as set above.
71
+
72
+ led_gpio.value = ObjectOrientedBeagleboneBlack::IO::Value::LOW
73
+
74
+ led_gpio.value # Read the value. LOW (0) as set above.
75
+
76
+ led_gpio.unexport
77
+
78
+ 2. Analog input
79
+ Example:
80
+
81
+ require 'object_oriented_beaglebone_black'
82
+
83
+ pin_key = "P9_40"
84
+
85
+ analog_input = ObjectOrientedBeagleboneBlack::AnalogInput.new(pin_key)
86
+
87
+ analog_input.raw_value # Read the raw voltage value in the range of 0 and 1.8[V].
88
+
89
+ analog_input.value # Read the relative value between 0 and 1.
90
+
91
+ 3. PWM
92
+
93
+ Example:
94
+
95
+ require 'object_oriented_beaglebone_black'
96
+
97
+ pwm_pin_key = "P9_14"
98
+
99
+ pwm = ObjectOrientedBeagleboneBlack::Pwm.new(pwm_pin_key)
100
+
101
+ pwm.duty_cycle = 0.5
102
+
103
+ pwm.polarity # Read the polarity. The default is direct (ObjectOrientedBeagleboneBlack::Pwm::Polarity::DIRECT)
104
+
105
+ pwm.duty_cycle # Read the duty cycle. 0.5 as set above.
106
+
107
+ ## Contributing
108
+
109
+ 1. Fork it ( https://github.com/[my-github-username]/object_oriented_beaglebone_black/fork )
110
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
111
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
112
+ 4. Push to the branch (`git push origin my-new-feature`)
113
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,7 @@
1
+ require "bundler/gem_tasks"
2
+
3
+ require 'rspec/core/rake_task'
4
+
5
+ RSpec::Core::RakeTask.new(:spec)
6
+
7
+ task default: :spec
@@ -0,0 +1,3 @@
1
+ io_root_directory: /sys/class
2
+ slots_directory: /sys/devices/bone_capemgr.9
3
+ device_directory: /sys/devices/ocp.3
@@ -0,0 +1,3 @@
1
+ io_root_directory: /sys/class
2
+ slots_directory: /sys/devices/bone_capemgr.9
3
+ device_directory: /sys/devices/ocp.3
@@ -0,0 +1,3 @@
1
+ io_root_directory: <%= OBJECT_ORIENTED_BEAGLEBONE_BLACK_ROOT %>/tmp/sys/class
2
+ slots_directory: <%= OBJECT_ORIENTED_BEAGLEBONE_BLACK_ROOT %>/tmp/sys/devices/bone_capemgr.9
3
+ device_directory: <%= OBJECT_ORIENTED_BEAGLEBONE_BLACK_ROOT %>/tmp/sys/devices/ocp.3
data/config/i2c.json ADDED
@@ -0,0 +1,26 @@
1
+ // Based on https://github.com/jadonk/bonescript/blob/master/src/bone.js
2
+ // The content is copied from there and key "i2c" is added.
3
+ // The idea of adding that key to make the JSON structure in this file is coming from
4
+ // https://github.com/Sparkboxx/bbb/blob/master/resources/pin_mappings.json
5
+ { "i2c" : {
6
+ "/dev/i2c-0": {
7
+ },
8
+ "/dev/i2c-1": {
9
+ "devicetree": "BB-I2C1",
10
+ "path": "/dev/i2c-2",
11
+ "sda": "P9_18",
12
+ "scl": "P9_17"
13
+ },
14
+ "/dev/i2c-1a": {
15
+ "devicetree": "BB-I2C1A",
16
+ "path": "/dev/i2c-2",
17
+ "sda": "P9_26",
18
+ "scl": "P9_24"
19
+ },
20
+ "/dev/i2c-2": {
21
+ "path": "/dev/i2c-1",
22
+ "sda": "P9_20",
23
+ "scl": "P9_19"
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,1519 @@
1
+ // Based on https://github.com/jadonk/bonescript/blob/master/src/bone.js
2
+ // in order to use the same PIN names as in Bonescript, e.g. "USR0".
3
+ // The content is copied from there and key "pinIndex" is added.
4
+ // The idea of adding that key to make the JSON structure in this file is coming from
5
+ // https://github.com/Sparkboxx/bbb/blob/master/resources/pin_mappings.json
6
+ { "pinIndex" : [
7
+ {
8
+ "name": "USR0",
9
+ "gpio": 53,
10
+ "led": "usr0",
11
+ "mux": "gpmc_a5",
12
+ "key": "USR0",
13
+ "muxRegOffset": "0x054",
14
+ "options": [
15
+ "gpmc_a5",
16
+ "gmii2_txd0",
17
+ "rgmii2_td0",
18
+ "rmii2_txd0",
19
+ "gpmc_a21",
20
+ "pr1_mii1_rxd3",
21
+ "eqep1b_in",
22
+ "gpio1_21"
23
+ ]
24
+ },
25
+ {
26
+ "name": "USR1",
27
+ "gpio": 54,
28
+ "led": "usr1",
29
+ "mux": "gpmc_a6",
30
+ "key": "USR1",
31
+ "muxRegOffset": "0x058",
32
+ "options": [
33
+ "gpmc_a6",
34
+ "gmii2_txclk",
35
+ "rgmii2_tclk",
36
+ "mmc2_dat4",
37
+ "gpmc_a22",
38
+ "pr1_mii1_rxd2",
39
+ "eqep1_index",
40
+ "gpio1_22"
41
+ ]
42
+ },
43
+ {
44
+ "name": "USR2",
45
+ "gpio": 55,
46
+ "led": "usr2",
47
+ "mux": "gpmc_a7",
48
+ "key": "USR2",
49
+ "muxRegOffset": "0x05c",
50
+ "options": [
51
+ "gpmc_a7",
52
+ "gmii2_rxclk",
53
+ "rgmii2_rclk",
54
+ "mmc2_dat5",
55
+ "gpmc_a23",
56
+ "pr1_mii1_rxd1",
57
+ "eqep1_strobe",
58
+ "gpio1_23"
59
+ ]
60
+ },
61
+ {
62
+ "name": "USR3",
63
+ "gpio": 56,
64
+ "led": "usr3",
65
+ "mux": "gpmc_a8",
66
+ "key": "USR3",
67
+ "muxRegOffset": "0x060",
68
+ "options": [
69
+ "gpmc_a8",
70
+ "gmii2_rxd3",
71
+ "rgmii2_rd3",
72
+ "mmc2_dat6",
73
+ "gpmc_a24",
74
+ "pr1_mii1_rxd0",
75
+ "mcasp0_aclkx",
76
+ "gpio1_24"
77
+ ]
78
+ },
79
+ {
80
+ "name": "DGND",
81
+ "key": "P8_1"
82
+ },
83
+ {
84
+ "name": "DGND",
85
+ "key": "P8_2"
86
+ },
87
+ {
88
+ "name": "GPIO1_6",
89
+ "gpio": 38,
90
+ "mux": "gpmc_ad6",
91
+ "eeprom": 26,
92
+ "key": "P8_3",
93
+ "muxRegOffset": "0x018",
94
+ "options": [
95
+ "gpmc_ad6",
96
+ "mmc1_dat6",
97
+ "NA",
98
+ "NA",
99
+ "NA",
100
+ "NA",
101
+ "NA",
102
+ "gpio1_6"
103
+ ]
104
+ },
105
+ {
106
+ "name": "GPIO1_7",
107
+ "gpio": 39,
108
+ "mux": "gpmc_ad7",
109
+ "eeprom": 27,
110
+ "key": "P8_4",
111
+ "muxRegOffset": "0x01c",
112
+ "options": [
113
+ "gpmc_ad7",
114
+ "mmc1_dat7",
115
+ "NA",
116
+ "NA",
117
+ "NA",
118
+ "NA",
119
+ "NA",
120
+ "gpio1_7"
121
+ ]
122
+ },
123
+ {
124
+ "name": "GPIO1_2",
125
+ "gpio": 34,
126
+ "mux": "gpmc_ad2",
127
+ "eeprom": 22,
128
+ "key": "P8_5",
129
+ "muxRegOffset": "0x008",
130
+ "options": [
131
+ "gpmc_ad2",
132
+ "mmc1_dat2",
133
+ "NA",
134
+ "NA",
135
+ "NA",
136
+ "NA",
137
+ "NA",
138
+ "gpio1_2"
139
+ ]
140
+ },
141
+ {
142
+ "name": "GPIO1_3",
143
+ "gpio": 35,
144
+ "mux": "gpmc_ad3",
145
+ "eeprom": 23,
146
+ "key": "P8_6",
147
+ "muxRegOffset": "0x00c",
148
+ "options": [
149
+ "gpmc_ad3",
150
+ "mmc1_dat3",
151
+ "NA",
152
+ "NA",
153
+ "NA",
154
+ "NA",
155
+ "NA",
156
+ "gpio1_3"
157
+ ]
158
+ },
159
+ {
160
+ "name": "TIMER4",
161
+ "gpio": 66,
162
+ "mux": "gpmc_advn_ale",
163
+ "eeprom": 41,
164
+ "key": "P8_7",
165
+ "muxRegOffset": "0x090",
166
+ "options": [
167
+ "gpmc_advn_ale",
168
+ "NA",
169
+ "NA",
170
+ "NA",
171
+ "NA",
172
+ "NA",
173
+ "NA",
174
+ "mmc1_sdcd"
175
+ ]
176
+ },
177
+ {
178
+ "name": "TIMER7",
179
+ "gpio": 67,
180
+ "mux": "gpmc_oen_ren",
181
+ "eeprom": 44,
182
+ "key": "P8_8",
183
+ "muxRegOffset": "0x094",
184
+ "options": [
185
+ "gpmc_oen_ren",
186
+ "NA",
187
+ "NA",
188
+ "NA",
189
+ "NA",
190
+ "NA",
191
+ "NA",
192
+ "gpio2_3"
193
+ ]
194
+ },
195
+ {
196
+ "name": "TIMER5",
197
+ "gpio": 69,
198
+ "mux": "gpmc_ben0_cle",
199
+ "eeprom": 42,
200
+ "key": "P8_9",
201
+ "muxRegOffset": "0x09c",
202
+ "options": [
203
+ "gpmc_ben0_cle",
204
+ "NA",
205
+ "NA",
206
+ "NA",
207
+ "NA",
208
+ "NA",
209
+ "NA",
210
+ "gpio2_5"
211
+ ]
212
+ },
213
+ {
214
+ "name": "TIMER6",
215
+ "gpio": 68,
216
+ "mux": "gpmc_wen",
217
+ "eeprom": 43,
218
+ "key": "P8_10",
219
+ "muxRegOffset": "0x098",
220
+ "options": [
221
+ "gpmc_wen",
222
+ "NA",
223
+ "NA",
224
+ "NA",
225
+ "NA",
226
+ "NA",
227
+ "NA",
228
+ "gpio2_4"
229
+ ]
230
+ },
231
+ {
232
+ "name": "GPIO1_13",
233
+ "gpio": 45,
234
+ "mux": "gpmc_ad13",
235
+ "eeprom": 29,
236
+ "key": "P8_11",
237
+ "muxRegOffset": "0x034",
238
+ "options": [
239
+ "gpmc_ad13",
240
+ "lcd_data18",
241
+ "mmc1_dat5",
242
+ "mmc2_dat1",
243
+ "eqep2B_in",
244
+ "pr1_mii0_txd",
245
+ "pr1_pru0_pru_r30_15",
246
+ "gpio1_13"
247
+ ]
248
+ },
249
+ {
250
+ "name": "GPIO1_12",
251
+ "gpio": 44,
252
+ "mux": "gpmc_ad12",
253
+ "eeprom": 28,
254
+ "key": "P8_12",
255
+ "muxRegOffset": "0x030",
256
+ "options": [
257
+ "gpmc_ad12",
258
+ "lcd_data19",
259
+ "mmc1_dat4",
260
+ "mmc2_dat0",
261
+ "eqep2a_in",
262
+ "pr1_mii0_txd2",
263
+ "pr1_pru0_pru_r30_14",
264
+ "gpio1_12"
265
+ ]
266
+ },
267
+ {
268
+ "name": "EHRPWM2B",
269
+ "gpio": 23,
270
+ "mux": "gpmc_ad9",
271
+ "eeprom": 15,
272
+ "pwm": {
273
+ "module": "ehrpwm2",
274
+ "sysfs": 6,
275
+ "index": 1,
276
+ "muxmode": 4,
277
+ "path": "ehrpwm.2:1",
278
+ "name": "EHRPWM2B"
279
+ },
280
+ "key": "P8_13",
281
+ "muxRegOffset": "0x024",
282
+ "options": [
283
+ "gpmc_ad9",
284
+ "lcd_data22",
285
+ "mmc1_dat1",
286
+ "mmc2_dat5",
287
+ "ehrpwm2B",
288
+ "pr1_mii0_col",
289
+ "NA",
290
+ "gpio0_23"
291
+ ]
292
+ },
293
+ {
294
+ "name": "GPIO0_26",
295
+ "gpio": 26,
296
+ "mux": "gpmc_ad10",
297
+ "eeprom": 16,
298
+ "key": "P8_14",
299
+ "muxRegOffset": "0x028",
300
+ "options": [
301
+ "gpmc_ad10",
302
+ "lcd_data21",
303
+ "mmc1_dat2",
304
+ "mmc2_dat6",
305
+ "ehrpwm2_tripzone_input",
306
+ "pr1_mii0_txen",
307
+ "NA",
308
+ "gpio0_26"
309
+ ]
310
+ },
311
+ {
312
+ "name": "GPIO1_15",
313
+ "gpio": 47,
314
+ "mux": "gpmc_ad15",
315
+ "eeprom": 31,
316
+ "key": "P8_15",
317
+ "muxRegOffset": "0x03c",
318
+ "options": [
319
+ "gpmc_ad15",
320
+ "lcd_data16",
321
+ "mmc1_dat7",
322
+ "mmc2_dat3",
323
+ "eqep2_strobe",
324
+ "pr1_ecap0_ecap_capin_apwm_o",
325
+ "pr1_pru0_pru_r31_15",
326
+ "gpio1_15"
327
+ ]
328
+ },
329
+ {
330
+ "name": "GPIO1_14",
331
+ "gpio": 46,
332
+ "mux": "gpmc_ad14",
333
+ "eeprom": 30,
334
+ "key": "P8_16",
335
+ "muxRegOffset": "0x038",
336
+ "options": [
337
+ "gpmc_ad14",
338
+ "lcd_data17",
339
+ "mmc1_dat6",
340
+ "mmc2_dat2",
341
+ "eqep2_index",
342
+ "pr1_mii0_txd0",
343
+ "pr1_pru0_pru_r31_14",
344
+ "gpio1_14"
345
+ ]
346
+ },
347
+ {
348
+ "name": "GPIO0_27",
349
+ "gpio": 27,
350
+ "mux": "gpmc_ad11",
351
+ "eeprom": 17,
352
+ "key": "P8_17",
353
+ "muxRegOffset": "0x02c",
354
+ "options": [
355
+ "gpmc_ad11",
356
+ "lcd_data20",
357
+ "mmc1_dat3",
358
+ "mmc2_dat7",
359
+ "ehrpwm0_synco",
360
+ "pr1_mii0_txd3",
361
+ "NA",
362
+ "gpio0_27"
363
+ ]
364
+ },
365
+ {
366
+ "name": "GPIO2_1",
367
+ "gpio": 65,
368
+ "mux": "gpmc_clk",
369
+ "eeprom": 40,
370
+ "key": "P8_18",
371
+ "muxRegOffset": "0x08c",
372
+ "options": [
373
+ "gpmc_clk",
374
+ "lcd_memory_clk_mux",
375
+ "NA",
376
+ "mmc2_clk",
377
+ "NA",
378
+ "NA",
379
+ "mcasp0_fsr",
380
+ "gpio2_1"
381
+ ]
382
+ },
383
+ {
384
+ "name": "EHRPWM2A",
385
+ "gpio": 22,
386
+ "mux": "gpmc_ad8",
387
+ "eeprom": 14,
388
+ "pwm": {
389
+ "module": "ehrpwm2",
390
+ "sysfs": 5,
391
+ "index": 0,
392
+ "muxmode": 4,
393
+ "path": "ehrpwm.2:0",
394
+ "name": "EHRPWM2A"
395
+ },
396
+ "key": "P8_19",
397
+ "muxRegOffset": "0x020",
398
+ "options": [
399
+ "gpmc_ad8",
400
+ "lcd_data23",
401
+ "mmc1_dat0",
402
+ "mmc2_dat4",
403
+ "ehrpwm2A",
404
+ "pr1_mii_mt0_clk",
405
+ "NA",
406
+ "gpio0_22"
407
+ ]
408
+ },
409
+ {
410
+ "name": "GPIO1_31",
411
+ "gpio": 63,
412
+ "mux": "gpmc_csn2",
413
+ "eeprom": 39,
414
+ "key": "P8_20",
415
+ "muxRegOffset": "0x084",
416
+ "options": [
417
+ "gpmc_csn2",
418
+ "gpmc_be1n",
419
+ "mmc1_cmd",
420
+ "pr1_edio_data_in7",
421
+ "pr1_edio_data_out7",
422
+ "pr1_pru1_pru_r30_13",
423
+ "pr1_pru1_pru_r31_13",
424
+ "gpio1_31"
425
+ ]
426
+ },
427
+ {
428
+ "name": "GPIO1_30",
429
+ "gpio": 62,
430
+ "mux": "gpmc_csn1",
431
+ "eeprom": 38,
432
+ "key": "P8_21",
433
+ "muxRegOffset": "0x080",
434
+ "options": [
435
+ "gpmc_csn1",
436
+ "gpmc_clk",
437
+ "mmc1_clk",
438
+ "pr1_edio_data_in6",
439
+ "pr1_edio_data_out6",
440
+ "pr1_pru1_pru_r30_12",
441
+ "pr1_pru1_pru_r31_12",
442
+ "gpio1_30"
443
+ ]
444
+ },
445
+ {
446
+ "name": "GPIO1_5",
447
+ "gpio": 37,
448
+ "mux": "gpmc_ad5",
449
+ "eeprom": 25,
450
+ "key": "P8_22",
451
+ "muxRegOffset": "0x014",
452
+ "options": [
453
+ "gpmc_ad5",
454
+ "mmc1_dat5",
455
+ "NA",
456
+ "NA",
457
+ "NA",
458
+ "NA",
459
+ "NA",
460
+ "gpio1_5"
461
+ ]
462
+ },
463
+ {
464
+ "name": "GPIO1_4",
465
+ "gpio": 36,
466
+ "mux": "gpmc_ad4",
467
+ "eeprom": 24,
468
+ "key": "P8_23",
469
+ "muxRegOffset": "0x010",
470
+ "options": [
471
+ "gpmc_ad4",
472
+ "mmc1_dat4",
473
+ "NA",
474
+ "NA",
475
+ "NA",
476
+ "NA",
477
+ "NA",
478
+ "gpio1_4"
479
+ ]
480
+ },
481
+ {
482
+ "name": "GPIO1_1",
483
+ "gpio": 33,
484
+ "mux": "gpmc_ad1",
485
+ "eeprom": 21,
486
+ "key": "P8_24",
487
+ "muxRegOffset": "0x004",
488
+ "options": [
489
+ "gpmc_ad1",
490
+ "mmc1_dat1",
491
+ "NA",
492
+ "NA",
493
+ "NA",
494
+ "NA",
495
+ "NA",
496
+ "gpio1_1"
497
+ ]
498
+ },
499
+ {
500
+ "name": "GPIO1_0",
501
+ "gpio": 32,
502
+ "mux": "gpmc_ad0",
503
+ "eeprom": 20,
504
+ "key": "P8_25",
505
+ "muxRegOffset": "0x000",
506
+ "options": [
507
+ "gpmc_ad0",
508
+ "mmc1_dat0",
509
+ "NA",
510
+ "NA",
511
+ "NA",
512
+ "NA",
513
+ "NA",
514
+ "gpio1_0"
515
+ ]
516
+ },
517
+ {
518
+ "name": "GPIO1_29",
519
+ "gpio": 61,
520
+ "mux": "gpmc_csn0",
521
+ "eeprom": 37,
522
+ "key": "P8_26",
523
+ "muxRegOffset": "0x07c",
524
+ "options": [
525
+ "gpmc_csn0",
526
+ "NA",
527
+ "NA",
528
+ "NA",
529
+ "NA",
530
+ "NA",
531
+ "NA",
532
+ "gpio1_29"
533
+ ]
534
+ },
535
+ {
536
+ "name": "GPIO2_22",
537
+ "gpio": 86,
538
+ "mux": "lcd_vsync",
539
+ "eeprom": 57,
540
+ "key": "P8_27",
541
+ "muxRegOffset": "0x0e0",
542
+ "options": [
543
+ "lcd_vsync",
544
+ "gpmc_a8",
545
+ "NA",
546
+ "pr1_edio_data_in2",
547
+ "pr1_edio_data_out2",
548
+ "pr1_pru1_pru_r30_8",
549
+ "pr1_pru1_pru_r31_8",
550
+ "gpio2_22"
551
+ ]
552
+ },
553
+ {
554
+ "name": "GPIO2_24",
555
+ "gpio": 88,
556
+ "mux": "lcd_pclk",
557
+ "eeprom": 59,
558
+ "key": "P8_28",
559
+ "muxRegOffset": "0x0e8",
560
+ "options": [
561
+ "lcd_pclk",
562
+ "gpmc_a10",
563
+ "pr1_mii0_crs",
564
+ "pr1_edio_data_in4",
565
+ "pr1_edio_data_out4",
566
+ "pr1_pru1_pru_r30_10",
567
+ "pr1_pru1_pru_r31_10",
568
+ "gpio2_24"
569
+ ]
570
+ },
571
+ {
572
+ "name": "GPIO2_23",
573
+ "gpio": 87,
574
+ "mux": "lcd_hsync",
575
+ "eeprom": 58,
576
+ "key": "P8_29",
577
+ "muxRegOffset": "0x0e4",
578
+ "options": [
579
+ "lcd_hsync",
580
+ "gpmc_a9",
581
+ "NA",
582
+ "pr1_edio_data_in3",
583
+ "pr1_edio_data_out3",
584
+ "pr1_pru1_pru_r30_9",
585
+ "pr1_pru1_pru_r31_9",
586
+ "gpio2_23"
587
+ ]
588
+ },
589
+ {
590
+ "name": "GPIO2_25",
591
+ "gpio": 89,
592
+ "mux": "lcd_ac_bias_en",
593
+ "eeprom": 60,
594
+ "key": "P8_30",
595
+ "muxRegOffset": "0x0ec",
596
+ "options": [
597
+ "lcd_ac_bias_en",
598
+ "gpmc_a11",
599
+ "pr1_mii1_crs",
600
+ "pr1_edio_data_in5",
601
+ "pr1_edio_data_out5",
602
+ "pr1_pru1_pru_r30_11",
603
+ "pr1_pru1_pru_r31_11",
604
+ "gpio2_25"
605
+ ]
606
+ },
607
+ {
608
+ "name": "UART5_CTSN",
609
+ "gpio": 10,
610
+ "mux": "lcd_data14",
611
+ "eeprom": 7,
612
+ "key": "P8_31",
613
+ "muxRegOffset": "0x0d8",
614
+ "options": [
615
+ "lcd_data14",
616
+ "gpmc_a18",
617
+ "NA",
618
+ "mcasp0_axr1",
619
+ "NA",
620
+ "NA",
621
+ "NA",
622
+ "gpio0_10"
623
+ ]
624
+ },
625
+ {
626
+ "name": "UART5_RTSN",
627
+ "gpio": 11,
628
+ "mux": "lcd_data15",
629
+ "eeprom": 8,
630
+ "key": "P8_32",
631
+ "muxRegOffset": "0x0dc",
632
+ "options": [
633
+ "lcd_data15",
634
+ "gpmc_a19",
635
+ "NA",
636
+ "mcasp0_ahclkx",
637
+ "mcasp0_axr3",
638
+ "NA",
639
+ "NA",
640
+ "gpio0_11"
641
+ ]
642
+ },
643
+ {
644
+ "name": "UART4_RTSN",
645
+ "gpio": 9,
646
+ "mux": "lcd_data13",
647
+ "eeprom": 6,
648
+ "key": "P8_33",
649
+ "muxRegOffset": "0x0d4",
650
+ "options": [
651
+ "lcd_data13",
652
+ "gpmc_a17",
653
+ "NA",
654
+ "mcasp0_fsr",
655
+ "mcasp0_axr3",
656
+ "NA",
657
+ "NA",
658
+ "gpio0_9"
659
+ ]
660
+ },
661
+ {
662
+ "name": "UART3_RTSN",
663
+ "gpio": 81,
664
+ "mux": "lcd_data11",
665
+ "eeprom": 56,
666
+ "pwm": {
667
+ "module": "ehrpwm1",
668
+ "sysfs": 4,
669
+ "index": 1,
670
+ "muxmode": 2,
671
+ "path": "ehrpwm.1:1",
672
+ "name": "EHRPWM1B"
673
+ },
674
+ "key": "P8_34",
675
+ "muxRegOffset": "0x0cc",
676
+ "options": [
677
+ "lcd_data11",
678
+ "gpmc_a15",
679
+ "NA",
680
+ "mcasp0_ahclkr",
681
+ "mcasp0_axr2",
682
+ "NA",
683
+ "NA",
684
+ "gpio2_17"
685
+ ]
686
+ },
687
+ {
688
+ "name": "UART4_CTSN",
689
+ "gpio": 8,
690
+ "mux": "lcd_data12",
691
+ "eeprom": 5,
692
+ "key": "P8_35",
693
+ "muxRegOffset": "0x0d0",
694
+ "options": [
695
+ "lcd_data12",
696
+ "gpmc_a16",
697
+ "NA",
698
+ "mcasp0_aclkr",
699
+ "mcasp0_axr2",
700
+ "NA",
701
+ "NA",
702
+ "gpio0_8"
703
+ ]
704
+ },
705
+ {
706
+ "name": "UART3_CTSN",
707
+ "gpio": 80,
708
+ "mux": "lcd_data10",
709
+ "eeprom": 55,
710
+ "pwm": {
711
+ "module": "ehrpwm1",
712
+ "sysfs": 3,
713
+ "index": 0,
714
+ "muxmode": 2,
715
+ "path": "ehrpwm.1:0",
716
+ "name": "EHRPWM1A"
717
+ },
718
+ "key": "P8_36",
719
+ "muxRegOffset": "0x0c8",
720
+ "options": [
721
+ "lcd_data10",
722
+ "gpmc_a14",
723
+ "ehrpwm1A",
724
+ "mcasp0_axr0",
725
+ "mcasp0_axr0",
726
+ "pr1_mii0_rxd1",
727
+ "uart3_ctsn",
728
+ "gpio2_16"
729
+ ]
730
+ },
731
+ {
732
+ "name": "UART5_TXD",
733
+ "gpio": 78,
734
+ "mux": "lcd_data8",
735
+ "eeprom": 53,
736
+ "key": "P8_37",
737
+ "muxRegOffset": "0x0c0",
738
+ "options": [
739
+ "lcd_data8",
740
+ "gpmc_a12",
741
+ "NA",
742
+ "mcasp0_aclkx",
743
+ "NA",
744
+ "NA",
745
+ "uart2_ctsn",
746
+ "gpio2_14"
747
+ ]
748
+ },
749
+ {
750
+ "name": "UART5_RXD",
751
+ "gpio": 79,
752
+ "mux": "lcd_data9",
753
+ "eeprom": 54,
754
+ "key": "P8_38",
755
+ "muxRegOffset": "0x0c4",
756
+ "options": [
757
+ "lcd_data9",
758
+ "gpmc_a13",
759
+ "NA",
760
+ "mcasp0_fsx",
761
+ "NA",
762
+ "NA",
763
+ "uart2_rtsn",
764
+ "gpio2_15"
765
+ ]
766
+ },
767
+ {
768
+ "name": "GPIO2_12",
769
+ "gpio": 76,
770
+ "mux": "lcd_data6",
771
+ "eeprom": 51,
772
+ "key": "P8_39",
773
+ "muxRegOffset": "0x0b8",
774
+ "options": [
775
+ "lcd_data6",
776
+ "gpmc_a6",
777
+ "pr1_edio_data_in6",
778
+ "eqep2_index",
779
+ "pr1_edio_data_out6",
780
+ "pr1_pru1_pru_r30_6",
781
+ "pr1_pru1_pru_r31_6",
782
+ "gpio2_12"
783
+ ]
784
+ },
785
+ {
786
+ "name": "GPIO2_13",
787
+ "gpio": 77,
788
+ "mux": "lcd_data7",
789
+ "eeprom": 52,
790
+ "key": "P8_40",
791
+ "muxRegOffset": "0x0bc",
792
+ "options": [
793
+ "lcd_data7",
794
+ "gpmc_a7",
795
+ "pr1_edio_data_in7",
796
+ "eqep2_strobe",
797
+ "pr1_pru1_pru_r30_7",
798
+ "pr1_pru_pru1_r30_7",
799
+ "pr1_pru1_pru_r31_7",
800
+ "gpio2_13"
801
+ ]
802
+ },
803
+ {
804
+ "name": "GPIO2_10",
805
+ "gpio": 74,
806
+ "mux": "lcd_data4",
807
+ "eeprom": 49,
808
+ "key": "P8_41",
809
+ "muxRegOffset": "0x0b0",
810
+ "options": [
811
+ "lcd_data4",
812
+ "gpmc_a4",
813
+ "pr1_mii0_txd1",
814
+ "eQEP2A_in",
815
+ "NA",
816
+ "pr1_pru1_pru_r30_4",
817
+ "pr1_pru1_pru_r31_4",
818
+ "gpio2_10"
819
+ ]
820
+ },
821
+ {
822
+ "name": "GPIO2_11",
823
+ "gpio": 75,
824
+ "mux": "lcd_data5",
825
+ "eeprom": 50,
826
+ "key": "P8_42",
827
+ "muxRegOffset": "0x0b4",
828
+ "options": [
829
+ "lcd_data5",
830
+ "gpmc_a5",
831
+ "pr1_mii0_txd0",
832
+ "eqep2b_in",
833
+ "NA",
834
+ "pr1_pru1_pru_r30_5",
835
+ "pr1_pru1_pru_r31_5",
836
+ "gpio2_11"
837
+ ]
838
+ },
839
+ {
840
+ "name": "GPIO2_8",
841
+ "gpio": 72,
842
+ "mux": "lcd_data2",
843
+ "eeprom": 47,
844
+ "key": "P8_43",
845
+ "muxRegOffset": "0x0a8",
846
+ "options": [
847
+ "lcd_data2",
848
+ "gpmc_a2",
849
+ "pr1_mii0_txd3",
850
+ "ehrpwm2_tripzone_input",
851
+ "NA",
852
+ "pr1_pru1_pru_r30_2",
853
+ "pr1_pru1_pru_r31_2",
854
+ "gpio2_8"
855
+ ]
856
+ },
857
+ {
858
+ "name": "GPIO2_9",
859
+ "gpio": 73,
860
+ "mux": "lcd_data3",
861
+ "eeprom": 48,
862
+ "key": "P8_44",
863
+ "muxRegOffset": "0x0ac",
864
+ "options": [
865
+ "lcd_data3",
866
+ "gpmc_a3",
867
+ "pr1_mii0_txd2",
868
+ "ehrpwm0_synco",
869
+ "NA",
870
+ "pr1_pru1_pru_r30_3",
871
+ "pr1_pru1_pru_r31_3",
872
+ "gpio2_9"
873
+ ]
874
+ },
875
+ {
876
+ "name": "GPIO2_6",
877
+ "gpio": 70,
878
+ "mux": "lcd_data0",
879
+ "eeprom": 45,
880
+ "pwm": {
881
+ "module": "ehrpwm2",
882
+ "sysfs": 5,
883
+ "index": 0,
884
+ "muxmode": 3,
885
+ "path": "ehrpwm.2:0",
886
+ "name": "EHRPWM2A"
887
+ },
888
+ "key": "P8_45",
889
+ "muxRegOffset": "0x0a0",
890
+ "options": [
891
+ "lcd_data0",
892
+ "gpmc_a0",
893
+ "pr1_mii_mt0_clk",
894
+ "ehrpwm2A",
895
+ "NA",
896
+ "pr1_pru1_pru_r30_0",
897
+ "pr1_pru1_pru_r31_0",
898
+ "gpio2_6"
899
+ ]
900
+ },
901
+ {
902
+ "name": "GPIO2_7",
903
+ "gpio": 71,
904
+ "mux": "lcd_data1",
905
+ "eeprom": 46,
906
+ "pwm": {
907
+ "module": "ehrpwm2",
908
+ "sysfs": 6,
909
+ "index": 1,
910
+ "muxmode": 3,
911
+ "path": "ehrpwm.2:1",
912
+ "name": "EHRPWM2B"
913
+ },
914
+ "key": "P8_46",
915
+ "muxRegOffset": "0x0a4",
916
+ "options": [
917
+ "lcd_data1",
918
+ "gpmc_a1",
919
+ "pr1_mii0_txen",
920
+ "ehrpwm2B",
921
+ "NA",
922
+ "pr1_pru1_pru_r30_1",
923
+ "pr1_pru1_pru_r31_1",
924
+ "gpio2_7"
925
+ ]
926
+ },
927
+ {
928
+ "name": "DGND",
929
+ "key": "P9_1"
930
+ },
931
+ {
932
+ "name": "DGND",
933
+ "key": "P9_2"
934
+ },
935
+ {
936
+ "name": "VDD_3V3",
937
+ "key": "P9_3"
938
+ },
939
+ {
940
+ "name": "VDD_3V3",
941
+ "key": "P9_4"
942
+ },
943
+ {
944
+ "name": "VDD_5V",
945
+ "key": "P9_5"
946
+ },
947
+ {
948
+ "name": "VDD_5V",
949
+ "key": "P9_6"
950
+ },
951
+ {
952
+ "name": "SYS_5V",
953
+ "key": "P9_7"
954
+ },
955
+ {
956
+ "name": "SYS_5V",
957
+ "key": "P9_8"
958
+ },
959
+ {
960
+ "name": "PWR_BUT",
961
+ "key": "P9_9"
962
+ },
963
+ {
964
+ "name": "SYS_RESETn",
965
+ "key": "P9_10"
966
+ },
967
+ {
968
+ "name": "UART4_RXD",
969
+ "gpio": 30,
970
+ "mux": "gpmc_wait0",
971
+ "eeprom": 18,
972
+ "key": "P9_11",
973
+ "muxRegOffset": "0x070",
974
+ "options": [
975
+ "gpmc_wait0",
976
+ "mii2_crs",
977
+ "NA",
978
+ "rmii2_crs_dv",
979
+ "mmc1_sdcd",
980
+ "NA",
981
+ "NA",
982
+ "gpio0_30"
983
+ ]
984
+ },
985
+ {
986
+ "name": "GPIO1_28",
987
+ "gpio": 60,
988
+ "mux": "gpmc_ben1",
989
+ "eeprom": 36,
990
+ "key": "P9_12",
991
+ "muxRegOffset": "0x078",
992
+ "options": [
993
+ "gpmc_ben1",
994
+ "mii2_col",
995
+ "NA",
996
+ "mmc2_dat3",
997
+ "NA",
998
+ "NA",
999
+ "mcasp0_aclkr",
1000
+ "gpio1_28"
1001
+ ]
1002
+ },
1003
+ {
1004
+ "name": "UART4_TXD",
1005
+ "gpio": 31,
1006
+ "mux": "gpmc_wpn",
1007
+ "eeprom": 19,
1008
+ "key": "P9_13",
1009
+ "muxRegOffset": "0x074",
1010
+ "options": [
1011
+ "gpmc_wpn",
1012
+ "mii2_rxerr",
1013
+ "NA",
1014
+ "rmii2_rxerr",
1015
+ "mmc2_sdcd",
1016
+ "NA",
1017
+ "NA",
1018
+ "gpio0_31"
1019
+ ]
1020
+ },
1021
+ {
1022
+ "name": "EHRPWM1A",
1023
+ "gpio": 50,
1024
+ "mux": "gpmc_a2",
1025
+ "eeprom": 34,
1026
+ "pwm": {
1027
+ "module": "ehrpwm1",
1028
+ "sysfs": 3,
1029
+ "index": 0,
1030
+ "muxmode": 6,
1031
+ "path": "ehrpwm.1:0",
1032
+ "name": "EHRPWM1A"
1033
+ },
1034
+ "key": "P9_14",
1035
+ "muxRegOffset": "0x048",
1036
+ "options": [
1037
+ "gpmc_a2",
1038
+ "gmii2_txd3",
1039
+ "rgmii2_td3",
1040
+ "mmc2_dat1",
1041
+ "gpmc_a18",
1042
+ "pr1_mii1_txd2",
1043
+ "ehrpwm1A",
1044
+ "gpio1_18"
1045
+ ]
1046
+ },
1047
+ {
1048
+ "name": "GPIO1_16",
1049
+ "gpio": 48,
1050
+ "mux": "mii1_rxd3",
1051
+ "eeprom": 32,
1052
+ "key": "P9_15",
1053
+ "muxRegOffset": "0x040",
1054
+ "options": [
1055
+ "gpmc_a0",
1056
+ "gmii2_txen",
1057
+ "rgmii2_tctl",
1058
+ "rmii2_txen",
1059
+ "gpmc_a16",
1060
+ "pr1_mii_mt1_clk",
1061
+ "ehrpwm1_tripzone_input",
1062
+ "gpio1_16"
1063
+ ]
1064
+ },
1065
+ {
1066
+ "name": "EHRPWM1B",
1067
+ "gpio": 51,
1068
+ "mux": "gpmc_a3",
1069
+ "eeprom": 35,
1070
+ "pwm": {
1071
+ "module": "ehrpwm1",
1072
+ "sysfs": 4,
1073
+ "index": 1,
1074
+ "muxmode": 6,
1075
+ "path": "ehrpwm.1:1",
1076
+ "name": "EHRPWM1B"
1077
+ },
1078
+ "key": "P9_16",
1079
+ "muxRegOffset": "0x04c",
1080
+ "options": [
1081
+ "gpmc_a3",
1082
+ "gmii2_txd2",
1083
+ "rgmii2_td2",
1084
+ "mmc2_dat2",
1085
+ "gpmc_a19",
1086
+ "pr1_mii1_txd1",
1087
+ "ehrpwm1B",
1088
+ "gpio1_19"
1089
+ ]
1090
+ },
1091
+ {
1092
+ "name": "I2C1_SCL",
1093
+ "gpio": 5,
1094
+ "mux": "spi0_cs0",
1095
+ "eeprom": 3,
1096
+ "key": "P9_17",
1097
+ "muxRegOffset": "0x15c",
1098
+ "options": [
1099
+ "spi0_cs0",
1100
+ "mmc2_sdwp",
1101
+ "i2c1_scl",
1102
+ "NA",
1103
+ "NA",
1104
+ "NA",
1105
+ "NA",
1106
+ "gpio0_5"
1107
+ ]
1108
+ },
1109
+ {
1110
+ "name": "I2C1_SDA",
1111
+ "gpio": 4,
1112
+ "mux": "spi0_d1",
1113
+ "eeprom": 2,
1114
+ "key": "P9_18",
1115
+ "muxRegOffset": "0x158",
1116
+ "options": [
1117
+ "spi0_d1",
1118
+ "mmc1_sdwp",
1119
+ "i2c1_sda",
1120
+ "NA",
1121
+ "NA",
1122
+ "NA",
1123
+ "NA",
1124
+ "gpio0_4"
1125
+ ]
1126
+ },
1127
+ {
1128
+ "name": "I2C2_SCL",
1129
+ "gpio": 13,
1130
+ "mux": "uart1_rtsn",
1131
+ "eeprom": 9,
1132
+ "key": "P9_19",
1133
+ "muxRegOffset": "0x17c",
1134
+ "options": [
1135
+ "uart1_rtsn",
1136
+ "NA",
1137
+ "d_can0_rx",
1138
+ "i2c2_scl",
1139
+ "spi1_cs1",
1140
+ "NA",
1141
+ "NA",
1142
+ "gpio0_13"
1143
+ ]
1144
+ },
1145
+ {
1146
+ "name": "I2C2_SDA",
1147
+ "gpio": 12,
1148
+ "mux": "uart1_ctsn",
1149
+ "eeprom": 10,
1150
+ "key": "P9_20",
1151
+ "muxRegOffset": "0x178",
1152
+ "options": [
1153
+ "uart1_ctsn",
1154
+ "NA",
1155
+ "d_can0_tx",
1156
+ "i2c2_sda",
1157
+ "spi1_cs0",
1158
+ "NA",
1159
+ "NA",
1160
+ "gpio0_12"
1161
+ ]
1162
+ },
1163
+ {
1164
+ "name": "UART2_TXD",
1165
+ "gpio": 3,
1166
+ "mux": "spi0_d0",
1167
+ "eeprom": 1,
1168
+ "pwm": {
1169
+ "module": "ehrpwm0",
1170
+ "sysfs": 1,
1171
+ "index": 1,
1172
+ "muxmode": 3,
1173
+ "path": "ehrpwm.0:1",
1174
+ "name": "EHRPWM0B"
1175
+ },
1176
+ "key": "P9_21",
1177
+ "muxRegOffset": "0x154",
1178
+ "options": [
1179
+ "spi0_d0",
1180
+ "uart2_txd",
1181
+ "i2c2_scl",
1182
+ "NA",
1183
+ "NA",
1184
+ "NA",
1185
+ "NA",
1186
+ "gpio0_3"
1187
+ ]
1188
+ },
1189
+ {
1190
+ "name": "UART2_RXD",
1191
+ "gpio": 2,
1192
+ "mux": "spi0_sclk",
1193
+ "eeprom": 0,
1194
+ "pwm": {
1195
+ "module": "ehrpwm0",
1196
+ "sysfs": 0,
1197
+ "index": 0,
1198
+ "muxmode": 3,
1199
+ "path": "ehrpwm.0:0",
1200
+ "name": "EHRPWM0A"
1201
+ },
1202
+ "key": "P9_22",
1203
+ "muxRegOffset": "0x150",
1204
+ "options": [
1205
+ "spi0_sclk",
1206
+ "uart2_rxd",
1207
+ "i2c2_sda",
1208
+ "NA",
1209
+ "NA",
1210
+ "NA",
1211
+ "NA",
1212
+ "gpio0_2"
1213
+ ]
1214
+ },
1215
+ {
1216
+ "name": "GPIO1_17",
1217
+ "gpio": 49,
1218
+ "mux": "gpmc_a1",
1219
+ "eeprom": 33,
1220
+ "key": "P9_23",
1221
+ "muxRegOffset": "0x044",
1222
+ "options": [
1223
+ "gpmc_a1",
1224
+ "gmii2_rxdv",
1225
+ "rgmii2_rctl",
1226
+ "mmc2_dat0",
1227
+ "gpmc_a17",
1228
+ "pr1_mii1_txd3",
1229
+ "ehrpwm0_synco",
1230
+ "gpio1_17"
1231
+ ]
1232
+ },
1233
+ {
1234
+ "name": "UART1_TXD",
1235
+ "gpio": 15,
1236
+ "mux": "uart1_txd",
1237
+ "eeprom": 12,
1238
+ "key": "P9_24",
1239
+ "muxRegOffset": "0x184",
1240
+ "options": [
1241
+ "uart1_txd",
1242
+ "mmc2_sdwp",
1243
+ "d_can1_rx",
1244
+ "i2c1_scl",
1245
+ "NA",
1246
+ "pr1_uart0_txd_mux1",
1247
+ "NA",
1248
+ "gpio0_15"
1249
+ ]
1250
+ },
1251
+ {
1252
+ "name": "GPIO3_21",
1253
+ "gpio": 117,
1254
+ "mux": "mcasp0_ahclkx",
1255
+ "eeprom": 66,
1256
+ "key": "P9_25",
1257
+ "muxRegOffset": "0x1ac",
1258
+ "options": [
1259
+ "mcasp0_ahclkx",
1260
+ "NA",
1261
+ "mcasp0_axr3",
1262
+ "mcasp1_axr1",
1263
+ "NA",
1264
+ "NA",
1265
+ "NA",
1266
+ "gpio3_21"
1267
+ ]
1268
+ },
1269
+ {
1270
+ "name": "UART1_RXD",
1271
+ "gpio": 14,
1272
+ "mux": "uart1_rxd",
1273
+ "eeprom": 11,
1274
+ "key": "P9_26",
1275
+ "muxRegOffset": "0x180",
1276
+ "options": [
1277
+ "uart1_rxd",
1278
+ "mmc1_sdwp",
1279
+ "d_can1_tx",
1280
+ "i2c1_sda",
1281
+ "NA",
1282
+ "pr1_uart0_rxd_mux1",
1283
+ "NA",
1284
+ "gpio0_14"
1285
+ ]
1286
+ },
1287
+ {
1288
+ "name": "GPIO3_19",
1289
+ "gpio": 115,
1290
+ "mux": "mcasp0_fsr",
1291
+ "eeprom": 64,
1292
+ "key": "P9_27",
1293
+ "muxRegOffset": "0x1a4",
1294
+ "options": [
1295
+ "mcasp0_fsr",
1296
+ "NA",
1297
+ "mcasp0_axr3",
1298
+ "mcasp1_fsx",
1299
+ "NA",
1300
+ "pr1_pru0_pru_r30_5",
1301
+ "NA",
1302
+ "gpio3_19"
1303
+ ]
1304
+ },
1305
+ {
1306
+ "name": "SPI1_CS0",
1307
+ "gpio": 113,
1308
+ "mux": "mcasp0_ahclkr",
1309
+ "eeprom": 63,
1310
+ "pwm": {
1311
+ "module": "ecap2",
1312
+ "sysfs": 7,
1313
+ "index": 2,
1314
+ "muxmode": 4,
1315
+ "path": "ecap.2",
1316
+ "name": "ECAPPWM2"
1317
+ },
1318
+ "key": "P9_28",
1319
+ "muxRegOffset": "0x19c",
1320
+ "options": [
1321
+ "mcasp0_ahclkr",
1322
+ "NA",
1323
+ "mcasp0_axr2",
1324
+ "spi1_cs0",
1325
+ "eCAP2_in_PWM2_out",
1326
+ "NA",
1327
+ "NA",
1328
+ "gpio3_17"
1329
+ ]
1330
+ },
1331
+ {
1332
+ "name": "SPI1_D0",
1333
+ "gpio": 111,
1334
+ "mux": "mcasp0_fsx",
1335
+ "eeprom": 61,
1336
+ "pwm": {
1337
+ "module": "ehrpwm0",
1338
+ "sysfs": 1,
1339
+ "index": 1,
1340
+ "muxmode": 1,
1341
+ "path": "ehrpwm.0:1",
1342
+ "name": "EHRPWM0B"
1343
+ },
1344
+ "key": "P9_29",
1345
+ "muxRegOffset": "0x194",
1346
+ "options": [
1347
+ "mcasp0_fsx",
1348
+ "ehrpwm0B",
1349
+ "NA",
1350
+ "spi1_d0",
1351
+ "mmc1_sdcd",
1352
+ "NA",
1353
+ "NA",
1354
+ "gpio3_15"
1355
+ ]
1356
+ },
1357
+ {
1358
+ "name": "SPI1_D1",
1359
+ "gpio": 112,
1360
+ "mux": "mcasp0_axr0",
1361
+ "eeprom": 62,
1362
+ "key": "P9_30",
1363
+ "muxRegOffset": "0x198",
1364
+ "options": [
1365
+ "mcasp0_axr0",
1366
+ "NA",
1367
+ "NA",
1368
+ "spi1_d1",
1369
+ "mmc2_sdcd",
1370
+ "NA",
1371
+ "NA",
1372
+ "gpio3_16"
1373
+ ]
1374
+ },
1375
+ {
1376
+ "name": "SPI1_SCLK",
1377
+ "gpio": 110,
1378
+ "mux": "mcasp0_aclkx",
1379
+ "eeprom": 65,
1380
+ "pwm": {
1381
+ "module": "ehrpwm0",
1382
+ "sysfs": 0,
1383
+ "index": 0,
1384
+ "muxmode": 1,
1385
+ "path": "ehrpwm.0:0",
1386
+ "name": "EHRPWM0A"
1387
+ },
1388
+ "key": "P9_31",
1389
+ "muxRegOffset": "0x190",
1390
+ "options": [
1391
+ "mcasp0_aclkx",
1392
+ "ehrpwm0A",
1393
+ "NA",
1394
+ "spi1_sclk",
1395
+ "mmc0_sdcd",
1396
+ "NA",
1397
+ "NA",
1398
+ "gpio3_14"
1399
+ ]
1400
+ },
1401
+ {
1402
+ "name": "VDD_ADC",
1403
+ "key": "P9_32"
1404
+ },
1405
+ {
1406
+ "name": "AIN4",
1407
+ "ain": 4,
1408
+ "eeprom": 71,
1409
+ "scale": 4096,
1410
+ "key": "P9_33"
1411
+ },
1412
+ {
1413
+ "name": "GNDA_ADC",
1414
+ "key": "P9_34"
1415
+ },
1416
+ {
1417
+ "name": "AIN6",
1418
+ "ain": 6,
1419
+ "eeprom": 73,
1420
+ "scale": 4096,
1421
+ "key": "P9_35"
1422
+ },
1423
+ {
1424
+ "name": "AIN5",
1425
+ "ain": 5,
1426
+ "eeprom": 72,
1427
+ "scale": 4096,
1428
+ "key": "P9_36"
1429
+ },
1430
+ {
1431
+ "name": "AIN2",
1432
+ "ain": 2,
1433
+ "eeprom": 69,
1434
+ "scale": 4096,
1435
+ "key": "P9_37"
1436
+ },
1437
+ {
1438
+ "name": "AIN3",
1439
+ "ain": 3,
1440
+ "eeprom": 70,
1441
+ "scale": 4096,
1442
+ "key": "P9_38"
1443
+ },
1444
+ {
1445
+ "name": "AIN0",
1446
+ "ain": 0,
1447
+ "eeprom": 67,
1448
+ "scale": 4096,
1449
+ "key": "P9_39"
1450
+ },
1451
+ {
1452
+ "name": "AIN1",
1453
+ "ain": 1,
1454
+ "eeprom": 68,
1455
+ "scale": 4096,
1456
+ "key": "P9_40"
1457
+ },
1458
+ {
1459
+ "name": "CLKOUT2",
1460
+ "gpio": 20,
1461
+ "mux": "xdma_event_intr1",
1462
+ "eeprom": 13,
1463
+ "key": "P9_41",
1464
+ "muxRegOffset": "0x1b4",
1465
+ "options": [
1466
+ "xdma_event_intr1",
1467
+ "NA",
1468
+ "NA",
1469
+ "clkout2",
1470
+ "NA",
1471
+ "NA",
1472
+ "NA",
1473
+ "gpio0_20"
1474
+ ]
1475
+ },
1476
+ {
1477
+ "name": "GPIO0_7",
1478
+ "gpio": 7,
1479
+ "mux": "ecap0_in_pwm0_out",
1480
+ "eeprom": 4,
1481
+ "pwm": {
1482
+ "module": "ecap0",
1483
+ "sysfs": 2,
1484
+ "index": 0,
1485
+ "muxmode": 0,
1486
+ "path": "ecap.0",
1487
+ "name": "ECAPPWM0"
1488
+ },
1489
+ "key": "P9_42",
1490
+ "muxRegOffset": "0x164",
1491
+ "options": [
1492
+ "eCAP0_in_PWM0_out",
1493
+ "uart3_txd",
1494
+ "spi1_cs1",
1495
+ "pr1_ecap0_ecap_capin_apwm_o",
1496
+ "spi1_sclk",
1497
+ "mmc0_sdwp",
1498
+ "xdma_event_intr2",
1499
+ "gpio0_7"
1500
+ ]
1501
+ },
1502
+ {
1503
+ "name": "DGND",
1504
+ "key": "P9_43"
1505
+ },
1506
+ {
1507
+ "name": "DGND",
1508
+ "key": "P9_44"
1509
+ },
1510
+ {
1511
+ "name": "DGND",
1512
+ "key": "P9_45"
1513
+ },
1514
+ {
1515
+ "name": "DGND",
1516
+ "key": "P9_46"
1517
+ }
1518
+ ]
1519
+ }