57 lines
731 B
Bash
57 lines
731 B
Bash
|
#!/bin/sh
|
||
|
|
||
|
BASE_PATH=/sys/class/gpio
|
||
|
|
||
|
# GPIO pins
|
||
|
SATA0=26
|
||
|
SATA1=25
|
||
|
CPU_FAN=12
|
||
|
|
||
|
# Values
|
||
|
LOW=0
|
||
|
HIGH=1
|
||
|
|
||
|
export_pin() {
|
||
|
if [ ! -e $BASE_PATH/gpio"$1" ]; then
|
||
|
echo "$1" >$BASE_PATH/export
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
unexport_pin() {
|
||
|
if [ -e $BASE_PATH/gpio"$1" ]; then
|
||
|
echo "$1" >$BASE_PATH/unexport
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
set_mode() {
|
||
|
export_pin "$1"
|
||
|
echo "out" >$BASE_PATH/gpio"$1"/direction
|
||
|
echo "$2" >$BASE_PATH/gpio"$1"/value
|
||
|
if [ "$3" = "clean" ]; then
|
||
|
unexport_pin "$1"
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
turn_on() {
|
||
|
set_mode $SATA0 $HIGH
|
||
|
sleep 1
|
||
|
set_mode $SATA1 $HIGH
|
||
|
set_mode $CPU_FAN $LOW
|
||
|
}
|
||
|
|
||
|
turn_off() {
|
||
|
set_mode $SATA0 $LOW clean
|
||
|
set_mode $SATA1 $LOW clean
|
||
|
set_mode $CPU_FAN $LOW clean
|
||
|
}
|
||
|
|
||
|
trap turn_off INT
|
||
|
|
||
|
if [ "$1" = "on" ]; then
|
||
|
turn_on
|
||
|
else
|
||
|
turn_off
|
||
|
fi
|
||
|
|
||
|
exit 0
|