#include <linux/clk.h>
#include <linux/mfd/syscon.h>
#include <linux/mmc/host.h>
#include <linux/module.h>
#include <linux/of_address.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include "dw_mmc.h"
#include "dw_mmc-pltfm.h"
#define SDMMC_TUNING_CTRL …
#define SDMMC_TUNING_FIND_EDGE …
#define ALL_INT_CLR …
#define SAP_DLL_CTRL_DLLMODE …
struct dw_mci_hi3798mv200_priv { … };
static void dw_mci_hi3798mv200_set_ios(struct dw_mci *host, struct mmc_ios *ios)
{ … }
static inline int dw_mci_hi3798mv200_enable_tuning(struct dw_mci_slot *slot)
{ … }
static inline int dw_mci_hi3798mv200_disable_tuning(struct dw_mci_slot *slot)
{ … }
static int dw_mci_hi3798mv200_execute_tuning_mix_mode(struct dw_mci_slot *slot,
u32 opcode)
{ … }
static int dw_mci_hi3798mv200_init(struct dw_mci *host)
{ … }
static const struct dw_mci_drv_data hi3798mv200_data = …;
static const struct of_device_id dw_mci_hi3798mv200_match[] = …;
static int dw_mci_hi3798mv200_probe(struct platform_device *pdev)
{ … }
static void dw_mci_hi3798mv200_remove(struct platform_device *pdev)
{ … }
MODULE_DEVICE_TABLE(of, dw_mci_hi3798mv200_match);
static struct platform_driver dw_mci_hi3798mv200_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;