aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/omap_hwmod.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-omap2/omap_hwmod.c')
-rw-r--r--arch/arm/mach-omap2/omap_hwmod.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index 77a8be64cfae..e282e35769fd 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -116,7 +116,6 @@
116 * - Open Core Protocol Specification 2.2 116 * - Open Core Protocol Specification 2.2
117 * 117 *
118 * To do: 118 * To do:
119 * - pin mux handling
120 * - handle IO mapping 119 * - handle IO mapping
121 * - bus throughput & module latency measurement code 120 * - bus throughput & module latency measurement code
122 * 121 *
@@ -149,6 +148,7 @@
149#include "cm44xx.h" 148#include "cm44xx.h"
150#include "prm2xxx_3xxx.h" 149#include "prm2xxx_3xxx.h"
151#include "prm44xx.h" 150#include "prm44xx.h"
151#include "mux.h"
152 152
153/* Maximum microseconds to wait for OMAP module to softreset */ 153/* Maximum microseconds to wait for OMAP module to softreset */
154#define MAX_MODULE_SOFTRESET_WAIT 10000 154#define MAX_MODULE_SOFTRESET_WAIT 10000
@@ -1229,7 +1229,9 @@ static int _enable(struct omap_hwmod *oh)
1229 oh->_state == _HWMOD_STATE_DISABLED) && oh->rst_lines_cnt == 1) 1229 oh->_state == _HWMOD_STATE_DISABLED) && oh->rst_lines_cnt == 1)
1230 _deassert_hardreset(oh, oh->rst_lines[0].name); 1230 _deassert_hardreset(oh, oh->rst_lines[0].name);
1231 1231
1232 /* XXX mux balls */ 1232 /* Mux pins for device runtime if populated */
1233 if (oh->mux)
1234 omap_hwmod_mux(oh->mux, _HWMOD_STATE_ENABLED);
1233 1235
1234 _add_initiator_dep(oh, mpu_oh); 1236 _add_initiator_dep(oh, mpu_oh);
1235 _enable_clocks(oh); 1237 _enable_clocks(oh);
@@ -1276,6 +1278,10 @@ static int _idle(struct omap_hwmod *oh)
1276 _del_initiator_dep(oh, mpu_oh); 1278 _del_initiator_dep(oh, mpu_oh);
1277 _disable_clocks(oh); 1279 _disable_clocks(oh);
1278 1280
1281 /* Mux pins for device idle if populated */
1282 if (oh->mux)
1283 omap_hwmod_mux(oh->mux, _HWMOD_STATE_IDLE);
1284
1279 oh->_state = _HWMOD_STATE_IDLE; 1285 oh->_state = _HWMOD_STATE_IDLE;
1280 1286
1281 return 0; 1287 return 0;
@@ -1334,7 +1340,9 @@ static int _shutdown(struct omap_hwmod *oh)
1334 } 1340 }
1335 /* XXX Should this code also force-disable the optional clocks? */ 1341 /* XXX Should this code also force-disable the optional clocks? */
1336 1342
1337 /* XXX mux any associated balls to safe mode */ 1343 /* Mux pins to safe mode or use populated off mode values */
1344 if (oh->mux)
1345 omap_hwmod_mux(oh->mux, _HWMOD_STATE_DISABLED);
1338 1346
1339 oh->_state = _HWMOD_STATE_DISABLED; 1347 oh->_state = _HWMOD_STATE_DISABLED;
1340 1348