mirror of
https://github.com/hardkernel/linux.git
synced 2026-03-25 20:10:23 +09:00
scripts: add io-domain.sh for rk356x io-domain check
Change-Id: Iac84a3236835fcc4dc686a579ef2930343885690 Signed-off-by: Wu Liangqing <wlq@rock-chips.com>
This commit is contained in:
323
scripts/io-domain.sh
Executable file
323
scripts/io-domain.sh
Executable file
@@ -0,0 +1,323 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
# Copyright (c) 2021 Rockchip Electronics Co., Ltd.
|
||||
|
||||
PMUIO1=0
|
||||
PMUIO2=0
|
||||
VCCIO1=0
|
||||
VCCIO3=0
|
||||
VCCIO4=0
|
||||
VCCIO5=0
|
||||
VCCIO6=0
|
||||
VCCIO7=0
|
||||
|
||||
DTS_PMUIO1=0
|
||||
DTS_PMUIO2=0
|
||||
DTS_VCCIO1=0
|
||||
DTS_VCCIO3=0
|
||||
DTS_VCCIO4=0
|
||||
DTS_VCCIO5=0
|
||||
DTS_VCCIO6=0
|
||||
DTS_VCCIO7=0
|
||||
|
||||
DTS_NAME=$1.dts.tmp
|
||||
|
||||
CheckBckfileRet=0
|
||||
checklistRst=0
|
||||
GetVoltageFromDtsVal=0
|
||||
|
||||
ShowChecklist()
|
||||
{
|
||||
PMUIO1=$(whiptail --title "IO Domain Checklist" --menu --nocancel\
|
||||
"Get the corresponding value from the hardware schematic diagram" 15 60 2 \
|
||||
"1800000" "PMUIO1 Supply Power Voltage(uV)" \
|
||||
"3300000" "PMUIO1 Supply Power Voltage(uV)" 3>&1 1>&2 2>&3)
|
||||
exitstatus=$?
|
||||
if [ $exitstatus != 0 ]; then
|
||||
echo "You chose Cancel."
|
||||
checklistRst=1
|
||||
fi
|
||||
|
||||
PMUIO2=$(whiptail --title "IO Domain Checklist" --menu --nocancel\
|
||||
"Get the corresponding value from the hardware schematic diagram" 15 60 2 \
|
||||
"1800000" "PMUIO2 Supply Power Voltage(uV)" \
|
||||
"3300000" "PMUIO2 Supply Power Voltage(uV)" 3>&1 1>&2 2>&3)
|
||||
exitstatus=$?
|
||||
if [ $exitstatus != 0 ]; then
|
||||
echo "You chose Cancel."
|
||||
checklistRst=1
|
||||
fi
|
||||
|
||||
VCCIO1=$(whiptail --title "IO Domain Checklist" --menu --nocancel\
|
||||
"Get the corresponding value from the hardware schematic diagram" 15 60 2 \
|
||||
"1800000" "VCCIO1 Supply Power Voltage(uV)" \
|
||||
"3300000" "VCCIO1 Supply Power Voltage(uV)" 3>&1 1>&2 2>&3)
|
||||
exitstatus=$?
|
||||
if [ $exitstatus != 0 ]; then
|
||||
echo "You chose Cancel."
|
||||
checklistRst=1
|
||||
fi
|
||||
|
||||
VCCIO3=$(whiptail --title "IO Domain Checklist" --menu --nocancel\
|
||||
"Get the corresponding value from the hardware schematic diagram" 15 60 2 \
|
||||
"1800000" "VCCIO3 Supply Power Voltage(uV)" \
|
||||
"3300000" "VCCIO3 Supply Power Voltage(uV)" 3>&1 1>&2 2>&3)
|
||||
exitstatus=$?
|
||||
if [ $exitstatus != 0 ]; then
|
||||
echo "You chose Cancel."
|
||||
checklistRst=1
|
||||
fi
|
||||
|
||||
VCCIO4=$(whiptail --title "IO Domain Checklist" --menu --nocancel\
|
||||
"Get the corresponding value from the hardware schematic diagram" 15 60 2 \
|
||||
"1800000" "VCCIO4 Supply Power Voltage(uV)" \
|
||||
"3300000" "VCCIO4 Supply Power Voltage(uV)" 3>&1 1>&2 2>&3)
|
||||
exitstatus=$?
|
||||
if [ $exitstatus != 0 ]; then
|
||||
echo "You chose Cancel."
|
||||
checklistRst=1
|
||||
fi
|
||||
|
||||
VCCIO5=$(whiptail --title "IO Domain Checklist" --menu --nocancel\
|
||||
"Get the corresponding value from the hardware schematic diagram" 15 60 2 \
|
||||
"1800000" "VCCIO5 Supply Power Voltage(uV)" \
|
||||
"3300000" "VCCIO5 Supply Power Voltage(uV)" 3>&1 1>&2 2>&3)
|
||||
exitstatus=$?
|
||||
if [ $exitstatus != 0 ]; then
|
||||
echo "You chose Cancel."
|
||||
checklistRst=1
|
||||
fi
|
||||
|
||||
VCCIO6=$(whiptail --title "IO Domain Checklist" --menu --nocancel\
|
||||
"Get the corresponding value from the hardware schematic diagram" 15 60 2 \
|
||||
"1800000" "VCCIO6 Supply Power Voltage(uV)" \
|
||||
"3300000" "VCCIO6 Supply Power Voltage(uV)" 3>&1 1>&2 2>&3)
|
||||
exitstatus=$?
|
||||
if [ $exitstatus != 0 ]; then
|
||||
echo "You chose Cancel."
|
||||
checklistRst=1
|
||||
fi
|
||||
|
||||
VCCIO7=$(whiptail --title "IO Domain Checklist" --menu --nocancel\
|
||||
"Get the corresponding value from the hardware schematic diagram" 15 60 2 \
|
||||
"1800000" "VCCIO7 Supply Power Voltage(uV)" \
|
||||
"3300000" "VCCIO7 Supply Power Voltage(uV)" 3>&1 1>&2 2>&3)
|
||||
exitstatus=$?
|
||||
if [ $exitstatus != 0 ]; then
|
||||
echo "You chose Cancel."
|
||||
checklistRst=1
|
||||
fi
|
||||
}
|
||||
|
||||
DtsIoDomainVoltageVal=0
|
||||
DtsIoDomainVoltage()
|
||||
{
|
||||
DtsIoDomainVoltageVal=0
|
||||
flags=0
|
||||
if [ -f $DTS_NAME ];then
|
||||
echo "found $DTS_NAME"
|
||||
fi
|
||||
supply=$(cat $DTS_NAME \
|
||||
| grep $1 \
|
||||
| cut -d "&" -f 2 \
|
||||
| cut -d ">" -f 1)
|
||||
#supply_str=$supply":"
|
||||
|
||||
ldo_str=$(cat $DTS_NAME \
|
||||
| awk 'BEGIN {RS="\n\n+";ORS="\n\n"}/regulator-name/{print $0}' \
|
||||
| awk BEGIN{RS=EOF}'{gsub(/\n/," ");print $0}' \
|
||||
| grep $supply \
|
||||
| awk '{print $2}' \
|
||||
| awk -F 'SWITCH_REG' '{print $2}')
|
||||
|
||||
if [ "$ldo_str" != "" ];then
|
||||
DtsIoDomainVoltageVal=3300000
|
||||
else
|
||||
DtsIoDomainVoltageVal=$(cat $DTS_NAME \
|
||||
| awk 'BEGIN {RS="\n\n+";ORS="\n\n"}/regulator-name/{print $0}' \
|
||||
| awk BEGIN{RS=EOF}'{gsub(/\n/," ");print $0}' \
|
||||
|grep $supply \
|
||||
| awk -F 'regulator-max-microvolt' '{print $2}' \
|
||||
| cut -d "<" -f 2 \
|
||||
| cut -d ">" -f 1)
|
||||
fi
|
||||
}
|
||||
|
||||
GetIoDomainVoltageFromDts()
|
||||
{
|
||||
DtsIoDomainVoltage "pmuio1-supply"
|
||||
DTS_PMUIO1=$DtsIoDomainVoltageVal
|
||||
DtsIoDomainVoltage "pmuio2-supply"
|
||||
DTS_PMUIO2=$DtsIoDomainVoltageVal
|
||||
DtsIoDomainVoltage "vccio1-supply"
|
||||
DTS_VCCIO1=$DtsIoDomainVoltageVal
|
||||
DtsIoDomainVoltage "vccio3-supply"
|
||||
DTS_VCCIO3=$DtsIoDomainVoltageVal
|
||||
DtsIoDomainVoltage "vccio4-supply"
|
||||
DTS_VCCIO4=$DtsIoDomainVoltageVal
|
||||
DtsIoDomainVoltage "vccio5-supply"
|
||||
DTS_VCCIO5=$DtsIoDomainVoltageVal
|
||||
DtsIoDomainVoltage "vccio6-supply"
|
||||
DTS_VCCIO6=$DtsIoDomainVoltageVal
|
||||
DtsIoDomainVoltage "vccio7-supply"
|
||||
DTS_VCCIO7=$DtsIoDomainVoltageVal
|
||||
}
|
||||
|
||||
CheckVoltageWithBackupfile()
|
||||
{
|
||||
CheckBckfileRet=2
|
||||
val=$(cat $DTS_NAME.domain \
|
||||
| grep PMUIO1 \
|
||||
| cut -d ":" -f 2)
|
||||
if [ "$val" != "$DTS_PMUIO1" ];then
|
||||
CheckBckfileRet=1
|
||||
echo "PMUIO1 Supply Power Voltage has changed!!! please reconfirm!!!"
|
||||
fi
|
||||
val=$(cat $DTS_NAME.domain \
|
||||
| grep PMUIO2 \
|
||||
| cut -d ":" -f 2)
|
||||
if [ "$val" != "$DTS_PMUIO2" ];then
|
||||
CheckBckfileRet=1
|
||||
echo "PMUIO2 Supply Power Voltage has changed!!! please reconfirm!!!"
|
||||
fi
|
||||
val=$(cat $DTS_NAME.domain \
|
||||
| grep VCCIO1 \
|
||||
| cut -d ":" -f 2)
|
||||
if [ "$val" != "$DTS_VCCIO1" ];then
|
||||
CheckBckfileRet=1
|
||||
echo "VCCIO1 Supply Power Voltage has changed!!! please reconfirm!!!"
|
||||
fi
|
||||
val=$(cat $DTS_NAME.domain \
|
||||
| grep VCCIO3 \
|
||||
| cut -d ":" -f 2)
|
||||
if [ "$val" != "$DTS_VCCIO3" ];then
|
||||
CheckBckfileRet=1
|
||||
echo "VCCIO3 Supply Power Voltage has changed!!! please reconfirm!!!"
|
||||
fi
|
||||
val=$(cat $DTS_NAME.domain | grep VCCIO4 | cut -d ":" -f 2)
|
||||
if [ "$val" != "$DTS_VCCIO4" ];then
|
||||
ret=1
|
||||
echo "VCCIO4 Supply Power Voltage has changed!!! please reconfirm!!!"
|
||||
fi
|
||||
val=$(cat $DTS_NAME.domain \
|
||||
| grep VCCIO5 \
|
||||
| cut -d ":" -f 2)
|
||||
if [ "$val" != "$DTS_VCCIO5" ];then
|
||||
CheckBckfileRet=1
|
||||
echo "VCCIO5 Supply Power Voltage has changed!!! please reconfirm!!!"
|
||||
fi
|
||||
val=$(cat $DTS_NAME.domain \
|
||||
| grep VCCIO6 \
|
||||
| cut -d ":" -f 2)
|
||||
if [ "$val" != "$DTS_VCCIO6" ];then
|
||||
CheckBckfileRet=1
|
||||
echo "VCCIO6 Supply Power Voltage has changed!!! please reconfirm!!!"
|
||||
fi
|
||||
val=$(cat $DTS_NAME.domain \
|
||||
| grep VCCIO7 \
|
||||
| cut -d ":" -f 2)
|
||||
if [ "$val" != "$DTS_VCCIO7" ];then
|
||||
CheckBckfileRet=1
|
||||
echo "VCCIO7 Supply Power Voltage has changed!!! please reconfirm!!!"
|
||||
fi
|
||||
}
|
||||
|
||||
CheckVoltageWithEnter()
|
||||
{
|
||||
checklistRst=0
|
||||
if [ "$PMUIO1" -ne "$DTS_PMUIO1" ];then
|
||||
checklistRst=1
|
||||
echo "PMUIO1 Supply Power Voltage has changed!!! please reconfirm!!!"
|
||||
fi
|
||||
if [ $PMUIO2 -ne $DTS_PMUIO2 ];then
|
||||
checklistRst=1
|
||||
echo "PMUIO2 Supply Power Voltage has changed!!! please reconfirm!!!"
|
||||
fi
|
||||
if [ $VCCIO1 -ne $DTS_VCCIO1 ];then
|
||||
checklistRst=1
|
||||
echo "VCCIO1 Supply Power Voltage has changed!!! please reconfirm!!!"
|
||||
fi
|
||||
if [ $VCCIO3 -ne $DTS_VCCIO3 ];then
|
||||
checklistRst=1
|
||||
echo "VCCIO3 Supply Power Voltage has changed!!! please reconfirm!!!"
|
||||
fi
|
||||
if [ $VCCIO4 -ne $DTS_VCCIO4 ];then
|
||||
checklistRst=1
|
||||
echo "VCCIO4 Supply Power Voltage has changed!!! please reconfirm!!!"
|
||||
fi
|
||||
if [ $VCCIO5 -ne $DTS_VCCIO5 ];then
|
||||
checklistRst=1
|
||||
echo "VCCIO5 Supply Power Voltage has changed!!! please reconfirm!!!"
|
||||
fi
|
||||
if [ $VCCIO6 -ne $DTS_VCCIO6 ];then
|
||||
checklistRst=1
|
||||
echo "VCCIO6 Supply Power Voltage has changed!!! please reconfirm!!!"
|
||||
fi
|
||||
if [ $VCCIO7 -ne $DTS_VCCIO7 ];then
|
||||
checklistRst=1
|
||||
echo "VCCIO7 Supply Power Voltage has changed!!! please reconfirm!!!"
|
||||
fi
|
||||
}
|
||||
|
||||
IsRK356x=$(cat $DTS_NAME | grep sdhci@fe310000)
|
||||
if [ "$IsRK356x" = "" ];then
|
||||
echo "is not rk356x"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
GetIoDomainVoltageFromDts
|
||||
if [ -f $DTS_NAME.domain ];then
|
||||
CheckVoltageWithBackupfile
|
||||
fi
|
||||
|
||||
if [ "$CheckBckfileRet" != "2" ];then
|
||||
ShowChecklist
|
||||
CheckVoltageWithEnter
|
||||
if [ $checklistRst -eq 0 ]; then
|
||||
if [ -f $DTS_NAME.domain ];then
|
||||
rm -rf $DTS_NAME.domain
|
||||
fi
|
||||
|
||||
echo "PMUIO1 Supply Power Voltage1:$PMUIO1" >> $DTS_NAME.domain
|
||||
echo "PMUIO2 Supply Power Voltage1:$PMUIO2" >> $DTS_NAME.domain
|
||||
echo "VCCIO1 Supply Power Voltage1:$VCCIO1" >> $DTS_NAME.domain
|
||||
echo "VCCIO3 Supply Power Voltage1:$VCCIO3" >> $DTS_NAME.domain
|
||||
echo "VCCIO4 Supply Power Voltage1:$VCCIO4" >> $DTS_NAME.domain
|
||||
echo "VCCIO5 Supply Power Voltage1:$VCCIO5" >> $DTS_NAME.domain
|
||||
echo "VCCIO6 Supply Power Voltage1:$VCCIO6" >> $DTS_NAME.domain
|
||||
echo "VCCIO7 Supply Power Voltage1:$VCCIO7" >> $DTS_NAME.domain
|
||||
echo 0
|
||||
else
|
||||
echo "io-domian default as:
|
||||
&pmu_io_domains {
|
||||
status = "okay";
|
||||
pmuio1-supply = <&vcc3v3_pmu>;
|
||||
pmuio2-supply = <&vcc3v3_pmu>;
|
||||
vccio1-supply = <&vccio_acodec>;
|
||||
vccio3-supply = <&vccio_sd>;
|
||||
vccio4-supply = <&vcc_3v3>;
|
||||
vccio5-supply = <&vcc_3v3>;
|
||||
vccio6-supply = <&vcc_3v3>;
|
||||
vccio7-supply = <&vcc_3v3>;
|
||||
};
|
||||
TODO:
|
||||
Need to be modified according to the actual hardware
|
||||
for example rk3568-evb:
|
||||
&pmu_io_domains {
|
||||
status = "okay";
|
||||
pmuio1-supply = <&vcc3v3_pmu>;
|
||||
pmuio2-supply = <&vcc3v3_pmu>;
|
||||
vccio1-supply = <&vccio_acodec>;
|
||||
vccio3-supply = <&vccio_sd>;
|
||||
vccio4-supply = <&vcc_1v8>;
|
||||
vccio5-supply = <&vcc_3v3>;
|
||||
vccio6-supply = <&vcc_1v8>;
|
||||
vccio7-supply = <&vcc_3v3>;
|
||||
};
|
||||
io-domain docs:
|
||||
RKDocs/common/IO-Domain/Rockchip_RK356X_Introduction_IO_Power_Domains_Configuration.pdf
|
||||
"
|
||||
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
@@ -222,6 +222,11 @@ if [ "${srctree}" != "${objtree}" ]; then
|
||||
fi
|
||||
fi
|
||||
scripts/resource_tool ${DTB_PATH} ${LOGO} ${LOGO_KERNEL} >/dev/null
|
||||
|
||||
if [ "${ARCH}" == "arm64" ]; then
|
||||
./scripts/io-domain.sh ${srctree}/arch/arm64/boot/dts/rockchip/.${DTB}
|
||||
fi
|
||||
|
||||
echo " Image: resource.img (with ${DTB} ${LOGO} ${LOGO_KERNEL}) is ready"
|
||||
|
||||
if [ -f "${BOOT_IMG}" ]; then
|
||||
|
||||
Reference in New Issue
Block a user