mirror of https://github.com/OpenIPC/firmware.git
				
				
				
			
							parent
							
								
									091b956766
								
							
						
					
					
						commit
						9997b38e68
					
				|  | @ -0,0 +1,105 @@ | ||||||
|  | #!/bin/sh | ||||||
|  | 
 | ||||||
|  | help() { | ||||||
|  |     echo -e "\n=== GPIO usage ===\n" | ||||||
|  | 
 | ||||||
|  |     echo -e ">\t gpio <set|clear|toggle|unexport|read> <pin>\n" | ||||||
|  |     echo -e "set\t\t = Output HI\nclear\t\t = Output LOW\ntoggle\t\t = Swap HI <> LOW\nunexport\t = Release GPIO pin back to the kernel space\nread\t\t = Read GPIO pin output state\n" | ||||||
|  |      | ||||||
|  |     echo -e "---\n" | ||||||
|  | 
 | ||||||
|  |     echo -e ">\t gpio search <from pin> <to pin>\n" | ||||||
|  |     echo -e "Toggle a range of GPIO pins from HI to LOW" | ||||||
|  |     echo -e "gpio search logs to syslog\n" | ||||||
|  | 
 | ||||||
|  |     echo -e "==================\n" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | exp() { | ||||||
|  |     if [ ! -d /sys/class/gpio/gpio$1 ]; then | ||||||
|  |         [ ! -f /sys/class/gpio/export ] && echo "Error: No export file!" && exit | ||||||
|  |         echo $1 > /sys/class/gpio/export | ||||||
|  |         [ ! -f /sys/class/gpio/gpio$1/direction ] && echo "Error: No direction file!" && exit | ||||||
|  |         echo out > /sys/class/gpio/gpio$1/direction | ||||||
|  |     fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | write(){ | ||||||
|  |     echo $1 > /sys/class/gpio/gpio$2/value | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | read() { | ||||||
|  |     [ ! -f /sys/class/gpio/gpio$1/value ] && echo "Error: GPIO-$1 is not set" && exit | ||||||
|  |     echo $(cat /sys/class/gpio/gpio$1/value) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | unexport() { | ||||||
|  |     if [ -d /sys/class/gpio/gpio$1 ]; then | ||||||
|  |         echo $1 > /sys/class/gpio/unexport | ||||||
|  |     else | ||||||
|  |         echo "GPIO-${1} is not exported." | ||||||
|  |     fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | search() { | ||||||
|  |     echo -e "Start blink (output) on GPIO range $1 to $2\n" | ||||||
|  |     for pin in $(seq $1 $2); do | ||||||
|  |         echo "=================================" | ||||||
|  |         exp ${pin} && echo "  Exported GPIO-${pin} from kernel space" && echo "    Set GPIO-${pin} to OUTPUT mode" | ||||||
|  |         write 0 ${pin} && echo "      Set GPIO-${pin} to LO level" ; sleep 1 | ||||||
|  |         write 1 ${pin} && echo "      Set GPIO-${pin} to HI level" ; sleep 1 | ||||||
|  |         echo in > /sys/class/gpio/gpio${pin}/direction && echo "    Set GPIO-${pin} to INPUT mode" | ||||||
|  |         unexport ${pin} && echo "  Unexported GPIO-${pin}" | ||||||
|  |         logger HELLO - ${pin} | ||||||
|  |     done | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | if [ -n $1 ] && [ -n $2 ] && [ $2 -eq $2 ]; then | ||||||
|  |         case $1 in | ||||||
|  |             set) | ||||||
|  |                 exp $2 | ||||||
|  |                 echo "Setting GPIO-$2 to HI" | ||||||
|  |                 write 1 $2 | ||||||
|  |                 ;; | ||||||
|  | 
 | ||||||
|  |             clear) | ||||||
|  |                 exp $2 | ||||||
|  |                 echo "Setting GPIO-$2 to LOW" | ||||||
|  |                 write 0 $2 | ||||||
|  |                 ;; | ||||||
|  | 
 | ||||||
|  |             toggle) | ||||||
|  |                 exp $2 | ||||||
|  |                 if [ $(read $2) -eq 0 ]; then | ||||||
|  |                     echo "Setting GPIO-$2 to HI" | ||||||
|  |                     write 1 $2 | ||||||
|  |                 else | ||||||
|  |                     echo "Setting GPIO-$2 to LOW" | ||||||
|  |                     write 0 $2 | ||||||
|  |                 fi | ||||||
|  |                 ;; | ||||||
|  | 
 | ||||||
|  |             unexport) | ||||||
|  |                 unexport $2 | ||||||
|  |                 ;; | ||||||
|  | 
 | ||||||
|  |             read) | ||||||
|  |                 echo $(read $2) | ||||||
|  |                 ;; | ||||||
|  | 
 | ||||||
|  |             search) | ||||||
|  |                 if [ ! -z $3 ] && [ $3 -eq $3 ]; then | ||||||
|  |                     search $2 $3 | ||||||
|  |                 else | ||||||
|  |                     echo -e "\n Caution: Toggling single pin. Use <gpio search <from pin> <to pin> to search a range.\n" | ||||||
|  |                     search $2 $2 | ||||||
|  |                 fi | ||||||
|  |             ;; | ||||||
|  | 
 | ||||||
|  |             *)   | ||||||
|  |                 help | ||||||
|  |                 ;; | ||||||
|  |         esac | ||||||
|  | else | ||||||
|  |     help | ||||||
|  | fi | ||||||
|  | @ -0,0 +1,93 @@ | ||||||
|  | #!/bin/sh | ||||||
|  | 
 | ||||||
|  | GPIO_RED=78 | ||||||
|  | GPIO_GREEN=75 | ||||||
|  | GPIO_BLUE= | ||||||
|  | 
 | ||||||
|  | help() { | ||||||
|  |     echo -e "\n================= LIGHT usage =================\n" | ||||||
|  |     echo -e "Set the colour of the status light\n" | ||||||
|  |     echo -e "light <off|red|green|blue|yellow|magenta|cyan|white>\n" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | setRed() { | ||||||
|  |     if [ -n "$GPIO_RED" ]; then | ||||||
|  |         [ $1 -eq 1 ] && gpio set "$GPIO_RED" || gpio clear "$GPIO_RED" | ||||||
|  |     else | ||||||
|  |         echo "Red GPIO undefined" | ||||||
|  |     fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | setGreen() { | ||||||
|  |     if [ -n "$GPIO_GREEN" ]; then | ||||||
|  |         [ $1 -eq 1 ] && gpio set "$GPIO_GREEN" || gpio clear "$GPIO_GREEN" | ||||||
|  |     else | ||||||
|  |         echo "Green GPIO undefined" | ||||||
|  |     fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | setBlue() { | ||||||
|  |     if [ -n "$GPIO_BLUE" ]; then | ||||||
|  |         [ $1 -eq 1 ] && gpio set "$GPIO_BLUE" || gpio clear "$GPIO_BLUE" | ||||||
|  |     else | ||||||
|  |         echo "Blue GPIO undefined" | ||||||
|  |     fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | if [ -n $1 ]; then | ||||||
|  |         case $1 in | ||||||
|  |             off) | ||||||
|  |                 setRed 0 | ||||||
|  |                 setGreen 0 | ||||||
|  |                 setBlue 0 | ||||||
|  |                 ;; | ||||||
|  | 
 | ||||||
|  |             red) | ||||||
|  |                 setRed 1 | ||||||
|  |                 setGreen 0 | ||||||
|  |                 setBlue 0 | ||||||
|  |                 ;; | ||||||
|  | 
 | ||||||
|  |             green) | ||||||
|  |                 setRed 0 | ||||||
|  |                 setGreen 1 | ||||||
|  |                 setBlue 0 | ||||||
|  |                 ;; | ||||||
|  | 
 | ||||||
|  |             blue) | ||||||
|  |                 setRed 0 | ||||||
|  |                 setGreen 0 | ||||||
|  |                 setBlue 1 | ||||||
|  |                 ;; | ||||||
|  | 
 | ||||||
|  |             yellow) | ||||||
|  |                 setRed 1 | ||||||
|  |                 setGreen 1 | ||||||
|  |                 setBlue 0 | ||||||
|  |                 ;; | ||||||
|  | 
 | ||||||
|  |             magenta|purple) | ||||||
|  |                 setRed 1 | ||||||
|  |                 setGreen 0 | ||||||
|  |                 setBlue 1 | ||||||
|  |                 ;; | ||||||
|  | 
 | ||||||
|  |             cyan) | ||||||
|  |                 setRed 0 | ||||||
|  |                 setGreen 1 | ||||||
|  |                 setBlue 1 | ||||||
|  |                 ;; | ||||||
|  | 
 | ||||||
|  |             white) | ||||||
|  |                 setRed 1 | ||||||
|  |                 setGreen 1 | ||||||
|  |                 setBlue 1 | ||||||
|  |                 ;; | ||||||
|  | 
 | ||||||
|  |             *)   | ||||||
|  |                 help | ||||||
|  |                 ;; | ||||||
|  |         esac | ||||||
|  | else | ||||||
|  |     help | ||||||
|  | fi | ||||||
		Loading…
	
		Reference in New Issue