diff --git a/boards/arm/cc1352r1_launchxl/Kconfig.board b/boards/arm/cc1352r1_launchxl/Kconfig.board new file mode 100644 index 00000000000..5ca8b5aefb3 --- /dev/null +++ b/boards/arm/cc1352r1_launchxl/Kconfig.board @@ -0,0 +1,9 @@ +# Kconfig - TI CC1352R LaunchXL board +# +# Copyright (c) 2019 Brett Witherspoon +# +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_CC1352R1_LAUNCHXL + bool "TI CC1352R1 LaunchXL" + depends on SOC_CC1352R diff --git a/boards/arm/cc1352r1_launchxl/Kconfig.defconfig b/boards/arm/cc1352r1_launchxl/Kconfig.defconfig new file mode 100644 index 00000000000..509cb6c358f --- /dev/null +++ b/boards/arm/cc1352r1_launchxl/Kconfig.defconfig @@ -0,0 +1,12 @@ +# Kconfig - TI CC1352R LaunchXL board +# +# Copyright (c) 2019 Brett Witherspoon +# +# SPDX-License-Identifier: Apache-2.0 + +if BOARD_CC1352R1_LAUNCHXL + +config BOARD + default "cc1352r1_launchxl" + +endif # BOARD_CC1352R1_LAUNCHXL diff --git a/boards/arm/cc1352r1_launchxl/board.cmake b/boards/arm/cc1352r1_launchxl/board.cmake new file mode 100644 index 00000000000..31429e7ef63 --- /dev/null +++ b/boards/arm/cc1352r1_launchxl/board.cmake @@ -0,0 +1,5 @@ +# Copyright (c) 2019 Brett Witherspoon +# +# SPDX-License-Identifier: Apache-2.0 + +include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake) diff --git a/boards/arm/cc1352r1_launchxl/cc1352r1_launchxl.dts b/boards/arm/cc1352r1_launchxl/cc1352r1_launchxl.dts new file mode 100644 index 00000000000..86962cbf80a --- /dev/null +++ b/boards/arm/cc1352r1_launchxl/cc1352r1_launchxl.dts @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2019 Brett Witherspoon + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; + +#include + +#define BTN_GPIO_FLAGS (GPIO_INT_ACTIVE_LOW | GPIO_PUD_PULL_UP) + +/ { + model = "TI CC1352R1 LaunchXL"; + compatible = "ti,launchxl-cc1352r1"; + + aliases { + led0 = &led0; + led1 = &led1; + sw0 = &btn0; + sw1 = &btn1; + }; + + chosen { + zephyr,sram = &sram0; + zephyr,flash = &flash0; + zephyr,console = &uart0; + zephyr,shell-uart = &uart0; + }; + + leds { + compatible = "gpio-leds"; + led0: led_0 { + gpios = <&gpio0 7 0>; + label = "Green LED"; + }; + led1: led_1 { + gpios = <&gpio0 6 0>; + label = "Red LED"; + }; + }; + + keys { + compatible = "gpio-keys"; + btn0: btn_0 { + gpios = <&gpio0 15 BTN_GPIO_FLAGS>; + label = "Push button 1"; + }; + btn1: btn_1 { + gpios = <&gpio0 14 BTN_GPIO_FLAGS>; + label = "Push button 2"; + }; + }; +}; + +&gpio0 { + status = "ok"; +}; + +&uart0 { + status = "ok"; + current-speed = <115200>; + tx-pin = <13>; + rx-pin = <12>; +}; diff --git a/boards/arm/cc1352r1_launchxl/cc1352r1_launchxl.yaml b/boards/arm/cc1352r1_launchxl/cc1352r1_launchxl.yaml new file mode 100644 index 00000000000..b88892c11d1 --- /dev/null +++ b/boards/arm/cc1352r1_launchxl/cc1352r1_launchxl.yaml @@ -0,0 +1,12 @@ +identifier: cc1352r1_launchxl +name: TI SimpleLink CC1352R LaunchPad +type: mcu +arch: arm +ram: 80 +flash: 352 +toolchain: + - zephyr + - gnuarmemb + - xtools +supported: + - gpio diff --git a/boards/arm/cc1352r1_launchxl/cc1352r1_launchxl_defconfig b/boards/arm/cc1352r1_launchxl/cc1352r1_launchxl_defconfig new file mode 100644 index 00000000000..b1c65d2cd6e --- /dev/null +++ b/boards/arm/cc1352r1_launchxl/cc1352r1_launchxl_defconfig @@ -0,0 +1,18 @@ +# +# Copyright (c) 2019 Brett Witherspoon +# +# SPDX-License-Identifier: Apache-2.0 +# + +CONFIG_ARM=y +CONFIG_SOC_SERIES_CC13X2_CC26X2=y +CONFIG_SOC_CC1352R=y +CONFIG_CORTEX_M_SYSTICK=y +CONFIG_BOARD_CC1352R1_LAUNCHXL=y + +CONFIG_PINMUX=y +CONFIG_GPIO=y +CONFIG_SERIAL=y + +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y diff --git a/boards/arm/cc1352r1_launchxl/doc/img/cc1352r1_launchxl.png b/boards/arm/cc1352r1_launchxl/doc/img/cc1352r1_launchxl.png new file mode 100644 index 00000000000..8107c7ab538 Binary files /dev/null and b/boards/arm/cc1352r1_launchxl/doc/img/cc1352r1_launchxl.png differ diff --git a/boards/arm/cc1352r1_launchxl/doc/index.rst b/boards/arm/cc1352r1_launchxl/doc/index.rst new file mode 100644 index 00000000000..9f6efcc3c85 --- /dev/null +++ b/boards/arm/cc1352r1_launchxl/doc/index.rst @@ -0,0 +1,175 @@ +.. _cc1352r1_launchxl: + +CC1352R1 LaunchXL +################# + +Overview +******** + +The Texas Instruments CC1352R LaunchPad |trade| (LAUNCHXL-CC1352R1) is a +development kit for the SimpleLink |trade| multi-Standard CC1352R wireless MCU. + +See the `TI CC1352R LaunchPad Product Page`_ for details. + +.. figure:: img/cc1352r1_launchxl.png + :width: 400px + :align: center + :alt: TI CC1352R LaunchPad + + Texas Instruments CC1352R LaunchPad |trade| + +Hardware +******** + +The CC1352R LaunchPad |trade| development kit features the CC1352R wireless MCU. +The board is equipped with two LEDs, two push buttons and BoosterPack connectors +for expansion. It also includes an integrated (XDS110) debugger. + +The CC13522 wireless MCU has a 48 MHz Arm |reg| Cortex |reg|-M4F SoC and an +integrated Sub-1 and 2.4 GHz transceiver supporting multiple protocols including +Bluetooth |reg| Low Energy and IEEE |reg| 802.15.4. + +See the `TI CC1352R Product Page`_ for additional details. + +Supported Features +================== + +The CC1352R LaunchPad board configuration supports the following hardware +features: + ++-----------+------------+----------------------+ +| Interface | Controller | Driver/Component | ++===========+============+======================+ +| GPIO | on-chip | gpio | ++-----------+------------+----------------------+ +| NVIC | on-chip | arch/arm | ++-----------+------------+----------------------+ +| PINMUX | on-chip | pinmux | ++-----------+------------+----------------------+ +| UART | on-chip | serial | ++-----------+------------+----------------------+ + +Other hardware features are not supported by the Zephyr kernel. + +Connections and IOs +=================== + +All I/O signals are accessible from the BoosterPack connectors. Pin function +aligns with the LaunchPad standard. + ++-------+-----------+---------------------+ +| Pin | Function | Usage | ++=======+===========+=====================+ +| DIO3 | GPIO | | ++-------+-----------+---------------------+ +| DIO4 | I2C_MSSCL | I2C SCL | ++-------+-----------+---------------------+ +| DIO5 | I2C_MSSDA | I2C SDA | ++-------+-----------+---------------------+ +| DIO6 | GPIO | Red LED | ++-------+-----------+---------------------+ +| DIO7 | GPIO | Green LED | ++-------+-----------+---------------------+ +| DIO8 | SSI0_RX | SPI MISO | ++-------+-----------+---------------------+ +| DIO9 | SSI0_TX | SPI MOSI | ++-------+-----------+---------------------+ +| DIO10 | SSI0_CLK | SPI CLK | ++-------+-----------+---------------------+ +| DIO11 | SSIO_CS | SPI CS | ++-------+-----------+---------------------+ +| DIO12 | UART0_RX | UART RXD | ++-------+-----------+---------------------+ +| DIO13 | UART0_TX | UART TXD | ++-------+-----------+---------------------+ +| DIO14 | GPIO | Button 2 | ++-------+-----------+---------------------+ +| DIO15 | GPIO | Button 1 | ++-------+-----------+---------------------+ +| DIO16 | | JTAG TDO | ++-------+-----------+---------------------+ +| DIO17 | | JTAG TDI | ++-------+-----------+---------------------+ +| DIO18 | UART0_RTS | UART RTS / JTAG SWO | ++-------+-----------+---------------------+ +| DIO19 | UART0_CTS | UART CTS | ++-------+-----------+---------------------+ +| DIO20 | GPIO | Flash CS | ++-------+-----------+---------------------+ +| DIO21 | GPIO | | ++-------+-----------+---------------------+ +| DIO22 | GPIO | | ++-------+-----------+---------------------+ +| DIO23 | AUX_IO | A0 | ++-------+-----------+---------------------+ +| DIO24 | AUX_IO | A1 | ++-------+-----------+---------------------+ +| DIO25 | AUX_IO | A2 | ++-------+-----------+---------------------+ +| DIO26 | AUX_IO | A3 | ++-------+-----------+---------------------+ +| DIO27 | AUX_IO | A4 | ++-------+-----------+---------------------+ +| DIO28 | AUX_IO | A5 | ++-------+-----------+---------------------+ +| DIO29 | AUX_IO | A6 | ++-------+-----------+---------------------+ +| DIO30 | AUX_IO | A7 | ++-------+-----------+---------------------+ + +Programming and Debugging +************************* + +Before flashing or debugging ensure the RESET, TMS, TCK, TDO, and TDI jumpers +are in place. Also place jumpers on the the TXD and RXD signals for a serial +console using the XDS110 application serial port. + +Flashing +======== + +Applications for the ``CC1352R LaunchPad`` board configuration can be built and +flashed in the usual way (see :ref:`build_an_application` and +:ref:`application_run` for more details). + +Here is an example for the :ref:`hello_world` application. + +First, run your favorite terminal program to listen for output. + +.. code-block:: console + + $ screen 115200 + +Replace :code:`` with the port where the XDS110 application +serial device can be found. For example, :code:`/dev/ttyACM0`. + +Then build and flash the application in the usual way. + +.. zephyr-app-commands:: + :zephyr-app: samples/hello_world + :board: cc1352r1_launchxl + :goals: build flash + +Debugging +========= + +You can debug an application in the usual way. Here is an example for the +:ref:`hello_world` application. + +.. zephyr-app-commands:: + :zephyr-app: samples/hello_world + :board: cc1352r1_launchxl + :maybe-skip-config: + :goals: debug + + +References +********** + +CC1352R1 LaunchPad Quick Start Guide: + http://www.ti.com/lit/pdf/swru525 + +.. _TI CC1352R LaunchPad Product Page: + http://www.ti.com/tool/launchxl-cc1352r1 + +.. _TI CC1352R Product Page: + http://www.ti.com/product/cc1352r diff --git a/boards/arm/cc1352r1_launchxl/support/openocd.cfg b/boards/arm/cc1352r1_launchxl/support/openocd.cfg new file mode 100644 index 00000000000..017bb64263b --- /dev/null +++ b/boards/arm/cc1352r1_launchxl/support/openocd.cfg @@ -0,0 +1 @@ +source [find board/ti_cc13x2_launchpad.cfg]