summarylogtreecommitdiffstats
path: root/lib_atomicpi.sh
diff options
context:
space:
mode:
authorLeo P2020-01-14 15:44:43 -0500
committerLeo P2020-01-14 15:44:43 -0500
commitce76a12c0df524549800a3881a8118befa4159ad (patch)
treefb9fe4d95a0322e8ed75a25d5f22732dd4361a98 /lib_atomicpi.sh
downloadaur-ce76a12c0df524549800a3881a8118befa4159ad.tar.gz
atomic pi utils
Diffstat (limited to 'lib_atomicpi.sh')
-rw-r--r--lib_atomicpi.sh78
1 files changed, 78 insertions, 0 deletions
diff --git a/lib_atomicpi.sh b/lib_atomicpi.sh
new file mode 100644
index 000000000000..10bd78059ded
--- /dev/null
+++ b/lib_atomicpi.sh
@@ -0,0 +1,78 @@
+# Kernel-visible signals
+
+# ATOMICPI_* constants: Global GPIO index
+# ATOMICPICHIP_* constants: Chip ID " " Index in chip
+# Think gpioget $ATOMICPICHIP_ISH_GPIO_0 (without quotes)
+
+# External GPIO
+ATOMICPI_ISH_GPIO_0=335
+ATOMICPICHIP_ISH_GPIO_0="gpiochip3 21"
+ATOMICPI_ISH_GPIO_1=332
+ATOMICPICHIP_ISH_GPIO_1="gpiochip3 18"
+ATOMICPI_ISH_GPIO_2=338
+ATOMICPICHIP_ISH_GPIO_2="gpiochip3 24"
+ATOMICPI_ISH_GPIO_3=329
+ATOMICPICHIP_ISH_GPIO_3="gpiochip3 15"
+ATOMICPI_ISH_GPIO_4=336
+ATOMICPICHIP_ISH_GPIO_4="gpiochip3 22"
+ATOMICPI_ISH_GPIO_7=330
+ATOMICPICHIP_ISH_GPIO_7="gpiochip3 16"
+
+# Volume up pin
+ATOMICPI_GPIO_DFX_2=348
+ATOMICPICHIP_GPIO_DFX_2="gpiochip1 7"
+# Volume down pin
+ATOMICPI_GPIO_DFX_4=346
+ATOMICPICHIP_GPIO_DFX_4="gpiochip1 5"
+
+# Internal signals
+ATOMICPI_I2C2_3P3_SDA=476
+ATOMICPICHIP_I2C2_3P3_SDA="gpiochip0 62"
+ATOMICPI_I2C2_3P3_SCL=480
+ATOMICPICHIP_I2C2_3P3_SCL="gpiochip0 66"
+ATOMICPI_AU_MIC_SEL=341
+ATOMICPICHIP_AU_MIC_SEL="gpiochip1 0"
+ATOMICPI_XMOS_RESET=349
+ATOMICPICHIP_XMOS_RESET="gpiochip1 8"
+ATOMICPI_BN_INT=358
+ATOMICPICHIP_BN_INT="gpiochip1 17"
+ATOMICPI_BN_RESET=366
+ATOMICPICHIP_BN_RESET="gpiochip1 25"
+
+# Physical connector descriptions
+# 26-pin connector interface
+ATOMICPICONN_ISH_GPIO_0=24
+ATOMICPICONN_ISH_GPIO_1=25
+ATOMICPICONN_ISH_GPIO_2=26
+ATOMICPICONN_ISH_GPIO_3=18
+ATOMICPICONN_ISH_GPIO_4=19
+ATOMICPICONN_ISH_GPIO_7=20
+# Enchilada breakout board
+ATOMICPIENCHCONN_ISH_GPIO_0=9
+ATOMICPIENCHCONN_ISH_GPIO_1=10
+ATOMICPIENCHCONN_ISH_GPIO_2=11
+ATOMICPIENCHCONN_ISH_GPIO_3=3
+ATOMICPIENCHCONN_ISH_GPIO_4=4
+ATOMICPIENCHCONN_ISH_GPIO_7=5
+# LEDs
+ATOMICPIENCHLED_GREEN="ISH_GPIO_1"
+ATOMICPIENCHLED_YELLOW="ISH_GPIO_2"
+
+# Test if actually running on compatible hardware
+
+ATOMICPI_GPIO_HARDWARE_CHIPS="228 314 341 414"
+ATOMICPI_GPIO_HARDWARE_NGPIO_228=86
+ATOMICPI_GPIO_HARDWARE_NGPIO_314=27
+ATOMICPI_GPIO_HARDWARE_NGPIO_341=73
+ATOMICPI_GPIO_HARDWARE_NGPIO_414=98
+
+atomicpi_gpio_hardware() {
+ for CHIP in $ATOMICPI_GPIO_HARDWARE_CHIPS; do
+ eval NGPIO_EXPECTED='$ATOMICPI_GPIO_HARDWARE_NGPIO_'$CHIP
+ NGPIO_ACTUAL=`cat "/sys/class/gpio/gpiochip$CHIP/ngpio" || true`
+ if [ "$NGPIO_EXPECTED" != "$NGPIO_ACTUAL" ]; then
+ return 1
+ fi
+ done
+ return 0
+}