-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtmp401.sh
executable file
·199 lines (160 loc) · 5.57 KB
/
tmp401.sh
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
#!/bin/bash
i2c_addr=0x4c
dir=$(dirname $0)
. ${dir}/common.sh
load_i2c_stub ${i2c_addr}
regs_401=(
8018 0000 96 00 08 0055 0000 55 00 00 08 55 00 55 00 ff
00 00 00 00 00 0080 0000 00 00 55 1c 1c 1c 1c 1c 1c
55 0a 81 81 00 00 00 00 00 00 00 00 00 00 00 00
18 80 19 00 ff f0 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 ff ff 55 11
)
regs_411=(
8034 f07f 92 00 08 0055 0000 55 00 00 08 55 00 55 00 ff
f0 00 00 00 00 0080 0000 00 00 55 1c ff ff ff ff ff
55 0a 81 ff 00 00 00 ff ff ff ff ff ff ff ff ff
22 80 72 80 7f f0 ff f0 ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff 55 12
)
regs_435=(
901a 701b 00 00 05 0055 0000 55 00 00 05 55 00 55 00 0d
70 00 00 00 00 0090 00 0000 00 55 1c 00 ff ff ff 00
55 0a 70 101b 10 0f ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff 00 00 00 ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff 00 35 55 35
)
__install_regs()
{
local regs=("${!1}")
local i=0
local size
while [ $i -lt ${#regs[*]} ]
do
if [[ "${#regs[$i]}" -eq 4 ]]; then
size="w"
else
size="b"
fi
i2cset -f -y ${i2c_adapter} ${i2c_addr} $i 0x${regs[$i]} ${size}
i=$(($i + 1))
done
}
__install_regs regs_401[@]
echo "Testing tmp401"
do_instantiate tmp401 ${i2c_addr}
getbasedir ${i2c_addr}
cd ${basedir}
attrs=(name temp1_crit temp1_crit_alarm temp1_crit_hyst temp1_input temp1_max
temp1_max_alarm temp1_min temp1_min_alarm
temp2_crit temp2_crit_alarm temp2_crit_hyst temp2_fault temp2_input
temp2_max temp2_max_alarm temp2_min temp2_min_alarm
update_interval
)
vals=(tmp401 85000 0 75000 24500 85000 0 0 0 85000 1 75000 1 0 85000 1 0 0 500)
dotest attrs[@] vals[@]
rv=$?
do_remove ${i2c_addr}
__install_regs regs_435[@]
echo "Testing tmp435"
do_instantiate tmp435 ${i2c_addr}
getbasedir ${i2c_addr}
cd ${basedir}
attrs=(name temp1_crit temp1_crit_alarm temp1_crit_hyst temp1_input temp1_max
temp1_max_alarm temp1_min temp1_min_alarm
temp2_crit temp2_crit_alarm temp2_crit_hyst temp2_fault temp2_input
temp2_max temp2_max_alarm temp2_min temp2_min_alarm
update_interval
)
vals=(tmp435 85000 0 75000 26563 85000 0 0 0 85000 0 75000 0 27438 85000 0 0 0 500)
dotest attrs[@] vals[@]
rv=$?
for t in $(seq 1 2)
do
# We can not test ranges on min/max attributes since the
# read and write registers are different.
check_range -b ${basedir} -d 500 -r -q -w 2 temp${t}_crit
rv=$(($? + ${rv}))
if [ $t -eq 1 ]
then
check_range -b ${basedir} -d 500 -r -q -w 2 temp${t}_crit_hyst
rv=$(($? + ${rv}))
fi
done
check_range -b ${basedir} -d 4000 -r -q update_interval
rv=$(($? + ${rv}))
do_remove ${i2c_addr}
i2cset -y -f ${i2c_adapter} ${i2c_addr} 0xff 0x31 b # tmp431
echo "Testing tmp431"
do_instantiate tmp431 ${i2c_addr}
vals=(tmp431 85000 0 75000 26563 85000 0 0 0 85000 0 75000 0 27438 85000 0 0 0 500)
cd ${basedir}
dotest attrs[@] vals[@]
rv=$(($? + ${rv}))
do_remove ${i2c_addr}
i2cset -y -f ${i2c_adapter} ${i2c_addr} 0xff 0x32 b # tmp432
echo "Testing tmp432"
do_instantiate tmp432 ${i2c_addr}
cd ${basedir}
attrs=(name temp1_crit temp1_crit_alarm temp1_crit_hyst temp1_input
temp1_max temp1_max_alarm temp1_min temp1_min_alarm
temp2_crit temp2_crit_alarm temp2_crit_hyst temp2_fault
temp2_input temp2_max temp2_max_alarm temp2_min temp2_min_alarm
temp3_crit temp3_crit_alarm temp3_crit_hyst temp3_fault
temp3_input temp3_max temp3_max_alarm temp3_min temp3_min_alarm
update_interval
)
vals=(tmp432 85000 0 75000 26563 85000 0 0 0 85000 0 75000 0 27438 85000 0 0
0 28000 0 18000 0 27063 144000 0 0 0 500)
dotest attrs[@] vals[@]
rv=$(($? + ${rv}))
for t in $(seq 1 3)
do
# We can not test ranges on min/max attributes since the
# read and write registers are different.
check_range -b ${basedir} -d 500 -r -q -w 2 temp${t}_crit
rv=$(($? + ${rv}))
if [ $t -eq 1 ]
then
check_range -b ${basedir} -d 500 -r -q -w 2 temp${t}_crit_hyst
rv=$(($? + ${rv}))
fi
done
check_range -b ${basedir} -d 4000 -r -q update_interval
rv=$(($? + ${rv}))
modprobe -r i2c-stub 2>/dev/null
modprobe -r tmp401 2>/dev/null
exit ${rv}