summaryrefslogtreecommitdiffstats
path: root/firmware
AgeCommit message (Collapse)AuthorFilesLines
2012-03-03Revise the PCM callback system after adding multichannel audio.Michael Sevakis30-641/+680
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-02Pandora port: Add support for the L/R shoulder buttonsThomas Jarosch1-0/+6
Change-Id: I18d5998dbcf7347549008fb9e52679b65fbf7e4f
2012-02-29imx233: correctly stop charging on topoff (fix battery discharging)Amaury Pouly1-1/+1
Change-Id: Ied7ea0a882e532bcf673a96d224dd55fdaae05d4
2012-03-01lcd drivers: split lcd_gradient_rect so it is actually usefulJonathan Gordon2-14/+48
lcd_gradient_rect() was only usable to draw list lines, so split it up and make a generic gradient draw function available to apps/ Change-Id: I665911a90fef239b5e06592ea2763cbeeb74c83f
2012-02-29Fix bugs in lcd drivers after b37e6bcAndrew Ryabinin3-3/+3
Change-Id: I9dc262b8453abab62e792beebe4f96415e58b380
2012-02-28imx233: user __FIELD_SET to set the clock divisorsAmaury Pouly1-20/+8
The clock divisors must *NEVER* be 0, first clearing then setting is thus undefined. Change-Id: Iba8e6ba1e668bf746e3f7387f0175f63d81f6b2b
2012-02-28imx233: print power up source in the bootloaderAmaury Pouly1-0/+2
Change-Id: I9ff4738b7efdb25ab57b0061f60c7fde58b9a0b5
2012-02-28lcd/skin_engine: Add the ability to draw onto the backdrop layerJonathan Gordon3-0/+10
The framebuffer the lcd driver uses can now be changed on the fly which means that regular lcd_* drawing functions can draw onto the "backdrop" buffer. The skin engine can use this to create layered effects. Add the tag %VB to a viewport to draw that viewport onto the backdrop layer. If you want to draw an image onto the backdrop framebuffer use %x(backdrop filename) instead of %X() inside a viewport with %VB. Change-Id: I741498e2af6d4f2d78932cabe8942317893e7cfc
2012-02-28rk27xx: Make sure SD module clock is not gatedMarcin Bukat1-0/+1
Change-Id: Iafc9af6cf4762f16f367705b8c9a3e441420905b
2012-02-28Fix build errors and warningsJonathan Gordon3-3/+3
Change-Id: Ie80bc4328d4f89a5a7b77c93f2b445d0e30fb019
2012-02-28lcd drivers: Convert lcd_[remote_]framebuffer to a pointerJonathan Gordon64-179/+191
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-25radio: include power.h in drivers for tuner_power()Amaury Pouly3-0/+3
Change-Id: I1ef8917b28b6d955e456c0b3737d41d356f34ec3
2012-02-25Move radio power handling from apps/ to drivers.Amaury Pouly7-34/+39
Remove direct calls to tuner_power(...) in apps/ and let the driver manage tuner power with the RADIO_SLEEP setting. Change-Id: I37cd0472e60db5d666dae1b9fe4755dd65c03edd Reviewed-on: http://gerrit.rockbox.org/84 Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2012-02-25FS#12519 - iPod Classic/6G: swap L-R audio channels by Cástor MuñozCástor Muñoz1-5/+4
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-25Make some arrays const.Nils Wallménius1-5/+5
Change-Id: I371435b2943a19f4b33bbedb116800b483621a4d
2012-02-25IPod Classic/6G: LCD sleep (FS#12523) by Cástor MuñozCástor Muñoz3-46/+235
Change-Id: I7bea9f61fa315339c1f41efb27d13a4aa30cb4c3 Signed-off-by: Nils Wallménius <nils@rockbox.org>
2012-02-24hm60x/hm801: Fix USB DAC functionalityAndrew Ryabinin1-1/+4
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-24HiFiMAN: Implement lcd powersave mode.Andrew Ryabinin4-9/+49
Change-Id: I0a22b436549047ac0c2f9e2c203cbe8b31cfc1cd
2012-02-22Arm stack unwinderMarcin Bukat5-6/+55
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-22Force YPR0 to 240x320Frank Gevaerts1-8/+1
The YPR0 has a fixed screen size. Letting the generic RaaA screen size selection code work on causes checkwps/buildall.sh to build broken checkwps binaries. There's no good reason to allow overriding the screen size here Change-Id: Ic666d28d10273000a8c1867580c8d1a13dd98dc9
2012-02-19beep/mixer code: Code police a bit.Michael Sevakis2-1/+4
/firmware is in the #include path with makes #include "asm/beep.c" sufficient. Add a comment to generic beep code and make another express intent better. Change-Id: I587cd704478b894785927bdfe2e647e28614df62
2012-02-18rds: add basic RDS clock-time supportBertrik Sikken2-0/+49
Change-Id: I931182ccd20cf8899f3ce9b6b8d7c7c5f4ea006f
2012-02-18Split CPU-optimized beep code into the firmware/asm tree.Michael Sevakis3-0/+132
For now due to current lack of an apps/asm, place the ASM/generic code in the firmware/asm directory. Additionally, make generic beep code more generic. Change-Id: I4a69b6ffcbb97d9e6dfde2209c5a118de19e5638
2012-02-17Fix lua unused-variable warning by introducing UNUSED_ATTR.Thomas Martitz1-0/+7
Change-Id: If19393db123e89e58545c9e0736e6fa32fccb810
2012-02-17PCM mixer: Simplify mixer_channel_play_data.Michael Sevakis1-27/+16
Streamline it to do fewer PCM lock calls in the case of having a prepared buffer. Change-Id: I7fca2b95cc5da314ae257522bb6f1ad7aec6634a
2012-02-16rds: make programme identification (pi) decoding safer, show pi in the debug ↵Bertrik Sikken1-6/+10
screen Change-Id: I8b547400f4a28ee387157848b9640a3361df937f
2012-02-16Make logf() output to serial optionalRalf Ertzinger1-2/+2
Only output logf() to the serial port if LOGF_SERIAL is defined (in addition to HAVE_SERIAL). Add an option to advanced configure to set this (defaults to off). Change-Id: I13d0f5df391e5371f7797f46a3faaf7a6974b9e4 Reviewed-on: http://gerrit.rockbox.org/92 Reviewed-by: Björn Stenberg <bjorn@haxx.se>
2012-02-13FS#12569 - iPod Classic - battery capacity updateAlbert Barca1-3/+3
Change-Id: Ibc4d873fb142954e274f7fc0f2782f4e022e2f81 Signed-off-by: Nils Wallménius <nils@rockbox.org>
2012-02-11FS#12524 - iPod Classic/6G: hardware click supportCástor Muñoz4-0/+124
Based on the piezo driver for the nano2g. Signed-off-by: Nils Wallménius <nils@rockbox.org>
2012-02-10checkwps: Fix buildall.sh and some RaaA/ypr0 versions.Thomas Martitz1-2/+2
Change-Id: I5889743e94ed568c8f7dcc50de0b03b8421969f7
2012-02-09Fix sim battery emulation: Set such a low sample value for battery smoothing ↵Nick Peskett1-0/+7
as to effectively disable it. Since smoothing was enabled for battery_status_update() in 109084d, the simulated charge/ discharge cycle was so fast that the battery level never really dropped much below 90%. Change-Id: Ide5c7ceef97bc9ed62d45e3a0afd99ff6f0550ea
2012-02-05Urgh...actually change all the stuff I'm supposed to.Michael Sevakis1-2/+2
Goofed a couple fn params. Change-Id: I2474d10fe08d2629ada54c83e201ee91c596d854
2012-02-05Make generic pcm-mixer.c more generic in the way it writes output.Michael Sevakis2-112/+15
Also remove unused firmmware/asm/generic directory. Change-Id: If1961f96f4292f00227a9b0148181152ac405e51
2012-02-05fuze+: the radio chip needs a few milliseconds to power upAmaury Pouly1-0/+2
Change-Id: I7e7f3bf86ab69d6c7e94e8b16c1a26f74a76f1a2
2012-02-05imx233: add audioin init code, add adc dma interrupts, fix register definesAmaury Pouly5-5/+27
Change-Id: I204afbd3390f8dcde6ea1315ea6aa8dde12d3749
2012-02-04Fix Fuze+ bootloader redBoris Gjenero1-0/+2
Change-Id: I434e3f4930e6ab7f8d9f5ba43a5bfe0a387e0f09
2012-02-04Use commit_dcache() instead of commit_discard_idcache() where possibleBoris Gjenero2-3/+3
- 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-04Generic find_first_set_bit can use __builtin_ctz instead of __builtin_ffsbootloader_clipv2_v5Michael Sevakis1-3/+4
The former gives 0-based indexes, which is what our implementation returns, making the "- 1" unnecessary. Change-Id: I172ab5e06695be62e4a18d4fd0415b8314f5dc26
2012-02-03imx233/fuze+: fix a typo, handle volume differently because of the line1/dac ↵Amaury Pouly4-12/+41
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-02fuze+: don't use the DCP to copy the framebuffer since it can yield and then ↵Amaury Pouly1-2/+1
several lcd udpates could run concurrently with undefined behaviour Change-Id: I39167188f354859fc8e4f9f979c97343b40beb7d
2012-02-01fuze+: use the si4700 internal oscillator and set a pin on power down (seems ↵Amaury Pouly2-1/+9
important) Change-Id: If737438ddb726e51e0a725e27bc93950eb3657bd
2012-02-01fuze+: check rectangle coordinates in lcd_update_rectAmaury Pouly1-0/+6
Change-Id: I5f23063751d7650b8eefd0f37393498d9a27bd19
2012-02-01fuze+: add basi pinctrl debug screenAmaury Pouly1-1/+30
Change-Id: I999d55a00a03eecc88d726ed33b2edaf339a138c
2012-02-01fuze+: pin B1P30 is volume down key and has no relation with SDAmaury Pouly2-4/+5
Change-Id: Iee93e90d3054442ae873c55c05c030ed690ccbd6
2012-02-01imx233/fuze+: set a few recommended power bits by Freescale, remove some ↵Amaury Pouly7-5/+63
uneeded headers, implement audio path selection for playback and radio Change-Id: If926ead9b776504a58eb102fcc0e9acadf4f7379
2012-01-30Clipv2: fix button reading on some modelsRafaël Carré1-0/+1
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-29AMSv1/AMSv2: show CCU_IO in debug menuBertrik Sikken1-2/+1
Change-Id: I8ee9d464a6a3aebc21b60ac88e1b3833dca48885
2012-01-27fuze+: change rendering scheme, do not rely on generic framebuffer and ↵Amaury Pouly3-31/+259
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-27imx233: update arbiter to get more debug information, update debug screen ↵Amaury Pouly3-3/+9
accordingly Change-Id: Ia229e5303692712295f1dbd37a76f865a3eef4ea
2012-01-27imx233: implement dcp blitting, simplify code and make it work even in ↵Amaury Pouly2-18/+77
context interrupt by busy waiting Change-Id: Ife949e13e3e04a56a2b5bc554eb46c726e719712