mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
2cd3a2a546
There have been various patches floating around for enabling the SDIO IRQ for hsmmc, but none of them ever got merged. Probably the reason for not merging the SDIO interrupt patches has been the lack of wake-up path for SDIO on some omaps that has also needed remuxing the SDIO DAT1 line to a GPIO making the patches complex. This patch adds the minimal SDIO IRQ support to hsmmc for omaps that do have the wake-up path. For those omaps, the DAT1 line need to have the wake-up enable bit set, and the wake-up interrupt is the same as for the MMC controller. This patch has been tested on am3730 es1.2 with mwifiex connected to MMC3 with mwifiex waking to Ethernet traffic from off-idle mode. Note that for omaps that do not have the SDIO wake-up path, this patch will not work for idle modes and further patches for remuxing DAT1 to GPIO are needed. Based on earlier patches [1][2] by David Vrabel <david.vrabel@csr.com>, Steve Sakoman <steve@sakoman.com> For now, only support SDIO interrupt if we are booted with a separate wake-irq configued via device tree. This is because omaps need the wake-irq for idle states, and some omaps need special quirks. And we don't want to add new legacy mux platform init code callbacks any longer as we are moving to DT based booting anyways. To use it, you need to specify the wake-irq using the interrupts-extended property. [1] http://www.sakoman.com/cgi-bin/gitweb.cgi?p=linux.git;a=commitdiff_plain;h=010810d22f6f49ac03da4ba384969432e0320453 [2] http://comments.gmane.org/gmane.linux.kernel.mmc/20446 Acked-by: Balaji T K <balajitk@ti.com> Signed-off-by: Andreas Fenkart <afenkart@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
60 lines
1.9 KiB
Plaintext
60 lines
1.9 KiB
Plaintext
* TI Highspeed MMC host controller for OMAP
|
|
|
|
The Highspeed MMC Host Controller on TI OMAP family
|
|
provides an interface for MMC, SD, and SDIO types of memory cards.
|
|
|
|
This file documents differences between the core properties described
|
|
by mmc.txt and the properties used by the omap_hsmmc driver.
|
|
|
|
Required properties:
|
|
- compatible:
|
|
Should be "ti,omap2-hsmmc", for OMAP2 controllers
|
|
Should be "ti,omap3-hsmmc", for OMAP3 controllers
|
|
Should be "ti,omap3-pre-es3-hsmmc" for OMAP3 controllers pre ES3.0
|
|
Should be "ti,omap4-hsmmc", for OMAP4 controllers
|
|
Should be "ti,am33xx-hsmmc", for AM335x controllers
|
|
- ti,hwmods: Must be "mmc<n>", n is controller instance starting 1
|
|
|
|
Optional properties:
|
|
ti,dual-volt: boolean, supports dual voltage cards
|
|
<supply-name>-supply: phandle to the regulator device tree node
|
|
"supply-name" examples are "vmmc", "vmmc_aux" etc
|
|
ti,non-removable: non-removable slot (like eMMC)
|
|
ti,needs-special-reset: Requires a special softreset sequence
|
|
ti,needs-special-hs-handling: HSMMC IP needs special setting for handling High Speed
|
|
dmas: List of DMA specifiers with the controller specific format
|
|
as described in the generic DMA client binding. A tx and rx
|
|
specifier is required.
|
|
dma-names: List of DMA request names. These strings correspond
|
|
1:1 with the DMA specifiers listed in dmas. The string naming is
|
|
to be "rx" and "tx" for RX and TX DMA requests, respectively.
|
|
|
|
Examples:
|
|
|
|
[hwmod populated DMA resources]
|
|
|
|
mmc1: mmc@0x4809c000 {
|
|
compatible = "ti,omap4-hsmmc";
|
|
reg = <0x4809c000 0x400>;
|
|
ti,hwmods = "mmc1";
|
|
ti,dual-volt;
|
|
bus-width = <4>;
|
|
vmmc-supply = <&vmmc>; /* phandle to regulator node */
|
|
ti,non-removable;
|
|
};
|
|
|
|
[generic DMA request binding]
|
|
|
|
mmc1: mmc@0x4809c000 {
|
|
compatible = "ti,omap4-hsmmc";
|
|
reg = <0x4809c000 0x400>;
|
|
ti,hwmods = "mmc1";
|
|
ti,dual-volt;
|
|
bus-width = <4>;
|
|
vmmc-supply = <&vmmc>; /* phandle to regulator node */
|
|
ti,non-removable;
|
|
dmas = <&edma 24
|
|
&edma 25>;
|
|
dma-names = "tx", "rx";
|
|
};
|