base-files: support parse DT LED color and function
The 'label' property in led node has been deprecated and we'd better to avoid using it. This patch allows us to extract DT OF LED name from the newly introduced LED properties "color", "function" and "function-enumerator". Signed-off-by: Shiji Yang <yangshiji66@qq.com>
This commit is contained in:
		 Shiji Yang
					Shiji Yang
				
			
				
					committed by
					
						 Christian Lamparter
						Christian Lamparter
					
				
			
			
				
	
			
			
			 Christian Lamparter
						Christian Lamparter
					
				
			
						parent
						
							6c41c585e3
						
					
				
				
					commit
					e814acc599
				
			| @@ -11,6 +11,36 @@ get_dt_led_path() { | |||||||
| 	echo "$ledpath" | 	echo "$ledpath" | ||||||
| } | } | ||||||
|  |  | ||||||
|  | get_dt_led_color_func() { | ||||||
|  | 	local enum | ||||||
|  | 	local func | ||||||
|  | 	local idx | ||||||
|  | 	local label | ||||||
|  |  | ||||||
|  | 	[ -e "$1/function" ] && func=$(cat "$1/function") | ||||||
|  | 	[ -e "$1/color" ] && idx=$((0x$(hexdump -n 4 -e '4/1 "%02x"' "$1/color"))) | ||||||
|  | 	[ -e "$1/function-enumerator" ] && \ | ||||||
|  | 		enum=$((0x$(hexdump -n 4 -e '4/1 "%02x"' "$1/function-enumerator"))) | ||||||
|  |  | ||||||
|  | 	[ -z "$idx" ] && [ -z "$func" ] && return 2 | ||||||
|  |  | ||||||
|  | 	if [ -n "$idx" ]; then | ||||||
|  | 		for color in "white" "red" "green" "blue" "amber" \ | ||||||
|  | 			     "violet" "yellow" "ir" "multicolor" "rgb" \ | ||||||
|  | 			     "purple" "orange" "pink" "cyan" "lime" | ||||||
|  | 		do | ||||||
|  | 			[ $idx -eq 0 ] && label="$color" && break | ||||||
|  | 			idx=$((idx-1)) | ||||||
|  | 		done | ||||||
|  | 	fi | ||||||
|  |  | ||||||
|  | 	label="$label:$func" | ||||||
|  | 	[ -n "$enum" ] && label="$label-$enum" | ||||||
|  | 	echo "$label" | ||||||
|  |  | ||||||
|  | 	return 0 | ||||||
|  | } | ||||||
|  |  | ||||||
| get_dt_led() { | get_dt_led() { | ||||||
| 	local label | 	local label | ||||||
| 	local ledpath=$(get_dt_led_path $1) | 	local ledpath=$(get_dt_led_path $1) | ||||||
| @@ -18,6 +48,7 @@ get_dt_led() { | |||||||
| 	[ -n "$ledpath" ] && \ | 	[ -n "$ledpath" ] && \ | ||||||
| 		label=$(cat "$ledpath/label" 2>/dev/null) || \ | 		label=$(cat "$ledpath/label" 2>/dev/null) || \ | ||||||
| 		label=$(cat "$ledpath/chan-name" 2>/dev/null) || \ | 		label=$(cat "$ledpath/chan-name" 2>/dev/null) || \ | ||||||
|  | 		label=$(get_dt_led_color_func "$ledpath") || \ | ||||||
| 		label=$(basename "$ledpath") | 		label=$(basename "$ledpath") | ||||||
|  |  | ||||||
| 	echo "$label" | 	echo "$label" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user