|
@@ -1223,3 +1223,134 @@ static struct omap_mux __initdata omap4_wkup_muxmodes[] = {
|
|
|
_OMAP4_MUXENTRY(FREF_SLICER_IN, 0, "fref_slicer_in", NULL, NULL,
|
|
|
"gpi_wk5", "c2c_wakereqin", NULL, NULL, "safe_mode"),
|
|
|
_OMAP4_MUXENTRY(FREF_CLK_IOREQ, 0, "fref_clk_ioreq", NULL, NULL, NULL,
|
|
|
+ NULL, NULL, NULL, NULL),
|
|
|
+ _OMAP4_MUXENTRY(FREF_CLK0_OUT, 6, "fref_clk0_out", "fref_clk1_req",
|
|
|
+ "sys_drm_msecure", "gpio_wk6", NULL, NULL, NULL,
|
|
|
+ "safe_mode"),
|
|
|
+ _OMAP4_MUXENTRY(FREF_CLK3_REQ, 30, "fref_clk3_req", "fref_clk1_req",
|
|
|
+ "sys_drm_msecure", "gpio_wk30", "c2c_wakereqin", NULL,
|
|
|
+ NULL, "safe_mode"),
|
|
|
+ _OMAP4_MUXENTRY(FREF_CLK3_OUT, 31, "fref_clk3_out", "fref_clk2_req",
|
|
|
+ "sys_secure_indicator", "gpio_wk31", "c2c_wakereqout",
|
|
|
+ NULL, NULL, "safe_mode"),
|
|
|
+ _OMAP4_MUXENTRY(FREF_CLK4_REQ, 7, "fref_clk4_req", "fref_clk5_out",
|
|
|
+ NULL, "gpio_wk7", NULL, NULL, NULL, NULL),
|
|
|
+ _OMAP4_MUXENTRY(FREF_CLK4_OUT, 8, "fref_clk4_out", NULL, NULL,
|
|
|
+ "gpio_wk8", NULL, NULL, NULL, NULL),
|
|
|
+ _OMAP4_MUXENTRY(SYS_32K, 0, "sys_32k", NULL, NULL, NULL, NULL, NULL,
|
|
|
+ NULL, NULL),
|
|
|
+ _OMAP4_MUXENTRY(SYS_NRESPWRON, 0, "sys_nrespwron", NULL, NULL, NULL,
|
|
|
+ NULL, NULL, NULL, NULL),
|
|
|
+ _OMAP4_MUXENTRY(SYS_NRESWARM, 0, "sys_nreswarm", NULL, NULL, NULL,
|
|
|
+ NULL, NULL, NULL, NULL),
|
|
|
+ _OMAP4_MUXENTRY(SYS_PWR_REQ, 0, "sys_pwr_req", NULL, NULL, NULL, NULL,
|
|
|
+ NULL, NULL, NULL),
|
|
|
+ _OMAP4_MUXENTRY(SYS_PWRON_RESET_OUT, 29, "sys_pwron_reset_out", NULL,
|
|
|
+ NULL, "gpio_wk29", NULL, NULL, NULL, NULL),
|
|
|
+ _OMAP4_MUXENTRY(SYS_BOOT6, 9, "sys_boot6", "dpm_emu18", NULL,
|
|
|
+ "gpio_wk9", "c2c_wakereqout", NULL, NULL,
|
|
|
+ "safe_mode"),
|
|
|
+ _OMAP4_MUXENTRY(SYS_BOOT7, 10, "sys_boot7", "dpm_emu19", NULL,
|
|
|
+ "gpio_wk10", NULL, NULL, NULL, "safe_mode"),
|
|
|
+ _OMAP4_MUXENTRY(JTAG_NTRST, 0, "jtag_ntrst", NULL, NULL, NULL, NULL,
|
|
|
+ NULL, NULL, NULL),
|
|
|
+ _OMAP4_MUXENTRY(JTAG_TCK, 0, "jtag_tck", NULL, NULL, NULL, NULL, NULL,
|
|
|
+ NULL, "safe_mode"),
|
|
|
+ _OMAP4_MUXENTRY(JTAG_RTCK, 0, "jtag_rtck", NULL, NULL, NULL, NULL,
|
|
|
+ NULL, NULL, NULL),
|
|
|
+ _OMAP4_MUXENTRY(JTAG_TMS_TMSC, 0, "jtag_tms_tmsc", NULL, NULL, NULL,
|
|
|
+ NULL, NULL, NULL, "safe_mode"),
|
|
|
+ _OMAP4_MUXENTRY(JTAG_TDI, 0, "jtag_tdi", NULL, NULL, NULL, NULL, NULL,
|
|
|
+ NULL, NULL),
|
|
|
+ _OMAP4_MUXENTRY(JTAG_TDO, 0, "jtag_tdo", NULL, NULL, NULL, NULL, NULL,
|
|
|
+ NULL, NULL),
|
|
|
+ { .reg_offset = OMAP_MUX_TERMINATOR },
|
|
|
+};
|
|
|
+
|
|
|
+/*
|
|
|
+ * Balls for 44XX CBL & CBS package - wakeup partition
|
|
|
+ * 547-pin CBL ES1.0 S-FPGA-N547, 0.40mm Ball Pitch (Top),
|
|
|
+ * 0.40mm Ball Pitch (Bottom)
|
|
|
+ */
|
|
|
+#if defined(CONFIG_OMAP_MUX) && defined(CONFIG_DEBUG_FS) \
|
|
|
+ && defined(CONFIG_OMAP_PACKAGE_CBL)
|
|
|
+static struct omap_ball __initdata omap4_wkup_cbl_cbs_ball[] = {
|
|
|
+ _OMAP4_BALLENTRY(SIM_IO, "h4", NULL),
|
|
|
+ _OMAP4_BALLENTRY(SIM_CLK, "j2", NULL),
|
|
|
+ _OMAP4_BALLENTRY(SIM_RESET, "g2", NULL),
|
|
|
+ _OMAP4_BALLENTRY(SIM_CD, "j1", NULL),
|
|
|
+ _OMAP4_BALLENTRY(SIM_PWRCTRL, "k1", NULL),
|
|
|
+ _OMAP4_BALLENTRY(SR_SCL, "ag9", NULL),
|
|
|
+ _OMAP4_BALLENTRY(SR_SDA, "af9", NULL),
|
|
|
+ _OMAP4_BALLENTRY(FREF_XTAL_IN, "ah6", NULL),
|
|
|
+ _OMAP4_BALLENTRY(FREF_SLICER_IN, "ag8", NULL),
|
|
|
+ _OMAP4_BALLENTRY(FREF_CLK_IOREQ, "ad1", NULL),
|
|
|
+ _OMAP4_BALLENTRY(FREF_CLK0_OUT, "ad2", NULL),
|
|
|
+ _OMAP4_BALLENTRY(FREF_CLK3_REQ, "ad3", NULL),
|
|
|
+ _OMAP4_BALLENTRY(FREF_CLK3_OUT, "ad4", NULL),
|
|
|
+ _OMAP4_BALLENTRY(FREF_CLK4_REQ, "ac2", NULL),
|
|
|
+ _OMAP4_BALLENTRY(FREF_CLK4_OUT, "ac3", NULL),
|
|
|
+ _OMAP4_BALLENTRY(SYS_32K, "ag7", NULL),
|
|
|
+ _OMAP4_BALLENTRY(SYS_NRESPWRON, "ae7", NULL),
|
|
|
+ _OMAP4_BALLENTRY(SYS_NRESWARM, "af7", NULL),
|
|
|
+ _OMAP4_BALLENTRY(SYS_PWR_REQ, "ah7", NULL),
|
|
|
+ _OMAP4_BALLENTRY(SYS_PWRON_RESET_OUT, "ag6", NULL),
|
|
|
+ _OMAP4_BALLENTRY(SYS_BOOT6, "af8", NULL),
|
|
|
+ _OMAP4_BALLENTRY(SYS_BOOT7, "ae8", NULL),
|
|
|
+ _OMAP4_BALLENTRY(JTAG_NTRST, "ah2", NULL),
|
|
|
+ _OMAP4_BALLENTRY(JTAG_TCK, "ag1", NULL),
|
|
|
+ _OMAP4_BALLENTRY(JTAG_RTCK, "ae3", NULL),
|
|
|
+ _OMAP4_BALLENTRY(JTAG_TMS_TMSC, "ah1", NULL),
|
|
|
+ _OMAP4_BALLENTRY(JTAG_TDI, "ae1", NULL),
|
|
|
+ _OMAP4_BALLENTRY(JTAG_TDO, "ae2", NULL),
|
|
|
+ { .reg_offset = OMAP_MUX_TERMINATOR },
|
|
|
+};
|
|
|
+#else
|
|
|
+#define omap4_wkup_cbl_cbs_ball NULL
|
|
|
+#endif
|
|
|
+
|
|
|
+int __init omap4_mux_init(struct omap_board_mux *board_subset,
|
|
|
+ struct omap_board_mux *board_wkup_subset, int flags)
|
|
|
+{
|
|
|
+ struct omap_ball *package_balls_core;
|
|
|
+ struct omap_ball *package_balls_wkup = omap4_wkup_cbl_cbs_ball;
|
|
|
+ struct omap_mux *core_muxmodes;
|
|
|
+ struct omap_mux *core_subset = NULL;
|
|
|
+ int ret;
|
|
|
+
|
|
|
+ switch (flags & OMAP_PACKAGE_MASK) {
|
|
|
+ case OMAP_PACKAGE_CBL:
|
|
|
+ pr_debug("%s: OMAP4430 ES1.0 -> OMAP_PACKAGE_CBL\n", __func__);
|
|
|
+ package_balls_core = omap4_core_cbl_ball;
|
|
|
+ core_muxmodes = omap4_core_muxmodes;
|
|
|
+ break;
|
|
|
+ case OMAP_PACKAGE_CBS:
|
|
|
+ pr_debug("%s: OMAP4430 ES2.X -> OMAP_PACKAGE_CBS\n", __func__);
|
|
|
+ package_balls_core = omap4_core_cbs_ball;
|
|
|
+ core_muxmodes = omap4_core_muxmodes;
|
|
|
+ core_subset = omap4_es2_core_subset;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ pr_err("%s: Unknown omap package, mux disabled\n", __func__);
|
|
|
+ return -EINVAL;
|
|
|
+ }
|
|
|
+
|
|
|
+ ret = omap_mux_init("core",
|
|
|
+ OMAP_MUX_GPIO_IN_MODE3,
|
|
|
+ OMAP4_CTRL_MODULE_PAD_CORE_MUX_PBASE,
|
|
|
+ OMAP4_CTRL_MODULE_PAD_CORE_MUX_SIZE,
|
|
|
+ core_muxmodes, core_subset, board_subset,
|
|
|
+ package_balls_core);
|
|
|
+ if (ret)
|
|
|
+ return ret;
|
|
|
+
|
|
|
+ ret = omap_mux_init("wkup",
|
|
|
+ OMAP_MUX_GPIO_IN_MODE3,
|
|
|
+ OMAP4_CTRL_MODULE_PAD_WKUP_MUX_PBASE,
|
|
|
+ OMAP4_CTRL_MODULE_PAD_WKUP_MUX_SIZE,
|
|
|
+ omap4_wkup_muxmodes, NULL, board_wkup_subset,
|
|
|
+ package_balls_wkup);
|
|
|
+
|
|
|
+ return ret;
|
|
|
+}
|
|
|
+
|