This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

am335x SD card issue



cpu: am335x

kernel: linux 3.14.43

There is no regulator.

Using kernel 3.2.0 there is no issue about SD card detecting. It's no problem using SD card update uboot, kernel and root file system at uboot.

Booting the kernel 3.14.43, it's fine. But, then reboot the system, no SD card found after booting kernel again, only "error -110 whilst initialising SD card" .

After that, pull out SD card and insert it again or removing power and retrying power again, it could be detected again.

I tried to reset all register via using SYSCTL bit SRA or disable clock , delay 10 ms then enable it, but no effect.


Any suggestion about this?

p.s: I'm sorry for my Chinglish and poor vocabulary.

Thank you.

  • Please post the MMC section of your .DTS file.
  • Thanks,

    The mmc1:

    mmc1_pins_default:pinmux_mmc1_pins {

    pinctrl-single,pins = <

    0x0F0 (PIN_INPUT_PULLUP | MUX_MODE0)

    0x0F4 (PIN_INPUT_PULLUP | MUX_MODE0)

    0x0F8 (PIN_INPUT_PULLUP | MUX_MODE0)

    0x0FC (PIN_INPUT_PULLUP | MUX_MODE0)

    0x100 (PIN_INPUT_PULLUP | MUX_MODE0)

    0x104 (PIN_INPUT_PULLUP | MUX_MODE0)

    0x190 (PIN_INPUT_PULLUP | MUX_MODE7)    /* cd gpio */

    >;

    };

    &mmc1 {

    status = "okay";

    bus-width = <4>;

    pinctrl-names = "default";

    pinctrl-0 = <&mmc1_pins_default>;

    cd-gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;

    };

  • Hi,

    You say there is no regulator, so have you tried adding:

      vmmc-supply = <&vmmcsd_fixed>;

    in your &mmc1 dts node?  

    The vmmcsd_fixed, should look something like:

     vmmcsd_fixed: fixedregulator@0 {

               compatible = "regulator-fixed";

               regulator-name = "vmmcsd_fixed";

               regulator-min-microvolt = <3300000>;

               regulator-max-microvolt = <3300000>;

    };

    You can take as an example the structure of am335x-boneblack.dts & am335x-bone-common.dtsi.  

    Best Regards,

    Yordan

  • Thanks.

    I found that add cap-power-off-card to DTS could solve this.