Pin Muxing
Configuring all 4 of the PWM pins
root@edison:~# vi pinmuxpwm.sh
#!/bin/bash
# Configuring PWM pins
# The Intel Edison SoC offers only four PWM pins.
# Setup shield pins of arduino as a PWM output
# the TRI_STATE_ALL signal is controlled by GPIO 214
# Before setting up any muxing, set pin 214 (TRI_STATE_ALL) to HIGH,
# make all of your changes, then set pin 214 to LOW.
# all GPIO pin-mux must be set to 'mode1' to select PWM
# Shield_Pin | Linux_GPIO | Output=High | Pullup_enable
# IO3 12 251 219
# IO5 13 253 221
# IO6 182 254 222
# IO9 183 257 225
#Export the relevant pins
echo 251 > /sys/class/gpio/export
echo 219 > /sys/class/gpio/export
echo 253 > /sys/class/gpio/export
echo 221 > /sys/class/gpio/export
echo 254 > /sys/class/gpio/export
echo 222 > /sys/class/gpio/export
echo 257 > /sys/class/gpio/export
echo 225 > /sys/class/gpio/export
echo 214 > /sys/class/gpio/export
echo "Exports Done"
# FIRST Shield_pinIO3
echo low > /sys/class/gpio/gpio214/direction
echo high > /sys/class/gpio/gpio251/direction
echo in > /sys/class/gpio/gpio219/direction
echo mode1 > /sys/kernel/debug/gpio_debug/gpio12/current_pinmux
echo high > /sys/class/gpio/gpio214/direction
# SECOND Shield_pinIO5
echo low > /sys/class/gpio/gpio214/direction
echo high > /sys/class/gpio/gpio253/direction
echo in > /sys/class/gpio/gpio221/direction
echo mode1 > /sys/kernel/debug/gpio_debug/gpio13/current_pinmux
echo high > /sys/class/gpio/gpio214/direction
# THIRD Shield_pinIO6
echo low > /sys/class/gpio/gpio214/direction
echo high > /sys/class/gpio/gpio254/direction
echo in > /sys/class/gpio/gpio222/direction
echo mode1 > /sys/kernel/debug/gpio_debug/gpio182/current_pinmux
echo high > /sys/class/gpio/gpio214/direction
# FOURTH Shield_pinIO9
echo low > /sys/class/gpio/gpio214/direction
echo high > /sys/class/gpio/gpio257/direction
echo in > /sys/class/gpio/gpio225/direction
echo mode1 > /sys/kernel/debug/gpio_debug/gpio183/current_pinmux
echo high > /sys/class/gpio/gpio214/direction
echo "PWM Pins Configured"Last updated