Commit Graph

38 Commits

Author SHA1 Message Date
Leif Jakob
4a79547fb8 multiple fixes for stm32f1xx RTC clock
- compile issues because of missing RTC_MAGIC #defines
- missing functionality based on RTC_MAGIC in RTC based on stm32_rtcounter.c
- IRQ setup from up_rtc_initialize was later reset in up_irqinitialize
- write access to backup registers without enabling access to backup domain
- possible races in set/cancel alarm
tested with STM32F103C8 only
device now wakes up from forced STANDBY mode by alarm
2017-06-14 22:36:40 +02:00
Jussi Kivilinna
325ba1a803 clock: add clock_resynchronize and use subseconds RTC
Add clock_resynchronize for better synchronization of CLOCK_REALTIME and CLOCK_MONOTONIC to match RTC after resume from low-power state.

Add up_rtc_getdatetime_with_subseconds under CONFIG_ARCH_HAVE_RTC_SUBSECONDS to allow initializing (and resynchronizing) system clock with subseconds accuracy RTC.
2017-04-21 08:45:57 -06:00
Jussi Kivilinna
e3b3e57e56 RTC: add interface for check if RTC time has been set
New interface allows checking if RTC time has been set.  This allows to application to detect if RTC has valid time (after
reset) or should application attempt to get real time by other means (for example, by launching ntpclient or GPS).
2017-04-06 09:53:11 -06:00
Mark Schulte
b3222bbc8a irq_dispatch: Add argument pointer to irq_dispatch
Provide a user defined callback context for irq's, such that when
registering a callback users can provide a pointer that will get
passed back when the isr is called.
2017-02-27 06:27:56 -06:00
Gregory Nutt
8b5833f7fe A consequence of Max's change to the logic to enable access to the backup domain is that every call to enabledbkp(true) must be followed by a matching call to enablebkp(false). There was one cse in both RTCC drivers where that may not always be true. 2016-08-09 11:33:47 -06:00
Gregory Nutt
5d91b8cabb With last change, stm32_pwr_enablebkp() no longer returns a value 2016-08-09 07:50:31 -06:00
Gregory Nutt
43eb04bb8f Without lowsyslog() *llinfo() is not useful. Eliminate and replace with *info(). 2016-06-20 11:59:15 -06:00
Gregory Nutt
fdaf3d7268 STM32: Move backup domain reset to stm32_rcc.c in order to avoid disabling LSE during RTC initialiation. 2016-06-16 09:52:15 -06:00
Gregory Nutt
f9652812e2 Change *err() to either info() or err(ERROR:..), depending upon if an error has occurred. 2016-06-16 09:38:16 -06:00
Gregory Nutt
b7f0fbc073 Centralize definitions associated with CONFIG_DEBUG_RTC 2016-06-16 07:39:23 -06:00
Gregory Nutt
a1469a3e95 Add CONFIG_DEBUG_ERROR. Change names of *dbg() * *err() 2016-06-11 15:50:49 -06:00
Gregory Nutt
e99301d7c2 Rename *lldbg to *llerr 2016-06-11 14:55:27 -06:00
Gregory Nutt
1cdc746726 Rename CONFIG_DEBUG to CONFIG_DEBUG_FEATURES 2016-06-11 14:14:08 -06:00
Gregory Nutt
fc3540cffe Replace all occurrences of vdbg with vinfo 2016-06-11 11:59:51 -06:00
Neil Hancock
5ac54013d2 STM32 F4: Add a custom RTC driver 2016-04-02 10:46:10 -06:00
Gregory Nutt
b1e17d8892 Fix some conditional compilation. CONFIG_LIBC_LOCALTIME should be checked in most of the same places wehre CONFIG_TIME_EXTENDED is checked 2015-11-25 12:51:07 -06:00
Gregory Nutt
25a2e17347 Rename up_rtcinitialize to up_rtc_initialize so that it looks like other RTC interfaces 2015-11-20 08:27:04 -06:00
Gregory Nutt
53f6fd6e66 STM32: Correct some spacing issues 2015-10-07 13:45:15 -06:00
Gregory Nutt
ddf936c913 Various fixes for compilation issues found by tools/testbuild.sh 2015-10-01 11:09:39 -06:00
Gregory Nutt
e354853776 Elminiate some warnings 2015-09-08 09:18:59 -06:00
Paul A. Patience
a0dc724a5d Correct #if to #ifdef when the macro can be undefined. Fix bug in AT32UC3 clock initialization: AVR32_CLOCK_PLL_OSC1 should be AVR32_CLOCK_PLL0_OSC1 and AVR32_CLOCK_PLL1_OSC1. 2015-09-01 13:47:06 -04:00
Gregory Nutt
51df91e93d STM32 RTCC: Eliminate a warning when ALARM support is enabled 2015-07-02 15:02:59 -06:00
Gregory Nutt
4c0b8fba52 Fix an error introduced into stm32_pwr_enablebkp(). That function must preserve the previous state of backup domain access on return. 2015-04-18 07:31:20 -06:00
Gregory Nutt
dd3457173d Implements CONFIG_TIME_EXTENDED as we discussed relative to providing the last 3 members of the tm struct and support for filling them in and even using the wday in the STM32 RTC. From David Sidrane. 2015-04-08 06:56:43 -06:00
Gregory Nutt
c226d51c3c STM32: Another fix to RTC magic register from David Sidrane 2015-04-06 17:21:53 -06:00
Gregory Nutt
8461827dcd STM32 RTCC: Make back-up register and magic value used by RTCC configurable. From David Sidrane 2015-04-06 16:26:59 -06:00
Gregory Nutt
f073092fad The STM32F4Discovery board doesn't come with a Low speed external oscillator so the default LSE source for the RTC doesn't work.
In stm32_rtcc.c the up_rtcinitialize() logic doesn't work with the LSI. The check on RTC_MAGIC on the BK0R register lead to rtc_setup() call that rightfully enables the lsi clock; but the next times, when the rtc is already setup, the rtc_resume() call does NOT start the lsi clock!

The right place to put LSE/LSI initialisation is inside stm32_stdclockconfig() in stm32fxxxxx_rcc.c.  Doing this I checked the possible uses of the LSI and the LSE sources: the LSI can be used for RTC and/or the IWDG, while the LSE only for the RTC (and to output the MCO1 pin)..

This change is not verifed for any other platforms.

From Leo Aloe3132
2015-03-29 15:34:48 -06:00
Gregory Nutt
7d43cf2087 Changes to support fully write protecting the backup domain. N.B. stm32_pwr_enablebkp did not account for the delay from enable to the domain being writable. The KISS solution is a up_udelay. A more complex solution would be a negated write test with restore. From David Sidrane. 2015-02-21 14:53:33 -06:00
Gregory Nutt
0081b0840b Missed a Kconfig definition in the last commit 2015-02-16 10:41:12 -06:00
Gregory Nutt
c747521953 STM32 RTC: Extend the RTC interface to support reading subseconds. From Jussi Kivilinna 2015-02-16 07:18:09 -06:00
Gregory Nutt
b0b6747d49 Break out a new internal interface, stm32_rtc_setdatetime(). This eliminates some un-necessary time conversions. From Freddie Chopin.
Add a skeleton implementation of the RTC lower half interface at arch/arm/src/stm32/stm32_rtc_lowerhalf.c.  This is just the framework for the RTC lower half.  None of the interface methods have yet been implemetned.
2015-02-13 12:56:58 -06:00
Gregory Nutt
501bc15fbd RTC: Remove all backdoor interfaces from rtc.h 2015-02-13 08:41:34 -06:00
Gregory Nutt
523b12c624 Recent changes to stm32_rtcc.c do not compile with STM32L15XX configurations. From Jussi Kivilinna. 2015-01-27 09:20:42 -06:00
Gregory Nutt
7b89f64b37 stm32-rtc: Add support for the internal low speed clock (LSI)
Some boards do not have the external 32khz oscillator installed, for those boards we must fallback to the crummy to the crummy internal RC clock.  Turn on by defining CONFIG_RTC_LSICLOCK.

From Kevin Hester <kevinh@geeksville.com> via Lorenz Meier.
2015-01-02 06:32:40 -06:00
Gregory Nutt
b3abd30a76 Cosmetic changes 2014-05-28 14:09:58 -06:00
Gregory Nutt
3feabec7d5 STM32 RTC: Add retry to initialization logic. Sometime RTC initialization takes longer. From dlsitzer. 2014-05-27 07:10:53 -06:00
Gregory Nutt
d01808c603 LM: Don't initialize .data if running in SRAM. Global missing intialize type. SAMA5 NAND: Fix for read nand in smaller chunks 2013-12-05 10:37:55 -06:00
patacongo
631bcc2c73 Updates for STM32 F3 SPI and RTC
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5631 42af7a65-404d-4744-a932-0658087f49c3
2013-02-09 16:39:59 +00:00