Commit graph

96 commits

Author SHA1 Message Date
Michael Sevakis
f4c4221306 Convert i.MX31 and AMS target to use RTC interrupt
Instead of checking ticks, set a sticky dirty flag that indicates
that the RTC needs to be read. This gives a timely update and more
accurate readout without actually reading the RTC until it changes.
The implementation should atomically read the flag and clear it.
Setting the flag would typically happen in an RTC tick ISR.

Change-Id: I6fd325f22845029a485c502c884812d3676026ea
2017-11-21 07:52:02 -05:00
Michael Sevakis
58b849c451 Move intrinsic RTC implmentation differences to driver files
Some drivers set tm_wday just fine and do not need it coerced to
be correct. Others set tm_yday, so don't overwrite what the driver
sets; just zero it inside if it can't fill the field. Move calls
to set_day_of_week() to the sorts of drivers that presumably
required the hammer (FS#11814) in get_time() where the weekday
isn't locked to the date.

Change-Id: Idd0ded6bfc9d9f48fcc1a6074068164c42fcf24a
2017-01-26 23:07:49 -05: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
Thomas Jarosch
1212edd352 Don't return pointer to array allocated on the stack
It will be out of scope once the function is left.

cppcheck reported:
[firmware/drivers/rtc/rtc_zenvisionm.c:31]: (error) Pointer to local array variable returned.
[firmware/drivers/rtc/rtc_zenvisionm.c:38]: (error) Pointer to local array variable returned.

Change-Id: Ibf28ba9b3d20cadcaff22398e143488c86746660
2015-01-13 21:40:19 +01:00
Amaury Pouly
0897794f44 sonynwz: fix time handling
Be consistent with the OF and use RTC PERSISTENT2 as offset

Change-Id: Ic8b970cbc4096d1f4efa0380a3af51c93484fe58
2013-09-26 17:01:44 +02:00
Amaury Pouly
d8024df105 imx233: implement alarm wake up
This adds the application part of alarm wake up. On some targets
like the Fuze+, it will also require a bootloader change to make
sure that the device doesn't power down on alarm wake up (for
example on the Fuze+ the bootloader requires the power button to
be hold sufficiently long, thus preventing alarm wake up to work)

Change-Id: I5d01957852355fddbd48110d3d75a5533f07879e
2013-07-02 00:45:00 +02:00
Bertrik Sikken
fca9e7bf8d zenxfi3: RTC is used in same was as in fuze+, using seconds-since-1970 plus an offset
Change-Id: Iab2e6e15c790c26d3bf2679e9f965a409d162783
2012-05-27 00:16:40 +02:00
Amaury Pouly
692338629b imx233: move rtc init from drivers/ to firmware/
Change-Id: Id816987a4bb1191d5c9cf8a85c51d75fbb2da7c8
2012-05-19 12:57:42 +02:00
Bertrik Sikken
a92a0fecca as3514 rtc: sansa clip zip uses 1970/1/1 base date instead of special AS3525v2 date
Change-Id: I32329c82da93c705a5cb4af8a1a8b4e85a9c9b37
2012-04-17 21:33:59 +02:00
Bertrik Sikken
47115ba834 Convert IMX233 RTC driver (used in fuze+) to use mktime and gmtime
Change-Id: Ie71d495509a81db5e02078398f5d722c00136072
2012-03-13 19:27:55 +01:00
Bertrik Sikken
727e8aa681 Introduce gmtime.c and use it in the AS3514 RTC driver
Change-Id: I00a09ae28a68f8153fb8fa854fea741ddfb0bf09
Reviewed-on: http://gerrit.rockbox.org/175
Tested-by: Bertrik Sikken <bertrik@sikken.nl>
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Reviewed-by: Rafaël Carré <rafael.carre@gmail.com>
2012-03-11 22:10:54 +01:00
Rafaël Carré
f3ad239a76 cowond2's power-target.h -> rename in pmu-target.h
other targets (ipod nano2g / classic) use that name for pmu

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31618 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 22:39:14 +00:00
Amaury Pouly
094e62a528 imx233/fuze+: implement rtc (time only, alarm still to implement)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31473 a1c6a512-1295-4272-9138-f99709370657
2011-12-31 13:35:45 +00:00
Thomas Martitz
249bba03f1 Initial commit of the Samsung YP-R0 port.
This port is a hybrid native/RaaA port. It runs on a embedded linux system,
but is the only application. It therefore can implement lots of stuff that
native targets also implement, while leveraging the underlying linux kernel.

The port is quite advanced. User interface, audio playback, plugins work
mostly fine. Missing is e.g. power mangement and USB (see SamsungYPR0 wiki page).

Included in utils/ypr0tools are scripts and programs required to generate
a patched firmware. The patched firmware has the rootfs modified to load
Rockbox. It includes a early/safe USB mode.

This port needs a new toolchain, one that includes glibc headers and libraries.
rockboxdev.sh can generate it, but e.g. codesourcey and distro packages may
also work.

Most of the initial effort is done by Lorenzo Miori and others (on ABI),
including reverse engineering and patching of the original firmware,
initial drivers, and more. Big thanks to you.

Flyspray: FS#12348
Author: Lorenzo Miori, myself

Merry christmas to ypr0 owners! :)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31415 a1c6a512-1295-4272-9138-f99709370657
2011-12-24 11:56:46 +00:00
Amaury Pouly
eb90d95693 imx233/fuze+: huge rework
- enable MMU
-rework lcd frame buffer
- add rtc/adc/power stubs (or not)
- fix a few MMC related defines (hopefully)
- implement cache handling for DMA
- more SD work
- add keymap (based on clip)
- add virtual buttons
- update linker scripts
- big step toward apps actually compiling

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30200 a1c6a512-1295-4272-9138-f99709370657
2011-07-23 11:45:22 +00:00
Michael Sevakis
c332bba905 mc13783 RTC: Handle years in a better way for the use of struct tm. Make the code less general because all years evenly divisible by 4 in the day range are leap years.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28891 a1c6a512-1295-4272-9138-f99709370657
2010-12-24 17:06:35 +00:00
Marcin Bukat
db9e5b404d RTC s35380a - remove unneeded header files includes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28778 a1c6a512-1295-4272-9138-f99709370657
2010-12-08 22:15:52 +00:00
Marcin Bukat
aff90a9db7 RTC s35380a - cleanup and more comments
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28772 a1c6a512-1295-4272-9138-f99709370657
2010-12-08 17:15:32 +00:00
Marcin Bukat
3b6b4f9050 RTC s35380a - proper alarm support
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28763 a1c6a512-1295-4272-9138-f99709370657
2010-12-07 22:04:02 +00:00
Marcin Bukat
4eb5aa2392 RTC s35380a - add support for alarm function. Currently this powers up the device but doesn't start selected function (radio/recording/playback)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28740 a1c6a512-1295-4272-9138-f99709370657
2010-12-06 10:24:48 +00:00
Marcin Bukat
d2ebc534ea RTC s35380a - fix initialization.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28711 a1c6a512-1295-4272-9138-f99709370657
2010-11-29 23:33:46 +00:00
Marcin Bukat
2d3064a7aa HD300 - add basic RTC support
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28697 a1c6a512-1295-4272-9138-f99709370657
2010-11-28 22:51:14 +00:00
Bertrik Sikken
cec1e476e6 Another (hopefully final) fix for FS#11453 (AMSv2 powerdown fails sometimes when wakeup timer set) by Fabian Vogel.
This fix disables MCLK before powerdown-for-wakeup.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28435 a1c6a512-1295-4272-9138-f99709370657
2010-11-01 18:58:40 +00:00
Bertrik Sikken
a290ce4222 tcc77x targets: various minor cleanups
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27913 a1c6a512-1295-4272-9138-f99709370657
2010-08-28 10:17:19 +00:00
Bertrik Sikken
82a2cdb2ad Various minor fixes for Samsung YH* targets
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27751 a1c6a512-1295-4272-9138-f99709370657
2010-08-08 09:02:41 +00:00
Bertrik Sikken
bf2ec0674e rtc_as3514.c: make alarm struct static and reorder fields to save some binsize
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27448 a1c6a512-1295-4272-9138-f99709370657
2010-07-16 10:41:41 +00:00
Bertrik Sikken
0da83cfc08 Fix failing AMSv2 power-down when the wake-up alarm timer is set - FS #11453 by me
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27447 a1c6a512-1295-4272-9138-f99709370657
2010-07-16 10:05:48 +00:00
Bertrik Sikken
9e86287946 Sansa clip+: prevent an unnecessary OF database refresh when using the wake-up alarm with a uSD card inserted (probably works for other AMSv2 targets too)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27158 a1c6a512-1295-4272-9138-f99709370657
2010-06-27 16:39:50 +00:00
Rafaël Carré
ba07b2055c AMSv2 RTC: no need to write to RTC_WAKEUP register
The wakeup alarm will be disabled when powering off anyway
OF database refresh of µSD now only happens if the wakeup was
explicitely enabled
There still seems to be a freeze problem when powering off (sometimes)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26875 a1c6a512-1295-4272-9138-f99709370657
2010-06-17 05:28:38 +00:00
Robert Kukla
be8da842b8 fix typo in r26245 (I guess not many people use rtc_alarm with gigabeat f)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26635 a1c6a512-1295-4272-9138-f99709370657
2010-06-06 17:37:13 +00:00
Rafaël Carré
eae2464e9a as3543 rtc wakeup: fix power off
If we disable the hearbeat source after enabling the watchdog there's no
more lock-up when powering off the dap
Comment out alarm enabling on startup since rockbox disables the alarm anyway

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26247 a1c6a512-1295-4272-9138-f99709370657
2010-05-24 10:06:46 +00:00
Rafaël Carré
ba46c88c6f rtc_enable_alarm() needs no return value
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26245 a1c6a512-1295-4272-9138-f99709370657
2010-05-22 00:28:26 +00:00
Rafaël Carré
172fc967b0 as3525v2: RTC alarm
A specific poweroff function needs to be used for wake-up to work
Disable RTC in bootloaders for consistency with other Sansas

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26243 a1c6a512-1295-4272-9138-f99709370657
2010-05-22 00:28:03 +00:00
Michael Sevakis
931e06de64 i.MX31/Gigabeat S: Actually enable DPTC which can set optimal voltage for 528MHz. Requires an SPI and PMIC interface rework because of the low-latency needs for the DPTC to work best with minimal panicing. SPI can work with multitasking and asynchronously from interrupt handlers or normal code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25800 a1c6a512-1295-4272-9138-f99709370657
2010-05-04 10:07:53 +00:00
Rafaël Carré
233316914e Clip+: show the same real time in OF and rockbox
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24859 a1c6a512-1295-4272-9138-f99709370657
2010-02-22 10:25:02 +00:00
Bertrik Sikken
529206694b fix warnings in s35390 rtc driver
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24380 a1c6a512-1295-4272-9138-f99709370657
2010-01-30 13:04:00 +00:00
Maurus Cuelenaere
537bea5fac Ingenic Jz4740: simplify RTC driver (you will need to re-set the clock)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24201 a1c6a512-1295-4272-9138-f99709370657
2010-01-08 14:52:15 +00:00
Andree Buschmann
508bf2b45a Final removal of tabs in firmware path
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24158 a1c6a512-1295-4272-9138-f99709370657
2010-01-03 11:31:14 +00:00
Nils Wallménius
070d515049 Fix same bug as in r23531 in two more drivers (wrong masking of wday)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23536 a1c6a512-1295-4272-9138-f99709370657
2009-11-05 17:01:22 +00:00
Robert Kukla
dca5fd1064 RTC read of ds1339 of ds3231 weekday
Flyspray: FS #10760
Author: Simon Rothen

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23531 a1c6a512-1295-4272-9138-f99709370657
2009-11-05 09:10:03 +00:00
Rob Purchase
48658eec41 Replace a couple of magic numbers with the appropriate constants.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23138 a1c6a512-1295-4272-9138-f99709370657
2009-10-12 19:00:59 +00:00
Rob Purchase
6170f01642 D2: The RTC chip needs to be runtime detected.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23112 a1c6a512-1295-4272-9138-f99709370657
2009-10-11 17:46:00 +00:00
Michael Chicoine
a4d62bd329 as3514 RTC driver: correct calculation, fixes FS#10625
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23037 a1c6a512-1295-4272-9138-f99709370657
2009-10-09 09:44:55 +00:00
Nils Wallménius
e6fbdfc10f Add missing parentheses to fix red
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22840 a1c6a512-1295-4272-9138-f99709370657
2009-09-26 15:15:06 +00:00
Nils Wallménius
c8b87d76eb FS#10569 RTC driver cleanup
Change the RTC drivers so that the rtc_(read|write)_datetime functions now deal directly with the tm struct instead of passing a string of bcd digits to/from (set|get)_time .
This simplifies drivers for rtc's that do not use a bcd representation internally and cleans up some target specific code and #ifdefs in generic code. Implement simple stubs for the sim to avoid #ifdefing for that too.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22839 a1c6a512-1295-4272-9138-f99709370657
2009-09-26 14:58:32 +00:00
Thomas Martitz
0dd0e4e072 Correct svn:keywords and svn:eol-style on a few more files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21798 a1c6a512-1295-4272-9138-f99709370657
2009-07-12 09:43:44 +00:00
Bertrik Sikken
9431ea8c65 S35390a RTC: fix duplicate i2c initialisation
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21679 a1c6a512-1295-4272-9138-f99709370657
2009-07-05 20:10:38 +00:00
Bertrik Sikken
ce5dc3ab96 Add RTC driver for Seiko S35390A (used in the Meizu M3 and possibly other Meizus)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21539 a1c6a512-1295-4272-9138-f99709370657
2009-06-28 09:58:05 +00:00
Karl Kurbjun
19cb444691 M:Robe 500: RTC is now working, Added some SPI flexibility per end device and modified the interrupt handler for the tsc2100 which should make it more reliable.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21483 a1c6a512-1295-4272-9138-f99709370657
2009-06-24 04:17:15 +00:00
Maurus Cuelenaere
84ea3f2530 Ingenic Jz4740: add a delay between enabling the RTC clock and setting the RTC time
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20862 a1c6a512-1295-4272-9138-f99709370657
2009-05-06 19:45:33 +00:00