cc y / mbed

Fork of mbed by mbed official

Committer:
<>
Date:
Tue Nov 08 17:28:34 2016 +0000
Revision:
129:0ab6a29f35bf
Parent:
128:9bcdf88f62b0
Release 129 of the mbed library

Ports for Upcoming Targets

3011: Add u-blox Sara-N target. https://github.com/ARMmbed/mbed-os/pull/3011
3099: MAX32625 https://github.com/ARMmbed/mbed-os/pull/3099
3151: Add support for FRDM-K82F https://github.com/ARMmbed/mbed-os/pull/3151
3177: New mcu k22512 fixing pr 3136 https://github.com/ARMmbed/mbed-os/pull/3177

Fixes and Changes

3008: NUCLEO_F072RB: Fix wrong timer channel number on pwm PB_5 pin https://github.com/ARMmbed/mbed-os/pull/3008
3013: STM32xx - Change how the ADC internal pins are checked before pinmap_ https://github.com/ARMmbed/mbed-os/pull/3013
3041: [nRF5] - added implementation of API of serial port flow control configuration. https://github.com/ARMmbed/mbed-os/pull/3041
3084: [nrf5] fix in Digital I/O : a gpioe pin was uninitialized badly https://github.com/ARMmbed/mbed-os/pull/3084
3009: TRNG enabled. TRNG APIs implemented. REV A/B/C/D flags removed. Warnings removed https://github.com/ARMmbed/mbed-os/pull/3009
3074: Target stm init gcc alignement https://github.com/ARMmbed/mbed-os/pull/3074
2988: Update of can_api.c fixing #2987 https://github.com/ARMmbed/mbed-os/pull/2988
3173: [Exporters] Add a device_name to microbit entry in targets.json https://github.com/ARMmbed/mbed-os/pull/3173
2969: [nRF52] - switch irq priorities of driver handlers to the lowest level https://github.com/ARMmbed/mbed-os/pull/2969
3184: #3183 Compiler warning in trng_api.c with K64F https://github.com/ARMmbed/mbed-os/pull/3184
3104: [NuMaker] Support CAN and fix PWM CLK error https://github.com/ARMmbed/mbed-os/pull/3104
3186: MultiTech mDot - add back SPI3 pins https://github.com/ARMmbed/mbed-os/pull/3186
3075: nsapi - Add standardized return types for size and errors https://github.com/ARMmbed/mbed-os/pull/3075
3221: u-blox odin w2 drivers update https://github.com/ARMmbed/mbed-os/pull/3221

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 125:2e9cc70d1897 1 /**
AnnaBridge 125:2e9cc70d1897 2 ******************************************************************************
AnnaBridge 125:2e9cc70d1897 3 * @file rtc.h
<> 128:9bcdf88f62b0 4 * @brief (API) Public header of RTC driver
AnnaBridge 125:2e9cc70d1897 5 * @internal
AnnaBridge 125:2e9cc70d1897 6 * @author ON Semiconductor
AnnaBridge 125:2e9cc70d1897 7 * $Rev: 3485 $
AnnaBridge 125:2e9cc70d1897 8 * $Date: 2015-07-14 15:20:11 +0530 (Tue, 14 Jul 2015) $
AnnaBridge 125:2e9cc70d1897 9 ******************************************************************************
AnnaBridge 126:abea610beb85 10 * Copyright 2016 Semiconductor Components Industries LLC (d/b/a “ON Semiconductor”).
AnnaBridge 126:abea610beb85 11 * All rights reserved. This software and/or documentation is licensed by ON Semiconductor
AnnaBridge 126:abea610beb85 12 * under limited terms and conditions. The terms and conditions pertaining to the software
AnnaBridge 126:abea610beb85 13 * and/or documentation are available at http://www.onsemi.com/site/pdf/ONSEMI_T&C.pdf
AnnaBridge 126:abea610beb85 14 * (“ON Semiconductor Standard Terms and Conditions of Sale, Section 8 Software”) and
AnnaBridge 126:abea610beb85 15 * if applicable the software license agreement. Do not use this software and/or
AnnaBridge 126:abea610beb85 16 * documentation unless you have carefully read and you agree to the limited terms and
AnnaBridge 126:abea610beb85 17 * conditions. By using this software and/or documentation, you agree to the limited
AnnaBridge 126:abea610beb85 18 * terms and conditions.
AnnaBridge 125:2e9cc70d1897 19 *
AnnaBridge 125:2e9cc70d1897 20 * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
AnnaBridge 125:2e9cc70d1897 21 * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
AnnaBridge 125:2e9cc70d1897 22 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
AnnaBridge 125:2e9cc70d1897 23 * ON SEMICONDUCTOR SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL,
AnnaBridge 125:2e9cc70d1897 24 * INCIDENTAL, OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
AnnaBridge 125:2e9cc70d1897 25 * @endinternal
AnnaBridge 125:2e9cc70d1897 26 *
AnnaBridge 125:2e9cc70d1897 27 * @ingroup rtc
AnnaBridge 125:2e9cc70d1897 28 */
AnnaBridge 125:2e9cc70d1897 29
AnnaBridge 125:2e9cc70d1897 30 #ifndef RTC_H_
AnnaBridge 125:2e9cc70d1897 31 #define RTC_H_
AnnaBridge 125:2e9cc70d1897 32
AnnaBridge 125:2e9cc70d1897 33 #include "rtc_map.h"
AnnaBridge 125:2e9cc70d1897 34 #include "clock.h"
AnnaBridge 125:2e9cc70d1897 35 #include "memory_map.h"
AnnaBridge 125:2e9cc70d1897 36
<> 128:9bcdf88f62b0 37 #define RTC_CLOCK_HZ 32768
<> 128:9bcdf88f62b0 38 #define RTC_SEC_TO_US 1000000
<> 128:9bcdf88f62b0 39 #define RTC_SUB_SEC_MASK 0x7FFF
<> 128:9bcdf88f62b0 40 #define RTC_SEC_MASK 0xFFFFFFFF
<> 128:9bcdf88f62b0 41 #define RTC_SEC_INT_STATUS_MASK 0x2
AnnaBridge 125:2e9cc70d1897 42
<> 128:9bcdf88f62b0 43 #define RTC_SUBSEC_INTERRUPT_BIT_VAL 0x1
<> 128:9bcdf88f62b0 44 #define RTC_SEC_INTERRUPT_BIT_VAL 0x2
<> 128:9bcdf88f62b0 45 #define RTC_ALL_INTERRUPT_BIT_VAL 0x3
AnnaBridge 125:2e9cc70d1897 46
<> 128:9bcdf88f62b0 47 #define RTC_INT_CLR_SUB_SEC_BIT_POS 0
<> 128:9bcdf88f62b0 48 #define RTC_INT_CLR_SEC_BIT_POS 1
AnnaBridge 125:2e9cc70d1897 49
<> 128:9bcdf88f62b0 50 #define RTC_CONTROL_SUBSEC_CNT_START_BIT_POS 0
<> 128:9bcdf88f62b0 51 #define RTC_CONTROL_SEC_CNT_START_BIT_POS 1
<> 128:9bcdf88f62b0 52 #define RTC_CONTROL_SUBSEC_CNT_INT_BIT_POS 2
<> 128:9bcdf88f62b0 53 #define RTC_CONTROL_SEC_CNT_INT_BIT_POS 3
AnnaBridge 125:2e9cc70d1897 54
<> 129:0ab6a29f35bf 55 #define RTC_STATUS_SUB_SEC_ALARM_WRT_BIT_POS 6
<> 129:0ab6a29f35bf 56 #define RTC_STATUS_SEC_ALARM_WRT_BIT_POS 7
<> 129:0ab6a29f35bf 57 #define RTC_STATUS_CONTROL_WRT_BIT_POS 8
<> 128:9bcdf88f62b0 58 #define RTC_STATUS_SUB_SEC_INT_CLR_WRT_BIT_POS 9
<> 128:9bcdf88f62b0 59 #define RTC_STATUS_SEC_INT_CLR_WRT_BIT_POS 10
AnnaBridge 125:2e9cc70d1897 60
<> 129:0ab6a29f35bf 61 #define SUB_SEC_MASK 0x7FFF
<> 129:0ab6a29f35bf 62
<> 129:0ab6a29f35bf 63
AnnaBridge 125:2e9cc70d1897 64 /* FUnction pointer for call back */
AnnaBridge 125:2e9cc70d1897 65 typedef void (* fRtcCallBack)(void);
AnnaBridge 125:2e9cc70d1897 66
AnnaBridge 125:2e9cc70d1897 67 /**
AnnaBridge 125:2e9cc70d1897 68 * @details
AnnaBridge 125:2e9cc70d1897 69 * Initializes RTC, enable RTC & register call back function
AnnaBridge 125:2e9cc70d1897 70 *
AnnaBridge 125:2e9cc70d1897 71 * @param RtcCallBack Function pointer for RTC call back funtion
AnnaBridge 125:2e9cc70d1897 72 * @return None
AnnaBridge 125:2e9cc70d1897 73 */
AnnaBridge 125:2e9cc70d1897 74 void fRtcInit(void);
AnnaBridge 125:2e9cc70d1897 75
AnnaBridge 125:2e9cc70d1897 76 /**
AnnaBridge 125:2e9cc70d1897 77 * @details
AnnaBridge 125:2e9cc70d1897 78 * Disable RTC
AnnaBridge 125:2e9cc70d1897 79 *
AnnaBridge 125:2e9cc70d1897 80 * @param None
AnnaBridge 125:2e9cc70d1897 81 * @return None
AnnaBridge 125:2e9cc70d1897 82 */
AnnaBridge 125:2e9cc70d1897 83 void fRtcFree(void);
AnnaBridge 125:2e9cc70d1897 84
AnnaBridge 125:2e9cc70d1897 85 /**
AnnaBridge 125:2e9cc70d1897 86 * @details
AnnaBridge 125:2e9cc70d1897 87 * Set up alram for RTC interrupt in micro second
AnnaBridge 125:2e9cc70d1897 88 * Pre-requisite: Both second & sub second interrupts should be cleared.
AnnaBridge 125:2e9cc70d1897 89 * @param TimeStamp in micro seconds
AnnaBridge 125:2e9cc70d1897 90 * @return None
AnnaBridge 125:2e9cc70d1897 91 */
AnnaBridge 125:2e9cc70d1897 92 void fRtcSetInterrupt(uint32_t timestamp);
AnnaBridge 125:2e9cc70d1897 93
AnnaBridge 125:2e9cc70d1897 94 /**
AnnaBridge 125:2e9cc70d1897 95 * @details
AnnaBridge 125:2e9cc70d1897 96 * Disable interrupt
AnnaBridge 125:2e9cc70d1897 97 *
AnnaBridge 125:2e9cc70d1897 98 * @param None
AnnaBridge 125:2e9cc70d1897 99 * @return None
AnnaBridge 125:2e9cc70d1897 100 */
AnnaBridge 125:2e9cc70d1897 101 void fRtcDisableInterrupt(void);
AnnaBridge 125:2e9cc70d1897 102
AnnaBridge 125:2e9cc70d1897 103 /**
AnnaBridge 125:2e9cc70d1897 104 * @details
AnnaBridge 125:2e9cc70d1897 105 * Enable interrupt
AnnaBridge 125:2e9cc70d1897 106 *
AnnaBridge 125:2e9cc70d1897 107 * @param None
AnnaBridge 125:2e9cc70d1897 108 * @return None
AnnaBridge 125:2e9cc70d1897 109 */
AnnaBridge 125:2e9cc70d1897 110 void fRtcEnableInterrupt(void);
AnnaBridge 125:2e9cc70d1897 111
AnnaBridge 125:2e9cc70d1897 112 /**
AnnaBridge 125:2e9cc70d1897 113 * @details
AnnaBridge 125:2e9cc70d1897 114 * Clear interrupt
AnnaBridge 125:2e9cc70d1897 115 *
AnnaBridge 125:2e9cc70d1897 116 * @param None
AnnaBridge 125:2e9cc70d1897 117 * @return None
AnnaBridge 125:2e9cc70d1897 118 */
AnnaBridge 125:2e9cc70d1897 119 void fRtcClearInterrupt(void);
AnnaBridge 125:2e9cc70d1897 120
AnnaBridge 125:2e9cc70d1897 121 /**
AnnaBridge 125:2e9cc70d1897 122 * @details
AnnaBridge 125:2e9cc70d1897 123 * Returns RTC time in micro seconds
AnnaBridge 125:2e9cc70d1897 124 *
AnnaBridge 125:2e9cc70d1897 125 * @param None
AnnaBridge 125:2e9cc70d1897 126 * @return RTC Time in micro second
AnnaBridge 125:2e9cc70d1897 127 */
AnnaBridge 125:2e9cc70d1897 128 uint64_t fRtcRead(void);
AnnaBridge 125:2e9cc70d1897 129
AnnaBridge 125:2e9cc70d1897 130 /**
AnnaBridge 125:2e9cc70d1897 131 * @details
AnnaBridge 125:2e9cc70d1897 132 * Set RTC time in micro seconds
AnnaBridge 125:2e9cc70d1897 133 *
AnnaBridge 125:2e9cc70d1897 134 * @param RtcTime in micro Seconds
AnnaBridge 125:2e9cc70d1897 135 * @return None
AnnaBridge 125:2e9cc70d1897 136 */
AnnaBridge 125:2e9cc70d1897 137 void fRtcWrite(uint64_t RtcTimeus);
AnnaBridge 125:2e9cc70d1897 138
AnnaBridge 125:2e9cc70d1897 139 /**
AnnaBridge 125:2e9cc70d1897 140 * @details
AnnaBridge 125:2e9cc70d1897 141 * RTC interrupt handler
AnnaBridge 125:2e9cc70d1897 142 *
AnnaBridge 125:2e9cc70d1897 143 * @param None
AnnaBridge 125:2e9cc70d1897 144 * @return None
AnnaBridge 125:2e9cc70d1897 145 */
AnnaBridge 125:2e9cc70d1897 146 void fRtcHandler(void);
AnnaBridge 125:2e9cc70d1897 147
AnnaBridge 125:2e9cc70d1897 148 /**
AnnaBridge 125:2e9cc70d1897 149 * @details
AnnaBridge 125:2e9cc70d1897 150 * Is RTC enabled?
AnnaBridge 125:2e9cc70d1897 151 *
AnnaBridge 125:2e9cc70d1897 152 * @param None
AnnaBridge 125:2e9cc70d1897 153 * @return RTC status
AnnaBridge 125:2e9cc70d1897 154 */
AnnaBridge 125:2e9cc70d1897 155 boolean fIsRtcEnabled(void);
AnnaBridge 125:2e9cc70d1897 156 #endif /* RTC_H_ */