mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
add qca feed
This commit is contained in:
parent
d43ffd8720
commit
26ac03f3f6
451 changed files with 111139 additions and 12069 deletions
32
qaa/qca-platform-utils/gpio-debug/Makefile
Normal file
32
qaa/qca-platform-utils/gpio-debug/Makefile
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=gpio-debug
|
||||
PKG_RELEASE:=1
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/gpio-debug
|
||||
TITLE:=QCA Linux GPIO Debug script
|
||||
SECTION:=QCA
|
||||
CATEGORY:=$(QTI_SOFTWARE_CATEGORY)
|
||||
endef
|
||||
|
||||
define Package/gpio-debug/description
|
||||
This package contains a GPIO Debug script which can be used
|
||||
internally by QCA to check the status of GPIO pins easily and
|
||||
quickly without involving manual calculations
|
||||
endef
|
||||
|
||||
Build/Compile=true
|
||||
|
||||
define Package/gpio-debug/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(INSTALL_BIN) ./files/gpio-debug-ipq807x.sh $(1)/usr/sbin
|
||||
$(INSTALL_BIN) ./files/gpio-debug-ipq40xx.sh $(1)/usr/sbin
|
||||
$(INSTALL_BIN) ./files/gpio-debug-ipq806x.sh $(1)/usr/sbin
|
||||
$(INSTALL_BIN) ./files/gpio-debug-ipq6018.sh $(1)/usr/sbin
|
||||
$(INSTALL_BIN) ./files/gpio-debug-ipq5018.sh $(1)/usr/sbin
|
||||
$(INSTALL_BIN) ./files/gpio-dump.sh $(1)/usr/sbin
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,gpio-debug))
|
||||
271
qaa/qca-platform-utils/gpio-debug/files/gpio-debug-ipq40xx.sh
Normal file
271
qaa/qca-platform-utils/gpio-debug/files/gpio-debug-ipq40xx.sh
Normal file
|
|
@ -0,0 +1,271 @@
|
|||
|
||||
: '
|
||||
/*
|
||||
* Copyright (c) 2017 Qualcomm Technologies, Inc.
|
||||
*
|
||||
* All Rights Reserved.
|
||||
* Confidential and Proprietary - Qualcomm Technologies, Inc.
|
||||
*/
|
||||
'
|
||||
|
||||
#!/bin/ash
|
||||
IO_MASK=$(( 0x00000200 ))
|
||||
BIAS_STATUS_MASK=$(( 0x00000003 ))
|
||||
FUNC_SEL_MASK=$(( 0x0000003c ))
|
||||
DRV_STRENGTH_MASK=$(( 0x000001c0 ))
|
||||
PU_RES_MASK=$((0x00006000 ))
|
||||
VM_MASK=$(( 0x00000800 ))
|
||||
OD_EN_MASK=$(( 0x00001000 ))
|
||||
TLMM_GPIO_CFGn_Base_Address=$(( 0x01000000 ))
|
||||
OFFSET_MULTIPLIER=$(( 0x00001000 ))
|
||||
START_PIN=0
|
||||
END_PIN=99
|
||||
FUNCTION_SELECT_MAPPING=$(cat <<-END
|
||||
0, jtag_tdi, smart0, i2s_rx_bclk, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
1, jtag_tck, smart0, i2s_rx_fsync, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
2, jtag_tms, smart0, i2s_rxd, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
3, jtag_tdo, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
4, jtag_rst, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
5, jtag_trst, smart0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
6, mdio0, NA, wcss0_dbg18, wcss1_dbg18, NA, qdss_tracedata_a, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
7, mdc, NA, wcss0_dbg19, wcss1_dbg19, NA, qdss_tracedata_a, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
8, blsp_uart1, wifi0_uart, wifi1_uart, smart1, NA, wcss0_dbg20, wcss1_dbg20, NA, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
9, blsp_uart1, wifi0_uart0, wifi1_uart0, smart1, wifi0_uart, NA, wcss0_dbg21, wcss1_dbg21, NA, qdss_tracedata_a, NA, NA, NA, NA
|
||||
10, blsp_uart1, wifi0_uart0, wifi1_uart0, blsp_i2c0, NA, wcss0_dbg22, wcss1_dbg22, NA, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
11, blsp_uart1, wifi0_uart, wifi1_uart, blsp_i2c0, NA, wcss0_dbg23, wcss1_dbg23, NA, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
12, blsp_spi0, blsp_i2c1, NA, wcss0_dbg24, wcss1_dbg24, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
13, blsp_spi0, blsp_i2c1, NA, wcss0_dbg25, wcss1_dbg25, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
14, blsp_spi0, NA, wcss0_dbg26, wcss1_dbg26, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
15, blsp_spi0, NA, wcss0_dbg, wcss1_dbg, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
16, blsp_uart0, led0, smart1, NA, wcss0_dbg28, wcss1_dbg28, NA, qdss_tracedata_a, NA, NA, NA, NA, NA, NA
|
||||
17, blsp_uart0, led1, smart1, NA, wcss0_dbg29, wcss1_dbg29, NA, qdss_tracedata_a, NA, NA, NA, NA, NA, NA
|
||||
18, wifi0_uart1, wifi1_uart1, NA, wcss0_dbg30, wcss1_dbg30, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
19, wifi0_uart, wifi1_uart, NA, wcss0_dbg31, wcss1_dbg31, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
20, blsp_i2c0, i2s_rx_mclk, NA, wcss0_dbg16, wcss1_dbg16, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
21, blsp_i2c0, i2s_rx_bclk, NA, wcss0_dbg17, wcss1_dbg17, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
22, rgmii0, i2s_rx_fsync, NA, wcss0_dbg18, wcss1_dbg18, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
23, sdio0, rgmii1, i2s_rxd, NA, wcss0_dbg19, wcss1_dbg19, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
24, sdio1, rgmii2, i2s_tx_mclk, NA, wcss0_dbg20, wcss1_dbg20, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
25, sdio2, rgmii3, i2s_tx_bclk, NA, wcss0_dbg21, wcss1_dbg21, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
26, sdio3, rgmii_rx, i2s_tx_fsync, NA, wcss0_dbg22, wcss1_dbg22, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
27, sdio_clk, rgmii_txc, i2s_td1, NA, wcss0_dbg23, wcss1_dbg23, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
28, sdio_cmd, rgmii0, i2s_td2, NA, wcss0_dbg24, wcss1_dbg24, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
29, sdio4, rgmii1, i2s_td3, NA, wcss0_dbg25, wcss1_dbg25, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
30, sdio5, rgmii2, audio_pwm0, NA, wcss0_dbg26, wcss1_dbg26, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
31, sdio6, rgmii3, audio_pwm1, NA, wcss0_dbg27, wcss1_dbg27, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
32, sdio7, rgmii_rxc, audio_pwm2, NA, wcss0_dbg28, wcss1_dbg28, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
33, rgmii_tx, audio_pwm3, NA, wcss0_dbg29, wcss1_dbg29, NA, boot2, NA, NA, NA, NA, NA, NA, NA
|
||||
34, blsp_i2c1, i2s_spdif_in, NA, wcss0_dbg30, wcss1_dbg30, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
35, blsp_i2c1, i2s_spdif_out, NA, wcss0_dbg31, wcss1_dbg31, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
36, rmii00, led2, led0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
37, rmii01, wifi0_wci, wifi1_wci, led1, NA, NA, wcss0_dbg16, wcss1_dbg16, NA, qdss_tracedata_a, boot4, NA, NA, NA
|
||||
38, rmii0_tx, led2, NA, NA, wcss0_dbg17, wcss1_dbg17, NA, qdss_tracedata_a, boot5, NA, NA, NA, NA, NA
|
||||
39, rmii0_rx, pcie_clk1, led3, NA, NA, wcss0_dbg18, wcss1_dbg18, NA, NA, qdss_tracedata_a, NA, NA, NA, NA
|
||||
40, rmii0_refclk, wifi0_rfsilient0, wifi1_rfsilient0, smart2, led4, NA, NA, wcss0_dbg19, wcss1_dbg19, NA, NA, qdss_tracedata_a, NA, NA
|
||||
41, rmii00, wifi0_cal, wifi1_cal, smart2, NA, NA, wcss0_dbg20, wcss1_dbg20, NA, NA, qdss_tracedata_a, NA, NA, NA
|
||||
42, rmii01, wifi_wci0, NA, NA, wcss0_dbg21, wcss1_dbg21, NA, NA, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
43, rmii0_dv, wifi_wci1, NA, NA, wcss0_dbg22, wcss1_dbg22, NA, NA, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
44, rmii1_refclk, blsp_spi1, smart0, led5, NA, NA, wcss0_dbg23, wcss1_dbg23, NA, NA, NA, NA, NA, NA
|
||||
45, rmii10, blsp_spi1, blsp_spi0, smart0, led6, NA, NA, wcss0_dbg24, wcss1_dbg24, NA, NA, NA, NA, NA
|
||||
46, rmii11, blsp_spi1, smart0, led7, NA, NA, wcss0_dbg25, wcss1_dbg25, NA, NA, NA, NA, NA, NA
|
||||
47, rmii1_dv, blsp_spi1, smart0, led8, NA, NA, wcss0_dbg26, wcss1_dbg26, NA, NA, NA, NA, NA, NA
|
||||
48, rmii1_tx, aud_pin, smart2, led9, NA, NA, wcss0_dbg27, wcss1_dbg27, NA, NA, NA, NA, NA, NA
|
||||
49, rmii1_rx, aud_pin, smart2, led10, NA, NA, wcss0_dbg28, wcss1_dbg28, NA, NA, NA, NA, NA, NA
|
||||
50, rmii10, aud_pin, wifi0_rfsilient1, wifi1_rfsilient1, led11, NA, NA, wcss0_dbg29, wcss1_dbg29, NA, NA, NA, NA, NA
|
||||
51, rmii11, aud_pin, wifi0_cal, wifi1_cal, NA, NA, wcss0_dbg30, wcss1_dbg30, NA, boot7, NA, NA, NA, NA
|
||||
52, qpic_pad, mdc, pcie_clk, i2s_tx_mclk, NA, NA, wcss0_dbg31, tm_clk0, wifi00, wifi10, NA, NA, NA, NA
|
||||
53, qpic_pad, mdio1, i2s_tx_bclk, prng_rosc, dbg_out, tm0, wifi01, wifi11, NA, NA, NA, NA, NA, NA
|
||||
54, qpic_pad, blsp_spi0, i2s_td1, atest_char3, pmu0, NA, NA, boot8, tm1, NA, NA, NA, NA, NA
|
||||
55, qpic_pad, blsp_spi0, i2s_td2, atest_char2, pmu1, NA, NA, boot9, tm2, NA, NA, NA, NA, NA
|
||||
56, qpic_pad, blsp_spi0, i2s_td3, atest_char1, NA, tm_ack, wifi03, wifi13, NA, NA, NA, NA, NA, NA
|
||||
57, qpic_pad4, blsp_spi0, i2s_tx_fsync, atest_char0, NA, tm3, wifi02, wifi12, NA, NA, NA, NA, NA, NA
|
||||
58, qpic_pad5, led2, blsp_i2c0, smart3, smart1, i2s_rx_mclk, NA, wcss0_dbg14, tm4, wifi04, wifi14, NA, NA, NA
|
||||
59, qpic_pad6, blsp_i2c0, smart3, smart1, i2s_spdif_in, NA, NA, wcss0_dbg15, qdss_tracectl_a, boot18, tm5, NA, NA, NA
|
||||
60, qpic_pad7, blsp_uart0, smart1, smart3, led0, i2s_tx_bclk, i2s_rx_bclk, atest_char, NA, wcss0_dbg4, qdss_traceclk_a, boot19, tm6, NA
|
||||
61, qpic_pad, blsp_uart0, smart1, smart3, led1, i2s_tx_fsync, i2s_rx_fsync, NA, NA, wcss0_dbg5, qdss_cti_trig_out_a0, boot14, tm7, NA
|
||||
62, qpic_pad, chip_rst, wifi0_uart, wifi1_uart, i2s_spdif_out, NA, NA, wcss0_dbg6, qdss_cti_trig_out_b0, boot11, tm8, NA, NA, NA
|
||||
63, qpic_pad, wifi0_uart1, wifi1_uart1, wifi1_uart, i2s_td1, i2s_rxd, i2s_spdif_out, i2s_spdif_in, NA, wcss0_dbg7, wcss1_dbg7, boot20, tm9, NA
|
||||
64, qpic_pad1, audio_pwm0, NA, wcss0_dbg8, wcss1_dbg8, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
65, qpic_pad2, audio_pwm1, NA, wcss0_dbg9, wcss1_dbg9, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
66, qpic_pad3, audio_pwm2, NA, wcss0_dbg10, wcss1_dbg10, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
67, qpic_pad0, audio_pwm3, NA, wcss0_dbg11, wcss1_dbg11, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
68, qpic_pad8, NA, wcss0_dbg12, wcss1_dbg12, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
69, qpic_pad, NA, wcss0_dbg, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
70, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
71, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
72, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
73, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
74, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
75, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
76, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
77, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
78, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
79, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
80, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
81, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
82, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
83, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
84, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
85, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
86, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
87, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
88, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
89, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
90, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
91, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
92, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
93, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
94, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
95, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
96, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
97, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
98, wifi034, wifi134, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
99, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
END
|
||||
)
|
||||
OD_EN_VALID_ARRAY=$(cat <<-END
|
||||
6, 7, 10, 11, 12, 13, 15, 20, 21, 34, 35, 39, 40, 50, 52, 53, 58, 59
|
||||
END
|
||||
)
|
||||
|
||||
FUNCTION_SEL()
|
||||
{
|
||||
pin=$1
|
||||
pin=$( expr "$pin" + "1" )
|
||||
func_col=$2
|
||||
func_col=$( expr "$func_col" + "1" )
|
||||
FUNCTION_SEL_VALUE=`echo "$FUNCTION_SELECT_MAPPING" | sed -n "$pin"p`
|
||||
func_value=`echo "$FUNCTION_SEL_VALUE" | cut -d, -f$func_col`
|
||||
printf "\t"
|
||||
printf " $2 -$func_value"
|
||||
}
|
||||
|
||||
GPIO_DUMP()
|
||||
{
|
||||
printf $1
|
||||
PIN_OFFSET=$( expr "$OFFSET_MULTIPLIER" \* "$1" )
|
||||
STATUS_REGISTER_ADDRESS=$( expr "$TLMM_GPIO_CFGn_Base_Address" + "$PIN_OFFSET" )
|
||||
printf "\t"
|
||||
printf '0x%08x' $STATUS_REGISTER_ADDRESS
|
||||
STATUS_MUX=$( devmem $STATUS_REGISTER_ADDRESS )
|
||||
printf "\t\t"
|
||||
printf $STATUS_MUX
|
||||
BIAS_STATUS=$(( $STATUS_MUX & $BIAS_STATUS_MASK ))
|
||||
if [ "$BIAS_STATUS" == "0" ]
|
||||
then
|
||||
printf "\tNO PULL "
|
||||
elif [ "$BIAS_STATUS" == "1" ]
|
||||
then
|
||||
printf "\tPULL DOWN "
|
||||
elif [ "$BIAS_STATUS" == "2" ]
|
||||
then
|
||||
printf "\tPULL UP "
|
||||
elif [ "$BIAS_STATUS" == "3" ]
|
||||
then
|
||||
printf "\tUNSUPPORT "
|
||||
else
|
||||
printf "CANNOT BE DETERMINED"
|
||||
fi
|
||||
FUNC_SEL=$(( $STATUS_MUX & $FUNC_SEL_MASK ))
|
||||
FUNC_SEL=$(( $FUNC_SEL >> 2 ))
|
||||
if [ "$FUNC_SEL" == "0" ]
|
||||
then
|
||||
IO_STATUS=$(( $STATUS_MUX & $IO_MASK ))
|
||||
IO_STATUS=$(( $IO_STATUS >> 9 ))
|
||||
if [ "$IO_STATUS" == "0" ]
|
||||
then
|
||||
printf "\tIP"
|
||||
else
|
||||
printf "\tOP"
|
||||
fi
|
||||
else
|
||||
printf "\tNA"
|
||||
fi
|
||||
DRV_STRENGTH=$(( $STATUS_MUX & $DRV_STRENGTH_MASK ))
|
||||
DRV_STRENGTH=$(( $DRV_STRENGTH >> 6 ))
|
||||
if [ $1 -ge 22 -a $1 -le 33 ]
|
||||
then
|
||||
VM=$(( $STATUS_MUX & $VM_MASK ))
|
||||
VM=$(( $VM >> 11 ))
|
||||
if [ "$DRV_STRENGTH" == "7" -a "$VM" == "1" ]
|
||||
then
|
||||
printf " \t Type A(x1.5) "
|
||||
elif [ "$DRV_STRENGTH" == "3" ]
|
||||
then
|
||||
printf " \t Type B(x1,50ohm)"
|
||||
elif [ "$DRV_STRENGTH" == "1" ]
|
||||
then
|
||||
printf " \t Type C(x0.75) "
|
||||
elif [ "$DRV_STRENGTH" == "0" ]
|
||||
then
|
||||
printf " \t Type D(x0.5) "
|
||||
elif [ "$DRV_STRENGTH" == "7" -a "$VM" == "0" ]
|
||||
then
|
||||
printf " \t Optional(x1.25) "
|
||||
fi
|
||||
if [ "$VM" == "0" ]
|
||||
then
|
||||
printf " \t 2.8v/3.3v"
|
||||
else
|
||||
printf "\t\t1.8v"
|
||||
fi
|
||||
PU_RES=$(( $STATUS_MUX & $PU_RES_MASK ))
|
||||
PU_RES=$(( $PU_RES >> 13 ))
|
||||
if [ "$PU_RES" == "0" ]
|
||||
then
|
||||
printf "\t10Kohm"
|
||||
elif [ "$PU_RES" == "1" ]
|
||||
then
|
||||
printf "\t1.5Kohm"
|
||||
elif [ "$PU_RES" == "2" ]
|
||||
then
|
||||
printf "\t35Kohm"
|
||||
else
|
||||
printf "\t20Kohm"
|
||||
fi
|
||||
else
|
||||
if [ "$DRV_STRENGTH" == "0" ]
|
||||
then
|
||||
printf " Highest drive capability "
|
||||
elif [ "$DRV_STRENGTH" == "1" ]
|
||||
then
|
||||
printf " Half of Highest drive capability"
|
||||
else
|
||||
printf " 1/4 of Highest drive capability "
|
||||
fi
|
||||
printf " NA"
|
||||
printf "\t NA "
|
||||
fi
|
||||
OD_EN=$(( $STATUS_MUX & $OD_EN_MASK ))
|
||||
OD_EN=$(( $OD_EN >> 12 ))
|
||||
if echo "$OD_EN_VALID_ARRAY" | grep -q "$1";
|
||||
then
|
||||
printf "\t $OD_EN"
|
||||
else
|
||||
printf "\t NA"
|
||||
fi
|
||||
if [ "$FUNC_SEL" == "0" ]
|
||||
then
|
||||
printf " General purpose"
|
||||
else
|
||||
FUNCTION_SEL "$1" "$FUNC_SEL"
|
||||
fi
|
||||
}
|
||||
|
||||
printf "PIN TLMM_GPIO_CFGn_REG_ADD TLMM_GPIO_CFGn BIAS_STATUS I/P or O/P \t DRV_STRENGTH \t \t VM\tPU_RES\t OD_EN \t FUNC_SEL\n\n"
|
||||
|
||||
if [ $1 == "all" ]
|
||||
then
|
||||
for i in `seq $START_PIN $END_PIN`
|
||||
do
|
||||
GPIO_DUMP "$i"
|
||||
printf "\n"
|
||||
done
|
||||
else
|
||||
for i in "$@"
|
||||
do
|
||||
GPIO_DUMP "$i"
|
||||
printf "\n"
|
||||
done
|
||||
fi
|
||||
|
||||
173
qaa/qca-platform-utils/gpio-debug/files/gpio-debug-ipq5018.sh
Normal file
173
qaa/qca-platform-utils/gpio-debug/files/gpio-debug-ipq5018.sh
Normal file
|
|
@ -0,0 +1,173 @@
|
|||
: '
|
||||
/*
|
||||
* Copyright (c) 2019 Qualcomm Technologies, Inc.
|
||||
*
|
||||
* All Rights Reserved.
|
||||
* Confidential and Proprietary - Qualcomm Technologies, Inc.
|
||||
*/
|
||||
'
|
||||
|
||||
#!/bin/ash
|
||||
IO_MASK=$(( 0x00000200 ))
|
||||
BIAS_STATUS_MASK=$(( 0x00000003 ))
|
||||
FUNC_SEL_MASK=$(( 0x0000003c ))
|
||||
DRV_STRENGTH_MASK=$(( 0x000001c0 ))
|
||||
TLMM_GPIO_CFGn_Base_Address=$(( 0x01000000 ))
|
||||
OFFSET_MULTIPLIER=$(( 0x00001000 ))
|
||||
START_PIN=0
|
||||
END_PIN=69
|
||||
FUNCTION_SELECT_MAPPING=$(cat <<-END
|
||||
0, qpic_pad, blsp5_uart, blsp5_i2c, blsp5_spi, wci20, blsp3_spi3, NA, burn0, NA
|
||||
1, qpic_pad, pcm_zsi0, mac12, blsp3_spi0, NA, burn1, NA, NA, NA
|
||||
2, qpic_pad, blsp5_uart, blsp5_i2c, blsp5_spi, wci20, blsp3_spi3, NA, NA, NA
|
||||
3, qpic_pad, mac01, blsp3_spi0, qdss_cti_trig_out_b0, NA, NA, NA, NA, NA
|
||||
4, qpic_pad, mac01, blsp3_spi0, qdss_cti_trig_in_b0, NA, NA, NA, NA, NA
|
||||
5, qpic_pad4, blsp4_uart0, blsp4_i2c0, blsp4_spi0, mac21, qdss_cti_trig_out_b1, NA, NA, NA
|
||||
6, qpic_pad5, blsp4_uart0, blsp4_i2c0, blsp4_spi0, mac21, qdss_cti_trig_in_b1, NA, NA, NA
|
||||
7, qpic_pad6, blsp4_uart0, blsp4_spi0, NA, NA, NA, NA, NA, NA
|
||||
8, qpic_pad7, blsp4_uart0, blsp4_spi0, NA, NA, NA, NA, NA, NA
|
||||
9, qpic_pad, blsp5_uart, blsp5_spi, cxc0, mac13, blsp3_spi3, qdss_cti_trig_in_a1, NA, NA
|
||||
10, qpic_pad, qdss_cti_trig_out_a1, NA, NA, NA, NA, NA, NA, NA
|
||||
11, qpic_pad, wci22, mac12, qdss_cti_trig_in_a0, NA, NA, NA, NA, NA
|
||||
12, qpic_pad1, qdss_cti_trig_out_a0, NA, NA, NA, NA, NA, NA, NA
|
||||
13, qpic_pad2, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
14, qpic_pad3, qdss_traceclk_b, NA, NA, NA, NA, NA, NA, NA
|
||||
15, qpic_pad0, qdss_tracectl_b, NA, NA, NA, NA, NA, NA, NA
|
||||
16, qpic_pad8, blsp5_uart, pcm_zsi1, blsp5_spi, cxc0, mac13, qdss_tracedata_b, NA, NA
|
||||
17, qpic_pad, wci22, qdss_tracedata_b, NA, NA, NA, NA, NA, NA
|
||||
18, led0, pwm04, qdss_tracedata_b, NA, NA, NA, NA, NA, NA
|
||||
19, led1, pwm14, NA, qdss_tracedata_b, NA, NA, NA, NA, NA
|
||||
20, led2, pwm24, NA, qdss_tracedata_b, NA, NA, NA, NA, NA
|
||||
21, pwm00, blsp4_uart1, blsp4_i2c1, blsp4_spi1, wci23, mac11, blsp3_spi2, NA, qdss_tracedata_b
|
||||
22, pwm10, blsp4_uart1, blsp4_i2c1, blsp4_spi1, wci23, mac11, blsp3_spi2, NA, qdss_tracedata_b
|
||||
23, pwm20, blsp4_uart1, blsp4_spi1, blsp3_spi2, NA, qdss_tracedata_b, NA, NA, NA
|
||||
24, pwm30, blsp4_uart1, blsp4_spi1, NA, qdss_tracedata_b, NA, NA, NA, NA
|
||||
25, audio_txmclk, pwm02, NA, qdss_tracedata_b, NA, NA, NA, NA, NA
|
||||
26, audio_txbclk, pwm12, NA, qdss_tracedata_b, NA, NA, NA, NA, NA
|
||||
27, audio_txfsync, pwm22, NA, qdss_tracedata_b, NA, NA, NA, NA, NA
|
||||
28, audio_txd, pwm32, NA, qdss_tracedata_b, NA, NA, NA, NA, NA
|
||||
29, audio_rxmclk, pwm03, atest_char0, NA, qdss_tracedata_b, NA, NA, NA, NA
|
||||
30, audio_rxbclk, pwm13, atest_char1, NA, qdss_tracedata_b, NA, NA, NA, NA
|
||||
31, audio_rxfsync, pwm23, atest_char2, NA, qdss_tracedata_b, NA, NA, NA, NA
|
||||
32, audio_rxd, pwm33, atest_char3, NA, NA, NA, NA, NA, NA
|
||||
33, pcm_drx, mac10, mac00, NA, NA, NA, NA, NA, NA
|
||||
34, pcm_dtx, mac10, mac00, NA, NA, NA, NA, NA, NA
|
||||
35, pcm_fsync, mac20, qdss_traceclk_a, NA, NA, NA, NA, NA, NA
|
||||
36, pcm_pclk, mac20, NA, qdss_tracectl_a, NA, NA, NA, NA, NA
|
||||
37, atest_char, NA, qdss_tracedata_a, NA, NA, NA, NA, NA, NA
|
||||
38, blsp0_uart, blsp0_i2c, blsp0_spi, NA, qdss_tracedata_a, NA, NA, NA, NA
|
||||
39, blsp0_uart, blsp0_i2c, blsp0_spi, NA, qdss_tracedata_a, NA, NA, NA, NA
|
||||
40, blsp0_uart, blsp0_spi, NA, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
41, blsp0_uart, blsp0_spi, NA, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
42, blsp1_uart, blsp1_i2c, blsp1_spi, NA, qdss_tracedata_a, NA, NA, NA, NA
|
||||
43, blsp1_uart, blsp1_i2c, blsp1_spi, NA, qdss_tracedata_a, NA, NA, NA, NA
|
||||
44, blsp1_uart, blsp1_spi, NA, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
45, blsp1_uart, blsp1_spi, qdss_tracedata_a, NA, NA, NA, NA, NA, NA
|
||||
46, blsp2_uart, blsp2_i2c, blsp2_spi, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
47, blsp2_uart, blsp2_i2c, blsp2_spi, NA, qdss_tracedata_a, NA, NA, NA, NA
|
||||
48, blsp2_uart, blsp2_spi, NA, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
49, blsp2_uart, blsp2_spi, NA, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
50, blsp3_uart, blsp3_i2c, blsp3_spi, NA, qdss_tracedata_a, NA, NA, NA, NA
|
||||
51, blsp3_uart, blsp3_i2c, blsp3_spi, NA, qdss_tracedata_a, NA, NA, NA, NA
|
||||
52, blsp3_uart, blsp3_spi, NA, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
53, blsp3_uart, blsp3_spi, NA, NA, NA, NA, NA, NA, NA
|
||||
54, pta2_0, wci21, cxc1, blsp3_spi1, NA, NA, NA, NA, NA
|
||||
55, pta2_1, blsp3_spi1, NA, NA, NA, NA, NA, NA, NA
|
||||
56, pta2_2, wci21, cxc1, blsp3_spi1, NA, NA, NA, NA, NA
|
||||
57, pcie0_clk, NA, dbg_out, cri_trng0, NA, NA, NA, NA, NA
|
||||
58, pcie0_rst, NA, cri_trng1, NA, NA, NA, NA, NA, NA
|
||||
59, pcie0_wake, NA, cri_trng, NA, NA, NA, NA, NA, NA
|
||||
60, pcie1_clk, rx2, ldo_update, NA, NA, NA, NA, NA, NA
|
||||
61, pcie1_rst, ldo_en, NA, NA, NA, NA, NA, NA, NA
|
||||
62, pcie1_wake, gcc_plltest, NA, NA, NA, NA, NA, NA, NA
|
||||
63, sd_card, pwm01, NA, gcc_plltest, NA, NA, NA, NA, NA
|
||||
64, pta1_1, pwm11, NA, rx1, NA, NA, NA, NA, NA
|
||||
65, pta1_2, NA, gcc_tlmm, NA, NA, NA, NA, NA, NA
|
||||
66, pta1_0, pwm21, prng_rosc, NA, NA, NA, NA, NA, NA
|
||||
67, sd_write, pwm31, rx0, tsens_max, NA, NA, NA, NA, NA
|
||||
68, mdc, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
69, mdio, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
END
|
||||
)
|
||||
|
||||
FUNCTION_SEL()
|
||||
{
|
||||
pin=$1
|
||||
pin=$( expr "$pin" + "1" )
|
||||
func_col=$2
|
||||
func_col=$( expr "$func_col" + "1" )
|
||||
FUNCTION_SEL_VALUE=`echo "$FUNCTION_SELECT_MAPPING" | sed -n "$pin"p`
|
||||
func_value=`echo "$FUNCTION_SEL_VALUE" | cut -d, -f$func_col`
|
||||
printf "\t"
|
||||
printf " $2 -$func_value"
|
||||
}
|
||||
|
||||
GPIO_DUMP()
|
||||
{
|
||||
printf $1
|
||||
PIN_OFFSET=$( expr "$OFFSET_MULTIPLIER" \* "$1" )
|
||||
STATUS_REGISTER_ADDRESS=$( expr "$TLMM_GPIO_CFGn_Base_Address" + "$PIN_OFFSET" )
|
||||
printf "\t\t"
|
||||
printf '0x%08x' $STATUS_REGISTER_ADDRESS
|
||||
STATUS_MUX=$( devmem $STATUS_REGISTER_ADDRESS )
|
||||
printf "\t\t"
|
||||
printf $STATUS_MUX
|
||||
BIAS_STATUS=$(( $STATUS_MUX & $BIAS_STATUS_MASK ))
|
||||
if [ "$BIAS_STATUS" == "0" ]
|
||||
then
|
||||
printf "\t\tNO PULL "
|
||||
elif [ "$BIAS_STATUS" == "1" ]
|
||||
then
|
||||
printf "\t\tPULL DOWN"
|
||||
elif [ "$BIAS_STATUS" == "2" ]
|
||||
then
|
||||
printf "\t\tKEEPER "
|
||||
elif [ "$BIAS_STATUS" == "3" ]
|
||||
then
|
||||
printf "\t\tPULL UP "
|
||||
else
|
||||
printf "\tCANNOT BE DETERMINED"
|
||||
fi
|
||||
FUNC_SEL=$(( $STATUS_MUX & $FUNC_SEL_MASK ))
|
||||
FUNC_SEL=$(( $FUNC_SEL >> 2 ))
|
||||
if [ "$FUNC_SEL" == "0" ]
|
||||
then
|
||||
IO_STATUS=$(( $STATUS_MUX & $IO_MASK ))
|
||||
IO_STATUS=$(( $IO_STATUS >> 9 ))
|
||||
if [ "$IO_STATUS" == "0" ]
|
||||
then
|
||||
printf "\t\tIP"
|
||||
else
|
||||
printf "\t\tOP"
|
||||
fi
|
||||
else
|
||||
printf "\t\tNA"
|
||||
fi
|
||||
DRV_STRENGTH=$(( $STATUS_MUX & $DRV_STRENGTH_MASK ))
|
||||
DRV_STRENGTH=$(( $DRV_STRENGTH >> 6 ))
|
||||
printf "\t\t$( expr "$DRV_STRENGTH" + "$DRV_STRENGTH" + "2" ) MA"
|
||||
if [ "$FUNC_SEL" == "0" ]
|
||||
then
|
||||
printf " General purpose"
|
||||
else
|
||||
FUNCTION_SEL "$1" "$FUNC_SEL"
|
||||
fi
|
||||
}
|
||||
|
||||
printf "PIN\t TLMM_GPIO_CFGn_REG_ADD TLMM_GPIO_CFGn\t BIAS_STATUS\t I/P or O/P\t DRV_STRENGTH\t FUNC_SEL\n\n"
|
||||
|
||||
if [ $1 == "all" ]
|
||||
then
|
||||
for i in `seq $START_PIN $END_PIN`
|
||||
do
|
||||
GPIO_DUMP "$i"
|
||||
printf "\n"
|
||||
done
|
||||
else
|
||||
for i in "$@"
|
||||
do
|
||||
GPIO_DUMP "$i"
|
||||
printf "\n"
|
||||
done
|
||||
fi
|
||||
|
||||
182
qaa/qca-platform-utils/gpio-debug/files/gpio-debug-ipq6018.sh
Normal file
182
qaa/qca-platform-utils/gpio-debug/files/gpio-debug-ipq6018.sh
Normal file
|
|
@ -0,0 +1,182 @@
|
|||
: '
|
||||
/*
|
||||
* Copyright (c) 2019 Qualcomm Technologies, Inc.
|
||||
*
|
||||
* All Rights Reserved.
|
||||
* Confidential and Proprietary - Qualcomm Technologies, Inc.
|
||||
*/
|
||||
'
|
||||
|
||||
#!/bin/ash
|
||||
IO_MASK=$(( 0x00000200 ))
|
||||
BIAS_STATUS_MASK=$(( 0x00000003 ))
|
||||
FUNC_SEL_MASK=$(( 0x0000003c ))
|
||||
DRV_STRENGTH_MASK=$(( 0x000001c0 ))
|
||||
TLMM_GPIO_CFGn_Base_Address=$(( 0x01000000 ))
|
||||
OFFSET_MULTIPLIER=$(( 0x00001000 ))
|
||||
START_PIN=0
|
||||
END_PIN=79
|
||||
FUNCTION_SELECT_MAPPING=$(cat <<-END
|
||||
0, qpic_pad, wci20, qdss_traceclk_b, NA, burn0, NA, NA, NA, NA
|
||||
1, qpic_pad, mac12, qdss_tracectl_b, NA, burn1, NA, NA, NA, NA
|
||||
2, qpic_pad, wci20, qdss_tracedata_b, NA, NA, NA, NA, NA, NA
|
||||
3, qpic_pad, mac01, qdss_tracedata_b, NA, NA, NA, NA, NA, NA
|
||||
4, qpic_pad, mac01, qdss_tracedata_b, NA, NA, NA, NA, NA, NA
|
||||
5, qpic_pad4, mac21, qdss_tracedata_b, NA, NA, NA, NA, NA, NA
|
||||
6, qpic_pad5, mac21, qdss_tracedata_b, NA, NA, NA, NA, NA, NA
|
||||
7, qpic_pad6, qdss_tracedata_b, NA, NA, NA, NA, NA, NA, NA
|
||||
8, qpic_pad7, qdss_tracedata_b, NA, NA, NA, NA, NA, NA, NA
|
||||
9, qpic_pad, atest_char, cxc0, mac13, dbg_out, qdss_tracedata_b, NA, NA, NA
|
||||
10, qpic_pad, qdss_tracedata_b, NA, NA, NA, NA, NA, NA, NA
|
||||
11, qpic_pad, wci22, mac12, qdss_tracedata_b, NA, NA, NA, NA, NA
|
||||
12, qpic_pad1, qdss_tracedata_b, NA, NA, NA, NA, NA, NA, NA
|
||||
13, qpic_pad2, qdss_tracedata_b, NA, NA, NA, NA, NA, NA, NA
|
||||
14, qpic_pad3, qdss_tracedata_b, NA, NA, NA, NA, NA, NA, NA
|
||||
15, qpic_pad0, qdss_tracedata_b, NA, NA, NA, NA, NA, NA, NA
|
||||
16, qpic_pad8, cxc0, mac13, qdss_tracedata_b, NA, NA, NA, NA, NA
|
||||
17, qpic_pad, qdss_tracedata_b, wci22, NA, NA, NA, NA, NA, NA
|
||||
18, pwm00, atest_char0, wci23, mac11, NA, NA, NA, NA, NA
|
||||
19, pwm10, atest_char1, wci23, mac11, NA, NA, NA, NA, NA
|
||||
20, pwm20, atest_char2, NA, NA, NA, NA, NA, NA, NA
|
||||
21, pwm30, atest_char3, NA, NA, NA, NA, NA, NA, NA
|
||||
22, audio_txmclk, audio_txmclkin, pwm02, tx_swrm0, NA, qdss_cti_trig_out_b0, NA, NA, NA
|
||||
23, audio_txbclk, pwm12, wsa_swrm, tx_swrm1, NA, qdss_cti_trig_in_b0, NA, NA, NA
|
||||
24, audio_txfsync, pwm22, wsa_swrm, tx_swrm2, NA, qdss_cti_trig_out_b1, NA, NA, NA
|
||||
25, audio0, pwm32, tx_swrm, NA, qdss_cti_trig_in_b1, NA, NA, NA, NA
|
||||
26, audio1, pwm04, NA, NA, NA, NA, NA, NA, NA
|
||||
27, audio2, pwm14, NA, NA, NA, NA, NA, NA, NA
|
||||
28, audio3, pwm24, NA, NA, NA, NA, NA, NA, NA
|
||||
29, audio_rxmclk, audio_rxmclkin, pwm03, lpass_pdm, lpass_aud, qdss_cti_trig_in_a1, NA, NA, NA
|
||||
30, audio_rxbclk, pwm13, lpass_pdm, lpass_aud0, rx_swrm, NA, qdss_cti_trig_out_a1, NA, NA
|
||||
31, audio_rxfsync, pwm23, lpass_pdm, lpass_aud1, rx_swrm0, NA, qdss_cti_trig_in_a0, NA, NA
|
||||
32, audio0, pwm33, lpass_pdm, lpass_aud2, rx_swrm1, NA, qdss_cti_trig_out_a0, NA, NA
|
||||
33, audio1, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
34, lpass_pcm, mac10, mac00, NA, NA, NA, NA, NA, NA
|
||||
35, lpass_pcm, mac10, mac00, NA, NA, NA, NA, NA, NA
|
||||
36, lpass_pcm, mac20, NA, NA, NA, NA, NA, NA, NA
|
||||
37, lpass_pcm, mac20, NA, NA, NA, NA, NA, NA, NA
|
||||
38, blsp0_uart, blsp0_i2c, blsp0_spi, NA, NA, NA, NA, NA, NA
|
||||
39, blsp0_uart, blsp0_i2c, blsp0_spi, NA, NA, NA, NA, NA, NA
|
||||
40, blsp0_uart, blsp0_spi, NA, NA, NA, NA, NA, NA, NA
|
||||
41, blsp0_uart, blsp0_spi, NA, NA, NA, NA, NA, NA, NA
|
||||
42, blsp2_uart, blsp2_i2c, blsp2_spi, NA, NA, NA, NA, NA, NA
|
||||
43, blsp2_uart, blsp2_i2c, blsp2_spi, NA, NA, NA, NA, NA, NA
|
||||
44, blsp2_uart, blsp2_spi, NA, NA, NA, NA, NA, NA, NA
|
||||
45, blsp2_uart, blsp2_spi, NA, NA, NA, NA, NA, NA, NA
|
||||
46, blsp5_i2c, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
47, blsp5_i2c, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
48, blsp5_uart, NA, qdss_traceclk_a, NA, NA, NA, NA, NA, NA
|
||||
49, blsp5_uart, NA, qdss_tracectl_a, NA, NA, NA, NA, NA, NA
|
||||
50, pwm01, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
51, pta1_1, pwm11, NA, rx1, NA, NA, NA, NA, NA
|
||||
52, pta1_2, pwm21, NA, NA, NA, NA, NA, NA, NA
|
||||
53, pta1_0, pwm31, prng_rosc, NA, NA, NA, NA, NA, NA
|
||||
54, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
55, blsp4_uart, blsp4_i2c, blsp4_spi, NA, NA, NA, NA, NA, NA
|
||||
56, blsp4_uart, blsp4_i2c, blsp4_spi, NA, NA, NA, NA, NA, NA
|
||||
57, blsp4_uart, blsp4_spi, NA, NA, NA, NA, NA, NA, NA
|
||||
58, blsp4_uart, blsp4_spi, NA, NA, NA, NA, NA, NA, NA
|
||||
59, pcie0_clk, NA, NA, cri_trng0, NA, NA, NA, NA, NA
|
||||
60, pcie0_rst, NA, NA, cri_trng1, NA, NA, NA, NA, NA
|
||||
61, pcie0_wake, NA, NA, cri_trng, NA, NA, NA, NA, NA
|
||||
62, sd_card, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
63, sd_write, rx0, NA, tsens_max, NA, NA, NA, NA, NA
|
||||
64, mdc, NA, qdss_tracedata_a, NA, NA, NA, NA, NA, NA
|
||||
65, mdio, NA, qdss_tracedata_a, NA, NA, NA, NA, NA, NA
|
||||
66, pta2_0, wci21, cxc1, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
67, pta2_1, qdss_tracedata_a, NA, NA, NA, NA, NA, NA, NA
|
||||
68, pta2_2, wci21, cxc1, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
69, blsp1_uart, blsp1_i2c, blsp1_spi, gcc_plltest, qdss_tracedata_a, NA, NA, NA, NA
|
||||
70, blsp1_uart, blsp1_i2c, blsp1_spi, gcc_tlmm, qdss_tracedata_a, NA, NA, NA, NA
|
||||
71, blsp1_uart, blsp1_spi, gcc_plltest, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
72, blsp1_uart, blsp1_spi, qdss_tracedata_a, NA, NA, NA, NA, NA, NA
|
||||
73, blsp3_uart, blsp3_i2c, blsp3_spi, NA, qdss_tracedata_a, NA, NA, NA, NA
|
||||
74, blsp3_uart, blsp3_i2c, blsp3_spi, NA, qdss_tracedata_a, NA, NA, NA, NA
|
||||
75, blsp3_uart, blsp3_spi, NA, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
76, blsp3_uart, blsp3_spi, NA, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
77, blsp3_spi, NA, qdss_tracedata_a, NA, NA, NA, NA, NA, NA
|
||||
78, blsp3_spi, NA, qdss_tracedata_a, NA, NA, NA, NA, NA, NA
|
||||
79, blsp3_spi, NA, qdss_tracedata_a, NA, NA, NA, NA, NA, NA
|
||||
END
|
||||
)
|
||||
|
||||
FUNCTION_SEL()
|
||||
{
|
||||
pin=$1
|
||||
pin=$( expr "$pin" + "1" )
|
||||
func_col=$2
|
||||
func_col=$( expr "$func_col" + "1" )
|
||||
FUNCTION_SEL_VALUE=`echo "$FUNCTION_SELECT_MAPPING" | sed -n "$pin"p`
|
||||
func_value=`echo "$FUNCTION_SEL_VALUE" | cut -d, -f$func_col`
|
||||
printf "\t"
|
||||
printf " $2 -$func_value"
|
||||
}
|
||||
|
||||
GPIO_DUMP()
|
||||
{
|
||||
printf $1
|
||||
PIN_OFFSET=$( expr "$OFFSET_MULTIPLIER" \* "$1" )
|
||||
STATUS_REGISTER_ADDRESS=$( expr "$TLMM_GPIO_CFGn_Base_Address" + "$PIN_OFFSET" )
|
||||
printf "\t\t"
|
||||
printf '0x%08x' $STATUS_REGISTER_ADDRESS
|
||||
STATUS_MUX=$( devmem $STATUS_REGISTER_ADDRESS )
|
||||
printf "\t\t"
|
||||
printf $STATUS_MUX
|
||||
BIAS_STATUS=$(( $STATUS_MUX & $BIAS_STATUS_MASK ))
|
||||
if [ "$BIAS_STATUS" == "0" ]
|
||||
then
|
||||
printf "\t\tNO PULL "
|
||||
elif [ "$BIAS_STATUS" == "1" ]
|
||||
then
|
||||
printf "\t\tPULL DOWN"
|
||||
elif [ "$BIAS_STATUS" == "2" ]
|
||||
then
|
||||
printf "\t\tKEEPER "
|
||||
elif [ "$BIAS_STATUS" == "3" ]
|
||||
then
|
||||
printf "\t\tPULL UP "
|
||||
else
|
||||
printf "\tCANNOT BE DETERMINED"
|
||||
fi
|
||||
FUNC_SEL=$(( $STATUS_MUX & $FUNC_SEL_MASK ))
|
||||
FUNC_SEL=$(( $FUNC_SEL >> 2 ))
|
||||
if [ "$FUNC_SEL" == "0" ]
|
||||
then
|
||||
IO_STATUS=$(( $STATUS_MUX & $IO_MASK ))
|
||||
IO_STATUS=$(( $IO_STATUS >> 9 ))
|
||||
if [ "$IO_STATUS" == "0" ]
|
||||
then
|
||||
printf "\t\tIP"
|
||||
else
|
||||
printf "\t\tOP"
|
||||
fi
|
||||
else
|
||||
printf "\t\tNA"
|
||||
fi
|
||||
DRV_STRENGTH=$(( $STATUS_MUX & $DRV_STRENGTH_MASK ))
|
||||
DRV_STRENGTH=$(( $DRV_STRENGTH >> 6 ))
|
||||
printf "\t\t$( expr "$DRV_STRENGTH" + "$DRV_STRENGTH" + "2" ) MA"
|
||||
if [ "$FUNC_SEL" == "0" ]
|
||||
then
|
||||
printf " General purpose"
|
||||
else
|
||||
FUNCTION_SEL "$1" "$FUNC_SEL"
|
||||
fi
|
||||
}
|
||||
|
||||
printf "PIN\t TLMM_GPIO_CFGn_REG_ADD TLMM_GPIO_CFGn\t BIAS_STATUS\t I/P or O/P\t DRV_STRENGTH\t FUNC_SEL\n\n"
|
||||
|
||||
if [ $1 == "all" ]
|
||||
then
|
||||
for i in `seq $START_PIN $END_PIN`
|
||||
do
|
||||
GPIO_DUMP "$i"
|
||||
printf "\n"
|
||||
done
|
||||
else
|
||||
for i in "$@"
|
||||
do
|
||||
GPIO_DUMP "$i"
|
||||
printf "\n"
|
||||
done
|
||||
fi
|
||||
171
qaa/qca-platform-utils/gpio-debug/files/gpio-debug-ipq806x.sh
Normal file
171
qaa/qca-platform-utils/gpio-debug/files/gpio-debug-ipq806x.sh
Normal file
|
|
@ -0,0 +1,171 @@
|
|||
: '
|
||||
/*
|
||||
* Copyright (c) 2017 Qualcomm Technologies, Inc.
|
||||
*
|
||||
* All Rights Reserved.
|
||||
* Confidential and Proprietary - Qualcomm Technologies, Inc.
|
||||
*/
|
||||
'
|
||||
|
||||
#!/bin/ash
|
||||
IO_MASK=$(( 0x00000200 ))
|
||||
BIAS_STATUS_MASK=$(( 0x00000003 ))
|
||||
FUNC_SEL_MASK=$(( 0x0000003c ))
|
||||
DRV_STRENGTH_MASK=$(( 0x000001c0 ))
|
||||
TLMM_GPIO_CFGn_Base_Address=$(( 0x00801000 ))
|
||||
OFFSET_MULTIPLIER=$(( 0x10 ))
|
||||
START_PIN=0
|
||||
END_PIN=68
|
||||
FUNCTION_SELECT_MAPPING=$(cat <<-END
|
||||
0, mdio, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
1, mdio, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
2, gsbi5_spi_cs3, rgmii2, mdio, NA, NA, NA, NA, NA, NA, NA
|
||||
3, pcie1_rst, pcie1_prsnt, pdm, NA, NA, NA, NA, NA, NA, NA
|
||||
4, pcie1_pwren_n, pcie1_pwren, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
5, pcie1_clk_req, pcie1_pwrflt, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
6, gsbi7, usb_fs, gsbi5_spi_cs1, usb_fs_n, NA, NA, NA, NA, NA, NA
|
||||
7, gsbi7, usb_fs, gsbi5_spi_cs2, NA, NA, NA, NA, NA, NA, NA
|
||||
8, gsbi7, usb_fs, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
9, gsbi7, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
10, gsbi4, spdif, sata, ssbi, mdio, spmi, NA, NA, NA, NA
|
||||
11, gsbi4, pcie2_prsnt, pcie1_prsnt, pcie3_prsnt, ssbi, mdio, spmi, NA, NA, NA
|
||||
12, gsbi4, pcie2_pwren_n, pcie1_pwren_n, pcie3_pwren_n, pcie2_pwren, pcie1_pwren, pcie3_pwren, NA, NA, NA
|
||||
13, gsbi4, pcie2_pwrflt, pcie1_pwrflt, pcie3_pwrflt, NA, NA, NA, NA, NA, NA
|
||||
14, audio_pcm, nss_spi, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
15, audio_pcm, nss_spi, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
16, audio_pcm, nss_spi, pdm, NA, NA, NA, NA, NA, NA, NA
|
||||
17, audio_pcm, nss_spi, pdm, NA, NA, NA, NA, NA, NA, NA
|
||||
18, gsbi5, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
19, gsbi5, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
20, gsbi5, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
21, gsbi5, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
22, gsbi2, pdm, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
23, gsbi2, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
24, gsbi2, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
25, gsbi2, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
26, ps_hold, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
27, mi2s, rgmii2, gsbi6, NA, NA, NA, NA, NA, NA, NA
|
||||
28, mi2s, rgmii2, gsbi6, NA, NA, NA, NA, NA, NA, NA
|
||||
29, mi2s, rgmii2, gsbi6, NA, NA, NA, NA, NA, NA, NA
|
||||
30, mi2s, rgmii2, gsbi6, pdm, NA, NA, NA, NA, NA, NA
|
||||
31, mi2s, rgmii2, pdm, NA, NA, NA, NA, NA, NA, NA
|
||||
32, mi2s, rgmii2, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
33, mi2s, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
34, nand, pdm, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
35, nand, pdm, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
36, nand, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
37, nand, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
38, nand, sdc1, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
39, nand, sdc1, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
40, nand, sdc1, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
41, nand, sdc1, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
42, nand, sdc1, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
43, nand, sdc1, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
44, nand, sdc1, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
45, nand, sdc1, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
46, nand, sdc1, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
47, nand, sdc1, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
48, pcie2_rst, spdif, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
49, pcie2_pwren_n, pcie2_pwren, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
50, pcie2_clk_req, pcie2_pwrflt, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
51, gsbi1, rgmii2, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
52, gsbi1, rgmii2, pdm, NA, NA, NA, NA, NA, NA, NA
|
||||
53, gsbi1, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
54, gsbi1, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
55, tsif1, mi2s, gsbi6, pdm, nss_spi, NA, NA, NA, NA, NA
|
||||
56, tsif1, mi2s, gsbi6, pdm, nss_spi, NA, NA, NA, NA, NA
|
||||
57, tsif1, mi2s, gsbi6, nss_spi, NA, NA, NA, NA, NA, NA
|
||||
58, tsif1, mi2s, gsbi6, pdm, nss_spi, NA, NA, NA, NA, NA
|
||||
59, tsif2, rgmii2, pdm, NA, NA, NA, NA, NA, NA, NA
|
||||
60, tsif2, rgmii2, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
61, tsif2, rgmii2, gsbi5_spi_cs1, NA, NA, NA, NA, NA, NA, NA
|
||||
62, tsif2, rgmii2, gsbi5_spi_cs2, NA, NA, NA, NA, NA, NA, NA
|
||||
63, pcie3_rst, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
64, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
65, pcie3_clk_req, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
66, rgmii2, mdio, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
67, usb2_hsic, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
68, usb2_hsic, NA, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
END
|
||||
)
|
||||
|
||||
FUNCTION_SEL()
|
||||
{
|
||||
pin=$1
|
||||
pin=$( expr "$pin" + "1" )
|
||||
func_col=$2
|
||||
func_col=$( expr "$func_col" + "1" )
|
||||
FUNCTION_SEL_VALUE=`echo "$FUNCTION_SELECT_MAPPING" | sed -n "$pin"p`
|
||||
func_value=`echo "$FUNCTION_SEL_VALUE" | cut -d, -f$func_col`
|
||||
printf "\t"
|
||||
printf " $2 -$func_value"
|
||||
}
|
||||
|
||||
GPIO_DUMP()
|
||||
{
|
||||
printf $1
|
||||
PIN_OFFSET=$( expr "$OFFSET_MULTIPLIER" \* "$1" )
|
||||
STATUS_REGISTER_ADDRESS=$( expr "$TLMM_GPIO_CFGn_Base_Address" + "$PIN_OFFSET" )
|
||||
printf "\t\t"
|
||||
printf '0x%08x' $STATUS_REGISTER_ADDRESS
|
||||
STATUS_MUX=$( devmem $STATUS_REGISTER_ADDRESS )
|
||||
printf "\t\t"
|
||||
printf $STATUS_MUX
|
||||
BIAS_STATUS=$(( $STATUS_MUX & $BIAS_STATUS_MASK ))
|
||||
if [ "$BIAS_STATUS" == "0" ]
|
||||
then
|
||||
printf "\t\tNO PULL "
|
||||
elif [ "$BIAS_STATUS" == "1" ]
|
||||
then
|
||||
printf "\t\tPULL DOWN"
|
||||
elif [ "$BIAS_STATUS" == "2" ]
|
||||
then
|
||||
printf "\t\tKEEPER "
|
||||
elif [ "$BIAS_STATUS" == "3" ]
|
||||
then
|
||||
printf "\t\tPULL UP "
|
||||
else
|
||||
printf "\tCANNOT BE DETERMINED"
|
||||
fi
|
||||
FUNC_SEL=$(( $STATUS_MUX & $FUNC_SEL_MASK ))
|
||||
FUNC_SEL=$(( $FUNC_SEL >> 2 ))
|
||||
if [ "$FUNC_SEL" == "0" ]
|
||||
then
|
||||
IO_STATUS=$(( $STATUS_MUX & $IO_MASK ))
|
||||
IO_STATUS=$(( $IO_STATUS >> 9 ))
|
||||
if [ "$IO_STATUS" == "0" ]
|
||||
then
|
||||
printf "\t\tIP"
|
||||
else
|
||||
printf "\t\tOP"
|
||||
fi
|
||||
else
|
||||
printf "\t\tNA"
|
||||
fi
|
||||
DRV_STRENGTH=$(( $STATUS_MUX & $DRV_STRENGTH_MASK ))
|
||||
DRV_STRENGTH=$(( $DRV_STRENGTH >> 6 ))
|
||||
printf "\t\t$( expr "$DRV_STRENGTH" + "$DRV_STRENGTH" + "2" ) MA"
|
||||
if [ "$FUNC_SEL" == "0" ]
|
||||
then
|
||||
printf " General purpose"
|
||||
else
|
||||
FUNCTION_SEL "$1" "$FUNC_SEL"
|
||||
}
|
||||
|
||||
printf "PIN\t TLMM_GPIO_CFGn_REG_ADD TLMM_GPIO_CFGn\t BIAS_STATUS\t I/P or O/P\t DRV_STRENGTH\t FUNC_SEL\n\n"
|
||||
|
||||
if [ $1 == "all" ]
|
||||
then
|
||||
for i in `seq $START_PIN $END_PIN`
|
||||
do
|
||||
GPIO_DUMP "$i"
|
||||
printf "\n"
|
||||
done
|
||||
else
|
||||
for i in "$@"
|
||||
do
|
||||
GPIO_DUMP "$i"
|
||||
printf "\n"
|
||||
done
|
||||
fi
|
||||
|
||||
173
qaa/qca-platform-utils/gpio-debug/files/gpio-debug-ipq807x.sh
Normal file
173
qaa/qca-platform-utils/gpio-debug/files/gpio-debug-ipq807x.sh
Normal file
|
|
@ -0,0 +1,173 @@
|
|||
: '
|
||||
/*
|
||||
* Copyright (c) 2017 Qualcomm Technologies, Inc.
|
||||
*
|
||||
* All Rights Reserved.
|
||||
* Confidential and Proprietary - Qualcomm Technologies, Inc.
|
||||
*/
|
||||
'
|
||||
|
||||
#!/bin/ash
|
||||
IO_MASK=$(( 0x00000200 ))
|
||||
BIAS_STATUS_MASK=$(( 0x00000003 ))
|
||||
FUNC_SEL_MASK=$(( 0x0000003c ))
|
||||
DRV_STRENGTH_MASK=$(( 0x000001c0 ))
|
||||
TLMM_GPIO_CFGn_Base_Address=$(( 0x01000000 ))
|
||||
OFFSET_MULTIPLIER=$(( 0x00001000 ))
|
||||
START_PIN=0
|
||||
END_PIN=69
|
||||
FUNCTION_SELECT_MAPPING=$(cat <<-END
|
||||
0, qpic_pad, blsp5_uart, blsp5_i2c, blsp5_spi, wci20, blsp3_spi3, NA, burn0, NA
|
||||
1, qpic_pad, pcm_zsi0, mac12, blsp3_spi0, NA, burn1, NA, NA, NA
|
||||
2, qpic_pad, blsp5_uart, blsp5_i2c, blsp5_spi, wci20, blsp3_spi3, NA, NA, NA
|
||||
3, qpic_pad, mac01, blsp3_spi0, qdss_cti_trig_out_b0, NA, NA, NA, NA, NA
|
||||
4, qpic_pad, mac01, blsp3_spi0, qdss_cti_trig_in_b0, NA, NA, NA, NA, NA
|
||||
5, qpic_pad4, blsp4_uart0, blsp4_i2c0, blsp4_spi0, mac21, qdss_cti_trig_out_b1, NA, NA, NA
|
||||
6, qpic_pad5, blsp4_uart0, blsp4_i2c0, blsp4_spi0, mac21, qdss_cti_trig_in_b1, NA, NA, NA
|
||||
7, qpic_pad6, blsp4_uart0, blsp4_spi0, NA, NA, NA, NA, NA, NA
|
||||
8, qpic_pad7, blsp4_uart0, blsp4_spi0, NA, NA, NA, NA, NA, NA
|
||||
9, qpic_pad, blsp5_uart, blsp5_spi, cxc0, mac13, blsp3_spi3, qdss_cti_trig_in_a1, NA, NA
|
||||
10, qpic_pad, qdss_cti_trig_out_a1, NA, NA, NA, NA, NA, NA, NA
|
||||
11, qpic_pad, wci22, mac12, qdss_cti_trig_in_a0, NA, NA, NA, NA, NA
|
||||
12, qpic_pad1, qdss_cti_trig_out_a0, NA, NA, NA, NA, NA, NA, NA
|
||||
13, qpic_pad2, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
14, qpic_pad3, qdss_traceclk_b, NA, NA, NA, NA, NA, NA, NA
|
||||
15, qpic_pad0, qdss_tracectl_b, NA, NA, NA, NA, NA, NA, NA
|
||||
16, qpic_pad8, blsp5_uart, pcm_zsi1, blsp5_spi, cxc0, mac13, qdss_tracedata_b, NA, NA
|
||||
17, qpic_pad, wci22, qdss_tracedata_b, NA, NA, NA, NA, NA, NA
|
||||
18, led0, pwm04, qdss_tracedata_b, NA, NA, NA, NA, NA, NA
|
||||
19, led1, pwm14, NA, qdss_tracedata_b, NA, NA, NA, NA, NA
|
||||
20, led2, pwm24, NA, qdss_tracedata_b, NA, NA, NA, NA, NA
|
||||
21, pwm00, blsp4_uart1, blsp4_i2c1, blsp4_spi1, wci23, mac11, blsp3_spi2, NA, qdss_tracedata_b
|
||||
22, pwm10, blsp4_uart1, blsp4_i2c1, blsp4_spi1, wci23, mac11, blsp3_spi2, NA, qdss_tracedata_b
|
||||
23, pwm20, blsp4_uart1, blsp4_spi1, blsp3_spi2, NA, qdss_tracedata_b, NA, NA, NA
|
||||
24, pwm30, blsp4_uart1, blsp4_spi1, NA, qdss_tracedata_b, NA, NA, NA, NA
|
||||
25, audio_txmclk, pwm02, NA, qdss_tracedata_b, NA, NA, NA, NA, NA
|
||||
26, audio_txbclk, pwm12, NA, qdss_tracedata_b, NA, NA, NA, NA, NA
|
||||
27, audio_txfsync, pwm22, NA, qdss_tracedata_b, NA, NA, NA, NA, NA
|
||||
28, audio_txd, pwm32, NA, qdss_tracedata_b, NA, NA, NA, NA, NA
|
||||
29, audio_rxmclk, pwm03, atest_char0, NA, qdss_tracedata_b, NA, NA, NA, NA
|
||||
30, audio_rxbclk, pwm13, atest_char1, NA, qdss_tracedata_b, NA, NA, NA, NA
|
||||
31, audio_rxfsync, pwm23, atest_char2, NA, qdss_tracedata_b, NA, NA, NA, NA
|
||||
32, audio_rxd, pwm33, atest_char3, NA, NA, NA, NA, NA, NA
|
||||
33, pcm_drx, mac10, mac00, NA, NA, NA, NA, NA, NA
|
||||
34, pcm_dtx, mac10, mac00, NA, NA, NA, NA, NA, NA
|
||||
35, pcm_fsync, mac20, qdss_traceclk_a, NA, NA, NA, NA, NA, NA
|
||||
36, pcm_pclk, mac20, NA, qdss_tracectl_a, NA, NA, NA, NA, NA
|
||||
37, atest_char, NA, qdss_tracedata_a, NA, NA, NA, NA, NA, NA
|
||||
38, blsp0_uart, blsp0_i2c, blsp0_spi, NA, qdss_tracedata_a, NA, NA, NA, NA
|
||||
39, blsp0_uart, blsp0_i2c, blsp0_spi, NA, qdss_tracedata_a, NA, NA, NA, NA
|
||||
40, blsp0_uart, blsp0_spi, NA, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
41, blsp0_uart, blsp0_spi, NA, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
42, blsp1_uart, blsp1_i2c, blsp1_spi, NA, qdss_tracedata_a, NA, NA, NA, NA
|
||||
43, blsp1_uart, blsp1_i2c, blsp1_spi, NA, qdss_tracedata_a, NA, NA, NA, NA
|
||||
44, blsp1_uart, blsp1_spi, NA, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
45, blsp1_uart, blsp1_spi, qdss_tracedata_a, NA, NA, NA, NA, NA, NA
|
||||
46, blsp2_uart, blsp2_i2c, blsp2_spi, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
47, blsp2_uart, blsp2_i2c, blsp2_spi, NA, qdss_tracedata_a, NA, NA, NA, NA
|
||||
48, blsp2_uart, blsp2_spi, NA, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
49, blsp2_uart, blsp2_spi, NA, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
50, blsp3_uart, blsp3_i2c, blsp3_spi, NA, qdss_tracedata_a, NA, NA, NA, NA
|
||||
51, blsp3_uart, blsp3_i2c, blsp3_spi, NA, qdss_tracedata_a, NA, NA, NA, NA
|
||||
52, blsp3_uart, blsp3_spi, NA, qdss_tracedata_a, NA, NA, NA, NA, NA
|
||||
53, blsp3_uart, blsp3_spi, NA, NA, NA, NA, NA, NA, NA
|
||||
54, pta2_0, wci21, cxc1, blsp3_spi1, NA, NA, NA, NA, NA
|
||||
55, pta2_1, blsp3_spi1, NA, NA, NA, NA, NA, NA, NA
|
||||
56, pta2_2, wci21, cxc1, blsp3_spi1, NA, NA, NA, NA, NA
|
||||
57, pcie0_clk, NA, dbg_out, cri_trng0, NA, NA, NA, NA, NA
|
||||
58, pcie0_rst, NA, cri_trng1, NA, NA, NA, NA, NA, NA
|
||||
59, pcie0_wake, NA, cri_trng, NA, NA, NA, NA, NA, NA
|
||||
60, pcie1_clk, rx2, ldo_update, NA, NA, NA, NA, NA, NA
|
||||
61, pcie1_rst, ldo_en, NA, NA, NA, NA, NA, NA, NA
|
||||
62, pcie1_wake, gcc_plltest, NA, NA, NA, NA, NA, NA, NA
|
||||
63, sd_card, pwm01, NA, gcc_plltest, NA, NA, NA, NA, NA
|
||||
64, pta1_1, pwm11, NA, rx1, NA, NA, NA, NA, NA
|
||||
65, pta1_2, NA, gcc_tlmm, NA, NA, NA, NA, NA, NA
|
||||
66, pta1_0, pwm21, prng_rosc, NA, NA, NA, NA, NA, NA
|
||||
67, sd_write, pwm31, rx0, tsens_max, NA, NA, NA, NA, NA
|
||||
68, mdc, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
69, mdio, NA, NA, NA, NA, NA, NA, NA, NA
|
||||
END
|
||||
)
|
||||
|
||||
FUNCTION_SEL()
|
||||
{
|
||||
pin=$1
|
||||
pin=$( expr "$pin" + "1" )
|
||||
func_col=$2
|
||||
func_col=$( expr "$func_col" + "1" )
|
||||
FUNCTION_SEL_VALUE=`echo "$FUNCTION_SELECT_MAPPING" | sed -n "$pin"p`
|
||||
func_value=`echo "$FUNCTION_SEL_VALUE" | cut -d, -f$func_col`
|
||||
printf "\t"
|
||||
printf " $2 -$func_value"
|
||||
}
|
||||
|
||||
GPIO_DUMP()
|
||||
{
|
||||
printf $1
|
||||
PIN_OFFSET=$( expr "$OFFSET_MULTIPLIER" \* "$1" )
|
||||
STATUS_REGISTER_ADDRESS=$( expr "$TLMM_GPIO_CFGn_Base_Address" + "$PIN_OFFSET" )
|
||||
printf "\t\t"
|
||||
printf '0x%08x' $STATUS_REGISTER_ADDRESS
|
||||
STATUS_MUX=$( devmem $STATUS_REGISTER_ADDRESS )
|
||||
printf "\t\t"
|
||||
printf $STATUS_MUX
|
||||
BIAS_STATUS=$(( $STATUS_MUX & $BIAS_STATUS_MASK ))
|
||||
if [ "$BIAS_STATUS" == "0" ]
|
||||
then
|
||||
printf "\t\tNO PULL "
|
||||
elif [ "$BIAS_STATUS" == "1" ]
|
||||
then
|
||||
printf "\t\tPULL DOWN"
|
||||
elif [ "$BIAS_STATUS" == "2" ]
|
||||
then
|
||||
printf "\t\tKEEPER "
|
||||
elif [ "$BIAS_STATUS" == "3" ]
|
||||
then
|
||||
printf "\t\tPULL UP "
|
||||
else
|
||||
printf "\tCANNOT BE DETERMINED"
|
||||
fi
|
||||
FUNC_SEL=$(( $STATUS_MUX & $FUNC_SEL_MASK ))
|
||||
FUNC_SEL=$(( $FUNC_SEL >> 2 ))
|
||||
if [ "$FUNC_SEL" == "0" ]
|
||||
then
|
||||
IO_STATUS=$(( $STATUS_MUX & $IO_MASK ))
|
||||
IO_STATUS=$(( $IO_STATUS >> 9 ))
|
||||
if [ "$IO_STATUS" == "0" ]
|
||||
then
|
||||
printf "\t\tIP"
|
||||
else
|
||||
printf "\t\tOP"
|
||||
fi
|
||||
else
|
||||
printf "\t\tNA"
|
||||
fi
|
||||
DRV_STRENGTH=$(( $STATUS_MUX & $DRV_STRENGTH_MASK ))
|
||||
DRV_STRENGTH=$(( $DRV_STRENGTH >> 6 ))
|
||||
printf "\t\t$( expr "$DRV_STRENGTH" + "$DRV_STRENGTH" + "2" ) MA"
|
||||
if [ "$FUNC_SEL" == "0" ]
|
||||
then
|
||||
printf " General purpose"
|
||||
else
|
||||
FUNCTION_SEL "$1" "$FUNC_SEL"
|
||||
fi
|
||||
}
|
||||
|
||||
printf "PIN\t TLMM_GPIO_CFGn_REG_ADD TLMM_GPIO_CFGn\t BIAS_STATUS\t I/P or O/P\t DRV_STRENGTH\t FUNC_SEL\n\n"
|
||||
|
||||
if [ $1 == "all" ]
|
||||
then
|
||||
for i in `seq $START_PIN $END_PIN`
|
||||
do
|
||||
GPIO_DUMP "$i"
|
||||
printf "\n"
|
||||
done
|
||||
else
|
||||
for i in "$@"
|
||||
do
|
||||
GPIO_DUMP "$i"
|
||||
printf "\n"
|
||||
done
|
||||
fi
|
||||
|
||||
28
qaa/qca-platform-utils/gpio-debug/files/gpio-dump.sh
Normal file
28
qaa/qca-platform-utils/gpio-debug/files/gpio-dump.sh
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
: '
|
||||
/*
|
||||
* Copyright (c) 2017, 2019 Qualcomm Technologies, Inc.
|
||||
*
|
||||
* All Rights Reserved.
|
||||
* Confidential and Proprietary - Qualcomm Technologies, Inc.
|
||||
*/
|
||||
'
|
||||
|
||||
device=$( cat /tmp/sysinfo/model )
|
||||
if echo "$device" | grep -q "IPQ40";
|
||||
then
|
||||
/usr/sbin/gpio-debug-ipq40xx.sh "$@"
|
||||
elif echo "$device" | grep -q "IPQ807";
|
||||
then
|
||||
/usr/sbin/gpio-debug-ipq807x.sh "$@"
|
||||
elif echo "$device" | grep -q "IPQ806";
|
||||
then
|
||||
/usr/sbin/gpio-debug-ipq806x.sh "$@"
|
||||
elif echo "$device" | grep -q "IPQ60";
|
||||
then
|
||||
/usr/sbin/gpio-debug-ipq6018.sh "$@"
|
||||
elif echo "$device" | grep -q "IPQ50";
|
||||
then
|
||||
/usr/sbin/gpio-debug-ipq5018.sh "$@"
|
||||
else
|
||||
echo "Unrecognized Device...\nDevices Supported: ipq40xx,ipq806x,ipq807x,ipq6018,ipq5018..."
|
||||
fi
|
||||
Loading…
Add table
Add a link
Reference in a new issue