firmware/general/package/hisilicon-osdrv-hi3516cv300/files/script/ircut_demo

86 lines
1.9 KiB
Bash
Executable File

#!/bin/sh
#GPIO6_5 -> GPIO53 (6*8+5 = 53)
#GPIO6_6 -> GPIO54 (6*8+6 = 54)
#GPIO3_0 -> GPIO24 (3*8+0 = 24)
#(normal mode)
ir_cut_enable()
{
# pin_mux
echo "$gpio_0" > /sys/class/gpio/unexport;
echo "$gpio_1" > /sys/class/gpio/unexport;
echo "$gpio_0" > /sys/class/gpio/export;
echo "$gpio_1" > /sys/class/gpio/export;
# dir
echo "out" > /sys/class/gpio/gpio$gpio_0/direction;
echo "out" > /sys/class/gpio/gpio$gpio_1/direction;
# data, gpio_1: 0, gpio_0: 1 (normal mode)
echo "1" > /sys/class/gpio/gpio$gpio_0/value;
echo "0" > /sys/class/gpio/gpio$gpio_1/value;
#sleep 1s
sleep 1;
# back to original
echo "0" > /sys/class/gpio/gpio$gpio_0/value;
echo "0" > /sys/class/gpio/gpio$gpio_1/value;
}
# (ir mode)
ir_cut_disable()
{
# pin_mux
echo "$gpio_0" > /sys/class/gpio/unexport;
echo "$gpio_1" > /sys/class/gpio/unexport;
echo "$gpio_0" > /sys/class/gpio/export;
echo "$gpio_1" > /sys/class/gpio/export;
# dir
echo "out" > /sys/class/gpio/gpio$gpio_0/direction;
echo "out" > /sys/class/gpio/gpio$gpio_1/direction;
# data, gpio_1: 1, gpio_0: 0 (ir mode)
echo "0" > /sys/class/gpio/gpio$gpio_0/value;
echo "1" > /sys/class/gpio/gpio$gpio_1/value;
#sleep 1s
sleep 1;
# back to original
echo "0" > /sys/class/gpio/gpio$gpio_0/value;
echo "0" > /sys/class/gpio/gpio$gpio_1/value;
}
gpio_0=0
gpio_1=0
if [ $# -lt 2 ]; then
echo "usage : ./demo_config.sh <chip> <mode>";
echo "for example:";
echo "ir mode : ./demo_config.sh hi3516cv300 1";
else
if [ $1 = "hi3516ev100" ]; then
gpio_0=53;
gpio_1=24;
elif [ $1 = "hi3516cv300" ]; then
gpio_0=53;
gpio_1=54;
else
echo "wrong chipid: $1, please select: hi3516cv300 or hi3516ev100.";
exit;
fi
if [ $2 -eq 0 ]; then
echo "normal mode, ir_cut on"
ir_cut_enable > /dev/null;
elif [ $2 -eq 1 ]; then
echo "ir mode, ir_cut off"
ir_cut_disable > /dev/null;
else
echo "invalid mode, please slect 0 or 1."
fi
fi