]> git.baikalelectronics.ru Git - kernel.git/commit
mmc: mediatek: add support for SDIO eint wakup IRQ
authorAxe Yang <axe.yang@mediatek.com>
Tue, 26 Jul 2022 06:28:42 +0000 (14:28 +0800)
committerUlf Hansson <ulf.hansson@linaro.org>
Tue, 26 Jul 2022 14:58:32 +0000 (16:58 +0200)
commit2c4966de1b63c81f9254a7b5a9865d9dc3d8ebfd
tree77bb495640f8684c022ede4713e50e8789638e50
parentbfb650ca9e1dd8a972f9e666f222aab8d4b37042
mmc: mediatek: add support for SDIO eint wakup IRQ

Add support for eint IRQ when MSDC is used as an SDIO host. This
feature requires SDIO device support async IRQ function. With this
feature, SDIO host can be awakened by SDIO card in suspend state,
without additional pin.

MSDC driver will time-share the SDIO DAT1 pin. During suspend, MSDC
turn off clock and switch SDIO DAT1 pin to GPIO mode. And during
resume, switch GPIO function back to DAT1 mode then turn on clock.

Some device tree property should be added or modified in MSDC node
to support SDIO eint IRQ. Pinctrls "state_eint" is mandatory. Since
this feature depends on asynchronous interrupts, "wakeup-source",
"keep-power-in-suspend" and "cap-sdio-irq" flags are necessary, and
the interrupts list should be extended(the interrupt named with
sdio_wakeup):
        &mmcX {
...
interrupt-names = "msdc", "sdio_wakeup";
interrupts-extended = <...>,
                                     <&pio xxx IRQ_TYPE_LEVEL_LOW>;
                ...
                pinctrl-names = "default", "state_uhs", "state_eint";
                ...
                pinctrl-2 = <&mmc2_pins_eint>;
                ...
                cap-sdio-irq;
keep-power-in-suspend;
wakeup-source;
                ...
        };

Co-developed-by: Yong Mao <yong.mao@mediatek.com>
Signed-off-by: Yong Mao <yong.mao@mediatek.com>
Reviewed-by: Chaotian Jing <chaotian.jing@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Axe Yang <axe.yang@mediatek.com>
Link: https://lore.kernel.org/r/20220726062842.18846-4-axe.yang@mediatek.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/mtk-sd.c