Implement the new LED HAL (Sensortag CC26xx/CC13xx)

This commit is contained in:
George Oikonomou 2018-02-25 20:46:13 +00:00
parent 877c758aaf
commit ab710a8ed0
6 changed files with 22 additions and 117 deletions

View File

@ -1,6 +1,3 @@
### Add to the source list
BOARD_SOURCEFILES += leds-arch.c
### Will allow the inclusion of the correct CPU makefile ### Will allow the inclusion of the correct CPU makefile
CPU_FAMILY = cc13xx CPU_FAMILY = cc13xx

View File

@ -58,20 +58,13 @@
#include "ioc.h" #include "ioc.h"
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \name LED configurations * \name LED HAL configuration
* *
* Those values are not meant to be modified by the user * Those values are not meant to be modified by the user
* @{ * @{
*/ */
#define LEDS_RED 1 #define LEDS_CONF_COUNT 1
#define LEDS_GREEN LEDS_RED #define LEDS_CONF_RED 1
#define LEDS_YELLOW LEDS_RED
#define LEDS_ORANGE LEDS_RED
#define LEDS_CONF_ALL 1
/* Notify various examples that we have LEDs */
#define PLATFORM_HAS_LEDS 1
/** @} */ /** @} */
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
@ -81,8 +74,6 @@
* @{ * @{
*/ */
#define BOARD_IOID_LED_1 IOID_10 #define BOARD_IOID_LED_1 IOID_10
#define BOARD_LED_1 (1 << BOARD_IOID_LED_1)
#define BOARD_LED_ALL BOARD_LED_1
/** @} */ /** @} */
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**

View File

@ -1,10 +1,11 @@
/* /*
* Copyright (c) 2014, Texas Instruments Incorporated - http://www.ti.com/ * Copyright (c) 2018, George Oikonomou - http://www.spd.gr
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions * modification, are permitted provided that the following conditions
* are met: * are met:
*
* 1. Redistributions of source code must retain the above copyright * 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer. * notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright * 2. Redistributions in binary form must reproduce the above copyright
@ -28,50 +29,15 @@
* OF THE POSSIBILITY OF SUCH DAMAGE. * OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/**
* \addtogroup sensortag-cc13xx-peripherals
* @{
*
* \file
* Driver for the Sensortag-CC1350 LEDs
*/
/*---------------------------------------------------------------------------*/
#include "contiki.h" #include "contiki.h"
#include "dev/leds.h" #include "dev/leds.h"
#include "dev/gpio-hal.h"
#include "ti-lib.h" #include <stdbool.h>
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static unsigned char c; const leds_t leds_arch_leds[] = {
static int inited = 0; { .pin = BOARD_IOID_LED_1, .negative_logic = false },
};
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void
leds_arch_init(void)
{
if(inited) {
return;
}
inited = 1;
ti_lib_rom_ioc_pin_type_gpio_output(BOARD_IOID_LED_1);
ti_lib_gpio_clear_multi_dio(BOARD_LED_ALL);
}
/*---------------------------------------------------------------------------*/
unsigned char
leds_arch_get(void)
{
return c;
}
/*---------------------------------------------------------------------------*/
void
leds_arch_set(unsigned char leds)
{
c = leds;
ti_lib_gpio_clear_dio(BOARD_IOID_LED_1);
if((leds & LEDS_RED) == LEDS_RED) {
ti_lib_gpio_set_dio(BOARD_IOID_LED_1);
}
}
/*---------------------------------------------------------------------------*/
/** @} */

View File

@ -1,6 +1,3 @@
### Add to the source list
BOARD_SOURCEFILES += leds-arch.c
### Will allow the inclusion of the correct CPU makefile ### Will allow the inclusion of the correct CPU makefile
CPU_FAMILY = cc26xx CPU_FAMILY = cc26xx

View File

@ -58,20 +58,14 @@
#include "ioc.h" #include "ioc.h"
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
* \name LED configurations * \name LED HAL configuration
* *
* Those values are not meant to be modified by the user * Those values are not meant to be modified by the user
* @{ * @{
*/ */
#define LEDS_RED 1 #define LEDS_CONF_COUNT 2
#define LEDS_GREEN 2 #define LEDS_CONF_RED 1
#define LEDS_YELLOW LEDS_GREEN #define LEDS_CONF_GREEN 2
#define LEDS_ORANGE LEDS_RED
#define LEDS_CONF_ALL 3
/* Notify various examples that we have LEDs */
#define PLATFORM_HAS_LEDS 1
/** @} */ /** @} */
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**
@ -82,9 +76,6 @@
*/ */
#define BOARD_IOID_LED_1 IOID_10 #define BOARD_IOID_LED_1 IOID_10
#define BOARD_IOID_LED_2 IOID_15 #define BOARD_IOID_LED_2 IOID_15
#define BOARD_LED_1 (1 << BOARD_IOID_LED_1)
#define BOARD_LED_2 (1 << BOARD_IOID_LED_2)
#define BOARD_LED_ALL (BOARD_LED_1 | BOARD_LED_2)
/** @} */ /** @} */
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/** /**

View File

@ -1,10 +1,11 @@
/* /*
* Copyright (c) 2014, Texas Instruments Incorporated - http://www.ti.com/ * Copyright (c) 2018, George Oikonomou - http://www.spd.gr
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions * modification, are permitted provided that the following conditions
* are met: * are met:
*
* 1. Redistributions of source code must retain the above copyright * 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer. * notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright * 2. Redistributions in binary form must reproduce the above copyright
@ -28,54 +29,16 @@
* OF THE POSSIBILITY OF SUCH DAMAGE. * OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
/**
* \addtogroup sensortag-cc26xx-peripherals
* @{
*
* \file
* Driver for the Sensortag-CC26XX LEDs
*/
/*---------------------------------------------------------------------------*/
#include "contiki.h" #include "contiki.h"
#include "dev/leds.h" #include "dev/leds.h"
#include "dev/gpio-hal.h"
#include "ti-lib.h" #include <stdbool.h>
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static unsigned char c; const leds_t leds_arch_leds[] = {
static int inited = 0; { .pin = BOARD_IOID_LED_1, .negative_logic = false },
{ .pin = BOARD_IOID_LED_2, .negative_logic = false },
};
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void
leds_arch_init(void)
{
if(inited) {
return;
}
inited = 1;
ti_lib_rom_ioc_pin_type_gpio_output(BOARD_IOID_LED_1);
ti_lib_rom_ioc_pin_type_gpio_output(BOARD_IOID_LED_2);
ti_lib_gpio_clear_multi_dio(BOARD_LED_ALL);
}
/*---------------------------------------------------------------------------*/
unsigned char
leds_arch_get(void)
{
return c;
}
/*---------------------------------------------------------------------------*/
void
leds_arch_set(unsigned char leds)
{
c = leds;
ti_lib_gpio_clear_multi_dio(BOARD_LED_ALL);
if((leds & LEDS_RED) == LEDS_RED) {
ti_lib_gpio_set_dio(BOARD_IOID_LED_1);
}
if((leds & LEDS_YELLOW) == LEDS_YELLOW) {
ti_lib_gpio_set_dio(BOARD_IOID_LED_2);
}
}
/*---------------------------------------------------------------------------*/
/** @} */