boards: ti: Create a common folder to share code between boards

This creates a common folder in order to share code between similar
boards. This is mostly for the CC1352P1 and CC1352P7 launchpad which
are very similar but it could be probably useful for some other boards.

Signed-off-by: Alexandre Bailon <abailon@baylibre.com>
This commit is contained in:
Alexandre Bailon 2024-05-31 12:02:33 +02:00 committed by Anas Nashif
commit 200e8d481f
19 changed files with 288 additions and 585 deletions

View file

@ -1,4 +1,3 @@
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
zephyr_library() add_subdirectory(${ZEPHYR_BASE}/boards/ti/common/ ${CMAKE_CURRENT_BINARY_DIR}/common)
zephyr_library_sources(board_antenna.c)

View file

@ -1,16 +1,6 @@
# TI CC1352R LaunchXL board # TI CC1352R LaunchXL board
# Copyright (c) 2021 Florin Stancu # Copyright (c) 2024 Alexandre Bailon
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
if BOARD_CC1352P1_LAUNCHXL source "boards/ti/common/Kconfig"
config BOARD_ANTENNA_INIT_PRIO
int "Board antenna switch initialization priority"
default 70
help
Set the priority for board init, must be greater than
KERNEL_INIT_PRIORITY_DEVICE but smaller than
IEEE802154_CC13XX_CC26XX_SUB_GHZ_INIT_PRIO.
endif # BOARD_CC1352P1_LAUNCHXL

View file

@ -1,87 +0,0 @@
/*
* Copyright (c) 2022 Vaishnav Achath
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr/dt-bindings/pinctrl/cc13xx_cc26xx-pinctrl.h>
&pinctrl {
/* UART0 */
uart0_tx_default: uart0_tx_default {
pinmux = <13 IOC_PORT_MCU_UART0_TX>;
bias-disable;
};
uart0_rx_default: uart0_rx_default {
pinmux = <12 IOC_PORT_MCU_UART0_RX>;
bias-disable;
input-enable;
};
/* I2C0 */
i2c0_scl_default: i2c0_scl_default {
pinmux = <4 IOC_PORT_MCU_I2C_MSSCL>;
bias-pull-up;
drive-open-drain;
input-enable;
};
i2c0_sda_default: i2c0_sda_default {
pinmux = <5 IOC_PORT_MCU_I2C_MSSDA>;
bias-pull-up;
drive-open-drain;
input-enable;
};
i2c0_scl_sleep: i2c0_scl_sleep {
pinmux = <4 IOC_PORT_GPIO>;
bias-disable;
};
i2c0_sda_sleep: i2c0_sda_sleep {
pinmux = <5 IOC_PORT_GPIO>;
bias-disable;
};
/* SPI0 */
spi0_sck_default: spi0_sck_default {
pinmux = <10 IOC_PORT_MCU_SSI0_CLK>;
bias-disable;
};
spi0_mosi_default: spi0_mosi_default {
pinmux = <9 IOC_PORT_MCU_SSI0_TX>;
bias-disable;
};
spi0_miso_default: spi0_miso_default {
pinmux = <8 IOC_PORT_MCU_SSI0_RX>;
bias-disable;
input-enable;
};
spi0_cs_default: spi0_cs_default {
pinmux = <11 IOC_PORT_MCU_SSI0_FSS>;
bias-disable;
};
/* On-board antenna pinmux states */
board_ant_24g_off: board_ant_24g_off {
pinmux = <28 IOC_PORT_GPIO>;
bias-disable;
};
board_ant_24g_on: board_ant_24g_on {
pinmux = <28 IOC_PORT_RFC_GPO0>;
bias-disable;
};
board_ant_tx_pa_off: board_ant_tx_pa_off {
pinmux = <29 IOC_PORT_GPIO>;
bias-disable;
};
board_ant_tx_pa_on: board_ant_tx_pa_on {
pinmux = <29 IOC_PORT_RFC_GPO3>;
bias-disable;
};
board_ant_subg_off: board_ant_subg_off {
pinmux = <30 IOC_PORT_GPIO>;
bias-disable;
};
board_ant_subg_on: board_ant_subg_on {
pinmux = <30 IOC_PORT_RFC_GPO0>;
bias-disable;
};
};

View file

@ -7,163 +7,11 @@
/dts-v1/; /dts-v1/;
#include <ti/cc1352r.dtsi> #include <ti/cc1352r.dtsi>
#include "../cc1352r1_launchxl/boosterpack_connector.dtsi" #include "../common/launchxl.dtsi"
#include "cc1352p1_launchxl-pinctrl.dtsi" #include "../common/launchxl-flash.dtsi"
#include <zephyr/dt-bindings/input/input-event-codes.h> #include "../common/launchxl_sky13317.dtsi"
/ { / {
model = "TI CC1352P1 LaunchXL"; model = "TI CC1352P1 LaunchXL";
compatible = "ti,launchxl-cc1352p1"; compatible = "ti,launchxl-cc1352p1";
aliases {
led0 = &led0;
led1 = &led1;
sw0 = &btn0;
sw1 = &btn1;
watchdog0 = &wdt0;
mcuboot-led0 = &led1;
mcuboot-button0 = &btn1;
};
chosen {
zephyr,sram = &sram0;
zephyr,flash = &flash0;
zephyr,console = &uart0;
zephyr,shell-uart = &uart0;
zephyr,ieee802154 = &ieee802154;
zephyr,code-partition = &slot0_partition;
};
/**
* The CC1352P LAUNCHXL has an on-board antenna switch (SKY13317-373LF) used to select the
* appropriate RF signal port based on the currently-used PHY.
*
* Truth table:
*
* Path DIO28 DIO29 DIO30
* =========== ===== ===== =====
* Off 0 0 0
* Sub-1 GHz 0 0 1 // DIO30 mux to IOC_PORT_RFC_GPO0 for auto
* 2.4 GHz 1 0 0 // DIO28 mux to IOC_PORT_RFC_GPO0 for auto
* 20 dBm TX 0 1 0 // DIO29 mux to IOC_PORT_RFC_GPO3 for auto
*/
antenna_mux0: antenna_mux0 {
compatible = "skyworks,sky13317";
status = "okay";
gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>, <&gpio0 29 GPIO_ACTIVE_HIGH>, \
<&gpio0 30 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&board_ant_24g_off &board_ant_tx_pa_off &board_ant_subg_off>;
pinctrl-1 = <&board_ant_24g_on &board_ant_tx_pa_off &board_ant_subg_off>;
pinctrl-2 = <&board_ant_24g_on &board_ant_tx_pa_on &board_ant_subg_off>;
pinctrl-3 = <&board_ant_24g_off &board_ant_tx_pa_off &board_ant_subg_on>;
pinctrl-4 = <&board_ant_24g_off &board_ant_tx_pa_on &board_ant_subg_on>;
pinctrl-names = "default", "ant_24g", "ant_24g_pa", "ant_subg", "ant_subg_pa";
};
leds {
compatible = "gpio-leds";
led0: led_0 {
gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
label = "Green LED";
};
led1: led_1 {
gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
label = "Red LED";
};
};
keys {
compatible = "gpio-keys";
btn0: btn_0 {
gpios = <&gpio0 15 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
label = "Push button 1";
zephyr,code = <INPUT_KEY_0>;
};
btn1: btn_1 {
gpios = <&gpio0 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
label = "Push button 2";
zephyr,code = <INPUT_KEY_1>;
};
};
};
&flash0 {
partitions {
/* 40 KiB (0xa000) for MCUboot */
boot_partition: partition@0 {
label = "mcuboot";
reg = <0x00000000 0x0000a000>;
};
/* 136 KiB (0x22000) per slot for application */
slot0_partition: partition@a000 {
label = "image-0";
reg = <0x0000a000 0x00022000>;
};
slot1_partition: partition@2c000 {
label = "image-1";
reg = <0x0002c000 0x00022000>;
};
/* 32 KiB (0x8000) for storage */
storage_partition: partition@4e000 {
label = "storage";
reg = <0x0004e000 0x00008000>;
};
/* CCFG (customer configuration area) is located in uppermost
* flash sector (0x2000/8 KiB @ 0x56000), keep it unused.
*/
};
};
&cpu0 {
clock-frequency = <48000000>;
};
&trng {
status = "okay";
};
&gpio0 {
status = "okay";
};
&uart0 {
status = "okay";
current-speed = <115200>;
pinctrl-0 = <&uart0_rx_default &uart0_tx_default>;
pinctrl-names = "default";
};
&i2c0 {
status = "okay";
pinctrl-0 = <&i2c0_scl_default &i2c0_sda_default>;
pinctrl-1 = <&i2c0_scl_sleep &i2c0_sda_sleep>;
pinctrl-names = "default", "sleep";
};
&spi0 {
status = "okay";
pinctrl-0 = <&spi0_sck_default &spi0_mosi_default
&spi0_miso_default &spi0_cs_default>;
pinctrl-names = "default";
cs-gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
};
&radio {
status = "okay";
};
&ieee802154 {
status = "okay";
};
&ieee802154g {
status = "disabled";
};
&wdt0 {
status = "okay";
}; };

View file

@ -7,143 +7,14 @@
/dts-v1/; /dts-v1/;
#include <ti/cc1352r.dtsi> #include <ti/cc1352r.dtsi>
#include "boosterpack_connector.dtsi" #include "../common/launchxl.dtsi"
#include "cc1352r1_launchxl-pinctrl.dtsi" #include "../common/launchxl-flash.dtsi"
#include <zephyr/dt-bindings/input/input-event-codes.h>
#define BTN_GPIO_FLAGS (GPIO_ACTIVE_LOW | GPIO_PULL_UP)
/ { / {
model = "TI CC1352R1 LaunchXL"; model = "TI CC1352R1 LaunchXL";
compatible = "ti,launchxl-cc1352r1"; compatible = "ti,launchxl-cc1352r1";
aliases {
led0 = &led0;
led1 = &led1;
sw0 = &btn0;
sw1 = &btn1;
watchdog0 = &wdt0;
mcuboot-led0 = &led1;
mcuboot-button0 = &btn1;
};
chosen {
zephyr,sram = &sram0;
zephyr,flash = &flash0;
zephyr,console = &uart0;
zephyr,shell-uart = &uart0;
zephyr,ieee802154 = &ieee802154;
zephyr,code-partition = &slot0_partition;
};
leds {
compatible = "gpio-leds";
led0: led_0 {
gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
label = "Green LED";
};
led1: led_1 {
gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
label = "Red LED";
};
};
keys {
compatible = "gpio-keys";
btn0: btn_0 {
gpios = <&gpio0 15 BTN_GPIO_FLAGS>;
label = "Push button 1";
zephyr,code = <INPUT_KEY_0>;
};
btn1: btn_1 {
gpios = <&gpio0 14 BTN_GPIO_FLAGS>;
label = "Push button 2";
zephyr,code = <INPUT_KEY_1>;
};
};
};
&flash0 {
partitions {
/* 40 KiB (0xa000) for MCUboot */
boot_partition: partition@0 {
label = "mcuboot";
reg = <0x00000000 0x0000a000>;
};
/* 136 KiB (0x22000) per slot for application */
slot0_partition: partition@a000 {
label = "image-0";
reg = <0x0000a000 0x00022000>;
};
slot1_partition: partition@2c000 {
label = "image-1";
reg = <0x0002c000 0x00022000>;
};
/* 32 KiB (0x8000) for storage */
storage_partition: partition@4e000 {
label = "storage";
reg = <0x0004e000 0x00008000>;
};
/* CCFG (customer configuration area) is located in uppermost
* flash sector (0x2000/8 KiB @ 0x56000), keep it unused.
*/
};
};
&cpu0 {
clock-frequency = <48000000>;
};
&trng {
status = "okay";
};
&gpio0 {
status = "okay";
}; };
&adc0 { &adc0 {
status = "okay"; status = "okay";
}; };
&uart0 {
status = "okay";
current-speed = <115200>;
pinctrl-0 = <&uart0_rx_default &uart0_tx_default>;
pinctrl-names = "default";
};
&i2c0 {
status = "okay";
pinctrl-0 = <&i2c0_scl_default &i2c0_sda_default>;
pinctrl-1 = <&i2c0_scl_sleep &i2c0_sda_sleep>;
pinctrl-names = "default", "sleep";
};
&spi0 {
status = "okay";
pinctrl-0 = <&spi0_sck_default &spi0_mosi_default
&spi0_miso_default &spi0_cs_default>;
pinctrl-names = "default";
cs-gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
};
&radio {
status = "okay";
};
&ieee802154 {
status = "okay";
};
&ieee802154g {
status = "disabled";
};
&wdt0 {
status = "okay";
};

View file

@ -8,7 +8,7 @@
/dts-v1/; /dts-v1/;
#include <ti/cc1352r.dtsi> #include <ti/cc1352r.dtsi>
#include "../cc1352r1_launchxl/boosterpack_connector.dtsi" #include "../common/boosterpack_connector.dtsi"
#include "cc1352r_sensortag-pinctrl.dtsi" #include "cc1352r_sensortag-pinctrl.dtsi"
#include <zephyr/dt-bindings/input/input-event-codes.h> #include <zephyr/dt-bindings/input/input-event-codes.h>

View file

@ -1,47 +0,0 @@
/*
* Copyright (c) 2019 Brett Witherspoon
*
* SPDX-License-Identifier: Apache-2.0
*/
/ {
boosterpack_header: connector {
compatible = "ti,boosterpack-header";
#gpio-cells = <2>;
gpio-map = <2 0 &gpio0 23 0>,
<3 0 &gpio0 2 0>,
<4 0 &gpio0 3 0>,
<5 0 &gpio0 22 0>,
<6 0 &gpio0 24 0>,
<7 0 &gpio0 10 0>,
<8 0 &gpio0 21 0>,
<9 0 &gpio0 4 0>,
<10 0 &gpio0 5 0>,
<11 0 &gpio0 15 0>,
<12 0 &gpio0 14 0>,
<13 0 &gpio0 13 0>,
<14 0 &gpio0 8 0>,
<15 0 &gpio0 9 0>,
<18 0 &gpio0 11 0>,
<19 0 &gpio0 12 0>,
<23 0 &gpio0 25 0>,
<24 0 &gpio0 26 0>,
<25 0 &gpio0 27 0>,
<26 0 &gpio0 28 0>,
<27 0 &gpio0 29 0>,
<28 0 &gpio0 30 0>,
<29 0 &gpio0 0 0>,
<30 0 &gpio0 1 0>,
<31 0 &gpio0 17 0>,
<32 0 &gpio0 16 0>,
<36 0 &gpio0 18 0>,
<37 0 &gpio0 19 0>,
<38 0 &gpio0 20 0>,
<39 0 &gpio0 6 0>,
<40 0 &gpio0 7 0>;
};
};
boosterpack_i2c: &i2c0 {};
boosterpack_spi: &spi0 {};
boosterpack_serial: &uart0 {};

View file

@ -17,45 +17,4 @@
bias-disable; bias-disable;
input-enable; input-enable;
}; };
/* I2C0 */
i2c0_scl_default: i2c0_scl_default {
pinmux = <4 IOC_PORT_MCU_I2C_MSSCL>;
bias-pull-up;
drive-open-drain;
input-enable;
};
i2c0_sda_default: i2c0_sda_default {
pinmux = <5 IOC_PORT_MCU_I2C_MSSDA>;
bias-pull-up;
drive-open-drain;
input-enable;
};
i2c0_scl_sleep: i2c0_scl_sleep {
pinmux = <4 IOC_PORT_GPIO>;
bias-disable;
};
i2c0_sda_sleep: i2c0_sda_sleep {
pinmux = <5 IOC_PORT_GPIO>;
bias-disable;
};
/* SPI0 */
spi0_sck_default: spi0_sck_default {
pinmux = <10 IOC_PORT_MCU_SSI0_CLK>;
bias-disable;
};
spi0_mosi_default: spi0_mosi_default {
pinmux = <9 IOC_PORT_MCU_SSI0_TX>;
bias-disable;
};
spi0_miso_default: spi0_miso_default {
pinmux = <8 IOC_PORT_MCU_SSI0_RX>;
bias-disable;
input-enable;
};
spi0_cs_default: spi0_cs_default {
pinmux = <11 IOC_PORT_MCU_SSI0_FSS>;
bias-disable;
};
}; };

View file

@ -7,131 +7,31 @@
/dts-v1/; /dts-v1/;
#include <ti/cc2652r.dtsi> #include <ti/cc2652r.dtsi>
#include "boosterpack_connector.dtsi" #include "../common/launchxl.dtsi"
#include "../common/launchxl-flash.dtsi"
#include "cc26x2r1_launchxl-pinctrl.dtsi" #include "cc26x2r1_launchxl-pinctrl.dtsi"
#include <zephyr/dt-bindings/input/input-event-codes.h>
#define BTN_GPIO_FLAGS (GPIO_ACTIVE_LOW | GPIO_PULL_UP)
/ { / {
model = "TI CC26x2R1 LaunchXL"; model = "TI CC26x2R1 LaunchXL";
compatible = "ti,launchxl-cc26x2r1"; compatible = "ti,launchxl-cc26x2r1";
aliases {
led0 = &led0;
led1 = &led1;
sw0 = &btn0;
sw1 = &btn1;
watchdog0 = &wdt0;
mcuboot-led0 = &led1;
mcuboot-button0 = &btn1;
};
chosen { chosen {
zephyr,sram = &sram0; /delete-property/ zephyr,ieee802154;
zephyr,flash = &flash0;
zephyr,console = &uart0;
zephyr,shell-uart = &uart0;
zephyr,code-partition = &slot0_partition;
};
leds {
compatible = "gpio-leds";
led0: led_0 {
gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
label = "Green LED";
};
led1: led_1 {
gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
label = "Red LED";
};
};
keys {
compatible = "gpio-keys";
btn0: btn_0 {
gpios = <&gpio0 13 BTN_GPIO_FLAGS>;
label = "Push button 1";
zephyr,code = <INPUT_KEY_0>;
};
btn1: btn_1 {
gpios = <&gpio0 14 BTN_GPIO_FLAGS>;
label = "Push button 2";
zephyr,code = <INPUT_KEY_1>;
};
}; };
}; };
&flash0 { &radio {
partitions { status = "disabled";
/* 40 KiB (0xa000) for MCUboot */
boot_partition: partition@0 {
label = "mcuboot";
reg = <0x00000000 0x0000a000>;
};
/* 136 KiB (0x22000) per slot for application */
slot0_partition: partition@a000 {
label = "image-0";
reg = <0x0000a000 0x00022000>;
};
slot1_partition: partition@2c000 {
label = "image-1";
reg = <0x0002c000 0x00022000>;
};
/* 32 KiB (0x8000) for storage */
storage_partition: partition@4e000 {
label = "storage";
reg = <0x0004e000 0x00008000>;
};
/* CCFG (customer configuration area) is located in uppermost
* flash sector (0x2000/8 KiB @ 0x56000), keep it unused.
*/
};
}; };
&cpu0 { &ieee802154 {
clock-frequency = <48000000>; status = "disabled";
}; };
&trng { &ieee802154g {
status = "okay"; status = "disabled";
};
&gpio0 {
status = "okay";
}; };
&adc0 { &adc0 {
status = "okay"; status = "okay";
}; };
&uart0 {
status = "okay";
current-speed = <115200>;
pinctrl-0 = <&uart0_rx_default &uart0_tx_default>;
pinctrl-names = "default";
};
&i2c0 {
status = "okay";
pinctrl-0 = <&i2c0_scl_default &i2c0_sda_default>;
pinctrl-1 = <&i2c0_scl_sleep &i2c0_sda_sleep>;
pinctrl-names = "default", "sleep";
};
&spi0 {
status = "okay";
pinctrl-0 = <&spi0_sck_default &spi0_mosi_default
&spi0_miso_default &spi0_cs_default>;
pinctrl-names = "default";
cs-gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
};
&wdt0 {
status = "okay";
};

View file

@ -0,0 +1,4 @@
# SPDX-License-Identifier: Apache-2.0
zephyr_library()
zephyr_library_sources_ifdef(CONFIG_BOARD_CC1352_LP_SKY13317 board_antenna.c)

24
boards/ti/common/Kconfig Normal file
View file

@ -0,0 +1,24 @@
# TI CC1352R LaunchXL board
# Copyright (c) 2021 Florin Stancu
# SPDX-License-Identifier: Apache-2.0
config BOARD_CC1352_LP_SKY13317
bool "CC1352 LP common board antenna init"
default y if DT_HAS_SKYWORKS_SKY13317_ENABLED
help
Some CC1352 boards have a SKY13317 component
to select the antenna. This enables support
for this component for the CC1352 boards using it.
if BOARD_CC1352_LP_SKY13317
config BOARD_ANTENNA_INIT_PRIO
int "Board antenna switch initialization priority"
default 70
help
Set the priority for board init, must be greater than
KERNEL_INIT_PRIORITY_DEVICE but smaller than
IEEE802154_CC13XX_CC26XX_SUB_GHZ_INIT_PRIO.
endif # BOARD_CC1352_LP_SKY13317

View file

@ -0,0 +1,36 @@
/*
* Copyright (c) 2024 Alexandre Bailon
*
* SPDX-License-Identifier: Apache-2.0
*/
&flash0 {
partitions {
/* 40 KiB (0xa000) for MCUboot */
boot_partition: partition@0 {
label = "mcuboot";
reg = <0x00000000 0x0000a000>;
};
/* 136 KiB (0x22000) per slot for application */
slot0_partition: partition@a000 {
label = "image-0";
reg = <0x0000a000 0x0004e000>;
};
slot1_partition: partition@58000 {
label = "image-1";
reg = <0x00058000 0x0004e000>;
};
/* 32 KiB (0x8000) for storage */
storage_partition: partition@a6000 {
label = "storage";
reg = <0x000a6000 0x00008000>;
};
/* CCFG (customer configuration area) is located in uppermost
* flash sector (0x2000/8 KiB @ 0xae000), keep it unused.
*/
};
};

View file

@ -0,0 +1,36 @@
/*
* Copyright (c) 2021 Florin Stancu
*
* SPDX-License-Identifier: Apache-2.0
*/
&flash0 {
partitions {
/* 40 KiB (0xa000) for MCUboot */
boot_partition: partition@0 {
label = "mcuboot";
reg = <0x00000000 0x0000a000>;
};
/* 136 KiB (0x22000) per slot for application */
slot0_partition: partition@a000 {
label = "image-0";
reg = <0x0000a000 0x00022000>;
};
slot1_partition: partition@2c000 {
label = "image-1";
reg = <0x0002c000 0x00022000>;
};
/* 32 KiB (0x8000) for storage */
storage_partition: partition@4e000 {
label = "storage";
reg = <0x0004e000 0x00008000>;
};
/* CCFG (customer configuration area) is located in uppermost
* flash sector (0x2000/8 KiB @ 0x56000), keep it unused.
*/
};
};

View file

@ -0,0 +1,108 @@
/*
* Copyright (c) 2021 Florin Stancu
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "boosterpack_connector.dtsi"
#include "launchxl-pinctrl.dtsi"
#include <zephyr/dt-bindings/input/input-event-codes.h>
#define BTN_GPIO_FLAGS (GPIO_ACTIVE_LOW | GPIO_PULL_UP)
/ {
aliases {
led0 = &led0;
led1 = &led1;
sw0 = &btn0;
sw1 = &btn1;
watchdog0 = &wdt0;
mcuboot-led0 = &led1;
mcuboot-button0 = &btn1;
};
chosen {
zephyr,sram = &sram0;
zephyr,flash = &flash0;
zephyr,console = &uart0;
zephyr,shell-uart = &uart0;
zephyr,ieee802154 = &ieee802154;
zephyr,code-partition = &slot0_partition;
};
leds {
compatible = "gpio-leds";
led0: led_0 {
gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
label = "Green LED";
};
led1: led_1 {
gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
label = "Red LED";
};
};
keys {
compatible = "gpio-keys";
btn0: btn_0 {
gpios = <&gpio0 15 BTN_GPIO_FLAGS>;
label = "Push button 1";
zephyr,code = <INPUT_KEY_0>;
};
btn1: btn_1 {
gpios = <&gpio0 14 BTN_GPIO_FLAGS>;
label = "Push button 2";
zephyr,code = <INPUT_KEY_1>;
};
};
};
&cpu0 {
clock-frequency = <48000000>;
};
&trng {
status = "okay";
};
&gpio0 {
status = "okay";
};
&uart0 {
status = "okay";
current-speed = <115200>;
pinctrl-0 = <&uart0_rx_default &uart0_tx_default>;
pinctrl-names = "default";
};
&i2c0 {
status = "okay";
pinctrl-0 = <&i2c0_scl_default &i2c0_sda_default>;
pinctrl-1 = <&i2c0_scl_sleep &i2c0_sda_sleep>;
pinctrl-names = "default", "sleep";
};
&spi0 {
status = "okay";
pinctrl-0 = <&spi0_sck_default &spi0_mosi_default
&spi0_miso_default &spi0_cs_default>;
pinctrl-names = "default";
cs-gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
};
&radio {
status = "okay";
};
&ieee802154 {
status = "okay";
};
&ieee802154g {
status = "disabled";
};
&wdt0 {
status = "okay";
};

View file

@ -0,0 +1,61 @@
/*
* Copyright (c) 2021 Florin Stancu
*
* SPDX-License-Identifier: Apache-2.0
*/
/ {
/**
* The CC1352P LAUNCHXL has an on-board antenna switch (SKY13317-373LF) used to select the
* appropriate RF signal port based on the currently-used PHY.
*
* Truth table:
*
* Path DIO28 DIO29 DIO30
* =========== ===== ===== =====
* Off 0 0 0
* Sub-1 GHz 0 0 1 // DIO30 mux to IOC_PORT_RFC_GPO0 for auto
* 2.4 GHz 1 0 0 // DIO28 mux to IOC_PORT_RFC_GPO0 for auto
* 20 dBm TX 0 1 0 // DIO29 mux to IOC_PORT_RFC_GPO3 for auto
*/
antenna_mux0: antenna_mux0 {
compatible = "skyworks,sky13317";
status = "okay";
gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>, <&gpio0 29 GPIO_ACTIVE_HIGH>, \
<&gpio0 30 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&board_ant_24g_off &board_ant_tx_pa_off &board_ant_subg_off>;
pinctrl-1 = <&board_ant_24g_on &board_ant_tx_pa_off &board_ant_subg_off>;
pinctrl-2 = <&board_ant_24g_on &board_ant_tx_pa_on &board_ant_subg_off>;
pinctrl-3 = <&board_ant_24g_off &board_ant_tx_pa_off &board_ant_subg_on>;
pinctrl-4 = <&board_ant_24g_off &board_ant_tx_pa_on &board_ant_subg_on>;
pinctrl-names = "default", "ant_24g", "ant_24g_pa", "ant_subg", "ant_subg_pa";
};
};
&pinctrl {
/* On-board antenna pinmux states */
board_ant_24g_off: board_ant_24g_off {
pinmux = <28 IOC_PORT_GPIO>;
bias-disable;
};
board_ant_24g_on: board_ant_24g_on {
pinmux = <28 IOC_PORT_RFC_GPO0>;
bias-disable;
};
board_ant_tx_pa_off: board_ant_tx_pa_off {
pinmux = <29 IOC_PORT_GPIO>;
bias-disable;
};
board_ant_tx_pa_on: board_ant_tx_pa_on {
pinmux = <29 IOC_PORT_RFC_GPO3>;
bias-disable;
};
board_ant_subg_off: board_ant_subg_off {
pinmux = <30 IOC_PORT_GPIO>;
bias-disable;
};
board_ant_subg_on: board_ant_subg_on {
pinmux = <30 IOC_PORT_RFC_GPO0>;
bias-disable;
};
};

View file

@ -0,0 +1 @@
source [find board/ti_cc13x2_launchpad.cfg]