Commit graph

53 commits

Author SHA1 Message Date
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
Amaury Pouly
e55394521b imx233/fuze+: implement various audio stubs and update source
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30535 a1c6a512-1295-4272-9138-f99709370657
2011-09-13 23:40:12 +00:00
Amaury Pouly
696b9d146b imx233/fuze+: implement lradc function and adc on top of it
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30534 a1c6a512-1295-4272-9138-f99709370657
2011-09-13 23:40:09 +00:00
Amaury Pouly
06c03b51b2 imx233/fuze+: fix default init code (define lcd kind as 9325 and do 7783 init !)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30532 a1c6a512-1295-4272-9138-f99709370657
2011-09-13 23:39:22 +00:00
Amaury Pouly
7d4fed53cc imx233:fuze+: major memory and usb rework
- now identity map dram uncached and have a cached and buffered virtual alias
- rework dma to handle virtual to physical pointers conversion
- fix lcd frame pointer
- implement usb detection properly
- implement bootloader usb properly
- allow the bootloader to disable MMC windowing (useful for recovery)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30432 a1c6a512-1295-4272-9138-f99709370657
2011-09-05 11:29:32 +00:00
Amaury Pouly
855e3c6f0f imx233/fuze+: implement lcd_blit_yuv (untested)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30207 a1c6a512-1295-4272-9138-f99709370657
2011-07-24 19:12:27 +00:00
Amaury Pouly
eb90d95693 imx233/fuze+: huge rework
- enable MMU
-rework lcd frame buffer
- add rtc/adc/power stubs (or not)
- fix a few MMC related defines (hopefully)
- implement cache handling for DMA
- more SD work
- add keymap (based on clip)
- add virtual buttons
- update linker scripts
- big step toward apps actually compiling

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30200 a1c6a512-1295-4272-9138-f99709370657
2011-07-23 11:45:22 +00:00
Amaury Pouly
5a2681161b imx233/fuze+: make SOURCES more correct, implement i2c for fmradio
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30135 a1c6a512-1295-4272-9138-f99709370657
2011-07-09 17:14:05 +00:00
Amaury Pouly
e36b20c4a1 imx233/fuze+: replace software i2c by hardware i2c, make some code more correct, reduce code size of lcd init sequences
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30120 a1c6a512-1295-4272-9138-f99709370657
2011-07-03 15:18:41 +00:00
Amaury Pouly
88f75d096e imx233/fuze+: don't compile {touchpad code,sd} in bootloader mode, fix style in mmc
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30112 a1c6a512-1295-4272-9138-f99709370657
2011-07-02 02:21:06 +00:00
Amaury Pouly
a43509cc99 fuze+: implement a full-blown debug screen for touchpad with graphical feedback
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29869 a1c6a512-1295-4272-9138-f99709370657
2011-05-13 16:40:22 +00:00
Amaury Pouly
86e8c28330 fuze+: implement Synaptics RMI driver on top of i2c, add touchpad debug screen, bootloader enters debug screen by default
Since the bootloader currently always fails at storage point (unimplemented), always enter touchpad debug screen and power off which pressing power button.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29859 a1c6a512-1295-4272-9138-f99709370657
2011-05-11 22:38:09 +00:00
Amaury Pouly
2481427b03 fuze+: add init/enable/disable lcd sequences for the second lcd kind (only based on disassembly, untested)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29852 a1c6a512-1295-4272-9138-f99709370657
2011-05-10 17:22:01 +00:00