diff options
author | Tom Rini <trini@konsulko.com> | 2021-01-28 11:37:58 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2021-01-28 11:37:58 -0500 |
commit | 07394fb05e4d48fee360ef38c96b3ef0576b7352 (patch) | |
tree | eaf9b03553cbea1907d578a86799aafaf4887504 /drivers/mmc | |
parent | 8b195f4b716e4d802768e0e2cd63b417a4690b7f (diff) | |
parent | 54f884bb0b1ebc16946890bb8349fe0ca2455bb2 (diff) |
Merge branch '2021-01-27-assorted-fixes-and-improvements'
- A wide variety of fixes throughout the tree.
Diffstat (limited to 'drivers/mmc')
-rw-r--r-- | drivers/mmc/pci_mmc.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/drivers/mmc/pci_mmc.c b/drivers/mmc/pci_mmc.c index b26eb034d07..fd5dd229b58 100644 --- a/drivers/mmc/pci_mmc.c +++ b/drivers/mmc/pci_mmc.c @@ -10,6 +10,7 @@ #include <log.h> #include <malloc.h> #include <mapmem.h> +#include <mmc.h> #include <sdhci.h> #include <acpi/acpigen.h> #include <acpi/acpi_device.h> @@ -17,6 +18,12 @@ #include <asm-generic/gpio.h> #include <dm/acpi.h> +/* Type of MMC device */ +enum { + TYPE_SD, + TYPE_EMMC, +}; + struct pci_mmc_plat { struct mmc_config cfg; struct mmc mmc; @@ -34,8 +41,15 @@ static int pci_mmc_probe(struct udevice *dev) struct pci_mmc_plat *plat = dev_get_plat(dev); struct pci_mmc_priv *priv = dev_get_priv(dev); struct sdhci_host *host = &priv->host; + struct blk_desc *desc; int ret; + ret = mmc_of_parse(dev, &plat->cfg); + if (ret) + return ret; + desc = mmc_get_blk_desc(&plat->mmc); + desc->removable = !(plat->cfg.host_caps & MMC_CAP_NONREMOVABLE); + host->ioaddr = (void *)dm_pci_map_bar(dev, PCI_BASE_ADDRESS_0, PCI_REGION_MEM); host->name = dev->name; @@ -79,6 +93,8 @@ static int pci_mmc_acpi_fill_ssdt(const struct udevice *dev, if (!dev_has_ofnode(dev)) return 0; + if (dev_get_driver_data(dev) == TYPE_EMMC) + return 0; ret = gpio_get_acpi(&priv->cd_gpio, &gpio); if (ret) @@ -122,7 +138,8 @@ struct acpi_ops pci_mmc_acpi_ops = { }; static const struct udevice_id pci_mmc_match[] = { - { .compatible = "intel,apl-sd" }, + { .compatible = "intel,apl-sd", .data = TYPE_SD }, + { .compatible = "intel,apl-emmc", .data = TYPE_EMMC }, { } }; |