summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/target/arm/ipod/button-1g-3g.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/firmware/target/arm/ipod/button-1g-3g.c b/firmware/target/arm/ipod/button-1g-3g.c
index 3a9b9ea..5455205 100644
--- a/firmware/target/arm/ipod/button-1g-3g.c
+++ b/firmware/target/arm/ipod/button-1g-3g.c
@@ -213,7 +213,18 @@ int button_read_device(void)
hold_button = button_hold();
if (hold_button != hold_button_old)
+ {
backlight_hold_changed(hold_button);
+#ifdef IPOD_1G2G
+ /* Disable the 1st gen's wheel on hold in order to save power.
+ * The wheel draws ~12mA when enabled! Toggling the bit doesn't hurt
+ * on 2nd gen, because the pin is set to input (headphone detect). */
+ if (hold_button)
+ GPIOB_OUTPUT_VAL &= ~0x01; /* disable wheel */
+ else
+ GPIOB_OUTPUT_VAL |= 0x01; /* enable wheel */
+#endif
+ }
return int_btn;
}