cc2538: gpio: Use accessor macros
Use the GPIO accessor macros instead of copying raw register access code all over the place. This is cleaner and less error prone. This fixes the setting of the USB pull-up resistor that worked only by chance on the CC2538DK because it is controlled by the pin 0 of the used GPIO port. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
This commit is contained in:
parent
923f161b7b
commit
680050861c
4 changed files with 13 additions and 14 deletions
|
@ -89,7 +89,7 @@ gpio_port_a_isr()
|
|||
|
||||
notify(REG(GPIO_A_BASE | GPIO_MIS), GPIO_A_NUM);
|
||||
|
||||
REG(GPIO_A_BASE | GPIO_IC) = 0xFF;
|
||||
GPIO_CLEAR_INTERRUPT(GPIO_A_BASE, 0xFF);
|
||||
|
||||
ENERGEST_OFF(ENERGEST_TYPE_IRQ);
|
||||
}
|
||||
|
@ -104,7 +104,7 @@ gpio_port_b_isr()
|
|||
|
||||
notify(REG(GPIO_B_BASE | GPIO_MIS), GPIO_B_NUM);
|
||||
|
||||
REG(GPIO_B_BASE | GPIO_IC) = 0xFF;
|
||||
GPIO_CLEAR_INTERRUPT(GPIO_B_BASE, 0xFF);
|
||||
|
||||
ENERGEST_OFF(ENERGEST_TYPE_IRQ);
|
||||
}
|
||||
|
@ -119,7 +119,7 @@ gpio_port_c_isr()
|
|||
|
||||
notify(REG(GPIO_C_BASE | GPIO_MIS), GPIO_C_NUM);
|
||||
|
||||
REG(GPIO_C_BASE | GPIO_IC) = 0xFF;
|
||||
GPIO_CLEAR_INTERRUPT(GPIO_C_BASE, 0xFF);
|
||||
|
||||
ENERGEST_OFF(ENERGEST_TYPE_IRQ);
|
||||
}
|
||||
|
@ -134,7 +134,7 @@ gpio_port_d_isr()
|
|||
|
||||
notify(REG(GPIO_D_BASE | GPIO_MIS), GPIO_D_NUM);
|
||||
|
||||
REG(GPIO_D_BASE | GPIO_IC) = 0xFF;
|
||||
GPIO_CLEAR_INTERRUPT(GPIO_D_BASE, 0xFF);
|
||||
|
||||
ENERGEST_OFF(ENERGEST_TYPE_IRQ);
|
||||
}
|
||||
|
|
|
@ -317,7 +317,7 @@ usb_arch_setup(void)
|
|||
|
||||
/* Enable pull-up on usb port */
|
||||
GPIO_SET_OUTPUT(USB_PULLUP_PORT, USB_PULLUP_PIN_MASK);
|
||||
REG((USB_PULLUP_PORT | GPIO_DATA) + (USB_PULLUP_PIN_MASK << 2)) = 1;
|
||||
GPIO_SET_PIN(USB_PULLUP_PORT, USB_PULLUP_PIN_MASK);
|
||||
|
||||
for(i = 0; i < USB_MAX_ENDPOINTS; i++) {
|
||||
usb_endpoints[i].flags = 0;
|
||||
|
|
|
@ -99,7 +99,7 @@
|
|||
*/
|
||||
#define USB_PULLUP_PORT GPIO_C_BASE
|
||||
#define USB_PULLUP_PIN 0
|
||||
#define USB_PULLUP_PIN_MASK (1 << USB_PULLUP_PIN)
|
||||
#define USB_PULLUP_PIN_MASK GPIO_PIN_MASK(USB_PULLUP_PIN)
|
||||
/** @} */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/** \name UART configuration
|
||||
|
@ -143,35 +143,35 @@
|
|||
#define BUTTON_SELECT_PORT_NO GPIO_A_NUM
|
||||
#define BUTTON_SELECT_PIN 3
|
||||
#define BUTTON_SELECT_PORT GPIO_A_BASE
|
||||
#define BUTTON_SELECT_PIN_MASK (1 << BUTTON_SELECT_PIN)
|
||||
#define BUTTON_SELECT_PIN_MASK GPIO_PIN_MASK(BUTTON_SELECT_PIN)
|
||||
#define BUTTON_SELECT_VECTOR NVIC_INT_GPIO_PORT_A
|
||||
|
||||
/** BUTTON_LEFT -> PC4 */
|
||||
#define BUTTON_LEFT_PORT_NO GPIO_C_NUM
|
||||
#define BUTTON_LEFT_PIN 4
|
||||
#define BUTTON_LEFT_PORT GPIO_C_BASE
|
||||
#define BUTTON_LEFT_PIN_MASK (1 << BUTTON_LEFT_PIN)
|
||||
#define BUTTON_LEFT_PIN_MASK GPIO_PIN_MASK(BUTTON_LEFT_PIN)
|
||||
#define BUTTON_LEFT_VECTOR NVIC_INT_GPIO_PORT_C
|
||||
|
||||
/** BUTTON_RIGHT -> PC5 */
|
||||
#define BUTTON_RIGHT_PORT_NO GPIO_C_NUM
|
||||
#define BUTTON_RIGHT_PIN 5
|
||||
#define BUTTON_RIGHT_PORT GPIO_C_BASE
|
||||
#define BUTTON_RIGHT_PIN_MASK (1 << BUTTON_RIGHT_PIN)
|
||||
#define BUTTON_RIGHT_PIN_MASK GPIO_PIN_MASK(BUTTON_RIGHT_PIN)
|
||||
#define BUTTON_RIGHT_VECTOR NVIC_INT_GPIO_PORT_C
|
||||
|
||||
/** BUTTON_UP -> PC6 */
|
||||
#define BUTTON_UP_PORT_NO GPIO_C_NUM
|
||||
#define BUTTON_UP_PIN 6
|
||||
#define BUTTON_UP_PORT GPIO_C_BASE
|
||||
#define BUTTON_UP_PIN_MASK (1 << BUTTON_UP_PIN)
|
||||
#define BUTTON_UP_PIN_MASK GPIO_PIN_MASK(BUTTON_UP_PIN)
|
||||
#define BUTTON_UP_VECTOR NVIC_INT_GPIO_PORT_C
|
||||
|
||||
/** BUTTON_DOWN -> PC7 */
|
||||
#define BUTTON_DOWN_PORT_NO GPIO_C_NUM
|
||||
#define BUTTON_DOWN_PIN 7
|
||||
#define BUTTON_DOWN_PORT GPIO_C_BASE
|
||||
#define BUTTON_DOWN_PIN_MASK (1 << BUTTON_DOWN_PIN)
|
||||
#define BUTTON_DOWN_PIN_MASK GPIO_PIN_MASK(BUTTON_DOWN_PIN)
|
||||
#define BUTTON_DOWN_VECTOR NVIC_INT_GPIO_PORT_C
|
||||
|
||||
/* Notify various examples that we have Buttons */
|
||||
|
|
|
@ -45,7 +45,6 @@
|
|||
#include "dev/leds.h"
|
||||
#include "dev/gpio.h"
|
||||
|
||||
#define LEDS_GPIO_DATA_MASK (LEDS_ALL << 2)
|
||||
#define LEDS_GPIO_PIN_MASK LEDS_ALL
|
||||
/*---------------------------------------------------------------------------*/
|
||||
void
|
||||
|
@ -57,13 +56,13 @@ leds_arch_init(void)
|
|||
unsigned char
|
||||
leds_arch_get(void)
|
||||
{
|
||||
return REG((GPIO_C_BASE | GPIO_DATA) + LEDS_GPIO_DATA_MASK);
|
||||
return GPIO_READ_PIN(GPIO_C_BASE, LEDS_GPIO_PIN_MASK);
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
void
|
||||
leds_arch_set(unsigned char leds)
|
||||
{
|
||||
REG((GPIO_C_BASE | GPIO_DATA) + LEDS_GPIO_DATA_MASK) = leds;
|
||||
GPIO_WRITE_PIN(GPIO_C_BASE, LEDS_GPIO_PIN_MASK, leds);
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
|
|
Loading…
Reference in a new issue