mbed library sources
Dependents: frdm_kl05z_gpio_test
Fork of mbed-src by
targets/hal/TARGET_Freescale/TARGET_KPSDK_MCUS/TARGET_MCU_K64F/rtc_api.c@320:be04b2b1e3f2, 2014-09-11 (annotated)
- Committer:
- mbed_official
- Date:
- Thu Sep 11 17:00:08 2014 +0100
- Revision:
- 320:be04b2b1e3f2
- Parent:
- targets/hal/TARGET_Freescale/TARGET_KPSDK_MCUS/TARGET_K64F/rtc_api.c@267:8673334f2cbe
Synchronized with git revision c372035d60ac16c22e1313348a9e3f47293dc6b8
Full URL: https://github.com/mbedmicro/mbed/commit/c372035d60ac16c22e1313348a9e3f47293dc6b8/
Add derivative support to K64F and updates for MTS_GAMBIT
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mbed_official | 146:f64d43ff0c18 | 1 | /* mbed Microcontroller Library |
mbed_official | 146:f64d43ff0c18 | 2 | * Copyright (c) 2006-2013 ARM Limited |
mbed_official | 146:f64d43ff0c18 | 3 | * |
mbed_official | 146:f64d43ff0c18 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
mbed_official | 146:f64d43ff0c18 | 5 | * you may not use this file except in compliance with the License. |
mbed_official | 146:f64d43ff0c18 | 6 | * You may obtain a copy of the License at |
mbed_official | 146:f64d43ff0c18 | 7 | * |
mbed_official | 146:f64d43ff0c18 | 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
mbed_official | 146:f64d43ff0c18 | 9 | * |
mbed_official | 146:f64d43ff0c18 | 10 | * Unless required by applicable law or agreed to in writing, software |
mbed_official | 146:f64d43ff0c18 | 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
mbed_official | 146:f64d43ff0c18 | 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
mbed_official | 146:f64d43ff0c18 | 13 | * See the License for the specific language governing permissions and |
mbed_official | 146:f64d43ff0c18 | 14 | * limitations under the License. |
mbed_official | 146:f64d43ff0c18 | 15 | */ |
mbed_official | 146:f64d43ff0c18 | 16 | #include "rtc_api.h" |
mbed_official | 267:8673334f2cbe | 17 | |
mbed_official | 267:8673334f2cbe | 18 | #if DEVICE_RTC |
mbed_official | 267:8673334f2cbe | 19 | |
mbed_official | 146:f64d43ff0c18 | 20 | #include "pinmap.h" |
mbed_official | 146:f64d43ff0c18 | 21 | #include "fsl_rtc_hal.h" |
mbed_official | 146:f64d43ff0c18 | 22 | #include "fsl_clock_manager.h" |
mbed_official | 265:9632ea190e16 | 23 | #include "PeripheralPins.h" |
mbed_official | 146:f64d43ff0c18 | 24 | |
mbed_official | 146:f64d43ff0c18 | 25 | void rtc_init(void) { |
mbed_official | 146:f64d43ff0c18 | 26 | rtc_hal_init_config_t hal_config = {0}; |
mbed_official | 146:f64d43ff0c18 | 27 | |
mbed_official | 146:f64d43ff0c18 | 28 | hal_config.disableClockOutToPeripheral = true; |
mbed_official | 146:f64d43ff0c18 | 29 | if (PinMap_RTC[0].pin == NC) { |
mbed_official | 146:f64d43ff0c18 | 30 | hal_config.enable32kOscillator = true; |
mbed_official | 146:f64d43ff0c18 | 31 | } |
mbed_official | 146:f64d43ff0c18 | 32 | clock_manager_set_gate(kClockModuleRTC, 0U, true); |
mbed_official | 146:f64d43ff0c18 | 33 | hal_config.startSecondsCounterAt = 1; /* TSR = 1 */ |
mbed_official | 146:f64d43ff0c18 | 34 | rtc_hal_init(&hal_config); |
mbed_official | 146:f64d43ff0c18 | 35 | |
mbed_official | 146:f64d43ff0c18 | 36 | // select RTC clock source |
mbed_official | 146:f64d43ff0c18 | 37 | SIM->SOPT1 &= ~SIM_SOPT1_OSC32KSEL_MASK; |
mbed_official | 146:f64d43ff0c18 | 38 | SIM->SOPT1 |= SIM_SOPT1_OSC32KSEL(PinMap_RTC[0].peripheral); |
mbed_official | 146:f64d43ff0c18 | 39 | |
mbed_official | 146:f64d43ff0c18 | 40 | rtc_hal_config_oscillator(true); |
mbed_official | 146:f64d43ff0c18 | 41 | rtc_hal_counter_enable(true); |
mbed_official | 146:f64d43ff0c18 | 42 | } |
mbed_official | 146:f64d43ff0c18 | 43 | |
mbed_official | 146:f64d43ff0c18 | 44 | void rtc_free(void) { |
mbed_official | 146:f64d43ff0c18 | 45 | // [TODO] |
mbed_official | 146:f64d43ff0c18 | 46 | } |
mbed_official | 146:f64d43ff0c18 | 47 | |
mbed_official | 146:f64d43ff0c18 | 48 | /* |
mbed_official | 146:f64d43ff0c18 | 49 | * Little check routine to see if the RTC has been enabled |
mbed_official | 146:f64d43ff0c18 | 50 | * 0 = Disabled, 1 = Enabled |
mbed_official | 146:f64d43ff0c18 | 51 | */ |
mbed_official | 146:f64d43ff0c18 | 52 | int rtc_isenabled(void) { |
mbed_official | 146:f64d43ff0c18 | 53 | clock_manager_set_gate(kClockModuleRTC, 0U, true); |
mbed_official | 146:f64d43ff0c18 | 54 | return (int)rtc_hal_is_counter_enabled(); |
mbed_official | 146:f64d43ff0c18 | 55 | } |
mbed_official | 146:f64d43ff0c18 | 56 | |
mbed_official | 146:f64d43ff0c18 | 57 | time_t rtc_read(void) { |
mbed_official | 146:f64d43ff0c18 | 58 | return BR_RTC_TSR_TSR; |
mbed_official | 146:f64d43ff0c18 | 59 | } |
mbed_official | 146:f64d43ff0c18 | 60 | |
mbed_official | 146:f64d43ff0c18 | 61 | void rtc_write(time_t t) { |
mbed_official | 146:f64d43ff0c18 | 62 | if (t == 0) { |
mbed_official | 146:f64d43ff0c18 | 63 | t = 1; |
mbed_official | 146:f64d43ff0c18 | 64 | } |
mbed_official | 146:f64d43ff0c18 | 65 | rtc_hal_counter_enable(false); |
mbed_official | 146:f64d43ff0c18 | 66 | BW_RTC_TSR_TSR(t); |
mbed_official | 146:f64d43ff0c18 | 67 | rtc_hal_counter_enable(true); |
mbed_official | 146:f64d43ff0c18 | 68 | } |
mbed_official | 267:8673334f2cbe | 69 | |
mbed_official | 267:8673334f2cbe | 70 | #endif |