sensortag: Add TI's SensorTag board.
Add support for TI's SensorTag board, which uses a CC2650 SoC. Signed-off-by: Geoffrey Le Gourriérec <geoffrey.legourrierec@smile.fr>
This commit is contained in:
parent
fdf1785775
commit
0abeba8b1a
11 changed files with 225 additions and 1 deletions
8
boards/arm/cc2650_sensortag/Kconfig
Normal file
8
boards/arm/cc2650_sensortag/Kconfig
Normal file
|
@ -0,0 +1,8 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Kconfig - TI CC2650 SensorTag configuration
|
||||
#
|
||||
|
||||
if BOARD_CC2650_SENSORTAG
|
||||
|
||||
endif # BOARD_CC2650_SENSORTAG
|
8
boards/arm/cc2650_sensortag/Kconfig.board
Normal file
8
boards/arm/cc2650_sensortag/Kconfig.board
Normal file
|
@ -0,0 +1,8 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Kconfig - TI SimpleLink CC2650 SensorTag Board
|
||||
#
|
||||
|
||||
config BOARD_CC2650_SENSORTAG
|
||||
bool "TI CC2650 SensorTag"
|
||||
depends on SOC_CC2650
|
11
boards/arm/cc2650_sensortag/Kconfig.defconfig
Normal file
11
boards/arm/cc2650_sensortag/Kconfig.defconfig
Normal file
|
@ -0,0 +1,11 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Kconfig - TI CC2650 SensorTag board configuration
|
||||
#
|
||||
|
||||
if BOARD_CC2650_SENSORTAG
|
||||
|
||||
config BOARD
|
||||
default cc2650_sensortag
|
||||
|
||||
endif # BOARD_CC2650_SENSORTAG
|
4
boards/arm/cc2650_sensortag/Makefile
Normal file
4
boards/arm/cc2650_sensortag/Makefile
Normal file
|
@ -0,0 +1,4 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# Temporary solution: always launch pinmux init
|
||||
obj-y += pinmux.o
|
58
boards/arm/cc2650_sensortag/board.h
Normal file
58
boards/arm/cc2650_sensortag/board.h
Normal file
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Board-specific information for Texas Instruments'
|
||||
* SensorTag device.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _CC2650_SENSORTAG_BOARD_H_
|
||||
#define _CC2650_SENSORTAG_BOARD_H_
|
||||
|
||||
/* Match a feature on the board to an I/O pin
|
||||
* (DIOx in local jargon)
|
||||
*/
|
||||
#define SENSORTAG_BUTTON2 0
|
||||
#define SENSORTAG_TMP_RDY 1
|
||||
#define SENSORTAG_AUDIO_D 2
|
||||
#define SENSORTAG_REED 3
|
||||
#define SENSORTAG_BUTTON1 4
|
||||
#define SENSORTAG_SDA 5
|
||||
#define SENSORTAG_SCL 6
|
||||
#define SENSORTAG_MPU_INT 7
|
||||
#define SENSORTAG_SDA_HP 8
|
||||
#define SENSORTAG_SCL_HP 9
|
||||
#define SENSORTAG_LED1 10
|
||||
#define SENSORTAG_DP7 11
|
||||
#define SENSORTAG_AUDIO_CLK SENSORTAG_DP7
|
||||
#define SENSORTAG_MPU_PWR 12
|
||||
#define SENSORTAG_MIC_PWR 13
|
||||
#define SENSORTAG_FLASH_CS 14
|
||||
#define SENSORTAG_LED2 15
|
||||
#define SENSORTAG_DP12 16
|
||||
#define SENSORTAG_AUDIO_FS SENSORTAG_DP12
|
||||
#define SENSORTAG_TDO SENSORTAG_DP12
|
||||
#define SENSORTAG_DP8 17
|
||||
#define SENSORTAG_SCLK SENSORTAG_DP8
|
||||
#define SENSORTAG_TDI SENSORTAG_DP8
|
||||
#define SENSORTAG_DP9 18
|
||||
#define SENSORTAG_MISO SENSORTAG_DP9
|
||||
#define SENSORTAG_DP10 19
|
||||
#define SENSORTAG_MOSI SENSORTAG_DP10
|
||||
#define SENSORTAG_DP11 20
|
||||
#define SENSORTAG_CSN SENSORTAG_DP11
|
||||
#define SENSORTAG_BUZZER 21
|
||||
#define SENSORTAG_DP6 22
|
||||
#define SENSORTAG_AUDIO_DO SENSORTAG_DP6
|
||||
#define SENSORTAG_DP2 23
|
||||
#define SENSORTAG_DP1 24
|
||||
#define SENSORTAG_DP0 25
|
||||
#define SENSORTAG_VDD 26
|
||||
#define SENSORTAG_DP3 27
|
||||
#define SENSORTAG_DP4 28
|
||||
#define SENSORTAG_UART_RX SENSORTAG_DP4
|
||||
#define SENSORTAG_DP5 29
|
||||
#define SENSORTAG_UART_TX SENSORTAG_DP5
|
||||
#define SENSORTAG_DP_D 30
|
||||
|
||||
#endif /* _CC2650_SENSORTAG_BOARD_H_ */
|
46
boards/arm/cc2650_sensortag/cc2650_sensortag_defconfig
Normal file
46
boards/arm/cc2650_sensortag/cc2650_sensortag_defconfig
Normal file
|
@ -0,0 +1,46 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# General options
|
||||
|
||||
CONFIG_HAS_DTS=y
|
||||
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=48000000
|
||||
CONFIG_FLASH=y
|
||||
CONFIG_FLASH_BASE_ADDRESS=0x00000000
|
||||
CONFIG_SRAM_BASE_ADDRESS=0x20000000
|
||||
CONFIG_BOOTLOADER_SRAM_SIZE=0
|
||||
CONFIG_XIP=y
|
||||
CONFIG_PRINTK=y
|
||||
|
||||
# Platform-specific options
|
||||
|
||||
CONFIG_ARM=y
|
||||
CONFIG_CORTEX_M_SYSTICK=y
|
||||
CONFIG_BOARD_CC2650_SENSORTAG=y
|
||||
CONFIG_SOC_FAMILY_TISIMPLELINK=y
|
||||
CONFIG_SOC_SERIES_CC2650=y
|
||||
CONFIG_SOC_CC2650=y
|
||||
|
||||
# Pinmux driver
|
||||
CONFIG_PINMUX=y
|
||||
CONFIG_PINMUX_CC2650=y
|
||||
CONFIG_PINMUX_CC2650_INIT_PRIO=1
|
||||
|
||||
# GPIO driver
|
||||
CONFIG_GPIO=y
|
||||
CONFIG_GPIO_CC2650=y
|
||||
CONFIG_GPIO_CC2650_INIT_PRIO=0
|
||||
|
||||
# UART driver
|
||||
CONFIG_SERIAL=y
|
||||
CONFIG_SERIAL_HAS_DRIVER=y
|
||||
CONFIG_UART_STELLARIS=y
|
||||
CONFIG_UART_STELLARIS_PORT_0=y
|
||||
|
||||
# Console driver
|
||||
CONFIG_CONSOLE=y
|
||||
CONFIG_UART_CONSOLE=y
|
||||
|
||||
# Random number generator driver
|
||||
CONFIG_RANDOM_GENERATOR=y
|
||||
CONFIG_CC2650_TRNG_RANDOM_GENERATOR=y
|
||||
CONFIG_CC2650_TRNG_IRQ_PRIO=0
|
43
boards/arm/cc2650_sensortag/pinmux.c
Normal file
43
boards/arm/cc2650_sensortag/pinmux.c
Normal file
|
@ -0,0 +1,43 @@
|
|||
/*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Board-specific pin multiplexing for Texas Instruments'
|
||||
* SensorTag device.
|
||||
*
|
||||
* For now, this only setups a default configuration
|
||||
* at initialization (not a real pinmux driver).
|
||||
*/
|
||||
|
||||
#include <toolchain/gcc.h>
|
||||
#include <init.h>
|
||||
#include <pinmux.h>
|
||||
#include <soc.h>
|
||||
|
||||
#include "board.h"
|
||||
|
||||
|
||||
static int sensortag_pinmux_init(struct device *dev)
|
||||
{
|
||||
dev = device_get_binding(CONFIG_PINMUX_NAME);
|
||||
|
||||
/* DIO10 is LED 1 */
|
||||
pinmux_pin_set(dev, SENSORTAG_LED1, CC2650_IOC_GPIO);
|
||||
pinmux_pin_input_enable(dev, SENSORTAG_LED1, PINMUX_OUTPUT_ENABLED);
|
||||
|
||||
/* DIO15 is LED 2 */
|
||||
pinmux_pin_set(dev, SENSORTAG_LED2, CC2650_IOC_GPIO);
|
||||
pinmux_pin_input_enable(dev, SENSORTAG_LED2, PINMUX_OUTPUT_ENABLED);
|
||||
|
||||
/* UART RX */
|
||||
pinmux_pin_set(dev, SENSORTAG_UART_RX, CC2650_IOC_MCU_UART0_RX);
|
||||
pinmux_pin_input_enable(dev, SENSORTAG_UART_RX, PINMUX_INPUT_ENABLED);
|
||||
|
||||
/* UART TX */
|
||||
pinmux_pin_set(dev, SENSORTAG_UART_TX, CC2650_IOC_MCU_UART0_TX);
|
||||
pinmux_pin_input_enable(dev, SENSORTAG_UART_TX, PINMUX_OUTPUT_ENABLED);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
SYS_INIT(sensortag_pinmux_init, PRE_KERNEL_1,
|
||||
CONFIG_PINMUX_INIT_PRIORITY);
|
|
@ -41,6 +41,6 @@ dtb-$(CONFIG_BOARD_SAM_E70_XPLAINED) = sam_e70_xplained.dts_compiled
|
|||
dtb-$(CONFIG_BOARD_ARDUINO_DUE) = arduino_due.dts_compiled
|
||||
dtb-$(CONFIG_BOARD_SAM4S_XPLAINED) = sam4s_xplained.dts_compiled
|
||||
dtb-$(CONFIG_BOARD_OLIMEX_STM32_E407) = olimex_stm32_e407.dts_compiled
|
||||
|
||||
dtb-$(CONFIG_BOARD_CC2650_SENSORTAG) = cc2650_sensortag.dts_compiled
|
||||
always := $(dtb-y)
|
||||
endif
|
||||
|
|
37
dts/arm/cc2650_sensortag.dts
Normal file
37
dts/arm/cc2650_sensortag.dts
Normal file
|
@ -0,0 +1,37 @@
|
|||
/* SPDX-License-Identifier: Apache-2.0 */
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "ti/cc2650.dtsi"
|
||||
|
||||
/ {
|
||||
model = "TI CC2650 SensorTag";
|
||||
compatible = "ti,cc2650";
|
||||
|
||||
aliases {
|
||||
gpio_a = &gpioa;
|
||||
pinmux_a = &pinmux_a;
|
||||
prcm0 = &prcm0;
|
||||
trng0 = &trng0;
|
||||
uart_0 = &uart0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
zephyr,sram = &sram0;
|
||||
zephyr,flash = &flash0;
|
||||
};
|
||||
};
|
||||
|
||||
&gpioa {
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
&trng0 {
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "ok";
|
||||
current-speed = <115200>;
|
||||
};
|
||||
|
8
dts/arm/cc2650_sensortag.fixup
Normal file
8
dts/arm/cc2650_sensortag.fixup
Normal file
|
@ -0,0 +1,8 @@
|
|||
#define CONFIG_NUM_IRQ_PRIO_BITS ARM_V7M_NVIC_E000E100_ARM_NUM_IRQ_PRIORITY_BITS
|
||||
|
||||
#define TI_STELLARIS_UART_4000C000_BASE_ADDRESS TI_STELLARIS_UART_40001000_BASE_ADDRESS
|
||||
#define TI_STELLARIS_UART_4000C000_CURRENT_SPEED TI_STELLARIS_UART_40001000_CURRENT_SPEED
|
||||
#define UART_STELLARIS_CLK_FREQ CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC
|
||||
#define TI_STELLARIS_UART_4000C000_IRQ_0 TI_STELLARIS_UART_40001000_IRQ_0
|
||||
#define TI_STELLARIS_UART_4000C000_IRQ_0_PRIORITY TI_STELLARIS_UART_40001000_IRQ_0_PRIORITY
|
||||
#define TI_STELLARIS_UART_4000C000_LABEL TI_STELLARIS_UART_40001000_LABEL
|
|
@ -57,6 +57,7 @@
|
|||
reg = <0x40001000 0x4C>;
|
||||
interrupts = <5 0>, <6 0>;
|
||||
status = "disabled";
|
||||
label = "UART_0";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue