Commit graph

4130 commits

Author SHA1 Message Date
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
Amaury Pouly
e5b5041583 imx233/fuze+: rework lradc/adc code, add external temperature sensing(battery)
Rework code to be more useful:
- move battery channel init to lradc
- always init lradc from system (previously from adc)
- don't reserve channels for vddio, nmos or pmos
- implement external temperature sensing using current source
- use this for battery sensing on the Fuze+ (calibration needed)

Change-Id: I5f9a24b9243db7d1e6bdb16b84bc891e61d0c318
2012-03-17 17:42:49 +01:00
Amaury Pouly
e07b22f27e fuze+: add unknown channel to debug menu
imx233: always divide physical channels by two for wider range

The Fuze+ OF monitors channel 2 but I'm unable to determine the meaning of it.
Print the value on the debug menu so that people can have a look at it.

Change-Id: I8a942febeafbce06014178abda12e38a16c26664
2012-03-15 18:47:23 +01:00
Amaury Pouly
9caffa8bf7 imx233/fuze+: rework i2c and fmradio_i2c init
Only enable fmradio_i2c once with _init() called from system.
Move actual i2c init to system for consistency.
Move tuner power pin setup to power instead of fmradio.

Change-Id: Idb56bfba5803f71b5d049f174c48d2afb969a6ea
2012-03-15 15:01:11 +01:00
Andrew Ryabinin
b069562ef4 rk27xx: lcdif refactoring: make lcdif-rk27xx.c more generic
iomux_lcd now has parameter for display bit mode settings, so we doesn't need ifdef here.
lcd_init_device moved to target specific code
lcdif_init configure pins and lcd cotroller

Change-Id: I3a2d7fd38b08fe3bc5ebefa8c9f7288c21f58212
Reviewed-on: http://gerrit.rockbox.org/153
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
Tested-by: Marcin Bukat <marcin.bukat@gmail.com>
2012-03-06 09:37:11 +01:00
Michael Sevakis
d18a5cad7f Tweak paramters of mp3_play_data and callback.
Use generic void * and size_t and make mp3_play_data and its callback
agree on types. Use mp3_play_callback_t instead of prototyping
right in the function call (so it's not so messy to look at). Change
doesn't appear to require plugin API version increment.

Change-Id: Idcab2740ee316a2beb6e0a87b8f4934d9d6b3dd8
2012-03-04 14:50:47 -05:00
Michael Sevakis
cd8e11b463 Tweak some PCM drivers for less typecasting with the data pointer.
Yeah, sizeof (void) here with GCC is 1. If something has a problem
with that, we'll set it straight.

Change-Id: I9ad3eee75dd440f6404a04a501d1533c8bc18ba9
2012-03-04 08:52:50 -05:00
Bertrik Sikken
f6e17e86fe AMSv2: add proper definitions for charge current
Change-Id: I6a14570e94df1be62ae46816d2ff4e3f2b7bc21a
2012-03-04 12:23:05 +01:00
Andrew Ryabinin
f8de21f460 rkw-loader: Fix wrong include
Change-Id: Iee19d074e7766925d1d68787116b84a08c784a1a
2012-03-04 14:30:19 +04:00
Marcin Bukat
e2d6f9290d rk27generic: Implement power_off()
Change-Id: I6e7685c83c080cbeeff06c588971901e522e4f85
2012-03-04 00:35:19 +01:00
Marcin Bukat
f30043a0db rk27xx: add rolo_restart() rk27xx specific variant
Change-Id: Ib786a9ef6318d259ecef783becdd7c0fa6f52730
2012-03-04 00:34:59 +01:00
Marcin Bukat
2f8b44aae2 Add RKW firmware file format loader
Change-Id: I5283fdcdb8d263fd9375a6d29396f82650aeb686
2012-03-04 00:34:26 +01:00
Marcin Bukat
1c565c9c3b rk27xx: rework linker scripts and crt0.S
Change-Id: Id1d509056026bc67e1a5051c60818336933d4aeb
2012-03-04 00:33:27 +01:00
Thomas Martitz
fcb9fda3e4 android: drop copied lcd_blit_yuv() and use generic one.
Change-Id: I1b9728b138c05c59867ba06370186b2fa5a7c9fd
2012-03-03 20:03:05 +01:00
Michael Sevakis
59e5a323f1 Fix errors in unintentionally merged gerrit commit.
It proved the system work as unintended, even if slightly prematurely.
It was almost ready anyway.

Change-Id: Ic4de2b925bd26b094eaf65a120591569923954d1
2012-03-03 01:45:09 -05:00
Michael Sevakis
286a4c5caa Revise the PCM callback system after adding multichannel audio.
Additional status callback is added to pcm_play/rec_data instead of
using a special function to set it. Status includes DMA error
reporting to the status callback. Playback and recording callback
become more alike except playback uses "const void **addr" (because
the data should not be altered) and recording  uses "void **addr".
"const" is put in place throughout where appropriate.

Most changes are fairly trivial. One that should be checked in
particular because it isn't so much is telechips, if anyone cares to
bother. PP5002 is not so trivial either but that tested as working.

Change-Id: I4928d69b3b3be7fb93e259f81635232df9bd1df2
Reviewed-on: http://gerrit.rockbox.org/166
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested-by: Michael Sevakis <jethead71@rockbox.org>
2012-03-03 07:23:38 +01:00
Thomas Jarosch
57264cef43 Pandora port: Add support for the L/R shoulder buttons
Change-Id: I18d5998dbcf7347549008fb9e52679b65fbf7e4f
2012-03-02 22:49:46 +01:00
Amaury Pouly
29c72591fd imx233: correctly stop charging on topoff (fix battery discharging)
Change-Id: Ied7ea0a882e532bcf673a96d224dd55fdaae05d4
2012-02-29 18:43:26 +01:00
Andrew Ryabinin
fbb8c31e63 Fix bugs in lcd drivers after b37e6bc
Change-Id: I9dc262b8453abab62e792beebe4f96415e58b380
2012-02-29 11:43:51 +04:00
Amaury Pouly
0d78dd170d imx233: user __FIELD_SET to set the clock divisors
The clock divisors must *NEVER* be 0, first clearing then setting is thus undefined.

Change-Id: Iba8e6ba1e668bf746e3f7387f0175f63d81f6b2b
2012-02-28 23:57:37 +01:00
Amaury Pouly
c4450b9baf imx233: print power up source in the bootloader
Change-Id: I9ff4738b7efdb25ab57b0061f60c7fde58b9a0b5
2012-02-28 22:45:30 +01:00
Marcin Bukat
13f98df5ed rk27xx: Make sure SD module clock is not gated
Change-Id: Iafc9af6cf4762f16f367705b8c9a3e441420905b
2012-02-28 10:22:25 +01:00
Jonathan Gordon
c0a2c3fe3a Fix build errors and warnings
Change-Id: Ie80bc4328d4f89a5a7b77c93f2b445d0e30fb019
2012-02-28 11:51:09 +11:00
Jonathan Gordon
b37e6bc8c1 lcd drivers: Convert lcd_[remote_]framebuffer to a pointer
Change all lcd drivers to using a pointer to the static framebuffer
instead of directly accessing the static array. This will let us
later do fun things like dynamic framebuffer sizes (RaaA) or
ability to use different buffers for different layers (dynamic
skin backdrops!)

Change-Id: I0a4d58a9d7b55e6c932131b929e5d4c9f9414b06
2012-02-28 11:44:59 +11:00
Cástor Muñoz
8c7d372e45 FS#12519 - iPod Classic/6G: swap L-R audio channels by Cástor Muñoz
Fixes swapped left and right channels on ipod 6g and changes the
i2s config to send samples as 16 bits instead of 16 zero padded to
24 bits to the dac.

Change-Id: Icfecfdf0f6868bdb01c11dced604ebfceb874aa1
Signed-off-by: Nils Wallménius <nils@rockbox.org>
2012-02-25 14:51:52 +01:00
Nils Wallménius
ff54e03e7f Make some arrays const.
Change-Id: I371435b2943a19f4b33bbedb116800b483621a4d
2012-02-25 13:48:50 +01:00
Cástor Muñoz
663667a8c5 IPod Classic/6G: LCD sleep (FS#12523) by Cástor Muñoz
Change-Id: I7bea9f61fa315339c1f41efb27d13a4aa30cb4c3
Signed-off-by: Nils Wallménius <nils@rockbox.org>
2012-02-25 13:46:43 +01:00
Andrew Ryabinin
35153885c1 hm60x/hm801: Fix USB DAC functionality
GPIOA pin 1 used for USB DAC. This configures IO mux for using
GPIOA 0-4 pins instead of lcd data16-18,20,22, which are not needed,
because hifiman's lcd works in 16bit mode.

Change-Id: I47fe72abee56aebc56ef1c4c8a07a93698dcaa49
2012-02-24 13:51:05 +04:00
Andrew Ryabinin
7b99318710 HiFiMAN: Implement lcd powersave mode.
Change-Id: I0a22b436549047ac0c2f9e2c203cbe8b31cfc1cd
2012-02-24 13:49:34 +04:00
Marcin Bukat
b4eab59951 Arm stack unwinder
Simplified stack unwinder for ARM. This is port of
http://www.mcternan.me.uk/ArmStackUnwinding/
backtrace() is called from UIE() on native targets
and from panicf() on both native and ARM RaaA.

Change-Id: I8e4b3c02490dd60b30aa372fe842d193b8929ce0
2012-02-22 08:33:26 +01:00
Cástor Muñoz
e29619b4d2 FS#12524 - iPod Classic/6G: hardware click support
Based on the piezo driver for the nano2g.

Signed-off-by: Nils Wallménius <nils@rockbox.org>
2012-02-11 23:46:35 +01:00
Amaury Pouly
e67a1af35f fuze+: the radio chip needs a few milliseconds to power up
Change-Id: I7e7f3bf86ab69d6c7e94e8b16c1a26f74a76f1a2
2012-02-05 18:14:12 +01:00
Amaury Pouly
0aca81d807 imx233: add audioin init code, add adc dma interrupts, fix register defines
Change-Id: I204afbd3390f8dcde6ea1315ea6aa8dde12d3749
2012-02-05 16:05:07 +01:00
Boris Gjenero
cd89b31133 Fix Fuze+ bootloader red
Change-Id: I434e3f4930e6ab7f8d9f5ba43a5bfe0a387e0f09
2012-02-04 22:40:51 -05:00
Boris Gjenero
0a8235d052 Use commit_dcache() instead of commit_discard_idcache() where possible
- PCM playback DMA doesn't need the discard. Only recording DMA would
  need it.
- When creating threads for another core, the core creating the thread only
  needs to commit. The discard on the other core is handled elsewhere.

Change-Id: I864a0777e22f221a66218efd2c02ff3ad3889736
2012-02-04 22:27:42 -05:00
Amaury Pouly
1a083cdacc imx233/fuze+: fix a typo, handle volume differently because of the line1/dac mode difference.
The headphone volume register value reads differently in Line1 and DAC mode.
Since the volume is not set again when switching between playback and radio,
we need to remember the hp volume and reapply setting when changing the mode.

Change-Id: I8fbd344f78653c19d81a39dd3f680ec6885cb1ec
2012-02-03 20:04:39 +01:00
Amaury Pouly
3511435ee3 fuze+: don't use the DCP to copy the framebuffer since it can yield and then several lcd udpates could run concurrently with undefined behaviour
Change-Id: I39167188f354859fc8e4f9f979c97343b40beb7d
2012-02-02 11:20:00 +01:00
Amaury Pouly
ac4d648958 fuze+: use the si4700 internal oscillator and set a pin on power down (seems important)
Change-Id: If737438ddb726e51e0a725e27bc93950eb3657bd
2012-02-01 17:51:01 +01:00
Amaury Pouly
0f02da208c fuze+: check rectangle coordinates in lcd_update_rect
Change-Id: I5f23063751d7650b8eefd0f37393498d9a27bd19
2012-02-01 15:02:22 +01:00
Amaury Pouly
ca104755f5 fuze+: add basi pinctrl debug screen
Change-Id: I999d55a00a03eecc88d726ed33b2edaf339a138c
2012-02-01 15:02:22 +01:00
Amaury Pouly
b1702a569a fuze+: pin B1P30 is volume down key and has no relation with SD
Change-Id: Iee93e90d3054442ae873c55c05c030ed690ccbd6
2012-02-01 15:02:22 +01:00
Amaury Pouly
289440605a imx233/fuze+: set a few recommended power bits by Freescale, remove some uneeded headers, implement audio path selection for playback and radio
Change-Id: If926ead9b776504a58eb102fcc0e9acadf4f7379
2012-02-01 15:02:22 +01:00
Rafaël Carré
d1b47c2eeb Clipv2: fix button reading on some models
We neet to setup the XPD to work as GPIO
storage unaffected
Tested on working-already Clipv2 and on a 'brickable' clipv2

Change-Id: Idcbdfb6bd50d51b7f6f7e00b21df24fac9b3a6d8
2012-01-30 00:13:51 -05:00
Bertrik Sikken
f57e5a2ae3 AMSv1/AMSv2: show CCU_IO in debug menu
Change-Id: I8ee9d464a6a3aebc21b60ac88e1b3833dca48885
2012-01-29 15:05:05 +01:00
Amaury Pouly
d32891fa59 fuze+: change rendering scheme, do not rely on generic framebuffer and implement rect updating and yuv blitting correctly.
Now lcd_framebuffer is the only framebuffer in the system. We still use a ARM-buffered buffer
which serve as an intermediate buffer for copying, to accomodate the requirement of the controller.
We implement lcd_update_rect() properly using this new scheme (this requires two little quirks),
this allows to implement lcd_blit_yuv with the right semantic (bypasses the framebuffer). YUV to RGB
conversion is still done in software but the DCP CSC should be able to do that but the hardware rotation
scheme is not the same as our software so it will require some tricks.

Change-Id: I0752e9c2f1a705d2e6a6010084e1f150965d8370
2012-01-27 20:08:33 +01:00
Amaury Pouly
05ba5c1971 imx233: update arbiter to get more debug information, update debug screen accordingly
Change-Id: Ia229e5303692712295f1dbd37a76f865a3eef4ea
2012-01-27 20:08:33 +01:00
Amaury Pouly
bf47e577aa imx233: implement dcp blitting, simplify code and make it work even in context interrupt by busy waiting
Change-Id: Ife949e13e3e04a56a2b5bc554eb46c726e719712
2012-01-27 20:08:33 +01:00
Thomas Martitz
9a4656bfd0 Include stdlib.h for atexit().
Change-Id: I561bdaf0c6a0b806a136909e40cc4fb2805f6aa3
2012-01-25 22:49:19 +01:00
Thomas Martitz
63ddd15fc6 Fix win32 simulator build (FS#12564).
Change-Id: Ia8c805fd63b6d2d05133e6dd0ad257d31b38e2a0
2012-01-25 22:47:59 +01:00
Marcin Bukat
36281c4cc9 MPIO HD300: Fix scrollstip issue at driver level.
Scrollstrip (as well as scrollwheel on ipods/sansas) works like
quadrature encoder. The states of input lines are tracked by the
gpio ISR and when the sequence is correct, appropriate button
event is pushed to the button queue directly. The downside of
this implementation is that scrollstrip doesn't emit _REL
events which has some weird consequences. For the scrollwheels
some hack have been crafted in action system to accomodate for
this. I don't like this approach. IMO the correct fix is to
properly emit _REL event when the user stops interacting with
the device or reverses the direction of the move. This patch
implements timeout which forces to emit _REL when expired.

Change-Id: I588ac5810dd2ab00c68935d23a62979cb1c2a912
2012-01-25 09:07:52 +01:00
Marcin Bukat
dc85718bfd MPIO HD300: Use MENU button to go back from debug screens.
Change-Id: I17c0f573de75ab1fd0119d148337e45552eb04b0
2012-01-24 12:27:06 +01:00
Marcin Bukat
e94d1b0ab0 MPIO HD200/HD300: Decrease ADC scanrate.
The adclk is decreased 4x. This solves problems with battery
readout drop during system startup.

Change-Id: I46d7c4b9ffcfdc812a6dd2a932c9e397d33c1168
2012-01-24 12:05:07 +01:00
Thomas Martitz
016bc2452f ypr0: Allow dection of multiple button presses at the same time.
Reading from /dev/r0Btn only allowed to read one button at a time. Reading GPIO
directly via ioctl() doesn't have this limitation.

This adds a more complete GPIO list also.

Change-Id: If47b0846472f0817305dbf930731255f875e0269
Author: Lorenzo Miori
2012-01-23 14:50:31 +01:00
Thomas Martitz
38050f46af ypr0: Work around warning introduced by buggy alsa headers.
Change-Id: I7c57ad5504db51d2f7563d2f26ff66f8d189b360
2012-01-22 20:59:20 +01:00
Thomas Martitz
ec36357e8f Fix sdl build warnings
Change-Id: I3e85c63ce246b93572f856b364c9e2ff1b53e52f
2012-01-22 19:38:56 +01:00
Thomas Martitz
c94cf3b888 Move optimized ffs to firmware/asm, using the new automatic-asm-picking infrastructure.
Change-Id: I5e7bdc8be7de50ef604c16078857fff1b84650dc
2012-01-22 18:46:45 +01:00
Thomas Martitz
5e9b62cd8a ypr0: Use generic lcd memframe driver. 2012-01-22 18:46:45 +01:00
Thomas Martitz
094cbd586f Implement a C version lcd-as-memframe.c and move it and the asm to firmware/asm.
Change-Id: I20c3af0368202493d54fb776530300a39d47873a
2012-01-22 18:46:45 +01:00
Thomas Martitz
a035261089 Move optimized memcpy and friends and strlen to firmware/asm,
using the new automatic-asm-picking infrastructure.
2012-01-22 18:46:45 +01:00
Thomas Martitz
3c17f28eca Move pcm_mixer helper routines to firmware/asm. 2012-01-22 18:46:45 +01:00
Thomas Martitz
991ae1e395 Create fimrware/asm directory for assembly optimized stuff.
This dir is suitable for stuff that doesn't fit the target tree, e.g. because
it also builds on hosted or otherwise. It also has a generic subfolder for
fallback C implementations so that not all archs need to provide asm files.

SOURCES should only contain "foo.c" where foo.c includes the specific
<arch>/foo.c files from the subdirs using the preprocessor. This way automatic
selection of asm versions or generic C verion is possible.

For the start, the thread support files are moved, since ASM threads can
be used on hosted platforms as well. Since core_sleep() remains platform
specific it's moved to the corresponding system.h headers.

Change-Id: Iebff272f3407a6eaafeb7656ceb0ae9eca3f7cb9
2012-01-22 18:46:44 +01:00
Amaury Pouly
eaa83bd647 imx233: fix clkctrl code (some registers don't have a SET/CLR variant)
Change-Id: I3ce6a77cdc5ea89e1e43bc00c9ec43664e765fdc
2012-01-21 20:15:29 +01:00
Thomas Martitz
d3ae11d75a android/ypr0: Merge lc-*.c to generic lc-unix.c.
Change-Id: Ica76dec903486c32fda8355acdc58f0315c4d384
2012-01-21 18:39:20 +01:00
Thomas Martitz
5d13ecc4a8 android/ypr0: Merge fs-*.c to generic filesystem-unix.c.
Change-Id: I52e2c29346baf0d282243880477cd149311ce3d1
2012-01-21 18:39:19 +01:00
Thomas Martitz
954cd771fb android/ypr0: Merge kernel-*.c to generic kernel-unix.c.
Change-Id: Ife3fceb53829ef4e13bae73d8d2f10d7e56d484d
2012-01-21 18:39:19 +01:00
Thomas Martitz
856bb42037 ypr0: Fix build failure.
Change-Id: I327d58fde66fc7fa65f91e0ca724c3fd8066ccf6
2012-01-21 18:39:19 +01:00
Thomas Martitz
5b4a6c4267 Hosted: Merge debugf() implementations. Cleanup debug.h.
Fixes debug build for ypr0.

Change-Id: I9c0eff651dcf268a3fafed1a71fcc47f3e323d36
2012-01-21 18:39:19 +01:00
Thomas Martitz
cf333a61c7 Move supprt-arm.S to separate library.
Core, codecs and plugins link it separately so this gets rid of SOURCES trickery.
Don't build it for hosted targets.

Change-Id: If15ef90e93cd218a4352ae8e89eea95d3122452f
2012-01-21 18:39:19 +01:00
Thomas Martitz
34b0311d0e hosted/pcm/alsa: Use alternate signal stack for the async callback.
Signals are by default executed on the user stack, i.e. the stack of
the currently active thread. This has two problems:
1) The stack size of the current stack is likely insufficient (unless
using sigaltstack threads) because our stack sizes are normally
below MINSIGSTKSIZE which is needed to deliver a signal.
2) Some of our asm code does nasty tricks with the stack pointer. When a
signal comes in during this bad things can happen, e.g. random memory
being overwritten or simply a crash.

Using a well defined stack fixes this. This is comparable with the
separate irq stack on native targets.
2012-01-21 18:39:19 +01:00
Andrew Ryabinin
978e506f1b HM-60x: Implement power off.
Change-Id: Ia3ae38bba09996e1d1e6043f340dbbc3a2ad68b5
2012-01-17 19:49:28 +04:00
Rafaël Carré
7b28711f6c usb-s3c6400: store endpoint status per direction
Just as like all other drivers do
Confirmed to work on Nano2g
2012-01-16 18:29:38 -05:00
Amaury Pouly
66c3086ae5 imx233: oops, forgot file
Change-Id: I2c672b51ac24bfcea7ce2b663deef18e02bc4b1f
2012-01-15 18:43:32 +01:00
Amaury Pouly
35ba39e57f imx233: add DCP driver (only memcpy implemented), move channel arbiter to kernel-imx233
Change-Id: I2bc5a49459c354027fc67a880bbf3b87c942bdd0
2012-01-15 02:29:30 +01:00
Amaury Pouly
8cadb587e8 fuzeplus: fix lcd-target.h (LCD_FRAMEBUF_ADDR must point to lcd_framebuffer and not FRAME)
Change-Id: Ia1f16f9b8e3041517b60336c06aedd40dfd2be12
2012-01-15 02:29:30 +01:00
Michael Sevakis
cc26850135 Cut a few instructions from lcd_copy_buffer_rect.
Change-Id: I5159534f90b041c6ffefc00c8f91abc68ca6eb42
2012-01-14 16:17:18 -05:00
Amaury Pouly
5ef27368f1 lcd: fix function name in comments in assembly files (lcd_write_yup_420 instead of lcd_write_yuv420) 2012-01-11 13:14:30 +01:00
Michael Sevakis
307cb04948 AS3525v1/2: Enable nested handling of interrupts
Mostly for the sake of reducing latency for audio servicing where other service
routines can take a long time to complete, leading to occasional drops of a
few samples, especially in recording, where they are fairly frequent.

One mystery that remains is GPIOA IRQ being interrupted causes strange
undefined instruction exceptions, most easily produced on my Fuze V2 with a
scrollwheel. Making GPIOA the top ISR for now, thus not interruptible, cures it.

SVC mode is used during the actual calls. Hopefully the SVC stack size is
sufficient. Prologue and epilogue code only uses the IRQ stack and is large
enough.

Any routine code that should not be interrupted should disable IRQ itself from
here on in.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31642 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 22:29:25 +00:00
Bertrik Sikken
3d9f3f47d9 Remove duplicate #include "button.h"
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31636 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 12:57:02 +00:00
Rafaël Carré
4fc27c16ae adc-as3514.c : move to drivers
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31629 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 02:33:43 +00:00
Rafaël Carré
8552824284 ascodec-target.h: remove
move prototypes to ascodec.h
move code to ascodec*.c

YPR0: use adc-as3514.c instead of duplicating it

TODO: merge as3514.h and ascodec.h ?

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31626 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 01:43:16 +00:00
Rafaël Carré
2737a66471 lcd-target.h: remove some duplicate declarations
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31625 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 00:52:55 +00:00
Rafaël Carré
9c4a885f31 remove cargo-cult empty i2c-target.h
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31624 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 00:41:33 +00:00
Rafaël Carré
7f2156661c adc-target.h: cleanup
move adc_close() prototype to adc.h
don't duplicate prototypes of adc.h
remove license header and guards for a single include of another file or for empty content

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31623 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 00:39:29 +00:00
Rafaël Carré
162a8b1e40 fix fuze+ build: we need stdbool.h for bool
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31622 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 00:22:39 +00:00
Rafaël Carré
7c547be19d fix previous commit
implement button_init_device for ondio
include button.h to get prototypes

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31621 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 00:18:43 +00:00
Rafaël Carré
95cf63b294 button-target.h : move prototypes to button.h
no need to define BUTTON_REMOTE anymore

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31620 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 00:07:19 +00:00
Rafaël Carré
63ead774d5 charging_algorithm_close() declaration has moved
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31619 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 22:43:53 +00:00
Rafaël Carré
f3ad239a76 cowond2's power-target.h -> rename in pmu-target.h
other targets (ipod nano2g / classic) use that name for pmu

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31618 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 22:39:14 +00:00
Rafaël Carré
19fba5fb30 powermgmt-target.h: move prototypes to powermgmt.h
Implement empty stubs if needed instead of empty static inline

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31617 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 22:32:52 +00:00
Rafaël Carré
66149b454b ingenic_jz: remove ata-nand-target.h
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31616 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 22:11:24 +00:00
Rafaël Carré
28d1af853c Clean spi.h and spi-target.h
Only target-specific (list of SPI targets) go in spi-target.h
API go into spi.h

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31615 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 22:04:12 +00:00
Rafaël Carré
12ef8723f8 lcd-remote-target.h: Use only in firmware/target/
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31614 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 20:05:44 +00:00
Rafaël Carré
d00b7e8a6d Only use lcd-remote.h #ifdef HAVE_REMOTE_LCD
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31613 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 19:54:47 +00:00
Rafaël Carré
95f3ba5658 lcd_remote_powersave: unused
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31611 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 19:48:49 +00:00
Rafaël Carré
56e2eea175 mr500: move remote button reading code to buttom-mr500.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31609 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 19:44:30 +00:00
Rafaël Carré
351c8b2573 move _remote_backlight_* to common header
remove unused REMOTE_INIT_LCD / REMOTE_DEINIT_LCD

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31607 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 19:32:50 +00:00
Rafaël Carré
50f96943be remote_detect(): move to lcd-remote.h
Reorganize lcd-remote.h so it works for iaudio-m3 too

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31605 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 19:07:36 +00:00
Rafaël Carré
666f2e61f0 move lcd remote common declarations to lcd-remote.h
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31604 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 18:34:09 +00:00
Rafaël Carré
2a5772a20c lcd-remote-target.h: remove more duplicates
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31603 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 18:22:13 +00:00
Rafaël Carré
07ee1b3729 lcd-remote-target.h: remove duplicate declarations
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31602 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 18:15:32 +00:00
Amaury Pouly
4200e979fa fuze+: workaround the power/volume+ multiplexing that would trigger a false power button detection on heavy usage (FS#12405). Thanks to Jean-Louis Biasini
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31599 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 18:01:01 +00:00
Michael Sevakis
f860b57143 Coldfire: lcd_update call got dropped from dbg_hw_info. Replace.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31591 a1c6a512-1295-4272-9138-f99709370657
2012-01-06 16:20:26 +00:00
Michael Sevakis
302937e586 Coldfire: Fix alpha bitmap drawing from messing up the emac status register.
It failed to restore macsr to the expected default (FRAC/SAT) which caused DSP
functions like tone control filter calculation to fail (resulting in noise).
The FFT plugin was also affected.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31589 a1c6a512-1295-4272-9138-f99709370657
2012-01-05 23:00:14 +00:00
Frank Gevaerts
4fcffcbdf3 Reorganise USB initialisation to not depend on a specific enumeration sequence, by Bartosz Fabianowski, with minor tweaks by Michael Sevakis (FS#12497)
FreeBSD apparently sends a SET_ADDRESS first, which confused our code.
This patch fixes that, and also simplifies the connection handling a bit.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31582 a1c6a512-1295-4272-9138-f99709370657
2012-01-04 21:55:09 +00:00
Rafaël Carré
d1dd88eb45 imx233: move dbg function declaration to system-target.h
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31573 a1c6a512-1295-4272-9138-f99709370657
2012-01-04 06:37:25 +00:00
Rafaël Carré
606155cd20 as3525: move debug-target.h content to .c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31572 a1c6a512-1295-4272-9138-f99709370657
2012-01-04 06:34:56 +00:00
Rafaël Carré
b619a2f424 rk27xx: move debug-target.h content to .c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31571 a1c6a512-1295-4272-9138-f99709370657
2012-01-04 06:34:35 +00:00
Rafaël Carré
deed2fc6a6 PP: move DEBUG_CANCEL definition to .c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31570 a1c6a512-1295-4272-9138-f99709370657
2012-01-04 06:34:29 +00:00
Rafaël Carré
3af54d7175 imx233: move DEBUG_CANCEL definition to .c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31569 a1c6a512-1295-4272-9138-f99709370657
2012-01-04 06:34:25 +00:00
Rafaël Carré
20b1a92003 s5l8702: move debug-target.h content to .c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31568 a1c6a512-1295-4272-9138-f99709370657
2012-01-04 06:34:20 +00:00