summaryrefslogtreecommitdiff
path: root/firmware (follow)
Commit message (Collapse)AuthorAge
...
* imx233: enable cpu frequency scaling on all targetsAmaury Pouly2013-01-18
| | | | Change-Id: If19f51da5e4d66d7a85b3b9f50cbde115e73b6cb
* fix yellow on simulator + multivolumeAmaury Pouly2013-01-15
| | | | Change-Id: Idc6d0e2e8fb06c2df4cac13ad7253b0b8628c308
* zenxfi2: add simulator defines and imageAmaury Pouly2013-01-15
| | | | Change-Id: I87498ed09a952586cb84a44bc391b5a0aa149c2e
* stfm1000: comment static unused functionAmaury Pouly2013-01-15
| | | | Change-Id: Ie918a07c72bf9086508731faf658d57a286d922a
* imx233: fix sd windowed driveAmaury Pouly2013-01-15
| | | | | | | | | | The SD driver doesn't initialised drives at the beginning but upon request to handle removable drives. Since means that the init should call init_drive() and not init_sd_card() otherwise the check for WINDOW flag is bypasses. This breaks the zenxfi3 bootloader and has been overlooked for some time. Change-Id: I7325f7164d16d7e7e54eeb4645e98517a08e0836
* zenxfi3: remove obsolete commentAmaury Pouly2013-01-15
| | | | Change-Id: I9597461c2d48b7b7558c60efd309e5b34c661cbe
* imx233: rework frequency scalingAmaury Pouly2013-01-13
| | | | | | | | | | | Move to a table based approach (scales better) and distinguish between upward changes (increase frequency) and downward changes (decrease frequency). This provides a better ordering of operations and in particular it allows to avoid changing the regulator while running at low speed since it takes a long time ! This should result in a much smoother scaling. Change-Id: Iad7e5b61277e215f31c07877fbbad07ddde1171f
* rk27xx: slightly optimize commit_discard_dcache_range()Marcin Bukat2013-01-12
| | | | Change-Id: I13ce643d4ba26db5de9ffa083070d7f40b0e7b1f
* imx233: correctly send the LCD_EVENT_ACTIVATION on enableAmaury Pouly2013-01-12
| | | | | | | For some reason it is the responsability of the driver to send this event so do it. This might fix some non-updating screens. Change-Id: Ib5fdc94bf266c3497a8ac4e89d0418c0e876ff9f
* fuze+: lcd code cleanupAmaury Pouly2013-01-12
| | | | | | | The lcd kind is always set to st7783 in case we can't read the ID so don't bother handling impossible cases Change-Id: I352fd43b26068b460e69190d37c4cd4627e1db9a
* fuze+: correctly handle settings (flip and invert) accross enableAmaury Pouly2013-01-12
| | | | | | | | | The flip and invert settings can potentially be reset to their value accross a disable/enable cycle, so save the value of the impacted registers and apply it after each enable. Also avoid poking registers when the lcd is not on. Change-Id: Ica98f166c060aade7eb205f5628b58aae692024f
* imx233: enable underflow recovery in lcdif (needed for freq scale)Amaury Pouly2013-01-12
| | | | | | | | | | | | | | When chaging the cpu and memory frequency we need to disable the external memory interface (EMI) for a small time. This can underflow the dma and cause some breakage. Hopefully the SSP controller handles this gracefully by stopping the clock and the I2C probably handles this naturally because the clock can be streched anyway. However the LCDIF has a special setting for this which needs to be enable, otherwise it will send garbage to the LCD. No other block is known to suffer from this currently but this issue might have more unexpected consequences. Change-Id: Ide154cad87929f2bf6cc419ac1d2ff33e30eec66
* rk27xx: optimize irq_handler()Marcin Bukat2013-01-11
| | | | | | | Change-Id: Idd3141e57b70e9b28b91748bc71208d9afffcd57 Reviewed-on: http://gerrit.rockbox.org/381 Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com> Tested-by: Marcin Bukat <marcin.bukat@gmail.com>
* rk27xx: substitute magic constants with meaningful names for INTCMarcin Bukat2013-01-10
| | | | Change-Id: Ic93114db351a9940a53d0c1df6439d82ada044e1
* rk27xx: substitute magic constants with meaningful names for peripherials resetMarcin Bukat2013-01-10
| | | | Change-Id: Ia411c9be65376d1c3fdf59b7e692b0590d58775e
* rk27xx: substitute magic constants with meaningful names for clock gatingMarcin Bukat2013-01-10
| | | | Change-Id: I6c66c7496db3db78e5c959414464826134dbe200
* imx233: modify arm cache timings on frequency switchAmaury Pouly2013-01-10
| | | | | | | | | The manual recommands to tweak the arm cache settings on frequency changes. The meaning of these values is undocumented but 0 seems to be a safe value for all frequencies whereas 3 seems to be valid only for low frequencies (<=64MHz ?) Change-Id: Iaa8db4af8191010789cf986b1139ff259d73e2ed
* imx233: implement emi frequency scaling (disabled by default)Amaury Pouly2013-01-10
| | | | | | | | | | | | | | | | | | | | | | | CPU frequency scaling is basically useless without scaling the memory frequency. On the i.MX233, the EMI (external memory interface) and DRAM blocks are responsable for the DDR settings. This commits implements emi frequency scaling. Only some settings are implemented and the timings values only apply to mDDR (extracted from Sigmatel linux port) and have been checked to work on the Fuze+ and Zen X-Fi2/3. This feature is still disabled by default but I expected some battery life savings by boosting higher to 454MHz and unboosting lower to 64MHz. Note that changing the emi frequency is particularly tricky and to avoid writing it entirely in assembly we rely on the compiler to not use the stack except in the prolog and epilog (because it's in dram which is disabled when doing the change) and to put constant pools in iram which should always be true if the compiler isn't completely dumb and since the code itself is put in iram. If this proves to be insufficient, one can always switch the stack to the irq stack since interrupts are disabled during the change. Change-Id: If6ef5357f7ff091130ca1063e48536c6028f23ba
* iPod Classic/6G: PCM support for all CS42L55 ratesCástor Muñoz2013-01-09
| | | | | | | pcm_dma_apply_settings(): sets the configured PCM frequency, all native CS42L55 sample rates are available. Change-Id: I2fcd5581457a669c3044516804cb64fb972218d0
* iPod Classic/6G: support USB suspend modeCástor Muñoz2013-01-09
| | | | | | | Actually Rockbox does not use this mode, it is supported by other iPods, so implemented on Classic as well. Change-Id: Ia6578506df27a95a7f7522b3034b764631a8bb3a
* iPod Classic/6G: fix battery voltage ADC scaleCástor Muñoz2013-01-09
| | | | | | | | | | | Scale battery voltage ADC readings by 1023 instead of 1000, using ADC1 (substractor) instead of ADC0 (multiplicator) to get better resolution. Percent charge/discharge tables are also modified to return a similar value than the old ones. Change-Id: I2951c75faa02f4302599ec24f9156cfd209c36eb
* iPod6G (Classic) - enable HAVE_DISK_STORAGEHayden Pearce2012-12-29
| | | | | | | | | | Fixes missing Settings - General Settings - System - Disk - Spindown setting. Change-Id: Iae686598dfd7ad4ca1faf8db9f1271e7808de752 Reviewed-on: http://gerrit.rockbox.org/376 Reviewed-by: Michael Giacomelli <giac2000@hotmail.com> Tested-by: Michael Giacomelli <giac2000@hotmail.com>
* imx233: increase irq storm thresholdAmaury Pouly2012-12-29
| | | | | | | On heavy storage operations (like database update), the ssp dma irq can be fired around ~10000/sec. Change-Id: I0e33df6258e051abd4fe110a0f408a19671cd8ad
* imx233: correctly restore auto slow on cpu frequency changeAmaury Pouly2012-12-29
| | | | Change-Id: I3ba495488e20fdd19d391f84ff484c1ce305d11b
* imx233: move power init to system initAmaury Pouly2012-12-29
| | | | | | | | | Do low level power init in system_init(). This can be needed since imx233 must be able to frequecy scale atfer system_init() and kernel_init() and this is only possible if power system was initialised. Change-Id: I27c66ec0dccd60bda26a45be24683c0bfe72c6da
* Fix copyright headersAmaury Pouly2012-12-29
| | | | Change-Id: Ie65920b1192e9b737fcc2554d280fbcedfa39800
* hm60x/hm801: Add hold button support.Andrew Ryabinin2012-12-29
| | | | Change-Id: I05557ecfbf0bd821d8966862a38f7f22656b36ef
* imx233: use tick insteaf of msec to collect statisticsAmaury Pouly2012-12-26
| | | | | | | | | | The current code uses the msec irq to collect statistics and detect irq storms (debug). But this irq is triggered 1000 times per sec and we don't need that accuracy. This commit removes the msec irq and use the tick timer instead which is triggered only 100 times per second. Change-Id: If14b9503c89a3af370ef322678f10e35fafb4b8a
* fuze+: fix bootloader buildAmaury Pouly2012-12-26
| | | | Change-Id: Ibe221d0f94ec4234ce1459073ba9ae77f6de162f
* fuze+: implement lcd flip and invertAmaury Pouly2012-12-26
| | | | Change-Id: I1efcd0c6aa5e586b64c1b48d401648c7a933c4d9
* fuze+: make sure lcd is ready before chaning a registerAmaury Pouly2012-12-26
| | | | | | | | | | 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
* fuze+: add lcd debug screen (display kind)Amaury Pouly2012-12-26
| | | | Change-Id: I08ffcfb8e4cf516aae1c23740eedf80d2cfcea41
* imx233: rework cpu frequency scalingAmaury Pouly2012-12-26
| | | | | | | | | When changing the cpu frequency, it is important to make sure that HBUS stays at a reasonable frequency otherwise the chip will crash. Special care is needed about auto-slow and clk_p/clk_h ratio on intermediate steps. Change-Id: Ief9f68ddf286caabe75c879718dac5027ab1560f
* imx233: fix regulator voltage setting + always enable DCDC modeAmaury Pouly2012-12-26
| | | | | | | | | | | | | Make sure DCDC is running at boot (it is disabled by default when 5V is present and we don't want to rely on the bootloader to change this). When changing the voltage on a regulator, it usually takes 2ms for the voltage to stabilize. In DCDC mode, there is an irq to notify about the event so use it ! This is especially important when changing cpu frequency because increasing the cpu freq while the voltage is rising is unreliable. Change-Id: Icfe9ef3ee90156d1e17da0820d9041859f7f3bca
* imx233: fix potential hbus dividor settings + docAmaury Pouly2012-12-26
| | | | | | | | | HBUS uses the same field for integer and fractional dividers, the choice is made by a bit. Make sure both are changed together, otherwise this could result in the wrong divider to be used and in HBUS freq to be too low or too high (very bad). Change-Id: I253d8eeee26c5038868b729c4f791511295a39f0
* imx233: simplify sdmmc led handling, fix typoAmaury Pouly2012-12-16
| | | | Change-Id: Iffbb05afd41bd0accfac9c127ea3a26fd33f1387
* rk27xx: Add status led (icon) support to SD driverMarcin Bukat2012-12-16
| | | | Change-Id: I47a36c0cf7319c2b100b813fdcbea024c7ae0b0a
* si4700: fix typoRyan Hitchman2012-12-09
| | | | | | Change-Id: I3ebeaf8188fc330921089a148cac1f3ea5740e23 Reviewed-on: http://gerrit.rockbox.org/370 Reviewed-by: Bertrik Sikken <bertrik@sikken.nl>
* Add the 9 segment lcd funciton to remote lcdsJonathan Gordon2012-12-09
| | | | Change-Id: I00f9a067522624a87befcf95a811b49ad685029c
* 9 segment bitmap drawing:Jonathan Gordon2012-12-09
| | | | | | | | | | Use %x9(id) to draw an image in the whole current viewport using the 9 segment drawer (which draws the corners as normal and *tiles* the middle segments to the needed width/height). Future work is to make it scale instead of tile Change-Id: Ic3ed1cad93f96091694801eb442e0da5a2401203
* usb: add support for hardware handled SET ADDR/CONFIGAmaury Pouly2012-12-07
| | | | | | | | | | | | | | | | | | | | | | | Some USB controllers like the one of the Rockchip 27xx handle some requests in pure hardware. This is especially a problem for two of them: - SET ADDR which is used by our core to track the DEFAULT/ADDRESS state and is required for the drivers to work properly - SET CONFIG which is used by our core to initialise the drivers by calling init_connection() In these cases we need a way to notify the core that such requests happened. We do this by exporting two functions which directly notify the core about these requests and perform the necessary init steps required without doing the actual USB transfers. Special care is needed because these functions could be called from an interrupt handler. For this reason we still use the usb_queue and introduce new IDs so that they are processed in order and safely. No functional change is intended, both in the usbstack and on targets without such quirks. Change-Id: Ie42feffd4584e88bf37cff018b627f333dca1140
* Add a true waveform display to the oscilloscope plugin.Michael Sevakis2012-12-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Adds some additional niftyness like a floating popup display that is implemented in an OSD library for use by other plugins. * Speed changes are now gradual for both views and follow a curve derived from some fiddling around to get a nice feel. * Refined a few behavioral things overall. It needs a bit of help from a direct PCM channel callback so it may capture PCM for waveform display. Also need a few other core routines to help out for the OSD. Messes with some keymaps. Some targets need keymaps to access the different views. Some devices can't support the additional view because it requires a large buffer ( > 1 s) for samples. If the plugin buffer is small, they can still use the popup display since the plugin is also much smaller in that case. Slow speed waveform needs some refining so it draws gradually like a real oscilloscope but I'll stick with what it is, for the moment. Change-Id: Ieb5b7922a2238264e9b19a58cb437739194eb036 Reviewed-on: http://gerrit.rockbox.org/245 Reviewed-by: Michael Sevakis <jethead71@rockbox.org> Tested-by: Michael Sevakis <jethead71@rockbox.org>
* rk27xx: introduce meaningfull constants in usb driverMarcin Bukat2012-12-04
| | | | | | Based on pamaury's work. No (un)functional change yet. Change-Id: I7fe76c1da20d87d6c92eb3792e3d352877d423d7
* imx233: try to improve audio qualityAmaury Pouly2012-12-02
| | | | Change-Id: Idaee93fae8d407e5968f8571c54957b7b87da3bb
* rk27xx: use generic fallback of lcd_blit_yuv()Marcin Bukat2012-11-26
| | | | Change-Id: I4d6834c8caa9037938d6291041f14cf9d2888e2b
* Fix building the iPod 6G UI sim by reusing the iPod Video bitmap.Michael Giacomelli2012-11-25
| | | | | | Ideally someone will go through and make a graphic for the 6G, but as it looks nearly identical to the Video its not a huge deal. Change-Id: If507c6d4f01eb0b1e5fc2f15f6a0e5a3195006c6
* Include runtime current measurements for the ipod classic.Michael Giacomelli2012-11-25
| | | | | | Numbers taken from the battery benchmark wiki page. Change-Id: Id66d3a2b76d025ef688a12f11e9274afd9bdfe58
* imx233: hopefully fix audio pop on startupAmaury Pouly2012-11-13
| | | | Change-Id: I6410c0e11acc02ec996461153b4737f416f8cbee
* HD300: Fix crash in bootloader introduced by 36281c4Marcin Bukat2012-11-13
| | | | | | | | Uninitialized struct scroll which is used to pass state between scrollstrip ISR and button_read_device() can bomb out whole button subsytem. Change-Id: I3b415c22cfee4181b2132cddaeff68797c7cc0ea
* AMS: make sure ROM clock is always onRafaël Carré2012-11-12
| | | | Change-Id: Ib73b21b944cb609cc26f7f6955d2c894628f65ad