Showing preview only (490K chars total). Download the full file or copy to clipboard to get everything.
Repository: jadonk/bonescript
Branch: master
Commit: e44d24450712
Files: 81
Total size: 465.2 KB
Directory structure:
gitextract_mlaszepj/
├── .gitignore
├── .travis.yml
├── LICENSE
├── Makefile
├── README.md
├── autorun.js
├── dts/
│ ├── bs_template.dts
│ ├── bspm_template.dts
│ └── bspwm_template.dts
├── etc/
│ ├── avahi/
│ │ └── services/
│ │ └── bone101.service
│ ├── default/
│ │ ├── cloud9
│ │ └── node
│ └── profile.d/
│ └── node.sh
├── lint-config.json
├── main.js
├── package.json
├── server.js
├── src/
│ ├── autorun.js
│ ├── bone.js
│ ├── bonescript.js
│ ├── constants.js
│ ├── eeprom.js
│ ├── ffiimp.js
│ ├── functions.js
│ ├── hw_capemgr.js
│ ├── hw_mainline.js
│ ├── hw_oldkernel.js
│ ├── hw_simulator.js
│ ├── hw_universal.js
│ ├── iic.js
│ ├── index.d.ts
│ ├── index.js
│ ├── my.js
│ ├── parse.js
│ ├── rc.js
│ ├── serial.js
│ ├── server.js
│ └── socket_handlers.js
├── systemd/
│ ├── bonescript-autorun.service
│ ├── bonescript.service
│ └── bonescript.socket
└── test/
├── TODO/
│ ├── bacon_test.js
│ ├── basic_sanity.sh
│ ├── constants.js
│ ├── eeprom.js
│ ├── fix-ssh.js
│ ├── fix-ssh.sh
│ ├── gitconfig
│ ├── remote_bonetest.js
│ ├── setdate.js
│ ├── test-analogwrite.js
│ ├── test-digitalread.js
│ ├── test-digitalwrite.js
│ ├── test-eeproms.json
│ ├── test-getpinmode.js
│ ├── test-globalsetuploop.js
│ ├── test-i2c-accel.js
│ ├── test-i2c.js
│ ├── test-pocketbeagle.js
│ ├── test-serial.js
│ ├── test-templates.js
│ ├── test-unloadslot.js
│ ├── test.sh
│ ├── update-bonescript.sh
│ ├── watch-button.js
│ ├── watch-button.sh
│ └── wired_basic_test.js
├── test-analogread.js
├── test-analogwrite.js
├── test-autorun.js
├── test-bone.js
├── test-digitalread.js
├── test-digitalwrite.js
├── test-ffi.js
├── test-getpinmode.js
├── test-lint.js
├── test-math.js
├── test-pinMode.js
├── test-rpc.js
├── test-rpc_secure.js
└── test-sanity.js
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
.settings.xml
.DS_Store
bonescript.log
*~
node_modules
.coveralls.yml
================================================
FILE: .travis.yml
================================================
sudo: required
language: node_js
node_js:
- "6"
- "8"
- "10"
after_script:
- npm run-script coveralls
notifications:
irc:
- "chat.freenode.net#beagle-bonescript"
webhooks:
urls:
- https://webhooks.gitter.im/e/800e4efb92aa7f8eda15
on_success: change # options: [always|never|change] default: always
on_failure: always # options: [always|never|change] default: always
on_start: false # default: false
================================================
FILE: LICENSE
================================================
Copyright (c) 2011 Jason Kridner <jdk@ti.com>
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: Makefile
================================================
PREFIX:=/usr/local
npm_options:=--unsafe-perm=true --progress=false --loglevel=error
NODE_PATH:=$(DESTDIR)$(PREFIX)/lib/node_modules
NODEJS:=nodejs
NPM:=npm
ver=$(shell nodejs -pe "require('./package.json').version")
npm_version=$(shell $(NPM) --version)
node_version=$(shell $(NODEJS) --version)
bs_path=./build/lib/node_modules/bonescript
all:
mkdir -p $(bs_path)
echo $(ver) > $(bs_path)/bonescript.version
echo $(node_version) > $(bs_path)/bonescript.node_version
echo $(npm_version) > $(bs_path)/bonescript.npm_version
TERM=dumb $(NPM) install -g $(npm_options) --prefix ./build
cp -dr --preserve=mode,timestamp etc/* ./build/etc/
clean:
rm -rf build
test:
install:
install -m 0755 -d $(DESTDIR)$(PREFIX)
cp -dr --preserve=mode,timestamp ./build/* $(DESTDIR)$(PREFIX)/
systemctl stop bonescript-autorun.service || true
systemctl stop bonescript.service || true
systemctl stop bonescript.socket || true
install -m 0755 -d $(DESTDIR)/lib/systemd/system
install -m 0644 systemd/bonescript.socket $(DESTDIR)/lib/systemd/system/
install -m 0644 systemd/bonescript.service $(DESTDIR)/lib/systemd/system/
install -m 0644 systemd/bonescript-autorun.service $(DESTDIR)/lib/systemd/system/
systemctl enable bonescript.socket || true
systemctl enable bonescript.service || true
systemctl enable bonescript-autorun.service || true
.PHONY: clean test install
================================================
FILE: README.md
================================================
BoneScript
==========
[](https://gitter.im/jadonk/bonescript?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[](https://travis-ci.org/jadonk/bonescript)
[](https://coveralls.io/r/jadonk/bonescript)
BoneScript is a node.js library for physical computing on embedded Linux,
starting with support for BeagleBone.
Information on the language is available at http://nodejs.org.
To check the version and to see if BoneScript is in your path, try running:
````sh
node -pe "require('bonescript').getPlatform().bonescript"
````
Additional documentation is available at http://beagleboard.org/bonescript.
The concept is to use Arduino-like functions written in JavaScript to
simplify learning how to do physical computing tasks under embedded Linux
and to further provide support for rapidly creating GUIs for your embedded
applications through the use of HTML5/JavaScript web pages.
Global Installation
-------------------
BoneScript comes installed on your BeagleBone. To update to the latest revision, use 'npm'
on a recent BeagleBoard.org Debian image from https://beagleboard.org/latest-images
and perform:
````sh
TERM=none sudo npm cache clear
TERM=none sudo npm install -g --prefix /usr/local --unsafe-perm bonescript
sudo shutdown -r now
````
Testing on other distributions is limited.
There are some additional installation steps that can be performed, but are typically
installed by other mechanisms on the BeagleBoard.org Debian images. These setup
background services (bone101 webserver with bonescript RPC and bonescript autorun
service) as well as configure environment variables for these services and other
globally run scripts.
````sh
sudo cp bonescript/etc/default/node /etc/default/node
sudo cp bonescript/etc/profile.d/node.sh /etc/profile.d/node.sh
sudo cp bonescript/systemd/\* /lib/systemd/system
sudo systemctl enable bonescript.socket
sudo systemctl enable bonescript-autorun.service
````
Launching applications persistently
-----------------------------------
To have your applications launch on startup, simply drop them into the
/var/lib/cloud9/autorun folder. Moving them out of that folder will kill
the processes. You are expected to only drop in already bug-free apps into
this folder as there isn't a good way to perform debug on them.
Note on code state
==================
There's still a lot of development going on, so be sure to check back on a
frequent basis. Many of the fancier peripherals aren't yet supported
except through performing file I/O.
Directory layout
----------------
* index.js: Main BoneScript source code
* autorun.js: Node.JS app to run apps dropped in the autorun folder
* package.json: NPM.JS package descriptor
* server.js: BoneScript web server to serve up remote procedure calls
* dts: Devicetree templates
* etc: Configuration files to be placed in target distro
* src: Library source code
* systemd: Configuration files for systemd to start services
* test: To-be-automated test code
Template
========
For a BoneScript application, you must currently manually 'require' the
bonescript library. Functions are then referenced through the object
provided back from require.
I started out trying to provide Arduino-like setup/loop functions, but the
idea really isn't a good match for JavaScript. Using JavaScript's native
flow works best, but the familiar functions are enough to give you a boost
in your physical computing productivity.
Here's an example:
````javascript
var b = require('bonescript');
b.pinMode('P8_12', b.INPUT);
b.pinMode('P8_13', b.OUTPUT);
setInterval(copyInputToOutput, 100);
function copyInputToOutput() {
b.digitalRead('P8_12', writeToOutput);
function writeToOutput(x) {
b.digitalWrite('P8_13', x.value);
}
}
````
The 'P8\_12' and 'P8\_13' are pin names on the board and the above example
would copy the input value at P8\_12 to the output P8\_13 every 100 ms.
API
===
When a callback is provided, the functions will behave asynchronously.
Without a callback provided, the functions will synchronize and complete
before returning.
System
------
* getPlatform([callback]) -> platform
* getEeproms([callback]) -> eeproms
* echo(data, [callback]) -> data
* readTextFile(filename, [callback]) -> data
* writeTextFile(filename, data, [callback])
* setDate(date, [callback])
Digital and Analog I/O
----------------------
* analogRead(pin, [callback]) -> value
* analogWrite(pin, value, [freq], [callback])
* attachInterrupt(pin, handler, mode, [callback])
* detachInterrupt(pin, [callback])
* digitalRead(pin, [calback]) -> value
* digitalWrite(pin, value, [callback])
* pinMode(pin, direction, [mux], [pullup], [slew], [callback])
* getPinMode(pin, [callback]) -> pinMode
* shiftOut(dataPin, clockPin, bitOrder, val, [callback])
Serial
------
Uses https://github.com/voodootikigod/node-serialport
* serialOpen(port, options, [callback])
* serialWrite(port, data, [callback])
* serialParsers is serialport.parsers
I2C
---
Uses https://github.com/korevec/node-i2c
* i2cOpen(port, address, options, [callback])
* i2cScan(port, [callback])
* i2cWriteByte(port, byte, [callback])
* i2cWriteBytes(port, command, bytes, [callback])
* i2cReadByte(port, [callback])
* i2cReadBytes(port, command, length, [callback])
* i2cStream(port, command, length, [callback])
Robot Control
-------------
__new in 0.7.0__ Runs on BeagleBone Blue; or BeagleBone Black or BeagleBone Black Wireless with BeagleBoard.org Robotics Cape
* rcInitialize([callback])
* rcState([state], [callback]) -> state
* rcLED(led, [value], [callback]) -> value
* rcOn(event, [callback])
* rcMotor(motor, value, [callback])
* rcServo(option, value, [callback])
* rcBMP([option], [callback]) -> value
* rcIMU([option], [callback]) -> value
* rcEncoder(encoder, [value], [callback]) -> value
Bits/Bytes, Math, Trigonometry and Random Numbers
-------------------------------------------------
* lowByte(value)
* highByte(value)
* bitRead(value, bitnum)
* bitWrite(value, bitnum, bitdata)
* bitSet(value, bitnum)
* bitClear(value, bitnum)
* bit(bitnum)
* min(x, y)
* max(x, y)
* abs(x)
* constrain(x, a, b)
* map(value, fromLow, fromHigh, toLow, toHigh)
* pow(x, y)
* sqrt(x)
* sin(radians)
* cos(radians)
* tan(radians)
* randomSeed(x)
* random([min], max)
Note on performance
===================
This code is totally unoptimized. The list of possible optimizations that run
through my head is staggering. The good news is that I think it can all be
done without impacting the API, primarily thanks to the introspection
capabilities of JavaScript.
Eventually, this is planned to enable real-time usage, directly from
JavaScript. The plan is to attact the ability to use this programming environment
in real-time on several fronts:
* Enabling multiple loops and analyzing them to determine if they can be off-
loaded to a PRU. This will be the primary mechanism for providing real-time
servicing of the IOs.
* Providing higher-order services that utilize the standard peripherals for
their intended use:
- Serial drivers for I2C, SPI, UARTs, etc.
- analogWrite for PWMs using hardware PWMs, timers, kernel GPIO drivers, etc.
* Adding real-time patches to the kernel
The JavaScript language provides some features that I think are really cool
for doing embedded programming and node.js does some things to help enable
that. The primary one is that the I/O functions are all asynchronous. For
embedded systems, this is especially useful for performing low-latency tasks
that respond to events in the system. What makes JavaScript so much easier
than other languages for doing this is that it keeps the full context around
the handler, so you don't have to worry about it.
What's New
==========
0.7.4 key updates
-----------------
* Enabled BeagleBone AI GPIO functions (digitalRead/digitalWrite/getPinMode)
0.7.3 key updates
-----------------
Big speed-up on loading by lazy-loading infrequently used modules
0.7.2 key updates
-----------------
* https://github.com/beagleboard/bonescript/issues/52
* https://github.com/beagleboard/bonescript/issues/53
0.7.1 key updates
-----------------
Very minor update on a function scope
0.7.0 key updates
-----------------
Most of these fixes came from a [Google Summer of Code 2018 project](https://github.com/vaishnav98/bone101/wiki/BeagleBoard-GSoC'18:-Fixing-Bugs-in-BoneScript-and-Improving-BeagleBone-User-Interface)
* Fixes in PWM output during analogWrite updates
* Added function calls for Robot Control library support on BeagleBone Blue or Robotics Cape
* Added support for node-style callbacks with error and data separated (optional)
Plans
=====
* SPI support
* PRU support
* Handling array of pins in pinMode and getPinMode
* Saving off created dtbo and writing configuration to cape EEPROM
================================================
FILE: autorun.js
================================================
var b = require('bonescript');
var directory = (process.env.AUTORUN_DIR) ? process.env.AUTORUN_DIR : '/var/lib/cloud9/autorun';
b.autorun(directory);
================================================
FILE: dts/bs_template.dts
================================================
// Copyright 2013
// Charles Steinkuehler <charles@steinkuehler.net>
// Copyright 2014
// Jason Kridner <jdk@ti.com>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
/dts-v1/;
/plugin/;
/ {
compatible = "ti,beaglebone", "ti,beaglebone-black";
/* identification */
part-number = "cape-bonescript";
version = "00A0";
/* state the resources this cape uses */
exclusive-use =
/* "P8.1", GND */
/* "P8.2", GND */
/* "P8.3", emmc */
/* "P8.4", emmc */
/* "P8.5", emmc */
/* "P8.6", emmc */
"P8.7",
"P8.8",
"P8.9",
"P8.10",
"P8.11",
"P8.12",
"P8.13",
"P8.14",
"P8.15",
"P8.16",
"P8.17",
"P8.18",
"P8.19",
/* "P8.20", emmc */
/* "P8.21", emmc */
/* "P8.22", emmc */
/* "P8.23", emmc */
/* "P8.24", emmc */
/* "P8.25", emmc */
"P8.26",
/* "P8.27", hdmi */
/* "P8.28", hdmi */
/* "P8.29", hdmi */
/* "P8.30", hdmi */
/* "P8.31", hdmi */
/* "P8.32", hdmi */
/* "P8.33", hdmi */
/* "P8.34", hdmi */
/* "P8.35", hdmi */
/* "P8.36", hdmi */
/* "P8.37", hdmi */
/* "P8.38", hdmi */
/* "P8.39", hdmi */
/* "P8.40", hdmi */
/* "P8.41", hdmi */
/* "P8.42", hdmi */
/* "P8.43", hdmi */
/* "P8.44", hdmi */
/* "P8.45", hdmi */
/* "P8.46", hdmi */
/* "P9.1", GND */
/* "P9.2", GND */
/* "P9.3", 3.3V */
/* "P9.4", 3.3V */
/* "P9.5", VDD_5V */
/* "P9.6", VDD_5V */
/* "P9.7", SYS_5V */
/* "P9.8", SYS_5V */
/* "P9.9", PWR_BUT */
/* "P9.10", RESETn */
"P9.11",
"P9.12",
"P9.13",
"P9.14",
"P9.15",
"P9.16",
"P9.17",
"P9.18",
/* "P9.19", I2C */
/* "P9.20", I2C */
"P9.21",
"P9.22",
"P9.23",
"P9.24",
/* "P9.25", Audio */
"P9.26",
"P9.27",
/* "P9.28", Audio */
/* "P9.29", Audio */
"P9.30",
/* "P9.31", Audio */
/* "P9.32", VADC */
/* "P9.33", AIN4 */
/* "P9.34", AGND */
/* "P9.35", AIN6 */
/* "P9.36", AIN5 */
/* "P9.37", AIN2 */
/* "P9.38", AIN3 */
/* "P9.39", AIN0 */
/* "P9.40", AIN1 */
"P9.41",
"P9.41.1",
"P9.42",
"P9.42.1",
/* "P9.43", GND */
/* "P9.44", GND */
/* "P9.45", GND */
/* "P9.46", GND */
"uart1",
"uart2",
"uart4",
// "uart5", /* Conflicts with HDMI */
"ehrpwm0A",
"ehrpwm0B",
"ehrpwm1A",
"ehrpwm1B",
"ehrpwm2A",
"ehrpwm2B",
// "epwmss0",
// "ehrpwm0",
// "ecap0",
// "epwmss1",
// "ehrpwm1",
// "epwmss2",
// "ehrpwm2",
// "ecap2",
"i2c1",
"spi1",
"spi0",
"dcan0",
"dcan1",
"pru0",
"pru1",
"pruss";
fragment@0 {
target = <&am33xx_pinmux>;
__overlay__ {
/************************/
/* P8 Header */
/************************/
/* P8_01 GND */
/* P8_02 GND */
/* P8_03 (ZCZ ball R9 ) emmc */
/* P8_04 (ZCZ ball T9 ) emmc */
/* P8_05 (ZCZ ball R8 ) emmc */
/* P8_06 (ZCZ ball T8 ) emmc */
/* P8_07 (ZCZ ball R7 ) */
P8_07_default_pin: pinmux_P8_07_default_pin {
pinctrl-single,pins = <0x090 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P8_07_gpio_pin: pinmux_P8_07_gpio_pin {
pinctrl-single,pins = <0x090 0x2F>; }; /* Mode 7, RxActive */
P8_07_gpio_pu_pin: pinmux_P8_07_gpio_pu_pin {
pinctrl-single,pins = <0x090 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P8_07_gpio_pd_pin: pinmux_P8_07_gpio_pd_pin {
pinctrl-single,pins = <0x090 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P8_07_timer_pin: pinmux_P8_07_timer_pin {
pinctrl-single,pins = <0x090 0x32>; }; /* Mode 2, Pull-Up, RxActive */
/* P8_08 (ZCZ ball T7 ) */
P8_08_default_pin: pinmux_P8_08_default_pin {
pinctrl-single,pins = <0x094 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P8_08_gpio_pin: pinmux_P8_08_gpio_pin {
pinctrl-single,pins = <0x094 0x2F>; }; /* Mode 7, RxActive */
P8_08_gpio_pu_pin: pinmux_P8_08_gpio_pu_pin {
pinctrl-single,pins = <0x094 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P8_08_gpio_pd_pin: pinmux_P8_08_gpio_pd_pin {
pinctrl-single,pins = <0x094 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P8_08_timer_pin: pinmux_P8_08_timer_pin {
pinctrl-single,pins = <0x094 0x32>; }; /* Mode 2, Pull-Up, RxActive */
/* P8_09 (ZCZ ball T6 ) */
P8_09_default_pin: pinmux_P8_09_default_pin {
pinctrl-single,pins = <0x09c 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P8_09_gpio_pin: pinmux_P8_09_gpio_pin {
pinctrl-single,pins = <0x09c 0x2F>; }; /* Mode 7, RxActive */
P8_09_gpio_pu_pin: pinmux_P8_09_gpio_pu_pin {
pinctrl-single,pins = <0x09c 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P8_09_gpio_pd_pin: pinmux_P8_09_gpio_pd_pin {
pinctrl-single,pins = <0x09c 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P8_09_timer_pin: pinmux_P8_09_timer_pin {
pinctrl-single,pins = <0x09c 0x32>; }; /* Mode 2, Pull-Up, RxActive */
/* P8_10 (ZCZ ball U6 ) */
P8_10_default_pin: pinmux_P8_10_default_pin {
pinctrl-single,pins = <0x098 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P8_10_gpio_pin: pinmux_P8_10_gpio_pin {
pinctrl-single,pins = <0x098 0x2F>; }; /* Mode 7, RxActive */
P8_10_gpio_pu_pin: pinmux_P8_10_gpio_pu_pin {
pinctrl-single,pins = <0x098 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P8_10_gpio_pd_pin: pinmux_P8_10_gpio_pd_pin {
pinctrl-single,pins = <0x098 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P8_10_timer_pin: pinmux_P8_10_timer_pin {
pinctrl-single,pins = <0x098 0x32>; }; /* Mode 2, Pull-Up, RxActive */
/* P8_11 (ZCZ ball R12) */
P8_11_default_pin: pinmux_P8_11_default_pin {
pinctrl-single,pins = <0x034 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P8_11_gpio_pin: pinmux_P8_11_gpio_pin {
pinctrl-single,pins = <0x034 0x2F>; }; /* Mode 7, RxActive */
P8_11_gpio_pu_pin: pinmux_P8_11_gpio_pu_pin {
pinctrl-single,pins = <0x034 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P8_11_gpio_pd_pin: pinmux_P8_11_gpio_pd_pin {
pinctrl-single,pins = <0x034 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P8_11_pruout_pin: pinmux_P8_11_pruout_pin {
pinctrl-single,pins = <0x034 0x26>; }; /* Mode 6, Pull-Down, RxActive */
P8_11_qep_pin: pinmux_P8_11_qep_pin {
pinctrl-single,pins = <0x034 0x24>; }; /* Mode 4, Pull-Down, RxActive */
/* P8_12 (ZCZ ball T12) */
P8_12_default_pin: pinmux_P8_12_default_pin {
pinctrl-single,pins = <0x030 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P8_12_gpio_pin: pinmux_P8_12_gpio_pin {
pinctrl-single,pins = <0x030 0x2F>; }; /* Mode 7, RxActive */
P8_12_gpio_pu_pin: pinmux_P8_12_gpio_pu_pin {
pinctrl-single,pins = <0x030 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P8_12_gpio_pd_pin: pinmux_P8_12_gpio_pd_pin {
pinctrl-single,pins = <0x030 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P8_12_pruout_pin: pinmux_P8_12_pruout_pin {
pinctrl-single,pins = <0x030 0x26>; }; /* Mode 6, Pull-Down, RxActive */
P8_12_qep_pin: pinmux_P8_12_qep_pin {
pinctrl-single,pins = <0x030 0x24>; }; /* Mode 4, Pull-Down, RxActive */
/* P8_13 (ZCZ ball T10) */
P8_13_default_pin: pinmux_P8_13_default_pin {
pinctrl-single,pins = <0x024 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P8_13_gpio_pin: pinmux_P8_13_gpio_pin {
pinctrl-single,pins = <0x024 0x2F>; }; /* Mode 7, RxActive */
P8_13_gpio_pu_pin: pinmux_P8_13_gpio_pu_pin {
pinctrl-single,pins = <0x024 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P8_13_gpio_pd_pin: pinmux_P8_13_gpio_pd_pin {
pinctrl-single,pins = <0x024 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P8_13_pwm_pin: pinmux_P8_13_pwm_pin {
pinctrl-single,pins = <0x024 0x24>; }; /* Mode 4, Pull-Down, RxActive */
/* P8_14 (ZCZ ball T11) */
P8_14_default_pin: pinmux_P8_14_default_pin {
pinctrl-single,pins = <0x028 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P8_14_gpio_pin: pinmux_P8_14_gpio_pin {
pinctrl-single,pins = <0x028 0x2F>; }; /* Mode 7, RxActive */
P8_14_gpio_pu_pin: pinmux_P8_14_gpio_pu_pin {
pinctrl-single,pins = <0x028 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P8_14_gpio_pd_pin: pinmux_P8_14_gpio_pd_pin {
pinctrl-single,pins = <0x028 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P8_14_pwm_pin: pinmux_P8_14_pwm_pin {
pinctrl-single,pins = <0x028 0x24>; }; /* Mode 4, Pull-Down, RxActive */
/* P8_15 (ZCZ ball U13) */
P8_15_default_pin: pinmux_P8_15_default_pin {
pinctrl-single,pins = <0x03c 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P8_15_gpio_pin: pinmux_P8_15_gpio_pin {
pinctrl-single,pins = <0x03c 0x2F>; }; /* Mode 7, RxActive */
P8_15_gpio_pu_pin: pinmux_P8_15_gpio_pu_pin {
pinctrl-single,pins = <0x03c 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P8_15_gpio_pd_pin: pinmux_P8_15_gpio_pd_pin {
pinctrl-single,pins = <0x03c 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P8_15_pruin_pin: pinmux_P8_15_pruin_pin {
pinctrl-single,pins = <0x03c 0x26>; }; /* Mode 6, Pull-Down, RxActive */
P8_15_qep_pin: pinmux_P8_15_qep_pin {
pinctrl-single,pins = <0x03c 0x24>; }; /* Mode 4, Pull-Down, RxActive */
/* P8_16 (ZCZ ball V13) */
P8_16_default_pin: pinmux_P8_16_default_pin {
pinctrl-single,pins = <0x038 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P8_16_gpio_pin: pinmux_P8_16_gpio_pin {
pinctrl-single,pins = <0x038 0x2F>; }; /* Mode 7, RxActive */
P8_16_gpio_pu_pin: pinmux_P8_16_gpio_pu_pin {
pinctrl-single,pins = <0x038 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P8_16_gpio_pd_pin: pinmux_P8_16_gpio_pd_pin {
pinctrl-single,pins = <0x038 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P8_16_pruin_pin: pinmux_P8_16_pruin_pin {
pinctrl-single,pins = <0x038 0x26>; }; /* Mode 6, Pull-Down, RxActive */
P8_16_qep_pin: pinmux_P8_16_qep_pin {
pinctrl-single,pins = <0x038 0x24>; }; /* Mode 4, Pull-Down, RxActive */
/* P8_17 (ZCZ ball U12) */
P8_17_default_pin: pinmux_P8_17_default_pin {
pinctrl-single,pins = <0x02c 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P8_17_gpio_pin: pinmux_P8_17_gpio_pin {
pinctrl-single,pins = <0x02c 0x2F>; }; /* Mode 7, RxActive */
P8_17_gpio_pu_pin: pinmux_P8_17_gpio_pu_pin {
pinctrl-single,pins = <0x02c 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P8_17_gpio_pd_pin: pinmux_P8_17_gpio_pd_pin {
pinctrl-single,pins = <0x02c 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P8_17_pwm_pin: pinmux_P8_17_pwm_pin {
pinctrl-single,pins = <0x02c 0x24>; }; /* Mode 4, Pull-Down, RxActive */
/* P8_18 (ZCZ ball V12) */
P8_18_default_pin: pinmux_P8_18_default_pin {
pinctrl-single,pins = <0x08c 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P8_18_gpio_pin: pinmux_P8_18_gpio_pin {
pinctrl-single,pins = <0x08c 0x2F>; }; /* Mode 7, RxActive */
P8_18_gpio_pu_pin: pinmux_P8_18_gpio_pu_pin {
pinctrl-single,pins = <0x08c 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P8_18_gpio_pd_pin: pinmux_P8_18_gpio_pd_pin {
pinctrl-single,pins = <0x08c 0x27>; }; /* Mode 7, Pull-Down, RxActive */
/* P8_19 (ZCZ ball U10) */
P8_19_default_pin: pinmux_P8_19_default_pin {
pinctrl-single,pins = <0x020 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P8_19_gpio_pin: pinmux_P8_19_gpio_pin {
pinctrl-single,pins = <0x020 0x2F>; }; /* Mode 7, RxActive */
P8_19_gpio_pu_pin: pinmux_P8_19_gpio_pu_pin {
pinctrl-single,pins = <0x020 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P8_19_gpio_pd_pin: pinmux_P8_19_gpio_pd_pin {
pinctrl-single,pins = <0x020 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P8_19_pwm_pin: pinmux_P8_19_pwm_pin {
pinctrl-single,pins = <0x020 0x24>; }; /* Mode 4, Pull-Down, RxActive */
/* P8_20 (ZCZ ball V9 ) emmc */
/* P8_21 (ZCZ ball U9 ) emmc */
/* P8_22 (ZCZ ball V8 ) emmc */
/* P8_23 (ZCZ ball U8 ) emmc */
/* P8_24 (ZCZ ball V7 ) emmc */
/* P8_25 (ZCZ ball U7 ) emmc */
/* P8_26 (ZCZ ball V6 ) */
P8_26_default_pin: pinmux_P8_26_default_pin {
pinctrl-single,pins = <0x07c 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P8_26_gpio_pin: pinmux_P8_26_gpio_pin {
pinctrl-single,pins = <0x07c 0x2F>; }; /* Mode 7, RxActive */
P8_26_gpio_pu_pin: pinmux_P8_26_gpio_pu_pin {
pinctrl-single,pins = <0x07c 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P8_26_gpio_pd_pin: pinmux_P8_26_gpio_pd_pin {
pinctrl-single,pins = <0x07c 0x27>; }; /* Mode 7, Pull-Down, RxActive */
/* P8_27 (ZCZ ball U5 ) hdmi */
/* P8_28 (ZCZ ball V5 ) hdmi */
/* P8_29 (ZCZ ball R5 ) hdmi */
/* P8_30 (ZCZ ball R6 ) hdmi */
/* P8_31 (ZCZ ball V4 ) hdmi */
/* P8_32 (ZCZ ball T5 ) hdmi */
/* P8_33 (ZCZ ball V3 ) hdmi */
/* P8_34 (ZCZ ball U4 ) hdmi */
/* P8_35 (ZCZ ball V2 ) hdmi */
/* P8_36 (ZCZ ball U3 ) hdmi */
/* P8_37 (ZCZ ball U1 ) hdmi */
/* P8_38 (ZCZ ball U2 ) hdmi */
/* P8_39 (ZCZ ball T3 ) hdmi */
/* P8_40 (ZCZ ball T4 ) hdmi */
/* P8_41 (ZCZ ball T1 ) hdmi */
/* P8_42 (ZCZ ball T2 ) hdmi */
/* P8_43 (ZCZ ball R3 ) hdmi */
/* P8_44 (ZCZ ball R4 ) hdmi */
/* P8_45 (ZCZ ball R1 ) hdmi */
/* P8_46 (ZCZ ball R2 ) hdmi */
/************************/
/* P9 Header */
/************************/
/* P9_01 GND */
/* P9_02 GND */
/* P9_03 3.3V */
/* P9_04 3.3V */
/* P9_05 VDD_5V */
/* P9_06 VDD_5V */
/* P9_07 SYS_5V */
/* P9_08 SYS_5V */
/* P9_09 PWR_BUT */
/* P9_10 (ZCZ ball A10) RESETn */
/* P9_11 (ZCZ ball T17) */
P9_11_default_pin: pinmux_P9_11_default_pin {
pinctrl-single,pins = <0x070 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_11_gpio_pin: pinmux_P9_11_gpio_pin {
pinctrl-single,pins = <0x070 0x2F>; }; /* Mode 7, RxActive */
P9_11_gpio_pu_pin: pinmux_P9_11_gpio_pu_pin {
pinctrl-single,pins = <0x070 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_11_gpio_pd_pin: pinmux_P9_11_gpio_pd_pin {
pinctrl-single,pins = <0x070 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_11_uart_pin: pinmux_P9_11_uart_pin {
pinctrl-single,pins = <0x070 0x36>; }; /* Mode 6, Pull-Up, RxActive */
/* P9_12 (ZCZ ball U18) */
P9_12_default_pin: pinmux_P9_12_default_pin {
pinctrl-single,pins = <0x078 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_12_gpio_pin: pinmux_P9_12_gpio_pin {
pinctrl-single,pins = <0x078 0x2F>; }; /* Mode 7, RxActive */
P9_12_gpio_pu_pin: pinmux_P9_12_gpio_pu_pin {
pinctrl-single,pins = <0x078 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_12_gpio_pd_pin: pinmux_P9_12_gpio_pd_pin {
pinctrl-single,pins = <0x078 0x27>; }; /* Mode 7, Pull-Down, RxActive */
/* P9_13 (ZCZ ball U17) */
P9_13_default_pin: pinmux_P9_13_default_pin {
pinctrl-single,pins = <0x074 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_13_gpio_pin: pinmux_P9_13_gpio_pin {
pinctrl-single,pins = <0x074 0x2F>; }; /* Mode 7, RxActive */
P9_13_gpio_pu_pin: pinmux_P9_13_gpio_pu_pin {
pinctrl-single,pins = <0x074 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_13_gpio_pd_pin: pinmux_P9_13_gpio_pd_pin {
pinctrl-single,pins = <0x074 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_13_uart_pin: pinmux_P9_13_uart_pin {
pinctrl-single,pins = <0x074 0x36>; }; /* Mode 6, Pull-Up, RxActive */
/* P9_14 (ZCZ ball U14) */
P9_14_default_pin: pinmux_P9_14_default_pin {
pinctrl-single,pins = <0x048 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_14_gpio_pin: pinmux_P9_14_gpio_pin {
pinctrl-single,pins = <0x048 0x2F>; }; /* Mode 7, RxActive */
P9_14_gpio_pu_pin: pinmux_P9_14_gpio_pu_pin {
pinctrl-single,pins = <0x048 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_14_gpio_pd_pin: pinmux_P9_14_gpio_pd_pin {
pinctrl-single,pins = <0x048 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_14_pwm_pin: pinmux_P9_14_pwm_pin {
pinctrl-single,pins = <0x048 0x26>; }; /* Mode 6, Pull-Down, RxActive */
/* P9_15 (ZCZ ball R13) */
P9_15_default_pin: pinmux_P9_15_default_pin {
pinctrl-single,pins = <0x040 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_15_gpio_pin: pinmux_P9_15_gpio_pin {
pinctrl-single,pins = <0x040 0x2F>; }; /* Mode 7, RxActive */
P9_15_gpio_pu_pin: pinmux_P9_15_gpio_pu_pin {
pinctrl-single,pins = <0x040 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_15_gpio_pd_pin: pinmux_P9_15_gpio_pd_pin {
pinctrl-single,pins = <0x040 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_15_pwm_pin: pinmux_P9_15_pwm_pin {
pinctrl-single,pins = <0x040 0x26>; }; /* Mode 6, Pull-Down, RxActive */
/* P9_16 (ZCZ ball T14) */
P9_16_default_pin: pinmux_P9_16_default_pin {
pinctrl-single,pins = <0x04c 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_16_gpio_pin: pinmux_P9_16_gpio_pin {
pinctrl-single,pins = <0x04c 0x2F>; }; /* Mode 7, RxActive */
P9_16_gpio_pu_pin: pinmux_P9_16_gpio_pu_pin {
pinctrl-single,pins = <0x04c 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_16_gpio_pd_pin: pinmux_P9_16_gpio_pd_pin {
pinctrl-single,pins = <0x04c 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_16_pwm_pin: pinmux_P9_16_pwm_pin {
pinctrl-single,pins = <0x04c 0x26>; }; /* Mode 6, Pull-Down, RxActive */
/* P9_17 (ZCZ ball A16) */
P9_17_default_pin: pinmux_P9_17_default_pin {
pinctrl-single,pins = <0x15c 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_17_gpio_pin: pinmux_P9_17_gpio_pin {
pinctrl-single,pins = <0x15c 0x2F>; }; /* Mode 7, RxActive */
P9_17_gpio_pu_pin: pinmux_P9_17_gpio_pu_pin {
pinctrl-single,pins = <0x15c 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_17_gpio_pd_pin: pinmux_P9_17_gpio_pd_pin {
pinctrl-single,pins = <0x15c 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_17_spi_pin: pinmux_P9_17_spi_pin {
pinctrl-single,pins = <0x15c 0x30>; }; /* Mode 0, Pull-Up, RxActive */
P9_17_i2c_pin: pinmux_P9_17_i2c_pin {
pinctrl-single,pins = <0x15c 0x32>; }; /* Mode 2, Pull-Up, RxActive */
P9_17_pwm_pin: pinmux_P9_17_pwm_pin {
pinctrl-single,pins = <0x15c 0x33>; }; /* Mode 3, Pull-Up, RxActive */
/* P9_18 (ZCZ ball B16) */
P9_18_default_pin: pinmux_P9_18_default_pin {
pinctrl-single,pins = <0x158 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_18_gpio_pin: pinmux_P9_18_gpio_pin {
pinctrl-single,pins = <0x158 0x2F>; }; /* Mode 7, RxActive */
P9_18_gpio_pu_pin: pinmux_P9_18_gpio_pu_pin {
pinctrl-single,pins = <0x158 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_18_gpio_pd_pin: pinmux_P9_18_gpio_pd_pin {
pinctrl-single,pins = <0x158 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_18_spi_pin: pinmux_P9_18_spi_pin {
pinctrl-single,pins = <0x158 0x30>; }; /* Mode 0, Pull-Up, RxActive */
P9_18_i2c_pin: pinmux_P9_18_i2c_pin {
pinctrl-single,pins = <0x158 0x32>; }; /* Mode 2, Pull-Up, RxActive */
P9_18_pwm_pin: pinmux_P9_18_pwm_pin {
pinctrl-single,pins = <0x158 0x33>; }; /* Mode 3, Pull-Up, RxActive */
// Leave the cape I2C EEPROM bus alone
/* P9_19 (ZCZ ball D17) I2C */
/* P9_20 (ZCZ ball D18) I2C */
/* P9_21 (ZCZ ball B17) */
P9_21_default_pin: pinmux_P9_21_default_pin {
pinctrl-single,pins = <0x154 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_21_gpio_pin: pinmux_P9_21_gpio_pin {
pinctrl-single,pins = <0x154 0x2F>; }; /* Mode 7, RxActive */
P9_21_gpio_pu_pin: pinmux_P9_21_gpio_pu_pin {
pinctrl-single,pins = <0x154 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_21_gpio_pd_pin: pinmux_P9_21_gpio_pd_pin {
pinctrl-single,pins = <0x154 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_21_spi_pin: pinmux_P9_21_spi_pin {
pinctrl-single,pins = <0x154 0x30>; }; /* Mode 0, Pull-Up, RxActive */
P9_21_uart_pin: pinmux_P9_21_uart_pin {
pinctrl-single,pins = <0x154 0x31>; }; /* Mode 1, Pull-Up, RxActive */
P9_21_i2c_pin: pinmux_P9_21_i2c_pin {
pinctrl-single,pins = <0x154 0x32>; }; /* Mode 2, Pull-Up, RxActive */
P9_21_pwm_pin: pinmux_P9_21_pwm_pin {
pinctrl-single,pins = <0x154 0x33>; }; /* Mode 3, Pull-Up, RxActive */
/* P9_22 (ZCZ ball A17) */
P9_22_default_pin: pinmux_P9_22_default_pin {
pinctrl-single,pins = <0x150 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_22_gpio_pin: pinmux_P9_22_gpio_pin {
pinctrl-single,pins = <0x150 0x2F>; }; /* Mode 7, RxActive */
P9_22_gpio_pu_pin: pinmux_P9_22_gpio_pu_pin {
pinctrl-single,pins = <0x150 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_22_gpio_pd_pin: pinmux_P9_22_gpio_pd_pin {
pinctrl-single,pins = <0x150 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_22_spi_pin: pinmux_P9_22_spi_pin {
pinctrl-single,pins = <0x150 0x30>; }; /* Mode 0, Pull-Up, RxActive */
P9_22_uart_pin: pinmux_P9_22_uart_pin {
pinctrl-single,pins = <0x150 0x31>; }; /* Mode 1, Pull-Up, RxActive */
P9_22_i2c_pin: pinmux_P9_22_i2c_pin {
pinctrl-single,pins = <0x150 0x32>; }; /* Mode 2, Pull-Up, RxActive */
P9_22_pwm_pin: pinmux_P9_22_pwm_pin {
pinctrl-single,pins = <0x150 0x33>; }; /* Mode 3, Pull-Up, RxActive */
/* P9_23 (ZCZ ball V14) */
P9_23_default_pin: pinmux_P9_23_default_pin {
pinctrl-single,pins = <0x044 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_23_gpio_pin: pinmux_P9_23_gpio_pin {
pinctrl-single,pins = <0x044 0x2F>; }; /* Mode 7, RxActive */
P9_23_gpio_pu_pin: pinmux_P9_23_gpio_pu_pin {
pinctrl-single,pins = <0x044 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_23_gpio_pd_pin: pinmux_P9_23_gpio_pd_pin {
pinctrl-single,pins = <0x044 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_23_pwm_pin: pinmux_P9_23_pwm_pin {
pinctrl-single,pins = <0x044 0x26>; }; /* Mode 6, Pull-Down, RxActive */
/* P9_24 (ZCZ ball D15) */
P9_24_default_pin: pinmux_P9_24_default_pin {
pinctrl-single,pins = <0x184 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_24_gpio_pin: pinmux_P9_24_gpio_pin {
pinctrl-single,pins = <0x184 0x2F>; }; /* Mode 7, RxActive */
P9_24_gpio_pu_pin: pinmux_P9_24_gpio_pu_pin {
pinctrl-single,pins = <0x184 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_24_gpio_pd_pin: pinmux_P9_24_gpio_pd_pin {
pinctrl-single,pins = <0x184 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_24_uart_pin: pinmux_P9_24_uart_pin {
pinctrl-single,pins = <0x184 0x30>; }; /* Mode 0, Pull-Up, RxActive */
P9_24_can_pin: pinmux_P9_24_can_pin {
pinctrl-single,pins = <0x184 0x32>; }; /* Mode 2, Pull-Up, RxActive */
P9_24_i2c_pin: pinmux_P9_24_i2c_pin {
pinctrl-single,pins = <0x184 0x33>; }; /* Mode 3, Pull-Up, RxActive */
P9_24_pruin_pin: pinmux_P9_24_pruin_pin {
pinctrl-single,pins = <0x184 0x36>; }; /* Mode 6, Pull-Up, RxActive */
/* P9_25 (ZCZ ball A14) Audio */
/* P9_26 (ZCZ ball D16) */
P9_26_default_pin: pinmux_P9_26_default_pin {
pinctrl-single,pins = <0x180 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_26_gpio_pin: pinmux_P9_26_gpio_pin {
pinctrl-single,pins = <0x180 0x2F>; }; /* Mode 7, RxActive */
P9_26_gpio_pu_pin: pinmux_P9_26_gpio_pu_pin {
pinctrl-single,pins = <0x180 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_26_gpio_pd_pin: pinmux_P9_26_gpio_pd_pin {
pinctrl-single,pins = <0x180 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_26_uart_pin: pinmux_P9_26_uart_pin {
pinctrl-single,pins = <0x180 0x30>; }; /* Mode 0, Pull-Up, RxActive */
P9_26_can_pin: pinmux_P9_26_can_pin {
pinctrl-single,pins = <0x180 0x32>; }; /* Mode 2, Pull-Up, RxActive */
P9_26_i2c_pin: pinmux_P9_26_i2c_pin {
pinctrl-single,pins = <0x180 0x33>; }; /* Mode 3, Pull-Up, RxActive */
P9_26_pruin_pin: pinmux_P9_26_pruin_pin {
pinctrl-single,pins = <0x180 0x36>; }; /* Mode 6, Pull-Up, RxActive */
/* P9_27 (ZCZ ball C13) */
P9_27_default_pin: pinmux_P9_27_default_pin {
pinctrl-single,pins = <0x1a4 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_27_gpio_pin: pinmux_P9_27_gpio_pin {
pinctrl-single,pins = <0x1a4 0x2F>; }; /* Mode 7, RxActive */
P9_27_gpio_pu_pin: pinmux_P9_27_gpio_pu_pin {
pinctrl-single,pins = <0x1a4 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_27_gpio_pd_pin: pinmux_P9_27_gpio_pd_pin {
pinctrl-single,pins = <0x1a4 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_27_qep_pin: pinmux_P9_27_qep_pin {
pinctrl-single,pins = <0x1a4 0x21>; }; /* Mode 1, Pull-Down, RxActive */
P9_27_pruout_pin: pinmux_P9_27_pruout_pin {
pinctrl-single,pins = <0x1a4 0x25>; }; /* Mode 5, Pull-Down, RxActive */
P9_27_pruin_pin: pinmux_P9_27_pruin_pin {
pinctrl-single,pins = <0x1a4 0x26>; }; /* Mode 6, Pull-Down, RxActive */
/* P9_28 (ZCZ ball C12) Audio */
/* P9_29 (ZCZ ball B13) Audio */
/* P9_30 (ZCZ ball D12) */
P9_30_default_pin: pinmux_P9_30_default_pin {
pinctrl-single,pins = <0x198 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_30_gpio_pin: pinmux_P9_30_gpio_pin {
pinctrl-single,pins = <0x198 0x2F>; }; /* Mode 7, RxActive */
P9_30_gpio_pu_pin: pinmux_P9_30_gpio_pu_pin {
pinctrl-single,pins = <0x198 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_30_gpio_pd_pin: pinmux_P9_30_gpio_pd_pin {
pinctrl-single,pins = <0x198 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_30_pwm_pin: pinmux_P9_30_pwm_pin {
pinctrl-single,pins = <0x198 0x21>; }; /* Mode 1, Pull-Down, RxActive */
P9_30_spi_pin: pinmux_P9_30_spi_pin {
pinctrl-single,pins = <0x198 0x23>; }; /* Mode 3, Pull-Down, RxActive */
P9_30_pruout_pin: pinmux_P9_30_pruout_pin {
pinctrl-single,pins = <0x198 0x25>; }; /* Mode 5, Pull-Down, RxActive */
P9_30_pruin_pin: pinmux_P9_30_pruin_pin {
pinctrl-single,pins = <0x198 0x26>; }; /* Mode 6, Pull-Down, RxActive */
/* P9_31 (ZCZ ball A13) Audio */
/* P9_32 VADC */
/* P9_33 (ZCZ ball C8 ) AIN4 */
/* P9_34 AGND */
/* P9_35 (ZCZ ball A8 ) AIN6 */
/* P9_36 (ZCZ ball B8 ) AIN5 */
/* P9_37 (ZCZ ball B7 ) AIN2 */
/* P9_38 (ZCZ ball A7 ) AIN3 */
/* P9_39 (ZCZ ball B6 ) AIN0 */
/* P9_40 (ZCZ ball C7 ) AIN1 */
/* P9_41 (ZCZ ball D14) */
P9_41_default_pin: pinmux_P9_41_default_pin {
pinctrl-single,pins = <0x1b4 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_41_gpio_pin: pinmux_P9_41_gpio_pin {
pinctrl-single,pins = <0x1b4 0x2F>; }; /* Mode 7, RxActive */
P9_41_gpio_pu_pin: pinmux_P9_41_gpio_pu_pin {
pinctrl-single,pins = <0x1b4 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_41_gpio_pd_pin: pinmux_P9_41_gpio_pd_pin {
pinctrl-single,pins = <0x1b4 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_41_timer_pin: pinmux_P9_41_timer_pin {
pinctrl-single,pins = <0x1b4 0x24>; }; /* Mode 4, Pull-Down, RxActive */
P9_41_pruin_pin: pinmux_P9_41_pruin_pin {
pinctrl-single,pins = <0x1b4 0x25>; }; /* Mode 5, Pull-Down, RxActive */
/* P9_41.1 */
/* P9_91 (ZCZ ball D13) */
P9_91_default_pin: pinmux_P9_91_default_pin {
pinctrl-single,pins = <0x1a8 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_91_gpio_pin: pinmux_P9_91_gpio_pin {
pinctrl-single,pins = <0x1a8 0x2F>; }; /* Mode 7, RxActive */
P9_91_gpio_pu_pin: pinmux_P9_91_gpio_pu_pin {
pinctrl-single,pins = <0x1a8 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_91_gpio_pd_pin: pinmux_P9_91_gpio_pd_pin {
pinctrl-single,pins = <0x1a8 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_91_qep_pin: pinmux_P9_91_qep_pin {
pinctrl-single,pins = <0x1a8 0x21>; }; /* Mode 1, Pull-Down, RxActive */
P9_91_pruout_pin: pinmux_P9_91_pruout_pin {
pinctrl-single,pins = <0x1a8 0x25>; }; /* Mode 5, Pull-Down, RxActive */
P9_91_pruin_pin: pinmux_P9_91_pruin_pin {
pinctrl-single,pins = <0x1a8 0x26>; }; /* Mode 6, Pull-Down, RxActive */
/* P9_42 (ZCZ ball C18) */
P9_42_default_pin: pinmux_P9_42_default_pin {
pinctrl-single,pins = <0x164 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_42_gpio_pin: pinmux_P9_42_gpio_pin {
pinctrl-single,pins = <0x164 0x2F>; }; /* Mode 7, RxActive */
P9_42_gpio_pu_pin: pinmux_P9_42_gpio_pu_pin {
pinctrl-single,pins = <0x164 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_42_gpio_pd_pin: pinmux_P9_42_gpio_pd_pin {
pinctrl-single,pins = <0x164 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_42_pwm_pin: pinmux_P9_42_pwm_pin {
pinctrl-single,pins = <0x164 0x20>; }; /* Mode 0, Pull-Down, RxActive */
P9_42_uart_pin: pinmux_P9_42_uart_pin {
pinctrl-single,pins = <0x164 0x21>; }; /* Mode 1, Pull-Down, RxActive */
P9_42_spics_pin: pinmux_P9_42_spics_pin {
pinctrl-single,pins = <0x164 0x22>; }; /* Mode 2, Pull-Down, RxActive */
P9_42_spiclk_pin: pinmux_P9_42_spiclk_pin {
pinctrl-single,pins = <0x164 0x24>; }; /* Mode 4, Pull-Down, RxActive */
/* P9_42.1 */
/* P9_92 (ZCZ ball B12) */
P9_92_default_pin: pinmux_P9_92_default_pin {
pinctrl-single,pins = <0x1a0 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_92_gpio_pin: pinmux_P9_92_gpio_pin {
pinctrl-single,pins = <0x1a0 0x2F>; }; /* Mode 7, RxActive */
P9_92_gpio_pu_pin: pinmux_P9_92_gpio_pu_pin {
pinctrl-single,pins = <0x1a0 0x37>; }; /* Mode 7, Pull-Up, RxActive */
P9_92_gpio_pd_pin: pinmux_P9_92_gpio_pd_pin {
pinctrl-single,pins = <0x1a0 0x27>; }; /* Mode 7, Pull-Down, RxActive */
P9_92_qep_pin: pinmux_P9_92_qep_pin {
pinctrl-single,pins = <0x1a0 0x21>; }; /* Mode 1, Pull-Down, RxActive */
P9_92_pruout_pin: pinmux_P9_92_pruout_pin {
pinctrl-single,pins = <0x1a0 0x25>; }; /* Mode 5, Pull-Down, RxActive */
P9_92_pruin_pin: pinmux_P9_92_pruin_pin {
pinctrl-single,pins = <0x1a0 0x26>; }; /* Mode 6, Pull-Down, RxActive */
/* P9_43 GND */
/* P9_44 GND */
/* P9_45 GND */
/* P9_46 GND */
};
};
/************************/
/* Pin Multiplexing */
/************************/
fragment@1 {
target = <&ocp>;
__overlay__ {
/************************/
/* P8 Header */
/************************/
P8_07_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "timer";
pinctrl-0 = <&P8_07_default_pin>;
pinctrl-1 = <&P8_07_gpio_pin>;
pinctrl-2 = <&P8_07_gpio_pu_pin>;
pinctrl-3 = <&P8_07_gpio_pd_pin>;
pinctrl-4 = <&P8_07_timer_pin>;
};
P8_08_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "timer";
pinctrl-0 = <&P8_08_default_pin>;
pinctrl-1 = <&P8_08_gpio_pin>;
pinctrl-2 = <&P8_08_gpio_pu_pin>;
pinctrl-3 = <&P8_08_gpio_pd_pin>;
pinctrl-4 = <&P8_08_timer_pin>;
};
P8_09_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "timer";
pinctrl-0 = <&P8_09_default_pin>;
pinctrl-1 = <&P8_09_gpio_pin>;
pinctrl-2 = <&P8_09_gpio_pu_pin>;
pinctrl-3 = <&P8_09_gpio_pd_pin>;
pinctrl-4 = <&P8_09_timer_pin>;
};
P8_10_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "timer";
pinctrl-0 = <&P8_10_default_pin>;
pinctrl-1 = <&P8_10_gpio_pin>;
pinctrl-2 = <&P8_10_gpio_pu_pin>;
pinctrl-3 = <&P8_10_gpio_pd_pin>;
pinctrl-4 = <&P8_10_timer_pin>;
};
P8_11_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pruout", "qep";
pinctrl-0 = <&P8_11_default_pin>;
pinctrl-1 = <&P8_11_gpio_pin>;
pinctrl-2 = <&P8_11_gpio_pu_pin>;
pinctrl-3 = <&P8_11_gpio_pd_pin>;
pinctrl-4 = <&P8_11_pruout_pin>;
pinctrl-5 = <&P8_11_qep_pin>;
};
P8_12_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pruout", "qep";
pinctrl-0 = <&P8_12_default_pin>;
pinctrl-1 = <&P8_12_gpio_pin>;
pinctrl-2 = <&P8_12_gpio_pu_pin>;
pinctrl-3 = <&P8_12_gpio_pd_pin>;
pinctrl-4 = <&P8_12_pruout_pin>;
pinctrl-5 = <&P8_12_qep_pin>;
};
P8_13_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm";
pinctrl-0 = <&P8_13_default_pin>;
pinctrl-1 = <&P8_13_gpio_pin>;
pinctrl-2 = <&P8_13_gpio_pu_pin>;
pinctrl-3 = <&P8_13_gpio_pd_pin>;
pinctrl-4 = <&P8_13_pwm_pin>;
};
P8_14_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm";
pinctrl-0 = <&P8_14_default_pin>;
pinctrl-1 = <&P8_14_gpio_pin>;
pinctrl-2 = <&P8_14_gpio_pu_pin>;
pinctrl-3 = <&P8_14_gpio_pd_pin>;
pinctrl-4 = <&P8_14_pwm_pin>;
};
P8_15_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pruin", "qep";
pinctrl-0 = <&P8_15_default_pin>;
pinctrl-1 = <&P8_15_gpio_pin>;
pinctrl-2 = <&P8_15_gpio_pu_pin>;
pinctrl-3 = <&P8_15_gpio_pd_pin>;
pinctrl-4 = <&P8_15_pruin_pin>;
pinctrl-5 = <&P8_15_qep_pin>;
};
P8_16_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pruin", "qep";
pinctrl-0 = <&P8_16_default_pin>;
pinctrl-1 = <&P8_16_gpio_pin>;
pinctrl-2 = <&P8_16_gpio_pu_pin>;
pinctrl-3 = <&P8_16_gpio_pd_pin>;
pinctrl-4 = <&P8_16_pruin_pin>;
pinctrl-5 = <&P8_16_qep_pin>;
};
P8_17_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm";
pinctrl-0 = <&P8_17_default_pin>;
pinctrl-1 = <&P8_17_gpio_pin>;
pinctrl-2 = <&P8_17_gpio_pu_pin>;
pinctrl-3 = <&P8_17_gpio_pd_pin>;
pinctrl-4 = <&P8_17_pwm_pin>;
};
P8_18_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio";
pinctrl-0 = <&P8_18_default_pin>;
pinctrl-1 = <&P8_18_gpio_pin>;
pinctrl-2 = <&P8_18_gpio_pu_pin>;
pinctrl-3 = <&P8_18_gpio_pd_pin>;
};
P8_19_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm";
pinctrl-0 = <&P8_19_default_pin>;
pinctrl-1 = <&P8_19_gpio_pin>;
pinctrl-2 = <&P8_19_gpio_pu_pin>;
pinctrl-3 = <&P8_19_gpio_pd_pin>;
pinctrl-4 = <&P8_19_pwm_pin>;
};
P8_26_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio";
pinctrl-0 = <&P8_26_default_pin>;
pinctrl-1 = <&P8_26_gpio_pin>;
pinctrl-2 = <&P8_26_gpio_pu_pin>;
pinctrl-3 = <&P8_26_gpio_pd_pin>;
};
/************************/
/* P9 Header */
/************************/
P9_11_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "uart";
pinctrl-0 = <&P9_11_default_pin>;
pinctrl-1 = <&P9_11_gpio_pin>;
pinctrl-2 = <&P9_11_gpio_pu_pin>;
pinctrl-3 = <&P9_11_gpio_pd_pin>;
pinctrl-4 = <&P9_11_uart_pin>;
};
P9_12_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio";
pinctrl-0 = <&P9_12_default_pin>;
pinctrl-1 = <&P9_12_gpio_pin>;
pinctrl-2 = <&P9_12_gpio_pu_pin>;
pinctrl-3 = <&P9_12_gpio_pd_pin>;
};
P9_13_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "uart";
pinctrl-0 = <&P9_13_default_pin>;
pinctrl-1 = <&P9_13_gpio_pin>;
pinctrl-2 = <&P9_13_gpio_pu_pin>;
pinctrl-3 = <&P9_13_gpio_pd_pin>;
pinctrl-4 = <&P9_13_uart_pin>;
};
P9_14_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm";
pinctrl-0 = <&P9_14_default_pin>;
pinctrl-1 = <&P9_14_gpio_pin>;
pinctrl-2 = <&P9_14_gpio_pu_pin>;
pinctrl-3 = <&P9_14_gpio_pd_pin>;
pinctrl-4 = <&P9_14_pwm_pin>;
};
P9_15_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm";
pinctrl-0 = <&P9_15_default_pin>;
pinctrl-1 = <&P9_15_gpio_pin>;
pinctrl-2 = <&P9_15_gpio_pu_pin>;
pinctrl-3 = <&P9_15_gpio_pd_pin>;
pinctrl-4 = <&P9_15_pwm_pin>;
};
P9_16_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm";
pinctrl-0 = <&P9_16_default_pin>;
pinctrl-1 = <&P9_16_gpio_pin>;
pinctrl-2 = <&P9_16_gpio_pu_pin>;
pinctrl-3 = <&P9_16_gpio_pd_pin>;
pinctrl-4 = <&P9_16_pwm_pin>;
};
P9_17_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "spi", "i2c", "pwm";
pinctrl-0 = <&P9_17_default_pin>;
pinctrl-1 = <&P9_17_gpio_pin>;
pinctrl-2 = <&P9_17_gpio_pu_pin>;
pinctrl-3 = <&P9_17_gpio_pd_pin>;
pinctrl-4 = <&P9_17_spi_pin>;
pinctrl-5 = <&P9_17_i2c_pin>;
pinctrl-6 = <&P9_17_pwm_pin>;
};
P9_18_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "spi", "i2c", "pwm";
pinctrl-0 = <&P9_18_default_pin>;
pinctrl-1 = <&P9_18_gpio_pin>;
pinctrl-2 = <&P9_18_gpio_pu_pin>;
pinctrl-3 = <&P9_18_gpio_pd_pin>;
pinctrl-4 = <&P9_18_spi_pin>;
pinctrl-5 = <&P9_18_i2c_pin>;
pinctrl-6 = <&P9_18_pwm_pin>;
};
// I2C Pins
// P9_19_pinmux
// P9_20_pinmux
P9_21_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "spi", "uart", "i2c", "pwm";
pinctrl-0 = <&P9_21_default_pin>;
pinctrl-1 = <&P9_21_gpio_pin>;
pinctrl-2 = <&P9_21_gpio_pu_pin>;
pinctrl-3 = <&P9_21_gpio_pd_pin>;
pinctrl-4 = <&P9_21_spi_pin>;
pinctrl-5 = <&P9_21_uart_pin>;
pinctrl-6 = <&P9_21_i2c_pin>;
pinctrl-7 = <&P9_21_pwm_pin>;
};
P9_22_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "spi", "uart", "i2c", "pwm";
pinctrl-0 = <&P9_22_default_pin>;
pinctrl-1 = <&P9_22_gpio_pin>;
pinctrl-2 = <&P9_22_gpio_pu_pin>;
pinctrl-3 = <&P9_22_gpio_pd_pin>;
pinctrl-4 = <&P9_22_spi_pin>;
pinctrl-5 = <&P9_22_uart_pin>;
pinctrl-6 = <&P9_22_i2c_pin>;
pinctrl-7 = <&P9_22_pwm_pin>;
};
P9_23_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm";
pinctrl-0 = <&P9_23_default_pin>;
pinctrl-1 = <&P9_23_gpio_pin>;
pinctrl-2 = <&P9_23_gpio_pu_pin>;
pinctrl-3 = <&P9_23_gpio_pd_pin>;
pinctrl-4 = <&P9_23_pwm_pin>;
};
P9_24_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "uart", "can", "i2c", "pruin";
pinctrl-0 = <&P9_24_default_pin>;
pinctrl-1 = <&P9_24_gpio_pin>;
pinctrl-2 = <&P9_24_gpio_pu_pin>;
pinctrl-3 = <&P9_24_gpio_pd_pin>;
pinctrl-4 = <&P9_24_uart_pin>;
pinctrl-5 = <&P9_24_can_pin>;
pinctrl-6 = <&P9_24_i2c_pin>;
pinctrl-7 = <&P9_24_pruin_pin>;
};
// Audio pin
// P9_25_pinmux
P9_26_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "uart", "can", "i2c", "pruin";
pinctrl-0 = <&P9_26_default_pin>;
pinctrl-1 = <&P9_26_gpio_pin>;
pinctrl-2 = <&P9_26_gpio_pu_pin>;
pinctrl-3 = <&P9_26_gpio_pd_pin>;
pinctrl-4 = <&P9_26_uart_pin>;
pinctrl-5 = <&P9_26_can_pin>;
pinctrl-6 = <&P9_26_i2c_pin>;
pinctrl-7 = <&P9_26_pruin_pin>;
};
P9_27_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "qep", "pruout", "pruin";
pinctrl-0 = <&P9_27_default_pin>;
pinctrl-1 = <&P9_27_gpio_pin>;
pinctrl-2 = <&P9_27_gpio_pu_pin>;
pinctrl-3 = <&P9_27_gpio_pd_pin>;
pinctrl-4 = <&P9_27_qep_pin>;
pinctrl-5 = <&P9_27_pruout_pin>;
pinctrl-6 = <&P9_27_pruin_pin>;
};
// Audio pins
// P9_28_pinmux
// P9_29_pinmux
P9_30_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm", "spi", "pruout", "pruin";
pinctrl-0 = <&P9_30_default_pin>;
pinctrl-1 = <&P9_30_gpio_pin>;
pinctrl-2 = <&P9_30_gpio_pu_pin>;
pinctrl-3 = <&P9_30_gpio_pd_pin>;
pinctrl-4 = <&P9_30_pwm_pin>;
pinctrl-5 = <&P9_30_spi_pin>;
pinctrl-6 = <&P9_30_pruout_pin>;
pinctrl-7 = <&P9_30_pruin_pin>;
};
// Audio pin
// P9_31_pinmux
P9_41_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "timer", "pruin";
pinctrl-0 = <&P9_41_default_pin>;
pinctrl-1 = <&P9_41_gpio_pin>;
pinctrl-2 = <&P9_41_gpio_pu_pin>;
pinctrl-3 = <&P9_41_gpio_pd_pin>;
pinctrl-4 = <&P9_41_timer_pin>;
pinctrl-5 = <&P9_41_pruin_pin>;
};
P9_91_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "qep", "pruout", "pruin";
pinctrl-0 = <&P9_91_default_pin>;
pinctrl-1 = <&P9_91_gpio_pin>;
pinctrl-2 = <&P9_91_gpio_pu_pin>;
pinctrl-3 = <&P9_91_gpio_pd_pin>;
pinctrl-4 = <&P9_91_qep_pin>;
pinctrl-5 = <&P9_91_pruout_pin>;
pinctrl-6 = <&P9_91_pruin_pin>;
};
P9_42_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "pwm", "uart", "spics", "spiclk";
pinctrl-0 = <&P9_42_default_pin>;
pinctrl-1 = <&P9_42_gpio_pin>;
pinctrl-2 = <&P9_42_gpio_pu_pin>;
pinctrl-3 = <&P9_42_gpio_pd_pin>;
pinctrl-4 = <&P9_42_pwm_pin>;
pinctrl-5 = <&P9_42_uart_pin>;
pinctrl-6 = <&P9_42_spics_pin>;
pinctrl-7 = <&P9_42_spiclk_pin>;
};
P9_92_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default", "gpio", "gpio_pu", "gpio_pd", "qep", "pruout", "pruin";
pinctrl-0 = <&P9_92_default_pin>;
pinctrl-1 = <&P9_92_gpio_pin>;
pinctrl-2 = <&P9_92_gpio_pu_pin>;
pinctrl-3 = <&P9_92_gpio_pd_pin>;
pinctrl-4 = <&P9_92_qep_pin>;
pinctrl-5 = <&P9_92_pruout_pin>;
pinctrl-6 = <&P9_92_pruin_pin>;
};
};
};
fragment@2 {
target = <&ocp>;
__overlay__ {
// !!!WARNING!!!
// gpio-of-helper &gpio pointers are off-by-one vs. the hardware:
// hardware GPIO bank 0 = &gpio1
cape-universal {
compatible = "gpio-of-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <>;
P8_07 {
gpio-name = "P8_07";
gpio = <&gpio3 2 0>;
input;
dir-changeable;
};
P8_08 {
gpio-name = "P8_08";
gpio = <&gpio3 3 0>;
input;
dir-changeable;
};
P8_09 {
gpio-name = "P8_09";
gpio = <&gpio3 5 0>;
input;
dir-changeable;
};
P8_10 {
gpio-name = "P8_10";
gpio = <&gpio3 4 0>;
input;
dir-changeable;
};
P8_11 {
gpio-name = "P8_11";
gpio = <&gpio2 13 0>;
input;
dir-changeable;
};
P8_12 {
gpio-name = "P8_12";
gpio = <&gpio2 12 0>;
input;
dir-changeable;
};
P8_13 {
gpio-name = "P8_13";
gpio = <&gpio1 23 0>;
input;
dir-changeable;
};
P8_14 {
gpio-name = "P8_14";
gpio = <&gpio1 26 0>;
input;
dir-changeable;
};
P8_15 {
gpio-name = "P8_15";
gpio = <&gpio2 15 0>;
input;
dir-changeable;
};
P8_16 {
gpio-name = "P8_16";
gpio = <&gpio2 14 0>;
input;
dir-changeable;
};
P8_17 {
gpio-name = "P8_17";
gpio = <&gpio1 27 0>;
input;
dir-changeable;
};
P8_18 {
gpio-name = "P8_18";
gpio = <&gpio3 1 0>;
input;
dir-changeable;
};
P8_19 {
gpio-name = "P8_19";
gpio = <&gpio1 22 0>;
input;
dir-changeable;
};
P8_26 {
gpio-name = "P8_26";
gpio = <&gpio2 29 0>;
input;
dir-changeable;
};
P9_11 {
gpio-name = "P9_11";
gpio = <&gpio1 30 0>;
input;
dir-changeable;
};
P9_12 {
gpio-name = "P9_12";
gpio = <&gpio2 28 0>;
input;
dir-changeable;
};
P9_13 {
gpio-name = "P9_13";
gpio = <&gpio1 31 0>;
input;
dir-changeable;
};
P9_14 {
gpio-name = "P9_14";
gpio = <&gpio2 18 0>;
input;
dir-changeable;
};
P9_15 {
gpio-name = "P9_15";
gpio = <&gpio2 16 0>;
input;
dir-changeable;
};
P9_16 {
gpio-name = "P9_16";
gpio = <&gpio2 19 0>;
input;
dir-changeable;
};
P9_17 {
gpio-name = "P9_17";
gpio = <&gpio1 5 0>;
input;
dir-changeable;
};
P9_18 {
gpio-name = "P9_18";
gpio = <&gpio1 4 0>;
input;
dir-changeable;
};
// I2C pins
// P9_19
// P9_20
P9_21 {
gpio-name = "P9_21";
gpio = <&gpio1 3 0>;
input;
dir-changeable;
};
P9_22 {
gpio-name = "P9_22";
gpio = <&gpio1 2 0>;
input;
dir-changeable;
};
P9_23 {
gpio-name = "P9_23";
gpio = <&gpio2 17 0>;
input;
dir-changeable;
};
P9_24 {
gpio-name = "P9_24";
gpio = <&gpio1 15 0>;
input;
dir-changeable;
};
// Audio pin
// P9_25
P9_26 {
gpio-name = "P9_26";
gpio = <&gpio1 14 0>;
input;
dir-changeable;
};
P9_27 {
gpio-name = "P9_27";
gpio = <&gpio4 19 0>;
input;
dir-changeable;
};
// Audio pins
// P9_28
// P9_29
P9_30 {
gpio-name = "P9_30";
gpio = <&gpio4 16 0>;
input;
dir-changeable;
};
// Audio pin
// P9_31
P9_41 {
gpio-name = "P9_41";
gpio = <&gpio1 20 0>;
input;
dir-changeable;
};
P9_91 {
gpio-name = "P9_91";
gpio = <&gpio4 20 0>;
input;
dir-changeable;
};
P9_42 {
gpio-name = "P9_42";
gpio = <&gpio1 7 0>;
input;
dir-changeable;
};
P9_92 {
gpio-name = "P9_92";
gpio = <&gpio4 18 0>;
input;
dir-changeable;
};
};
};
};
/************************/
/* UARTs */
/************************/
fragment@10 {
target = <&uart2>; /* really uart1 */
__overlay__ {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <>;
};
};
fragment@11 {
target = <&uart3>; /* really uart2 */
__overlay__ {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <>;
};
};
fragment@12 {
target = <&uart5>; /* really uart4 */
__overlay__ {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <>;
};
};
// /* UART 5 only available on LCD/HDMI pins */
// fragment@13 {
// target = <&uart6>; /* really uart5 */
// __overlay__ {
// status = "okay";
// pinctrl-names = "default";
// pinctrl-0 = <>;
// };
// };
/************************/
/* Timers / PWM */
/************************/
fragment@20 {
target = <&epwmss0>;
__overlay__ {
status = "okay";
};
};
fragment@21 {
target = <&ehrpwm0>;
__overlay__ {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <>;
};
};
fragment@22 {
target = <&ecap0>;
__overlay__ {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <>;
};
};
fragment@23 {
target = <&epwmss1>;
__overlay__ {
status = "okay";
};
};
fragment@24 {
target = <&ehrpwm1>;
__overlay__ {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <>;
};
};
fragment@25 {
target = <&epwmss2>;
__overlay__ {
status = "okay";
};
};
fragment@26 {
target = <&ehrpwm2>;
__overlay__ {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <>;
};
};
fragment@27 {
target = <&ecap2>;
__overlay__ {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <>;
};
};
/************************/
/* I2C / SPI */
/************************/
fragment@30 {
target = <&i2c1>; /* i2c1 is numbered correctly */
__overlay__ {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <>;
/* this is the configuration part */
clock-frequency = <100000>;
#address-cells = <1>;
#size-cells = <0>;
/* add any i2c devices on the bus here */
// commented out example of a touchscreen (taken from BB-BONE-LCD7-01-00A4) */
// maxtouch@4a {
// compatible = "mXT224";
// reg = <0x4a>;
// interrupt-parent = <&gpio4>;
// interrupts = <19 0x0>;
// atmel,irq-gpio = <&gpio4 19 0>;
// };
};
};
fragment@31 {
target = <&spi0>; /* spi0 is numbered correctly */
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <>;
spi0channel@0 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "spidev";
reg = <0>;
spi-max-frequency = <16000000>;
spi-cpha;
};
spi0channel@1 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "spidev";
reg = <1>;
spi-max-frequency = <16000000>;
};
};
};
fragment@32 {
target = <&spi1>; /* spi1 is numbered correctly */
__overlay__ {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <>;
#address-cells = <1>;
#size-cells = <0>;
spi1channel@0 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "spidev";
reg = <0>;
spi-max-frequency = <16000000>;
spi-cpha;
};
spi1channel@1 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "spidev";
reg = <1>;
spi-max-frequency = <16000000>;
};
};
};
fragment@33 {
target = <&dcan0>;
__overlay__ {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <>;
};
};
fragment@34 {
target = <&dcan1>;
__overlay__ {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <>;
};
};
/************************/
/* PRUSS */
/************************/
fragment@40 {
target = <&pruss>;
__overlay__ {
status = "okay";
};
};
};
================================================
FILE: dts/bspm_template.dts
================================================
/*
* This is a template-generated file from BoneScript
*/
/dts-v1/;
/plugin/;
/{
compatible = "ti,beaglebone", "ti,beaglebone-black";
part_number = "BS_PINMODE_!PIN_KEY!_!DATA!";
exclusive-use =
"!PIN_DOT_KEY!",
"!PIN_FUNCTION!";
fragment@0 {
target = <&am33xx_pinmux>;
__overlay__ {
bs_pinmode_!PIN_KEY!_!DATA!: pinmux_bs_pinmode_!PIN_KEY!_!DATA! {
pinctrl-single,pins = <!PIN_OFFSET! !DATA!>;
};
};
};
fragment@1 {
target = <&ocp>;
__overlay__ {
bs_pinmode_!PIN_KEY!_!DATA!_pinmux {
compatible = "bone-pinmux-helper";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&bs_pinmode_!PIN_KEY!_!DATA!>;
};
};
};
};
================================================
FILE: dts/bspwm_template.dts
================================================
/*
* Copyright (C) 2013 CircuitCo
* Copyright (C) 2013 Texas Instruments
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This is a template-generated file from BoneScript
*/
/dts-v1/;
/plugin/;
/ {
compatible = "ti,beaglebone", "ti,beaglebone-black";
/* identification */
part-number = "BS_PWM_!PIN_KEY!_!DATA!";
/* state the resources this cape uses */
exclusive-use =
/* the pin header uses */
"!PIN_DOT_KEY!",
/* the hardware IP uses */
"!PIN_FUNCTION!";
fragment@0 {
target = <&am33xx_pinmux>;
__overlay__ {
bs_pwm_!PIN_KEY!_!DATA!: pinmux_bs_pwm_!PIN_KEY!_!DATA! {
pinctrl-single,pins = <!PIN_OFFSET! !DATA!>;
};
};
};
fragment@1 {
target = <&ocp>;
__overlay__ {
bs_pwm_test_!PIN_KEY! {
compatible = "pwm_test";
pwms = <&!PWM_MODULE! !PWM_INDEX! !DUTY_CYCLE! 1>;
pwm-names = "PWM_!PIN_KEY!";
pinctrl-names = "default";
pinctrl-0 = <&bs_pwm_!PIN_KEY!_!DATA!>;
enabled = <1>;
duty = <0>;
status = "okay";
};
};
};
};
================================================
FILE: etc/avahi/services/bone101.service
================================================
<?xml version=\"1.0\" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM \"avahi-service.dtd\">
<!-- See avahi.service(5) for more information about this configuration file -->
<service-group>
<name replace-wildcards=\"yes\">BeagleBone 101 Getting Started for %h</name>
<service>
<type>_http._tcp</type>
<port>80</port>
</service>
</service-group>
================================================
FILE: etc/default/cloud9
================================================
NODE_PATH=/usr/lib/node_modules
HOME=/root
PORT=3000
================================================
FILE: etc/default/node
================================================
NODE_PATH=/usr/lib/node_modules
SERVER_DIR=/usr/share/bone101
================================================
FILE: etc/profile.d/node.sh
================================================
#!/bin/sh
export NODE_PATH=/usr/lib/node_modules
================================================
FILE: lint-config.json
================================================
{
"indent_size": 4,
"indent_char": " ",
"indent_with_tabs": false,
"eol": "\n",
"end_with_newline": false,
"indent_level": 0,
"preserve_newlines": true,
"max_preserve_newlines": 10,
"space_in_paren": false,
"space_in_empty_paren": false,
"jslint_happy": true,
"space_after_anon_function": false,
"brace_style": "collapse",
"unindent_chained_methods": false,
"break_chained_methods": false,
"keep_array_indentation": false,
"unescape_strings": false,
"wrap_line_length": 0,
"e4x": false,
"comma_first": false,
"operator_position": "before-newline"
}
================================================
FILE: main.js
================================================
module.exports = process.env.BONESCRIPT_COV ?
require('./src-cov/index') :
require('./src/index');
================================================
FILE: package.json
================================================
{
"author": {
"name": "Jason Kridner",
"email": "jkridner@beagleboard.org",
"url": "http://jkridner.wordpress.com"
},
"name": "bonescript",
"description": "Physical computing library for embedded Linux",
"keywords": [
"embedded",
"linux",
"beagleboard",
"beaglebone",
"physical",
"gpio",
"arduino"
],
"version": "0.7.4-beta1",
"homepage": "http://beagleboard.org/bonescript",
"license": "MIT",
"repository": {
"type": "git",
"url": "git://github.com/jadonk/bonescript"
},
"main": "main",
"types": "./src/index.d.ts",
"engines": {
"node": ">= 6.0.0"
},
"dependencies": {
"chokidar": "2.0.3",
"express": "4.13.4",
"socket.io": "1.4.5",
"systemd": "0.3.1",
"winston": "2.1.1",
"@types/verror": "latest",
"shelljs": "0.8.2"
},
"optionalDependencies": {
"serialport": "6.0.5",
"@types/serialport": "latest",
"i2c": "0.2.3",
"epoll": "0.1.18",
"pi-spi": "1.0.2",
"roboticscape": "0.0.8",
"ffi": "2.2.0"
},
"devDependencies": {
"coveralls": "~3.0.1",
"js-beautify": "^1.7.5",
"jscoverage": "~0.6.0",
"nodeunit": "^0.11.2",
"socket.io-client": "1.4.5"
},
"scripts": {
"start": "node server.js",
"test": "NODE_PATH=.. nodeunit test",
"beautify": "NODE_PATH=.. js-beautify --config lint-config.json -r -f *.js src/*.js test/*.js",
"coveralls": "NODE_PATH=.. jscoverage src && NODE_PATH=.. BONESCRIPT_COV=1 nodeunit --reporter=lcov test | coveralls"
}
}
================================================
FILE: server.js
================================================
var b = require('bonescript');
var util = require('util');
var fs = require('fs');
var configFile = '/etc/default/bonescript';
var server;
//read the configuration from configFile
fs.readFile(configFile, {
encoding: 'ascii'
}, function read(err, data) {
if (err) {
server = b.serverStart(); //start server with default settings
} else {
data = JSON.parse(data); //start server with saved config
server = b.serverStart(data.port, data.directory, {
data: data.passphrase,
hash: data.hash
});
}
onServerStart();
});
function onServerStart() {
server.on('server$listening', serverListening);
server.on('server$error', serverError);
server.on('server$connection', serverConnection);
}
function serverListening() {
if (debug) winston.debug('Server listening');
}
function serverError(error) {
if (debug) winston.debug('Server error: ' + JSON.stringify(error));
}
function serverConnection(connection) {
if (debug) winston.debug('Server connection: ' + connection);
}
================================================
FILE: src/autorun.js
================================================
// Copyright (C) 2013 - Texas Instruments, Jason Kridner
//
//
var fs = require('fs');
var child_process = require('child_process');
var events = require('events');
var my = require('./my');
var winston = my.require('winston');
var chokidar = my.require('chokidar');
var debug = process.env.DEBUG ? true : false;
var apps = {};
var watchers = [];
var emitter = new events.EventEmitter();
var autorun = function (dir) {
var ar = dir || '/var/lib/cloud9/autorun';
winston.info('Starting bonescript autorun service');
fs.exists(ar, arExists);
function arExists(exists) {
if (!exists) fs.mkdir(ar, arWatch);
else fs.readdir(ar, arFound);
}
function arFound(err, files) {
if (err) {
winston.err('Error reading directory: ' + err);
arWatch();
return;
}
var i = 0;
arTestNext();
function arTestNext() {
if (i == files.length) {
arWatch();
return;
}
if (debug) winston.debug("arTestNext: files[" + i + "] = " + ar + '/' + files[i]);
appStart(ar + '/' + files[i]);
i++;
arTestNext();
}
}
function appStart(file) {
if (apps[file]) {
if (debug) winston.debug("already started: " + file);
return;
}
appTest();
function appTest() {
fs.exists(file, appExists);
}
function appExists(exists) {
function onStdout(data) {
winston.info('stdout (' + file + '): ' + data);
}
function onStderr(data) {
winston.info('stderr (' + file + '):' + data);
}
if (exists) {
if (typeof apps[file] != 'undefined') {
winston.info('already running: ' + file);
return;
}
if (file.match(/\.js$/)) {
winston.info('start: ' + file);
apps[file] = child_process.spawn(process.argv[0], [file]);
apps[file].on('close', appClosed);
apps[file].stdout.on('data', onStdout);
apps[file].stderr.on('data', onStderr);
} else if (file.match(/\.py$/)) {
winston.info('start: ' + file);
apps[file] = child_process.spawn('/usr/bin/python', [file]);
apps[file].on('close', appClosed);
apps[file].stdout.on('data', onStdout);
apps[file].stderr.on('data', onStderr);
} else if (file.match(/\.sh$/)) {
winston.info('start: ' + file);
apps[file] = child_process.spawn('/bin/bash', [file]);
apps[file].on('close', appClosed);
apps[file].stdout.on('data', onStdout);
apps[file].stderr.on('data', onStderr);
} else if (file.match(/\.ino$/)) {
winston.info('start: ' + file);
apps[file] = child_process.spawn('/usr/bin/make', [
"-f",
"/var/lib/cloud9/extras/Userspace-Arduino/Makefile",
"TARGET=" + file.replace(/\.ino$/, ''),
"LOCAL_INO_SRCS=" + file,
"LOCAL_C_SRCS=",
"LOCAL_CPP_SRCS=",
"LOCAL_PDE_SRCS=",
"LOCAL_AS_SRCS=",
"COMMON_DEPS="
], {
'cwd': ar
});
apps[file].on('close', appClosed);
apps[file].stdout.on('data', onStdout);
apps[file].stderr.on('data', onStderr);
}
emitter.emit('start', file);
}
}
function appClosed(code, signal) {
winston.info("closed: " + file);
delete apps[file];
emitter.emit('closed', file);
//setTimeout(appTest, 1000);
}
}
function arWatch() {
if (debug) winston.debug("arWatch: " + ar);
var w = chokidar.watch(ar, {
persistent: true
});
w.on('add', arAdd);
w.on('change', arChange);
w.on('unlink', appStop);
watchers.push(w);
}
function arAdd(filename) {
winston.info('add: ' + filename);
appStart(filename);
}
function arChange(filename) {
winston.info('change: ' + filename);
appStop(filename);
appStart(filename);
}
function appStop(file) {
if (debug) {
for (var x in apps) {
winston.debug('running: ' + x);
}
}
if (typeof apps[file] != 'undefined') {
emitter.emit('stop', file);
winston.info('stop: ' + file + ' (pid: ' + apps[file].pid + ')');
apps[file].kill('SIGTERM');
} else {
winston.info('already stopped: ' + file);
}
}
return ({
getApps: function () {
return (apps);
},
getEmitter: function () {
return (emitter);
},
stop: function () {
for (var app in apps) {
appStop(app);
}
for (var w in watchers) {
watchers[w].close();
}
}
});
};
module.exports = {
autorun: autorun
};
================================================
FILE: src/bone.js
================================================
// Database of pins
// pinIndex is an array whose elements describe each pin. The order is
// USR LEDs, P8 header pins, then P9 header
// pins is an object whose keys are the pinIndex keys, e.g. P9_14.
// uarts and i2c are objects describing the serial ports and i2c buses.
var pinIndex = [{
"name": "USR0",
"gpio": 53,
"led": "beaglebone:green:usr0",
"mux": "gpmc_a5",
"key": "USR0",
"muxRegOffset": "0x054",
"options": [
"gpmc_a5",
"gmii2_txd0",
"rgmii2_td0",
"rmii2_txd0",
"gpmc_a21",
"pr1_mii1_rxd3",
"eqep1b_in",
"gpio1_21"
],
"ball": {
"ZCZ": "V15",
"BSM": "P13"
},
"ai": {
"gpio": 81,
"ball": {
"abc": [
"AF6",
""
]
},
"muxRegOffset": [
"0x1528",
""
],
"options": [
"vin1a_d13",
"vin1b_d2",
"",
"",
"vout3_d10",
"gpmc_a25",
"",
"",
"",
"kbd_row7",
"pr1_edc_sync1_out",
"",
"pr1_pru0_gpi10",
"pr1_pru0_gpo10",
"gpio3_17",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "USR1",
"gpio": 54,
"led": "beaglebone:green:usr1",
"mux": "gpmc_a6",
"key": "USR1",
"muxRegOffset": "0x058",
"options": [
"gpmc_a6",
"gmii2_txclk",
"rgmii2_tclk",
"mmc2_dat4",
"gpmc_a22",
"pr1_mii1_rxd2",
"eqep1_index",
"gpio1_22"
],
"ball": {
"ZCZ": "U15",
"BSM": "T14"
},
"ai": {
"gpio": 133,
"ball": {
"abc": [
"J11",
""
]
},
"muxRegOffset": [
"0x16C0",
""
],
"options": [
"mcasp1_axr3",
"mcasp6_axr3",
"",
"uart6_rtsn",
"",
"",
"vout2_d3",
"",
"vin4a_d3",
"",
"",
"",
"",
"",
"gpio5_5",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "USR2",
"gpio": 55,
"led": "beaglebone:green:usr2",
"mux": "gpmc_a7",
"key": "USR2",
"muxRegOffset": "0x05c",
"options": [
"gpmc_a7",
"gmii2_rxclk",
"rgmii2_rclk",
"mmc2_dat5",
"gpmc_a23",
"pr1_mii1_rxd1",
"eqep1_strobe",
"gpio1_23"
],
"ball": {
"ZCZ": "T15",
"BSM": "R14"
},
"ai": {
"gpio": 79,
"ball": {
"abc": [
"AG5",
""
]
},
"muxRegOffset": [
"0x1520",
""
],
"options": [
"vin1a_d11",
"vin1b_d4",
"",
"",
"vout3_d12",
"gpmc_a23",
"",
"",
"",
"kbd_row5",
"pr1_edc_latch1_in",
"",
"pr1_pru0_gpi8",
"pr1_pru0_gpo8",
"gpio3_15",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "USR3",
"gpio": 56,
"led": "beaglebone:green:usr3",
"mux": "gpmc_a8",
"key": "USR3",
"muxRegOffset": "0x060",
"options": [
"gpmc_a8",
"gmii2_rxd3",
"rgmii2_rd3",
"mmc2_dat6",
"gpmc_a24",
"pr1_mii1_rxd0",
"mcasp0_aclkx",
"gpio1_24"
],
"ball": {
"ZCZ": "V16",
"BSM": "P14"
},
"ai": {
"gpio": 78,
"ball": {
"abc": [
"AG3",
""
]
},
"muxRegOffset": [
"0x151C",
""
],
"options": [
"vin1a_d10",
"vin1b_d5",
"",
"",
"vout3_d13",
"",
"",
"",
"",
"kbd_row4",
"pr1_edc_latch0_in",
"",
"pr1_pru0_gpi7",
"pr1_pru0_gpo7",
"gpio3_14",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "USR4",
"led": "beaglebone:green:usr4",
"key": "USR4",
"ai": {
"gpio": 71,
"ball": {
"abc": [
"AH6",
""
]
},
"muxRegOffset": [
"0x1500",
""
],
"options": [
"vin1a_d3",
"",
"",
"vout3_d4",
"vout3_d20",
"uart8_rtsn",
"",
"",
"",
"",
"eCAP1_in_PWM1_out",
"",
"pr1_pru0_gpi0",
"pr1_pru0_gpo0",
"gpio3_7",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "DGND",
"key": [
"P8_1",
"P8_2",
"P9_1",
"P9_2",
"P9_43",
"P9_44",
"P9_45",
"P9_46",
"P1_15",
"P1_16",
"P1_22",
"P2_15",
"P2_21",
"E1_1",
"E2_1",
"E3_1",
"E4_1",
"S1_1_1",
"S1_2_1",
"UT0_1",
"UT1_1",
"UT5_1",
"DSM2_2",
"I2C_1",
"GPS_2",
"GPS_6",
"GP0_1",
"GP1_1"
]
},
{
"name": "GPIO1_6",
"gpio": 38,
"mux": "gpmc_ad6",
"eeprom": 26,
"key": "P8_3",
"universalName": [
"ocp:P8_03_pinmux"
],
"muxRegOffset": "0x018",
"options": [
"gpmc_ad6",
"mmc1_dat6",
"NA",
"NA",
"NA",
"NA",
"NA",
"gpio1_6"
],
"ball": {
"ZCZ": "R9",
"BSM": "P4"
},
"ai": {
"gpio": 24,
"ball": {
"abc": [
"AB8",
""
]
},
"muxRegOffset": [
"0x179C",
""
],
"options": [
"mmc3_dat6",
"spi4_d0",
"uart10_ctsn",
"",
"vin2b_de1",
"",
"",
"",
"",
"vin5a_hsync0",
"ehrpwm3_tripzone_input",
"pr2_mii1_rxd1",
"pr2_pru0_gpi10",
"pr2_pru0_gpo10",
"gpio1_24",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO1_7",
"gpio": 39,
"mux": "gpmc_ad7",
"eeprom": 27,
"key": "P8_4",
"universalName": [
"ocp:P8_04_pinmux"
],
"muxRegOffset": "0x01c",
"options": [
"gpmc_ad7",
"mmc1_dat7",
"NA",
"NA",
"NA",
"NA",
"NA",
"gpio1_7"
],
"ball": {
"ZCZ": "T9",
"BSM": "R4"
},
"ai": {
"gpio": 25,
"ball": {
"abc": [
"AB5",
""
]
},
"muxRegOffset": [
"0x17A0",
""
],
"options": [
"mmc3_dat7",
"spi4_cs0",
"uart10_rtsn",
"",
"vin2b_clk1",
"",
"",
"",
"",
"vin5a_vsync0",
"eCAP3_in_PWM3_out",
"pr2_mii1_rxd0",
"pr2_pru0_gpi11",
"pr2_pru0_gpo11",
"gpio1_25",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO1_2",
"gpio": 34,
"mux": "gpmc_ad2",
"eeprom": 22,
"key": "P8_5",
"universalName": [
"ocp:P8_05_pinmux"
],
"muxRegOffset": "0x008",
"options": [
"gpmc_ad2",
"mmc1_dat2",
"NA",
"NA",
"NA",
"NA",
"NA",
"gpio1_2"
],
"ball": {
"ZCZ": "R8",
"BSM": "R1"
},
"ai": {
"gpio": 193,
"ball": {
"abc": [
"AC9",
""
]
},
"muxRegOffset": [
"0x178C",
""
],
"options": [
"mmc3_dat2",
"spi3_cs0",
"uart5_ctsn",
"",
"vin2b_d3",
"",
"",
"",
"",
"vin5a_d3",
"eQEP3_index",
"pr2_mii_mr1_clk",
"pr2_pru0_gpi6",
"pr2_pru0_gpo6",
"gpio7_1",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO1_3",
"gpio": 35,
"mux": "gpmc_ad3",
"eeprom": 23,
"key": "P8_6",
"universalName": [
"ocp:P8_06_pinmux"
],
"muxRegOffset": "0x00c",
"options": [
"gpmc_ad3",
"mmc1_dat3",
"NA",
"NA",
"NA",
"NA",
"NA",
"gpio1_3"
],
"ball": {
"ZCZ": "T8",
"BSM": "T3"
},
"ai": {
"gpio": 194,
"ball": {
"abc": [
"AC3",
""
]
},
"muxRegOffset": [
"0x1790",
""
],
"options": [
"mmc3_dat3",
"spi3_cs1",
"uart5_rtsn",
"",
"vin2b_d2",
"",
"",
"",
"",
"vin5a_d2",
"eQEP3_strobe",
"pr2_mii1_rxdv",
"pr2_pru0_gpi7",
"pr2_pru0_gpo7",
"gpio7_2",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "TIMER4",
"gpio": 66,
"mux": "gpmc_advn_ale",
"eeprom": 41,
"key": [
"P8_7",
"RED",
"GP1_5"
],
"led": [
null,
"red",
"red"
],
"universalName": [
"ocp:P8_07_pinmux"
],
"muxRegOffset": "0x090",
"options": [
"gpmc_advn_ale",
"NA",
"timer4",
"NA",
"NA",
"NA",
"NA",
"gpio2_2"
],
"ball": {
"ZCZ": "R7",
"BSM": "M1"
},
"ai": {
"gpio": 165,
"ball": {
"abc": [
"G14",
""
]
},
"muxRegOffset": [
"0x16EC",
""
],
"options": [
"mcasp1_axr14",
"mcasp7_aclkx",
"mcasp7_aclkr",
"",
"",
"",
"",
"vin6a_d9",
"",
"",
"timer11",
"pr2_mii0_rxdv",
"pr2_pru1_gpi16",
"pr2_pru1_gpo16",
"gpio6_5",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "TIMER7",
"gpio": 67,
"mux": "gpmc_oen_ren",
"eeprom": 44,
"key": [
"P8_8",
"GREEN",
"GP1_6"
],
"led": [
null,
"green",
"green"
],
"universalName": [
"ocp:P8_08_pinmux"
],
"muxRegOffset": "0x094",
"options": [
"gpmc_oen_ren",
"NA",
"timer7",
"NA",
"NA",
"NA",
"NA",
"gpio2_3"
],
"ball": {
"ZCZ": "T7",
"BSM": "N1"
},
"ai": {
"gpio": 166,
"ball": {
"abc": [
"F14",
""
]
},
"muxRegOffset": [
"0x16F0",
""
],
"options": [
"mcasp1_axr15",
"mcasp7_fsx",
"mcasp7_fsr",
"",
"",
"",
"",
"vin6a_d8",
"",
"",
"timer12",
"pr2_mii0_rxd3",
"pr2_pru0_gpi20",
"pr2_pru0_gpo20",
"gpio6_6",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "TIMER5",
"gpio": 69,
"mux": "gpmc_ben0_cle",
"eeprom": 42,
"key": [
"P8_9",
"PAUSE"
],
"universalName": [
"ocp:P8_09_pinmux"
],
"muxRegOffset": "0x09c",
"options": [
"gpmc_ben0_cle",
"NA",
"timer5",
"NA",
"NA",
"NA",
"NA",
"gpio2_5"
],
"ball": {
"ZCZ": "T6",
"BSM": "N3"
},
"ai": {
"gpio": 178,
"ball": {
"abc": [
"E17",
""
]
},
"muxRegOffset": [
"0x1698",
""
],
"options": [
"xref_clk1",
"mcasp2_axr9",
"mcasp1_axr5",
"mcasp2_ahclkx",
"mcasp6_ahclkx",
"",
"",
"vin6a_clk0",
"",
"",
"timer14",
"pr2_mii1_crs",
"pr2_pru1_gpi6",
"pr2_pru1_gpo6",
"gpio6_18",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "TIMER6",
"gpio": 68,
"mux": "gpmc_wen",
"eeprom": 43,
"key": [
"P8_10",
"MODE"
],
"muxRegOffset": "0x098",
"options": [
"gpmc_wen",
"NA",
"timer6",
"NA",
"NA",
"NA",
"NA",
"gpio2_4"
],
"ball": {
"ZCZ": "U6",
"BSM": "N2"
},
"ai": {
"gpio": 164,
"ball": {
"abc": [
"A13",
""
]
},
"muxRegOffset": [
"0x16E8",
""
],
"options": [
"mcasp1_axr13",
"mcasp7_axr1",
"",
"",
"",
"",
"",
"vin6a_d10",
"",
"",
"timer10",
"pr2_mii_mr0_clk",
"pr2_pru1_gpi15",
"pr2_pru1_gpo15",
"gpio6_4",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO1_13",
"gpio": 45,
"mux": "gpmc_ad13",
"eeprom": 29,
"key": [
"P8_11",
"E3_4",
"P2_33"
],
"muxRegOffset": "0x034",
"options": [
"gpmc_ad13",
"lcd_data18",
"mmc1_dat5",
"mmc2_dat1",
"eqep2B_in",
"pr1_mii0_txd",
"pr1_pru0_pru_r30_15",
"gpio1_13"
],
"ball": {
"ZCZ": "R12",
"BSM": "R6"
},
"ai": {
"gpio": 75,
"ball": {
"abc": [
"AH4",
""
]
},
"muxRegOffset": [
"0x1510",
""
],
"options": [
"vin1a_d7",
"",
"",
"vout3_d0",
"vout3_d16",
"",
"",
"",
"",
"",
"eQEP2B_in",
"",
"pr1_pru0_gpi4",
"pr1_pru0_gpo4",
"gpio3_11",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO1_12",
"gpio": 44,
"mux": "gpmc_ad12",
"eeprom": 28,
"key": [
"P8_12",
"E3_3",
"P2_24"
],
"muxRegOffset": "0x030",
"options": [
"gpmc_ad12",
"lcd_data19",
"mmc1_dat4",
"mmc2_dat0",
"eqep2a_in",
"pr1_mii0_txd2",
"pr1_pru0_pru_r30_14",
"gpio1_12"
],
"ball": {
"ZCZ": "T12",
"BSM": "P6"
},
"ai": {
"gpio": 74,
"ball": {
"abc": [
"AG6",
""
]
},
"muxRegOffset": [
"0x150C",
""
],
"options": [
"vin1a_d6",
"",
"",
"vout3_d1",
"vout3_d17",
"",
"",
"",
"",
"",
"eQEP2A_in",
"",
"pr1_pru0_gpi3",
"pr1_pru0_gpo3",
"gpio3_10",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "EHRPWM2B",
"gpio": 23,
"mux": "gpmc_ad9",
"eeprom": 15,
// From am335x technical manual, p.183
// http://www.ti.com/lit/ug/spruh73n/spruh73n.pdf
"pwm": {
"module": "ehrpwm2",
"sysfs": 6,
"index": 1,
"muxmode": 4,
"path": "ehrpwm.2:1",
"name": "EHRPWM2B",
"chip": "48304000",
"addr": "48304200"
},
"key": [
"P8_13",
"P2_3"
],
"universalName": [
"ocp:P8_13_pinmux",
"ocp:P2_03_pinmux"
],
"muxRegOffset": "0x024",
"options": [
"gpmc_ad9",
"lcd_data22",
"mmc1_dat1",
"mmc2_dat5",
"ehrpwm2B",
"pr1_mii0_col",
"NA",
"gpio0_23"
],
"ball": {
"ZCZ": "T10",
"BSM": "P5"
},
"ai": {
"gpio": 107,
"ball": {
"abc": [
"D3",
""
]
},
"muxRegOffset": [
"0x1590",
""
],
"options": [
"vin2a_d10",
"",
"",
"mdio_mclk",
"vout2_d13",
"",
"",
"",
"",
"kbd_col7",
"ehrpwm2B",
"pr1_mdio_mdclk",
"pr1_pru1_gpi7",
"pr1_pru1_gpo7",
"gpio4_11",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO0_26",
"gpio": 26,
"mux": "gpmc_ad10",
"eeprom": 16,
"key": [
"P8_14",
"BAT100",
"P1_34"
],
"led": [
null,
"bat100",
null
],
"muxRegOffset": "0x028",
"options": [
"gpmc_ad10",
"lcd_data21",
"mmc1_dat2",
"mmc2_dat6",
"ehrpwm2_tripzone_input",
"pr1_mii0_txen",
"NA",
"gpio0_26"
],
"ball": {
"ZCZ": "T11",
"BSM": "R5"
},
"ai": {
"gpio": 109,
"ball": {
"abc": [
"D5",
""
]
},
"muxRegOffset": [
"0x1598",
""
],
"options": [
"vin2a_d12",
"",
"",
"rgmii1_txc",
"vout2_d11",
"",
"",
"",
"mii1_rxclk",
"kbd_col8",
"eCAP2_in_PWM2_out",
"pr1_mii1_txd1",
"pr1_pru1_gpi9",
"pr1_pru1_gpo9",
"gpio4_13",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO1_15",
"gpio": 47,
"mux": "gpmc_ad15",
"eeprom": 31,
"key": [
"P8_15",
"E4_4",
"P2_18"
],
"muxRegOffset": "0x03c",
"options": [
"gpmc_ad15",
"lcd_data16",
"mmc1_dat7",
"mmc2_dat3",
"eqep2_strobe",
"pr1_ecap0_ecap_capin_apwm_o",
"pr1_pru0_pru_r31_15",
"gpio1_15"
],
"ball": {
"ZCZ": "U13",
"BSM": "P7"
},
"ai": {
"gpio": 99,
"ball": {
"abc": [
"D1",
"A3"
]
},
"muxRegOffset": [
"0x1570",
"0x15B4"
],
"options": [
"vin2a_d2",
"",
"",
"",
"vout2_d21",
"emu12",
"",
"",
"uart10_rxd",
"kbd_row6",
"eCAP1_in_PWM1_out",
"pr1_ecap0_ecap_capin_apwm_o",
"pr1_edio_data_in7",
"pr1_edio_data_out7",
"gpio4_3",
"Driver off",
"vin2a_d19",
"",
"vin2b_d4",
"rgmii1_rxctl",
"vout2_d4",
"",
"vin3a_d11",
"",
"mii1_txer",
"",
"ehrpwm3_tripzone_input",
"pr1_mii1_rxd0",
"pr1_pru1_gpi16",
"pr1_pru1_gpo16",
"gpio4_27",
"Driver off"
]
}
},
{
"name": "GPIO1_14",
"gpio": 46,
"mux": "gpmc_ad14",
"eeprom": 30,
"key": [
"P8_16",
"E4_3",
"P2_22"
],
"muxRegOffset": "0x038",
"options": [
"gpmc_ad14",
"lcd_data17",
"mmc1_dat6",
"mmc2_dat2",
"eqep2_index",
"pr1_mii0_txd0",
"pr1_pru0_pru_r31_14",
"gpio1_14"
],
"ball": {
"ZCZ": "V13",
"BSM": "T6"
},
"ai": {
"gpio": 125,
"ball": {
"abc": [
"B4",
""
]
},
"muxRegOffset": [
"0x15BC",
""
],
"options": [
"vin2a_d21",
"",
"vin2b_d2",
"rgmii1_rxd2",
"vout2_d2",
"vin3a_fld0",
"vin3a_d13",
"",
"mii1_col",
"",
"",
"pr1_mii1_rxlink",
"pr1_pru1_gpi18",
"pr1_pru1_gpo18",
"gpio4_29",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO0_27",
"gpio": 27,
"mux": "gpmc_ad11",
"eeprom": 17,
"key": [
"P8_17",
"BAT25",
"P2_19"
],
"led": [
null,
"bat25",
null
],
"muxRegOffset": "0x02c",
"options": [
"gpmc_ad11",
"lcd_data20",
"mmc1_dat3",
"mmc2_dat7",
"ehrpwm0_synco",
"pr1_mii0_txd3",
"NA",
"gpio0_27"
],
"ball": {
"ZCZ": "U12",
"BSM": "T5"
},
"ai": {
"gpio": 242,
"ball": {
"abc": [
"A7",
""
]
},
"muxRegOffset": [
"0x1624",
""
],
"options": [
"vout1_d18",
"",
"emu4",
"vin4a_d2",
"vin3a_d2",
"obs11",
"obs27",
"",
"",
"",
"pr2_edio_data_in2",
"pr2_edio_data_out2",
"pr2_pru0_gpi15",
"pr2_pru0_gpo15",
"gpio8_18",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO2_1",
"gpio": 65,
"mux": "gpmc_clk",
"eeprom": 40,
"key": [
"P8_18",
"P2_17"
],
"muxRegOffset": "0x08c",
"options": [
"gpmc_clk",
"lcd_memory_clk_mux",
"NA",
"mmc2_clk",
"NA",
"NA",
"mcasp0_fsr",
"gpio2_1"
],
"ball": {
"ZCZ": "V12",
"BSM": "T7"
},
"ai": {
"gpio": 105,
"ball": {
"abc": [
"F5",
""
]
},
"muxRegOffset": [
"0x1588",
""
],
"options": [
"vin2a_d8",
"",
"",
"",
"vout2_d15",
"emu18",
"",
"",
"mii1_rxd3",
"kbd_col5",
"eQEP2_strobe",
"pr1_mii1_txd3",
"pr1_pru1_gpi5",
"pr1_pru1_gpo5",
"gpio4_9",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "EHRPWM2A",
"gpio": 22,
"mux": "gpmc_ad8",
"eeprom": 14,
// From am335x technical manual, p.183
// http://www.ti.com/lit/ug/spruh73n/spruh73n.pdf
"pwm": {
"module": "ehrpwm2",
"sysfs": 5,
"index": 0,
"muxmode": 4,
"path": "ehrpwm.2:0",
"name": "EHRPWM2A",
"chip": "48304000",
"addr": "48304200"
},
"key": "P8_19",
"muxRegOffset": "0x020",
"options": [
"gpmc_ad8",
"lcd_data23",
"mmc1_dat0",
"mmc2_dat4",
"ehrpwm2A",
"pr1_mii_mt0_clk",
"NA",
"gpio0_22"
],
"ball": {
"ZCZ": "U10",
"BSM": "T4"
},
"ai": {
"gpio": 106,
"ball": {
"abc": [
"E6",
""
]
},
"muxRegOffset": [
"0x158C",
""
],
"options": [
"vin2a_d9",
"",
"",
"",
"vout2_d14",
"emu19",
"",
"",
"mii1_rxd0",
"kbd_col6",
"ehrpwm2A",
"pr1_mii1_txd2",
"pr1_pru1_gpi6",
"pr1_pru1_gpo6",
"gpio4_10",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO1_31",
"gpio": 63,
"mux": "gpmc_csn2",
"eeprom": 39,
"key": "P8_20",
"muxRegOffset": "0x084",
"options": [
"gpmc_csn2",
"gpmc_be1n",
"mmc1_cmd",
"pr1_edio_data_in7",
"pr1_edio_data_out7",
"pr1_pru1_pru_r30_13",
"pr1_pru1_pru_r31_13",
"gpio1_31"
],
"ball": {
"ZCZ": "V9",
"BSM": "P1"
},
"ai": {
"gpio": 190,
"ball": {
"abc": [
"AC4",
""
]
},
"muxRegOffset": [
"0x1780",
""
],
"options": [
"mmc3_cmd",
"spi3_sclk",
"",
"",
"vin2b_d6",
"",
"",
"",
"",
"vin5a_d6",
"eCAP2_in_PWM2_out",
"pr2_mii1_txd2",
"pr2_pru0_gpi3",
"pr2_pru0_gpo3",
"gpio6_30",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO1_30",
"gpio": 62,
"mux": "gpmc_csn1",
"eeprom": 38,
"key": "P8_21",
"muxRegOffset": "0x080",
"options": [
"gpmc_csn1",
"gpmc_clk",
"mmc1_clk",
"pr1_edio_data_in6",
"pr1_edio_data_out6",
"pr1_pru1_pru_r30_12",
"pr1_pru1_pru_r31_12",
"gpio1_30"
],
"ball": {
"ZCZ": "U9",
"BSM": "P2"
},
"ai": {
"gpio": 189,
"ball": {
"abc": [
"AD4",
""
]
},
"muxRegOffset": [
"0x177C",
""
],
"options": [
"mmc3_clk",
"",
"",
"",
"vin2b_d7",
"",
"",
"",
"",
"vin5a_d7",
"ehrpwm2_tripzone_input",
"pr2_mii1_txd3",
"pr2_pru0_gpi2",
"pr2_pru0_gpo2",
"gpio6_29",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO1_5",
"gpio": 37,
"mux": "gpmc_ad5",
"eeprom": 25,
"key": "P8_22",
"muxRegOffset": "0x014",
"options": [
"gpmc_ad5",
"mmc1_dat5",
"NA",
"NA",
"NA",
"NA",
"NA",
"gpio1_5"
],
"ball": {
"ZCZ": "V8",
"BSM": "T1"
},
"ai": {
"gpio": 23,
"ball": {
"abc": [
"AD6",
""
]
},
"muxRegOffset": [
"0x1798",
""
],
"options": [
"mmc3_dat5",
"spi4_d1",
"uart10_txd",
"",
"vin2b_d0",
"",
"",
"",
"",
"vin5a_d0",
"ehrpwm3B",
"pr2_mii1_rxd2",
"pr2_pru0_gpi9",
"pr2_pru0_gpo9",
"gpio1_23",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO1_4",
"gpio": 36,
"mux": "gpmc_ad4",
"eeprom": 24,
"key": "P8_23",
"muxRegOffset": "0x010",
"options": [
"gpmc_ad4",
"mmc1_dat4",
"NA",
"NA",
"NA",
"NA",
"NA",
"gpio1_4"
],
"ball": {
"ZCZ": "U8",
"BSM": "T2"
},
"ai": {
"gpio": 22,
"ball": {
"abc": [
"AC8",
""
]
},
"muxRegOffset": [
"0x1794",
""
],
"options": [
"mmc3_dat4",
"spi4_sclk",
"uart10_rxd",
"",
"vin2b_d1",
"",
"",
"",
"",
"vin5a_d1",
"ehrpwm3A",
"pr2_mii1_rxd3",
"pr2_pru0_gpi8",
"pr2_pru0_gpo8",
"gpio1_22",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO1_1",
"gpio": 33,
"mux": "gpmc_ad1",
"eeprom": 21,
"key": "P8_24",
"muxRegOffset": "0x004",
"options": [
"gpmc_ad1",
"mmc1_dat1",
"NA",
"NA",
"NA",
"NA",
"NA",
"gpio1_1"
],
"ball": {
"ZCZ": "V7",
"BSM": "R2"
},
"ai": {
"gpio": 192,
"ball": {
"abc": [
"AC6",
""
]
},
"muxRegOffset": [
"0x1788",
""
],
"options": [
"mmc3_dat1",
"spi3_d0",
"uart5_txd",
"",
"vin2b_d4",
"",
"",
"",
"",
"vin5a_d4",
"eQEP3B_in",
"pr2_mii1_txd0",
"pr2_pru0_gpi5",
"pr2_pru0_gpo5",
"gpio7_0",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO1_0",
"gpio": 32,
"mux": "gpmc_ad0",
"eeprom": 20,
"key": "P8_25",
"muxRegOffset": "0x000",
"options": [
"gpmc_ad0",
"mmc1_dat0",
"NA",
"NA",
"NA",
"NA",
"NA",
"gpio1_0"
],
"ball": {
"ZCZ": "U7",
"BSM": "R3"
},
"ai": {
"gpio": 191,
"ball": {
"abc": [
"AC7",
""
]
},
"muxRegOffset": [
"0x1784",
""
],
"options": [
"mmc3_dat0",
"spi3_d1",
"uart5_rxd",
"",
"vin2b_d5",
"",
"",
"",
"",
"vin5a_d5",
"eQEP3A_in",
"pr2_mii1_txd1",
"pr2_pru0_gpi4",
"pr2_pru0_gpo4",
"gpio6_31",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO1_29",
"gpio": 61,
"mux": "gpmc_csn0",
"eeprom": 37,
"key": [
"P8_26",
"BAT75"
],
"led": [
null,
"bat75"
],
"muxRegOffset": "0x07c",
"options": [
"gpmc_csn0",
"NA",
"NA",
"NA",
"NA",
"NA",
"NA",
"gpio1_29"
],
"ball": {
"ZCZ": "V6",
"BSM": "P3"
},
"ai": {
"gpio": 124,
"ball": {
"abc": [
"B3",
""
]
},
"muxRegOffset": [
"0x15B8",
""
],
"options": [
"vin2a_d20",
"",
"vin2b_d3",
"rgmii1_rxd3",
"vout2_d3",
"vin3a_de0",
"vin3a_d12",
"",
"mii1_rxer",
"",
"eCAP3_in_PWM3_out",
"pr1_mii1_rxer",
"pr1_pru1_gpi17",
"pr1_pru1_gpo17",
"gpio4_28",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO0_19",
"gpio": 19,
"mux": "xdma_event_intr0",
"eeprom": 37,
"key": [
"WIFI",
"P2_31"
],
"led": [
"wifi",
null
],
"muxRegOffset": "0x1b0",
"options": [
"xdma_event_intr0",
"NA",
"timer4",
"clkout1",
"spi1_cs1",
"pr1_pru1_pru_r31",
"EMU2",
"gpio0_19"
],
"ball": {
"ZCZ": "A15",
"BSM": "A4"
}
},
{
"name": "GPIO2_22",
"gpio": 86,
"mux": "lcd_vsync",
"eeprom": 57,
"key": [
"P8_27",
"SERVO_1",
"P2_35"
],
"muxRegOffset": "0x0e0",
"options": [
"lcd_vsync",
"gpmc_a8",
"NA",
"pr1_edio_data_in2",
"pr1_edio_data_out2",
"pr1_pru1_pru_r30_8",
"pr1_pru1_pru_r31_8",
"gpio2_22"
],
"ball": {
"ZCZ": "U5",
"BSM": "F3"
},
"ai": {
"gpio": 119,
"ball": {
"abc": [
"E11",
"A8"
]
},
"muxRegOffset": [
"0x15D8",
"0x1628"
],
"options": [
"vout1_vsync",
"",
"",
"vin4a_vsync0",
"vin3a_vsync0",
"",
"",
"",
"spi3_sclk",
"",
"",
"",
"pr2_pru1_gpi17",
"pr2_pru1_gpo17",
"gpio4_23",
"Driver off",
"vout1_d19",
"",
"emu15",
"vin4a_d3",
"vin3a_d3",
"obs12",
"obs28",
"",
"",
"",
"pr2_edio_data_in3",
"pr2_edio_data_out3",
"pr2_pru0_gpi16",
"pr2_pru0_gpo16",
"gpio8_19",
"Driver off"
]
}
},
{
"name": "GPIO2_24",
"gpio": 88,
"mux": "lcd_pclk",
"eeprom": 59,
"key": [
"P8_28",
"SERVO_2",
"P1_35",
"PRU1_10"
],
"muxRegOffset": "0x0e8",
"options": [
"lcd_pclk",
"gpmc_a10",
"pr1_mii0_crs",
"pr1_edio_data_in4",
"pr1_edio_data_out4",
"pr1_pru1_pru_r30_10",
"pr1_pru1_pru_r31_10",
"gpio2_24"
],
"ball": {
"ZCZ": "V5",
"BSM": "F1"
},
"ai": {
"gpio": 115,
"ball": {
"abc": [
"D11",
"C9"
]
},
"muxRegOffset": [
"0x15C8",
"0x162C"
],
"options": [
"vout1_clk",
"",
"",
"vin4a_fld0",
"vin3a_fld0",
"",
"",
"",
"spi3_cs0",
"",
"",
"",
"",
"",
"gpio4_19",
"Driver off",
"vout1_d20",
"",
"emu16",
"vin4a_d4",
"vin3a_d4",
"obs13",
"obs29",
"",
"",
"",
"pr2_edio_data_in4",
"pr2_edio_data_out4",
"pr2_pru0_gpi17",
"pr2_pru0_gpo17",
"gpio8_20",
"Driver off"
]
}
},
{
"name": "GPIO2_23",
"gpio": 87,
"mux": "lcd_hsync",
"eeprom": 58,
"key": [
"P8_29",
"SERVO_3",
"P1_2"
],
"muxRegOffset": "0x0e4",
"options": [
"lcd_hsync",
"gpmc_a9",
"gpmc_a2",
"pr1_edio_data_in3",
"pr1_edio_data_out3",
"pr1_pru1_pru_r30_9",
"pr1_pru1_pru_r31_9",
"gpio2_23"
],
"ball": {
"ZCZ": "R5",
"BSM": "F2"
},
"ai": {
"gpio": 118,
"ball": {
"abc": [
"C11",
"A9"
]
},
"muxRegOffset": [
"0x15D4",
"0x1630"
],
"options": [
"vout1_hsync",
"",
"",
"vin4a_hsync0",
"vin3a_hsync0",
"",
"",
"",
"spi3_d0",
"",
"",
"",
"",
"",
"gpio4_22",
"Driver off",
"vout1_d21",
"",
"emu17",
"vin4a_d5",
"vin3a_d5",
"obs14",
"obs30",
"",
"",
"",
"pr2_edio_data_in5",
"pr2_edio_data_out5",
"pr2_pru0_gpi18",
"pr2_pru0_gpo18",
"gpio8_21",
"Driver off"
]
}
},
{
"name": "GPIO2_25",
"gpio": 89,
"mux": "lcd_ac_bias_en",
"eeprom": 60,
"key": [
"P8_30",
"SERVO_4",
"P1_4",
"PRU1_11"
],
"muxRegOffset": "0x0ec",
"options": [
"lcd_ac_bias_en",
"gpmc_a11",
"pr1_mii1_crs",
"pr1_edio_data_in5",
"pr1_edio_data_out5",
"pr1_pru1_pru_r30_11",
"pr1_pru1_pru_r31_11",
"gpio2_25"
],
"ball": {
"ZCZ": "R6",
"BSM": "E1"
},
"ai": {
"gpio": 116,
"ball": {
"abc": [
"B10",
"B9"
]
},
"muxRegOffset": [
"0x15CC",
"0x1634"
],
"options": [
"vout1_de",
"",
"",
"vin4a_de0",
"vin3a_de0",
"",
"",
"",
"spi3_d1",
"",
"",
"",
"",
"",
"gpio4_20",
"Driver off",
"vout1_d22",
"",
"emu18",
"vin4a_d6",
"vin3a_d6",
"obs15",
"obs31",
"",
"",
"",
"pr2_edio_data_in6",
"pr2_edio_data_out6",
"pr2_pru0_gpi19",
"pr2_pru0_gpo19",
"gpio8_22",
"Driver off"
]
}
},
{
"name": "UART5_CTSN",
"gpio": 10,
"mux": "lcd_data14",
"eeprom": 7,
"key": "P8_31",
"muxRegOffset": "0x0d8",
"options": [
"lcd_data14",
"gpmc_a18",
"NA",
"mcasp0_axr1",
"NA",
"NA",
"NA",
"gpio0_10"
],
"ball": {
"ZCZ": "V4",
"BSM": "L1"
},
"ai": {
"gpio": 238,
"ball": {
"abc": [
"C8",
"G16"
]
},
"muxRegOffset": [
"0x1614",
"0x173C"
],
"options": [
"vout1_d14",
"",
"emu13",
"vin4a_d14",
"vin3a_d14",
"obs9",
"obs25",
"",
"",
"",
"pr2_uart0_txd",
"",
"pr2_pru0_gpi11",
"pr2_pru0_gpo11",
"gpio8_14",
"Driver off",
"mcasp4_axr0",
"",
"spi3_d0",
"uart8_ctsn",
"uart4_rxd",
"",
"vout2_d18",
"",
"vin4a_d18",
"vin5a_d13",
"",
"",
"",
"",
"",
"Driver off"
]
}
},
{
"name": "UART5_RTSN",
"gpio": 11,
"mux": "lcd_data15",
"eeprom": 8,
"key": [
"P8_32",
"BAT50"
],
"led": [
null,
"bat50"
],
"muxRegOffset": "0x0dc",
"options": [
"lcd_data15",
"gpmc_a19",
"NA",
"mcasp0_ahclkx",
"mcasp0_axr3",
"NA",
"NA",
"gpio0_11"
],
"ball": {
"ZCZ": "T5",
"BSM": "M3"
},
"ai": {
"gpio": 239,
"ball": {
"abc": [
"C7",
"D17"
]
},
"muxRegOffset": [
"0x1618",
"0x1740"
],
"options": [
"vout1_d15",
"",
"emu14",
"vin4a_d15",
"vin3a_d15",
"obs10",
"obs26",
"",
"",
"",
"pr2_ecap0_ecap_capin_apwm_o",
"",
"pr2_pru0_gpi12",
"pr2_pru0_gpo12",
"gpio8_15",
"Driver off",
"mcasp4_axr1",
"",
"spi3_cs0",
"uart8_rtsn",
"uart4_txd",
"",
"vout2_d19",
"",
"vin4a_d19",
"vin5a_d12",
"",
"",
"pr2_pru1_gpi0",
"pr2_pru1_gpo0",
"",
"Driver off"
]
}
},
{
"name": "UART4_RTSN",
"gpio": 9,
"mux": "lcd_data13",
"eeprom": 6,
"key": [
"P8_33",
"E2_4"
],
"muxRegOffset": "0x0d4",
"options": [
"lcd_data13",
"gpmc_a17",
"NA",
"mcasp0_fsr",
"mcasp0_axr3",
"NA",
"NA",
"gpio0_9"
],
"ball": {
"ZCZ": "V3",
"BSM": "L2"
},
"ai": {
"gpio": 237,
"ball": {
"abc": [
"C6",
"AF9"
]
},
"muxRegOffset": [
"0x1610",
"0x14E8"
],
"options": [
"vout1_d13",
"",
"emu12",
"vin4a_d13",
"vin3a_d13",
"obs8",
"obs24",
"",
"",
"",
"pr2_uart0_rxd",
"",
"pr2_pru0_gpi10",
"pr2_pru0_gpo10",
"gpio8_13",
"Driver off",
"vin1a_fld0",
"vin1b_vsync1",
"",
"",
"vout3_clk",
"uart7_txd",
"",
"timer15",
"spi3_d1",
"kbd_row1",
"eQEP1B_in",
"",
"",
"",
"gpio3_1",
"Driver off"
]
}
},
{
"name": "UART3_RTSN",
"gpio": 81,
"mux": "lcd_data11",
"eeprom": 56,
// From am335x technical manual, p.183
// http://www.ti.com/lit/ug/spruh73n/spruh73n.pdf
"pwm": {
"module": "ehrpwm1",
"sysfs": 4,
"index": 1,
"muxmode": 2,
"path": "ehrpwm.1:1",
"name": "EHRPWM1B",
"chip": "48302000",
"addr": "48302200"
},
"key": "P8_34",
"muxRegOffset": "0x0cc",
"options": [
"lcd_data11",
"gpmc_a15",
"NA",
"mcasp0_ahclkr",
"mcasp0_axr2",
"NA",
"NA",
"gpio2_17"
],
"ball": {
"ZCZ": "V3",
"BSM": "K1"
},
"ai": {
"gpio": 235,
"ball": {
"abc": [
"D8",
"G6"
]
},
"muxRegOffset": [
"0x1608",
"0x1564"
],
"options": [
"vout1_d11",
"",
"emu10",
"vin4a_d11",
"vin3a_d11",
"obs6",
"obs22",
"obs_dmarq2",
"",
"",
"pr2_uart0_cts_n",
"",
"pr2_pru0_gpi8",
"pr2_pru0_gpo8",
"gpio8_11",
"Driver off",
"vin2a_vsync0",
"",
"",
"vin2b_vsync1",
"vout2_vsync",
"emu9",
"",
"uart9_txd",
"spi4_d1",
"kbd_row3",
"ehrpwm1A",
"pr1_uart0_rts_n",
"pr1_edio_data_in4",
"pr1_edio_data_out4",
"gpio4_0",
"Driver off"
]
}
},
{
"name": "UART4_CTSN",
"gpio": 8,
"mux": "lcd_data12",
"eeprom": 5,
"key": [
"P8_35",
"E2_3"
],
"muxRegOffset": "0x0d0",
"options": [
"lcd_data12",
"gpmc_a16",
"NA",
"mcasp0_aclkr",
"mcasp0_axr2",
"NA",
"NA",
"gpio0_8"
],
"ball": {
"ZCZ": "V2",
"BSM": "L3"
},
"ai": {
"gpio": 236,
"ball": {
"abc": [
"A5",
"AD9"
]
},
"muxRegOffset": [
"0x160C",
"0x14E4"
],
"options": [
"vout1_d12",
"",
"emu11",
"vin4a_d12",
"vin3a_d12",
"obs7",
"obs23",
"",
"",
"",
"pr2_uart0_rts_n",
"",
"pr2_pru0_gpi9",
"pr2_pru0_gpo9",
"gpio8_12",
"Driver off",
"vin1a_de0",
"vin1b_hsync1",
"",
"vout3_d17",
"vout3_de",
"uart7_rxd",
"",
"timer16",
"spi3_sclk",
"kbd_row0",
"eQEP1A_in",
"",
"",
"",
"gpio3_0",
"Driver off"
]
}
},
{
"name": "UART3_CTSN",
"gpio": 80,
"mux": "lcd_data10",
"eeprom": 55,
// From am335x technical manual, p.183
// http://www.ti.com/lit/ug/spruh73n/spruh73n.pdf
"pwm": {
"module": "ehrpwm1",
"sysfs": 3,
"index": 0,
"muxmode": 2,
"path": "ehrpwm.1:0",
"name": "EHRPWM1A",
"chip": "48302000",
"addr": "48302200"
},
"key": [
"P8_36",
"SERVO_PWR_EN"
],
"muxRegOffset": "0x0c8",
"options": [
"lcd_data10",
"gpmc_a14",
"ehrpwm1A",
"mcasp0_axr0",
"mcasp0_axr0",
"pr1_mii0_rxd1",
"uart3_ctsn",
"gpio2_16"
],
"ball": {
"ZCZ": "U3",
"BSM": "K2"
},
"ai": {
"gpio": 234,
"ball": {
"abc": [
"D7",
"F2"
]
},
"muxRegOffset": [
"0x1604",
"0x1568"
],
"options": [
"vout1_d10",
"",
"emu3",
"vin4a_d10",
"vin3a_d10",
"obs5",
"obs21",
"obs_irq2",
"",
"",
"pr2_edio_sof",
"",
"pr2_pru0_gpi7",
"pr2_pru0_gpo7",
"gpio8_10",
"Driver off",
"vin2a_d0",
"",
"",
"",
"vout2_d23",
"emu10",
"",
"uart9_ctsn",
"spi4_d0",
"kbd_row4",
"ehrpwm1B",
"pr1_uart0_rxd",
"pr1_edio_data_in5",
"pr1_edio_data_out5",
"gpio4_1",
"Driver off"
]
}
},
{
"name": "UART5_TXD",
"gpio": 78,
"mux": "lcd_data8",
"eeprom": 53,
"key": [
"P8_37",
"UT5_4"
],
"muxRegOffset": "0x0c0",
"options": [
"lcd_data8",
"gpmc_a12",
"NA",
"mcasp0_aclkx",
"NA",
"NA",
"uart2_ctsn",
"gpio2_14"
],
"ball": {
"ZCZ": "U1",
"BSM": "J1"
},
"ai": {
"gpio": 232,
"ball": {
"abc": [
"E8",
"A21"
]
},
"muxRegOffset": [
"0x15FC",
"0x1738"
],
"options": [
"vout1_d8",
"",
"uart6_rxd",
"vin4a_d8",
"vin3a_d8",
"",
"",
"",
"",
"",
"pr2_edc_sync1_out",
"",
"pr2_pru0_gpi5",
"pr2_pru0_gpo5",
"gpio8_8",
"Driver off",
"mcasp4_fsx",
"mcasp4_fsr",
"spi3_d1",
"uart8_txd",
"i2c4_scl",
"",
"vout2_d17",
"",
"vin4a_d17",
"vin5a_d14",
"",
"",
"",
"",
"",
"Driver off"
]
}
},
{
"name": "UART5_RXD",
"gpio": 79,
"mux": "lcd_data9",
"eeprom": 54,
"key": [
"P8_38",
"UT5_3"
],
"muxRegOffset": "0x0c4",
"options": [
"lcd_data9",
"gpmc_a13",
"NA",
"mcasp0_fsx",
"NA",
"NA",
"uart2_rtsn",
"gpio2_15"
],
"ball": {
"ZCZ": "U2",
"BSM": "K3"
},
"ai": {
"gpio": 233,
"ball": {
"abc": [
"D9",
"C18"
]
},
"muxRegOffset": [
"0x1600",
"0x1734"
],
"options": [
"vout1_d9",
"",
"uart6_txd",
"vin4a_d9",
"vin3a_d9",
"",
"",
"",
"",
"",
"pr2_edio_latch_in",
"",
"pr2_pru0_gpi6",
"pr2_pru0_gpo6",
"gpio8_9",
"Driver off",
"mcasp4_aclkx",
"mcasp4_aclkr",
"spi3_sclk",
"uart8_rxd",
"i2c4_sda",
"",
"vout2_d16",
"",
"vin4a_d16",
"vin5a_d15",
"",
"",
"",
"",
"",
"Driver off"
]
}
},
{
"name": "GPIO2_12",
"gpio": 76,
"mux": "lcd_data6",
"eeprom": 51,
"key": [
"P8_39",
"SERVO_5"
],
"muxRegOffset": "0x0b8",
"options": [
"lcd_data6",
"gpmc_a6",
"pr1_edio_data_in6",
"eqep2_index",
"pr1_edio_data_out6",
"pr1_pru1_pru_r30_6",
"pr1_pru1_pru_r31_6",
"gpio2_12"
],
"ball": {
"ZCZ": "T3",
"BSM": "J3"
},
"ai": {
"gpio": 230,
"ball": {
"abc": [
"F8",
""
]
},
"muxRegOffset": [
"0x15F4",
""
],
"options": [
"vout1_d6",
"",
"emu8",
"vin4a_d22",
"vin3a_d22",
"obs4",
"obs20",
"",
"",
"",
"pr2_edc_latch1_in",
"",
"pr2_pru0_gpi3",
"pr2_pru0_gpo3",
"gpio8_6",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO2_13",
"gpio": 77,
"mux": "lcd_data7",
"eeprom": 52,
"key": [
"P8_40",
"SERVO_6"
],
"muxRegOffset": "0x0bc",
"options": [
"lcd_data7",
"gpmc_a7",
"pr1_edio_data_in7",
"eqep2_strobe",
"pr1_edio_data_out_7",
"pr1_pru1_pru_r30_7",
"pr1_pru1_pru_r31_7",
"gpio2_13"
],
"ball": {
"ZCZ": "T4",
"BSM": "J2"
},
"ai": {
"gpio": 231,
"ball": {
"abc": [
"E7",
""
]
},
"muxRegOffset": [
"0x15F8",
""
],
"options": [
"vout1_d7",
"",
"emu9",
"vin4a_d23",
"vin3a_d23",
"",
"",
"",
"",
"",
"pr2_edc_sync0_out",
"",
"pr2_pru0_gpi4",
"pr2_pru0_gpo4",
"gpio8_7",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO2_10",
"gpio": 74,
"mux": "lcd_data4",
"eeprom": 49,
"key": [
"P8_41",
"SERVO_7"
],
"muxRegOffset": "0x0b0",
"options": [
"lcd_data4",
"gpmc_a4",
"pr1_mii0_txd1",
"eQEP2A_in",
"NA",
"pr1_pru1_pru_r30_4",
"pr1_pru1_pru_r31_4",
"gpio2_10"
],
"ball": {
"ZCZ": "T1",
"BSM": "H2"
},
"ai": {
"gpio": 228,
"ball": {
"abc": [
"E9",
""
]
},
"muxRegOffset": [
"0x15EC",
""
],
"options": [
"vout1_d4",
"",
"emu6",
"vin4a_d20",
"vin3a_d20",
"obs2",
"obs18",
"",
"",
"",
"pr1_ecap0_ecap_capin_apwm_o",
"",
"pr2_pru0_gpi1",
"pr2_pru0_gpo1",
"gpio8_4",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO2_11",
"gpio": 75,
"mux": "lcd_data5",
"eeprom": 50,
"key": [
"P8_42",
"SERVO_8"
],
"muxRegOffset": "0x0b4",
"options": [
"lcd_data5",
"gpmc_a5",
"pr1_mii0_txd0",
"eqep2b_in",
"NA",
"pr1_pru1_pru_r30_5",
"pr1_pru1_pru_r31_5",
"gpio2_11"
],
"ball": {
"ZCZ": "T2",
"BSM": "H1"
},
"ai": {
"gpio": 229,
"ball": {
"abc": [
"F9",
""
]
},
"muxRegOffset": [
"0x15F0",
""
],
"options": [
"vout1_d5",
"",
"emu7",
"vin4a_d21",
"vin3a_d21",
"obs3",
"obs19",
"",
"",
"",
"pr2_edc_latch0_in",
"",
"pr2_pru0_gpi2",
"pr2_pru0_gpo2",
"gpio8_5",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO2_8",
"gpio": 72,
"mux": "lcd_data2",
"eeprom": 47,
"key": "P8_43",
"muxRegOffset": "0x0a8",
"options": [
"lcd_data2",
"gpmc_a2",
"pr1_mii0_txd3",
"ehrpwm2_tripzone_input",
"NA",
"pr1_pru1_pru_r30_2",
"pr1_pru1_pru_r31_2",
"gpio2_8"
],
"ball": {
"ZCZ": "R3",
"BSM": "G1"
},
"ai": {
"gpio": 226,
"ball": {
"abc": [
"F10",
""
]
},
"muxRegOffset": [
"0x15E4",
""
],
"options": [
"vout1_d2",
"",
"emu2",
"vin4a_d18",
"vin3a_d18",
"obs0",
"obs16",
"obs_irq1",
"",
"",
"pr1_uart0_rxd",
"",
"pr2_pru1_gpi20",
"pr2_pru1_gpo20",
"gpio8_2",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO2_9",
"gpio": 73,
"mux": "lcd_data3",
"eeprom": 48,
"key": "P8_44",
"muxRegOffset": "0x0ac",
"options": [
"lcd_data3",
"gpmc_a3",
"pr1_mii0_txd2",
"ehrpwm0_synco",
"NA",
"pr1_pru1_pru_r30_3",
"pr1_pru1_pru_r31_3",
"gpio2_9"
],
"ball": {
"ZCZ": "R4",
"BSM": "H3"
},
"ai": {
"gpio": 227,
"ball": {
"abc": [
"G11",
""
]
},
"muxRegOffset": [
"0x15E8",
""
],
"options": [
"vout1_d3",
"",
"emu5",
"vin4a_d19",
"vin3a_d19",
"obs1",
"obs17",
"obs_dmarq1",
"",
"",
"pr1_uart0_txd",
"",
"pr2_pru0_gpi0",
"pr2_pru0_gpo0",
"gpio8_3",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO2_6",
"gpio": 70,
"mux": "lcd_data0",
"eeprom": 45,
// From am335x technical manual, p.183
// http://www.ti.com/lit/ug/spruh73n/spruh73n.pdf
"pwm": {
"module": "ehrpwm2",
"sysfs": 5,
"index": 0,
"muxmode": 3,
"path": "ehrpwm.2:0",
"name": "EHRPWM2A",
"chip": "48304000",
"addr": "48304200"
},
"key": "P8_45",
"muxRegOffset": "0x0a0",
"options": [
"lcd_data0",
"gpmc_a0",
"pr1_mii_mt0_clk",
"ehrpwm2A",
"NA",
"pr1_pru1_pru_r30_0",
"pr1_pru1_pru_r31_0",
"gpio2_6"
],
"ball": {
"ZCZ": "R1",
"BSM": "G3"
},
"ai": {
"gpio": 224,
"ball": {
"abc": [
"F11",
"B7"
]
},
"muxRegOffset": [
"0x15DC",
"0x161C"
],
"options": [
"vout1_d0",
"",
"uart5_rxd",
"vin4a_d16",
"vin3a_d16",
"",
"",
"",
"spi3_cs2",
"",
"pr1_uart0_cts_n",
"",
"pr2_pru1_gpi18",
"pr2_pru1_gpo18",
"gpio8_0",
"Driver off",
"vout1_d16",
"",
"uart7_rxd",
"vin4a_d0",
"vin3a_d0",
"",
"",
"",
"",
"",
"pr2_edio_data_in0",
"pr2_edio_data_out0",
"pr2_pru0_gpi13",
"pr2_pru0_gpo13",
"gpio8_16",
"Driver off"
]
}
},
{
"name": "GPIO2_7",
"gpio": 71,
"mux": "lcd_data1",
"eeprom": 46,
// From am335x technical manual, p.183
// http://www.ti.com/lit/ug/spruh73n/spruh73n.pdf
"pwm": {
"module": "ehrpwm2",
"sysfs": 6,
"index": 1,
"muxmode": 3,
"path": "ehrpwm.2:1",
"name": "EHRPWM2B",
"chip": "48304000",
"addr": "48304200"
},
"key": "P8_46",
"muxRegOffset": "0x0a4",
"options": [
"lcd_data1",
"gpmc_a1",
"pr1_mii0_txen",
"ehrpwm2B",
"NA",
"pr1_pru1_pru_r30_1",
"pr1_pru1_pru_r31_1",
"gpio2_7"
],
"ball": {
"ZCZ": "R2",
"BSM": "G2"
},
"ai": {
"gpio": 225,
"ball": {
"abc": [
"G10",
"A10"
]
},
"muxRegOffset": [
"0x15E0",
"0x1638"
],
"options": [
"vout1_d1",
"",
"uart5_txd",
"vin4a_d17",
"vin3a_d17",
"",
"",
"",
"",
"",
"pr1_uart0_rts_n",
"",
"pr2_pru1_gpi19",
"pr2_pru1_gpo19",
"gpio8_1",
"Driver off",
"vout1_d23",
"",
"emu19",
"vin4a_d7",
"vin3a_d7",
"",
"",
"",
"spi3_cs3",
"",
"pr2_edio_data_in7",
"pr2_edio_data_out7",
"pr2_pru0_gpi20",
"pr2_pru0_gpo20",
"gpio8_23",
"Driver off"
]
}
},
{
"name": "VDD_3V3",
"key": [
"P9_3",
"P9_4",
"P1_14",
"P2_23",
"E1_2",
"E2_2",
"E3_2",
"E4_2",
"GP0_2",
"GP1_2",
"S1_1_2",
"S1_2_2",
"UT0_2",
"UT1_2",
"UT5_2",
"DSM2_1",
"I2C_2"
]
},
{
"name": "VDD_5V",
"key": [
"P9_5",
"P9_6",
"P1_1"
]
},
{
"name": "SYS_5V",
"key": [
"P9_7",
"P9_8",
"P1_24",
"P2_13",
"GPS_5"
]
},
{
"name": "PWR_BUT",
"key": [
"P9_9",
"P2_12"
],
"ball": {
"BSM": "T11"
},
"ai": {
"gpio": null,
"ball": {
"abc": [
"PMIC - G8",
""
]
},
"muxRegOffset": [
"",
""
],
"options": [
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "SYS_RESETn",
"key": [
"P9_10",
"P2_26"
],
"ball": {
"ZCZ": "A10",
"BSM": "R11"
},
"ai": {
"gpio": null,
"ball": {
"abc": [
"F23",
""
]
},
"muxRegOffset": [
"0x1864",
""
],
"options": [
"rstoutn",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "UART4_RXD",
"gpio": 30,
"mux": "gpmc_wait0",
"eeprom": 18,
"key": [
"P9_11",
"DSM2_3",
"P2_5"
],
"muxRegOffset": "0x070",
"options": [
"gpmc_wait0",
"mii2_crs",
"gpmc_csn4",
"rmii2_crs_dv",
"mmc1_sdcd",
"pr1_mii1_col",
"uart4_rxd",
"gpio0_30"
],
"ball": {
"ZCZ": "T17",
"BSM": "P15"
},
"ai": {
"gpio": 241,
"ball": {
"abc": [
"B19",
"B8"
]
},
"muxRegOffset": [
"0x172C",
"0x1620"
],
"options": [
"mcasp3_axr0",
"",
"mcasp2_axr14",
"uart7_ctsn",
"uart5_rxd",
"",
"",
"vin6a_d1",
"",
"",
"",
"pr2_mii1_rxer",
"pr2_pru0_gpi14",
"pr2_pru0_gpo14",
"",
"Driver off",
"vout1_d17",
"",
"uart7_txd",
"vin4a_d1",
"vin3a_d1",
"",
"",
"",
"",
"",
"pr2_edio_data_in1",
"pr2_edio_data_out1",
"pr2_pru0_gpi14",
"pr2_pru0_gpo14",
"gpio8_17",
"Driver off"
]
}
},
{
"name": "GPIO1_28",
"gpio": 60,
"mux": "gpmc_ben1",
"eeprom": 36,
"key": [
"P9_12",
"P2_8"
],
"muxRegOffset": "0x078",
"options": [
"gpmc_ben1",
"mii2_col",
"NA",
"mmc2_dat3",
"NA",
"NA",
"mcasp0_aclkr",
"gpio1_28"
],
"ball": {
"ZCZ": "U18",
"BSM": "N14"
},
"ai": {
"gpio": 128,
"ball": {
"abc": [
"B14",
""
]
},
"muxRegOffset": [
"0x16AC",
""
],
"options": [
"mcasp1_aclkr",
"mcasp7_axr2",
"",
"",
"",
"",
"vout2_d0",
"",
"vin4a_d0",
"",
"i2c4_sda",
"",
"",
"",
"gpio5_0",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "UART4_TXD",
"gpio": 31,
"mux": "gpmc_wpn",
"eeprom": 19,
"key": [
"P9_13",
"P2_7"
],
"muxRegOffset": "0x074",
"options": [
"gpmc_wpn",
"mii2_rxerr",
"NA",
"rmii2_rxerr",
"mmc2_sdcd",
"NA",
"NA",
"gpio0_31"
],
"ball": {
"ZCZ": "U17",
"BSM": "R16"
},
"ai": {
"gpio": 172,
"ball": {
"abc": [
"C17",
"AB10**"
]
},
"muxRegOffset": [
"0x1730",
"0x1680"
],
"options": [
"mcasp3_axr1",
"",
"mcasp2_axr15",
"uart7_rtsn",
"uart5_txd",
"",
"",
"vin6a_d0",
"",
"vin5a_fld0",
"",
"pr2_mii1_rxlink",
"pr2_pru0_gpi15",
"pr2_pru0_gpo15",
"",
"Driver off",
"usb1_drvvbus",
"",
"",
"",
"",
"",
"",
"timer16",
"",
"",
"",
"",
"",
"",
"gpio6_12",
"Driver off"
]
}
},
{
"name": "EHRPWM1A",
"gpio": 50,
"mux": "gpmc_a2",
"eeprom": 34,
// From am335x technical manual, p.183
// http://www.ti.com/lit/ug/spruh73n/spruh73n.pdf
"pwm": {
"module": "ehrpwm1",
"sysfs": 3,
"index": 0,
"muxmode": 6,
"path": "ehrpwm.1:0",
"name": "EHRPWM1A",
"chip": "48302000",
"addr": "48302200"
},
"key": [
"P9_14",
"P2_1"
],
"universalName": [
"ocp:P9_14_pinmux",
"ocp:P2_01_pinmux",
"ocp:PWM_pinmux"
],
"muxRegOffset": "0x048",
"options": [
"gpmc_a2",
"gmii2_txd3",
"rgmii2_td3",
"mmc2_dat1",
"gpmc_a18",
"pr1_mii1_txd2",
"ehrpwm1A",
"gpio1_18"
],
"ball": {
"ZCZ": "U14",
"BSM": "P12"
},
"ai": {
"gpio": 121,
"ball": {
"abc": [
"D6",
""
]
},
"muxRegOffset": [
"0x15AC",
""
],
"options": [
"vin2a_d17",
"",
"vin2b_d6",
"rgmii1_txd0",
"vout2_d6",
"",
"vin3a_d9",
"",
"mii1_txd2",
"",
"ehrpwm3A",
"pr1_mii1_rxd2",
"pr1_pru1_gpi14",
"pr1_pru1_gpo14",
"gpio4_25",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO1_16",
"gpio": 48,
"mux": "mii1_rxd3",
"eeprom": 32,
"key": "P9_15",
"muxRegOffset": "0x040",
"options": [
"gpmc_a0",
"gmii2_txen",
"rgmii2_tctl",
"rmii2_txen",
"gpmc_a16",
"pr1_mii_mt1_clk",
"ehrpwm1_tripzone_input",
"gpio1_16"
],
"ball": {
"ZCZ": "R13",
"BSM": "T12"
},
"ai": {
"gpio": 76,
"ball": {
"abc": [
"AG4",
""
]
},
"muxRegOffset": [
"0x1514",
""
],
"options": [
"vin1a_d8",
"vin1b_d7",
"",
"",
"vout3_d15",
"",
"",
"",
"",
"kbd_row2",
"eQEP2_index",
"",
"pr1_pru0_gpi5",
"pr1_pru0_gpo5",
"gpio3_12",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "GPIO1_16",
"gpio": 64,
"mux": "gpmc_csn3",
"eeprom": null,
"key": [
"P9_15B",
"P2_20"
],
"muxRegOffset": "0x088",
"options": [
"gpmc_csn3",
"gpmc_a3",
"rmii2_crs_dv",
"mmc2_cmd",
"pr1_mii0_crs",
"pr1_mdio_data",
"gpio2_0"
],
"ball": {
"ZCZ": "T13",
"BSM": "R7"
}
},
{
"name": "EHRPWM1B",
"gpio": 51,
"mux": "gpmc_a3",
"eeprom": 35,
// From am335x technical manual, p.183
// http://www.ti.com/lit/ug/spruh73n/spruh73n.pdf
"pwm": {
"module": "ehrpwm1",
"sysfs": 4,
"index": 1,
"muxmode": 6,
"path": "ehrpwm.1:1",
"name": "EHRPWM1B",
"chip": "48302000",
"addr": "48302200"
},
"key": "P9_16",
"muxRegOffset": "0x04c",
"options": [
"gpmc_a3",
"gmii2_txd2",
"rgmii2_td2",
"mmc2_dat2",
"gpmc_a19",
"pr1_mii1_txd1",
"ehrpwm1B",
"gpio1_19"
],
"ball": {
"ZCZ": "T14",
"BSM": "T13"
},
"ai": {
"gpio": 122,
"ball": {
"abc": [
"C5",
""
]
},
"muxRegOffset": [
"0x15B0",
""
],
"options": [
"vin2a_d18",
"",
"vin2b_d5",
"rgmii1_rxc",
"vout2_d5",
"",
"vin3a_d10",
"",
"mii1_txd3",
"",
"ehrpwm3B",
"pr1_mii1_rxd1",
"pr1_pru1_gpi15",
"pr1_pru1_gpo15",
"gpio4_26",
"Driver off",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
},
{
"name": "I2C1_SCL",
"gpio": 5,
"mux": "spi0_cs0",
"eeprom": 3,
"key": [
"P9_17",
"I2C_3",
"P1_6"
],
"muxRegOffset": "0x15c",
"options": [
"spi0_cs0",
"mmc2_sdwp",
"i2c1_scl",
"ehrpwm0_synci",
"pr1_uart0_txd",
"pr1_edio_data_in1",
"pr1_edio_data_out1",
"gpio0_5"
],
"ball": {
"ZCZ": "A16",
"BSM": "A14"
},
"ai": {
"gpio": 209,
"ball": {
"abc": [
"B24",
"F12"
]
},
"muxRegOffset": [
"0x17CC",
"0x16B8"
],
"options": [
"spi2_cs0",
"uart3_rtsn",
"uart5_txd",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"gpio7_17",
"Driver off",
"mcasp1_axr1",
"",
"",
"uart6_txd",
"",
"",
"",
"vin6a_hsync0",
"",
"",
"i2c5_scl",
"pr2_mii_mt0_clk",
"pr2_pru1_gpi9",
"pr2_pru1_gpo9",
"gpio5_3",
"Driver off"
]
}
},
{
"name": "I2C1_SDA",
"gpio": 4,
"mux": "spi0_d1",
"eeprom": 2,
"key": [
"P9_18",
"I2C_4",
"P1_12"
],
"muxRegOffset": "0x158",
"options": [
"spi0_d1",
"mmc1_sdwp",
"i2c1_sda",
"ehrpwm0_tripzone_input",
"pr1_uart0_rxd",
"pr1_edio_data_in0",
"pr1_edio_data_out0",
"gpio0_4"
],
"ball": {
"ZCZ": "B16",
"BSM": "B14"
},
"ai": {
"gpio": 208,
"ball": {
"abc": [
"G17",
"G12"
]
},
"muxRegOffset": [
"0x17C8",
"0x16B4"
],
"options": [
"spi2_d0",
"uart3_ctsn",
"uart5_rxd",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"gpio7_16",
"Driver off",
"mcasp1_axr0",
"",
"",
"uart6_rxd",
"",
"",
"",
"vin6a_vsync0",
"",
"",
"i2c5_sda",
"pr2_mii0_rxer",
"pr2_pru1_gpi8",
"pr2_pru1_gpo8",
"gpio5_2",
"Driver off"
]
}
},
{
"name": "I2C2_SCL",
"gpio": 13,
"mux": "uart1_rtsn",
"eeprom": 9,
"key": [
"P9_19",
"P1_28"
],
"muxRegOffset": "0x17c",
"options": [
"uart1_rtsn",
"timer5",
"d_can0_rx",
"i2c2_scl",
"spi1_cs1",
"pr1_uart0_rts_n",
"pr1_edc_latch1_in",
"gpio0_13"
],
"ball": {
"ZCZ": "D17",
"BSM": "A10"
},
"ai": {
"gpio": 102,
"ball": {
"abc": [
"R6",
"F4"
]
},
"muxRegOffset": [
"0x1440",
"0x157C"
],
"options": [
"gpmc_a0",
"",
"vin3a_d16",
"vout3_d16",
"vin4a_d0",
"",
"vin4b_d0",
"i2c4_scl",
"uart5_rxd",
"",
"",
"",
"",
"",
"gpio7_3",
"Driver off",
"vin2a_d5",
"",
"",
"",
"vout2_d18",
"emu15",
"",
"",
"uart10_rtsn",
"kbd_col2",
"eQEP2A_in",
"pr1_edio_sof",
"pr1_pru1_gpi2",
"pr1_pru1_gpo2",
"gpio4_6",
"Driver off"
]
}
},
{
"name": "I2C2_SDA",
"gpio": 12,
"mux": "uart1_ctsn",
"eeprom": 10,
"key": [
"P9_20",
"P1_26"
],
"muxRegOffset": "0x178",
"options": [
"uart1_ctsn",
"NA",
"d_can0_tx",
"i2c2_sda",
"spi1_cs0",
"pr1_uart0_cts_n",
"pr1_edc_latch0_in",
"gpio0_12"
],
"ball": {
"ZCZ": "D18",
"BSM": "B10"
},
"ai": {
"gpio": 101,
"ball": {
"abc": [
"T9",
"D2"
]
},
"muxRegOffset": [
"0x1444",
"0x1578"
],
"options": [
"gpmc_a1",
"",
"vin3a_d17",
"vout3_d17",
"vin4a_d1",
"",
"vin4b_d1",
"i2c4_sda",
"uart5_txd",
"",
"",
"",
"",
"",
"gpio7_4",
"Driver off",
"vin2a_d4",
"",
"",
"",
"vout2_d19",
"emu14",
"",
"",
"uart10_ctsn",
"kbd_col1",
"ehrpwm1_synco",
"pr1_edc_sync0_out",
"pr1_pru1_gpi1",
"pr1_pru1_gpo1",
"gpio4_5",
"Driver off"
]
}
},
{
"name": "UART2_TXD",
"gpio": 3,
"mux": "spi0_d0",
"eeprom": 1,
// From am335x technical manual, p.183
// http://www.ti.com/lit/ug/spruh73n/spruh73n.pdf
"pwm": {
"module": "ehrpwm0",
"sysfs": 1,
"index": 1,
"muxmode": 3,
"path": "ehrpwm.0:1",
"name": "EHRPWM0B",
"chip": "48300000",
"addr": "48300200"
},
"key": [
"P9_21",
"GPS_4",
"P1_10"
],
"muxRegOffset": "0x154",
"options": [
"spi0_d0",
"uart2_txd",
"i2c2_scl",
"ehrpwm0B",
"pr1_uart_rts_n",
"pr1_edio_latch_in",
"EMU3",
"gpio0_3"
],
"ball": {
"ZCZ": "B17",
"BSM": "B13"
},
"ai": {
"gpio": 67,
"ball": {
"abc": [
"AF8",
"B22"
]
},
"muxRegOffset": [
"0x14F0",
"0x17C4"
],
"options": [
"vin1a_vsync0",
"vin1b_de1",
"",
"",
"vout3_vsync",
"uart7_rtsn",
"",
"timer13",
"spi3_cs0",
"",
"eQEP1_strobe",
"",
"",
"",
"gpio3_3",
"Driver off",
"spi2_d1",
"uart3_txd",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"gpio7_15",
"Driver off"
]
}
},
{
"name": "UART2_RXD",
"gpio": 2,
"mux": "spi0_sclk",
"eeprom": 0,
// From am335x technical manual, p.183
// http://www.ti.com/lit/ug/spruh73n/spruh73n.pdf
"pwm": {
"module": "ehrpwm0",
"sysfs": 0,
"index": 0,
"muxmode": 3,
"path": "ehrpwm.0:0",
"name": "EHRPWM0A",
"chip": "48300000",
"addr": "48300200"
},
"key": [
"P9_22",
"GPS_3",
"P1_8"
],
"muxRegOffset": "0x150",
"options": [
"spi0_sclk",
"uart2_rxd",
"i2c2_sda",
"ehrpwm0A",
"pr1_uart_cts_n",
"pr1_edio_sof",
"EMU2",
"gpio0_2"
],
"ball": {
"ZCZ": "A17",
"BSM": "A13"
},
"ai": {
"gpio": 179,
"ball": {
"abc": [
"B26",
"A26"
]
},
"muxRegOffset": [
"0x169C",
"0x17C0"
],
"options": [
"xref_clk2",
"mcasp2_axr10",
"mcasp1_axr6",
"mcasp3_ahclkx",
"mcasp7_ahclkx",
"",
"vout2_clk",
"",
"vin4a_clk0",
"",
"timer15",
"",
"",
"",
"gpio6_19",
"Driver off",
"spi2_sclk",
"uart3_rxd",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"gpio7_14",
"Driver off"
]
}
},
{
"name": "GPIO1_17",
"gpio": 49,
"mux": "gpmc_a1",
"eeprom": 33,
"key": [
"P9_23",
"GP0_4"
],
"muxRegOffset": "0x044",
"options": [
"gpmc_a1",
"gmii2_rxdv",
"rgmii2_rctl",
"mmc2_dat0",
"gpmc_a17",
"pr1_mii1_txd3",
"ehrpwm0_synco",
"gpio1_17"
],
gitextract_mlaszepj/
├── .gitignore
├── .travis.yml
├── LICENSE
├── Makefile
├── README.md
├── autorun.js
├── dts/
│ ├── bs_template.dts
│ ├── bspm_template.dts
│ └── bspwm_template.dts
├── etc/
│ ├── avahi/
│ │ └── services/
│ │ └── bone101.service
│ ├── default/
│ │ ├── cloud9
│ │ └── node
│ └── profile.d/
│ └── node.sh
├── lint-config.json
├── main.js
├── package.json
├── server.js
├── src/
│ ├── autorun.js
│ ├── bone.js
│ ├── bonescript.js
│ ├── constants.js
│ ├── eeprom.js
│ ├── ffiimp.js
│ ├── functions.js
│ ├── hw_capemgr.js
│ ├── hw_mainline.js
│ ├── hw_oldkernel.js
│ ├── hw_simulator.js
│ ├── hw_universal.js
│ ├── iic.js
│ ├── index.d.ts
│ ├── index.js
│ ├── my.js
│ ├── parse.js
│ ├── rc.js
│ ├── serial.js
│ ├── server.js
│ └── socket_handlers.js
├── systemd/
│ ├── bonescript-autorun.service
│ ├── bonescript.service
│ └── bonescript.socket
└── test/
├── TODO/
│ ├── bacon_test.js
│ ├── basic_sanity.sh
│ ├── constants.js
│ ├── eeprom.js
│ ├── fix-ssh.js
│ ├── fix-ssh.sh
│ ├── gitconfig
│ ├── remote_bonetest.js
│ ├── setdate.js
│ ├── test-analogwrite.js
│ ├── test-digitalread.js
│ ├── test-digitalwrite.js
│ ├── test-eeproms.json
│ ├── test-getpinmode.js
│ ├── test-globalsetuploop.js
│ ├── test-i2c-accel.js
│ ├── test-i2c.js
│ ├── test-pocketbeagle.js
│ ├── test-serial.js
│ ├── test-templates.js
│ ├── test-unloadslot.js
│ ├── test.sh
│ ├── update-bonescript.sh
│ ├── watch-button.js
│ ├── watch-button.sh
│ └── wired_basic_test.js
├── test-analogread.js
├── test-analogwrite.js
├── test-autorun.js
├── test-bone.js
├── test-digitalread.js
├── test-digitalwrite.js
├── test-ffi.js
├── test-getpinmode.js
├── test-lint.js
├── test-math.js
├── test-pinMode.js
├── test-rpc.js
├── test-rpc_secure.js
└── test-sanity.js
SYMBOL INDEX (176 symbols across 29 files)
FILE: server.js
function onServerStart (line 22) | function onServerStart() {
function serverListening (line 28) | function serverListening() {
function serverError (line 32) | function serverError(error) {
function serverConnection (line 36) | function serverConnection(connection) {
FILE: src/autorun.js
function arExists (line 23) | function arExists(exists) {
function arFound (line 28) | function arFound(err, files) {
function appStart (line 49) | function appStart(file) {
function arWatch (line 124) | function arWatch() {
function arAdd (line 135) | function arAdd(filename) {
function arChange (line 140) | function arChange(filename) {
function appStop (line 146) | function appStop(file) {
FILE: src/bonescript.js
function _onSocketIOLoaded (line 41) | function _onSocketIOLoaded(host, port, socketio, passphrase_hash) {
function _seqcall (line 119) | function _seqcall(data) {
function myrequire (line 132) | function myrequire(module) {
FILE: src/hw_capemgr.js
function doCreateDT (line 120) | function doCreateDT(resp) {
function onCreateDT (line 128) | function onCreateDT(resp) {
function onFileExists (line 226) | function onFileExists(exists) {
function onGPIOExport (line 237) | function onGPIOExport(err) {
function onGPIODirectionSet (line 245) | function onGPIODirectionSet(err) {
function onError (line 250) | function onError(err) {
function findOwner (line 257) | function findOwner() {
function onGPIOUsers (line 261) | function onGPIOUsers(err, data) {
FILE: src/hw_mainline.js
function stopPWM (line 373) | function stopPWM(callback) {
function updatePeriodAndDuty (line 395) | function updatePeriodAndDuty() {
FILE: src/index.d.ts
constant OUTPUT (line 131) | const OUTPUT: 'out';
constant INPUT (line 132) | const INPUT: 'in';
constant INPUT_PULLUP (line 133) | const INPUT_PULLUP: 'in_pullup';
constant ANALOG_OUTPUT (line 134) | const ANALOG_OUTPUT: 'analog_out';
constant HIGH (line 135) | const HIGH: 1;
constant LOW (line 136) | const LOW: 0;
constant LSBFIRST (line 137) | const LSBFIRST: 1;
constant MSBFIRST (line 138) | const MSBFIRST: 0;
constant CHANGE (line 139) | const CHANGE: 'both';
constant RISING (line 140) | const RISING: 'rising';
constant FALLING (line 141) | const FALLING: 'falling';
type PlatformObj (line 144) | interface PlatformObj {
type PinModeObj (line 163) | interface PinModeObj {
type BoneObj (line 183) | interface BoneObj {
type PinsObj (line 191) | interface PinsObj {
type UartsObj (line 195) | interface UartsObj {
type i2cObj (line 199) | interface i2cObj {
type PinInfo (line 203) | interface PinInfo {
type PwmInfo (line 224) | interface PwmInfo {
type UartInfo (line 235) | interface UartInfo {
type i2cInfo (line 241) | interface i2cInfo {
type PinStateType (line 249) | type PinStateType = typeof HIGH | typeof LOW;
type PinModeType (line 250) | type PinModeType = typeof ANALOG_OUTPUT | typeof INPUT | typeof INPUT_PU...
type InterruptType (line 251) | type InterruptType = typeof RISING | typeof FALLING | typeof CHANGE;
type BitOrderType (line 252) | type BitOrderType = typeof LSBFIRST | typeof MSBFIRST;
type ErrorCb (line 253) | type ErrorCb = (err: ErrorType) => void;
type InterruptFn (line 254) | type InterruptFn = (resp: {
type AttachIntCb (line 258) | type AttachIntCb = (resp: {
type DetachIntCb (line 262) | type DetachIntCb = (resp: {
type PinModeCb (line 266) | type PinModeCb = (resp: {
type DigitalWriteCb (line 270) | type DigitalWriteCb = (resp: {
type ErrorType (line 274) | type ErrorType = VError;
FILE: src/index.js
function analogCallback (line 304) | function analogCallback(x) {
function analogValue (line 313) | function analogValue(x) {
function next (line 352) | function next(err) {
function dateResponse (line 730) | function dateResponse(error, stdout, stderr) {
function run (line 795) | function run() {
FILE: src/my.js
function proxyGet (line 20) | function proxyGet(target, name) {
function proxyFunction (line 32) | function proxyFunction() {
function onFindCapeMgr (line 94) | function onFindCapeMgr(resp) {
function onReadDir (line 132) | function onReadDir(err, files) {
function onFindCapeMgr (line 186) | function onFindCapeMgr(x) {
function onReadSlots (line 204) | function onReadSlots(err, slots) {
function onWriteSlots (line 233) | function onWriteSlots(err) {
function unloadSlot (line 252) | function unloadSlot() {
function onUnloadSlot (line 269) | function onUnloadSlot(err) {
function onDTBOExistsTest (line 304) | function onDTBOExistsTest(exists) {
function createDTS (line 312) | function createDTS() {
function onDTSWrite (line 335) | function onDTSWrite(err) {
function dtcHandler (line 351) | function dtcHandler(error, stdout, stderr) {
function onDTBOExists (line 361) | function onDTBOExists() {
function myCallback (line 559) | function myCallback(x) {
FILE: src/rc.js
function myCallback (line 40) | function myCallback() {
FILE: src/server.js
function addServerListener (line 39) | function addServerListener(event, listener) {
function mylisten (line 59) | function mylisten(port, directory, passphrase_hash) {
FILE: src/socket_handlers.js
function sendFile (line 14) | function sendFile(err, file) {
function onconnect (line 60) | function onconnect(socket) {
function serverMessage (line 154) | function serverMessage(message) {
function spawn (line 161) | function spawn(socket) {
FILE: test/TODO/bacon_test.js
function blink (line 55) | function blink() {
function readButton (line 62) | function readButton() {
function onDigitalRead (line 67) | function onDigitalRead(x) {
function update7Seg (line 75) | function update7Seg() {
function onAnalogRead (line 80) | function onAnalogRead(x) {
function onI2C (line 93) | function onI2C() {
function readAccel (line 96) | function readAccel() {
function onReadBytes (line 100) | function onReadBytes(x) {
function convertToG (line 109) | function convertToG(x) {
FILE: test/TODO/fix-ssh.js
function onGetPlatform (line 5) | function onGetPlatform(x) {
function onSetDate (line 15) | function onSetDate(x) {
function onShell (line 29) | function onShell(x) {
function complete (line 35) | function complete() {
function err (line 40) | function err(x) {
function printJSON (line 45) | function printJSON(x) {
FILE: test/TODO/remote_bonetest.js
function _onSocketIOLoaded (line 26) | function _onSocketIOLoaded() {
function _seqcall (line 88) | function _seqcall(data) {
FILE: test/TODO/setdate.js
function onGetPlatform (line 5) | function onGetPlatform(x) {
function onSetDate (line 15) | function onSetDate(x) {
function complete (line 19) | function complete() {
function err (line 24) | function err(x) {
function printJSON (line 29) | function printJSON(x) {
FILE: test/TODO/test-digitalread.js
function doRead (line 5) | function doRead() {
FILE: test/TODO/test-getpinmode.js
function deleteFile (line 22) | function deleteFile(filename) {
FILE: test/TODO/test-i2c-accel.js
function onI2C (line 11) | function onI2C(x) {
function onScan (line 17) | function onScan(x) {
function onWriteBytes (line 21) | function onWriteBytes(x) {
function onWriteByte (line 27) | function onWriteByte(x) {
function onReadBytes (line 32) | function onReadBytes(x) {
FILE: test/TODO/test-i2c.js
function onI2C (line 12) | function onI2C(x) {
function onScan (line 18) | function onScan(err, data) {
function onWriteByte (line 22) | function onWriteByte(err) {
function onReadBytes (line 26) | function onReadBytes(err, res) {
FILE: test/TODO/test-serial.js
function onRxSerial (line 9) | function onRxSerial(x) {
function onTxSerial (line 21) | function onTxSerial(x) {
function printJSON (line 33) | function printJSON(x) {
function writeRepeatedly (line 37) | function writeRepeatedly() {
function onSerialWrite (line 41) | function onSerialWrite(x) {
FILE: test/TODO/wired_basic_test.js
function onGetPlatform (line 33) | function onGetPlatform(x) {
function onSetDate (line 47) | function onSetDate(x) {
function onEcho (line 56) | function onEcho(x) {
function onGetPinMode (line 62) | function onGetPinMode(x) {
function onPinModeInput (line 68) | function onPinModeInput(x) {
function onPinModeOutput (line 74) | function onPinModeOutput(x) {
function onDigitalWriteLow (line 80) | function onDigitalWriteLow(x) {
function onDigitalReadLow (line 86) | function onDigitalReadLow(x) {
function onDigitalWriteHigh (line 92) | function onDigitalWriteHigh(x) {
function onDigitalReadHigh (line 98) | function onDigitalReadHigh(x) {
function onAnalogWrite (line 104) | function onAnalogWrite(x) {
function doAnalogRead (line 110) | function doAnalogRead() {
function onAnalogRead (line 114) | function onAnalogRead(x) {
function onWriteTextFile (line 121) | function onWriteTextFile(x) {
function onReadTextFile (line 127) | function onReadTextFile(x) {
function doSerial (line 135) | function doSerial() {
function onSerialInOpen (line 140) | function onSerialInOpen(x) {
function onSerialOutOpen (line 151) | function onSerialOutOpen(x) {
function doSerialWrite (line 161) | function doSerialWrite() {
function onSerialWrite (line 172) | function onSerialWrite(x) {
function onSerialInData (line 176) | function onSerialInData(x) {
function complete (line 188) | function complete() {
function err (line 194) | function err(x) {
function onTimeout (line 200) | function onTimeout() {
function printJSON (line 204) | function printJSON(x) {
FILE: test/test-autorun.js
function onTimeout1 (line 49) | function onTimeout1() {
function onTimeout2 (line 55) | function onTimeout2() {
function onUnlink (line 60) | function onUnlink() {
FILE: test/test-bone.js
function makeTest (line 117) | function makeTest(i) {
function compareResults (line 130) | function compareResults(results, expected) {
FILE: test/test-ffi.js
function onWriteTextFile (line 66) | function onWriteTextFile() {
function onReadTextFile (line 74) | function onReadTextFile() {
FILE: test/test-getpinmode.js
function makeTest (line 409) | function makeTest(i) {
function compareResults (line 427) | function compareResults(results, expected) {
FILE: test/test-lint.js
function testDir (line 13) | function testDir(dir) {
function testFile (line 20) | function testFile(fileToTest) {
FILE: test/test-math.js
function getRandomInt (line 8) | function getRandomInt() {
FILE: test/test-rpc.js
function mycb (line 8) | function mycb(serverObj) {
function getPlatformTest_oldstyle (line 22) | function getPlatformTest_oldstyle() {
function getPlatformTest_nodestyle (line 33) | function getPlatformTest_nodestyle(platform_) {
function pinModeTest_oldstyle (line 47) | function pinModeTest_oldstyle() {
function pinModeTest_nodestyle (line 59) | function pinModeTest_nodestyle(x) {
function getPinModeTest_oldstyle (line 73) | function getPinModeTest_oldstyle() {
function getPinModeTest_nodestyle (line 88) | function getPinModeTest_nodestyle(x) {
function digitalWriteTest (line 107) | function digitalWriteTest() {
function digitalReadTest_oldstyle (line 119) | function digitalReadTest_oldstyle() {
function digitalReadTest_nodestyle (line 131) | function digitalReadTest_nodestyle(x) {
function analogWriteTest (line 145) | function analogWriteTest() {
function analogReadTest_oldstyle (line 158) | function analogReadTest_oldstyle() {
function analogReadTest_nodestyle (line 170) | function analogReadTest_nodestyle(x) {
function attachInterruptTest_oldstyle (line 183) | function attachInterruptTest_oldstyle() {
function attachInterruptTest_nodestyle (line 194) | function attachInterruptTest_nodestyle(x) {
function readTextFileTest_oldstyle (line 206) | function readTextFileTest_oldstyle() {
function readTextFileTest_nodestyle (line 218) | function readTextFileTest_nodestyle(x) {
FILE: test/test-rpc_secure.js
function mycb (line 11) | function mycb(serverobj) {
Condensed preview — 81 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (516K chars).
[
{
"path": ".gitignore",
"chars": 70,
"preview": ".settings.xml\n.DS_Store\nbonescript.log\n*~\nnode_modules\n.coveralls.yml\n"
},
{
"path": ".travis.yml",
"chars": 448,
"preview": "sudo: required\nlanguage: node_js\nnode_js:\n - \"6\"\n - \"8\"\n - \"10\"\nafter_script:\n - npm run-script coveralls\nnotific"
},
{
"path": "LICENSE",
"chars": 1070,
"preview": "Copyright (c) 2011 Jason Kridner <jdk@ti.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a c"
},
{
"path": "Makefile",
"chars": 1377,
"preview": "PREFIX:=/usr/local\nnpm_options:=--unsafe-perm=true --progress=false --loglevel=error\nNODE_PATH:=$(DESTDIR)$(PREFIX)/lib/"
},
{
"path": "README.md",
"chars": 9026,
"preview": "BoneScript\n==========\n\n[;\n\nvar directory = (process.env.AUTORUN_DIR) ? process.env.AUTORUN_DIR : '/var/lib/cloud9/a"
},
{
"path": "dts/bs_template.dts",
"chars": 66693,
"preview": "// Copyright 2013\n// Charles Steinkuehler <charles@steinkuehler.net>\n// Copyright 2014\n// Jason Kridner <jdk@ti.com>\n//\n"
},
{
"path": "dts/bspm_template.dts",
"chars": 847,
"preview": "/*\n * This is a template-generated file from BoneScript\n */\n\n/dts-v1/;\n/plugin/;\n\n/{\n compatible = \"ti,beaglebone\", \""
},
{
"path": "dts/bspwm_template.dts",
"chars": 1162,
"preview": "/*\n * Copyright (C) 2013 CircuitCo\n * Copyright (C) 2013 Texas Instruments\n *\n * This program is free software; you can "
},
{
"path": "etc/avahi/services/bone101.service",
"chars": 375,
"preview": "<?xml version=\\\"1.0\\\" standalone='no'?><!--*-nxml-*-->\n<!DOCTYPE service-group SYSTEM \\\"avahi-service.dtd\\\">\n<!-- See av"
},
{
"path": "etc/default/cloud9",
"chars": 53,
"preview": "NODE_PATH=/usr/lib/node_modules\nHOME=/root\nPORT=3000\n"
},
{
"path": "etc/default/node",
"chars": 62,
"preview": "NODE_PATH=/usr/lib/node_modules\nSERVER_DIR=/usr/share/bone101\n"
},
{
"path": "etc/profile.d/node.sh",
"chars": 49,
"preview": "#!/bin/sh\nexport NODE_PATH=/usr/lib/node_modules\n"
},
{
"path": "lint-config.json",
"chars": 633,
"preview": "{\n \"indent_size\": 4,\n \"indent_char\": \" \",\n \"indent_with_tabs\": false,\n \"eol\": \"\\n\",\n \"end_with_newline\": "
},
{
"path": "main.js",
"chars": 106,
"preview": "module.exports = process.env.BONESCRIPT_COV ?\n require('./src-cov/index') :\n require('./src/index');"
},
{
"path": "package.json",
"chars": 1533,
"preview": "{\n \"author\": {\n \"name\": \"Jason Kridner\",\n \"email\": \"jkridner@beagleboard.org\",\n \"url\": \"http://jkridner.wordpr"
},
{
"path": "server.js",
"chars": 1064,
"preview": "var b = require('bonescript');\nvar util = require('util');\nvar fs = require('fs');\nvar configFile = '/etc/default/bonesc"
},
{
"path": "src/autorun.js",
"chars": 5561,
"preview": "// Copyright (C) 2013 - Texas Instruments, Jason Kridner\n//\n//\nvar fs = require('fs');\nvar child_process = require('chil"
},
{
"path": "src/bone.js",
"chars": 155249,
"preview": "// Database of pins\n// pinIndex is an array whose elements describe each pin. The order is\n// USR LEDs, P8 header pi"
},
{
"path": "src/bonescript.js",
"chars": 6236,
"preview": "var _bonescript = {};\n_bonescript.modules = {};\n_bonescript._callbacks = {};\n_bonescript._seqnum = 0;\n_bonescript.on = {"
},
{
"path": "src/constants.js",
"chars": 356,
"preview": "// Copyright (C) 2013 - Texas Instruments, Jason Kridner\nmodule.exports = {\n OUTPUT: \"out\",\n INPUT: \"in\",\n INPU"
},
{
"path": "src/eeprom.js",
"chars": 12218,
"preview": "// Functions derived from https://github.com/joyent/node/blob/master/lib/buffer.js are:\n//\n// Copyright Joyent, Inc. and"
},
{
"path": "src/ffiimp.js",
"chars": 2186,
"preview": "var bone = require('./bone');\nvar fs = require('fs');\nvar my = require('./my');\nvar shell = my.require('shelljs');\nvar w"
},
{
"path": "src/functions.js",
"chars": 4680,
"preview": "//\n// Copyright (C) 2012 - Cabin Programs, Ken Keller\n//\n// Permission is hereby granted, free of charge, to any person "
},
{
"path": "src/hw_capemgr.js",
"chars": 15081,
"preview": "var fs = require('fs');\nvar winston = require('winston');\nvar my = require('./my');\nvar parse = require('./parse');\n\nvar"
},
{
"path": "src/hw_mainline.js",
"chars": 19347,
"preview": "var fs = require('fs');\nvar async = require('async');\nvar my = require('./my');\nvar parse = require('./parse');\nvar eepr"
},
{
"path": "src/hw_oldkernel.js",
"chars": 6677,
"preview": "// Used for 3.2 kernel using /sys/kernel/debug/omap_mux/\n\nvar fs = require('fs');\nvar my = require('./my');\nvar parse = "
},
{
"path": "src/hw_simulator.js",
"chars": 3847,
"preview": "var fs = require('fs');\nvar winston = require('winston');\nvar my = require('./my');\n\nvar gpioFile = {};\n\nvar logfile = '"
},
{
"path": "src/hw_universal.js",
"chars": 10589,
"preview": "var fs = require('fs');\nvar winston = require('winston');\nvar my = require('./my');\nvar parse = require('./parse');\nvar "
},
{
"path": "src/iic.js",
"chars": 1051,
"preview": "// Copyright (C) 2013 - Texas Instruments, Jason Kridner\nvar bone = require('./bone');\nvar my = require('./my');\n\nvar m "
},
{
"path": "src/index.d.ts",
"chars": 7407,
"preview": "// Type definitions for bonescript 0.6\n// Project: https://github.com/jadonk/bonescript\n// Definitions by: Troy W. <http"
},
{
"path": "src/index.js",
"chars": 27176,
"preview": "// Copyright (C) 2011 - Texas Instruments, Jason Kridner\n//\n//\nvar fs = require('fs');\nvar child_process = require('chil"
},
{
"path": "src/my.js",
"chars": 18526,
"preview": "// Copyright (C) 2013 - Texas Instruments, Jason Kridner\n//\n// This is meant to hold some private functions\n//\nvar fs = "
},
{
"path": "src/parse.js",
"chars": 3962,
"preview": "var winston = require('winston');\n\nvar debug = process.env.PARSE_DEBUG ? true : false;\n\n// This parses pinmux data from "
},
{
"path": "src/rc.js",
"chars": 2941,
"preview": "// Copyright (C) 2017 - Texas Instruments, Jason Kridner\nvar my = require('./my');\nvar rc = my.require('roboticscape');\n"
},
{
"path": "src/serial.js",
"chars": 686,
"preview": "// Copyright (C) 2013 - Texas Instruments, Jason Kridner\nvar bone = require('./bone');\nvar my = require('./my');\n\nvar m "
},
{
"path": "src/server.js",
"chars": 2518,
"preview": "// Copyright (C) 2011 - Texas Instruments, Jason Kridner\n//\n//\nvar fs = require('fs');\nvar http = require('http');\nvar e"
},
{
"path": "src/socket_handlers.js",
"chars": 7858,
"preview": "// Copyright (C) 2011 - Texas Instruments, Jason Kridner\n//\n//\nvar b = require('../main');\nvar fs = require('fs');\nvar u"
},
{
"path": "systemd/bonescript-autorun.service",
"chars": 279,
"preview": "[Unit]\nDescription=Bonescript autorun\nConditionPathExists=|/var/lib/cloud9\n\n[Service]\nWorkingDirectory=/usr/lib/node_mod"
},
{
"path": "systemd/bonescript.service",
"chars": 258,
"preview": "[Unit]\nDescription=Bonescript server\nConditionPathExists=|/usr/share/bone101\n\n[Service]\nWorkingDirectory=/usr/share/bone"
},
{
"path": "systemd/bonescript.socket",
"chars": 60,
"preview": "[Socket]\nListenStream=80\n\n[Install]\nWantedBy=sockets.target\n"
},
{
"path": "test/TODO/bacon_test.js",
"chars": 2935,
"preview": "/*\n * Setup\n */\nvar b = require(\"bonescript\"); // Read BoneScript library\n\n// Map used pins\nvar LED_RED = \"P9_42\";\nvar L"
},
{
"path": "test/TODO/basic_sanity.sh",
"chars": 210,
"preview": "#!/bin/sh\ncd $(dirname $0)\nnode -pe \"'Name: ' + require('../index').getPlatform().name\"\nnode -pe \"'Version: ' + require("
},
{
"path": "test/TODO/constants.js",
"chars": 356,
"preview": "// Copyright (C) 2013 - Texas Instruments, Jason Kridner\n\nexports.OUTPUT = \"out\";\nexports.INPUT = \"in\";\nexports.INPUT_PU"
},
{
"path": "test/TODO/eeprom.js",
"chars": 5328,
"preview": "// test process:\n// $ node eeprom.js\n// $ node eeprom.js -w test-eeproms.json\n// $ echo \"a18bf9b65d676cd0a"
},
{
"path": "test/TODO/fix-ssh.js",
"chars": 1367,
"preview": "var b = require('bonescript');\n\nb.getPlatform(onGetPlatform);\n\nfunction onGetPlatform(x) {\n if(!x.name || !x.serialNu"
},
{
"path": "test/TODO/fix-ssh.sh",
"chars": 59,
"preview": "#!/bin/sh\nset -x\nset -e\nnode remote_bonetest.js fix-ssh.js\n"
},
{
"path": "test/TODO/gitconfig",
"chars": 36,
"preview": "[receive]\n\tdenyCurrentBranch = warn\n"
},
{
"path": "test/TODO/remote_bonetest.js",
"chars": 5252,
"preview": "var io = require('../node_modules/socket.io/node_modules/socket.io-client');\nvar fs = require('fs');\n\nvar clientName = p"
},
{
"path": "test/TODO/setdate.js",
"chars": 689,
"preview": "var b = require('bonescript');\n\nb.getPlatform(onGetPlatform);\n\nfunction onGetPlatform(x) {\n if(!x.name || !x.serialNu"
},
{
"path": "test/TODO/test-analogwrite.js",
"chars": 61,
"preview": "var b = require('bonescript');\nb.analogWrite('P9_16', 0.01);\n"
},
{
"path": "test/TODO/test-digitalread.js",
"chars": 214,
"preview": "var b = require('bonescript');\n\nb.pinMode('P8_19', b.INPUT, undefined, undefined, undefined, doRead);\n\nfunction doRead()"
},
{
"path": "test/TODO/test-digitalwrite.js",
"chars": 573,
"preview": "var b = require('bonescript');\n\nb.pinMode('P9_16', b.ANALOG_OUTPUT);\n\nglobal.setup = function() {\n b.analogWrite('P9_"
},
{
"path": "test/TODO/test-eeproms.json",
"chars": 15547,
"preview": "{\n \"test-lcd7-cape.eeprom\": {\n \"type\": \"cape\",\n \"header\": \"aa5533ee\",\n \"formatRev\": \"A0\",\n \"boardName\": \"Be"
},
{
"path": "test/TODO/test-getpinmode.js",
"chars": 1499,
"preview": "var b = require('bonescript');\nvar fs = require('fs');\nvar my = require('../src/my.js');\n\nglobal.setup = function() {\n "
},
{
"path": "test/TODO/test-globalsetuploop.js",
"chars": 240,
"preview": "var b = require('bonescript');\nvar x = 0;\n\nglobal.setup = function() {\n b.pinMode('P9_14', b.ANALOG_OUTPUT);\n};\n\nglob"
},
{
"path": "test/TODO/test-i2c-accel.js",
"chars": 1002,
"preview": "var b = require('bonescript');\nvar port = '/dev/i2c-2'\nvar address = 0x1c;\nvar data = [0xAA, 0x55, 0x33, 0xEE, 65, 51, 5"
},
{
"path": "test/TODO/test-i2c.js",
"chars": 763,
"preview": "var b = require('bonescript');\nvar port = '/dev/i2c-0';\nvar address = 0x50;\n//var data = [0xAA, 0x55, 0x33, 0xEE, 65, 51"
},
{
"path": "test/TODO/test-pocketbeagle.js",
"chars": 390,
"preview": "var b = require('bonescript');\n\nvar gpios = [\n 'p1.2',\n 'p1.04',\n 'P1.6',\n 'P1_20',\n 'P1_29',\n 'P1_30',\n 'P1_31',"
},
{
"path": "test/TODO/test-serial.js",
"chars": 1243,
"preview": "var b = require('bonescript');\nvar rxport = '/dev/ttyO1';\nvar txport = '/dev/ttyO4';\nvar options = { baudrate: 115200, p"
},
{
"path": "test/TODO/test-templates.js",
"chars": 831,
"preview": "var my = require('../node_modules/bonescript/my');\nvar bone = require('../node_modules/bonescript/bone');\n\nvar pin = \n "
},
{
"path": "test/TODO/test-unloadslot.js",
"chars": 307,
"preview": "var fs = require('fs');\nvar my = require('../src/my.js');\nvar capemgr = my.is_capemgr();\nvar slots = fs.readFileSync(cap"
},
{
"path": "test/TODO/test.sh",
"chars": 54,
"preview": "#!/bin/sh\nnode remote_bonetest.js wired_basic_test.js\n"
},
{
"path": "test/TODO/update-bonescript.sh",
"chars": 607,
"preview": "#!/bin/sh\nset -x\nset -e\n\n# Get directory\ncd $(dirname $0)\ncd ..\nBS_DIR=$(pwd)\n\nssh-copy-id root@192.168.7.2\n\ncd $BS_DIR/"
},
{
"path": "test/TODO/watch-button.js",
"chars": 781,
"preview": "var Epoll = require('../node_modules/bonescript/node_modules/epoll').Epoll,\n fs = require('fs'),\n valuefd = fs.openSyn"
},
{
"path": "test/TODO/watch-button.sh",
"chars": 144,
"preview": "#!/bin/sh\necho 22 > /sys/class/gpio/export\necho in > /sys/class/gpio/gpio22/direction\necho both > /sys/class/gpio/gpio22"
},
{
"path": "test/TODO/wired_basic_test.js",
"chars": 5891,
"preview": "var b = require('bonescript');\nvar serial = {\n in: {\n port: '/dev/ttyO1',\n options: { baudrate: 115200 "
},
{
"path": "test/test-analogread.js",
"chars": 1040,
"preview": "var b = require('bonescript');\n\nvar pinKeys = [];\nfor (var i = 1; i <= 36; i++) {\n pinKeys.push(\"P1_\" + i);\n pinKe"
},
{
"path": "test/test-analogwrite.js",
"chars": 757,
"preview": "var b = require('bonescript');\n\nvar pinKeys = [];\nfor (var i = 1; i <= 36; i++) {\n pinKeys.push(\"P1_\" + i);\n pinKe"
},
{
"path": "test/test-autorun.js",
"chars": 1616,
"preview": "var autorun = require('bonescript').autorun;\nvar fs = require('fs');\nvar testDir = '/tmp/autorun-test';\nvar file0 = test"
},
{
"path": "test/test-bone.js",
"chars": 3311,
"preview": "//process.env.DEBUG = true;\nvar bone = require('bonescript').bone;\n\nvar expectedResults = [];\n\nexpectedResults.push({\n "
},
{
"path": "test/test-digitalread.js",
"chars": 1046,
"preview": "var b = require('bonescript');\n\nvar pinKeys = [];\nfor (var i = 1; i <= 36; i++) {\n pinKeys.push(\"P1_\" + i);\n pinKe"
},
{
"path": "test/test-digitalwrite.js",
"chars": 799,
"preview": "var b = require('bonescript');\n\nvar pinKeys = [];\nfor (var i = 1; i <= 36; i++) {\n pinKeys.push(\"P1_\" + i);\n pinKe"
},
{
"path": "test/test-ffi.js",
"chars": 2227,
"preview": "var b = require('bonescript');\nvar fs = require('fs');\nvar testDir = '/tmp/ffi-test';\nvar Cfile = testDir + '/ffi-test';"
},
{
"path": "test/test-getpinmode.js",
"chars": 7240,
"preview": "//process.env.DEBUG = true;\nvar b = require('bonescript');\n\nvar expectedResults = [{\n \"pin\": \"USR0\",\n \"nam"
},
{
"path": "test/test-lint.js",
"chars": 1153,
"preview": "module.exports = {};\nvar beautify = require('../node_modules/js-beautify');\nvar fs = require('fs');\nvar path = require('"
},
{
"path": "test/test-math.js",
"chars": 661,
"preview": "var math = require('../src/functions');\nvar b = require('bonescript');\n\nvar mathFns = Object.getOwnPropertyNames(math);\n"
},
{
"path": "test/test-pinMode.js",
"chars": 1332,
"preview": "var b = require('bonescript');\n\nvar pinKeys = [];\nfor (var i = 1; i <= 36; i++) {\n pinKeys.push(\"P1_\" + i);\n pinKe"
},
{
"path": "test/test-rpc.js",
"chars": 7606,
"preview": "var server = require('bonescript');\nvar bonescript = require('../src/bonescript');\nvar myserver = null;\n\nexports.setUp ="
},
{
"path": "test/test-rpc_secure.js",
"chars": 1433,
"preview": "var server = require('bonescript');\nvar bonescript = require('../src/bonescript');\nvar myserver = null;\n\nexports.setUp ="
},
{
"path": "test/test-sanity.js",
"chars": 308,
"preview": "//process.env.DEBUG = true;\n\nexports.testSanity1 = function (test) {\n test.expect(1);\n test.doesNotThrow(function "
}
]
About this extraction
This page contains the full source code of the jadonk/bonescript GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 81 files (465.2 KB), approximately 128.9k tokens, and a symbol index with 176 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.