summaryrefslogtreecommitdiff
path: root/firmware (follow)
Commit message (Collapse)AuthorAge
...
* zenxfi3: switch to new button driverAmaury Pouly2014-02-22
| | | | Change-Id: I14b8f35a556ef07cc5fd43c39c6ad17a1229b4f8
* zenxfi2: switch to new button driverAmaury Pouly2014-02-22
| | | | Change-Id: I5c5bc33d0cc08316e4d853e81a5ba4fb9c5b08d9
* nwz{e360,e370}: switch to new button driverAmaury Pouly2014-02-22
| | | | Change-Id: Iad08653f6cdbcfd75d3130186f91ed0b49a04ac9
* zen{,xfi,mozaic,xfistyle,v}: switch to the new button driverAmaury Pouly2014-02-22
| | | | Change-Id: I206b16f6374f536ab6d84e84fefc8370a96ef759
* imx233: introduce new generic button driverAmaury Pouly2014-02-22
| | | | | | | | | | | This driver will subsume the old button-lradc driver and support far more options. It can sense LRADC channels, PSWITCH, GPIOs and it handles special "buttons" like headphone insertion and hold detection. It also provides a more natural description of the buttons using a target-defined table with some macros to make it easy to read and write. It uniformely handles debouncing on LRADC channels and PSWITCH. Change-Id: Ie61d1f593fdcf3bd456ba1d53a1fd784286834ce
* imxtools/scsitools: increase SCSI delay to 10 secondsAmaury Pouly2014-02-22
| | | | | | | On some OSes like Windows or if running in a virtual machine, the one second timeout might be too short. Change-Id: I717f7a2aaed1cb3d40e8fbe6f9b1081b43ceea95
* zenxfi3: enable speaker supportAmaury Pouly2014-02-22
| | | | Change-Id: I4a46bf8d792c3286a367d3b962362d048eeb0619
* imx233: split lradc channel setup into source and sampling parametersAmaury Pouly2014-02-20
| | | | Change-Id: I1be43fec9622cb78fc5737e5ed8d7fda17baf576
* imx233: stop watchdog on exceptionAmaury Pouly2014-02-18
| | | | Change-Id: If11d90343d32d5889857e7ba30a99f60a87639f1
* imx233: regenerate headersAmaury Pouly2014-02-18
| | | | Change-Id: I9dae85eb27337154ddb82015666773a5254cc388
* imx233: fix app.lds to properly support INIT_ATTRAmaury Pouly2014-02-17
| | | | | | | | | | | | | | | Original fix by Marcin: it had a problem because crt0 on imx233 is more complicated than many targets: since we use virtual memory, we first disable the MMU, then move the entire image (including init and itext stuff), then setup a temporary stack to setup the MMU. Only when the MMU is enabled, can we move the init and itext stuff to its right location and finally boot. This requires some trickery because: - the initial move copies everything, including init and itext - the stack overlaps with init and itext to reclaim space - the temporary stack cannot be the same as the main stack to avoid trashing the init and itext code, also it needs to be a physical address Change-Id: Ibaf331c7d90b61f99225d93c9e621eb0f3f8f2dc
* Revert "imx233: fix app.lds to properly support INIT_ATTR"Amaury Pouly2014-02-17
| | | | | This reverts commit 2b02cbe1ccbf2fcdcc164c6a4139f6666aed23c9. For some reason it breaks the build, more investigation is needed.
* zenxfistyle: add simulator bitmap and button mapAmaury Pouly2014-02-16
| | | | Change-Id: I68a107887e6b1563b6c5ab425e98be7e012e7976
* imx233: rework interrupt nesting, disabled for nowAmaury Pouly2014-02-16
| | | | | | | Rework the irq code, to put more code in the C part. When interrupt nesting is enable, Rockbox gets pretty unstable so disable it for now. Change-Id: Iee18b539c80ea408273f6082975faaa87d3ee1b6
* zenxfistyle: implement speaker supportAmaury Pouly2014-02-16
| | | | Change-Id: If59aaacdea9f57932464a1615f2b80e410ec50dc
* zenxfi2: implement headphones detectionAmaury Pouly2014-02-16
| | | | Change-Id: Ifbc8b10cebb3b7b126f1d6a212f6731f91e234e4
* zenxfi2: add speaker supportAmaury Pouly2014-02-16
| | | | Change-Id: I37b85e23e6af92939700d640dbea74c646f49b7b
* imx233: add support for speaker on stmp3780Amaury Pouly2014-02-16
| | | | Change-Id: I990ca2bd43e12047e257f85ff06f046dfa3f94b3
* zenxfi: enable lcd shutdown in bootloaderAmaury Pouly2014-02-16
| | | | Change-Id: Ie7387b6dbd58565611b58af7bbba092dd58bdbd5
* imx233: avoid overlapping text in debugAmaury Pouly2014-02-16
| | | | Change-Id: I9cb456ab60c0d05f202791ed8114a80d2819c399
* imx233: cleanup in sdmmcAmaury Pouly2014-02-11
| | | | Change-Id: I82eac65b1bf9f2e963c4ebfb7c22da678ae63642
* imx233: fix app.lds to properly support INIT_ATTRMarcin Bukat2014-02-10
| | | | | | Change-Id: I1a917511e7e1540856815c77c4d996d1b8a03606 Reviewed-on: http://gerrit.rockbox.org/725 Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
* imx233: don"t be smart when waiting for voltage stabilisationAmaury Pouly2014-02-10
| | | | | | | | | Unfortunately the hardware is not very helpful when changing voltage: in DCDC mode we have the DC_OK_IRQ but in linear regulator mode, the only available bit doesn't work when lowering the voltages. At the moment, simply sleep for a little while before a better solution is found. Change-Id: I89335873e9e42e5c6e9131f40db7839b008c021c
* zen/bootloader: power down the LCD at the end of the bootloader if neededAmaury Pouly2014-02-10
| | | | | | | | | | | | | | On the ZEN, the LCD is fed continuously by the DMA and this refresh needs to be stop when the bootloader gives control to the firmware, otherwise the DMA will source data from invalid region and it might even lock-up if the new code touches the memory setup. Work around this by properly stopping the LCD driver: the bootloader assumes that if the target defines HAVE_LCD_ENABLE in bootloader build (which is unusual) then it needs to stop the LCD. Since stopping the LCD could produce funny screens, power down backlight which is expected to power down the LCD too, giving a nice black screen instead of some random pixels. Change-Id: I7ce5ba9bfd08e596907c4ff8f80feb189f0576ce
* imx233: stop the watchdog before loading main firmwareAmaury Pouly2014-02-10
| | | | Change-Id: I0a13444d6788a09b0fc04ed1a5115cb2e5fe6f57
* imx233: preventive fix of timrotAmaury Pouly2014-02-10
| | | | | | | | The old could trigger an immediate IRQ if for example the count was 0 when setting up the timer: since the count was updared *after* clearing the IRQ, it could fire in between. Change-Id: I0357b201655bc0e56425ffb249ca807525f30217
* zen: enable dma channel after lcdif initAmaury Pouly2014-02-10
| | | | Change-Id: I8886698ed618f9724df2f46d71f36b7443bc821b
* zen: workaround errata on imx233 lcdifAmaury Pouly2014-02-10
| | | | Change-Id: I9d723aa13628e4ab38ee7f648c1923b9e7101d22
* imx233: add support for sd/mmc probingAmaury Pouly2014-02-10
| | | | | | | | | | | | zenxfi2: add support for internal storage on the SD version The code can now skip devices marked as PROBE if they fail to init, thus making it possible to handle various kinds of internal storages. The current code probably doesn't interplay nicely since it acquires pins and never release them so it will probably break NAND code when it's ready but NAND code is not ready yet anyway. Change-Id: I4cb962de4215661e521743a3f511445dbbf28673
* imx233: rework early time power initAmaury Pouly2014-02-10
| | | | | | | | | | | | | | The current code does hazardous tweaks to the power subsystem: indeed if one boots with USB plugged and some stub powers on the DCDC switch, it will fail. Indeed, a hardware bug prevents from going back to linear regulators (see errata) so we cannot expect to reach a known state (linreg on, dcdc off) on each configuration and in particular, powering down the 4p2 rail in such a configuration will result in a power brownout. This commit works around this issue by not touching the initial power configuration until USB is (un)plugged, which are the best spots to get known states. Change-Id: I8741a3995df8ae61ca1c887a3ecb7903d0ac5136
* Fix typoAmaury Pouly2014-02-10
| | | | Change-Id: Ib9d569886abf66a23f6569b6b44acf155a65009d
* imx233: add button debug screenAmaury Pouly2014-02-10
| | | | Change-Id: Iab85f1215a06507c06bffb746f2eac596e8c7992
* imx233: fix typosAmaury Pouly2014-02-10
| | | | Change-Id: If5bc0f09dc0b3b1e833e41bbbdd216002e37d147
* imx233: handle jack detect inversion on some devicesAmaury Pouly2014-02-10
| | | | Change-Id: I6e8644d8dc410f275c7c7580fa9bcbd2fa26a041
* imx233: make button-lradc drive able to handle VDDIO derived valuesAmaury Pouly2014-02-10
| | | | | | | | | | In most devices, the button ladder is not actually derived from VDDIO but from a constant voltage source, making it very easy to read it. However on some devices like ther ZEN X-Fi Style, the ladder is wired to VDDIO we can be changed so it's crucial that the button driver correctly scales the values wrt VDDIO. Change-Id: Ifc11abe2838fa7d16d0d60ecd96964a8dc5ea6d7
* imx233: add hardware and software watchdogAmaury Pouly2014-02-10
| | | | | | | | | | | | | | The hardware watchdog automatically shutdown the device after 10s of inactivity, being defined as 10s without the tick IRQ fired (aka braindead device). The software IRQ mechanism is more interesting: it uses a very high priority timer setup as one-shot to trigger after 5s of inactivity (but IRQ still enabled). When detected, it patches the running code to insert a SWI instruction so that on interrupt return it will trigger a SWI and produce a meaningfull backtrace to debug the deadlock. This should allow to debug freezes in IRQ context. Change-Id: Ic55dad01201676bfb6dd79e78e535c6707cb88e6
* imx233: increase audio DAC IRQ priorityAmaury Pouly2014-02-10
| | | | | | This should hopefully fix some audio glitches Change-Id: Ic9701d281e7559c9d93fcb8dad9373caaad9bfb6
* imx233: add code to debug menu to check nested IRQ actually workAmaury Pouly2014-02-10
| | | | Change-Id: I6b51e89222efa868c03944fc37bcc9f382853be1
* imx233: add support for nested IRQAmaury Pouly2014-02-10
| | | | | | | | | Rewrite IRQ handling to allow nested IRQs: on each IRQ entry, we save the parameters on the (IRQ) stack and then switch to SVC mode (with its own stack) and renable interrupts. Make sure interrupt is properly acknowledged by using the read side-effect (RSE) mode and handle priority levels as well. Change-Id: I3fd68289b430c56bdd256868939238ff268e42b4
* imx233: cleanup icoll and add software irq sourcesAmaury Pouly2014-02-10
| | | | Change-Id: I4cf2b0b74cf391021afaec08329ec7cf5dbd578d
* imx233: always disable watchdog on bootAmaury Pouly2014-02-10
| | | | Change-Id: I2e81b038b783968aa18ef3398d6e2aa66a2fee7c
* imx233: enhance icoll with priority and soft IRQAmaury Pouly2014-02-10
| | | | Change-Id: If9568ab6e11bf933b2cc607e5a86866a975886bc
* imx233: add timrot to debug menuAmaury Pouly2014-02-10
| | | | Change-Id: Id60fcd64d509445d4ab62c4a2a8f2a074727c31d
* imx233: clean timrot a bitAmaury Pouly2014-02-10
| | | | Change-Id: Ic803a6b5c93978cd3246e553579ac8a1ba35e191
* Coding style fix for bde5394Marcin Bukat2014-02-10
| | | | Change-Id: I6e9ba6a2570915191cf5b66f58ed9ddb1959b6cc
* Return a valid USB string descriptor for index 0xEE.Frank Gevaerts2014-02-09
| | | | | | | | | | | | | | | Windows will try to retrieve such a descriptor on first connect. If the device returns STALL or a regular string descriptor (i.e. not one that follows the Microsoft OS Descriptor spec), things will continue normally. Unfortunately some of our low-level USB drivers have issues with STALL so any other valid descriptor is the next best solution. Change-Id: I59eb09eea157e4e14bec0197a898be378a5559f2 Reviewed-on: http://gerrit.rockbox.org/680 Reviewed-by: Frank Gevaerts <frank@gevaerts.be> Tested: Frank Gevaerts <frank@gevaerts.be>
* ypr0: Remove SDL copy&paste left-oversThomas Martitz2014-02-05
| | | | Change-Id: Ie3e90070328798c398099c55f23665bfefdcf397
* Samsung YP-R0/YP-R1 refactoringLorenzo Miori2014-02-05
| | | | | | | | | This patch includes some refactoring: - renaming according to Rockbox guidelines - GPIO code merging, still with target defines - some simplification in firmware/SOURCES Change-Id: I7fd95aece53f40efdf8caac22348376615795431
* Samsung YP-R1 target portLorenzo Miori2014-02-05
| | | | | | | | | This is the basic port to the new target Samsung YP-R1, which runs on a similar platform as YP-R0. Port is usable, although there are still some optimizations that have to be done. Change-Id: If83a8e386369e413581753780c159026d9e41f04
* buflib: Add a define telling the per-alloc overhead.Thomas Martitz2014-02-02
| | | | | | | | This allows buflib clients to more accurately estimate the total memory usage. It's still not 100% accurate because the handle table grows in blocks, thus buflib might use more memory that caused by allocations directly. Change-Id: I68338bb94f510ad188fcb588aebf895b5f9197c5