aboutsummaryrefslogtreecommitdiff
path: root/limbat
blob: c3489f7e892c34e8429efe8314a3ee9329ea5f64 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/bin/sh
#
# See http://www.thinkwiki.org/wiki/Battery
#     http://www.thinkwiki.org/wiki/Tp_smapi
#

function usage() {
  echo "Usage: ${0} [--help | option]"
  echo "Options are:"
  echo "  show            show current charge thresholds."
  echo "  limit           start charging at 30% and stop at 85%."
  echo "  normal          start charging at 96% and stop at 100%."
  exit ${1}
}

# validate command line options
if [[ (${#} -eq 1            \
       && "${1}" != "--help" \
       && "${1}" != "normal" \
       && "${1}" != "limit"  \
       && ${1} != "show") ]]; then
  usage 1
fi

# show help
if [ "${1}" == "--help" ]; then
  usage 0
fi

# get action
action="show"
if [ "${1}" != "" ]; then
    action=${1}
fi

# battery interface location
BAT="/sys/devices/platform/smapi/BAT0"

function show_thresholds() {
  echo -n "Low threshold: "
  cat $BAT/start_charge_thresh
  echo -n "High threshold: "
  cat $BAT/stop_charge_thresh
}

function set_thresholds() {
  START_THRESH=${1}
  STOP_THRESH=${2}
  sudo sh -c "echo ${START_THRESH} > $BAT/start_charge_thresh"
  sudo sh -c "echo ${STOP_THRESH}  > $BAT/stop_charge_thresh"
}

# do your thang
sudo modprobe tp_smapi

THRESHOLDS=""
if [ "${action}" == "normal" ]; then
  THRESHOLDS="96 100"
elif [ "${action}" == "limit" ]; then
  THRESHOLDS="30 85"
fi

if [ ! -z "${THRESHOLDS}" ]; then
  set_thresholds ${THRESHOLDS}
fi

show_thresholds