TF card related pins:
SD_POWER_EN:PIN:B58/SD_DET_N:PIN:L6/SDMMC1_CLK:PIN:B6/SDMMC1_CMD:PIN:A5
SDMMC1_D0:PIN:E8/SDMMC1_D1:PIN:F8/SDMMC1_D2:PIN:A4/SDMMC1_D3:PIN:D6/
SD_DET_N become low, gpio-390 (PG.07 |cd ) in low IRQ, when tf card pull out.
SD_DET_N become high, gpio-390 (PG.07 |cd ) in hi IRQ, when tf card push in.
SD_POWER_EN always low, tf card not powered, when tf card push in or out.
Use “echo pin_number > /sys/class/gpio/export” to export all pins to user space,
Use “echo 0 > /sys/class/gpio/pin_number/value” and “echo 1 > /sys/class/gpio/pin_number/value”
All pin can set to low and high, high is 3.3V.
Don’t find ESD destroied pin.
Does this happen on the NVIDIA Dev Kit carrier board or a custom carrier board? If this is a custom carrier board, does it have ESD protection diodes on the Micro SD interface?
SD_POWER_EN always low, tf card not powered, when tf card push in or out.
All pin can set to low and high, high is 3.3V.
Do you mean that if you use the GPIO command to set the GPIO21 signal on the BGA B58 pin high, it is still stuck low (on TP70) instead of going to 1.8V to turn on the VDD_3V3_SD?
The driver engineer modified device tree later.
Now, the phenomenon is that, SD_POWER_EN also can set to low or high.
When push card in, the “cat /sys/class/gpio/PG.07/value” is low, pull card out,
the value is high. Said that card detect pin’s function is ok.
But, no interrupt log.
Interrupt ok will display the log “gpio-390 (PG.07 |cd ) in hi or low IRQ”.
And the driver engineer will follow the question.
好的,你们让我这边确认/sys/kernel/debug/gpio是否显示tf卡的热插拔信息?
确认结果是有(抱歉,前面确认错了)。
如果有热插拔信息,插入,用"/sys/kernel/debug/gpio"会显示high, gpio-390 (PG.07 |cd ) in hi IRQ。
拔出,用"/sys/kernel/debug/gpio"会显示low, gpio-390 (PG.07 |cd ) in lo IRQ。
online 插入lsblk,没有检测到tf卡。没有:
mmcblk1 179:32 0 29.7G 0 disk
└─mmcblk1p1 179:33 0 29.7G 0 part
reboot后,有
mmcblk1 179:32 0 29.7G 0 disk
└─mmcblk1p1 179:33 0 29.7G 0 part