]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
mmc: exynos_dw_mmc: Add support for ARM64 Exynos chips
authorSam Protsenko <semen.protsenko@linaro.org>
Thu, 8 Aug 2024 03:14:37 +0000 (22:14 -0500)
committerMinkyu Kang <mk7.kang@samsung.com>
Mon, 19 Aug 2024 07:09:06 +0000 (16:09 +0900)
Add the compatible entry and corresponding chip data for Exynos7
compatible chips, which covers modern ARM64 based Exynos chips. They
have some differences w.r.t. old ARM32 Exynos chips:
  - CLKSEL register offset is different
  - 64-bit IDMAC descriptor and 64-bit IDMAC registers are used
    (implemented in dw_mmc core driver)

In terms of the driver implementation, the CIU clock is obtained via CCF
framework (as opposed to ad-hoc clock driver implementation for ARM32
chips).

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

index 811e9a04c6e31bd88ab1532ceb2ac7257c5f7723..7cb71be0d9fd5cbbfc03d26a6f23a7671d5fc661 100644 (file)
@@ -8,6 +8,7 @@
 #define __ASM_ARM_ARCH_DWMMC_H
 
 #define DWMCI_CLKSEL           0x09C
+#define DWMCI_CLKSEL64         0x0a8
 #define DWMCI_SET_SAMPLE_CLK(x)        (x)
 #define DWMCI_SET_DRV_CLK(x)   ((x) << 16)
 #define DWMCI_SET_DIV_RATIO(x) ((x) << 24)
index ee3ae9f5e65064323ca19a53270c5f5aa5b5027e..29241edf79155e54b2d6582285b61142bb8ae1f5 100644 (file)
@@ -385,6 +385,11 @@ static const struct exynos_dwmmc_variant exynos5_drv_data = {
 #endif
 };
 
+static const struct exynos_dwmmc_variant exynos7_smu_drv_data = {
+       .clksel = DWMCI_CLKSEL64,
+       .quirks = DWMCI_QUIRK_DISABLE_SMU,
+};
+
 static const struct udevice_id exynos_dwmmc_ids[] = {
        {
                .compatible     = "samsung,exynos4412-dw-mshc",
@@ -392,6 +397,9 @@ static const struct udevice_id exynos_dwmmc_ids[] = {
        }, {
                .compatible     = "samsung,exynos-dwmmc",
                .data           = (ulong)&exynos5_drv_data,
+       }, {
+               .compatible     = "samsung,exynos7-dw-mshc-smu",
+               .data           = (ulong)&exynos7_smu_drv_data,
        },
        { }
 };