#include <linux/io.h>
#include <linux/of.h>
#include <linux/module.h>
#include <linux/err.h>
#include <linux/mmc/host.h>
#include <linux/reset.h>
#include "sdhci-pltfm.h"
struct st_mmc_platform_data { … };
#define ST_MMC_CCONFIG_REG_1 …
#define ST_MMC_CCONFIG_TIMEOUT_CLK_UNIT …
#define ST_MMC_CCONFIG_TIMEOUT_CLK_FREQ …
#define ST_MMC_CCONFIG_TUNING_COUNT_DEFAULT …
#define ST_MMC_CCONFIG_ASYNC_WAKEUP …
#define ST_MMC_CCONFIG_1_DEFAULT …
#define ST_MMC_CCONFIG_REG_2 …
#define ST_MMC_CCONFIG_HIGH_SPEED …
#define ST_MMC_CCONFIG_ADMA2 …
#define ST_MMC_CCONFIG_8BIT …
#define ST_MMC_CCONFIG_MAX_BLK_LEN …
#define MAX_BLK_LEN_1024 …
#define MAX_BLK_LEN_2048 …
#define BASE_CLK_FREQ_200 …
#define BASE_CLK_FREQ_100 …
#define BASE_CLK_FREQ_50 …
#define ST_MMC_CCONFIG_2_DEFAULT …
#define ST_MMC_CCONFIG_REG_3 …
#define ST_MMC_CCONFIG_EMMC_SLOT_TYPE …
#define ST_MMC_CCONFIG_64BIT …
#define ST_MMC_CCONFIG_ASYNCH_INTR_SUPPORT …
#define ST_MMC_CCONFIG_1P8_VOLT …
#define ST_MMC_CCONFIG_3P0_VOLT …
#define ST_MMC_CCONFIG_3P3_VOLT …
#define ST_MMC_CCONFIG_SUSP_RES_SUPPORT …
#define ST_MMC_CCONFIG_SDMA …
#define ST_MMC_CCONFIG_3_DEFAULT …
#define ST_MMC_CCONFIG_REG_4 …
#define ST_MMC_CCONFIG_D_DRIVER …
#define ST_MMC_CCONFIG_C_DRIVER …
#define ST_MMC_CCONFIG_A_DRIVER …
#define ST_MMC_CCONFIG_DDR50 …
#define ST_MMC_CCONFIG_SDR104 …
#define ST_MMC_CCONFIG_SDR50 …
#define ST_MMC_CCONFIG_4_DEFAULT …
#define ST_MMC_CCONFIG_REG_5 …
#define ST_MMC_CCONFIG_TUNING_FOR_SDR50 …
#define RETUNING_TIMER_CNT_MAX …
#define ST_MMC_CCONFIG_5_DEFAULT …
#define ST_MMC_GP_OUTPUT …
#define ST_MMC_GP_OUTPUT_CD …
#define ST_MMC_STATUS_R …
#define ST_TOP_MMC_DLY_FIX_OFF(x) …
#define ST_TOP_MMC_TX_CLK_DLY …
#define ST_TOP_MMC_RX_CLK_DLY …
#define ST_TOP_MMC_DLY_CTRL …
#define ST_TOP_MMC_DLY_CTRL_DLL_BYPASS_CMD …
#define ST_TOP_MMC_DLY_CTRL_DLL_BYPASS_PH_SEL …
#define ST_TOP_MMC_DLY_CTRL_TX_DLL_ENABLE …
#define ST_TOP_MMC_DLY_CTRL_RX_DLL_ENABLE …
#define ST_TOP_MMC_DLY_CTRL_ATUNE_NOT_CFG_DLY …
#define ST_TOP_MMC_START_DLL_LOCK …
#define ST_TOP_MMC_TX_DLL_STEP_DLY …
#define ST_TOP_MMC_RX_DLL_STEP_DLY …
#define ST_TOP_MMC_RX_CMD_STEP_DLY …
#define ST_TOP_MMC_TX_DLL_STEP_DLY_VALID …
#define ST_TOP_MMC_DLY_MAX …
#define ST_TOP_MMC_DYN_DLY_CONF …
#define CLK_TO_CHECK_DLL_LOCK …
static inline void st_mmcss_set_static_delay(void __iomem *ioaddr)
{ … }
static void st_mmcss_cconfig(struct device_node *np, struct sdhci_host *host)
{ … }
static inline void st_mmcss_set_dll(void __iomem *ioaddr)
{ … }
static int st_mmcss_lock_dll(void __iomem *ioaddr)
{ … }
static int sdhci_st_set_dll_for_clock(struct sdhci_host *host)
{ … }
static void sdhci_st_set_uhs_signaling(struct sdhci_host *host,
unsigned int uhs)
{ … }
static u32 sdhci_st_readl(struct sdhci_host *host, int reg)
{ … }
static const struct sdhci_ops sdhci_st_ops = …;
static const struct sdhci_pltfm_data sdhci_st_pdata = …;
static int sdhci_st_probe(struct platform_device *pdev)
{ … }
static void sdhci_st_remove(struct platform_device *pdev)
{ … }
#ifdef CONFIG_PM_SLEEP
static int sdhci_st_suspend(struct device *dev)
{ … }
static int sdhci_st_resume(struct device *dev)
{ … }
#endif
static SIMPLE_DEV_PM_OPS(sdhci_st_pmops, sdhci_st_suspend, sdhci_st_resume);
static const struct of_device_id st_sdhci_match[] = …;
MODULE_DEVICE_TABLE(of, st_sdhci_match);
static struct platform_driver sdhci_st_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;