[Letux-kernel] omap_hsmmc + gta04 + sdio irq + runtime_suspend + 4 bit = trouble

Tony Lindgren tony at atomide.com
Tue Sep 4 17:47:50 CEST 2018


* Andreas Kemnade <andreas at kemnade.info> [180902 20:46]:
>         mmc2_pins: pinmux_mmc2_pins {
>                 pinctrl-single,pins = <
>                         /* sdmmc2_clk.sdmmc2_clk */
>                         OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0)
> 
>                         /* sdmmc2_cmd.sdmmc2_cmd */
>                         OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0)
> 
>                         /* sdmmc2_dat0.sdmmc2_dat0 */
>                         OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0)
> 
>                         /* sdmmc2_dat0.sdmmc2_dat1 */
>                         OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0 | WAKEUP_EN)

Having WAKEUP_EN here is wrong nowadays, this bit is managed by
Linux generic wakeirqs.

> &mmc2 {
>         pinctrl-names = "default";
>         pinctrl-0 = <&mmc2_pins>;
> 
>         interrupts-extended = <&intc 86>, <&omap3_pmx_core 0x12e>; 

And then the second interrupt here must match padconf register like
you have 0x215e - 0x2030 = 0x12e which seems correct. And you should
start seeing interrupts with grep wake /proc/interrupts.

> I can make it work by using bus-width = <1>;
> But that is not what I want. The entry in /proc/interrupts behaves
> sane.

Please check that your board is using the pads you configured.
Some signals may be using alternate pads.

Regards,

Tony


More information about the Letux-kernel mailing list