Why Freescale Sabre Smart i.MX6 Solo X SD2 slot do not detect SD card insertion / removal while SD3 does?
1. How SDIO detection works on i.MX6?
First, we checked how the i.MX6 CPU detect SDIO card insertion / removal.
Freescale i.MX6 Solo X Reference Manual (IMX6SXRM.pdf) Section 68.4.7 "Card Insertion and Removal Detection" says that;
"The uSDHC uses either the DATA3 pin or the CD_B pin to detect card
insertion or removal. When there is no card on the MMC/SD bus, the
DATA3 will be pulled to a low voltage level by default"
"When the DATA3 pin is not used for card detection (for example,
it is implemented in GPIO), the CD_B pin must be connected for card
detection. Whether DATA3 is configured for card detection or not,
the CD_B pin is always a reference for card detection."
Based on this description, It seems that DATA3 is used for card detection. But it isn't.
2. Implementation on Sabre i.MX6 SoloX
We checked voltage on DATA3(PIN1) on both SD2 and SD3 slot when card is not inserted. Both were 3.3V. Neither SD2 nor SD3 DATA3 was "pulled to a low voltage level by default".
Then, we checked CD pin. In the case of SD3, it was 3.3V when card is not inserted, then fall to 0V when card is inserted. That cause card detection.
In the case of SD2, CD pin was all time 0V. Sabre i.MX6SX Schematic confirms that CD pin of SD2 slot is not connected to anywhere (see attached image).
Sabre SoloX SD2 Sabre SoloX SD3
"CD(Card Detect)" is not a SDIO pin. SDIO has only 9pins, where
3 VSS1 (GND)
6 VSS2 (GND)
- CD (Card Detection) and WP (Write Protect) are function of SD slot connector, not function of SDIO bus.
3. Implementation on Sabre i.MX6Q
We checked i.MX6Q Sabre Smart. Again, DATA3 (pin1) voltage was 3.3V both on SD2 and SD3. Schematic shows there are register pattern prepared to pull down DATA3, but both R549 on SD3 and R667 SD3 are not populated (DNP) as default.
Sabre i.MX6Q SD2 Sabre i.MX6Q SD3
From this we can infer that Freescale reference design (Sabre i.MX6Q and i.MX6SX) do not use DATA3 for SDIO detection, as it appears to have been described in the reference manual. Both Sabre i.MX6Q and i.MX6SX solely relies on CD(Card Detect) signal from SDIO connector.
In the case of SD2 slot on i.MX6SX, CD signal is not connected to anywhere.There where unpopulated DATA3 pull-down register pattern prepared on Sabre i.MX6Q, but it is omitted from i.MX6SX. Which makes card insertion / removal detection on Sabre i.MX6SX SD2 slot difficult.