aboutsummaryrefslogtreecommitdiff
path: root/board/ti/dra7xx/mux_data.h
diff options
context:
space:
mode:
Diffstat (limited to 'board/ti/dra7xx/mux_data.h')
-rw-r--r--board/ti/dra7xx/mux_data.h261
1 files changed, 261 insertions, 0 deletions
diff --git a/board/ti/dra7xx/mux_data.h b/board/ti/dra7xx/mux_data.h
index 931d76d8eb..e70f8e6b8c 100644
--- a/board/ti/dra7xx/mux_data.h
+++ b/board/ti/dra7xx/mux_data.h
@@ -1079,4 +1079,265 @@ const struct iodelay_cfg_entry dra742_es2_0_iodelay_cfg_array[] = {
};
#endif
+
+#if defined(CONFIG_IODELAY_RECALIBRATION) && \
+ (defined(CONFIG_SPL_BUILD) || !defined(CONFIG_DM_MMC)) && \
+ defined(CONFIG_OMAP_HSMMC)
+
+static struct pad_conf_entry hsmmc1_default_padconf[] = {
+ {MMC1_CLK, (M0 | PIN_INPUT_PULLUP) /* mmc1_clk.clk */},
+ {MMC1_CMD, (M0 | PIN_INPUT_PULLUP) /* mmc1_cmd.cmd */},
+ {MMC1_DAT0, (M0 | PIN_INPUT_PULLUP) /* mmc1_dat0.dat0 */},
+ {MMC1_DAT1, (M0 | PIN_INPUT_PULLUP) /* mmc1_dat1.dat1 */},
+ {MMC1_DAT2, (M0 | PIN_INPUT_PULLUP) /* mmc1_dat2.dat2 */},
+ {MMC1_DAT3, (M0 | PIN_INPUT_PULLUP) /* mmc1_dat3.dat3 */},
+};
+
+static struct pad_conf_entry mmc2_pins_default_hs[] = {
+ {GPMC_A23, (M1 | PIN_INPUT_PULLUP) /* g pmc_a23.mmc2_clk */},
+ {GPMC_CS1, (M1 | PIN_INPUT_PULLUP) /* gpmc_cs1.mmc2_cmd */},
+ {GPMC_A24, (M1 | PIN_INPUT_PULLUP) /* gpmc_a24.mmc2_dat0 */},
+ {GPMC_A25, (M1 | PIN_INPUT_PULLUP) /* gpmc_a25.mmc2_dat1 */},
+ {GPMC_A26, (M1 | PIN_INPUT_PULLUP) /* gpmc_a26.mmc2_dat2 */},
+ {GPMC_A27, (M1 | PIN_INPUT_PULLUP) /* gpmc_a27.mmc2_dat3 */},
+ {GPMC_A19, (M1 | PIN_INPUT_PULLUP) /* gpmc_a19.mmc2_dat4 */},
+ {GPMC_A20, (M1 | PIN_INPUT_PULLUP) /* gpmc_a20.mmc2_dat5 */},
+ {GPMC_A21, (M1 | PIN_INPUT_PULLUP) /* gpmc_a21.mmc2_dat6 */},
+ {GPMC_A22, (M1 | PIN_INPUT_PULLUP) /* gpmc_a22.mmc2_dat7 */},
+};
+
+static struct pad_conf_entry mmc2_pins_ddr_hs200_1_8v[] = {
+ {GPMC_A23, (M1 | PIN_INPUT_PULLUP | MANUAL_MODE) /* gpmc_a23.mmc2_clk */},
+ {GPMC_CS1, (M1 | PIN_INPUT_PULLUP | MANUAL_MODE) /* gpmc_cs1.mmc2_cmd */},
+ {GPMC_A24, (M1 | PIN_INPUT_PULLUP | MANUAL_MODE) /* gpmc_a24.mmc2_dat0 */},
+ {GPMC_A25, (M1 | PIN_INPUT_PULLUP | MANUAL_MODE) /* gpmc_a25.mmc2_dat1 */},
+ {GPMC_A26, (M1 | PIN_INPUT_PULLUP | MANUAL_MODE) /* gpmc_a26.mmc2_dat2 */},
+ {GPMC_A27, (M1 | PIN_INPUT_PULLUP | MANUAL_MODE) /* gpmc_a27.mmc2_dat3 */},
+ {GPMC_A19, (M1 | PIN_INPUT_PULLUP | MANUAL_MODE) /* gpmc_a19.mmc2_dat4 */},
+ {GPMC_A20, (M1 | PIN_INPUT_PULLUP | MANUAL_MODE) /* gpmc_a20.mmc2_dat5 */},
+ {GPMC_A21, (M1 | PIN_INPUT_PULLUP | MANUAL_MODE) /* gpmc_a21.mmc2_dat6 */},
+ {GPMC_A22, (M1 | PIN_INPUT_PULLUP | MANUAL_MODE) /* gpmc_a22.mmc2_dat7 */},
+};
+
+static struct iodelay_cfg_entry mmc2_iodelay_hs200_1_8v_rev11_conf[] = {
+ {0x190, 621, 600 /* CFG_GPMC_A19_OEN */},
+ {0x194, 300, 0 /* CFG_GPMC_A19_OUT */},
+ {0x1a8, 739, 600 /* CFG_GPMC_A20_OEN */},
+ {0x1ac, 240, 0 /* CFG_GPMC_A20_OUT */},
+ {0x1b4, 812, 600 /* CFG_GPMC_A21_OEN */},
+ {0x1b8, 240, 0 /* CFG_GPMC_A21_OUT */},
+ {0x1c0, 954, 600 /* CFG_GPMC_A22_OEN */},
+ {0x1c4, 60, 0 /* CFG_GPMC_A22_OUT */},
+ {0x1d0, 1340, 420 /* CFG_GPMC_A23_OUT */},
+ {0x1d8, 935, 600 /* CFG_GPMC_A24_OEN */},
+ {0x1dc, 0, 0 /* CFG_GPMC_A24_OUT */},
+ {0x1e4, 525, 600 /* CFG_GPMC_A25_OEN */},
+ {0x1e8, 120, 0 /* CFG_GPMC_A25_OUT */},
+ {0x1f0, 767, 600 /* CFG_GPMC_A26_OEN */},
+ {0x1f4, 225, 0 /* CFG_GPMC_A26_OUT */},
+ {0x1fc, 565, 600 /* CFG_GPMC_A27_OEN */},
+ {0x200, 60, 0 /* CFG_GPMC_A27_OUT */},
+ {0x364, 969, 600 /* CFG_GPMC_CS1_OEN */},
+ {0x368, 180, 0 /* CFG_GPMC_CS1_OUT */},
+};
+
+static struct iodelay_cfg_entry mmc2_iodelay_hs200_1_8v_rev20_conf[] = {
+ {0x190, 274, 0 /* CFG_GPMC_A19_OEN */},
+ {0x194, 162, 0 /* CFG_GPMC_A19_OUT */},
+ {0x1a8, 401, 0 /* CFG_GPMC_A20_OEN */},
+ {0x1ac, 73, 0 /* CFG_GPMC_A20_OUT */},
+ {0x1b4, 465, 0 /* CFG_GPMC_A21_OEN */},
+ {0x1b8, 115, 0 /* CFG_GPMC_A21_OUT */},
+ {0x1c0, 633, 0 /* CFG_GPMC_A22_OEN */},
+ {0x1c4, 47, 0 /* CFG_GPMC_A22_OUT */},
+ {0x1d0, 935, 280 /* CFG_GPMC_A23_OUT */},
+ {0x1d8, 621, 0 /* CFG_GPMC_A24_OEN */},
+ {0x1dc, 0, 0 /* CFG_GPMC_A24_OUT */},
+ {0x1e4, 183, 0 /* CFG_GPMC_A25_OEN */},
+ {0x1e8, 0, 0 /* CFG_GPMC_A25_OUT */},
+ {0x1f0, 467, 0 /* CFG_GPMC_A26_OEN */},
+ {0x1f4, 0, 0 /* CFG_GPMC_A26_OUT */},
+ {0x1fc, 262, 0 /* CFG_GPMC_A27_OEN */},
+ {0x200, 46, 0 /* CFG_GPMC_A27_OUT */},
+ {0x364, 684, 0 /* CFG_GPMC_CS1_OEN */},
+ {0x368, 76, 0 /* CFG_GPMC_CS1_OUT */},
+};
+
+static struct iodelay_cfg_entry mmc2_iodelay_ddr_1_8v_rev11_conf[] = {
+ {0x18c, 0, 0 /* CFG_GPMC_A19_IN */},
+ {0x1a4, 274, 240 /* CFG_GPMC_A20_IN */},
+ {0x1b0, 0, 60 /* CFG_GPMC_A21_IN */},
+ {0x1bc, 0, 60 /* CFG_GPMC_A22_IN */},
+ {0x1c8, 514, 360 /* CFG_GPMC_A23_IN */},
+ {0x1d4, 187, 120 /* CFG_GPMC_A24_IN */},
+ {0x1e0, 0, 0 /* CFG_GPMC_A25_IN */},
+ {0x1ec, 0, 60 /* CFG_GPMC_A26_IN */},
+ {0x1f8, 121, 60 /* CFG_GPMC_A27_IN */},
+ {0x360, 0, 0 /* CFG_GPMC_CS1_IN */},
+ {0x190, 0, 0 /* CFG_GPMC_A19_OEN */},
+ {0x194, 174, 0 /* CFG_GPMC_A19_OUT */},
+ {0x1a8, 0, 0 /* CFG_GPMC_A20_OEN */},
+ {0x1ac, 168, 0 /* CFG_GPMC_A20_OUT */},
+ {0x1b4, 0, 0 /* CFG_GPMC_A21_OEN */},
+ {0x1b8, 136, 0 /* CFG_GPMC_A21_OUT */},
+ {0x1c0, 0, 0 /* CFG_GPMC_A22_OEN */},
+ {0x1c4, 0, 0 /* CFG_GPMC_A22_OUT */},
+ {0x1d0, 879, 0 /* CFG_GPMC_A23_OUT */},
+ {0x1d8, 0, 0 /* CFG_GPMC_A24_OEN */},
+ {0x1dc, 0, 0 /* CFG_GPMC_A24_OUT */},
+ {0x1e4, 0, 0 /* CFG_GPMC_A25_OEN */},
+ {0x1e8, 34, 0 /* CFG_GPMC_A25_OUT */},
+ {0x1f0, 0, 0 /* CFG_GPMC_A26_OEN */},
+ {0x1f4, 120, 0 /* CFG_GPMC_A26_OUT */},
+ {0x1fc, 0, 0 /* CFG_GPMC_A27_OEN */},
+ {0x200, 0, 0 /* CFG_GPMC_A27_OUT */},
+ {0x364, 0, 0 /* CFG_GPMC_CS1_OEN */},
+ {0x368, 11, 0 /* CFG_GPMC_CS1_OUT */},
+};
+
+static struct iodelay_cfg_entry mmc2_iodelay_ddr_1_8v_rev20_conf[] = {
+ {0x18c, 270, 0 /* CFG_GPMC_A19_IN */},
+ {0x1a4, 0, 0 /* CFG_GPMC_A20_IN */},
+ {0x1b0, 170, 0 /* CFG_GPMC_A21_IN */},
+ {0x1bc, 758, 0 /* CFG_GPMC_A22_IN */},
+ {0x1c8, 0, 0 /* CFG_GPMC_A23_IN */},
+ {0x1d4, 81, 0 /* CFG_GPMC_A24_IN */},
+ {0x1e0, 286, 0 /* CFG_GPMC_A25_IN */},
+ {0x1ec, 0, 0 /* CFG_GPMC_A26_IN */},
+ {0x1f8, 123, 0 /* CFG_GPMC_A27_IN */},
+ {0x360, 346, 0 /* CFG_GPMC_CS1_IN */},
+ {0x190, 0, 0 /* CFG_GPMC_A19_OEN */},
+ {0x194, 55, 0 /* CFG_GPMC_A19_OUT */},
+ {0x1a8, 0, 0 /* CFG_GPMC_A20_OEN */},
+ {0x1ac, 422, 0 /* CFG_GPMC_A20_OUT */},
+ {0x1b4, 642, 0 /* CFG_GPMC_A21_OEN */},
+ {0x1b8, 0, 0 /* CFG_GPMC_A21_OUT */},
+ {0x1c0, 0, 0 /* CFG_GPMC_A22_OEN */},
+ {0x1c4, 128, 0 /* CFG_GPMC_A22_OUT */},
+ {0x1d0, 0, 0 /* CFG_GPMC_A23_OUT */},
+ {0x1d8, 0, 0 /* CFG_GPMC_A24_OEN */},
+ {0x1dc, 395, 0 /* CFG_GPMC_A24_OUT */},
+ {0x1e4, 0, 0 /* CFG_GPMC_A25_OEN */},
+ {0x1e8, 0, 0 /* CFG_GPMC_A25_OUT */},
+ {0x1f0, 623, 0 /* CFG_GPMC_A26_OEN */},
+ {0x1f4, 0, 0 /* CFG_GPMC_A26_OUT */},
+ {0x1fc, 54, 0 /* CFG_GPMC_A27_OEN */},
+ {0x200, 0, 0 /* CFG_GPMC_A27_OUT */},
+ {0x364, 0, 0 /* CFG_GPMC_CS1_OEN */},
+ {0x368, 0, 0 /* CFG_GPMC_CS1_OUT */},
+};
+
+static struct iodelay_cfg_entry mmc2_iodelay_ddr_1_8v_dra72_conf[] = {
+ {0x18c, 0, 0, /* CFG_GPMC_A19_IN */},
+ {0x1a4, 121, 0, /* CFG_GPMC_A20_IN */},
+ {0x1b0, 0, 0, /* CFG_GPMC_A21_IN */},
+ {0x1bc, 20, 0, /* CFG_GPMC_A22_IN */},
+ {0x1c8, 108, 0, /* CFG_GPMC_A23_IN */},
+ {0x1d4, 31, 0, /* CFG_GPMC_A24_IN */},
+ {0x1e0, 0, 0, /* CFG_GPMC_A25_IN */},
+ {0x1ec, 24, 0, /* CFG_GPMC_A26_IN */},
+ {0x1f8, 0, 0, /* CFG_GPMC_A27_IN */},
+ {0x360, 0, 0, /* CFG_GPMC_CS1_IN */},
+ {0x194, 152, 0, /* CFG_GPMC_A19_OUT */},
+ {0x1ac, 206, 0, /* CFG_GPMC_A20_OUT */},
+ {0x1b8, 78, 0, /* CFG_GPMC_A21_OUT */},
+ {0x1c4, 2, 0, /* CFG_GPMC_A22_OUT */},
+ {0x1d0, 266, 0, /* CFG_GPMC_A23_OUT */},
+ {0x1dc, 0, 0, /* CFG_GPMC_A24_OUT */},
+ {0x1e8, 0, 0, /* CFG_GPMC_A25_OUT */},
+ {0x1f4, 43, 0, /* CFG_GPMC_A26_OUT */},
+ {0x200, 0, 0, /* CFG_GPMC_A27_OUT */},
+ {0x368, 0, 0, /* CFG_GPMC_CS1_OUT */},
+ {0x190, 0, 0, /* CFG_GPMC_A19_OEN */},
+ {0x1a8, 0, 0, /* CFG_GPMC_A20_OEN */},
+ {0x1b4, 0, 0, /* CFG_GPMC_A21_OEN */},
+ {0x1c0, 0, 0, /* CFG_GPMC_A22_OEN */},
+ {0x1d8, 0, 0, /* CFG_GPMC_A24_OEN */},
+ {0x1e4, 0, 0, /* CFG_GPMC_A25_OEN */},
+ {0x1f0, 0, 0, /* CFG_GPMC_A26_OEN */},
+ {0x1fc, 0, 0, /* CFG_GPMC_A27_OEN */},
+ {0x364, 0, 0, /* CFG_GPMC_CS1_OEN */},
+};
+
+static struct iodelay_cfg_entry mmc2_iodelay_hs200_1_8v_dra72_conf[] = {
+ {0x194, 150 , 95 /* CFG_GPMC_A19_OUT */},
+ {0x1AC, 250 , 0 /* CFG_GPMC_A20_OUT */},
+ {0x1B8, 125 , 0 /* CFG_GPMC_A21_OUT */},
+ {0x1C4, 100 , 0 /* CFG_GPMC_A22_OUT */},
+ {0x1D0, 870 , 415 /* CFG_GPMC_A23_OUT */},
+ {0x1DC, 30 , 0 /* CFG_GPMC_A24_OUT */},
+ {0x1E8, 200 , 0 /* CFG_GPMC_A25_OUT */},
+ {0x1F4, 200 , 0 /* CFG_GPMC_A26_OUT */},
+ {0x200, 0 , 0 /* CFG_GPMC_A27_OUT */},
+ {0x368, 240 , 0 /* CFG_GPMC_CS1_OUT */},
+ {0x190, 695 , 0 /* CFG_GPMC_A19_OEN */},
+ {0x1A8, 924 , 0 /* CFG_GPMC_A20_OEN */},
+ {0x1B4, 719 , 0 /* CFG_GPMC_A21_OEN */},
+ {0x1C0, 824 , 0 /* CFG_GPMC_A22_OEN */},
+ {0x1D8, 877 , 0 /* CFG_GPMC_A24_OEN */},
+ {0x1E4, 446 , 0 /* CFG_GPMC_A25_OEN */},
+ {0x1F0, 847 , 0 /* CFG_GPMC_A26_OEN */},
+ {0x1FC, 586 , 0 /* CFG_GPMC_A27_OEN */},
+ {0x364, 1039 , 0 /* CFG_GPMC_CS1_OEN */},
+};
+
+#define dimof(t) (sizeof(t) / sizeof(t[0]))
+static struct omap_hsmmc_pinctrl_state hsmmc1_default = {
+ .padconf = hsmmc1_default_padconf,
+ .npads = dimof(hsmmc1_default_padconf),
+ .iodelay = NULL,
+ .niodelays = 0,
+};
+
+static struct omap_hsmmc_pinctrl_state hsmmc2_default_hs = {
+ .padconf = mmc2_pins_default_hs,
+ .npads = dimof(mmc2_pins_default_hs),
+ .iodelay = NULL,
+ .niodelays = 0,
+};
+
+static struct omap_hsmmc_pinctrl_state hsmmc2_ddr_1v8_rev11 = {
+ .padconf = mmc2_pins_ddr_hs200_1_8v,
+ .npads = dimof(mmc2_pins_ddr_hs200_1_8v),
+ .iodelay = mmc2_iodelay_ddr_1_8v_rev11_conf,
+ .niodelays = dimof(mmc2_iodelay_ddr_1_8v_rev11_conf),
+};
+
+static struct omap_hsmmc_pinctrl_state hsmmc2_ddr_1v8_rev20 = {
+ .padconf = mmc2_pins_ddr_hs200_1_8v,
+ .npads = dimof(mmc2_pins_ddr_hs200_1_8v),
+ .iodelay = mmc2_iodelay_ddr_1_8v_rev20_conf,
+ .niodelays = dimof(mmc2_iodelay_ddr_1_8v_rev20_conf),
+};
+
+static struct omap_hsmmc_pinctrl_state hsmmc2_hs200_1v8_rev11 = {
+ .padconf = mmc2_pins_ddr_hs200_1_8v,
+ .npads = dimof(mmc2_pins_ddr_hs200_1_8v),
+ .iodelay = mmc2_iodelay_hs200_1_8v_rev11_conf,
+ .niodelays = dimof(mmc2_iodelay_hs200_1_8v_rev11_conf),
+};
+
+static struct omap_hsmmc_pinctrl_state hsmmc2_hs200_1v8_rev20 = {
+ .padconf = mmc2_pins_ddr_hs200_1_8v,
+ .npads = dimof(mmc2_pins_ddr_hs200_1_8v),
+ .iodelay = mmc2_iodelay_hs200_1_8v_rev20_conf,
+ .niodelays = dimof(mmc2_iodelay_hs200_1_8v_rev20_conf),
+};
+
+
+static struct omap_hsmmc_pinctrl_state hsmmc2_ddr_1v8_dra72 = {
+ .padconf = mmc2_pins_ddr_hs200_1_8v,
+ .npads = dimof(mmc2_pins_ddr_hs200_1_8v),
+ .iodelay = mmc2_iodelay_ddr_1_8v_dra72_conf,
+ .niodelays = dimof(mmc2_iodelay_ddr_1_8v_dra72_conf),
+};
+
+static struct omap_hsmmc_pinctrl_state hsmmc2_hs200_1v8_dra72 = {
+ .padconf = mmc2_pins_ddr_hs200_1_8v,
+ .npads = dimof(mmc2_pins_ddr_hs200_1_8v),
+ .iodelay = mmc2_iodelay_hs200_1_8v_dra72_conf,
+ .niodelays = dimof(mmc2_iodelay_hs200_1_8v_dra72_conf),
+};
+#endif
+
#endif /* _MUX_DATA_DRA7XX_H_ */