mmc: t210: Add autocal and tap/trim updates for SDMMC1/3
[platform/kernel/u-boot.git] / arch / arm / include / asm / arch-tegra / tegra_mmc.h
index a2b6f63..a8bfa46 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * (C) Copyright 2009 SAMSUNG Electronics
  * Minkyu Kang <mk7.kang@samsung.com>
- * Portions Copyright (C) 2011-2012 NVIDIA Corporation
+ * Portions Copyright (C) 2011-2012,2019 NVIDIA Corporation
  */
 
 #ifndef __TEGRA_MMC_H_
@@ -52,7 +52,7 @@ struct tegra_mmc {
        unsigned char   admaerr;        /* offset 54h */
        unsigned char   res4[3];        /* RESERVED, offset 55h-57h */
        unsigned long   admaaddr;       /* offset 58h-5Fh */
-       unsigned char   res5[0xa0];     /* RESERVED, offset 60h-FBh */
+       unsigned char   res5[0x9c];     /* RESERVED, offset 60h-FBh */
        unsigned short  slotintstatus;  /* offset FCh */
        unsigned short  hcver;          /* HOST Version */
        unsigned int    venclkctl;      /* _VENDOR_CLOCK_CNTRL_0,    100h */
@@ -127,11 +127,23 @@ struct tegra_mmc {
 
 #define TEGRA_MMC_NORINTSIGEN_XFER_COMPLETE                    (1 << 1)
 
-/* SDMMC1/3 settings from section 24.6 of T30 TRM */
+/* SDMMC1/3 settings from SDMMCx Initialization Sequence of TRM */
 #define MEMCOMP_PADCTRL_VREF   7
-#define AUTO_CAL_ENABLED       (1 << 29)
+#define AUTO_CAL_ENABLE                (1 << 29)
+#if defined(CONFIG_TEGRA210)
+#define AUTO_CAL_ACTIVE                (1 << 31)
+#define AUTO_CAL_START         (1 << 31)
+#define AUTO_CAL_PD_OFFSET     (0x7D << 8)
+#define AUTO_CAL_PU_OFFSET     (0 << 0)
+#define IO_TRIM_BYPASS_MASK    (1 << 2)
+#define TRIM_VAL_SHIFT         24
+#define TRIM_VAL_MASK          (0x1F << TRIM_VAL_SHIFT)
+#define TAP_VAL_SHIFT          16
+#define TAP_VAL_MASK           (0xFF << TAP_VAL_SHIFT)
+#else
 #define AUTO_CAL_PD_OFFSET     (0x70 << 8)
 #define AUTO_CAL_PU_OFFSET     (0x62 << 0)
+#endif
 
 #endif /* __ASSEMBLY__ */
 #endif /* __TEGRA_MMC_H_ */