Commit graph

65 commits

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

Change-Id: I43ec62a637dd61c3b2a3a6e131c1a9e8035524b1
2012-12-26 02:39:39 +01:00
Amaury Pouly
7fddc2327b fuze+: add lcd debug screen (display kind)
Change-Id: I08ffcfb8e4cf516aae1c23740eedf80d2cfcea41
2012-12-26 02:38:56 +01:00
Amaury Pouly
4faaca13ca fuze+: use safer battery shutoff and dangerous levels
Change-Id: I68258828afd3021bab2067e5af0a5dcd2d44de04
2012-08-31 00:56:55 +02:00
Amaury Pouly
6c2190ea04 fuze+: battery calibration
Change-Id: Iaaca5caa35b9624d8dd9ea14eabde24c5667e892
2012-08-30 20:40:13 +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
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
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
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
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
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
Boris Gjenero
cd89b31133 Fix Fuze+ bootloader red
Change-Id: I434e3f4930e6ab7f8d9f5ba43a5bfe0a387e0f09
2012-02-04 22:40:51 -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
0f02da208c fuze+: check rectangle coordinates in lcd_update_rect
Change-Id: I5f23063751d7650b8eefd0f37393498d9a27bd19
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
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
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
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é
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
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
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
Amaury Pouly
84b97dd1ea fuze+: remove two_finger pseudo touchpad button because it was unrealiable, update keymap to remove akward mappings
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31444 a1c6a512-1295-4272-9138-f99709370657
2011-12-26 17:45:54 +00:00
Amaury Pouly
f7f1f7023f imx233/fuze+: implement power management(battery charger), add powermgmt debug info, add power debug info, move target specific powermgmt code to its own files, remove auto-slow setup which was forgotten for debugging
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31424 a1c6a512-1295-4272-9138-f99709370657
2011-12-24 19:20:12 +00:00
Michael Sevakis
95e6043d5e Convert remaining memframe LCDs that can be convert to common code.
Massage the way it interfaces a bit to make things more flexible.
The chroma_buf scheme on Sansa Connect and Creative ZVx calling the
lcd_write_yuv420_lines implementation in lcd-as-memframe.S with five params
with a chroma buffer that the function can't use wouldn't work anyway so just
have them use the stock implementation (really, how was that working?).


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31335 a1c6a512-1295-4272-9138-f99709370657
2011-12-16 23:40:39 +00:00
Amaury Pouly
744adcba81 imx233: add comment about block reset
fuze+: reset the controller for all lcd types, should fix the "CRT effet"

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31234 a1c6a512-1295-4272-9138-f99709370657
2011-12-13 22:48:01 +00:00
Amaury Pouly
374a08ab31 fuze+: update keymap and touchpad driver based on FS#12405 with minor modifications. Thanks to Jean-Louis Biasini.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31098 a1c6a512-1295-4272-9138-f99709370657
2011-11-30 18:39:22 +00:00
Amaury Pouly
852b68c74a imx233/fuze+: set drive strength of tuner chip enable pin, enable backlight on panic
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31026 a1c6a512-1295-4272-9138-f99709370657
2011-11-17 23:10:22 +00:00
Amaury Pouly
7e211ff9d1 fuze+: adjust touchpad sensitivity based on product id like OF, add debug screen to hw info
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31010 a1c6a512-1295-4272-9138-f99709370657
2011-11-17 19:13:09 +00:00
Amaury Pouly
ea8570b48c imx233: remove virtual 5V channel (value doesn't make sense), fix battery conversion (need to trigger delay)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30986 a1c6a512-1295-4272-9138-f99709370657
2011-11-14 21:42:43 +00:00
Amaury Pouly
e167c1d8d7 imx233: add automatic battery conversion using delay channel, make 5V a virtual channel since it has a builtin divider
fuze+: use 5V virtual channel

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30982 a1c6a512-1295-4272-9138-f99709370657
2011-11-14 21:05:14 +00:00
Amaury Pouly
7fec08927b fuze+: fix backlight to have a real zero
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30978 a1c6a512-1295-4272-9138-f99709370657
2011-11-14 19:46:09 +00:00
Amaury Pouly
2a45f7772b fuze+: fix backlight calculations
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30977 a1c6a512-1295-4272-9138-f99709370657
2011-11-14 19:14:34 +00:00
Amaury Pouly
7aac4188d2 fuze+: fix typo (mdelay vs udelay) in register read (shouldn't change anything) and be sure lcdif is ready
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30958 a1c6a512-1295-4272-9138-f99709370657
2011-11-10 17:29:57 +00:00
Amaury Pouly
bbbc2e8877 fuze+: fix typo in lcd init sequence for second lcd type
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30926 a1c6a512-1295-4272-9138-f99709370657
2011-11-07 09:18:24 +00:00
Amaury Pouly
856fb705c2 fuze+: use macro and add a few static
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30889 a1c6a512-1295-4272-9138-f99709370657
2011-11-02 17:48:04 +00:00
Amaury Pouly
f5d664ad93 fuzeplus: rework button handling to use a queue instead of a blocking semaphore in the thread
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30844 a1c6a512-1295-4272-9138-f99709370657
2011-10-27 10:38:19 +00:00
Amaury Pouly
e9575bdf2f fuze+: fix typo and remove ugly logf construct
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30829 a1c6a512-1295-4272-9138-f99709370657
2011-10-23 14:19:50 +00:00
Amaury Pouly
623cbd6e02 imx233/fuze+: implement pcm out and audio codec, update SOURCES
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30800 a1c6a512-1295-4272-9138-f99709370657
2011-10-18 22:08:41 +00:00
Amaury Pouly
359826aa94 fuze+: fix bootloader not set backlight brightness
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30791 a1c6a512-1295-4272-9138-f99709370657
2011-10-18 21:58:14 +00:00
Amaury Pouly
09b4c7667e fuze+: implement basic touchpad driver
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30637 a1c6a512-1295-4272-9138-f99709370657
2011-10-02 14:44:31 +00:00
Amaury Pouly
30f333108c fuze+: set backlight brightness to default only when there is not backlight infrastructure
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30636 a1c6a512-1295-4272-9138-f99709370657
2011-10-02 14:44:26 +00:00
Amaury Pouly
2546bc59cc imx233/fuze+: add fuze+ to the simulator framework
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30602 a1c6a512-1295-4272-9138-f99709370657
2011-09-25 15:35:39 +00:00