]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
mmc: exynos_dw_mmc: Move quirks from struct dwmci_host to chip data
authorSam Protsenko <semen.protsenko@linaro.org>
Thu, 8 Aug 2024 03:14:34 +0000 (22:14 -0500)
committerMinkyu Kang <mk7.kang@samsung.com>
Mon, 19 Aug 2024 07:09:06 +0000 (16:09 +0900)
host->quirks field is only used internally in exynos_dw_mmc.c driver.
To avoid cluttering the scope of struct dwmci_host, move quirks field
into Exynos driver's chip data, where it can be statically defined.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
drivers/mmc/exynos_dw_mmc.c
include/dwmmc.h

index bed8bd8a0fcf20192a1f40ac064a7dc62c304805..b9d655c0d5c89779b49f7917cf4d2ce422b7d251 100644 (file)
@@ -25,6 +25,9 @@
 
 #define EXYNOS4412_FIXED_CIU_CLK_DIV   4
 
+/* Quirks */
+#define DWMCI_QUIRK_DISABLE_SMU                BIT(0)
+
 #ifdef CONFIG_DM_MMC
 #include <dm.h>
 DECLARE_GLOBAL_DATA_PTR;
@@ -39,6 +42,7 @@ struct exynos_mmc_plat {
 struct exynos_dwmmc_variant {
        u32 clksel;             /* CLKSEL register offset */
        u8 div;                 /* (optional) fixed clock divider value: 0..7 */
+       u32 quirks;             /* quirk flags - see DWMCI_QUIRK_... */
 };
 
 /* Exynos implmentation specific drver private data */
@@ -173,7 +177,7 @@ static void exynos_dwmci_board_init(struct dwmci_host *host)
 {
        struct dwmci_exynos_priv_data *priv = exynos_dwmmc_get_priv(host);
 
-       if (host->quirks & DWMCI_QUIRK_DISABLE_SMU) {
+       if (priv->chip->quirks & DWMCI_QUIRK_DISABLE_SMU) {
                dwmci_writel(host, EMMCP_MPSBEGIN0, 0);
                dwmci_writel(host, EMMCP_SEND0, 0);
                dwmci_writel(host, EMMCP_CTRL0,
@@ -205,11 +209,7 @@ static int exynos_dwmci_core_init(struct dwmci_host *host)
        }
 
        host->name = "EXYNOS DWMMC";
-#ifdef CONFIG_EXYNOS5420
-       host->quirks = DWMCI_QUIRK_DISABLE_SMU;
-#endif
        host->board_init = exynos_dwmci_board_init;
-
        host->caps = MMC_MODE_DDR_52MHz;
        host->clksel = exynos_dwmci_clksel;
        host->get_mmc_clk = exynos_dwmci_get_clk;
@@ -352,6 +352,9 @@ static const struct exynos_dwmmc_variant exynos4_drv_data = {
 
 static const struct exynos_dwmmc_variant exynos5_drv_data = {
        .clksel = DWMCI_CLKSEL,
+#ifdef CONFIG_EXYNOS5420
+       .quirks = DWMCI_QUIRK_DISABLE_SMU,
+#endif
 };
 
 static const struct udevice_id exynos_dwmmc_ids[] = {
index 8c2500da9efe4314c0d83ad521f50b0f64f0c0c5..6edb9e1a59c574329cdd5db3875848d079aad4c5 100644 (file)
 #define DWMCI_IDINTEN_TI       BIT(0)
 #define DWMCI_IDINTEN_MASK     (DWMCI_IDINTEN_TI | DWMCI_IDINTEN_RI)
 
-/* Quirks */
-#define DWMCI_QUIRK_DISABLE_SMU        BIT(0)
-
 /**
  * struct dwmci_idmac_regs - Offsets of IDMAC registers
  *
@@ -180,7 +177,6 @@ struct dwmci_idmac_regs {
  *
  * @name:      Device name
  * @ioaddr:    Base I/O address of controller
- * @quirks:    Quick flags - see DWMCI_QUIRK_...
  * @caps:      Capabilities - see MMC_MODE_...
  * @clock:     Current clock frequency (after internal divider), Hz
  * @bus_hz:    Bus speed in Hz, if @get_mmc_clk() is NULL
@@ -200,7 +196,6 @@ struct dwmci_idmac_regs {
 struct dwmci_host {
        const char *name;
        void *ioaddr;
-       unsigned int quirks;
        unsigned int caps;
        unsigned int clock;
        unsigned int bus_hz;