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