348a3a89516884a6f8f6a9cccfc5474ab662ddea
[openwrt/openwrt.git] / target / linux / ipq806x / base-files / lib / ipq806x.sh
1 #!/bin/sh
2 #
3 # Copyright (c) 2014 The Linux Foundation. All rights reserved.
4 # Copyright (C) 2011 OpenWrt.org
5 #
6
7 IPQ806X_BOARD_NAME=
8 IPQ806X_MODEL=
9
10 ipq806x_board_detect() {
11 local machine
12 local name
13
14 machine=$(cat /proc/device-tree/model)
15
16 case "$machine" in
17 *"AP148")
18 name="ap148"
19 ;;
20 *"4040")
21 name="fritz4040"
22 ;;
23 *"C2600")
24 name="c2600"
25 ;;
26 *"D7800")
27 name="d7800"
28 ;;
29 *"DB149")
30 name="db149"
31 ;;
32 *"NBG6817")
33 name="nbg6817"
34 ;;
35 *"R7500")
36 name="r7500"
37 ;;
38 *"R7500v2")
39 name="r7500v2"
40 ;;
41 *"Linksys EA8500"*)
42 name="ea8500"
43 ;;
44 *"R7800")
45 name="r7800"
46 ;;
47 *"VR2600v")
48 name="vr2600v"
49 ;;
50 esac
51
52 [ -z "$name" ] && name="unknown"
53
54 [ -z "$IPQ806X_BOARD_NAME" ] && IPQ806X_BOARD_NAME="$name"
55 [ -z "$IPQ806X_MODEL" ] && IPQ806X_MODEL="$machine"
56
57 [ -e "/tmp/sysinfo/" ] || mkdir -p "/tmp/sysinfo/"
58
59 echo "$IPQ806X_BOARD_NAME" > /tmp/sysinfo/board_name
60 echo "$IPQ806X_MODEL" > /tmp/sysinfo/model
61 }
62
63 ipq806x_board_name() {
64 local name
65
66 [ -f /tmp/sysinfo/board_name ] && name=$(cat /tmp/sysinfo/board_name)
67 [ -z "$name" ] && name="unknown"
68
69 echo "$name"
70 }
71
72 ipq806x_get_dt_led() {
73 local label
74 local ledpath
75 local basepath="/sys/firmware/devicetree/base"
76 local nodepath="$basepath/aliases/led-$1"
77
78 [ -f "$nodepath" ] && ledpath=$(cat "$nodepath")
79 [ -n "$ledpath" ] && label=$(cat "$basepath$ledpath/label")
80
81 echo "$label"
82 }