mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Thu Apr 16 11:45:13 2015 +0100
Revision:
514:7668256dbe61
Synchronized with git revision 29ab478a78892415a3c721cdc20b1755b7b01ba1

Full URL: https://github.com/mbedmicro/mbed/commit/29ab478a78892415a3c721cdc20b1755b7b01ba1/

LPC824, SSCI824 - Add GCC_ARM exporter support

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 514:7668256dbe61 1 /*******************************************************************************
mbed_official 514:7668256dbe61 2 * Copyright (C) 2015 Maxim Integrated Products, Inc., All Rights Reserved.
mbed_official 514:7668256dbe61 3 *
mbed_official 514:7668256dbe61 4 * Permission is hereby granted, free of charge, to any person obtaining a
mbed_official 514:7668256dbe61 5 * copy of this software and associated documentation files (the "Software"),
mbed_official 514:7668256dbe61 6 * to deal in the Software without restriction, including without limitation
mbed_official 514:7668256dbe61 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
mbed_official 514:7668256dbe61 8 * and/or sell copies of the Software, and to permit persons to whom the
mbed_official 514:7668256dbe61 9 * Software is furnished to do so, subject to the following conditions:
mbed_official 514:7668256dbe61 10 *
mbed_official 514:7668256dbe61 11 * The above copyright notice and this permission notice shall be included
mbed_official 514:7668256dbe61 12 * in all copies or substantial portions of the Software.
mbed_official 514:7668256dbe61 13 *
mbed_official 514:7668256dbe61 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
mbed_official 514:7668256dbe61 15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
mbed_official 514:7668256dbe61 16 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
mbed_official 514:7668256dbe61 17 * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
mbed_official 514:7668256dbe61 18 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
mbed_official 514:7668256dbe61 19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
mbed_official 514:7668256dbe61 20 * OTHER DEALINGS IN THE SOFTWARE.
mbed_official 514:7668256dbe61 21 *
mbed_official 514:7668256dbe61 22 * Except as contained in this notice, the name of Maxim Integrated
mbed_official 514:7668256dbe61 23 * Products, Inc. shall not be used except as stated in the Maxim Integrated
mbed_official 514:7668256dbe61 24 * Products, Inc. Branding Policy.
mbed_official 514:7668256dbe61 25 *
mbed_official 514:7668256dbe61 26 * The mere transfer of this software does not imply any licenses
mbed_official 514:7668256dbe61 27 * of trade secrets, proprietary technology, copyrights, patents,
mbed_official 514:7668256dbe61 28 * trademarks, maskwork rights, or any other form of intellectual
mbed_official 514:7668256dbe61 29 * property whatsoever. Maxim Integrated Products, Inc. retains all
mbed_official 514:7668256dbe61 30 * ownership rights.
mbed_official 514:7668256dbe61 31 *******************************************************************************
mbed_official 514:7668256dbe61 32 */
mbed_official 514:7668256dbe61 33
mbed_official 514:7668256dbe61 34 #include "mbed_assert.h"
mbed_official 514:7668256dbe61 35 #include "gpio_api.h"
mbed_official 514:7668256dbe61 36 #include "pinmap.h"
mbed_official 514:7668256dbe61 37 #include "gpio_regs.h"
mbed_official 514:7668256dbe61 38 #include "clkman_regs.h"
mbed_official 514:7668256dbe61 39
mbed_official 514:7668256dbe61 40 uint32_t gpio_set(PinName name)
mbed_official 514:7668256dbe61 41 {
mbed_official 514:7668256dbe61 42 MBED_ASSERT(name != (PinName)NC);
mbed_official 514:7668256dbe61 43 pin_function(name, 0);
mbed_official 514:7668256dbe61 44 return 1 << PINNAME_TO_PIN(name);
mbed_official 514:7668256dbe61 45 }
mbed_official 514:7668256dbe61 46
mbed_official 514:7668256dbe61 47 void gpio_init(gpio_t *obj, PinName name)
mbed_official 514:7668256dbe61 48 {
mbed_official 514:7668256dbe61 49 obj->name = name;
mbed_official 514:7668256dbe61 50 if (name == (PinName)NC) {
mbed_official 514:7668256dbe61 51 return;
mbed_official 514:7668256dbe61 52 }
mbed_official 514:7668256dbe61 53
mbed_official 514:7668256dbe61 54 unsigned int port = PINNAME_TO_PORT(name);
mbed_official 514:7668256dbe61 55 unsigned int pin = PINNAME_TO_PIN(name);
mbed_official 514:7668256dbe61 56
mbed_official 514:7668256dbe61 57 obj->reg_out = (uint32_t*)BITBAND(&MXC_GPIO->out_val[port], pin);
mbed_official 514:7668256dbe61 58 obj->reg_in = (uint32_t*)BITBAND(&MXC_GPIO->in_val[port], pin);
mbed_official 514:7668256dbe61 59
mbed_official 514:7668256dbe61 60 /* Ensure that the GPIO clock is enabled */
mbed_official 514:7668256dbe61 61 if (MXC_CLKMAN->clk_ctrl_1_gpio == MXC_E_CLKMAN_CLK_SCALE_DISABLED) {
mbed_official 514:7668256dbe61 62 MXC_CLKMAN->clk_ctrl_1_gpio = MXC_E_CLKMAN_CLK_SCALE_ENABLED;
mbed_official 514:7668256dbe61 63 }
mbed_official 514:7668256dbe61 64 }
mbed_official 514:7668256dbe61 65
mbed_official 514:7668256dbe61 66 void gpio_mode(gpio_t *obj, PinMode mode)
mbed_official 514:7668256dbe61 67 {
mbed_official 514:7668256dbe61 68 pin_mode(obj->name, mode);
mbed_official 514:7668256dbe61 69 }
mbed_official 514:7668256dbe61 70
mbed_official 514:7668256dbe61 71 void pin_dir(PinName name, PinDirection direction)
mbed_official 514:7668256dbe61 72 {
mbed_official 514:7668256dbe61 73 MBED_ASSERT(name != (PinName)NC);
mbed_official 514:7668256dbe61 74
mbed_official 514:7668256dbe61 75 unsigned int port = PINNAME_TO_PORT(name);
mbed_official 514:7668256dbe61 76 unsigned int pin = PINNAME_TO_PIN(name);
mbed_official 514:7668256dbe61 77
mbed_official 514:7668256dbe61 78 /* Set function */
mbed_official 514:7668256dbe61 79 MXC_GPIO->func_sel[port] &= ~(0xF << (4 * pin));
mbed_official 514:7668256dbe61 80
mbed_official 514:7668256dbe61 81 /* Normal input is always enabled */
mbed_official 514:7668256dbe61 82 MXC_GPIO->in_mode[port] &= ~(0xF << (4 * pin));
mbed_official 514:7668256dbe61 83
mbed_official 514:7668256dbe61 84 /* Set requested output mode */
mbed_official 514:7668256dbe61 85 uint32_t out_mode = MXC_GPIO->out_mode[port];
mbed_official 514:7668256dbe61 86 out_mode &= ~(0xF << (4 * pin));
mbed_official 514:7668256dbe61 87 out_mode |= (direction << (4 * pin));
mbed_official 514:7668256dbe61 88 MXC_GPIO->out_mode[port] = out_mode;
mbed_official 514:7668256dbe61 89 }
mbed_official 514:7668256dbe61 90
mbed_official 514:7668256dbe61 91 void gpio_dir(gpio_t *obj, PinDirection direction)
mbed_official 514:7668256dbe61 92 {
mbed_official 514:7668256dbe61 93 pin_dir(obj->name, direction);
mbed_official 514:7668256dbe61 94 }