Commit graph

4139 commits

Author SHA1 Message Date
Marcin Bukat
027c035a4e jz4740: a few minor fixes
This was spotted while playing with qemu-jz:
1) rockbox reads TECR and TESR which are described as write-only
   registers. Datasheet doesn't mention what happens if they are
   readed. Apparently this doesn't have fatal side effects.
   It comes down to two defines from jz4740.h
   __tcu_stop_counter(n) and __tcu_start_counter(n) which use
   read-modify-write sequence.

2) rockbox accesses out of bound offset 0xd4 in DMA memspace.
   It comes from dis_irq() in system-jz4740.c. NUM_DMA is 6 but
   DMA channels are 0-5 so (irq <= IRQ_DMA_0 + NUM_DMA)) bound
   check is wrong.

This are *NOT* tested on device.

Change-Id: I29dff6a4f828030877b7d50fbcc98866478b9e3d
Reviewed-on: http://gerrit.rockbox.org/338
Reviewed-by: Bertrik Sikken <bertrik@sikken.nl>
Tested-by: Purling Nayuki <cyq.yzfl@gmail.com>
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
2013-03-11 08:33:18 +01:00
Lorenzo Miori
2f9e3cae2c Samsung YP-R0 LCD improvements
This patch adds to YP-R0 (and other future targets using Linux
framebuffer) the ability to use LCD_ENABLE to save some CPU cycles
while display is powered off.
This patch also changes the way to toggle LCD power: now using
a proper ioctl call, slightly more efficient.

Change-Id: I544de77f5abd4ac1c13d3fe3a6e40a30f7c0bece
Reviewed-on: http://gerrit.rockbox.org/410
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
2013-03-06 23:23:52 +01:00
Thomas Martitz
8ef8ea2da2 ypr0: Align to coding guidelines (no typedef) and remove unused function.
Change-Id: If61e2290f4e0e5c971ece967b7d826624df392df
2013-03-06 10:11:12 +01:00
Thomas Martitz
7ef2fe3819 ypr0: Fix erroneous if condition.
The GPIO device file wasn't closed due to this. This wasn't a big deal
because the device powers off shorty afterwards anyway.

Change-Id: I9a6b4d57d32627157323b4883e47b8812f5dcb4d
2013-03-06 10:02:48 +01:00
Lorenzo Miori
60592165ca Samsung YP-R0 hosted target code refactoring
As per title this patch aims at splitting common target
code and specific target code in a better way to
support future ports within the same environment
(e.g. Samsung YP-R1 where the Linux and the SoC
are the same, with differences in hardware devices
handling)

Change-Id: I67b4918c46403b184d3d8f42ab5aae7d01037fd0
Reviewed-on: http://gerrit.rockbox.org/409
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
Tested-by: Thomas Martitz <kugel@rockbox.org>
2013-03-06 00:21:22 +01:00
Amaury Pouly
97f1466cd4 rk27xx: fix usb logf
Change-Id: I1bae5613fd96587bcdcf179ec4132ce75224d398
2013-03-04 11:31:47 +01:00
Amaury Pouly
3875f576e8 rk27xx: add memmap to debug screen
Change-Id: I93ae961abfed567ab972bc99d43ff4c8029ee3f7
2013-03-04 11:31:47 +01:00
Andrew Ryabinin
3fd11c370e hm60x: Fix white screen bug.
Lcd should be reseted after power is supplied.

Change-Id: I2a47ffb7d9b20d9ef2ad90aee15f4ada2fdd7f2e
2013-02-16 18:21:36 +04:00
Marcin Bukat
c66a66728c rk27xx: do not disable irq in commit_discard_dcache_range()
commit_discard_dcache_range() is used in sd, lcd and pcm drivers
to handle transfers form/to data buffers so this should not introduce
any problems. It is reported to fix pop noise observed on some hifimans.
We apparently don't fully understand cache handling on this platform.

Change-Id: I436d291509f91d16a13d10965a28171fb27574ab
2013-02-12 08:48:43 +01:00
Andrew Ryabinin
63859e6894 rk27xx: Increase timeout for sd card initialization. 1 sec isn't enough in some cases.
Change-Id: I8d5384b53754e71b9a057a8602854d09b1885c68
2013-02-01 11:19:22 +04:00
Amaury Pouly
80c019e737 imx233: add a missing packed attribute for dma !!
Change-Id: Iada56b34d0517851859e60f064a2e9032c2f0fe2
2013-01-26 18:24:50 +00:00
Boris Gjenero
0fec8414a3 Fix FS#12391 : Memory corruption on PP502x after commit_discard_idcache()
In commit_discard_idcache(), cache lines were marked as invalid. When
some cache lines are marked as invalid, memory corruption can occur.
This caused instability when using PP502x ATA DMA because of the many
more calls to that function. Here, commit_discard_idcache() is changed
to avoid the problem. Also, the cache is filled after being enabled to
to ensure there are never any cache lines that aren't marked as valid.

Change-Id: Ia26300acef6b0573c1f40299c496ee5cbda3dac8
Reviewed-on: http://gerrit.rockbox.org/339
Reviewed-by: Szymon Dziok <b0hoon@o2.pl>
Tested-by: Szymon Dziok <b0hoon@o2.pl>
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
2013-01-24 11:26:23 +01:00
Amaury Pouly
1a5cda9075 zenxfi2: add simulator defines and image
Change-Id: I87498ed09a952586cb84a44bc391b5a0aa149c2e
2013-01-15 21:57:26 +00:00
Amaury Pouly
ba277d68f3 imx233: fix sd windowed drive
The SD driver doesn't initialised drives at the beginning but
upon request to handle removable drives. Since means that the
init should call init_drive() and not init_sd_card() otherwise
the check for WINDOW flag is bypasses. This breaks the zenxfi3
bootloader and has been overlooked for some time.

Change-Id: I7325f7164d16d7e7e54eeb4645e98517a08e0836
2013-01-15 19:10:55 +00:00
Amaury Pouly
19ca914f27 zenxfi3: remove obsolete comment
Change-Id: I9597461c2d48b7b7558c60efd309e5b34c661cbe
2013-01-15 19:10:55 +00:00
Amaury Pouly
4307f95a1f imx233: rework frequency scaling
Move to a table based approach (scales better) and distinguish
between upward changes (increase frequency) and downward changes
(decrease frequency). This provides a better ordering of
operations and in particular it allows to avoid changing the
regulator while running at low speed since it takes a long time !
This should result in a much smoother scaling.

Change-Id: Iad7e5b61277e215f31c07877fbbad07ddde1171f
2013-01-13 00:58:46 +00:00
Marcin Bukat
29e51a1777 rk27xx: slightly optimize commit_discard_dcache_range()
Change-Id: I13ce643d4ba26db5de9ffa083070d7f40b0e7b1f
2013-01-12 21:57:37 +01:00
Amaury Pouly
e2be0e75ab imx233: correctly send the LCD_EVENT_ACTIVATION on enable
For some reason it is the responsability of the driver to send
this event so do it. This might fix some non-updating screens.

Change-Id: Ib5fdc94bf266c3497a8ac4e89d0418c0e876ff9f
2013-01-12 19:08:05 +00:00
Amaury Pouly
c8d36bb994 fuze+: lcd code cleanup
The lcd kind is always set to st7783 in case we can't read the ID
so don't bother handling impossible cases

Change-Id: I352fd43b26068b460e69190d37c4cd4627e1db9a
2013-01-12 19:06:24 +00:00
Amaury Pouly
5e7bd97e04 fuze+: correctly handle settings (flip and invert) accross enable
The flip and invert settings can potentially be reset to their
value accross a disable/enable cycle, so save the value of the
impacted registers and apply it after each enable. Also avoid
poking registers when the lcd is not on.

Change-Id: Ica98f166c060aade7eb205f5628b58aae692024f
2013-01-12 19:04:20 +00:00
Amaury Pouly
0946a1e0f2 imx233: enable underflow recovery in lcdif (needed for freq scale)
When chaging the cpu and memory frequency we need to disable the
external memory interface (EMI) for a small time. This can
underflow the dma and cause some breakage. Hopefully the SSP
controller handles this gracefully by stopping the clock and the
I2C probably handles this naturally because the clock can be
streched anyway. However the LCDIF has a special setting for this
which needs to be enable, otherwise it will send garbage to the
LCD. No other block is known to suffer from this currently but
this issue might have more unexpected consequences.

Change-Id: Ide154cad87929f2bf6cc419ac1d2ff33e30eec66
2013-01-12 18:58:19 +00:00
Marcin Bukat
2ef7a549d5 rk27xx: optimize irq_handler()
Change-Id: Idd3141e57b70e9b28b91748bc71208d9afffcd57
Reviewed-on: http://gerrit.rockbox.org/381
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
Tested-by: Marcin Bukat <marcin.bukat@gmail.com>
2013-01-11 15:41:11 +01:00
Marcin Bukat
efe1042759 rk27xx: substitute magic constants with meaningful names for INTC
Change-Id: Ic93114db351a9940a53d0c1df6439d82ada044e1
2013-01-10 20:23:41 +01:00
Marcin Bukat
15818bef55 rk27xx: substitute magic constants with meaningful names for peripherials reset
Change-Id: Ia411c9be65376d1c3fdf59b7e692b0590d58775e
2013-01-10 20:23:41 +01:00
Marcin Bukat
2b6dfdb34e rk27xx: substitute magic constants with meaningful names for clock gating
Change-Id: I6c66c7496db3db78e5c959414464826134dbe200
2013-01-10 20:23:41 +01:00
Amaury Pouly
1fa406dc21 imx233: modify arm cache timings on frequency switch
The manual recommands to tweak the arm cache settings on frequency
changes. The meaning of these values is undocumented but 0 seems
to be a safe value for all frequencies whereas 3 seems to be valid
only for low frequencies (<=64MHz ?)

Change-Id: Iaa8db4af8191010789cf986b1139ff259d73e2ed
2013-01-10 01:02:12 +00:00
Amaury Pouly
5aa19f3eeb imx233: implement emi frequency scaling (disabled by default)
CPU frequency scaling is basically useless without scaling the
memory frequency. On the i.MX233, the EMI (external memory
interface) and DRAM blocks are responsable for the DDR settings.
This commits implements emi frequency scaling. Only some settings
are implemented and the timings values only apply to mDDR
(extracted from Sigmatel linux port) and have been checked to
work on the Fuze+ and Zen X-Fi2/3. This feature is still disabled
by default but I expected some battery life savings by boosting
higher to 454MHz and unboosting lower to 64MHz.
Note that changing the emi frequency is particularly tricky and
to avoid writing it entirely in assembly we rely on the compiler
to not use the stack except in the prolog and epilog (because
it's in dram which is disabled when doing the change) and to put
constant pools in iram which should always be true if the
compiler isn't completely dumb and since the code itself is put
in iram. If this proves to be insufficient, one can always switch
the stack to the irq stack since interrupts are disabled during
the change.

Change-Id: If6ef5357f7ff091130ca1063e48536c6028f23ba
2013-01-10 00:51:35 +00:00
Cástor Muñoz
758a3ae4bb iPod Classic/6G: PCM support for all CS42L55 rates
pcm_dma_apply_settings(): sets the configured PCM frequency,
all native CS42L55 sample rates are available.

Change-Id: I2fcd5581457a669c3044516804cb64fb972218d0
2013-01-09 22:08:28 +01:00
Cástor Muñoz
17e57e3291 iPod Classic/6G: support USB suspend mode
Actually Rockbox does not use this mode, it is supported by
other iPods, so implemented on Classic as well.

Change-Id: Ia6578506df27a95a7f7522b3034b764631a8bb3a
2013-01-09 22:08:27 +01:00
Cástor Muñoz
1d901a82fd iPod Classic/6G: fix battery voltage ADC scale
Scale battery voltage ADC readings by 1023 instead of 1000,
using ADC1 (substractor) instead of ADC0 (multiplicator) to
get better resolution.

Percent charge/discharge tables are also modified to return
a similar value than the old ones.

Change-Id: I2951c75faa02f4302599ec24f9156cfd209c36eb
2013-01-09 22:08:27 +01:00
Amaury Pouly
935d8beab1 imx233: increase irq storm threshold
On heavy storage operations (like database update), the ssp dma
irq can be fired around ~10000/sec.

Change-Id: I0e33df6258e051abd4fe110a0f408a19671cd8ad
2012-12-29 02:53:21 +01:00
Amaury Pouly
68ff43e94b imx233: correctly restore auto slow on cpu frequency change
Change-Id: I3ba495488e20fdd19d391f84ff484c1ce305d11b
2012-12-29 01:40:35 +01:00
Amaury Pouly
2b1159dda0 imx233: move power init to system init
Do low level power init in system_init(). This can be needed
since imx233 must be able to frequecy scale atfer system_init()
and kernel_init() and this is only possible if power system was
initialised.

Change-Id: I27c66ec0dccd60bda26a45be24683c0bfe72c6da
2012-12-29 01:40:35 +01:00
Amaury Pouly
f7132e4044 Fix copyright headers
Change-Id: Ie65920b1192e9b737fcc2554d280fbcedfa39800
2012-12-29 01:40:35 +01:00
Andrew Ryabinin
97250a0156 hm60x/hm801: Add hold button support.
Change-Id: I05557ecfbf0bd821d8966862a38f7f22656b36ef
2012-12-29 00:19:23 +04:00
Amaury Pouly
8ecbcad3d1 imx233: use tick insteaf of msec to collect statistics
The current code uses the msec irq to collect statistics and
detect irq storms (debug). But this irq is triggered 1000 times
per sec and we don't need that accuracy. This commit removes the
msec irq and use the tick timer instead which is triggered only
100 times per second.

Change-Id: If14b9503c89a3af370ef322678f10e35fafb4b8a
2012-12-26 21:26:33 +01:00
Amaury Pouly
c96f580d63 fuze+: fix bootloader build
Change-Id: Ibe221d0f94ec4234ce1459073ba9ae77f6de162f
2012-12-26 02:50:41 +01:00
Amaury Pouly
d9177c4c65 fuze+: implement lcd flip and invert
Change-Id: I1efcd0c6aa5e586b64c1b48d401648c7a933c4d9
2012-12-26 02:41:41 +01:00
Amaury Pouly
38878020d2 fuze+: make sure lcd is ready before chaning a register
The lcd driver does not wait for the refresh to be done to return
from lcd_update(). This means that changing a register is unsafe
if done in the middle of the redraw. This could happen when
disabling the lcd for example. Make sure it doesn't happen by
waiting for the lcdif to be ready.

Change-Id: I43ec62a637dd61c3b2a3a6e131c1a9e8035524b1
2012-12-26 02:39:39 +01:00
Amaury Pouly
7fddc2327b fuze+: add lcd debug screen (display kind)
Change-Id: I08ffcfb8e4cf516aae1c23740eedf80d2cfcea41
2012-12-26 02:38:56 +01:00
Amaury Pouly
09e6b890e6 imx233: rework cpu frequency scaling
When changing the cpu frequency, it is important to make sure that
HBUS stays at a reasonable frequency otherwise the chip will
crash. Special care is needed about auto-slow and clk_p/clk_h
ratio on intermediate steps.

Change-Id: Ief9f68ddf286caabe75c879718dac5027ab1560f
2012-12-26 01:17:28 +01:00
Amaury Pouly
e2da3f47d3 imx233: fix regulator voltage setting + always enable DCDC mode
Make sure DCDC is running at boot (it is disabled by default when
5V is present and we don't want to rely on the bootloader to
change this).
When changing the voltage on a regulator, it usually takes 2ms for
the voltage to stabilize. In DCDC mode, there is an irq to notify
about the event so use it ! This is especially important when
changing cpu frequency because increasing the cpu freq while the
voltage is rising is unreliable.

Change-Id: Icfe9ef3ee90156d1e17da0820d9041859f7f3bca
2012-12-26 01:17:28 +01:00
Amaury Pouly
ca83b558df imx233: fix potential hbus dividor settings + doc
HBUS uses the same field for integer and fractional dividers, the
choice is made by a bit. Make sure both are changed together,
otherwise this could result in the wrong divider to be used and in
HBUS freq to be too low or too high (very bad).

Change-Id: I253d8eeee26c5038868b729c4f791511295a39f0
2012-12-26 01:17:28 +01:00
Amaury Pouly
e3f45226bd imx233: simplify sdmmc led handling, fix typo
Change-Id: Iffbb05afd41bd0accfac9c127ea3a26fd33f1387
2012-12-16 21:28:41 +01:00
Marcin Bukat
dac6dbc013 rk27xx: Add status led (icon) support to SD driver
Change-Id: I47a36c0cf7319c2b100b813fdcbea024c7ae0b0a
2012-12-16 12:14:44 +01:00
Marcin Bukat
e1ea08417b rk27xx: introduce meaningfull constants in usb driver
Based on pamaury's work. No (un)functional change yet.

Change-Id: I7fe76c1da20d87d6c92eb3792e3d352877d423d7
2012-12-04 09:18:12 +01:00
Amaury Pouly
d119fb1fc5 imx233: try to improve audio quality
Change-Id: Idaee93fae8d407e5968f8571c54957b7b87da3bb
2012-12-02 11:51:51 +01:00
Marcin Bukat
33b7ade67f rk27xx: use generic fallback of lcd_blit_yuv()
Change-Id: I4d6834c8caa9037938d6291041f14cf9d2888e2b
2012-11-26 09:33:53 +01:00
Michael Giacomelli
0b0d3ee650 Fix building the iPod 6G UI sim by reusing the iPod Video bitmap.
Ideally someone will go through and make a graphic for the 6G, but as it looks nearly identical to the Video its not a huge deal.

Change-Id: If507c6d4f01eb0b1e5fc2f15f6a0e5a3195006c6
2012-11-25 22:54:06 +01:00
Amaury Pouly
5ead8f3f44 imx233: hopefully fix audio pop on startup
Change-Id: I6410c0e11acc02ec996461153b4737f416f8cbee
2012-11-13 18:25:00 +01:00
Marcin Bukat
b35f82c91f HD300: Fix crash in bootloader introduced by 36281c4
Uninitialized struct scroll which is used to pass state between
scrollstrip ISR and button_read_device() can bomb out whole
button subsytem.

Change-Id: I3b415c22cfee4181b2132cddaeff68797c7cc0ea
2012-11-13 13:36:23 +01:00
Rafaël Carré
5ce81fde37 AMS: make sure ROM clock is always on
Change-Id: Ib73b21b944cb609cc26f7f6955d2c894628f65ad
2012-11-12 21:52:55 +01:00
Andrew Ryabinin
b19b250de7 rk27xx: Disable interrupts before invalidating cache.
If interrupts trigger during cache invalidation this could cause memory
corruption. This should be right fix for commit_discard_idcache in
contrast to 72ebcbf and c1ec1ec.

Change-Id: I141fb585004d4a1967b0a03bc37db3964d886564
Reviewed-on: http://gerrit.rockbox.org/345
Tested-by: Andrew Ryabinin <ryabinin.a.a@gmail.com>
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
2012-10-31 09:30:10 +01:00
Andrew Ryabinin
c1ec1ec899 rk27xx: Disable cache while invalidating it.
It seems something wrong with cache handling in rk27xx. OF always disable cache
before invalidating cache ways, therefore, now we do the same.
Hopefully this will fix cache handling, but I couldn't contend that it's really so.

Change-Id: I967c18211f0ddff689b6a17579fbe8685277f132
2012-10-25 14:48:21 +04:00
Marcin Bukat
5dec7af1ec Revert "SH gcc 4.6.3 with link-time optimization, for Archos targets"
This was commited by accident, sorry.
2012-10-24 14:05:39 +02:00
Boris Gjenero
c975de1534 SH gcc 4.6.3 with link-time optimization, for Archos targets
This is work from FS#12431 synced to current HEAD and slightly
tweaked (gcc 4.6.2 -> 4.6.3, binutils 2.21.1 -> 2.22)

Change-Id: I76af91e80ac2a9c16a776c7f0a33cc51603bbf9b
2012-10-24 14:02:41 +02:00
Amaury Pouly
709827b5ea imx233: fix user timer
The running count is only 16-bit wide, since the always tick
setting derives from the crystal clock at 24MHz the user timer
cannot be set lower than ~300Hz which is already too high.
Switch to the 32KHz crystal source to fix this.

Change-Id: Ie7775460b17ea7ab331738734e3d688ad5563857
2012-10-21 14:45:09 +02:00
Andrew Ryabinin
04fb4b77ac hm801: Implement additional button driver.
Several HM-801 DAPs have another buttons circuit.
This patch adds support for such devices so they could work properly.

Change-Id: Ic49e8e46b3e785b91c7c4706003fac3dbc20ae59
2012-10-18 14:10:02 +04:00
Amaury Pouly
be6da12c09 imx233: add more ocotp registers to debug screen
Change-Id: I327ddd5506598c80263424d85afa84cd3c9acfeb
2012-10-11 13:58:10 +02:00
Amaury Pouly
e3e53c965a imx233/fuze+: add status led(icon) support to sd/mmc storage layer
Change-Id: I9c0e1ecd04d1935825606e906e6a434a3afb2175
2012-10-10 17:54:33 +02:00
Lorenzo Miori
d2875fc773 This patch adds RDS capability to Samsung YP-R0 target.
Uses register polling method to decide when it's time to decode
RDS packets.

Change-Id: I1d3cc995ea3350ec7b101438b8f2027130d4a4c9
Reviewed-on: http://gerrit.rockbox.org/320
Reviewed-by: Lorenzo Miori <memorys60@gmail.com>
Tested-by: Lorenzo Miori <memorys60@gmail.com>
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
Tested-by: Thomas Martitz <kugel@rockbox.org>
2012-10-06 23:00:36 +02:00
Andrew Ryabinin
548dcc3c6a hm60x/hm801: Fix blinking white screen.
Change-Id: Ia435616872d5d4adb117d507bdb135bccf083b05
2012-09-27 22:00:58 +04:00
Andrew Ryabinin
82d882e1e2 Fix type cast for LCD_BUFF.
We should cast to (volatile uint32_t*) here, because attempt to refer to volatile
object through use of an lvalue with non-volatile-qualified type will result in
undefined behavior.

Change-Id: I1b2e9688af11d3dcba518a5e31865d703b54b635
2012-09-27 14:26:47 +04:00
Andrew Ryabinin
84134f737f rk27xx lcd code rework
Use DMA engine for fullscreen updates and bypass mode for partial
updates. This gives major boost on rk27generic:
default ARM:AHB:APB 200💯50
HEAD    1/1:  26.3fps 1/4: 105.0fps
patched 1/1: 116.5fps 1/4: 249.5fps

with freq scalling NORMAL mode ARM:AHB:APB 50:50:50
HEAD    1/1:  13.1fps 1/4: 52.5fps
patched 1/1:  54.5fps 1/4: 119.0fps

Tested on rk27generic noname DAP and on Hifimans.

Change-Id: Id9dd4d2d61542c7ea6b5c6336b170d6357cefde9
2012-09-27 09:42:44 +02:00
Marcin Bukat
72ebcbf73b rk27xx: Fix commit_discard_idcache()
This version resembles how OF handle cache invalidates.
This seems to fix mysterious data aborts on plugin/codec loading
after introducing frequency scaling.

Credit goes to mortalis for pinpointing the reason of aborts.

Change-Id: I3477b3f65d593d7b43c36a0b06d863f71f000812
2012-09-19 20:44:36 +02:00
Amaury Pouly
49cded1704 imx233: properly disable frequency scaling for now
Change-Id: I3d700762a7f46e82ac99fed03e1aa9448b6cba47
2012-09-04 20:25:46 +02:00
Marcin Bukat
072badeafb rk27xx: Put some nand handling functions for reference
The functions document my reverse engineer findings about nand
controller. This code is commented out and is purely for reference
as FTL scheme is still unknown.

Change-Id: I70edeb4bfb0cbd51b6adc15afa7193dd8f71e8da
2012-09-04 09:48:48 +02:00
Amaury Pouly
a1b101b107 imx233: disable cpu frequency scaling
Frequency scaling seems to be unstable and causes the device to
freeze. It is unclear why at the moment, perhaps we need to ramp
up the vddd voltage to avoid a false brownout ?

Change-Id: I7aaea9d7c213922a65250fe50775fb785d430226
2012-09-04 00:35:58 +02:00
Amaury Pouly
c8e7964e81 imx233: more consistent debug screen
Change-Id: Ia6a869ec22734f95af2b453e01471b0656b7a273
2012-08-31 23:32:16 +02:00
Amaury Pouly
3a1ba755c6 imx233: fix auto slow divisor
The divisor must be set only when auto-slow is disabled.

Change-Id: I31ed94f43a7c9deb80275dc73f8e3c78463b54c0
2012-08-31 01:24:51 +02:00
Amaury Pouly
ee21359437 fix comment
Change-Id: I3a20b30e5707e98ffd5dfe3d0f267c5b2d4e7753
2012-08-31 01:06:57 +02:00
Amaury Pouly
4faaca13ca fuze+: use safer battery shutoff and dangerous levels
Change-Id: I68258828afd3021bab2067e5af0a5dcd2d44de04
2012-08-31 00:56:55 +02:00
Amaury Pouly
d6732a1a9b fix comment
Change-Id: I9eaa21ecfafda9679b4aa1a3d15fa7a550b48876
2012-08-30 23:13:35 +02:00
Amaury Pouly
8723132aaa fix red
Change-Id: I1ee070291d70b2e30ac2096aa8b3b89e6fcdeff1
2012-08-30 21:17:34 +02:00
Amaury Pouly
16dc22f2be fix red
Change-Id: I6bc5fd019160b05f48c9a65639e1025899651f1e
2012-08-30 21:13:28 +02:00
Amaury Pouly
13912fa1de imx233: fix clktrl auto slow function
Change-Id: I6c004836562b0605530ac334434b17afa89ebad5
2012-08-30 20:57:42 +02:00
Amaury Pouly
c9ad8688f1 imx233: implement basic frequency scaling and enable auto-slow
This does not scale the EMI frequency and keep the processor
betweel 261MHz and 454MHz. It can still be improve. The auto-slow
divisor could still be change, 8 seems reasonable for now

Change-Id: I639bb3f6b7f8efedc7dc58d08127849156eeb1b6
2012-08-30 20:56:39 +02:00
Amaury Pouly
6c2190ea04 fuze+: battery calibration
Change-Id: Iaaca5caa35b9624d8dd9ea14eabde24c5667e892
2012-08-30 20:40:13 +02:00
Amaury Pouly
7ff78c4ccb imx233: fix compilation of sdmmc for non-mmc targets
Change-Id: I0f61d0ca8e385fbfeaba53b81c3320b24aa61ab9
2012-08-30 17:28:13 +02:00
Marcin Bukat
722e24a76a rk27xx: implement frequency scalling
Implemented scheme:
        ARM AHB APB
Normal   50  50  50 MHz
Max     200 100  50 MHz

Frequency scaling is disabled on rk27generic due to too
slow lcd updates when running with 50MHz AHB.

battery_bench shows ~1h runtime improvement on hifiman.

Change-Id: I2c6f8acf6d4570c4e14f5bcc72280b51ce13c408
2012-08-30 13:50:36 +02:00
Amaury Pouly
417da66bb3 fix yellow
Change-Id: I798826c8240fa9ce5a87cb0443002ca1b8882922
2012-08-30 01:16:45 +02:00
Amaury Pouly
7ee1e30609 imx233: add regulator api
Remove the old debug stuff about VDDx and add a clean api to
get/set the regulator (VDDD, VDDA, VDDIO, VDDMEM). This is useful
for proper frequency scaling.

Change-Id: Ia5a1a712fd66652a8ad9601ed00db31aba5a7561
2012-08-30 01:10:36 +02:00
Amaury Pouly
51f63f0b2a imx233: fix header, add emi function
Change-Id: I1030e94f0dad4b66646cafa20b61df8a5c7f9278
2012-08-30 01:10:36 +02:00
Amaury Pouly
c9b4b4ea7b imx233: fix idle storage notification for sd/mmc driver
Change-Id: Ia70a0058f0e86824e2b0d74d12e369295629eb5a
2012-08-30 01:10:36 +02:00
Marcin Bukat
2b6886d107 rk27xx: Turn off lsadc clock when not in use
Change-Id: Ic3f29e75aa5b894f17e289263a370fac13e2f1d8
2012-08-27 23:32:23 +02:00
Marcin Bukat
ae27c331e1 rk27xx: Turn off i2c clock when not in use
Change-Id: Ifc6c25a53ace1a5f4d716a33d4979ea0a37fac98
2012-08-27 23:18:31 +02:00
Amaury Pouly
4d8c5e59e7 imx233: sdmmc driver enhancement
Implement cache aligned transfer of more than one sectors. The
current code now transfers almost all data at once by moving
it within the buffer to make it cache aligned. This greatly
improves the performance of the transfers, especially in mass
storage mode.

Change-Id: Ic6e78773302f368426209f6fd6099089ea34cb16
2012-08-23 15:06:45 +02:00
Amaury Pouly
06aa7e83a9 imx233: remove debug panic
Change-Id: I7b6bf2bcac31ff65ae17f4a833587f4a5c9e6d7a
2012-08-21 16:30:13 +02:00
Amaury Pouly
41bf9ebc89 imx233: simplify sd/mmc driver
Further merge drivers by using the same command and data functions.
No use one mutex per drive instead of a global sd lock. Fix the
RCA handling which was different between SD and MMC (shifted 16)
and thus confusing. Add MMC commands definition to the mmc.h
header similarly to the SD one. Change MMC handling a bit by
selecting/deselecting on each transfer like SD, which allows
for several MMC devices in theory and is more uniform.

Change-Id: I7024cb19c079553806138ead75b00640f1d2d95c
2012-08-21 16:28:36 +02:00
Amaury Pouly
4908b8eb1c imx233: merge sd and mmc drivers, fix dma issues
Merge sd and mmc drivers into a single sdmmc driver. This allows
some factoring of the code and simplify bug fixing. Also fix the
dma/cache related issue by doing all transfers via a correctly
aligned buffer. The current code is not smart enough to take
advantage of large user buffers currently but at least it is safe!

Change-Id: Ib0fd16dc7d52ef7bfe99fd586e03ecf08691edcd
2012-08-18 18:24:42 +02:00
Amaury Pouly
4604e984e8 imx233: rework i2c driver to fix dma issues
There are tricky DMA/cache related issue on the imx233 which could
pop up with the old driver. The new one ensures that all dma
tranfers are cache safe by using an intermediate buffer.

Change-Id: I72060682d1c285c83ae16455cfdb62f372b5d687
2012-08-18 15:38:43 +02:00
Amaury Pouly
246c2127a7 imx233: small dma changes, update debug screen
Reduce DMA maximum transfer size since transfering 64Kb requires
to set a size of 0 and it's not worth adding checks everywhere
to handle this special case. Also add statistics about unaligned
transfer (wrt to cache). Update debug screen accordingly and
simplify it so it can fit smaller screens too.

Change-Id: I18391702f5e100a21f6f8d1ebab28d9f2bd8c66f
2012-08-18 15:22:51 +02:00
Amaury Pouly
51919937a9 imx233: fix comment
Change-Id: I86d6e61a497780a9e22ea16075b055c3d7455630
2012-08-18 14:55:41 +02:00
Amaury Pouly
ce54e747dc imx233: fix style
Change-Id: I45813d1f34aff74c6b88c84bae6c0feeb4422ed7
2012-08-18 14:55:41 +02:00
Michael Giacomelli
b61b14f5e8 Revert my previous commit disabling the internal ROM clock during normal
operation.

The interal ROM clock seems to be needed to reboot the player, so disabling
it is too dangerous.  Hopefully this will prevent problems where crashes during
the abort handler resulted in a stock player that needed the battery to drain
in order to reboot.

Change-Id: I7d1e64743dde15b64d718ad3255dada3d570736f
2012-07-22 19:21:54 -04:00
Andrew Ryabinin
50370cd70d hm60x: Fix gpio pin direction.
Change-Id: I22324a3bd080a23d3606e6bc8e55881d072bf615
2012-07-13 22:30:09 +04:00
Andrew Ryabinin
e2d72d64fd hm60x: Fix not working backlight on some hm-601's.
Change-Id: I3e1e92f28537b6fb915a0f9d5960fbf5e217825b
2012-07-13 22:28:17 +04:00
Marcin Bukat
80ec94c497 rk27xx: implement system_exception_wait()
Change-Id: If55cfdf7ef91e732ac0aae6ad9fde24b8918e1b8
2012-07-11 00:27:13 +02:00
Marcin Bukat
5a89549c86 rk27generic: fix charging_state()
Change-Id: Iefa7fa4f9b2e535e2ab9004ffe8eeb8adf203f4b
2012-07-10 09:35:01 +02:00
Marcin Bukat
fa5d22584a rk27xx: disable watchdog on startup
Some versions of nand loader enable watchdog which resets
player just after reaching main menu.

Change-Id: Ia008bccb40570ab102c0558cd2768f125ae826d7
2012-07-09 22:43:34 +02:00
Andrew Ryabinin
052b5f1da9 hm60x: Add support for HM-601 slims with new lcds.
Change-Id: I02d5c85e70686c842f1379aba24ff045b260a4ff
2012-06-30 21:01:25 +04:00
Frank Gevaerts
1a665aab1e Fix non-integer display_zoom for charcell.
Change-Id: I2d41b5cc9cbceae05ba6cde4182896df9c5fb860
2012-06-19 21:56:57 +02:00
Frank Gevaerts
3d0c787a48 Change display_zoom from int to double.
The main reason for this is to be able to downscale the sdl app, which
when used for designing themes for android tends not to fit on laptop
screens these days.

Change-Id: Ib52731dbebcdd03a572be7754c157471165eb2df
2012-06-19 21:27:53 +02:00
Frank Gevaerts
a9217bde27 Remove extraneous "extern int display_zoom" declarations.
One extern declaration of a variable should be enough for everyone!

Change-Id: Idd4f4e05abaa5bb82693134a262d4023e1be6bd6
2012-06-14 22:23:50 +02:00
Amaury Pouly
71f3255a0e imx233: define HAVE_TEST_AND_CLEAN_CACHE
Change-Id: I7ceb9b122520e48a88f6299f10d42d2fa717ef3b
2012-06-07 14:48:43 +02:00
Amaury Pouly
a9667636ca imx233: add ocotp debug screen
Change-Id: Ia2211f9e0b281ffb60139bba539af37d762212dc
2012-05-31 13:57:25 +02:00
Amaury Pouly
64b8d1ed7c imx233: add ocotp driver
Change-Id: If4ed62ece056e81665a00af39eb1c57bb2c42b22
2012-05-31 13:57:25 +02:00
Lorenzo Miori
3cad5573b6 ypr0: This patch adds radio support to Samsung YP-R0
Basically it uses the default SI4700 radio chip driver, the only thing that's different is the I2C access,
written specifically to interact with my kernel module.
Next things to add are:
- RDS support!

Change-Id: I0ed125641e00f93124d7a34f90dd508e7f1db5a4
Signed-off-by: Lorenzo Miori <memorys60@gmail.com>
2012-05-28 19:39:14 +02:00
Thomas Martitz
3f365fc06b load_code: Get rid of win32 specific code in favor SDL_LoadFunction & friends APIs.
Refactor native/hosted implementation seperation while at it
(no wrappers starting with _ anymore).

Change-Id: If68ae89700443bb3be483c1cace3d6739409560a
2012-05-26 22:46:56 +02:00
Michael Sevakis
5c36e2f21c Gigabeat S: Fix the recording locking upon using it a second time.
Apparently I got the "just-in-case" RXFIFO purge in there before the
RXFIFO was enabled, causing severe hardware spasms.

Change-Id: I2ea4b6d28e06372b61cb3f21ab2fce71dd408213
2012-05-23 10:21:22 -04:00
Amaury Pouly
5b9a5054f5 zenxfi3: fix typo when configuring lcd_enable pin
Change-Id: I288c5f80ec94c786d60ec04e87aa04e522ce5c10
2012-05-23 00:44:21 +02:00
Bertrik Sikken
779ec8cc6d zenxfi3: fix vol+/vol- button pin assignment
Change-Id: Ibc8e19b03e786ac8c668c73c85c5e66df16cc632
2012-05-22 23:41:21 +02:00
Amaury Pouly
1354f209f5 zenxfi3: don't configure lcd_hsync and lcd_dotclk (used by audio)
Change-Id: Ifa5edd0f1efb0755756cbafa444f1bc678ee1dc8
2012-05-22 23:15:43 +02:00
Amaury Pouly
bcbc1de563 zenxfi2: acquire button pins
Change-Id: I5d66ae10945f5231616c266ee74275cc69b036de
2012-05-22 23:01:03 +02:00
Amaury Pouly
3c19f39c86 zenxfi2: acquire lcd pins before use
Change-Id: Ia49dfdefd37e89ecd160add3592f9e15ce415e65
2012-05-22 23:01:03 +02:00
Amaury Pouly
9b395741f3 zenxfi3: acquire audio gate pins
Change-Id: I47775568b3ee7383e440e2999b0acd98f0d5c57a
2012-05-22 23:01:03 +02:00
Amaury Pouly
3166ca80ef zenxfi3: acquire button and mpr121 interrupt pins
Change-Id: I7d002ce7fed08ee949335ef838014a6885ffaf5e
2012-05-22 23:01:03 +02:00
Amaury Pouly
4126dd1c53 zenxfi3: acquire lcd pins before use
Change-Id: I9829be35d9872e8051c5281639c3d99b51908035
2012-05-22 23:01:03 +02:00
Amaury Pouly
aa119b55f5 imx233: have pwm code acquire configured pins
Change-Id: I534cc10fbcaf1bb0e950fe2f60271008209b1122
2012-05-22 23:01:03 +02:00
Amaury Pouly
cd7a478ec1 imx233: enable PLL on startup
Implement PLL enabling/disable and unconditionally power the PLL
on startup. This is needed at least on the Zen X-Fi2.

Change-Id: Ib9ddfdeaf973cedded4b3586dd16aa95a61e78ba
2012-05-21 16:29:11 +02:00
Jean-Louis Biasini
8b3d389f02 Fuze+ simulator: update image with keys indication
1) Change the image with a clean one
2) add keymaps indication

Change-Id: I0d3fff317406809523fb34282df058fe2e074a2c
Reviewed-on: http://gerrit.rockbox.org/173
Reviewed-by: Peter D'Hoye <peter.dhoye@gmail.com>
Tested-by: Peter D'Hoye <peter.dhoye@gmail.com>
2012-05-20 02:00:23 +02:00
Amaury Pouly
1b6e8cba62 imx233: make sure dma descriptors are cache friendly
Because DMA descriptors needs to be committed and discarded from
the cache, if they are not cache aligned and/or if their size
is not a multiple of cache ligne, nasty side effects could occur
with adjacents data. The same applies to DMA buffers which are
still potentially broken. Add a macro to ensure that these
constraints will not break by error in the future.

Change-Id: I1dd69a5a9c29796c156d953eaa57c0d281e79846
2012-05-20 01:35:25 +02:00
Amaury Pouly
1adc474771 imx233: fix sd window size test
Change-Id: I8e35e108871677d4ad85c9c702d1d7e67b598c7e
2012-05-20 01:35:24 +02:00
Amaury Pouly
e1713fd902 imx233: remove useless alignments in linker scripts
Change-Id: I7fc5445f405e1a3e8830ddec2f7652e66a03a633
2012-05-20 01:35:24 +02:00
Amaury Pouly
391f3ea2ae Cosmetics
Change-Id: I6ad5b6c2e4f8f57db2068fe372ab4ecadf4d03a9
2012-05-20 01:35:24 +02:00
Amaury Pouly
58f8bddf88 zenxfi2: add fmradio i2c glue
Change-Id: Ifa8781b3c416002355b17591a4fdbed8a20979a8
2012-05-20 01:35:24 +02:00
Michael Sevakis
c2e9c93563 lcd-ssd1303: Fix big oops putting height where there should've been width.
Rid code of dar commasar and substitute huggy braces while we're at it. :P

Change-Id: If91974b93660bb0de32a0c92629eb83cea99d266
2012-05-19 17:21:54 -04:00
Michael Sevakis
b1dcd298c7 ssd1303: make sure sansa clip and whatever others clip updates properly.
Sometimes I do want to update outside the screen boundaries and it was
messing it up; such things should not cause display problems.

Change-Id: Ic9deec609b19e5a1c603601b20c66599dd44f892
2012-05-19 14:05:11 -04:00
Amaury Pouly
e401683482 zenxfi3&stfm1000: implement fmradio i2c and debug screen
Change-Id: I83dbdee13185d9adcf590dc213da5a8c97adb2ba
2012-05-19 18:04:25 +02:00
Amaury Pouly
a42f5736b1 Restore backtrace which was accidentely commented out
Change-Id: Ic6e945ffa5b83a38efdbecc3aea2433b1d91bb45
2012-05-19 16:55:07 +02:00
Amaury Pouly
12c64a4b79 Initial commit for the Creative ZEN X-Fi2 and X-Fi3 ports
These are really similar devices so one commit for both is ok.

Change-Id: I8bd1d3fef1eb6d00aaadfb7af56c771f62d0c9c3
2012-05-19 16:10:52 +02:00
Amaury Pouly
8b53c0f9a9 imx233: completely rework the sd driver
Change-Id: I456df0d9f5eaee435bdfd5a3f667055715e53d2a
2012-05-19 16:10:52 +02:00
Amaury Pouly
3f59cf9708 imx233: fix compilation for target with HAVE_BUTTON_DATA defined
Change-Id: I9d92320b1e545b7ac3983b7f9904f281028cc22d
2012-05-19 16:10:52 +02:00
Amaury Pouly
85d5c19347 imx233: add touchscreen driver
Change-Id: I406076d110e33cdae871222191d82262fabcf16a
2012-05-19 16:10:52 +02:00
Amaury Pouly
247e611f49 imx233: add stub nand driver
Change-Id: I6ed3d274b27eb56afb8289cba1b11bceb74bac12
2012-05-19 16:10:52 +02:00
Amaury Pouly
9d87113958 imx233: add pwm driver
Change-Id: Ib920b119f52b492247d75e97c5ec9298146d583c
2012-05-19 16:10:52 +02:00
Amaury Pouly
55e01b8de4 imx233: enhance lradc driver with touchscreen specific stuff
Change-Id: I83759a00257274c0cbde5a78306256abd2c83800
2012-05-19 16:10:52 +02:00
Amaury Pouly
01216c5ad3 imx233: add lcdif width define
Change-Id: I7649dd15b938e2eb6a2e9d3709fa268def72498a
2012-05-19 16:10:52 +02:00
Amaury Pouly
70253f80bc imx233: fix i2c to be more correct
Change-Id: Ib707a0b87d01f24eeccc39c6cbc1c015456fd503
2012-05-19 16:10:52 +02:00
Amaury Pouly
07138ba2ba imx233: move the freescale partition handling to its own file
The freescale firmware partitions has a lots of quirks that
need to be dealt with, so do it the proper way.

Change-Id: I8a5bd3fb462a4df143bc6c931057f3ffedd4b3d3
2012-05-19 16:10:52 +02:00
Amaury Pouly
61b129ac1e imx233: add gpmi stubs
Change-Id: I5ddcf392e6ffc27513170b1ee768c96cdc5a83d4
2012-05-19 16:10:52 +02:00
Amaury Pouly
bbbfd9f3d3 imx233: add dma channel defines
Change-Id: I462cfa338ded85aca4bb00ec91f144bb17136dbe
2012-05-19 16:10:52 +02:00
Amaury Pouly
d57e1e048e imx233: add icoll debug screen
Change-Id: Icbd91c2ea24dcf61cc6a649122263a4354f09ff4
2012-05-19 16:10:52 +02:00
Amaury Pouly
068443caaf imx233: move away timer defines from imx233.h
Change-Id: I9f721ae12a3ddf72c4e90ad0754a5c2b819847bb
2012-05-19 16:10:52 +02:00
Amaury Pouly
9ced006c06 imx233: move icoll stuff to its own file
The icoll code now has an IRQ storm detection mechanism which
will prevent the device from hard freezing in case it happen.

Change-Id: I9861238dce61d29af1e48f9c534ec63a7f23465c
2012-05-19 16:10:51 +02:00
Amaury Pouly
553aeae9c6 imx233: fix clkctrl naming
Move to a more consistent naming convention like the other devices

Change-Id: I4ddbbee27ee9f5ae775c5776592ec7ce02b30948
2012-05-19 16:10:51 +02:00
Amaury Pouly
9022c69b64 fuze+: fix lcd_on comment and storage qualifier
Change-Id: Iaf06ecd30559ac07b760f6a01ff920fdbacb398e
2012-05-19 16:10:51 +02:00
Amaury Pouly
25feb00a64 imx233: rework adc battery temperature sensor handling
Change-Id: I770729d7246b0ad8bc6fc5d6e45861325f6b790c
2012-05-19 16:10:51 +02:00
Amaury Pouly
692338629b imx233: move rtc init from drivers/ to firmware/
Change-Id: Id816987a4bb1191d5c9cf8a85c51d75fbb2da7c8
2012-05-19 12:57:42 +02:00
Amaury Pouly
2837555e09 imx233: add rtc functions related to msec
Change-Id: I3ed7469150920f3d7ac6c4218c2165fec547a422
2012-05-19 12:57:42 +02:00
Amaury Pouly
1d21e54fc4 fuze+: add RDS support
I successfully identified the STC/RDS pin as B2P27.
Strangely the OF uses polling instead of interrupts
but since they routed it, let's use it! On the fuze+
the fmradio i2c uses bit toggling so we can't read
the RDS data in the interrupt context. Instead we
defer the work to a thread.

Change-Id: Iedfa425320e6c91b4351b72e97c732696bdb2b73
Reviewed-on: http://gerrit.rockbox.org/236
Reviewed-by: Bertrik Sikken <bertrik@sikken.nl>
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2012-05-12 13:09:06 +02:00
Amaury Pouly
645680d62b imx233: add pinctrl debug code to track pin uses
Past development has proved that one can mistakely use
the same pin for two uses without noticing. Since this
causes extremely hard to find bugs, the infrastructure
will allow to register pin uses and panic when a conflict
is detected. The pinctrl debug now shows the pin uses
when its support is compiled in.

Change-Id: Idb2d5235ce09207d77aa474d6f158e72b933761a
2012-05-10 00:13:11 +02:00
Nils Wallménius
2dda258f99 Remove STATICIRAM hack
It was only needed by the old arm toolchain that we no longer use or support.

Change-Id: Id0e6c67477f8834a637079b03cde5fbf9da68b1c
Reviewed-on: http://gerrit.rockbox.org/233
Reviewed-by: Nils Wallménius <nils@rockbox.org>
2012-05-08 22:46:12 +02:00
Amaury Pouly
3c26f131df fuze+: don't touch B1P{22,24} in lcd code since these are used by the tuner
Change-Id: Icdb328b939902c4f8e57a76d27296d58b9548aab
2012-05-08 14:07:40 +02:00
Rafaël Carré
7ca2081036 remove debug-target.h 2012-05-07 00:55:59 -04:00
Rafaël Carré
ed38c5d953 remove unused prototypes 2012-05-07 00:51:13 -04:00
Rafaël Carré
cf090209a4 Sansa AMS: more compat irq names 2012-05-07 00:02:13 -04:00
Rafaël Carré
2eccc02d7d sansa AMS: i2s_reset() is never used 2012-05-06 23:47:05 -04:00
Rafaël Carré
65bb8e4452 Remove extraneous parens 2012-05-06 23:13:34 -04:00
Michael Sevakis
b4eec0dd42 Make INITDATA_ATTR work on everything that has INIT_ATTR enabled for code.
Change-Id: If9936bfbbd3bc3eb2a3e3e290701b8517eabfb13
2012-05-01 01:28:50 -04:00
Marcin Bukat
bde57c5df7 rk27xx: ungate all clocks before jumping into rolo'ed code. This should fix booting OF this way
Change-Id: I2c1676227a7218708d9858648c262d5fccb922f7
2012-04-30 23:17:29 +02:00
Rafaël Carré
d7ead706a7 AMSv1: rename USB interrupt handler
Fix FS#12660 (broken in c9c13497)
2012-04-30 14:24:34 -04:00
Andrew Ryabinin
b6f8a01be0 Missing semicolon.
Change-Id: I6b6bfcfdc34662052169ddd1e54369de67438545
2012-04-30 22:18:55 +04:00
Andrew Ryabinin
58dd21daea hm60x: Calibrated discharge curve.
Change-Id: I1f2ba69d37931d9ac62479c0e68f8ba251d30819
2012-04-30 22:09:45 +04:00
Michael Sevakis
4928810354 M5/X5 (MCF5250): Scoot the core/plugin IRAM boundary forward by 0x800.
Change-Id: I482fe3f4f2f59a3f17026e796c245c4efa8279f3
2012-04-29 14:35:53 -04:00
Rafaël Carré
c9c1349773 usb-s3c6400: merge the 2 drivers
Player-specific code remaining: usb_drv_(init,exit)

The iPods lack a MMU, so:
    - physical, virtual, and uncached addresses are identical
    - since we can't access uncached memory we discard caches when receiving data

Still not quite reliable on nano2g

Change-Id: Iebb79df64818b9ae3b68eccb8be8975ebd6c21ea
2012-04-28 16:01:57 -04:00
Marcin Bukat
2bafdae6b1 rk27xx: Do not turn off clocks in bootloader as this breaks OF loading
Change-Id: I8e2fb06e82f33c3cf841a125c13e56401c58b12d
2012-04-27 16:19:42 +02:00
Andrew Ryabinin
ab01d5d8c2 Fix red.
Change-Id: I4e132dfd8c4821715e123decbfb6b130903d6d4a
2012-04-26 14:32:06 +04:00
Andrew Ryabinin
56e406d9b6 hm60x/hm801: Increase backlight frequency. This will remove background hiss.
Change-Id: I3b51dc5592c069745a62f21f6f9004c79a1f3985
Reviewed-on: http://gerrit.rockbox.org/225
Tested-by: Andrew Ryabinin <ryabinin.a.a@gmail.com>
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
2012-04-26 12:25:37 +02:00
Sean Bartell
f40bfc9267 Add codecs to librbcodec.
Change-Id: Id7f4717d51ed02d67cb9f9cb3c0ada4a81843f97
Reviewed-on: http://gerrit.rockbox.org/137
Reviewed-by: Nils Wallménius <nils@rockbox.org>
Tested-by: Nils Wallménius <nils@rockbox.org>
2012-04-25 22:13:20 +02:00
Andrew Ryabinin
1060d30bdd hm60x: Fix charger detection.
Change-Id: Icde96e90303a9b6f3d399f3c25f24cc0b7d8576b
2012-04-22 00:00:24 +04:00
Andrew Ryabinin
f5559042f1 rk27xx: Fix warnings.
Change-Id: I05e3b946b921592bc17eff5ca705bfc1e71b2f0f
2012-04-20 13:20:07 +04:00
Andrew Ryabinin
fe5f9e0619 Fix typo.
Change-Id: Ib9bd947ac71370e11e7e3d67dbc5f16da0b15ae3
2012-04-20 13:11:43 +04:00
Andrew Ryabinin
220f9385da rk27xx: Remove debug use of timer1 in sd driver.
Change-Id: I720426de3c66c10273fff5f3a01ef6b692218a29
2012-04-20 13:04:51 +04:00
Andrew Ryabinin
6ee3fc81d9 hm801: Add support for plugins.
Change-Id: I81654db87d38324d8680a56bcdb7e9922ee5b619
2012-04-19 17:31:13 +04:00
Andrew Ryabinin
397863ab3d hm60x: Add support for plugins.
Change-Id: I4cad0881c8249f163680a280f70d1a0b36248da8
2012-04-19 17:31:13 +04:00
Andrew Ryabinin
8187d8d5d1 hm60x: Use binary search in button driver.
Change-Id: I4abca66150c23ffb7cc27c4c5320b8117c27e228
2012-04-19 17:31:13 +04:00
Andrew Ryabinin
8361c1d901 hm60x/hm801: Buttons rework.
- Add BUTTON_POWER.
 - hm60x: Rename BUTTON_PLAY to more proper BUTTON_SELECT, which will make it
   possible to unify hm60x and hm801 keymaps in some plugins.

Change-Id: I84715cdbc79d00c1bc2e8e6bd492159ad3c3422b
2012-04-19 17:31:13 +04:00
Frank Gevaerts
c45984d5f4 Increase mr100 remote lcd thread stack (fixes FS#12640)
Change-Id: I95a2a343762b8592f80bec0f11ddcdcb7983ae12
2012-04-11 23:05:24 +02:00
Marcin Bukat
76c74c4437 fix tms320dm320 crt0.S
Change-Id: I7d7304cd4bddea78777ce826495e7cddae711442
2012-04-06 14:36:02 +02:00
Amaury Pouly
f33330c0ff arm: factor all exception handlers out of the crt0.S files
Remove the implementations of all exceptions handlers from the
various crt0.S files and have a single implementation in system-arm.h
The new implementation is weak so that it can be overwritten by some
specific code (like the unwinder)

Change-Id: Ib3e041ed6037376bbe0e79286057e1051640dd90
Reviewed-on: http://gerrit.rockbox.org/205
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
2012-04-06 13:46:32 +02:00
Thomas Martitz
bb0e4cc543 touchscreen: Fix kinetic scrolling when the statusbar is off.
The scrolling code cannot differentiate between the BUTTON_TOUCHSCREEN post
from normal touches and the one posted in the timeout callback.

To fix introduce a global special button (BUTTON_REDRAW) that results
in the desired redraw. This existed already as a local kludge for android
and is now generalized.

Change-Id: I6bfa6c66431c48f5042fcd8fce2ea72cd3457f58
2012-04-05 15:01:59 +02:00
Thomas Martitz
4b56ee048a Refactor and unify objcopy calls in the build system. Also now properly handles DEBUG builds on hosted targets to keep debug symbols if necessary.
Change-Id: I884031b79c6d49479e4d95752f35ced68872dd5d
2012-04-04 21:48:19 +02:00
Frank Gevaerts
9ca9b657e4 Revert 1207c7b and fix the actual warnings.
The warnings 1207c7b was supposed to get rid of are sim-only. This
means the binsize argument used for the _FORTIFY_SOURCE fix did not
apply at all. This one actually checks the return values.

Change-Id: Ic4cd8c25de4305310baa868c077a66981cdfcb4b
2012-04-03 20:59:11 +02:00
Cástor Muñoz
a85780bacc Classic/6G: CPU frequency/voltage scaling
This patch implements HAVE_ADJUSTABLE_CPU_FREQ, it modifies the
following parameters when CPU is unboosted:

- s5l8702 voltage is decreased: 1.200V -> 1.050V
- CPU frequency is divided by 4: 216MHz -> 54MHz
- AHB frequency is divided by 2: 108MHz -> 54MHz

Change-Id: I2285b83efb7e1567864ac288f2d4ba55f058f7c5
2012-03-31 01:18:15 +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
Rafaël Carré
41b46231cb usb-nano2g-6g: missing brace in non-default preprocessor path
Change-Id: Iacf6719e58b927bb619d469048e16797cae5cecd
2012-03-30 18:58:38 -04:00
Thomas Martitz
72988f3c0c android: implement system_exception_wait and system_reboot, so that the panicf() screen can be exited.
Change-Id: I1fb095a7ae01a99c84722eeec199b1007b0f6088
2012-03-30 11:23:07 +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
Thomas Martitz
f269aa0060 build system: unify/simplify library handling a bit.
libs in $ROOT/lib now add to $(CORE_LIBS) and $(EXTRA_LIBS) and are
automatically linked by the core and codecs/plugins respectively.

Change-Id: Iff482c792a8c8142718f6a16a450c6e2f1497c9a
2012-03-26 22:27:40 +02:00
Marcin Bukat
5513c6db56 rk27xx: implement system_init()
For now it contains explicit SDRAM setup, cutting clock for unused
modules and turning off unused PLLs. This improves slightly mem
throughput as well as saves quite a bit of power.

Change-Id: I19a2827ac90a6868856c676fbe1e051c42f0d608
2012-03-22 23:48:31 +01:00
Thomas Martitz
901521d6de android: lcd_update/_rect() changes
* rename some java methods (to update(), initialize())
* re-create the ByteBuffer object from the framebuffer on every update.
  This is needed now since 2c71aa9 added the possiblity for lcd_framebuffer to change.
* do so, along with the creation of the dirty Rect object, in native code.

Change-Id: Id39ea8e4b6148987c5f216a87e0ff3c8e7babe92
2012-03-22 23:26:50 +01:00
Thomas Martitz
58e097d4a6 android: Add facility for java code to wait native code to be ready.
Especially when unzipping rockbox.zip, the native code can be initialized
a lot later than the java code. The java code needs to be prevented from
accessing rockbox structures (e.g. current_tick, event queues) before they're
ready.

This commit adds wait_rockbox_ready() and fixes dodgy behavior of starting
rockbox via widget play button, headset remote buttons or multimedia keys.
Also fixes wrong small list items before first redraw.

Change-Id: I1caf925e829a9c1c6bb6e0016d5c80574574c91e
2012-03-22 20:44:52 +01:00
Jonathan Gordon
287bf71247 sdl: Fix the sdl init so the sim will get a taskbar item
Change-Id: Ib0049f96c54b4471a8185937d92bb6e8a492142a
2012-03-20 21:26:37 +11:00
Bertrik Sikken
bb6ac6fcba sansa clip+: properly reset display using the reset pin
Change-Id: Ic4bb85cfca4e21d908e187381b868d3f7ef18f88
2012-03-19 21:00:06 +01:00
Marcin Bukat
e1796fbc20 mrobe500: fix warrnig in bootloader
Change-Id: I327dad2b8f335468d38ff8d717f7885c14492b7e
2012-03-19 08:43:27 +01:00
Marcin Bukat
395290b7cd fix cache function name
Change-Id: Ica743c1ea4e8e5fd4e4c70c00b0dc1fd019268a2
2012-03-19 08:42:53 +01:00
Frank Gevaerts
0fdbbc3afd Add RBCODEC_LIB to android and ypr0 builds so they link again.
Change-Id: I022c7beba844a9b2cfcb8ec7950a1348e4bf511a
2012-03-18 13:37:49 +01:00
Szymon Dziok
b67f1b2872 HDD6330: Correct voltage values, based on the values found in the OF.
Change-Id: I76a101cd2c96be06fc95ca16871e5c86c2326c2d
2012-03-17 19:20:21 +01:00
Szymon Dziok
740722f913 HDD6330: Simplify strange OF voltage calculation, it's linear anyway.
Change-Id: I33ecad4a265a4c7e8883da7b6d28fb061a4c8e68
2012-03-17 19:20:21 +01:00