 d65916047b
			
		
	
	d65916047b
	
	
	
		
			
			Internal GPIO pins are used for PoE passthrough setups in multi-port routers. This patch implemnets control over this hardware feature for Ubiquiti Nanostations and TP-Link CPE510. Signed-off-by: Lars Kruse <lists@sumpfralle.de> SVN-Revision: 46271
		
			
				
	
	
		
			43 lines
		
	
	
		
			805 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			805 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh /etc/rc.common
 | |
| # Copyright (C) 2015 OpenWrt.org
 | |
| 
 | |
| START=98
 | |
| STOP=10
 | |
| USE_PROCD=1
 | |
| 
 | |
| 
 | |
| load_gpio_switch()
 | |
| {
 | |
| 	local name
 | |
| 	local gpio_pin
 | |
| 	local value
 | |
| 
 | |
| 	config_get gpio_pin "$1" gpio_pin
 | |
| 	config_get name "$1" name
 | |
| 	config_get value "$1" value 0
 | |
| 
 | |
| 	local gpio_path="/sys/class/gpio/gpio${gpio_pin}"
 | |
| 	# export GPIO pin for access
 | |
| 	[ -d "$gpio_path" ] || {
 | |
| 		echo "$gpio_pin" >/sys/class/gpio/export
 | |
| 		# we need to wait a bit until the GPIO appears
 | |
| 		[ -d "$gpio_path" ] || sleep 1
 | |
| 		echo out >"$gpio_path/direction"
 | |
| 	}
 | |
| 	# write 0 or 1 to the "value" field
 | |
| 	{ [ "$value" = "0" ] && echo "0" || echo "1"; } >"$gpio_path/value"
 | |
| }
 | |
| 
 | |
| service_triggers()
 | |
| {
 | |
| 	procd_add_reload_trigger "system"
 | |
| }
 | |
| 
 | |
| start_service()
 | |
| {
 | |
| 	[ -e /sys/class/gpio/ ] && {
 | |
| 		config_load system
 | |
| 		config_foreach load_gpio_switch gpio_switch
 | |
| 	}
 | |
| }
 |