#!/bin/sh
### BEGIN INIT INFO
# Provides:          gpio_setup
# Required-Start:    $local_fs $remote_fs
# Required-Stop:     $local_fs $remote_fs
# Default-Start:     S 1 2 3 4 5 6
# Default-Stop:      0 
# Description:       This script sets up the gpio pin direction and default state.
# Short-Description:	Sets up GPIO.
### END INIT INFO


# Author: John Schluechtermann <jschluechtermann@forceamerica.com>
# Project: 6100 Gen 5 Spreader Control
# Created: 09/11/2017
# Modified: 07/18/2018 by John Schluechtermann - Modified the order to the USB config line is set low
#                at the start away from the releasing of the reset line.

### USB Internal HUB Config bit setup
echo 5 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio5/direction
echo 0 > /sys/class/gpio/gpio5/value

echo 86 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio86/direction
echo 1 > /sys/class/gpio/gpio86/value

echo 94 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio94/direction
echo 1 > /sys/class/gpio/gpio94/value

### Touchscreen
# Capacitive Touch Screen Interrupt (inout)
echo 84 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio84/direction

# Audio Output Enable
echo 92 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio92/direction
echo 1 > /sys/class/gpio/gpio92/value

### Cell Radio Values
# Cell Wake in
echo 141 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio141/direction

# Cell Wake Out (Input)
echo 142 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio142/direction

# Cell Power Latch Reset
echo 148 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio148/direction
echo 1 > /sys/class/gpio/gpio148/value

### Camera Items
# Serial Camera interrupt
echo 93 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio93/direction

# Parallel Camera interrupt
echo 95 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio95/direction

### General IO
# Dashkey in
echo 106 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio106/direction

# Temporary command for setting up the second CANbus - should be placed where the
# first CANbus is initialized
ip link set can0 up type can bitrate 250000
# j1939 listen-only must be disabled when using J1939 simulator board
#ip link set can1 up type can bitrate 500000

# Create vcan0 and link it with can0
modprobe vcan
ip link add dev vcan0 type vcan
ip link set up vcan0
cangw -A -s vcan0 -d can0 -e
cangw -A -s can0 -d vcan0 -e
