linux/drivers/mmc/host/sdhci-brcmstb.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * sdhci-brcmstb.c Support for SDHCI on Broadcom BRCMSTB SoC's
 *
 * Copyright (C) 2015 Broadcom Corporation
 */

#include <linux/io.h>
#include <linux/iopoll.h>
#include <linux/mmc/host.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/bitops.h>
#include <linux/delay.h>

#include "sdhci-cqhci.h"
#include "sdhci-pltfm.h"
#include "cqhci.h"

#define SDHCI_VENDOR
#define SDHCI_VENDOR_ENHANCED_STRB
#define SDHCI_VENDOR_GATE_SDCLK_EN

#define BRCMSTB_MATCH_FLAGS_NO_64BIT
#define BRCMSTB_MATCH_FLAGS_BROKEN_TIMEOUT
#define BRCMSTB_MATCH_FLAGS_HAS_CLOCK_GATE
#define BRCMSTB_MATCH_FLAGS_USE_CARD_BUSY

#define BRCMSTB_PRIV_FLAGS_HAS_CQE
#define BRCMSTB_PRIV_FLAGS_GATE_CLOCK

#define SDHCI_ARASAN_CQE_BASE_ADDR

#define SDIO_CFG_CQ_CAPABILITY
#define SDIO_CFG_CQ_CAPABILITY_FMUL

#define SDIO_CFG_CTRL
#define SDIO_CFG_CTRL_SDCD_N_TEST_EN
#define SDIO_CFG_CTRL_SDCD_N_TEST_LEV

#define SDIO_CFG_MAX_50MHZ_MODE
#define SDIO_CFG_MAX_50MHZ_MODE_STRAP_OVERRIDE
#define SDIO_CFG_MAX_50MHZ_MODE_ENABLE

#define MMC_CAP_HSE_MASK
/* Select all SD UHS type I SDR speed above 50MB/s */
#define MMC_CAP_UHS_I_SDR_MASK

struct sdhci_brcmstb_priv {};

struct brcmstb_match_priv {};

static inline void enable_clock_gating(struct sdhci_host *host)
{}

static void brcmstb_reset(struct sdhci_host *host, u8 mask)
{}

static void brcmstb_sdhci_reset_cmd_data(struct sdhci_host *host, u8 mask)
{}

static void brcmstb_reset_74165b0(struct sdhci_host *host, u8 mask)
{}

static void sdhci_brcmstb_hs400es(struct mmc_host *mmc, struct mmc_ios *ios)
{}

static void sdhci_brcmstb_set_clock(struct sdhci_host *host, unsigned int clock)
{}

static void sdhci_brcmstb_set_uhs_signaling(struct sdhci_host *host,
					    unsigned int timing)
{}

static void sdhci_brcmstb_cfginit_2712(struct sdhci_host *host)
{}

static void sdhci_brcmstb_dumpregs(struct mmc_host *mmc)
{}

static void sdhci_brcmstb_cqe_enable(struct mmc_host *mmc)
{}

static const struct cqhci_host_ops sdhci_brcmstb_cqhci_ops =;

static struct sdhci_ops sdhci_brcmstb_ops =;

static struct sdhci_ops sdhci_brcmstb_ops_2712 =;

static struct sdhci_ops sdhci_brcmstb_ops_7216 =;

static struct sdhci_ops sdhci_brcmstb_ops_74165b0 =;

static const struct brcmstb_match_priv match_priv_2712 =;

static struct brcmstb_match_priv match_priv_7425 =;

static struct brcmstb_match_priv match_priv_7445 =;

static const struct brcmstb_match_priv match_priv_7216 =;

static struct brcmstb_match_priv match_priv_74165b0 =;

static const struct of_device_id __maybe_unused sdhci_brcm_of_match[] =;

static u32 sdhci_brcmstb_cqhci_irq(struct sdhci_host *host, u32 intmask)
{}

static int sdhci_brcmstb_add_host(struct sdhci_host *host,
				  struct sdhci_brcmstb_priv *priv)
{}

static int sdhci_brcmstb_probe(struct platform_device *pdev)
{}

static void sdhci_brcmstb_shutdown(struct platform_device *pdev)
{}

MODULE_DEVICE_TABLE(of, sdhci_brcm_of_match);

#ifdef CONFIG_PM_SLEEP
static int sdhci_brcmstb_suspend(struct device *dev)
{}

static int sdhci_brcmstb_resume(struct device *dev)
{}
#endif

static const struct dev_pm_ops sdhci_brcmstb_pmops =;

static struct platform_driver sdhci_brcmstb_driver =;

module_platform_driver();

MODULE_DESCRIPTION();
MODULE_AUTHOR();
MODULE_LICENSE();