summaryrefslogtreecommitdiffstats
path: root/firmware/target/arm
AgeCommit message (Collapse)AuthorFilesLines
2017-01-16imx233: add small framework for LEDAmaury Pouly5-5/+311
It handles GPIO and PWM based LEDs, possibly with several channels (red-green LED for example). The debug allows one to play with the setting. Currently the code supports the ZEN, ZEN X-Fi, and ZEN Mozaic. Change-Id: I8c3b66e6ba21778acdb123daabb724280a7d1a4f
2017-01-15imx233: workaround hardware dma bugAmaury Pouly1-0/+34
This bug mostly affects the ZEN and ZEN X-Fi and hangs the lcdif dma randomly on boot. Change-Id: I4255db90d87737b7a70d1d53e3ef84e4e14c8c13
2017-01-14imx233: fix audio debug screen on stmp3700Amaury Pouly1-3/+3
On STMP3700 there is no dedicated speaker amplifier but speaker is always on lineout so it makes sense to report volume and power down of lineout. Change-Id: If666bccf36d3a5ecc6d892823522d023f3206184
2017-01-14imx233: add note about power down bits in audiooutAmaury Pouly1-0/+4
Change-Id: I204acff8ee697d70fd16f9828010646b10a8f11b
2017-01-14imx233: fix speaker enable/disable codeAmaury Pouly1-1/+1
Change-Id: I6540f2f8ba09bc79b80d71e5f3b0adebd9fce727
2017-01-13iPod Classic: fix small bug on PCM recordCástor Muñoz1-1/+1
On PCM record initialization, an unknown clockgate is enabled instead of the I2S clockgate. This bug does not produce incorrect functionallity because the right clockgate is already enabled on PCM playback initialization. Change-Id: I97a3a4a6f12131e492c1431359a0a976b68014be
2016-12-12imx233: don't print disabled IRQs in debug screenAmaury Pouly1-3/+7
There are lot IRQ and most are unused most of the time, this is annoying on devices with small screens. Change-Id: I7f3453f2768b8e35a5a367fbcf1e4cf3cf73bcd7
2016-12-12imx233: add more icoll statisticsAmaury Pouly3-4/+21
Those new statistics give the maximum time an IRQ took and also the total time spent in IRQ, for each IRQ. Hopefully those do not take took much time or space to collect. If this is the case, it can be enabled in debug builds only the future. Change-Id: I05af172897c5cb7ffcc9322452f974d8f968e29d
2016-12-12imx233: fix IRQ handler w.r.t unwinderAmaury Pouly2-10/+18
The IRQ handler saves registers on the IRQ stack, saves the old PC to imx233 HW_DIGCTL_SCRATCH0 register and switcht to SVC for the actual handling. The old code had a problem in that if the unwinder is called during the IRQ (for example by the watchdog), then __get_sp() will use SPSR_svc to discover the previous mode, switch to it and recover SP. But SPSR_svc is invalid, it should be SPSR_irq but we switch from IRQ to SVC mode. The new code copies SPSR_irq to SPSR_svc in IRQ to fix this problem. It also saves/restore SCRATCH0 in case I one day renable nested interrupts or use SCRATCH0 for other purposes. I also changed the old watchdog code to call UIE directly instead of trying to make the code crash with a SWI. Change-Id: Id87462d410764b019bd2aa9adc71cb917ade32e3
2016-12-12imx233: slightly rework 3D audio settingAmaury Pouly1-1/+1
The old code made the setting appear as 0dB, 1.5dB, 3dB and 4.5dB when in fact it is 0dB, 3dB, 4.5dB and 6dB. This commit clarifies the code and also fix this at the same time. This imx233 3D enhancement is complete crap anyway but now you can satisfy yourself with 6 dB of pure crap, clearly an enhancement. Change-Id: Ia3e088987c1ff0cdde228905ff70f46476a499a2
2016-12-12imx233: refactor power off and rebootAmaury Pouly3-19/+22
There is no reason to use different code paths Change-Id: I4894c7963c802b56b5d3576909e1008a7c401935
2016-12-12imx233: add capability to boot OF or updater instead of RockboxAmaury Pouly3-3/+336
This commit adds the necessary code in the dualboot stub (bootloader) to let rockbox control the boot process. In particular, rockbox can now choose if the next boot will be normal (boot rockbox or OF on magic key), to OF or to updater. The intents (to be added in follow-up commits) are: 1) Let the user more easily reboot to the OF. On some targets it is not trivial, especially in USB mode. 2) Automatically reboot to updater when the user drop firmware.sb at the root of the drive (currently, the user needs to do that in OF USB mode) 3) Document this OF magic Change-Id: I86df651dec048c318c6a22de74abb8c6b41aa9ad
2016-10-02HDD16X0/HDD63X0: Enable power status of charging from USB.Szymon Dziok1-2/+0
Change-Id: I7b1e5e87921ae0770f7783680c3dbcdbf6f257f3
2016-09-25HDD6330: Implement ATA power on/off.Szymon Dziok1-0/+17
This should fix some errors, panics in some individual cases. Change-Id: I27ce41f0563378e03371724f8b044404c6e69b76
2016-09-22fix red on stmp<3780Amaury Pouly1-0/+2
Change-Id: I74f0450e8f42032265b980b95f17b0b05d9dffa5
2016-09-22imx233: add power-up source to the debug menuAmaury Pouly1-0/+1
Change-Id: Ib67385354b1d6529d41198bfdcb1ecd092e9b98b
2016-09-21imx233: make microphone bias, bias pin and resistor configurableAmaury Pouly6-5/+43
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
2016-09-21imx233: fix recording gainAmaury Pouly1-1/+0
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
2016-08-22imx233: add alarm value to debug menuAmaury Pouly1-1/+2
Hopefully this can help debugging alarm problems. Change-Id: Id8c5603a6372744dfc62890443a37de2dd92a7c0
2016-08-19iPod Classic: NOR support for bootloaderCástor Muñoz2-0/+536
- NOR driver (based on emCORE) - read/write IM3 images - read 'flsh' files Change-Id: Ie0654e0d298affc0f47ed64b823767118bd1aa3f
2016-08-19iPod Classic: hardware AES and SHA1 for bootloaderCástor Muñoz2-0/+148
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
2016-08-19iPod Classic: SPI driver for bootloaderCástor Muñoz2-0/+144
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
2016-08-15as3525v2: use the new USB DesignWare driverCástor Muñoz2-0/+76
Targets: sansaclipplus, samsaclipv2, sansaclipzip, sansafuzev2. Change-Id: I7773528a4e26707dd33fe9cb8948750d49570701
2016-08-12iPod Classic: rework on I2C driverCástor Muñoz2-126/+120
- 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
2016-08-12iPod Classic: ADC updatesCástor Muñoz6-55/+195
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
2016-08-11Increase CVDD1 only for Clip+ version 0Mihail Zenkov1-1/+4
Change-Id: I839ba2191a5c52ef6f58fd4a273db628b690a05c
2016-08-10Increase CVDD1 for Clip+ to prevent ATA errorMihail Zenkov1-1/+3
Change-Id: I0424d02196a6c5fb6d0185b007df5ece24b10b82
2016-08-02iPod Nano 2G: use the new USB DesignWare driverCástor Muñoz2-117/+138
Change-Id: I8d1561bf4e239b55617a8d5075457a668e0c312c
2016-08-02iPod Classic: use the new USB DesignWare driverCástor Muñoz1-0/+137
Change-Id: I36aabb5cb9cfe2d8c4f8fbcea944efec58ef9671
2016-08-02Introduce new USB driver for Synopsys DesignWare USB OTG core.Cástor Muñoz1-0/+1381
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
2016-06-12zenxfi3: recalibrate battery curveAmaury Pouly1-4/+4
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
2016-06-10iPod Nano2G: clear external interrupts at startupCástor Muñoz1-5/+17
Fixes some ROLO issues after commit 9a4cd2e. Note that other ROLO issues still persist. Change-Id: I8e0c60519902013694c5a473dcb9fc62a6ff079c
2016-06-08imx233: fix power off codeAmaury Pouly1-1/+7
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
2016-06-01fix yellowAmaury Pouly1-1/+1
Change-Id: Ie18d7f83ba3e7293d4cd110429e1578930d35d99
2016-06-01imx233: fix stupid typo in debug screenAmaury Pouly1-1/+1
Change-Id: Ife43543d6eee6522f4016f37479a20a0db39240d
2016-06-01zenxfi3: rewrite mpr121 driverAmaury Pouly4-76/+433
The new driver uses an asynchronous architecture for touch status reading. Change-Id: Ic75a8b91bc47ee16c3af873afde178cd70186376
2016-06-01fuze+: rewrite touchpad driverAmaury Pouly1-224/+496
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
2016-06-01imx233: rewrite i2c driverAmaury Pouly3-78/+356
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
2016-05-29Fix red, forgotten fileAmaury Pouly1-0/+48
Change-Id: Ia9c1e924c84772205472289494c62a63a3433727
2016-05-29imx233: two minor fixes for sd/mmcAmaury Pouly1-2/+5
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
2016-05-29imx233: add sd/mmc debug screenAmaury Pouly2-6/+127
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
2016-05-29imx233: fix button debug screen on landscape mode screenAmaury Pouly1-0/+5
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
2016-05-28imx233: fix redAmaury Pouly2-0/+12
stop pretending that stmp3600 and stmp3700 have a 4.2V power rail Change-Id: If2506ed3e7c5db96dedc668f0931d59a5197dd88
2016-05-28imx233: add new power debug screenAmaury Pouly1-0/+88
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
2016-05-28imx233: fix debug screen button handlingAmaury Pouly1-18/+23
The code was very primitive and did not handle release events properly. Change-Id: I1c56005282a9fb6608f79ff3b483ba614d635fdb
2016-05-28imx233: speedup charging trickle phaseAmaury Pouly3-20/+27
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
2016-05-28imx233: fix system_exception_wait()Amaury Pouly1-11/+9
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
2016-05-28imx233: fix frequency reportingAmaury Pouly2-6/+6
The code reported the frequency in kHz instead of Hz, thus breaking a debug screen. Change-Id: Id46de970cfb55bcdc09b63f59b244ee3ad6264b8
2016-05-28imx233: simplify timrot APIAmaury Pouly5-11/+74
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
2016-05-28zenxfi3: fix headphone detectionAmaury Pouly1-2/+2
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