Commit graph

44 commits

Author SHA1 Message Date
Solomon Peachy
a5961c944b FS#5320: Keypad hold doesn't let go until scrolling is used (ipod 4g/5g)
Patch by Boris Gjenero

Change-Id: I7df956fb63478bbbe891104faf5ab35096da7576
2020-11-29 08:51:37 -05:00
Cástor Muñoz
96a7603bf9 nano2g: fix dangerous mutex in hold switch
This is a quick patch to solve FS#13104, we can not disable the
clickwheel LDO from within interrupt code, so for the moment we
leave it enabled all the time, it is unknown how power comsumption
is affected when the hold switch is locked.

Change-Id: I8f675702e2b5becbcd9197c8b044e6b8daeea79f
2017-02-04 16:30:08 +01:00
Cástor Muñoz
d8989b15b7 iPod Classic: use PMU interrupts to detect hold switch
Finally the hold switch workaround is removed and it is detected
in the same way as OF does.

Change-Id: Iceac6ca48ffd131b8ee9f62ffdc2b3e30eb02042
2016-05-26 02:15:28 +02:00
Cástor Muñoz
348bfc5c8f iPod Classic: clickwheel fixes
Uses GPIO.E2 (Request To Send) to detect the holdswitch status,
it is a temporal workaround that seems to work on all models.

Holdswitch status must be detected to drive low GPIO.E2 (RTS)
and GPIO.E4 (Data Out) when the holdswitch is locked, otherwise
battery life decreases about 25%.

Holdswitch unlock action is detected by reading the HELLO message
that the external wheel controller sends when it is powered on,
this allows to quickly capture clickwheel activity after unlock.
GPIO.E2 is also used in case the HELLO message is missed because
the holdswitch was unlocked before Rockbox/bootloader starts.

These 2 lines (RTS and DOUT) can not be used to transmit messages
to the external clickwheel controller, not a problem, actually no
messages are sent while normal operation, only at initialization
stage.

Change-Id: I415fe54bfcbc2086d0f56d7affe6f789ce81a6db
2015-12-17 10:26:51 +01:00
Steffen Butzer
f5e2c25cb8 iPod Classic: Fix bidirectional clickwheel communication.
This restores functionality that was broken in g#194 and committed as
revision 7ec426e497.

Bidirectional communication is required to ask the clickwheel controller
for the initial button state during boot. Otherwise our driver would only
know about pressed buttons when the first change event is received,
which is too late for e.g. prevention of USB connection during boot.

This fix is also required to support the selection of OF, Rockbox,
Disk Mode, etc. in the iPod Classic Rockbox bootloader.

Change-Id: I127d54cf9e630d8075dd6d66f95dacb2816bfbc8
Reviewed-on: http://gerrit.rockbox.org/938
Reviewed-by: Michael Sparmann <theseven@gmx.net>
Tested: Michael Sparmann <theseven@gmx.net>
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
2014-10-02 12:56:37 +02:00
Cástor Muñoz
a75b5b83d4 Classic/6G: click wheel controller powersave
Mask click wheel controller clock gate when the hold switch is in
the locked position

Change-Id: I9de33db189afdb76cc5057e4c0e7efc587cf762b
2012-03-31 01:18:15 +02:00
Cástor Muñoz
7ec426e497 Classic/6G: hold switch detection using GPIO
Configures GPIO ports to detect holdswitch status instead of
polling the PMU via I2C, this fixes some random crashes

Change-Id: I407c9ca4c2c9203842f9e774b1c8d0455d59048c
Reviewed-on: http://gerrit.rockbox.org/194
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2012-03-28 00:51:22 +02:00
Bertrik Sikken
e71750b7a3 Make local functions and variables static where possible
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30897 a1c6a512-1295-4272-9138-f99709370657
2011-11-03 23:32:49 +00:00
Bertrik Sikken
0dfce1972b ipod6g: make functions and variables static where possible
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29767 a1c6a512-1295-4272-9138-f99709370657
2011-04-22 21:39:17 +00:00
Michael Sevakis
12375d1d3a Merge functionality of wakeups and semaphores-- fewer APIs and object types. semaphore_wait takes a timeout now so codecs and plugins have to be made incompatible. Don't make semaphores for targets not using them.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29492 a1c6a512-1295-4272-9138-f99709370657
2011-03-02 08:49:38 +00:00
Michael Sparmann
40e76916cd iPod Nano2g/Classic clickwheel: Configure GPIO pins as Hi-Z while hold switch is engaged
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29276 a1c6a512-1295-4272-9138-f99709370657
2011-02-10 19:13:30 +00:00
Michael Sparmann
6f9d2ad130 Fix more red. Two had been hiding.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29274 a1c6a512-1295-4272-9138-f99709370657
2011-02-10 10:22:44 +00:00
Michael Sparmann
42c0c9a619 Fix red
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29273 a1c6a512-1295-4272-9138-f99709370657
2011-02-10 10:16:27 +00:00
Michael Sparmann
cd8e8419f7 iPod Nano 2G: Fix current leak through clickwheel GPIOs when clickwheel is powered down
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29272 a1c6a512-1295-4272-9138-f99709370657
2011-02-10 10:10:27 +00:00
Michael Sparmann
2db7f00255 iPod Classic: Fix current leak through clickwheel GPIOs when clickwheel is powered down
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29267 a1c6a512-1295-4272-9138-f99709370657
2011-02-10 00:14:21 +00:00
Michael Sparmann
acf54bed55 iPod Classic: This time really fix the hold switch. Read it out through the power manager, and cache the result for 100 milliseconds because the power manager doesn't like being spammed
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29264 a1c6a512-1295-4272-9138-f99709370657
2011-02-09 21:39:40 +00:00
Michael Sparmann
91f9b0b8ca iPod Classic: Fix hold switch glitches
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29242 a1c6a512-1295-4272-9138-f99709370657
2011-02-07 18:53:17 +00:00
Michael Sparmann
0e773ad92c Implement hold switch and headphone detection on iPod Classic
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29001 a1c6a512-1295-4272-9138-f99709370657
2011-01-07 23:08:01 +00:00
Michael Sparmann
22d790bd12 Fix headphone detection on iPod Nano 2G being inverted (regression from r28800)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28843 a1c6a512-1295-4272-9138-f99709370657
2010-12-16 19:54:24 +00:00
Michael Sparmann
7b3c7db486 iPod Nano 2G: Correct clickwheel interrupt handler name, this time consistently.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28807 a1c6a512-1295-4272-9138-f99709370657
2010-12-12 12:40:37 +00:00
Andree Buschmann
951a519dc4 Fix bug introduced with r28800 (missing interrupt handler).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28806 a1c6a512-1295-4272-9138-f99709370657
2010-12-12 11:41:50 +00:00
Michael Sparmann
70447b529c usb-s3c6400x.[ch], button-clickwheel.c: Move s5l8701-specific parts to where they belong, prepare for s5l8702
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28800 a1c6a512-1295-4272-9138-f99709370657
2010-12-12 00:52:02 +00:00
Michael Sparmann
c599da333e Commit FS#11663 by me - Patch: iPod Nano 2G Bootloader: Boot OF if MENU button is held
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28237 a1c6a512-1295-4272-9138-f99709370657
2010-10-10 20:52:46 +00:00
Andree Buschmann
274c84fae9 Disable clickwheel power supply when hold button is active for iPod nano 2G.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28161 a1c6a512-1295-4272-9138-f99709370657
2010-09-25 21:41:10 +00:00
Andree Buschmann
7901505dc3 Higher responsiveness for iPod clickwheel acceleration.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25047 a1c6a512-1295-4272-9138-f99709370657
2010-03-06 15:53:45 +00:00
Michael Sparmann
4a63ac7c00 Add iPod Nano 2G µsec timer, and use it in the clickwheel driver.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23309 a1c6a512-1295-4272-9138-f99709370657
2009-10-21 18:53:41 +00:00
Michael Sparmann
5a4ce22b77 Fix the iPod Nano 2G clickwheel when releasing the hold switch
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23122 a1c6a512-1295-4272-9138-f99709370657
2009-10-12 00:12:02 +00:00
Dave Chapman
3c362fa8c6 Nano2G - implement "Pause on headphone unplug" feature
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23072 a1c6a512-1295-4272-9138-f99709370657
2009-10-10 15:37:05 +00:00
Dave Chapman
f5feb13cc5 Unify the button driver for the Nano 2G with the driver for earlier clickwheel ipods. The clickwheel hardware appears to be the same - the differences are just related to the hardware init and how the data is read.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22878 a1c6a512-1295-4272-9138-f99709370657
2009-10-02 23:04:30 +00:00
Dave Chapman
75e301dabb Fix a comment so that it matches the code
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22718 a1c6a512-1295-4272-9138-f99709370657
2009-09-17 08:24:59 +00:00
Jonathan Gordon
d10f9511cf Fix FS#5230 - reinit the opto-i2c after disabling hold so the buttons work again
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22078 a1c6a512-1295-4272-9138-f99709370657
2009-07-29 01:57:48 +00:00
Bertrik Sikken
0023943439 Fix duplicate #includes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20977 a1c6a512-1295-4272-9138-f99709370657
2009-05-17 14:50:19 +00:00
Bertrik Sikken
dccdce6c3c Remove unnecessary #include "adc.h"
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20791 a1c6a512-1295-4272-9138-f99709370657
2009-04-25 22:24:59 +00:00
Michael Giacomelli
70e9c7aed3 Commit FS#8624 by Linus Nielsen, Ryan Press, Craig Elliott, and Kenderes Tamas. Adds preliminary support for numerous accessories that use the ipod serial port on the dock connector. See IpodAccessories for a list of tested devices.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19585 a1c6a512-1295-4272-9138-f99709370657
2008-12-25 01:46:16 +00:00
Daniel Stenberg
2acc0ac542 Updated our source code header to explicitly mention that we are GPL v2 or
later. We still need to hunt down snippets used that are not. 1324 modified
files...
http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
2008-06-28 18:10:04 +00:00
Michael Sevakis
fa5bd07f6b Oops. Lost sync on a few instances and 'HI' registers.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17684 a1c6a512-1295-4272-9138-f99709370657
2008-06-03 05:19:32 +00:00
Andree Buschmann
e8df7c4904 Undo r17470 because of regressions in some debug menus.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17472 a1c6a512-1295-4272-9138-f99709370657
2008-05-12 15:37:03 +00:00
Andree Buschmann
0b81405225 Fix for FS#5162. Being able to read scrollwheel action via button_read_device() for iPod's and e200.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17470 a1c6a512-1295-4272-9138-f99709370657
2008-05-12 08:27:53 +00:00
Michael Giacomelli
054447f9e6 Commit FS#8379 by Andree Buschmann. Disables much of the remaining unneeded hardware on PP50xx targets (Ipods, Sansa, H10s, etc) resulting in a large savings in power and consequent increase in battery life. Results vary from target to target and from codec to codec, but we now approach the OF runtime on several PP devices. For now, leave base CPU clock at 30MHz, although further savings is possible with some codecs if clock is reduced. Additionally, fix battery capacity on c200 and use my measurements to improve runtime estimation for Sandisk targets.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16259 a1c6a512-1295-4272-9138-f99709370657
2008-02-10 05:39:20 +00:00
Linus Nielsen Feltzing
e75327b332 FS#7738 - Scroll wheel acceleration for iPod
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15681 a1c6a512-1295-4272-9138-f99709370657
2007-11-19 11:05:54 +00:00
Jens Arnold
11b06f0423 iPods: Touching the wheel now resets the poweroff timer, so the iPod no longer shuts down unexpectedly while operating the wheel only, e.g. in the text viewer.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12068 a1c6a512-1295-4272-9138-f99709370657
2007-01-18 22:10:29 +00:00
Michael Sevakis
4b902679cc Convert queues to use intptr_t for event data and return values as most of the time pointer are not passed and it should make some things a bit cleaner.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11818 a1c6a512-1295-4272-9138-f99709370657
2006-12-19 16:50:07 +00:00
Daniel Ankers
5c6f32af95 Move iPod headphone detection into target tree (FS#6131 by Robert Keevil) and fix detection on 3G iPod
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11143 a1c6a512-1295-4272-9138-f99709370657
2006-10-07 12:19:34 +00:00
Barry Wardell
d4945dc0d0 Move all iPod targets into the target tree. FS#5890
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11129 a1c6a512-1295-4272-9138-f99709370657
2006-10-05 10:58:51 +00:00