xref: /OK3568_Linux_fs/external/rkscript/list-iodomain.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun#!/bin/sh
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun# $1 is chip
4*4882a593SmuzhiyunCHIP_ID=""
5*4882a593SmuzhiyunHIGH_LEVEL="3.3V" # get from chip trm
6*4882a593SmuzhiyunLOW_LEVEL="1.8V"  # get from chip trm
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunTOOL_HEXDUMP="NO"
9*4882a593SmuzhiyunVERSION="V1.0.1"
10*4882a593Smuzhiyunprogram_name="$0"
11*4882a593Smuzhiyun
12*4882a593Smuzhiyunfunction help_msg()
13*4882a593Smuzhiyun{
14*4882a593Smuzhiyun	echo "Please input chip."
15*4882a593Smuzhiyun	echo "$program_name <chip>"
16*4882a593Smuzhiyun	echo "chip: rv1126,rv1109,rk3308,rk3308b,rk3308bs"
17*4882a593Smuzhiyun	exit 0
18*4882a593Smuzhiyun}
19*4882a593Smuzhiyun
20*4882a593Smuzhiyunfunction echo_msg()
21*4882a593Smuzhiyun{
22*4882a593Smuzhiyun	echo -e "\e[1;31m    $1 \e[0m"
23*4882a593Smuzhiyun}
24*4882a593Smuzhiyun
25*4882a593Smuzhiyunfunction get_reg()
26*4882a593Smuzhiyun{
27*4882a593Smuzhiyun	if [ -n "$1" ]; then
28*4882a593Smuzhiyun		_val=`io -4 -r $1`
29*4882a593Smuzhiyun		_val=`echo ${_val##*:}`
30*4882a593Smuzhiyun		_val=`echo 0x${_val}`
31*4882a593Smuzhiyun		echo "$_val"
32*4882a593Smuzhiyun	else
33*4882a593Smuzhiyun		echo "get register error."
34*4882a593Smuzhiyun		exit -1
35*4882a593Smuzhiyun	fi
36*4882a593Smuzhiyun}
37*4882a593Smuzhiyun
38*4882a593Smuzhiyunfunction print_val()
39*4882a593Smuzhiyun{
40*4882a593Smuzhiyun	tag="$2"
41*4882a593Smuzhiyun	if [ $(( $1 )) -eq 0 ];then
42*4882a593Smuzhiyun		echo_msg "$tag $HIGH_LEVEL"
43*4882a593Smuzhiyun	else
44*4882a593Smuzhiyun		echo_msg "$tag $LOW_LEVEL"
45*4882a593Smuzhiyun	fi
46*4882a593Smuzhiyun}
47*4882a593Smuzhiyun
48*4882a593Smuzhiyunfunction list_iodomain_rv1126_rv1109()
49*4882a593Smuzhiyun{
50*4882a593Smuzhiyun	iodomain_val=`get_reg 0xFE020140`
51*4882a593Smuzhiyun	pmuio1_vsel=$(( 0x1 << 9 ))
52*4882a593Smuzhiyun	pmuio0_vsel=$(( 0x1 << 8 ))
53*4882a593Smuzhiyun	vccio7_vsel=$(( 0x1 << 7 ))
54*4882a593Smuzhiyun	vccio6_vsel=$(( 0x1 << 6 ))
55*4882a593Smuzhiyun	vccio5_vsel=$(( 0x1 << 5 ))
56*4882a593Smuzhiyun	vccio4_vsel=$(( 0x1 << 4 ))
57*4882a593Smuzhiyun	vccio3_vsel=$(( 0x1 << 3 ))
58*4882a593Smuzhiyun	vccio2_vsel=$(( 0x1 << 2 ))
59*4882a593Smuzhiyun	vccio1_vsel=$(( 0x1 << 1 ))
60*4882a593Smuzhiyun	flash_vosel=$(( 0x1 << 0 ))
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun	print_val $(( $iodomain_val & $pmuio1_vsel )) "pmuio1_vsel:"
63*4882a593Smuzhiyun	print_val $(( $iodomain_val & $pmuio0_vsel )) "pmuio0_vsel:"
64*4882a593Smuzhiyun	print_val $(( $iodomain_val & $vccio7_vsel )) "vccio7_vsel:"
65*4882a593Smuzhiyun	print_val $(( $iodomain_val & $vccio6_vsel )) "vccio6_vsel:"
66*4882a593Smuzhiyun	print_val $(( $iodomain_val & $vccio5_vsel )) "vccio5_vsel:"
67*4882a593Smuzhiyun	print_val $(( $iodomain_val & $vccio4_vsel )) "vccio4_vsel:"
68*4882a593Smuzhiyun	print_val $(( $iodomain_val & $vccio3_vsel )) "vccio3_vsel:"
69*4882a593Smuzhiyun	print_val $(( $iodomain_val & $vccio2_vsel )) "vccio2_vsel:"
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun	if [ $(( $iodomain_val & $flash_vosel )) -eq 0 ];then
72*4882a593Smuzhiyun		# read iomux
73*4882a593Smuzhiyun		gpio0b3_iomux_val=`get_reg 0xFE020008`
74*4882a593Smuzhiyun		gpio0b3_iomux_val_off=$(( 0x1 << 12 ))
75*4882a593Smuzhiyun		if [ $(( $gpio0b3_iomux_val & $gpio0b3_iomux_val_off )) -eq 0 ];then
76*4882a593Smuzhiyun			# read gpio data direction
77*4882a593Smuzhiyun			gpio0b3_data_direction_val=`get_reg 0xFF460008`
78*4882a593Smuzhiyun			gpio0b3_data_direction_val_off=$(( 0x1 << 11 ))
79*4882a593Smuzhiyun			if [ $(( $gpio0b3_data_direction_val & $gpio0b3_data_direction_val_off )) -eq 0 ];then
80*4882a593Smuzhiyun				# read gpio data register
81*4882a593Smuzhiyun				gpio0b3_data_reg_val=`get_reg 0xFF460070`
82*4882a593Smuzhiyun				gpio0b3_data_reg_val_off=$(( 0x1 << 11 ))
83*4882a593Smuzhiyun				print_val $(( $gpio0b3_data_reg_val & $gpio0b3_data_reg_val_off )) "vccio1_vsel:"
84*4882a593Smuzhiyun			else
85*4882a593Smuzhiyun				echo "Check vccio1_vsel error!!!"
86*4882a593Smuzhiyun			fi
87*4882a593Smuzhiyun		else
88*4882a593Smuzhiyun			echo "Check vccio1_vsel error!!!"
89*4882a593Smuzhiyun		fi
90*4882a593Smuzhiyun	fi
91*4882a593Smuzhiyun	if [ $(( $iodomain_val & $flash_vosel )) -eq 1 ];then
92*4882a593Smuzhiyun		print_val $(( $iodomain_val & $vccio1_vsel )) "vccio1_vsel:"
93*4882a593Smuzhiyun	fi
94*4882a593Smuzhiyun}
95*4882a593Smuzhiyun
96*4882a593Smuzhiyunfunction list_iodomain_rk3308_rk3308b_rk3308bs()
97*4882a593Smuzhiyun{
98*4882a593Smuzhiyun	iodomain_val=`get_reg 0xFF000300`
99*4882a593Smuzhiyun	flash_vosel=$(( 0x1 << 8 ))
100*4882a593Smuzhiyun	vccio5_vsel=$(( 0x1 << 5 ))
101*4882a593Smuzhiyun	vccio4_vsel=$(( 0x1 << 4 ))
102*4882a593Smuzhiyun	vccio3_vsel=$(( 0x1 << 3 ))
103*4882a593Smuzhiyun	vccio2_vsel=$(( 0x1 << 2 ))
104*4882a593Smuzhiyun	vccio1_vsel=$(( 0x1 << 1 ))
105*4882a593Smuzhiyun	vccio0_vsel=$(( 0x1 << 0 ))
106*4882a593Smuzhiyun
107*4882a593Smuzhiyun	if [ $(( $iodomain_val & $flash_vosel )) -eq $(( 0x1 << 8 )) ];then
108*4882a593Smuzhiyun		print_val $(( $iodomain_val & $vccio5_vsel )) "vccio5_vsel:"
109*4882a593Smuzhiyun		print_val $(( $iodomain_val & $vccio4_vsel )) "vccio4_vsel:"
110*4882a593Smuzhiyun		print_val $(( $iodomain_val & $vccio3_vsel )) "vccio3_vsel:"
111*4882a593Smuzhiyun		print_val $(( $iodomain_val & $vccio2_vsel )) "vccio2_vsel:"
112*4882a593Smuzhiyun		print_val $(( $iodomain_val & $vccio1_vsel )) "vccio1_vsel:"
113*4882a593Smuzhiyun		print_val $(( $iodomain_val & $vccio0_vsel )) "vccio0_vsel:"
114*4882a593Smuzhiyun        fi
115*4882a593Smuzhiyun	if [ $(( $iodomain_val & $flash_vosel )) -eq 0 ];then
116*4882a593Smuzhiyun		# read iomux
117*4882a593Smuzhiyun		gpio0a4_iomux_val=`get_reg 0xFF000000`
118*4882a593Smuzhiyun		gpio0a4_iomux_val_off=$(( 0x1 << 8 ))
119*4882a593Smuzhiyun		if [ $(( $gpio0a4_iomux_val & $gpio0a4_iomux_val_off )) -eq 0 ];then
120*4882a593Smuzhiyun			# read gpio data direction
121*4882a593Smuzhiyun			gpio0a4_data_direction_val=`get_reg 0xFF220004`
122*4882a593Smuzhiyun			gpio0a4_data_direction_val_off=$(( 0x1 << 4 ))
123*4882a593Smuzhiyun			if [ $(( $gpio0a4_data_direction_val & $gpio0b3_data_direction_val_off )) -eq 0 ];then
124*4882a593Smuzhiyun				# read gpio data register
125*4882a593Smuzhiyun				gpio0a4_data_reg_val=`get_reg 0xFF220050`
126*4882a593Smuzhiyun				gpio0a4_data_reg_val_off=$(( 0x1 << 4 ))
127*4882a593Smuzhiyun				print_val $(( $iodomain_val & $vccio5_vsel )) "vccio5_vsel:"
128*4882a593Smuzhiyun				print_val $(( $iodomain_val & $vccio4_vsel )) "vccio4_vsel:"
129*4882a593Smuzhiyun				print_val $(( $gpio0a4_data_reg_val & $gpio0a4_data_reg_val_off )) "vccio3_vsel:"
130*4882a593Smuzhiyun				print_val $(( $iodomain_val & $vccio2_vsel )) "vccio2_vsel:"
131*4882a593Smuzhiyun				print_val $(( $iodomain_val & $vccio1_vsel )) "vccio1_vsel:"
132*4882a593Smuzhiyun				print_val $(( $iodomain_val & $vccio0_vsel )) "vccio0_vsel:"
133*4882a593Smuzhiyun			else
134*4882a593Smuzhiyun				echo "Check vccio1_vsel error!!!"
135*4882a593Smuzhiyun			fi
136*4882a593Smuzhiyun		else
137*4882a593Smuzhiyun			echo "Check vccio1_vsel error!!!"
138*4882a593Smuzhiyun		fi
139*4882a593Smuzhiyun	fi
140*4882a593Smuzhiyun}
141*4882a593Smuzhiyun
142*4882a593Smuzhiyunfunction list_iodomain_rk3326_rk3326s()
143*4882a593Smuzhiyun{
144*4882a593Smuzhiyun	iodomain0_val=`get_reg 0xFF140180`
145*4882a593Smuzhiyun	iodomain1_val=`get_reg 0xFF010100`
146*4882a593Smuzhiyun
147*4882a593Smuzhiyun	pmuio2_vsel=$(( 0x1 << 15 ))
148*4882a593Smuzhiyun	pmuio1_vsel=$(( 0x1 << 14 ))
149*4882a593Smuzhiyun
150*4882a593Smuzhiyun	vccio5_vsel=$(( 0x1 << 6 ))
151*4882a593Smuzhiyun	vccio4_vsel=$(( 0x1 << 5 ))
152*4882a593Smuzhiyun	vccio3_vsel=$(( 0x1 << 4 ))
153*4882a593Smuzhiyun	vccio2_vsel=$(( 0x1 << 3 ))
154*4882a593Smuzhiyun	vccio1_vsel=$(( 0x1 << 2 ))
155*4882a593Smuzhiyun
156*4882a593Smuzhiyun	print_val $(( $iodomain1_val & $pmuio2_vsel )) "pmuio2_vsel:"
157*4882a593Smuzhiyun	print_val $(( $iodomain1_val & $pmuio1_vsel )) "pmuio1_vsel:"
158*4882a593Smuzhiyun	print_val $(( $iodomain0_val & $vccio5_vsel )) "vccio5_vsel:"
159*4882a593Smuzhiyun	print_val $(( $iodomain0_val & $vccio4_vsel )) "vccio4_vsel:"
160*4882a593Smuzhiyun	print_val $(( $iodomain0_val & $vccio3_vsel )) "vccio3_vsel:"
161*4882a593Smuzhiyun	print_val $(( $iodomain0_val & $vccio2_vsel )) "vccio2_vsel:"
162*4882a593Smuzhiyun	print_val $(( $iodomain0_val & $vccio1_vsel )) "vccio1_vsel:"
163*4882a593Smuzhiyun}
164*4882a593Smuzhiyun
165*4882a593Smuzhiyunfunction list_iodomain_rk3566_rk3568()
166*4882a593Smuzhiyun{
167*4882a593Smuzhiyun	iodomain0_val=`get_reg 0xFDC20140`
168*4882a593Smuzhiyun	iodomain1_val=`get_reg 0xFDC20144`
169*4882a593Smuzhiyun	iodomain2_val=`get_reg 0xFDC20148`
170*4882a593Smuzhiyun
171*4882a593Smuzhiyun	pmuio2_vsel=$(( 0x1 << 1 ))
172*4882a593Smuzhiyun
173*4882a593Smuzhiyun	vccio7_vsel=$(( 0x1 << 7 ))
174*4882a593Smuzhiyun	vccio6_vsel=$(( 0x1 << 6 ))
175*4882a593Smuzhiyun	vccio5_vsel=$(( 0x1 << 5 ))
176*4882a593Smuzhiyun	vccio4_vsel=$(( 0x1 << 4 ))
177*4882a593Smuzhiyun	vccio3_vsel=$(( 0x1 << 3 ))
178*4882a593Smuzhiyun	vccio2_vsel=$(( 0x1 << 2 ))
179*4882a593Smuzhiyun	vccio1_vsel=$(( 0x1 << 1 ))
180*4882a593Smuzhiyun
181*4882a593Smuzhiyun	print_val $(( $iodomain2_val & $pmuio2_vsel )) "pmuio2_vsel:"
182*4882a593Smuzhiyun	print_val $(( $iodomain0_val & $vccio7_vsel )) "vccio7_vsel:"
183*4882a593Smuzhiyun	print_val $(( $iodomain0_val & $vccio6_vsel )) "vccio6_vsel:"
184*4882a593Smuzhiyun	print_val $(( $iodomain0_val & $vccio5_vsel )) "vccio5_vsel:"
185*4882a593Smuzhiyun	print_val $(( $iodomain0_val & $vccio4_vsel )) "vccio4_vsel:"
186*4882a593Smuzhiyun	print_val $(( $iodomain0_val & $vccio3_vsel )) "vccio3_vsel:"
187*4882a593Smuzhiyun	print_val $(( $iodomain0_val & $vccio2_vsel )) "vccio2_vsel:"
188*4882a593Smuzhiyun	print_val $(( $iodomain0_val & $vccio1_vsel )) "vccio1_vsel:"
189*4882a593Smuzhiyun}
190*4882a593Smuzhiyun
191*4882a593Smuzhiyunfunction chk_rv1126_rv1109()
192*4882a593Smuzhiyun{
193*4882a593Smuzhiyun	nvem_path="/sys/bus/nvmem/devices/rockchip-otp0/nvmem"
194*4882a593Smuzhiyun	iff=`hexdump -C $nvem_path | grep -Ew "00000000  52 56 11 26|00000000  52 56 11 09"`
195*4882a593Smuzhiyun	if [ -n "$iff" ]; then
196*4882a593Smuzhiyun		CHIP_ID=rv1126_rv1109
197*4882a593Smuzhiyun		HIGH_LEVEL="3.3V"
198*4882a593Smuzhiyun		LOW_LEVEL="1.8V"
199*4882a593Smuzhiyun		return 0
200*4882a593Smuzhiyun	fi
201*4882a593Smuzhiyun	return 1
202*4882a593Smuzhiyun}
203*4882a593Smuzhiyun
204*4882a593Smuzhiyunfunction chk_rk3308_rk3308b_rk3308bs()
205*4882a593Smuzhiyun{
206*4882a593Smuzhiyun	nvem_path="/sys/bus/nvmem/devices/rockchip-otp0/nvmem"
207*4882a593Smuzhiyun	iff=`hexdump -C $nvem_path | grep -Ew "00000000  52 4b 33 08"`
208*4882a593Smuzhiyun	if [ -n "$iff" ]; then
209*4882a593Smuzhiyun		CHIP_ID=rk3308
210*4882a593Smuzhiyun		HIGH_LEVEL="3.3V"
211*4882a593Smuzhiyun		LOW_LEVEL="1.8V"
212*4882a593Smuzhiyun		return 0
213*4882a593Smuzhiyun	fi
214*4882a593Smuzhiyun	return 1
215*4882a593Smuzhiyun}
216*4882a593Smuzhiyun
217*4882a593Smuzhiyunfunction chk_rk3326_rk3326s()
218*4882a593Smuzhiyun{
219*4882a593Smuzhiyun	nvem_path="/sys/bus/nvmem/devices/rockchip-otp0/nvmem"
220*4882a593Smuzhiyun	iff=`hexdump -C $nvem_path | grep -Ew "00000000  52 4b 33 26"`
221*4882a593Smuzhiyun	if [ -n "$iff" ]; then
222*4882a593Smuzhiyun		CHIP_ID=rk3326
223*4882a593Smuzhiyun		HIGH_LEVEL="3.3V"
224*4882a593Smuzhiyun		LOW_LEVEL="1.8V"
225*4882a593Smuzhiyun		return 0
226*4882a593Smuzhiyun	fi
227*4882a593Smuzhiyun	return 1
228*4882a593Smuzhiyun}
229*4882a593Smuzhiyun
230*4882a593Smuzhiyunfunction chk_rk3566_rk3568()
231*4882a593Smuzhiyun{
232*4882a593Smuzhiyun	nvem_path="/sys/bus/nvmem/devices/rockchip-otp0/nvmem"
233*4882a593Smuzhiyun	iff=`hexdump -C $nvem_path | grep -Ew "00000000  52 4b 35 68|00000000  52 4b 35 66"`
234*4882a593Smuzhiyun	if [ -n "$iff" ]; then
235*4882a593Smuzhiyun		CHIP_ID=rk356x
236*4882a593Smuzhiyun		HIGH_LEVEL="3.3V"
237*4882a593Smuzhiyun		LOW_LEVEL="1.8V"
238*4882a593Smuzhiyun		return 0
239*4882a593Smuzhiyun	fi
240*4882a593Smuzhiyun	return 1
241*4882a593Smuzhiyun}
242*4882a593Smuzhiyun
243*4882a593Smuzhiyunfunction get_chip_id()
244*4882a593Smuzhiyun{
245*4882a593Smuzhiyun	# if error, exit -1
246*4882a593Smuzhiyun	if [ "$TOOL_HEXDUMP" = "YES" ];then
247*4882a593Smuzhiyun		# if check otp success, just return CHIP_ID and ignore $1
248*4882a593Smuzhiyun		chk_rv1126_rv1109
249*4882a593Smuzhiyun		if [ $? -eq 0 ];then
250*4882a593Smuzhiyun			return 0
251*4882a593Smuzhiyun		fi
252*4882a593Smuzhiyun		chk_rk3308_rk3308b_rk3308bs
253*4882a593Smuzhiyun		if [ $? -eq 0 ];then
254*4882a593Smuzhiyun			return 0
255*4882a593Smuzhiyun		fi
256*4882a593Smuzhiyun		chk_rk3326_rk3326s
257*4882a593Smuzhiyun		if [ $? -eq 0 ];then
258*4882a593Smuzhiyun			return 0
259*4882a593Smuzhiyun		fi
260*4882a593Smuzhiyun		chk_rk3566_rk3568
261*4882a593Smuzhiyun		if [ $? -eq 0 ];then
262*4882a593Smuzhiyun			return 0
263*4882a593Smuzhiyun		fi
264*4882a593Smuzhiyun	fi
265*4882a593Smuzhiyun
266*4882a593Smuzhiyun	# if check otp failed, check CHIP_ID with $1
267*4882a593Smuzhiyun	case "$1" in
268*4882a593Smuzhiyun		rv1126|rv1109|RV1126|RV1109)
269*4882a593Smuzhiyun			chip_id=`io -4 -r 0XFE000110 | grep -w 00001109`
270*4882a593Smuzhiyun			if [ $? -eq 0 -a -n "$chip_id" ]; then
271*4882a593Smuzhiyun				CHIP_ID=rv1126_rv1109
272*4882a593Smuzhiyun				HIGH_LEVEL="3.3V"
273*4882a593Smuzhiyun				LOW_LEVEL="1.8V"
274*4882a593Smuzhiyun				return 0
275*4882a593Smuzhiyun			fi
276*4882a593Smuzhiyun			;;
277*4882a593Smuzhiyun		rk3308bs|RK3308BS)
278*4882a593Smuzhiyun		chip_id=`io -4 -r 0XFF000800 | grep -w 0003308c`
279*4882a593Smuzhiyun			if [ $? -eq 0 -a -n "$chip_id" ]; then
280*4882a593Smuzhiyun				CHIP_ID=$1
281*4882a593Smuzhiyun				HIGH_LEVEL="3.3V"
282*4882a593Smuzhiyun				LOW_LEVEL="1.8V"
283*4882a593Smuzhiyun				return 0
284*4882a593Smuzhiyun			fi
285*4882a593Smuzhiyun			;;
286*4882a593Smuzhiyun		rk3308b|RK3308B)
287*4882a593Smuzhiyun		chip_id=`io -4 -r 0XFF000800 | grep -w 00003308`
288*4882a593Smuzhiyun			if [ $? -eq 0 -a -n "$chip_id" ]; then
289*4882a593Smuzhiyun				CHIP_ID=$1
290*4882a593Smuzhiyun				HIGH_LEVEL="3.3V"
291*4882a593Smuzhiyun				LOW_LEVEL="1.8V"
292*4882a593Smuzhiyun				return 0
293*4882a593Smuzhiyun			fi
294*4882a593Smuzhiyun			;;
295*4882a593Smuzhiyun		rk3308|RK3308)
296*4882a593Smuzhiyun		chip_id=`io -4 -r 0XFF000800 | grep -w 00000cea`
297*4882a593Smuzhiyun			if [ $? -eq 0 -a -n "$chip_id" ]; then
298*4882a593Smuzhiyun				CHIP_ID=$1
299*4882a593Smuzhiyun				HIGH_LEVEL="3.3V"
300*4882a593Smuzhiyun				LOW_LEVEL="1.8V"
301*4882a593Smuzhiyun				return 0
302*4882a593Smuzhiyun			fi
303*4882a593Smuzhiyun			;;
304*4882a593Smuzhiyun		rk3326|RK3326)
305*4882a593Smuzhiyun		chip_id=`io -4 -r 0XFF140800 | grep -w 00003326`
306*4882a593Smuzhiyun			if [ $? -eq 0 -a -n "$chip_id" ]; then
307*4882a593Smuzhiyun				CHIP_ID=$1
308*4882a593Smuzhiyun				HIGH_LEVEL="3.3V"
309*4882a593Smuzhiyun				LOW_LEVEL="1.8V"
310*4882a593Smuzhiyun				return 0
311*4882a593Smuzhiyun			fi
312*4882a593Smuzhiyun			;;
313*4882a593Smuzhiyun		rk3326s|RK3326S)
314*4882a593Smuzhiyun		chip_id=`io -4 -r 0XFF140800 | grep -w 00003326`
315*4882a593Smuzhiyun			if [ $? -eq 0 -a -n "$chip_id" ]; then
316*4882a593Smuzhiyun				CHIP_ID=$1
317*4882a593Smuzhiyun				HIGH_LEVEL="3.3V"
318*4882a593Smuzhiyun				LOW_LEVEL="1.8V"
319*4882a593Smuzhiyun				return 0
320*4882a593Smuzhiyun			fi
321*4882a593Smuzhiyun			;;
322*4882a593Smuzhiyun		rk3566|rk3568|RK3566|RK3568)
323*4882a593Smuzhiyun			chip_id=`io -4 -r 0XFDC60800 | grep -w 00003566`
324*4882a593Smuzhiyun			if [ $? -eq 0 -a -n "$chip_id" ]; then
325*4882a593Smuzhiyun				CHIP_ID=$1
326*4882a593Smuzhiyun				HIGH_LEVEL="3.3V"
327*4882a593Smuzhiyun				LOW_LEVEL="1.8V"
328*4882a593Smuzhiyun				return 0
329*4882a593Smuzhiyun			fi
330*4882a593Smuzhiyun			;;
331*4882a593Smuzhiyun		*)
332*4882a593Smuzhiyun			help_msg
333*4882a593Smuzhiyun			;;
334*4882a593Smuzhiyun	esac
335*4882a593Smuzhiyun
336*4882a593Smuzhiyun	echo "Not found CHIP_ID...exit!!!"
337*4882a593Smuzhiyun	exit 0
338*4882a593Smuzhiyun}
339*4882a593Smuzhiyun
340*4882a593Smuzhiyun# input parameter
341*4882a593Smuzhiyun#      CHIP_ID    --> rv1126,rk3308,rk3308b,rk3308bs,rk3566,rk3568
342*4882a593Smuzhiyun#      HIGH_LEVEL --> "3.3V"
343*4882a593Smuzhiyun#      LOW_LEVEL  --> "1.8V"
344*4882a593Smuzhiyunfunction get_iodomain_val()
345*4882a593Smuzhiyun{
346*4882a593Smuzhiyun	# if error, exit -1
347*4882a593Smuzhiyun	echo_msg "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
348*4882a593Smuzhiyun	echo_msg "XXXXXXXXXX      PLEASE CHECK IO-DOMAIN !!!!!!!!!!!!!!!"
349*4882a593Smuzhiyun	echo_msg "XXXXXXXXXX        请务必检查IO电源域配置  !!!!!!!!!!!!!!!"
350*4882a593Smuzhiyun	echo_msg "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
351*4882a593Smuzhiyun	echo_msg "Get IO DOMAIN VALUE:"
352*4882a593Smuzhiyun	case "$CHIP_ID" in
353*4882a593Smuzhiyun		rv1126|rv1109|RV1126|RV1109|rv1126_rv1109|RV1126_RV1109)
354*4882a593Smuzhiyun			list_iodomain_rv1126_rv1109
355*4882a593Smuzhiyun			;;
356*4882a593Smuzhiyun		rk3308bs|rk3308b|rk3308|RK3308BS|RK3308B|RK3308)
357*4882a593Smuzhiyun			list_iodomain_rk3308_rk3308b_rk3308bs
358*4882a593Smuzhiyun			;;
359*4882a593Smuzhiyun		rk3326|rk3326s|RK3326|RK3326)
360*4882a593Smuzhiyun			list_iodomain_rk3326_rk3326s
361*4882a593Smuzhiyun			;;
362*4882a593Smuzhiyun		rk3566|rk3568|rk356x|RK3566|RK3568|RK356X)
363*4882a593Smuzhiyun			echo_msg "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
364*4882a593Smuzhiyun			echo_msg "注意事项:PMUIO1/PMUIO2 固定不可配"
365*4882a593Smuzhiyun			echo_msg "VCCIO2电平由硬件FLASH_VOL_SEL决定:"
366*4882a593Smuzhiyun			echo_msg "当VCCIo2供电是1.8V,则FLASH_VOL_SEL管脚必须保持为高电平;"
367*4882a593Smuzhiyun			echo_msg "当VCCIO2供电是3.3V,则FLASH_VOL_SEL管脚必须保持为低电平;"
368*4882a593Smuzhiyun			echo_msg "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
369*4882a593Smuzhiyun
370*4882a593Smuzhiyun			list_iodomain_rk3566_rk3568
371*4882a593Smuzhiyun			;;
372*4882a593Smuzhiyun		*)
373*4882a593Smuzhiyun			help_msg
374*4882a593Smuzhiyun			;;
375*4882a593Smuzhiyun	esac
376*4882a593Smuzhiyun	echo_msg "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
377*4882a593Smuzhiyun	exit 0
378*4882a593Smuzhiyun}
379*4882a593Smuzhiyun
380*4882a593Smuzhiyunfunction chk_env()
381*4882a593Smuzhiyun{
382*4882a593Smuzhiyun	echo_msg "$0 version: $VERSION"
383*4882a593Smuzhiyun	# if error, exit -1
384*4882a593Smuzhiyun	which io &>/dev/null
385*4882a593Smuzhiyun	if [ $? -ne 0 ]; then
386*4882a593Smuzhiyun		echo_msg "install io command first!!!"
387*4882a593Smuzhiyun		exit -1
388*4882a593Smuzhiyun	fi
389*4882a593Smuzhiyun
390*4882a593Smuzhiyun	which hexdump &>/dev/null
391*4882a593Smuzhiyun	if [ $? -eq 0 ]; then
392*4882a593Smuzhiyun		TOOL_HEXDUMP="YES"
393*4882a593Smuzhiyun	fi
394*4882a593Smuzhiyun}
395*4882a593Smuzhiyun
396*4882a593Smuzhiyunif [ "$1" = "-h" -o "$1" = "--help" ]; then
397*4882a593Smuzhiyun	help_msg
398*4882a593Smuzhiyunfi
399*4882a593Smuzhiyunchk_env
400*4882a593Smuzhiyunget_chip_id $1
401*4882a593Smuzhiyunecho_msg "Get CHIP ID: $CHIP_ID"
402*4882a593Smuzhiyunget_iodomain_val
403