Commit graph

3772 commits

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