Trying to add an additional sdcard using the mmc3 sdio interface.
Looking at this:
also looking at this
Here is my device tree
&mmc3 {
ti,dual-volt;
ti,needs-special-reset;
ti,needs-special-hs-handling;
status = "okay";
bus-width = <0x4>;
pinctrl-names = "default";
pinctrl-0 = <&mmc3_pins>;
cd-gpios = <&gpio0 31 GPIO_ACTIVE_LOW>;
vmmc-supply = <&vmmcsd_fixed>;
dmas = <&edma_xbar 12 0 1
&edma_xbar 13 0 2>;
dma-names = "tx", "rx";
#address-cells = <1>;
#size-cells = <0>;
max-frequency = <50000000>;
};
mmc3_pins: pinmux_mmc3_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x830, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad12.mmc2_dat0 */
AM33XX_IOPAD(0x834, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad13.mmc2_dat1 */
AM33XX_IOPAD(0x838, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad14.mmc2_dat2 */
AM33XX_IOPAD(0x83C, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad15.mmc2_dat3 */
AM33XX_IOPAD(0x888, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_csn3.mmc2_cmd */
AM33XX_IOPAD(0x88c, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_clk.mmc2_clk */
AM33XX_IOPAD(0x874, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_wpn.mmc2_sdcd.gpio0_31 */
AM33XX_IOPAD(0x840, PIN_INPUT | MUX_MODE7) /* gpmc.a0.gpio1_16 */
>;
};
The board will recognize the total size of the sdcard (32GB cards shows at 29.8GB) but it throws a bunch of errors and can't read the partition table as a result
[2.579851] omap_hsmmc 48710000.mmc: Got CD GPIO
[2.666924] mmc2: host does nto support reading read-only switch, assuming write-enable
[2.671598] mmc2: new high speed SDHC card at address 0001
[2.691758] mmcblk2: mmc2:0001 GB1QT 29.8 GiB
[2.712584] mmcblk2: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0xb00
[2.809247] mmcblk2: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0xb00
[2.818904] mmcblk2: retrying using single block read
[2.833104] mmcblk2: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0x0
More error -84 continue to stream out for various different sectors.
I'm breadboarded to an external uSDcard slot, so I'm thinking it may be signal integrity issue. I changed max-frequency to lower values, but that didn't help.