summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-11-17hwstub: fix atj213x dsp lua codeMarcin Bukat
Change-Id: I5fbd1799b958bedbe74f91bdcdd8a544e15d2a78
2015-11-17hwstub: Add ajt213x lua interface for DSP blockMarcin Bukat
With this you can upload and run code on DSP core in atj213x. The files can be produced using as2181. You can download this assembler from https://github.com/wodz/as2181 You should use extended mode (-x switch) since DSP core in atj is non standard and uses 24bit operands. PX register has different meaning as well and is used as MSB when loading other registers with immediates (immediate field is 16bit in instruction so to set register to 24bit value you need to store MSB in PX prior to this). MAC MR is 56bit accordingly. HIP interface seems to be mapped at standard addresses (except that regular 218x doesn't have HIP). Have a fun! Change-Id: I9a80ca0dd3718ba8435ae8579bfffa66e067e022
2015-11-16fix yellow.Szymon Dziok
Change-Id: I3fb322f28b23e4b7a27a71e66c50887d298de554
2015-11-15YH8xx,YH9xx: Keymap improvementSebastian Leonhardt
The main "innovation" in this patch are two "virtual buttons" for the record switch on YH92x targets. When the switch state changes, a single BUTTON_REC_SW_ON or .._OFF button event will be generated. Thus keymap code can react on switching, but not on the actual state of the switch. Wherever sensible, the following user scheme is applied: - use PLAY as confirm button - use REW button or Long REW to exit - use REC (YH820) or FFWD (YH92X) as modifier key for button combos Change-Id: Ic8d1db9cc6869daed8dda98990dfdf7f6fd5d5a1
2015-11-10Fix scrolling left button inadvertently cancels listtreeSebastian Leonhardt
Depending on the actual keymap, canceling a listtree with the "scroll left" button may not be intended, especially if the list is entered from a completely different focus (think of leaving a plugin with "long left") Note: initializing "scrolling_left" with true without anything actually scrolling sounds odd to me... maybe this variable should be renamed? "pgleft_allow_cancel" comes to my mind (with opposite boolean states) Change-Id: I58a747fc90e91ae96e75932febb462f1f1a1b4ca
2015-10-25AB repeat: fix bug that prevents to jump to beginning of trackSebastian Leonhardt
Change-Id: Ia323a2b16eaaf7d9afa888b71fd8b20fd9e2e62c
2015-10-17iPod Classic: enable AB repeatCástor Muñoz
Change-Id: I58f3b0a3e4d8a1649d5549c312e6a259bce697a4
2015-10-14Samsung YH820/YH92X: different way of powering off to avoid poweringSzymon Dziok
on after powering off in a loop on YH92X. Change-Id: I5e5a4fe23c87286045ac82aff5c38bff6331a7f4
2015-10-09Fix (D)EBUG compilation errors on targets using FATCástor Muñoz
Change-Id: I9517f9b470076a6febeafae76d735c2436812e7c
2015-10-07iPod Classic: reads HDD S.M.A.R.T. dataCástor Muñoz
Adds ata_read_smart() function to storage ATA driver, current SMART data can be displayed and optionally written to hard disk using System->Debug menu. Change-Id: Ie8817bb311d5d956df2f0fbfaf554e2d53e89a93
2015-10-07iPod Classic: initialize USB power configurationCástor Muñoz
This patch limits the drawn USB current to 100/500mA, instead of the actual 200/1000mA settings. It also initializes other USB power related GPIOs. Solves some USB disconnect issues: FS#12990, FS#12956. I am using a powered USB HUB with no problems (Vusb=5.05V unloaded), but there are lots of USB disconnects when using the motherboard USB ports (Vusb=4.91V), this patch solves all my issues. Actually, it seems that the USB current drain is limited to 1000mA, when a load peak occurs most USB2 ports deliver more than 500mA, as current consumption increases the USB voltage decreases, an excesive voltage drop produces USB disconnections. Limiting USB current drain to 500mA also limits the voltage drop, preventing subsequent USB failures. Anyway, to minimize voltage drop, it is recommended to use quality cables and preferably connect to USB ports with higher Vusb. Change-Id: I1b931aa18ec93bfd1214e475a72e42893eff52f6
2015-10-07iAP: lingo 1 (microphone)Cástor Muñoz
Change-Id: I65da2064951972368a2880d271280e5b5ae878fe
2015-10-07iAP: authentication 1.0Cástor Muñoz
Change-Id: I71b8e9f7ce2568c180396d6695cef18ce94ded32
2015-10-07iPod Classic: implement IPOD_ACCESSORY_PROTOCOLCástor Muñoz
Change-Id: I0f0950c42ae5bf5c5b4c2c2f097f8c68a92ba4dd
2015-10-07iPod Classic: implement HAVE_SERIALCástor Muñoz
Change-Id: I24a861cd45095d858d1a7db39969f6eda17cc563
2015-10-07iPod Classic: introduce s5l8702 UART driverCástor Muñoz
- polling/IRQ modes for Tx/Rx (TODO?: DMA) - fine adjust for Tx/Rx bitrates - auto bauding using HW circuitry - status and stats in debug screen Change-Id: I8650957063bc6d274d92eba2779d93ae73453fb6
2015-10-07ipod Classic: implement HAVE_RECORDINGCástor Muñoz
This patch has been tested on iPod 80 and 160slim, actually it works but some updates must be done to the final version: - unlimitted input buffer - decrease CHUNK_SIZE - use non-cached addresses instead of discard d-cache ??? Capture hardware versions: Ver iPod models capture support --- ----------- --------------- 0 80/160fat dock line-in 1 120/160slim dock line-in + jack mic HW version 1 includes an amplifier for the jack plug mic. Capture HW detection only tested on iPod 80 and 160slim. CODEC power: AFAIK, OF powers CS42L55 at VA=2.4V for capture (1.8V for playback) and turns on the ADC charge pump. CODEC datasheet recommmends to disable the charge pump for VA>2.1V. CS42L55 DS, s4.13 (Required Initialization Settings): for VA>2.1V, some adjustments "must" be done using undocummented "control port compensation" registers. OF does not modifies these registers when VA=2.4V. This patch configures capture HW in the same way as OF does. TODO: - ADC full scale voltage depends on VA, perform tests to find clipping levels for VA=1.8V and VA=2.4V Change-Id: I7e20fd3ecaa83b1c58d5c746f5153fe5c3891d75
2015-10-07iPod Classic: capture support for CS42L55 codecCástor Muñoz
There are a couple of power saving options that can be selected using defines, they configure the CODEC in a different way than OF does: MONO_MIC: jack microphone is connected to left channel, disabling right channel saves ~1 mW, there is no reason to not to do it. BYPASS_PGA: this option only applies to the line-in, OF does not bypass the PGA and configures it to 0 dB gain. At the beginning, this patch was written based on CODEC datasheet, bypassing PGA because it saves power and incrementes dinamic range ~1dB, i have used this setup for a while without problems. Finally this option was disabled at the last minute, i decided to do it after reviewing the OF and realizing that CS42L55 datasheet recommends to bypass the PGA only if the HW includes a couple of capacitors (see Typical Connection Diagram, Note 4), at this moment i don't know if Classic includes these capacitors (probably not). Anyway, i am not able to tell the difference listening to voice recodings. TODO: - Use variable PGA gain for jack microphone (it is fixed to +12 dB. as OF does). - I am not a fan of having lots of unused #define options, these could be useful for a generic driver but actually this driver is Classic oriented, i am not sure if it could be considered disirable to eliminate them in the final version. Change-Id: I3dadf2341f44d5e13f3847e6c9de4a76cd6f0918
2015-10-07iPod Classic: use new PL080 DMA driverCástor Muñoz
This patch uses the new pl080 DMA driver for I2S playback and LCD update. I have tried to be as fiel as possible to the current behaviour, algorithms and configurations are the same, but using the new driver. Other modifications: Playback: - CHUNK_SIZE is decreased from 42988 to 8188 bytes, it does not affect normal playback (block size 1024), was tested using metronome (block size 46080). This change is needed because the new code commits d-cache range instead of commiting the whole d-cache, maximum time spent commiting the range should be limited, CHUNK_SIZE can be decreased even more if necessary. - pcm_play_dma_start() calls pcm_play_dma_stop() to stop the channel when it is running (metronome replays the tick sound without stopping the channel). - pcm_play_dma_get_peak_buffer(): same as actual SVN function but returns samples count instead of bytes count. TODO: AFAIK, actually this function is not used in RB. Not tested, but probably this function will fail because it returns pointers to the internal double buffer. LCD update: - suppresses lcd_wakeup semaphore and uses yield() Change-Id: I79b8aa47a941e0dd91847150618f3f7f676c26ef
2015-10-07iPod Classic: introduce PL080 DMA controller driverCástor Muñoz
Motivation: This driver began as a set of functions to help to test and experiment with different DMA configurations. It is cumbersome, time consuming, and leads to mistakes to handle LLIs and DMA registers dispersed along the code. Later, i decided to adapt an old DMA queue driver written in the past for a similar (scatter-gather) controller, all task/queue code is based on the old driver. Finally, some cleaning and dmac_ch_get_info() function was added to complete RB needs. Description: - Generic, can be used by other targets including the same controller. Not difficult to adapt for other similar controllers if necesary. - Easy to experiment and compare results using different setups and/or queue algorithms: Multi-controller and fully configurable from an unique place. All task and LLI management is done by the driver, user only has to (statically) allocate them. - Two queue modes: QUEUE_NORMAL: each task in the queue is launched using a new DMA transfer once previous task is finished. QUEUE_LINK: when a task is queued, it is linked with the last queued task, creating a single continuous DMA transfer. New tasks must be queued while the channel is running, otherwise the continuous DMA transfer will be broken. On Classic, QUEUE_LINK mode is needed for I2S continuous transfers, QUEUE_NORMAL is used for LCD and could be useful in the future for I2C or UART (non-blocking serial debug) if necessary. - Robust DMA transfer progress info (peak meter), needs final testing, see below. Technical details about DMA progress: There are comments in the code related to the method actually used (sequence method), it reads progress without halting the DMA transfer. Althought the datasheet does not recommend to do that, the sequence method seems to be robust, I ran tests calling dmac_ch_get_info() millions of times and the results were always as expected (tests done at 2:1 CPU/AHB clock ratio, no other ratios were tried but probably sequence method will work for any typical ratio). This controller allows to halt the transfer and drain the DMAC FIFO, DMA requests are ignored when the DMA channel is halted. This method is not suitable for playback because FIFO is never drained to I2S peripheral (who raises the DMA requests). This method probably works for capture, the FIFO is drained to memory before halting. Another way is to disable (stop) the playback channel. When the channel is disabled, all FIFO data is lost. It is unknown how much the FIFO was filled when it was cleared, SRCADDR counter includes the lost data, therefore the only useful information is LINK and COUNT, that is the same information disponible when using the sequence method. At this point we must procced in the same way as in sequence method, in addition the playback channel should be relaunched (configure + start) after calculating real SRCADDR. The stop+relaunch method should work, it is a bit complicated, and not valid for all peripheral FIFO configurations (depending on stream rate). Moreover, due to the way the COUNT register is implemented in HW, I suspect that this method will fail when source and destination bus widths doesn't match. And more important, it is not easy to garantize that no sample is lost here or there, using the sequence method we can always be sure that playback is ok. Change-Id: Ib12a1e2992e2b6da4fc68431128c793a21b4b540
2015-10-07iPod Classic: s5l8702 GPIO interrupt controller.Cástor Muñoz
This patch implements a simple API to use the external interrupt hardware present on s5l8702 (GPIO interrupt controller). This GPIOIC has been fully tested using emcore apps. Code is based on openiBoot project, there are a few modifications to optimize space considering we will only use two or three external interrupts. The API compiles and works, but has been never used, therefore probably will need some changes to the final version. External interrupts are necessary for jack remote+mic controller (see iAP Interface Specifiction: Headphone Remote and Mic System), this controller is located at I2C bus address 0x72, there is a IRQ line for remote button press/release events routed to GPIO E6. At this moment, the functionallity of this controller has been extensively tested using emcore, getting a lot of information about how it works. Microphone is already working on RB, jack accessory detection and button events are work in progress. PMU IRQ line is also routed to GPIO F3, it signals many events: holdswitch, usb plug, wall adapter, low battery... The use of PMU interrupts is the orthodox way of doing things, at this moment there is no work done in this direction, there are a lot of PMU events and i think it is a matter of discursion what to do and how. Change-Id: Icc2e48965e664ca56c9518d84a81c9d9fdd31736
2015-10-03qeditor: fix uninitialised variableAmaury Pouly
Change-Id: I12a785e554b7d598b91e526af1b7ebc1fc44f610
2015-09-30Fix chessbox keymap handlingSebastian Leonhardt
Let's give the defined, yet unused keymaps some sense :) Change-Id: I372217351f7edc35c69c8c29fba782d32c895d5b
2015-09-29hwstub: make it possible to override toolchainAmaury Pouly
Default toolchain can be overriden using PREFIX, for example: PREFIX=arm-none-eabi- make Change-Id: I06f5ad0ad492b9f648ccba853a851918644f0500
2015-09-28Snake2: add 128x96x16 bitmapsSebastian Leonhardt
These fit by pure chance exactly the YH820 screen :) Change-Id: I0f7a7f5d14aa0497da5ddf63cf1f95a2c4989460
2015-09-25Fix Pong button handlingSebastian Leonhardt
* allow button combos for QUIT (fixes MPIO_HD300) * allow quitting during PAUSE mode Change-Id: Iaf8ffc65cdcfe6c1d25bfbad3e38764eea2664cc
2015-09-25Chip8: implement missing keySebastian Leonhardt
KEYA is defined for Fuze+ (even in the manual), but wasn't implemented yet. Change-Id: Ib0a93544926c15893b1cce967db931f3b515422c
2015-09-24Shopper: slightly improve plugin and manualSebastian Leonhardt
* improve manual (hopefully fixes fs#11988). Parts of the description are taken from fs#10820. * move ACTION_STD_CONTEXT from alternate select to alternate menu action, as not all targets have ACTION_STD_MENU * add menu entries for "Quit" and "Quit without saving" Change-Id: Iec86a1608756a899f9f9d7ec7d479838dfd1d95f
2015-09-24Samsung YHxxx: reduce pop noise on power downSebastian Leonhardt
Change-Id: Ifc82ac1051ed05527393838d8aa93bde65287b5d
2015-09-11soc_desc: new version of the desc file formatAmaury Pouly
Fix qeditor to use the old soc_desc_v1. Port hwstub_shell to the new description format. Change-Id: I9fefbff534bfaa5c3603bb3dd8307a2b76e88cfc
2015-09-11qeditor: introduce new "sexy register display"Amaury Pouly
Change-Id: Ib938b4be71d2c7623851dbc3c211f96105077d7d
2015-09-10qeditor: use delegate to show bit range informationAmaury Pouly
Change-Id: I314365c3a2cb9d230c412f24d2a8034a12c43444
2015-07-17iPod Classic: do not use HDD features on CE-ATA drivesCástor Muñoz
Fix an 'ATA error' issue that affects CE-ATA devices. Change-Id: I246348bb0506155b096ed8559dcf1b0b0fab3596
2015-07-17mp3_enc.c: fix MP3 recording at 32 kHz sample rateCástor Muñoz
Fixes a buffer overflow present when MP3 is encoded at 32000 Hz sample rate, affected bitrates are 320 and 256 kbps. Change-Id: I7634e70409be9d675d47be316a42630dd3147636
2015-07-17utils/parse_testcodec.rb: add support for Opus filesCástor Muñoz
Change-Id: I19e59cfe86598c2e5a7b070ef72b5a12e88b7242
2015-06-28hwstub: Add completion and some pretty printing to the shellMarcin Bukat
This uses slightly hacked luaprompt to provide all the goodis. See https://github.com/dpapavas/luaprompt for original. Change-Id: Iedddb79abae5809299322bc215722dd928c35cca
2015-06-20Fix rebuilding librbspeex on OS X and make rm work on Windows.Dominik Riebeling
OS X ar operates on fat libaries and cannot update existing archives. Remove it first to avoid this. Use a make function when removing files to allow calling the correct command on Windows, which doesn't know about rm. Change-Id: Ia0c13ef7907239a1e6f4abc26bb08238a226c476
2015-06-20Fix USB IDs for Sansa c200v2.Dominik Riebeling
The wrong IDs made a connected c200v1 get detected as c200v1 and c200v2 in MTP mode. Change-Id: I9048910ca9d768b17b9d23e4679c96d9ab8d6831
2015-06-07Win32: fix possible crash when listing USB devices.Dominik Riebeling
Make sure to handle if retrieving the device description ends up with a NULL data buffer pointer. Also switch handling the retrieved string using QString. Fixes a crash reported in the forums. Change-Id: I6e95a411308e85656cd78ddcecb1bcee165864d0
2015-06-07Append build date when building dev version from local foler.Dominik Riebeling
Change-Id: I1172cb0c4910f1d49b6a5d1125a809491a5aba9c
2015-06-02AS3543: Fix recording volume setting and voiceMihail Zenkov
Fix regressions introduced by 42219b6e7 Change-Id: I1f3edb5f269f60e9431b45a43c4370836ecac733
2015-06-02AMS: fix usb initialization in bootloaderMihail Zenkov
Regression after 8b8b85433f6e9ac673adb Change-Id: I86389be0b85c5c2ad8a32d7089a6a79a6b7c8708
2015-06-01AMS: Change DMA transfer size for audio.Mihail Zenkov
Slightly reduces power consumption due to DMA overhead. Change-Id: I8576e9e243ce13a71cde710c3a726dce19bafb97
2015-05-30Make lrelease detection work on Windows.Dominik Riebeling
Make sure to expand variable before testing. Change-Id: I6b6f11782677c178fe3f2209f84887084940976a
2015-05-30Make lrelease detection work on Windows.Dominik Riebeling
Windows doesn't have which, so building natively on Windows didn't create translations anymore. Use a which-less approach instead. Change-Id: I7b4c40b26d68da54277a148e8e2d76ac81061c8b
2015-05-30Make revision handling work when building from local folder.Dominik Riebeling
Change-Id: I8e6cc0eb8a5bff722bf5278ffa7685436c3d846a
2015-05-30Fix path creation for zip file names in current folder.Dominik Riebeling
When building in the current tree (i.e. buildfolder ending up as '.') creating the filename to use in the zip file stripped all '.' characters. Use a different way to create the filename to avoid this. Change-Id: I139c404d5e83a8bcb028a9a22b125f238911e405
2015-05-30Update findversion for change version.h format.Dominik Riebeling
version.h doesn't store the version number as string anymore. Update findversion to use the individual values instead. Change-Id: I6bf0fdd4420d41279b44cffd22b42febbfc778ce
2015-05-18Initially scroll to changelog end.Dominik Riebeling
Since currently new entries are at the bottom scroll down when opening the changelog window. Change-Id: I3cec84f5d9251e268c34335d8032dd11f42098ae
2015-05-18Extend project file message output and always run lrelease.Dominik Riebeling
Check for lrelease and always try to run it if found. If not found show a warning. This avoids build problems for certain setups which previously required -config dbg to complete. Change-Id: I60f0f49adc8455743afc5e4d23294ce0729f38d2