Commit graph

398 commits

Author SHA1 Message Date
Amaury Pouly
6d64111b3c imx233: add hardware and software watchdog
The hardware watchdog automatically shutdown the device after 10s of
inactivity, being defined as 10s without the tick IRQ fired (aka braindead
device).
The software IRQ mechanism is more interesting: it uses a very high priority
timer setup as one-shot to trigger after 5s of inactivity (but IRQ still
enabled). When detected, it patches the running code to insert a SWI
instruction so that on interrupt return it will trigger a SWI and produce
a meaningfull backtrace to debug the deadlock. This should allow to debug
freezes in IRQ context.

Change-Id: Ic55dad01201676bfb6dd79e78e535c6707cb88e6
2014-02-10 23:14:24 +01:00
Amaury Pouly
1a06292e41 imx233: increase audio DAC IRQ priority
This should hopefully fix some audio glitches

Change-Id: Ic9701d281e7559c9d93fcb8dad9373caaad9bfb6
2014-02-10 23:14:24 +01:00
Amaury Pouly
91a8cd1ae9 imx233: add code to debug menu to check nested IRQ actually work
Change-Id: I6b51e89222efa868c03944fc37bcc9f382853be1
2014-02-10 23:14:24 +01:00
Amaury Pouly
f7efa925fd imx233: add support for nested IRQ
Rewrite IRQ handling to allow nested IRQs: on each IRQ entry, we save the
parameters on the (IRQ) stack and then switch to SVC mode (with its own
stack) and renable interrupts. Make sure interrupt is properly acknowledged
by using the read side-effect (RSE) mode and handle priority levels as well.

Change-Id: I3fd68289b430c56bdd256868939238ff268e42b4
2014-02-10 23:14:24 +01:00
Amaury Pouly
cefaabfe9d imx233: cleanup icoll and add software irq sources
Change-Id: I4cf2b0b74cf391021afaec08329ec7cf5dbd578d
2014-02-10 23:14:24 +01:00
Amaury Pouly
55877f442a imx233: always disable watchdog on boot
Change-Id: I2e81b038b783968aa18ef3398d6e2aa66a2fee7c
2014-02-10 23:14:24 +01:00
Amaury Pouly
0ba4c3b078 imx233: enhance icoll with priority and soft IRQ
Change-Id: If9568ab6e11bf933b2cc607e5a86866a975886bc
2014-02-10 23:14:24 +01:00
Amaury Pouly
ab5dfd55aa imx233: add timrot to debug menu
Change-Id: Id60fcd64d509445d4ab62c4a2a8f2a074727c31d
2014-02-10 23:14:24 +01:00
Amaury Pouly
4495913c28 imx233: clean timrot a bit
Change-Id: Ic803a6b5c93978cd3246e553579ac8a1ba35e191
2014-02-10 23:14:23 +01:00
Amaury Pouly
11d73e177b imx233: be less strict about partition checks (>=1GB only)
Change-Id: I4bc073c500a65240e359ab50f001b4370d985781
2014-01-21 18:52:28 +01:00
Amaury Pouly
877eb7a112 imx233: handle quirk about OF partition address bug/feature
Change-Id: Ib8b854ce7132ac460672f9adf8611f580ca53746
2014-01-21 18:52:28 +01:00
Amaury Pouly
69d0dae55b Initial commit for the ZEN X-Fi Style
Change-Id: Ib25a357a7bafd2ef25f273cadff70fafbd8d4661
2014-01-21 18:52:28 +01:00
Thomas Martitz
22b33d6eb8 Add missing kernel.h includes (hopefully all of them), take #2.
Change-Id: I62cedf992bb096987050621cfc34f0432e9da170
2014-01-05 20:42:48 +01:00
Thomas Martitz
22a28f9caa Add missing kernel.h includes (hopefully all of them).
Change-Id: I9c1825296a788587b8d494d8514b3314847b0ff0
2014-01-05 20:32:09 +01:00
Amaury Pouly
40fae1d718 zenxfi2: remove unused function
Change-Id: I98acfc9394ac83a45985364fdfad85af2f7d1773
2013-12-24 12:39:58 +01:00
Amaury Pouly
01d8cc6f39 Fix yellow
Change-Id: I60cd312c501f2f0fe0c12489c86c856eeb8e1aa8
2013-12-08 11:30:13 +01:00
Amaury Pouly
b163fb9eac rmi/fuze+: add product info in the debug screen
Change-Id: Id06dbe0909e37587a45a2ebf5b0beab93cd44f61
2013-12-08 11:12:39 +01:00
Amaury Pouly
2bf192ee6e imx233: regenerate registers headers
Change-Id: I546177a247646d7a9864d1ec2796ef0708e50667
2013-12-06 02:04:37 +01:00
Amaury Pouly
c945fb6e94 imx233: fix storage code to work for non-MD builds
Change-Id: Ic326e59385aff3be1ada52b482e94051c512323d
2013-12-06 01:55:37 +01:00
Lorenzo Miori
1deab73980 Initial commit for the YP-Z5 port
The port uses the imx233 soc, it's a STMP3650 based Samsung player

Change-Id: I50b6d7e77fd292fab5ed26de87853cd5aaf9eaa4
Reviewed-on: http://gerrit.rockbox.org/490
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2013-12-02 20:48:21 +01:00
Amaury Pouly
23c6421f38 imx233: don't compile fm tuner code in bootloader
Change-Id: Icd36e6b03965272eb169a19630b720f38bac6d9e
2013-12-02 20:09:56 +01:00
Amaury Pouly
9dab30adf0 imx233: fix red on stmp3600
Change-Id: I56527f2d643cb3c453e08cd1f759b80ce10ceb66
2013-12-02 19:59:16 +01:00
Amaury Pouly
3f55f01e92 imx233: rework power management for work on stmp3700
Change-Id: Ia1f7e8b633dfe6ef8dc840b3eb22eaf79c53ce6b
2013-12-01 22:37:36 +00:00
Amaury Pouly
2ce484c658 Revert "imx233: always keep cards in TRAN mode"
This reverts commit 462adf2a0f.
Leaving the card in TRAN results in a huge power consumption because some cards
and internal bridges do not automatically enter power saving mode in TRAN state.

Change-Id: If79efe8cf99b24174889b3a5ebbcb51b07085f58
2013-11-30 16:15:35 +00:00
Amaury Pouly
cbed7ecafe zen: rework lcd enable
The ZEN/ZEN-XFi seem to be very picky about the lcd. And they do not like
standby mode so I'm going to drop it, the OF doesn't use it anyway. I still
don't know what this "power" pin is about, obviously it's not real power but
the OF toggle it. Let's hope the lcd will finally become more stable with
fix: the driver now does full power on/off on enable/disable.

Change-Id: I1c465ee4f2462bc3d9507e5f575f0a181af60214
2013-11-26 15:57:13 +00:00
Lorenzo Miori
75c791dabf imx233: add the possibility to choose audio output coupling mode
via target-defined option

Change-Id: I1bffbc7f17a11cf690a771057c2e4a7ba6a5faaa
Reviewed-on: http://gerrit.rockbox.org/678
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2013-11-25 20:17:12 +01:00
Amaury Pouly
75dc601738 imx233/sdmmc: {sd,mmc}_{present,removable} don't depend on multivolume
Change-Id: Id35fbdbc62b804e9a67c6d1f18b19a1d2051bb78
2013-11-20 16:38:54 +00:00
Amaury Pouly
1ef7b6529e Finally fix yellow
Change-Id: Ia7c30821a9417a23478c053b3edcf26e1179a9d9
2013-11-19 22:58:41 +00:00
Amaury Pouly
0fb05249c6 Fix yellow
Change-Id: I9d283592c6411c97948ae4962e2c22d7ab45bec3
2013-11-19 22:29:31 +00:00
Amaury Pouly
da7be39614 Fix sim red
Change-Id: Icbdf47c5c508516892b1ce75558b878dc512e780
2013-11-19 22:12:42 +00:00
Amaury Pouly
0c394770aa Forgot lcd driver of the ZEN V !
Change-Id: I0e0e04d4de3b28058e3822043d46d64291265c75
2013-11-19 21:05:47 +00:00
Amaury Pouly
446f352abd imx233: factor fmradio i2c and tuner power code
Choices are limited for those: i2c is either generic software or imx233
hardware and power is either none or with a gpio. So factor ever possible
combination in a single common file and use fmradio-target.h to supply the
required parameters. This will remove a bunch of duplicate code.

Change-Id: If12faeb2e371631cd39cc18a4c1d859812007934
2013-11-19 20:39:10 +00:00
Amaury Pouly
c2c2274e0a imx233: factor adc accross targets
The old code allowed each target to specify its adc targets but this proved
useless since the target rely directly on imx233/lradc for input method and
generic adc is mostly used for battery and debug. Remove all target specific
files and provide a generic implemenation. The targets can still specify a
battery temperature channel in powermgmt-target.h

Change-Id: I68cf2e3e46379d174ac6d774ffb237bb15a19ae3
2013-11-19 19:04:03 +00:00
Amaury Pouly
977a6c3ce7 Initial commit for the Creative ZEN V
Change-Id: I3408cfdf742ea5995d5c87bf76653f436e1ec2b0
2013-11-18 21:44:06 +00:00
Amaury Pouly
a8b816ae9c creativezenmozaic: factor out code with the zen/zenxfi
Most of the code is similar, only the lcd driver is significantly different.

Change-Id: I9eab1faf08d2356f2d820d6930ef3b0653349aa1
2013-11-18 21:44:05 +00:00
Amaury Pouly
bb8dd05343 imx233/creative: workaround stupid Creative partition table
This should fix wrong partition size on the ZEN, X-Fi and Mozaic

Change-Id: Ib8999d414773c12e1b97d515e9bf058a82141d35
2013-11-11 02:02:11 +00:00
Amaury Pouly
39bfd0d2ab imx233: fix yellow
Change-Id: I6fc2559a0c6f91301bb1039d7125f7a6fb55cac5
2013-11-11 02:01:48 +00:00
Amaury Pouly
a54c4ab7d4 zen/zenxfi: correctly implement partial redraw
Although there is no difference in the cost of a full or partial update,
it is preferable that the semantic of lcd_update_rect() be correct.

Change-Id: I8a168388b98e0dbd7237729b7fd8a62fa1885be1
2013-11-11 02:01:05 +00:00
Amaury Pouly
7bbdcc1c3b zen/zenxfi: implement lcd standby
Change-Id: I5960221d45490c469ffd2a481d447185aba70e56
2013-11-11 02:00:41 +00:00
Amaury Pouly
b1ee21d45e zenxfi/zenmozaic: put HAVE_HEADPHONE_DETECTION in config file
Otherwise it breaks the simulator build

Change-Id: I816a34920283fc16e9c08ed6abe5fa41c0671f0a
2013-11-08 13:05:02 +00:00
Amaury Pouly
78c060b09c imx233: rework vdd5v shared irq handling
The previous code disabled the irq when there were fired. This seems
unreliable for some mysterious reason. Instead simply disable them
before enabling the irq.

Change-Id: I7ee1aa25dbc41c7dd53aa7c7744aa5e4d70ff2d8
Reviewed-on: http://gerrit.rockbox.org/640
Reviewed-by: benjamin brown <foolshperson@gmail.com>
Tested-by: benjamin brown <foolshperson@gmail.com>
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2013-10-23 13:33:02 +02:00
Amaury Pouly
4aa32fb8f4 imx233: fix partition window computation
The code was broken in two ways:
- it called storage_read_sectors with a wrong drive number
- calling storage_read_sectors too early at boot time will fail because
  we are in the init function, so the drive is not yet registered.
To fix this, use a user provided read callback instead of storage read
functions.

Change-Id: I5ab79d48391fae619d5f8ae09c3d499fc43854c8
2013-10-22 15:55:28 +02:00
Amaury Pouly
a0728672bf Initial commit for the Creative ZEN and ZEN X-Fi
Change-Id: Ibd7b1b0b957ef11c200cb63eff7da53f11774748
2013-10-22 00:34:45 +02:00
Amaury Pouly
d3bc64833c Initial commit for the Creative ZEN Mozaic
Change-Id: Ib65aad9f5de37e514047955cad7ca40dc0af4f74
2013-10-22 00:34:44 +02:00
Amaury Pouly
3d1666042e imx233/system: don't do frequency management on < stmp3780, it's not working
Change-Id: Ie9ff5122f1cb4fe3809bb4c6b88ef0cfc353e0e1
2013-10-22 00:16:22 +02:00
Amaury Pouly
151fa30257 imx233/sdmmc: add write protect pin config
The setting is currently unused but it provides some documentation and basic
support for a more comprehensive implementation of read-only support.

Change-Id: I353c33ef765ef6e6c09d59e943da6654a311ad84
2013-10-22 00:14:24 +02:00
Amaury Pouly
17851f742e imx233/audio: workaround unused variable
The exact combination on which recording is needed is too complicated, so
just always cancel the unused warning, the compiler will optimise it away.

Change-Id: I0946586e4b01769c98babc4616f893c38f44c05f
2013-10-22 00:07:50 +02:00
Amaury Pouly
7d62a78af4 imx233: extend partition window support to be more generic
The new code can select among several types of window (user, system, ...).
Furthermore, the type of partitions to use is selectable in config file.
Currently, two types are support: Freescale style MBR and Creative MBLK

Change-Id: I969d60a3d08f2c9448fb4b9c440051b7801b94cd
2013-10-22 00:07:07 +02:00
Amaury Pouly
5c7167c79c imx233/i2c: relax timeout
Change-Id: Ie9cf8c8bb0a89d9cbcc795e04559864b9fbaf639
2013-10-22 00:02:05 +02:00
Amaury Pouly
71c5a52add imx233: fix power irq storm
When bootloader is too intelligent, like on Creative devices, it might leave
some unexpected IRQs sources on, this is problematic when those sources share
the same IRQ line.

Change-Id: Ie9333918eb1048b1f2de4ea738cddf556aa75ee2
2013-10-21 01:23:14 +02:00