/* * Copyright (C) 2015 Freie Universität Berlin * * 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 * directory for more details. */ /** * @ingroup cpu_cc2538 * @{ * * @file * @brief CPU specific definitions for internal peripheral handling * * @author Hauke Petersen */ #ifndef PERIPH_CPU_H_ #define PERIPH_CPU_H_ #include #include "cc2538_gptimer.h" #include "cc2538_ssi.h" #include "cc2538_gpio.h" #ifdef __cplusplus extern "C" { #endif /** * @brief Length of the CPU_ID in octets */ #define CPUID_LEN (8U) /** * @brief Define a custom type for GPIO pins * @{ */ #define HAVE_GPIO_T typedef uint32_t gpio_t; #define GPIO_PIN(port_num, bit_num) GPIO_PXX_TO_NUM(port_num, bit_num) /** @} */ /** * @brief Definition of a fitting UNDEF value */ #define GPIO_UNDEF (0xffffffff) /** * @brief declare needed generic SPI functions * @{ */ #define PERIPH_SPI_NEEDS_TRANSFER_REG #define PERIPH_SPI_NEEDS_TRANSFER_REGS /** @} */ typedef struct { gpio_t scl_pin; /**< pin used for SCL */ gpio_t sda_pin; /**< pin used for SDA */ } i2c_conf_t; /** * @brief SPI configuration data structure */ #define HAVE_PERIPH_SPI_CONF_T typedef struct { cc2538_ssi_t *dev; /**< SSI device */ gpio_t mosi_pin; /**< pin used for MOSI */ gpio_t miso_pin; /**< pin used for MISO */ gpio_t sck_pin; /**< pin used for SCK */ gpio_t cs_pin; /**< pin used for CS */ } periph_spi_conf_t; /** * @brief Timer configuration data */ typedef struct { cc2538_gptimer_t *dev; /**< timer device */ uint_fast8_t channels; /**< number of channels */ uint_fast8_t cfg; /**< timer config word */ } timer_conf_t; #ifdef __cplusplus } #endif #include "periph/dev_enums.h" #endif /* PERIPH_CPU_H_ */ /** @} */