MMC core:
 - Add support for the asynchronous SDIO wakeup interrupts
 - Skip redundant evaluation of eMMC HS400 caps when no-MMC-cap
 - Add support to store error stats from host drivers
 - Extend debugfs to show error stats from host drivers
 - Add single I/O read support in the recovery path for 4k sector cards

MMC host:
 - dw_mmc-exynos: Convert corresponding DT bindings to the dtschema
 - dw_mmc-rockchip: Add support for the Rockchip RV1126 variant
 - mmc_spi: Convert corresponding DT bindings to the dtschema
 - mtk-sd: Extend support for interrupts/pinctrls for SDIO low-power mode
 - mtk-sd: Add support for SDIO wake irqs
 - mtk-sd: Add support for the Mediatek MT8188 variant
 - renesas_sdhi: Drop redundant manual tap correction for newer SoCs
 - renesas_sdhi: Add support for the R-Car S4-8 and generic Gen4 variants
 - sdhci/cqhci: Add support to capture stats from host errors
 - sdhci-brcmstb: Add ability to increase max clock rate for SDIO on 72116b0
 - sdhci-msm: Add support for the MSM8998 and SM8450 variant
 - sdhci-of-at91: Fixup UHS-I mode by rewriting of MC1R
 - sdhci-of-dwcmshc: Add support for the Rockchip rk3588 variant
 - sdhci-of-dwcmshc: Enable reset support for the Rockchip variants
 - sdhci-pci-gli: Improve I/O read/write performance for GL9763E
 - sdhci-s3c: Convert corresponding DT bindings to the dtschema
 - tmio: Avoid glitches when resetting

MEMSTICK core:
 - A couple of minor fixes and cleanups
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>
1 file changed