fixed drive strength

Dependents:   capstone_i2c

Fork of mbed-dev by mbed official

Committer:
mbed_official
Date:
Mon Feb 15 10:00:10 2016 +0000
Revision:
64:41a834223ea3
Parent:
18:da299f395b9e
Synchronized with git revision e641fd47cf2a6bafdbe87c743a39772f73edcbe7

Full URL: https://github.com/mbedmicro/mbed/commit/e641fd47cf2a6bafdbe87c743a39772f73edcbe7/

Fixed GCC Compiler warnings

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 15:a81a8d6c1dfe 1 /* mbed Microcontroller Library
mbed_official 15:a81a8d6c1dfe 2 * Copyright (c) 2006-2015 ARM Limited
mbed_official 15:a81a8d6c1dfe 3 *
mbed_official 15:a81a8d6c1dfe 4 * Licensed under the Apache License, Version 2.0 (the "License");
mbed_official 15:a81a8d6c1dfe 5 * you may not use this file except in compliance with the License.
mbed_official 15:a81a8d6c1dfe 6 * You may obtain a copy of the License at
mbed_official 15:a81a8d6c1dfe 7 *
mbed_official 15:a81a8d6c1dfe 8 * http://www.apache.org/licenses/LICENSE-2.0
mbed_official 15:a81a8d6c1dfe 9 *
mbed_official 15:a81a8d6c1dfe 10 * Unless required by applicable law or agreed to in writing, software
mbed_official 15:a81a8d6c1dfe 11 * distributed under the License is distributed on an "AS IS" BASIS,
mbed_official 15:a81a8d6c1dfe 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mbed_official 15:a81a8d6c1dfe 13 * See the License for the specific language governing permissions and
mbed_official 15:a81a8d6c1dfe 14 * limitations under the License.
mbed_official 15:a81a8d6c1dfe 15 */
mbed_official 15:a81a8d6c1dfe 16 #include "mbed_assert.h"
mbed_official 15:a81a8d6c1dfe 17 #include "rtc_api.h"
mbed_official 15:a81a8d6c1dfe 18
mbed_official 15:a81a8d6c1dfe 19 #include "cmsis.h"
mbed_official 15:a81a8d6c1dfe 20 #include "system.h"
mbed_official 15:a81a8d6c1dfe 21
mbed_official 15:a81a8d6c1dfe 22 #include "rtc_count.h"
mbed_official 15:a81a8d6c1dfe 23
mbed_official 18:da299f395b9e 24 #if !defined(RTC_CLOCK_SOURCE)
mbed_official 18:da299f395b9e 25 # warning RTC_CLOCK_SOURCE is not defined, assuming RTC_CLOCK_SELECTION_ULP1K.
mbed_official 18:da299f395b9e 26 # define RTC_CLOCK_SOURCE RTC_CLOCK_SELECTION_ULP1K
mbed_official 18:da299f395b9e 27 #endif
mbed_official 18:da299f395b9e 28
mbed_official 15:a81a8d6c1dfe 29 /* Global RTC instance*/
mbed_official 15:a81a8d6c1dfe 30 static struct rtc_module rtc_instance;
mbed_official 15:a81a8d6c1dfe 31
mbed_official 15:a81a8d6c1dfe 32 static int rtc_inited = 0;
mbed_official 15:a81a8d6c1dfe 33
mbed_official 15:a81a8d6c1dfe 34 /* Extern variables */
mbed_official 15:a81a8d6c1dfe 35 extern uint8_t g_sys_init;
mbed_official 15:a81a8d6c1dfe 36
mbed_official 15:a81a8d6c1dfe 37 /** Initialize the RTC
mbed_official 15:a81a8d6c1dfe 38 *
mbed_official 15:a81a8d6c1dfe 39 * Initialize the RTC with default time
mbed_official 15:a81a8d6c1dfe 40 * @param[void] void
mbed_official 15:a81a8d6c1dfe 41 */
mbed_official 15:a81a8d6c1dfe 42 void rtc_init(void)
mbed_official 15:a81a8d6c1dfe 43 {
mbed_official 15:a81a8d6c1dfe 44 if (g_sys_init == 0) {
mbed_official 15:a81a8d6c1dfe 45 system_init();
mbed_official 15:a81a8d6c1dfe 46 g_sys_init = 1;
mbed_official 15:a81a8d6c1dfe 47 }
mbed_official 15:a81a8d6c1dfe 48
mbed_official 15:a81a8d6c1dfe 49 struct rtc_count_config config_rtc_count;
mbed_official 15:a81a8d6c1dfe 50
mbed_official 15:a81a8d6c1dfe 51 rtc_count_get_config_defaults(&config_rtc_count);
mbed_official 15:a81a8d6c1dfe 52
mbed_official 15:a81a8d6c1dfe 53 config_rtc_count.prescaler = RTC_COUNT_PRESCALER_DIV_1024;
mbed_official 15:a81a8d6c1dfe 54 config_rtc_count.mode = RTC_COUNT_MODE_32BIT;
mbed_official 15:a81a8d6c1dfe 55 #ifdef FEATURE_RTC_CONTINUOUSLY_UPDATED
mbed_official 15:a81a8d6c1dfe 56 config_rtc_count.continuously_update = true;
mbed_official 15:a81a8d6c1dfe 57 #endif
mbed_official 15:a81a8d6c1dfe 58
mbed_official 15:a81a8d6c1dfe 59 rtc_count_init(&rtc_instance, RTC, &config_rtc_count);
mbed_official 15:a81a8d6c1dfe 60
mbed_official 15:a81a8d6c1dfe 61 rtc_count_enable(&rtc_instance);
mbed_official 15:a81a8d6c1dfe 62 rtc_inited = 1;
mbed_official 15:a81a8d6c1dfe 63 }
mbed_official 15:a81a8d6c1dfe 64
mbed_official 15:a81a8d6c1dfe 65 /** Frees the RTC
mbed_official 15:a81a8d6c1dfe 66 *
mbed_official 15:a81a8d6c1dfe 67 * @param[void] void
mbed_official 15:a81a8d6c1dfe 68 */
mbed_official 15:a81a8d6c1dfe 69 void rtc_free(void)
mbed_official 15:a81a8d6c1dfe 70 {
mbed_official 15:a81a8d6c1dfe 71 if (rtc_inited) {
mbed_official 15:a81a8d6c1dfe 72 /* Disable the RTC module */
mbed_official 15:a81a8d6c1dfe 73 rtc_count_disable(&rtc_instance);
mbed_official 15:a81a8d6c1dfe 74 /* Disable the RTC clock */
mbed_official 18:da299f395b9e 75 #if (SAMD21) || (SAMR21)
mbed_official 15:a81a8d6c1dfe 76 system_gclk_chan_disable(RTC_GCLK_ID);
mbed_official 18:da299f395b9e 77 #elif (SAML21)
mbed_official 18:da299f395b9e 78 system_gclk_chan_disable(RTC_CLOCK_SOURCE);
mbed_official 18:da299f395b9e 79 #endif
mbed_official 15:a81a8d6c1dfe 80 rtc_inited = 0;
mbed_official 15:a81a8d6c1dfe 81 }
mbed_official 15:a81a8d6c1dfe 82 }
mbed_official 15:a81a8d6c1dfe 83
mbed_official 15:a81a8d6c1dfe 84 /** Checks whether RTC is enabled or not
mbed_official 15:a81a8d6c1dfe 85 *
mbed_official 15:a81a8d6c1dfe 86 * To check whether RTC module is enabled or not
mbed_official 15:a81a8d6c1dfe 87 * @param[void] void
mbed_official 15:a81a8d6c1dfe 88 * @return Non zero if RTC is already enabled, else zero
mbed_official 15:a81a8d6c1dfe 89 */
mbed_official 15:a81a8d6c1dfe 90 int rtc_isenabled(void)
mbed_official 15:a81a8d6c1dfe 91 {
mbed_official 15:a81a8d6c1dfe 92 return rtc_inited;
mbed_official 15:a81a8d6c1dfe 93 }
mbed_official 15:a81a8d6c1dfe 94
mbed_official 15:a81a8d6c1dfe 95 /** Reads the RTC value
mbed_official 15:a81a8d6c1dfe 96 *
mbed_official 15:a81a8d6c1dfe 97 * Reads and return the current time in RTC
mbed_official 15:a81a8d6c1dfe 98 * @param[void] void
mbed_official 15:a81a8d6c1dfe 99 * @return the current value in RTC
mbed_official 15:a81a8d6c1dfe 100 */
mbed_official 15:a81a8d6c1dfe 101 time_t rtc_read(void)
mbed_official 15:a81a8d6c1dfe 102 {
mbed_official 15:a81a8d6c1dfe 103 if (!rtc_inited) {
mbed_official 15:a81a8d6c1dfe 104 /* Return invalid time for now! */
mbed_official 15:a81a8d6c1dfe 105 return 0;
mbed_official 15:a81a8d6c1dfe 106 }
mbed_official 15:a81a8d6c1dfe 107 return (time_t)rtc_count_get_count(&rtc_instance);
mbed_official 15:a81a8d6c1dfe 108 }
mbed_official 15:a81a8d6c1dfe 109
mbed_official 15:a81a8d6c1dfe 110 /** Write the RTC value
mbed_official 15:a81a8d6c1dfe 111 *
mbed_official 15:a81a8d6c1dfe 112 * Update the time value in RTC
mbed_official 15:a81a8d6c1dfe 113 * @param[in] t The time value to be written
mbed_official 15:a81a8d6c1dfe 114 * @return void
mbed_official 15:a81a8d6c1dfe 115 */
mbed_official 15:a81a8d6c1dfe 116 void rtc_write(time_t t)
mbed_official 15:a81a8d6c1dfe 117 {
mbed_official 15:a81a8d6c1dfe 118 if (!rtc_inited) {
mbed_official 15:a81a8d6c1dfe 119 /* Initialize the RTC is not yet initialized */
mbed_official 15:a81a8d6c1dfe 120 rtc_init();
mbed_official 15:a81a8d6c1dfe 121 }
mbed_official 15:a81a8d6c1dfe 122
mbed_official 15:a81a8d6c1dfe 123 uint32_t count_value = (uint32_t)t;
mbed_official 15:a81a8d6c1dfe 124 rtc_count_set_count(&rtc_instance, count_value);
mbed_official 64:41a834223ea3 125 }