Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 17 additions & 16 deletions cpu/atmega_common/periph/gpio.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/*
* Copyright (C) 2015 HAW Hamburg
* 2016 INRIA

* 2018 Acutam Automation, LLC
*
* This file is subject to the terms and conditions of the GNU Lesser
* General Public License v2.1. See the file LICENSE in the top level
Expand All @@ -19,6 +19,7 @@
* @author René Herthel <rene-herthel@outlook.de>
* @author Francisco Acosta <francisco.acosta@inria.fr>
* @author Laurent Navet <laurent.navet@gmail.com>
* @author Matthew Blue <matthew.blue.neuro@gmail.com>
*
* @}
*/
Expand Down Expand Up @@ -125,7 +126,7 @@ static inline int8_t _int_num(gpio_t pin)
return -1;
}

int gpio_init(gpio_t pin, gpio_mode_t mode)
int gpio_init_ll(gpio_t pin, gpio_mode_t mode)
{
switch (mode) {
case GPIO_OUT:
Expand All @@ -145,7 +146,7 @@ int gpio_init(gpio_t pin, gpio_mode_t mode)
return 0;
}

int gpio_init_int(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank,
int gpio_init_int_ll(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank,
gpio_cb_t cb, void *arg)
{
int8_t int_num = _int_num(pin);
Expand All @@ -165,7 +166,7 @@ int gpio_init_int(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank,
return -1;
}

gpio_init(pin, mode);
gpio_init_ll(pin, mode);

/* clear global interrupt flag */
cli();
Expand Down Expand Up @@ -196,49 +197,49 @@ int gpio_init_int(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank,
return 0;
}

void gpio_irq_enable(gpio_t pin)
void gpio_irq_enable_ll(gpio_t pin)
{
EIFR |= (1 << _int_num(pin));
EIMSK |= (1 << _int_num(pin));
}

void gpio_irq_disable(gpio_t pin)
void gpio_irq_disable_ll(gpio_t pin)
{
EIMSK &= ~(1 << _int_num(pin));
}

int gpio_read(gpio_t pin)
int gpio_read_ll(gpio_t pin)
{
return (_SFR_MEM8(_pin_addr(pin)) & (1 << _pin_num(pin)));
}

void gpio_set(gpio_t pin)
void gpio_set_ll(gpio_t pin)
{
_SFR_MEM8(_port_addr(pin)) |= (1 << _pin_num(pin));
}

void gpio_clear(gpio_t pin)
void gpio_clear_ll(gpio_t pin)
{
_SFR_MEM8(_port_addr(pin)) &= ~(1 << _pin_num(pin));
}

void gpio_toggle(gpio_t pin)
void gpio_toggle_ll(gpio_t pin)
{
if (gpio_read(pin)) {
gpio_clear(pin);
if (gpio_read_ll(pin)) {
gpio_clear_ll(pin);
}
else {
gpio_set(pin);
gpio_set_ll(pin);
}
}

void gpio_write(gpio_t pin, int value)
void gpio_write_ll(gpio_t pin, int value)
{
if (value) {
gpio_set(pin);
gpio_set_ll(pin);
}
else {
gpio_clear(pin);
gpio_clear_ll(pin);
}
}

Expand Down
22 changes: 11 additions & 11 deletions cpu/cc2538/periph/gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ static inline uint8_t _pp_num(gpio_t pin)
return (uint8_t)((_port_num(pin) * GPIO_BITS_PER_PORT) + _pin_num(pin));
}

int gpio_init(gpio_t pin, gpio_mode_t mode)
int gpio_init_ll(gpio_t pin, gpio_mode_t mode)
{
/* check if mode is valid */
if (mode == MODE_NOTSUP) {
Expand All @@ -118,10 +118,10 @@ int gpio_init(gpio_t pin, gpio_mode_t mode)
return 0;
}

int gpio_init_int(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank,
gpio_cb_t cb, void *arg)
int gpio_init_int_ll(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank,
gpio_cb_t cb, void *arg)
{
if (gpio_init(pin, mode) != 0) {
if (gpio_init_ll(pin, mode) != 0) {
return -1;
}

Expand Down Expand Up @@ -163,37 +163,37 @@ int gpio_init_int(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank,
return 0;
}

void gpio_irq_enable(gpio_t pin)
void gpio_irq_enable_ll(gpio_t pin)
{
gpio(pin)->IE |= _pin_mask(pin);
}

void gpio_irq_disable(gpio_t pin)
void gpio_irq_disable_ll(gpio_t pin)
{
gpio(pin)->IE &= ~_pin_mask(pin);
}

int gpio_read(gpio_t pin)
int gpio_read_ll(gpio_t pin)
{
return (int)(gpio(pin)->DATA & _pin_mask(pin));
}

void gpio_set(gpio_t pin)
void gpio_set_ll(gpio_t pin)
{
gpio(pin)->DATA |= _pin_mask(pin);
}

void gpio_clear(gpio_t pin)
void gpio_clear_ll(gpio_t pin)
{
gpio(pin)->DATA &= ~_pin_mask(pin);
}

void gpio_toggle(gpio_t pin)
void gpio_toggle_ll(gpio_t pin)
{
gpio(pin)->DATA ^= _pin_mask(pin);
}

void gpio_write(gpio_t pin, int value)
void gpio_write_ll(gpio_t pin, int value)
{
if (value) {
gpio(pin)->DATA |= _pin_mask(pin);
Expand Down
24 changes: 12 additions & 12 deletions cpu/cc26x0/periph/gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
*/
static gpio_isr_ctx_t gpio_chan[GPIO_ISR_CHAN_NUMOF];

int gpio_init(gpio_t pin, gpio_mode_t mode)
int gpio_init_ll(gpio_t pin, gpio_mode_t mode)
{
if ((unsigned int)pin > 31)
return -1;
Expand All @@ -51,10 +51,10 @@ int gpio_init(gpio_t pin, gpio_mode_t mode)
return 0;
}

int gpio_init_int(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank,
gpio_cb_t cb, void *arg)
int gpio_init_int_ll(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank,
gpio_cb_t cb, void *arg)
{
int init = gpio_init(pin, mode);
int init = gpio_init_ll(pin, mode);
if (init != 0)
return init;

Expand All @@ -68,22 +68,22 @@ int gpio_init_int(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank,
/* clears the interrupt flag */
GPIO->EVFLAGS |= (1 << pin);

gpio_irq_enable(pin);
gpio_irq_enable_ll(pin);

return 0;
}

void gpio_irq_enable(gpio_t pin)
void gpio_irq_enable_ll(gpio_t pin)
{
IOC->CFG[pin] |= IOCFG_EDGEIRQ_ENABLE;
}

void gpio_irq_disable(gpio_t pin)
void gpio_irq_disable_ll(gpio_t pin)
{
IOC->CFG[pin] &= ~IOCFG_EDGEIRQ_ENABLE;
}

int gpio_read(gpio_t pin)
int gpio_read_ll(gpio_t pin)
{
if (GPIO->DOE & (1 << pin)) {
return (GPIO->DOUT >> pin) & 1;
Expand All @@ -93,22 +93,22 @@ int gpio_read(gpio_t pin)
}
}

void gpio_set(gpio_t pin)
void gpio_set_ll(gpio_t pin)
{
GPIO->DOUTSET = (1 << pin);
}

void gpio_clear(gpio_t pin)
void gpio_clear_ll(gpio_t pin)
{
GPIO->DOUTCLR = (1 << pin);
}

void gpio_toggle(gpio_t pin)
void gpio_toggle_ll(gpio_t pin)
{
GPIO->DOUTTGL = (1 << pin);
}

void gpio_write(gpio_t pin, int value)
void gpio_write_ll(gpio_t pin, int value)
{
if (value) {
GPIO->DOUTSET = (1 << pin);
Expand Down
24 changes: 11 additions & 13 deletions cpu/efm32/periph/gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,7 @@
*/

#include "cpu.h"

#include "periph/gpio.h"

#include "em_gpio.h"

/**
Expand Down Expand Up @@ -52,7 +50,7 @@ static inline uint32_t _pin_mask(gpio_t pin)
return (1 << _pin_num(pin));
}

int gpio_init(gpio_t pin, gpio_mode_t mode)
int gpio_init_ll(gpio_t pin, gpio_mode_t mode)
{
/* check for valid pin */
if (pin == GPIO_UNDEF) {
Expand All @@ -72,10 +70,10 @@ int gpio_init(gpio_t pin, gpio_mode_t mode)
return 0;
}

int gpio_init_int(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank,
gpio_cb_t cb, void *arg)
int gpio_init_int_ll(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank,
gpio_cb_t cb, void *arg)
{
int result = gpio_init(pin, mode);
int result = gpio_init_ll(pin, mode);

if (result != 0) {
return result;
Expand All @@ -101,37 +99,37 @@ int gpio_init_int(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank,
return 0;
}

void gpio_irq_enable(gpio_t pin)
void gpio_irq_enable_ll(gpio_t pin)
{
GPIO_IntEnable(_pin_mask(pin));
}

void gpio_irq_disable(gpio_t pin)
void gpio_irq_disable_ll(gpio_t pin)
{
GPIO_IntDisable(_pin_mask(pin));
}

int gpio_read(gpio_t pin)
int gpio_read_ll(gpio_t pin)
{
return GPIO_PinInGet(_port_num(pin), _pin_num(pin));
}

void gpio_set(gpio_t pin)
void gpio_set_ll(gpio_t pin)
{
GPIO_PinOutSet(_port_num(pin), _pin_num(pin));
}

void gpio_clear(gpio_t pin)
void gpio_clear_ll(gpio_t pin)
{
GPIO_PinOutClear(_port_num(pin), _pin_num(pin));
}

void gpio_toggle(gpio_t pin)
void gpio_toggle_ll(gpio_t pin)
{
GPIO_PinOutToggle(_port_num(pin), _pin_num(pin));
}

void gpio_write(gpio_t pin, int value)
void gpio_write_ll(gpio_t pin, int value)
{
if (value) {
GPIO_PinOutSet(_port_num(pin), _pin_num(pin));
Expand Down
22 changes: 11 additions & 11 deletions cpu/ezr32wg/periph/gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ static inline int _pin_mask(gpio_t pin)
return (1 << _pin_pos(pin));
}

int gpio_init(gpio_t pin, gpio_mode_t mode)
int gpio_init_ll(gpio_t pin, gpio_mode_t mode)
{
GPIO_P_TypeDef *port = _port(pin);
uint32_t pin_pos = _pin_pos(pin);
Expand All @@ -80,13 +80,13 @@ int gpio_init(gpio_t pin, gpio_mode_t mode)
return 0;
}

int gpio_init_int(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank,
gpio_cb_t cb, void *arg)
int gpio_init_int_ll(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank,
gpio_cb_t cb, void *arg)
{
uint32_t pin_pos = _pin_pos(pin);

/* configure as input */
gpio_init(pin, mode);
gpio_init_ll(pin, mode);

/* just in case, disable interrupt for this channel */
GPIO->IEN &= ~(1 << pin_pos);
Expand All @@ -107,37 +107,37 @@ int gpio_init_int(gpio_t pin, gpio_mode_t mode, gpio_flank_t flank,
return 0;
}

void gpio_irq_enable(gpio_t pin)
void gpio_irq_enable_ll(gpio_t pin)
{
GPIO->IEN |= _pin_mask(pin);
}

void gpio_irq_disable(gpio_t pin)
void gpio_irq_disable_ll(gpio_t pin)
{
GPIO->IEN &= ~(_pin_mask(pin));
}

int gpio_read(gpio_t pin)
int gpio_read_ll(gpio_t pin)
{
return _port(pin)->DIN & _pin_mask(pin);
}

void gpio_set(gpio_t pin)
void gpio_set_ll(gpio_t pin)
{
_port(pin)->DOUTSET = _pin_mask(pin);
}

void gpio_clear(gpio_t pin)
void gpio_clear_ll(gpio_t pin)
{
_port(pin)->DOUTCLR = _pin_mask(pin);
}

void gpio_toggle(gpio_t pin)
void gpio_toggle_ll(gpio_t pin)
{
_port(pin)->DOUTTGL = _pin_mask(pin);
}

void gpio_write(gpio_t pin, int value)
void gpio_write_ll(gpio_t pin, int value)
{
if (value) {
_port(pin)->DOUTSET = _pin_mask(pin);
Expand Down
Loading