diff options
Diffstat (limited to 'arch/arm/mach-omap2/omap_hwmod.c')
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod.c | 14 |
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 | ||