Commit graph

33262 commits

Author SHA1 Message Date
Cástor Muñoz
e3c51e09d1 usb_serial: fix send buffer alignment
Change-Id: Ib2635c905462cd34befa3ca61e5d55c869686b48
2016-08-04 17:57:04 +02:00
Michael Giacomelli
838780109e test_mem: print clock speed in MHz so it fits on smaller screens.
Change-Id: I81383c115bd9abac44ffc2ecdd8807855c80cf0e
2016-08-03 20:26:54 +02:00
Cástor Muñoz
ef572fec52 iPod Nano 2G: use the new USB DesignWare driver
Change-Id: I8d1561bf4e239b55617a8d5075457a668e0c312c
2016-08-02 04:57:50 +02:00
Cástor Muñoz
3c5aa754de iPod Classic: use the new USB DesignWare driver
Change-Id: I36aabb5cb9cfe2d8c4f8fbcea944efec58ef9671
2016-08-02 04:57:50 +02:00
Cástor Muñoz
5e305d35c9 Introduce new USB driver for Synopsys DesignWare USB OTG core.
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-08-02 04:57:49 +02:00
Frank Gevaerts
0f89b041c0 Fix endianness handling for sha1 (used by the otp plugin)
Change-Id: I408d88d984f9026539c2d1bc2a9608243802c152
2016-06-28 13:33:50 +02:00
Frank Gevaerts
c7a561e9f1 Remove chapter magic in table of contents for scrreprt tex4ht.
This fixes html builds. Don't ask.

Change-Id: Icb034a5c3ca74af887e31063007f41f9ef8be404
2016-06-14 18:28:28 +02:00
Frank Gevaerts
7b95b9d76d Update old \tt and \sc macros
Change-Id: I016d946e48590039bcedd7dd5ec41322b0ef17ea
2016-06-14 18:28:28 +02:00
Amaury Pouly
1bd47de339 zenxfi3: recalibrate battery curve
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-12 18:38:38 +01:00
Cástor Muñoz
489044d1ca iPod Nano2G: clear external interrupts at startup
Fixes some ROLO issues after commit 9a4cd2e. Note that other ROLO
issues still persist.

Change-Id: I8e0c60519902013694c5a473dcb9fc62a6ff079c
2016-06-10 00:34:23 +02:00
Amaury Pouly
9a6700d52e imx233: fix power off code
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-08 21:53:36 +02:00
Franklin Wei
e195126ce8 manual: add screenshots for 2048
* These were automatically generated by Amaury Pouly

* For details read http://www.rockbox.org/irc/log-20160605#20:58:18

Change-Id: I4584b07023f5e37b13a7483e60f9d30d3c7c9d69
2016-06-06 00:56:02 +02:00
Franklin Wei
30d7ead6af One-Time Password client (HOTP and TOTP)
* Implements RFC 4226 (HOTP) and RFC 6238 (TOTP)

* Adds sha1.c to apps/plugins/lib (orignally tools/hmac-sha1.c)

* See manual entry for more information

Change-Id: Ia4a4031b29f97361b541e71438aa7f3ea82212f2
2016-06-05 14:25:09 -04:00
Amaury Pouly
59ae562a32 fix yellow
Change-Id: Ie18d7f83ba3e7293d4cd110429e1578930d35d99
2016-06-01 22:19:59 +01:00
Amaury Pouly
ccd500a48a imx233: fix stupid typo in debug screen
Change-Id: Ife43543d6eee6522f4016f37479a20a0db39240d
2016-06-01 23:09:49 +02:00
Amaury Pouly
d42a4a4eb4 zenxfi3: rewrite mpr121 driver
The new driver uses an asynchronous architecture for touch status reading.

Change-Id: Ic75a8b91bc47ee16c3af873afde178cd70186376
2016-06-01 23:09:27 +02:00
Amaury Pouly
b2afd931e2 fuze+: rewrite touchpad driver
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-01 23:08:17 +02:00
Amaury Pouly
4d42e3685c imx233: rewrite i2c driver
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-06-01 22:55:37 +02:00
Franklin Wei
615c638c7d Fix broken simulator build with weird sdl-config
* --static-libs isn't supported on some (possibly newer) SDL installs, falls back to --libs if this is the case

Patch mostly by Amaury Pouly.

Change-Id: I6dd2f4847f2a2d1de7b2d287c0af6651cec461ff
2016-06-01 15:11:09 -04:00
Amaury Pouly
86df983eee zenxfi3: update keymap
Map short menu press to context menu/quickscreen.
Map long menu press to return to main menu.
Also remove some stupid keylock mapping, that doesn't make sense.

Change-Id: I5f9b05af261bcbd2f0cf116f99570c4d853e0394
2016-05-30 16:52:41 +01:00
Amaury Pouly
6d124c738b Fix red, forgotten file
Change-Id: Ia9c1e924c84772205472289494c62a63a3433727
2016-05-29 20:21:26 +01:00
Amaury Pouly
633c8edf47 imx233: two minor fixes for sd/mmc
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-29 16:08:42 +01:00
Amaury Pouly
85ad99ee3d imx233: add sd/mmc debug screen
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-29 16:07:43 +01:00
Amaury Pouly
7aacf4da2d imx233: fix button debug screen on landscape mode screen
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-29 16:05:56 +01:00
Amaury Pouly
ae7dd5388d imx233: fix red
stop pretending that stmp3600 and stmp3700 have a 4.2V power rail

Change-Id: If2506ed3e7c5db96dedc668f0931d59a5197dd88
2016-05-28 16:50:07 +01:00
Frank Gevaerts
c926a5269e Fix race conditions in parallel build.
ffmpeg_bitstream.c is included in libcodec, so there doesn't seem to
be any reason for individual codecs to also compile it (and clobber
any previous copy while they're at it, leading to broken builds)

Change-Id: I2bedc277ab109f44a6e8feb3d12ed01a720e00a6
2016-05-28 17:41:32 +02:00
Amaury Pouly
cdca7cee71 imx233: add new power debug screen
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-28 17:38:29 +02:00
Amaury Pouly
2dcc9fc39f imx233: fix debug screen button handling
The code was very primitive and did not handle release events properly.

Change-Id: I1c56005282a9fb6608f79ff3b483ba614d635fdb
2016-05-28 17:38:10 +02:00
Amaury Pouly
941ac165d8 imx233: speedup charging trickle phase
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-28 16:21:03 +01:00
Amaury Pouly
d245b7a2a1 imx233: fix system_exception_wait()
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-28 17:19:48 +02:00
Amaury Pouly
a25700e4a0 imx233: fix frequency reporting
The code reported the frequency in kHz instead of Hz, thus breaking a debug
screen.

Change-Id: Id46de970cfb55bcdc09b63f59b244ee3ad6264b8
2016-05-28 17:18:52 +02:00
Amaury Pouly
643c0a1e0e imx233: simplify timrot API
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-28 17:18:32 +02:00
Amaury Pouly
423c64770c zenxfi3: fix headphone detection
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
2016-05-28 17:12:01 +02:00
Amaury Pouly
7e00be9a1e nwz-370/380: increase adc button error margin
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
2016-05-28 17:11:49 +02:00
Amaury Pouly
9fe854e782 imx233: enhance button driver adc handling
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
2016-05-28 17:09:19 +02:00
Amaury Pouly
030a9da0d7 imx233: cosmetics
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
2016-05-28 17:07:42 +02:00
Amaury Pouly
f182e2df66 imx233: make sure not to discharge battery when charge is complete
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
2016-05-28 17:07:11 +02:00
Amaury Pouly
eac1ca22bd imx233: generate register headers using headergen_v2 and update code for it
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
2016-05-28 16:49:22 +02:00
Cástor Muñoz
28920ec5cc iPod Classic: fix typos / cosmetic
Change-Id: Ic6552dea4b300032875097ef0b885a4ae059f4bc
2016-05-28 15:48:02 +02:00
Cástor Muñoz
9e284c11b1 iPod Classic: i2c updates
Change-Id: Ib516f3f52cf619fb44dc1bb6982b635c49f53a8f
2016-05-26 09:06:30 +02:00
Cástor Muñoz
2d850b7c66 iPod Classic: define USB_STATUS_BY_EVENT and USB_DETECT_BY_REQUEST
Change-Id: I333fe779d8977bf58a579561466ef8872aa4e228
2016-05-26 09:06:30 +02:00
Cástor Muñoz
daee722455 iPod Classic: use PMU interrupts to detect USB and FW
Change-Id: I9be733e1a943ddeb99335d362f81f74879eeb94b
2016-05-26 09:06:30 +02:00
Cástor Muñoz
f6ed4f8306 iPod Classic: use PMU interrupts to detect accessories
- Speed auto detection is launched when an accessory is inserted,
  so the user doesn't need to modify settings to use accessories
  that operates at different speeds (or when the same accessory is
  unplugged and plugged again).

- UART controller is disabled when no accessory is inserted, not
  much powersave but everything counts.

Change-Id: If20c3617c2a87b6277fd7e0270031030c44fa953
2016-05-26 09:05:44 +02:00
Cástor Muñoz
d8989b15b7 iPod Classic: use PMU interrupts to detect hold switch
Finally the hold switch workaround is removed and it is detected
in the same way as OF does.

Change-Id: Iceac6ca48ffd131b8ee9f62ffdc2b3e30eb02042
2016-05-26 02:15:28 +02:00
Amaury Pouly
a6b4bf3a33 mkimxboot: remove code for NWZ-370/380
Since the stub code is shared with NWZ-360, it enables the pullup for the
hold button, but the NWZ-370/380 doesn't have a hold button so don't compile
this code in, it could potentially have unexpected effets or increase consumption

Change-Id: I28c8aa40fc7f9373593ff105fb6df557a6f57ccd
2016-05-25 23:29:04 +01:00
Amaury Pouly
b40ad7d269 mkimxboot: make cross compiler for dualboot stubs overridable
Change-Id: I90d2048f622b355eae7091e536b940b2ac828583
2016-05-25 23:28:25 +01:00
Tomasz Moń
94b23da3c4 Sansa Connect: change bootloader linker file
This change ensures that Sansa Connect bootloader.bin will fit in its flash
partition.

Fix _flash_sizem calculation, division was not working properly because
FLASHSIZE included subtraction and defined value was not in parenthesis.
Prior to this change _flash_sizem was 0x00800000, now it is correctly set
to 4 in case of Sansa Connect and 8 in case of other TMS320DM320 players.
This significantly improves boot time as cache is now enabled only for
real flash memory region.

Change-Id: If3e50a3075c840dcb69dfafe5bba608a0acd2bf8
2016-05-25 17:03:19 +02:00
Frank Gevaerts
9327885d14 Use an actually reliable method to determine 32 vs 64 bit
Change-Id: Idba256ae66e67efa7a03f3817bc588e0b4ccd4ba
2016-05-25 13:41:44 +02:00
Cástor Muñoz
98bd2231ec iPod Classic: introduce PMU interrupts
PMU interrupts are used to detect USB Vbus, wall adaptor, accessories
and holdswitch. A thread is needed to poll the PMU throught I2C, ATM
it does nothing but showing the state of the inputs on the HW debug
menu, funcionallity for each individual input will be added in next
patches.

Change-Id: If93bf2044d1052729237a7fd1431c8493e09f1c7
2016-05-25 12:45:34 +02:00
Cástor Muñoz
88caf222ed iPod Classic: rework on external interrupts
Change-Id: I5be450adeb12b16070d9bfa31503e2ef350b2981
2016-05-25 12:44:55 +02:00