summaryrefslogtreecommitdiff
path: root/firmware (follow)
Commit message (Collapse)AuthorAge
* SA9200: Remove duplicated and misleading define.Szymon Dziok2016-10-02
| | | | Change-Id: I51f61349de8c32eeb70ca1812e7b34823f482f18
* HDD16X0/HDD63X0: Enable power status of charging from USB.Szymon Dziok2016-10-02
| | | | Change-Id: I7b1e5e87921ae0770f7783680c3dbcdbf6f257f3
* HDD6330: Implement ATA power on/off.Szymon Dziok2016-09-25
| | | | | | This should fix some errors, panics in some individual cases. Change-Id: I27ce41f0563378e03371724f8b044404c6e69b76
* Fix makefile not rebuilding rbversion.h in some casesAmaury Pouly2016-09-23
| | | | | | For example when running make VERSION="bla" Change-Id: I8f8833f0fb200828346ed0a6842a9340e3653932
* fix red on stmp<3780Amaury Pouly2016-09-22
| | | | Change-Id: I74f0450e8f42032265b980b95f17b0b05d9dffa5
* imx233: add power-up source to the debug menuAmaury Pouly2016-09-22
| | | | Change-Id: Ib67385354b1d6529d41198bfdcb1ecd092e9b98b
* imx233: make microphone bias, bias pin and resistor configurableAmaury Pouly2016-09-21
| | | | | | | | This clearly fixes recording on targets where the bias pin was wrong. It may also improve recording on targets where the bias voltage was wrong. I was unable to find those parameters on the ZEN Mozaic, which fallback to default values. Change-Id: Ifb5f823c9cbd01f0d9a80fa5d49d93972c8b7cfe
* imx233: fix recording gainAmaury Pouly2016-09-21
| | | | | | | | For some reason, there was a mismatch between the setting (decibel) and the audiohw code (centicel). This resulted in a gain divided by 10. This may explain why some people experienced low volume with the mic on the fuze+. Change-Id: I138ac18dd93c36f43a7dfce735efc826405c598c
* as3543: fix audio gap when switching from dac to line-in/recordingAmaury Pouly2016-08-29
| | | | | | | | | | | | | | | | Also clarity parts of the code. The old code suffered from two defects: - it was very unclear because it made changes to whole registers (using as3514_write) instead of fields (using as3514_set/clear/write_masked). Also the routing code was spread accross several functions which made it hard to follow. - it did not properly reroute audio on monitor changes. In particular, the following could happen: when switching from DAC to radio, the code would fail to clear SUM_off, resulting in a weird situation where the main mixer was off (SUM_off) but the headphone where using the main mixer as input. Incredibly this worked anyway (at least on AMSv2 and YP-R0) but resulted in strange volume gaps between DAC and radio mode. Change-Id: I7826835fdb59c21f6483b223883ca9289e85caca
* Fix two typos in commentsAmaury Pouly2016-08-22
| | | | Change-Id: I39e42c5e4505e78711e30f8826b6760419434ca0
* imx233: add alarm value to debug menuAmaury Pouly2016-08-22
| | | | | | Hopefully this can help debugging alarm problems. Change-Id: Id8c5603a6372744dfc62890443a37de2dd92a7c0
* iPod Classic: NOR support for bootloaderCástor Muñoz2016-08-19
| | | | | | | | - NOR driver (based on emCORE) - read/write IM3 images - read 'flsh' files Change-Id: Ie0654e0d298affc0f47ed64b823767118bd1aa3f
* iPod Classic: hardware AES and SHA1 for bootloaderCástor Muñoz2016-08-19
| | | | | | | | | | Based on emCORE. Low level functions that do not depend on Rockbox kernel, intended to be used by the bootloader, dualboot-installer, RB drivers or other .dfu tools. Change-Id: I3c616ded42260c6626bda23b7e580791981df61d
* iPod Classic: SPI driver for bootloaderCástor Muñoz2016-08-19
| | | | | | | | | | Based on emCORE. Low level functions that do not depend on Rockbox kernel, intended to be used by the bootloader, dualboot-installer, RB drivers or other .dfu tools. Change-Id: Iad369627b55bf1778eab437424072f1a653e4db6
* as3525v2: use the new USB DesignWare driverCástor Muñoz2016-08-15
| | | | | | Targets: sansaclipplus, samsaclipv2, sansaclipzip, sansafuzev2. Change-Id: I7773528a4e26707dd33fe9cb8948750d49570701
* iPod Classic: rework on I2C driverCástor Muñoz2016-08-12
| | | | | | | | | | - Some rewrite with the intent to get ride of these random errors appearing on some builds/devices (not much noticeable on RB but can ruin bootloader builds). - Error handling (ACK). - IIC clock increased to be the same as in OF. Change-Id: Idf8cfa3c230a0a61ec9c879bf6f0ea8b061a4607
* iPod Classic: ADC updatesCástor Muñoz2016-08-12
| | | | | | | | Add code to read USB D+/D- and accessory ADCs, it is shown in HW debug menu, might be useful in future for RB and/or the bootloader to identify external USB chargers. Change-Id: Ia48ca5e06bb7ddc52bb55abedde6734653ce8dba
* Increase CVDD1 only for Clip+ version 0Mihail Zenkov2016-08-11
| | | | Change-Id: I839ba2191a5c52ef6f58fd4a273db628b690a05c
* Increase CVDD1 for Clip+ to prevent ATA errorMihail Zenkov2016-08-10
| | | | Change-Id: I0424d02196a6c5fb6d0185b007df5ece24b10b82
* usb_serial: fix send buffer alignmentCástor Muñoz2016-08-04
| | | | Change-Id: Ib2635c905462cd34befa3ca61e5d55c869686b48
* iPod Nano 2G: use the new USB DesignWare driverCástor Muñoz2016-08-02
| | | | Change-Id: I8d1561bf4e239b55617a8d5075457a668e0c312c
* iPod Classic: use the new USB DesignWare driverCástor Muñoz2016-08-02
| | | | Change-Id: I36aabb5cb9cfe2d8c4f8fbcea944efec58ef9671
* Introduce new USB driver for Synopsys DesignWare USB OTG core.Cástor Muñoz2016-08-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Based on g#844 and g#949, it is intended as a replacement for the current s3c6400x USB driver. The DesignWare USB OTG core is integrated into many SoC's, however HW core version and capabilities (mainly DMA mode, Tx FIFO mode, FIFO size and number of available IN/OUT endpoins) may differ: CPU targets HW ver DMA NPTX FIFO FIFO sz #IN/OUT -------- ------------- ------ --- --------- ------- ------- as3525v2 sansaclipplus 2.60a Yes Dedicated 0x535 4/4 sansaclipv2 sansaclipzip sansafuzev2 s5l8701 ipodnano2g 2.20a Yes Shared 0x500 4/5 s5l8702 ipod6g 2.60a Yes Dedicated 0x820 7/7 ipodnano3g s5l8720 ipodnano4g ? ? ? ? ? Functionality supported by this driver: - Device mode, compatible with USB 1.1/2.0 hosts. - Shared FIFO (USB_DW_SHARED_FIFO) or dedicated FIFOs. - No DMA (USB_DW_ARCH_SLAVE) or internal DMA mode. - Concurrent transfers: control, bulk (usb_storage, usb_serial) and interrupt (usb_hid). Actually this driver is not used by any CPU, it will be enabled for each individual CPU/target in next patches. Change-Id: I74a1e836d18927a31f6977d71115fb442477dd5f
* zenxfi3: recalibrate battery curveAmaury Pouly2016-06-12
| | | | | | | Apparently I simply forgot to calibrate it when the port was done and the current values are just plain wrong, especially for the charging curve. Change-Id: Ied3cafa52f31f182f953714e28edc4c5e891255f
* iPod Nano2G: clear external interrupts at startupCástor Muñoz2016-06-10
| | | | | | | Fixes some ROLO issues after commit 9a4cd2e. Note that other ROLO issues still persist. Change-Id: I8e0c60519902013694c5a473dcb9fc62a6ff079c
* imx233: fix power off codeAmaury Pouly2016-06-08
| | | | | | | | | | There are two very suspicious things in the power off code: - it does not properly unlock the power register, so it should fail (!) - it does not disable sw/hw watchdog so if register fails, the device will most probably crash horribly because of the watchdog I don't even understand how it worked before. Change-Id: I9f3f94bd012e52c3b50cd5b658d68b5eb907f79b
* fix yellowAmaury Pouly2016-06-01
| | | | Change-Id: Ie18d7f83ba3e7293d4cd110429e1578930d35d99
* imx233: fix stupid typo in debug screenAmaury Pouly2016-06-01
| | | | Change-Id: Ife43543d6eee6522f4016f37479a20a0db39240d
* zenxfi3: rewrite mpr121 driverAmaury Pouly2016-06-01
| | | | | | The new driver uses an asynchronous architecture for touch status reading. Change-Id: Ic75a8b91bc47ee16c3af873afde178cd70186376
* fuze+: rewrite touchpad driverAmaury Pouly2016-06-01
| | | | | | | | | | | | | | | The old driver was bad in many respect, it had some race conditions, it was using a thread to serialize transfers because of the legacy i2c interface. It also had huge latency (typically 50ms but delays up to 300ms can happen), thus some presses were missed. The new driver takes advantage of the new i2c driver to do everything asynchronously. It also does not need a thread anymore because queueing ensures proper serialization. It provides much better and reliable latency (typically ~2ms). Also fix the debug screen which was horribly broken. The new screen also displays the deadzones. Change-Id: I69b7f99b75053e6b1d3d56beb4453c004fd2076e
* imx233: rewrite i2c driverAmaury Pouly2016-06-01
| | | | | | | | | | The new driver provides several new features: - asynchronous transfer - transactions (several transfers executed at once) - queueing The style still provides the legacy interface. Change-Id: I6d8ecc89d1f7057847c9b2dc69b76cd45c9c8407
* Fix red, forgotten fileAmaury Pouly2016-05-29
| | | | Change-Id: Ia9c1e924c84772205472289494c62a63a3433727
* imx233: two minor fixes for sd/mmcAmaury Pouly2016-05-29
| | | | | | | | | Always enable support for SET_BLOCK_COUNT on mmc: it is mandatory. For some reason (probably a mistake) it was disabled unconditionaly on mmc. Also deselect sd card after init. Although it is unlikely to make a difference, it is already done for mmc so stay consistent. Change-Id: I276f0d95f5bb6a0bf431c2fff4589d3dfb15f8c7
* imx233: add sd/mmc debug screenAmaury Pouly2016-05-29
| | | | | | | The screen currently displays for each device the bus width, set_block_count support, HS capability and whether it is enabled for not. Change-Id: I6b1c3b1019e55ef1097a23c1f54fb07f5c7aa3b0
* imx233: fix button debug screen on landscape mode screenAmaury Pouly2016-05-29
| | | | | | | Some players like the ZEN X-Fi have a wide but not tall screen, it is thus better to display everything on one line for each button Change-Id: Ided3d4ff689cc5d3bcc2bdba4c7e046cf7dc0954
* imx233: fix redAmaury Pouly2016-05-28
| | | | | | stop pretending that stmp3600 and stmp3700 have a 4.2V power rail Change-Id: If2506ed3e7c5db96dedc668f0931d59a5197dd88
* imx233: add new power debug screenAmaury Pouly2016-05-28
| | | | | | | | | | This screen allows to put the device in a special mode where: - charging is disabled - device only draws power from 5V (thus battery is untouched) This is useful to measure the device consumption by measuring directly the usb power consumption. Change-Id: I2716ced0a5bb33c3c9a2607f2d17a0ce02f5689c
* imx233: fix debug screen button handlingAmaury Pouly2016-05-28
| | | | | | The code was very primitive and did not handle release events properly. Change-Id: I1c56005282a9fb6608f79ff3b483ba614d635fdb
* imx233: speedup charging trickle phaseAmaury Pouly2016-05-28
| | | | | | | | | Per Freescale recommandation, we need to ramp up the 4.2V rail before enabling charging. Ramping should be done at 1 step/10ms, but the old code did 1 step/1s because the powermgmt_step() function is called once every second. Use a tick task to ramp up much faster. Change-Id: I9a52bdd0c2ba5426d83ed42db8db7ecce2fea1f7
* imx233: fix system_exception_wait()Amaury Pouly2016-05-28
| | | | | | | | | The old code used button_get() to read the button status and wait for a key to leave the panic screen. This is broken since when IRQ are disable, the button mask is not updated anymore for touchpad and adc buttons. For now, only use pswitch: this should be good enough for all targets. Change-Id: I0ae179e24555ac20c3d2bf2d267c1bb0e2ceded0
* imx233: fix frequency reportingAmaury Pouly2016-05-28
| | | | | | | The code reported the frequency in kHz instead of Hz, thus breaking a debug screen. Change-Id: Id46de970cfb55bcdc09b63f59b244ee3ad6264b8
* imx233: simplify timrot APIAmaury Pouly2016-05-28
| | | | | | | | The old timrot setup API was very low-level and unfriendly. The new one makes in easier to select the frequency source. Use to simplify timer and kernel timer code. Change-Id: Iffcdf11c00e925be9ec8d9a4efc74b197b6bd2aa
* zenxfi3: fix headphone detectionAmaury Pouly2016-05-28
| | | | | | | | The adc channel monitored for jack detection does not really have a fixed value when plugged. Instead use the same logic as the OF and simply use a threshold. Change-Id: I1d5270d83eb14decce29a39d8201ea1d1fb4436c
* nwz-370/380: increase adc button error marginAmaury Pouly2016-05-28
| | | | | | | | For some reason those targets have quite imprecise button voltages and the old margin was too small. This should fix the button-not-working issue, especially when the player is very hot and cold. Change-Id: I9fcddd7f079cd1c4ee121567fb21a4a0cbc0562b
* imx233: enhance button driver adc handlingAmaury Pouly2016-05-28
| | | | | | | | | | | The current driver is limited to checking if the adc value equals another one with a hardcoded margin. This commit changes two aspects of that: - the margin can be changed globally using IMX233_BUTTON_LRADC_MARGIN and can also be overriden per button using the new LRADC_EX macro - the lradc logic gained two comparison modes to check if the source value is greater (or lower) than a threshold. Change-Id: If1614451dafeae818a96e6f23a84e6731331ba03
* imx233: cosmeticsAmaury Pouly2016-05-28
| | | | | | | | Shorten some text to make the text readable in the debug screen of targets with small LCD (like NWZ-380). In some screens, the only option is to display less information. Change-Id: I78f8f35f7c507de19e5d27a918157504155f2ba6
* imx233: make sure not to discharge battery when charge is completeAmaury Pouly2016-05-28
| | | | | | | | | | The power management code was erroneously shuting down the 4.2V rail when charging is complete. This resulted in the DCDC draining the battery and thus the battery discharging with USB plugged... The new code keeps the 4.2V rail active so that battery remains untouched once charge is complete. Change-Id: I36e8d31e8115c12ce813c939c5d7bbf2c3490157
* imx233: generate register headers using headergen_v2 and update code for itAmaury Pouly2016-05-28
| | | | | | | | | | | | | | | | | | | | | | | | | NOTE: this commit does not introduce any change, ideally even the binary should be almost the same. I checked the disassembly by hand and there are only a few differences here and there, mostly the compiler decides to compile very close expressions slightly differently. I tried to run the new code on several targets to make sure and saw no difference. The major syntax changes of the new headers are as follows: - BF_{WR,SET,CLR} are now superpowerful and allows to set several fileds at once: BF_WR(reg, field1(value1), field2(value2), ...) - BF_CS (use like BF_WR) does a write to reg_CLR and then reg_SET instead of RMW - there is no more need for macros like BF_{WR_,SET,CLR}_V, since one can simply BF_WR with field_V(name) - the old BF_SETV macro has no trivial equivalent and is replaced with its its equivalent for BF_WR(reg_SET, ...) I also rename the register headers: "regs/regs-x.h" -> "regs/x.h" to avoid the redundant "regs". Final note: the registers were generated using the following command: ./headergen_v2 -g imx -o ../../firmware/target/arm/imx233/regs/ desc/regs-stmp3{600,700,780}.xml Change-Id: I7485e8b4315a0929a8edb63e7fa1edcaa54b1edc
* iPod Classic: fix typos / cosmeticCástor Muñoz2016-05-28
| | | | Change-Id: Ic6552dea4b300032875097ef0b885a4ae059f4bc
* iPod Classic: i2c updatesCástor Muñoz2016-05-26
| | | | Change-Id: Ib516f3f52cf619fb44dc1bb6982b635c49f53a8f