Commit graph

3140 commits

Author SHA1 Message Date
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
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
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
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
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
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