-
Notifications
You must be signed in to change notification settings - Fork 0
/
acq2206_init_gpio
executable file
·249 lines (210 loc) · 7.03 KB
/
acq2206_init_gpio
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
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
#!/bin/sh
# acq2206_init_gpio
echo "++ acq2206_init_gpio 01"
source /usr/local/bin/acq400_init_gpio_common.sh
common_begin
if [ ! -e /sys/bus/i2c/devices/1-0022/gpio/gpiochip* ]; then
echo I2C ERROR: unable to continue
PS1="$PS1 I2C FAIL #" /bin/sh
fi
# i2c gpio
# si5326
mkdir -p /dev/gpio/CLK
zgpio0=$(get_zynq_gpio0)
export_gpio_value_ln $(($zgpio0+11)) /dev/gpio/CLK/LOL
export_gpio_value_ln $(($zgpio0+14)) /dev/gpio/CLK/C1B
export_gpio_value_ln $(($zgpio0+15)) /dev/gpio/CLK/C2B
# main GPIO
CHIP1=$(basename $(echo /sys/bus/i2c/devices/1-0022/gpio/gpiochip*))
CHIP2=$(basename $(echo /sys/bus/i2c/devices/1-0023/gpio/gpiochip*))
let pin00=${CHIP1#gpiochip*}
let pin10=${CHIP2#gpiochip*}
echo +++ gpiochip 1-0022 $CHIP1 gpio $pin00 $pin01
echo +++ gpiochip 1-0023 $CHIP2 gpio $pin10 $pin11
mkdir -p /dev/gpio/CHIP1
let pin=$pin00
let ix=0
# P000102030405060710111213141516172021222324252627
for dir in O O O O O O O O I I I I I O O O O O O O O I O O
do
export_gpio $pin
ln -s /sys/class/gpio/gpio$pin /dev/gpio/CHIP1/$(printf P%02o $ix)
direction=in; [ "$dir" = "O" ] && direction=out
echo $direction > gpio$pin/direction
let pin=$pin+1
let ix=$ix+1
done
mkdir -p /dev/gpio/CHIP2
let pin=$pin10
let ix=0
# P000102030405060710111213141516172021222324252627
for dir in I I I I I I I I O O O O O O O I O O O O I I I I
do
export_gpio $pin
ln -s /sys/class/gpio/gpio$pin /dev/gpio/CHIP2/$(printf P%02o $ix)
direction=in; [ "$dir" = "O" ] && direction=out
echo $direction > gpio$pin/direction
let pin=$pin+1
let ix=$ix+1
done
# i2c gpio
source /usr/local/CARE/acq2106_init_gpio_common.sh
if $HAS_PWMCHIP; then
echo +++ PWMCHIP FOUND $PWMCHIP
mkdir /dev/gpio/PWMCHIP
let p00=${PWMCHIP#gpiochip*}
let ix=1
# P00010203040506070809101112131415
for dir in O O O O O O O O O O O O O O
do
let pin="$p00+$ix"
export_gpio $pin
ln -s /sys/class/gpio/gpio$pin /dev/gpio/PWMCHIP/$(printf P%02d $ix)
[ "$dir" = "O" ] && setOAL gpio$pin
let ix="$ix+1"
done
echo +++ PWMCHIP 99
fi
if $HAS_D37; then
if $HAS_FPCHIP1; then
echo +++ FPCHIP1 FOUND $FPCHIP1
mkdir /dev/gpio/FPCHIP1
let p00=${FPCHIP1#gpiochip*}
let ix=0
# P00010203040506070809101112131415
for dir in O O O O O O O O O O O O O O O O
do
let pin="$p00+$ix"
export_gpio $pin
ln -s /sys/class/gpio/gpio$pin /dev/gpio/FPCHIP1/$(printf P%02d $ix)
[ "$dir" = "O" ] && setOAL gpio$pin
let ix="$ix+1"
done
echo +++ FPCHIP1 99
fi
else
if $HAS_FPCHIP1; then
echo +++ FPCHIP1 FOUND $FPCHIP1
mkdir /dev/gpio/FPCHIP1
let p00=${FPCHIP1#gpiochip*}
let ix=0
# P00010203040506070809101112131415
for dir in O O O O O O O O O O O O I I I O
do
let pin="$p00+$ix"
export_gpio $pin
ln -s /sys/class/gpio/gpio$pin /dev/gpio/FPCHIP1/$(printf P%02d $ix)
[ "$dir" = "O" ] && setOAL gpio$pin
let ix="$ix+1"
done
echo +++ FP MODEL CODE $(cat /dev/gpio/FPCHIP1/P1[234]/value)
fi
if $HAS_FPCHIP2; then
echo +++ FPCHIP2 FOUND $FPCHIP2
mkdir /dev/gpio/FPCHIP2
let p00=${FPCHIP2#gpiochip*}
let ix=0
# P00010203040506070809101112131415
for dir in O O O O O O O O O O O O O O O O
do
let pin="$p00+$ix"
export_gpio $pin
ln -s /sys/class/gpio/gpio$pin /dev/gpio/FPCHIP2/$(printf P%02d $ix)
[ "$dir" = "O" ] && setOAL gpio$pin
let ix="$ix+1"
done
echo +++ FPCHIP2 99
fi
fi
mkdir -p /dev/gpio/CLK/MB/
lnAH /dev/gpio/CHIP1/P00 /dev/gpio/CLK/OE_CLK1_ELF1
lnAH /dev/gpio/CHIP1/P01 /dev/gpio/CLK/OE_CLK1_ELF2
lnAH /dev/gpio/CHIP1/P02 /dev/gpio/CLK/OE_CLK1_ELF3
lnAH /dev/gpio/CHIP1/P03 /dev/gpio/CLK/OE_CLK1_ELF4
lnAH /dev/gpio/CHIP1/P04 /dev/gpio/CLK/OE_CLK1_ELF5
lnAH /dev/gpio/CHIP1/P05 /dev/gpio/CLK/OE_CLK1_ELF6
lnAH /dev/gpio/CHIP1/P06 /dev/gpio/CLK/OE_CLK1_ZYNQ
mkdir -p /dev/gpio/LED
init_dummy_leds
lnAL /dev/gpio/CHIP1/P07 /dev/gpio/LED/MGT5_G
lnAL /dev/gpio/CHIP1/P10 /dev/gpio/MGT_PRESENT
lnAL /dev/gpio/CHIP1/P11 /dev/gpio/HDMI_CABLE_DET_A
lnAL /dev/gpio/CHIP1/P12 /dev/gpio/HDMI_CABLE_DET_B
lnAL /dev/gpio/CHIP1/P13 /dev/gpio/HDMI_CABLE_DET_C
lnAL /dev/gpio/CHIP1/P14 /dev/gpio/HDMI_CABLE_DET_D
lnAL /dev/gpio/CHIP1/P11 /dev/gpio/HDMI_CABLE_DET_1
lnAL /dev/gpio/CHIP1/P12 /dev/gpio/HDMI_CABLE_DET_2
lnAL /dev/gpio/CHIP1/P13 /dev/gpio/HDMI_CABLE_DET_3
lnAL /dev/gpio/CHIP1/P14 /dev/gpio/HDMI_CABLE_DET_4
lnALO /dev/gpio/CHIP1/P15 /dev/gpio/FP_CLK2_OE
lnALO /dev/gpio/CHIP1/P16 /dev/gpio/HDMI_CLK_OE
lnALO /dev/gpio/CHIP1/P17 /dev/gpio/HDMI_FB_OE
lnAH /dev/gpio/CHIP1/P20 /dev/gpio/OE_CLK1_SYNC
lnAH /dev/gpio/CHIP1/P21 /dev/gpio/FP_SYNC_DIR_OUT
lnAH /dev/gpio/CHIP1/P22 /dev/gpio/FP_IO_DIR_OUT
lnAH /dev/gpio/CHIP1/P23 /dev/gpio/SYNC_IN_GPIO_OUT
lnAH /dev/gpio/CHIP1/P24 /dev/gpio/SYNC_OUT_GPIO_OUT
lnAL /dev/gpio/CHIP1/P25 /dev/gpio/SYNC_CABLE_DET
lnAL /dev/gpio/CHIP2/P00 /dev/gpio/fmc1_present
lnAL /dev/gpio/CHIP2/P01 /dev/gpio/fmc2_present
lnAL /dev/gpio/CHIP2/P02 /dev/gpio/fmc3_present
lnAL /dev/gpio/CHIP2/P03 /dev/gpio/fmc4_present
lnAL /dev/gpio/CHIP2/P04 /dev/gpio/fmc5_present
lnAL /dev/gpio/CHIP2/P05 /dev/gpio/fmc6_present
lnAL /dev/gpio/CHIP2/P06 /dev/gpio/15VP_PGD
lnAL /dev/gpio/CHIP2/P07 /dev/gpio/15VN_PGD
lnALO /dev/gpio/CHIP2/P10 /dev/gpio/CLK/ZCLK_OE
lnALO /dev/gpio/CHIP2/P11 /dev/gpio/CLK/DIST_CLK_HDMI # Not CLK1
lnALO /dev/gpio/CHIP2/P12 /dev/gpio/CLK/OSC_X_OE
lnALO /dev/gpio/CHIP2/P13 /dev/gpio/CLK/OSC_X_CLK_OE
lnALO /dev/gpio/CHIP2/P14 /dev/gpio/CLK/FP_CLK_OE
lnALO /dev/gpio/CHIP2/P15 /dev/gpio/CLK/FP_OE
lnALO /dev/gpio/CHIP2/P16 /dev/gpio/CLK/Si570_OE
lnAL /dev/gpio/CHIP2/P17 /dev/gpio/15VA_EN
lnAHO /dev/gpio/CHIP2/P20 /dev/gpio/FAN_EN
lnAHO /dev/gpio/CHIP2/P21 /dev/gpio/ZFAN_EN
echo 1 > /dev/gpio/FAN_EN
if $HAS_FPCHIP1 && $HAS_FPCHIP2; then
echo FPCHIP1 special
lnALO /dev/gpio/FPCHIP1/P08 /dev/gpio/LED/CLK_G
lnALO /dev/gpio/FPCHIP1/P09 /dev/gpio/LED/CLK_R
lnALO /dev/gpio/FPCHIP1/P10 /dev/gpio/LED/TRG_G
lnALO /dev/gpio/FPCHIP1/P11 /dev/gpio/LED/TRG_R
lnALO /dev/gpio/FPCHIP1/P15 /dev/gpio/LED/FPGA_DONE
echo FPCHIP1 special99
elif $HAS_D37; then
echo D37 skip special
else
lnALO /dev/gpio/CHIP2/P20 /dev/gpio/LED/CLK_G
lnALO /dev/gpio/CHIP2/P21 /dev/gpio/LED/CLK_R
lnALO /dev/gpio/CHIP2/P22 /dev/gpio/LED/TRG_G
lnALO /dev/gpio/CHIP2/P23 /dev/gpio/LED/TRG_R
fi
lnAH /dev/gpio/CHIP2/P24/ /dev/gpio/IS_ACQ2206
lnAL /dev/gpio/CHIP2/P25/ /dev/gpio/IS_REVB
lnAH /dev/gpio/CHIP2/P26/ /dev/gpio/IS_ACQ2006
lnAL /dev/gpio/CHIP2/P27/ /dev/gpio/IS_RES
if $HAS_D37; then
echo "+++ init D37 LEDS"
init_acq2106d37_leds FPCHIP1
elif $HAS_FPCHIP2; then
echo "+++ init FPLEDS"
init_acq2106_leds FPCHIP2
else
echo "+++ SORRY, NO LEDS "
fi
set.sys /dev/gpio/SYNC_OUT_GPIO_OUT 1
echo "setting DIST_CLK_HDMI .. Si5326 is the ONLY valid input.."
set.sys /dev/gpio/CLK/DIST_CLK_HDMI 1
common_end
/sbin/insmod /usr/local/lib/modules/si5326.ko
mkdir -p /dev/acq2006/
ln -s /sys/bus/i2c/devices/1-002c/rdac0 /dev/acq2006/vap
ln -s /sys/bus/i2c/devices/1-002c/rdac1 /dev/acq2006/van
echo +++ setting VAP and VAN to MIN BEFORE touching gpio
echo 2 > /dev/acq2006/vap
echo 2 > /dev/acq2006/van
echo +++ now set 15VA_EN direction out
echo out > /dev/gpio/CHIP2/P17/direction
echo 0 > /dev/gpio/15VA_EN
echo "++ acq2206_init_gpio 99"