Skip to content

Commit

Permalink
boards: arm: add support for the Actinius Icarus SoM DK w/ helper lib
Browse files Browse the repository at this point in the history
This adds support for the nRF9160-based Icarus SoM DK
(development kit) from Actinius and a common library for
board init code that is common to multiple boards
from Actinius.

Signed-off-by: Alex Tsamakos <[email protected]>
  • Loading branch information
alextsam committed Jan 20, 2023
1 parent 05d3b57 commit fa65136
Show file tree
Hide file tree
Showing 22 changed files with 1,017 additions and 0 deletions.
8 changes: 8 additions & 0 deletions boards/arm/actinius_icarus_som_dk/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#
# Copyright (c) 2022 Actinius
#
# SPDX-License-Identifier: Apache-2.0

zephyr_library()

add_subdirectory(${ZEPHYR_BASE}/boards/common/actinius actinius_common)
14 changes: 14 additions & 0 deletions boards/arm/actinius_icarus_som_dk/Kconfig.board
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Actinius Icarus SoM DK board configuration

# Copyright (c) 2022 Actinius
# SPDX-License-Identifier: Apache-2.0

if SOC_NRF9160_SICA

config BOARD_ACTINIUS_ICARUS_SOM_DK
bool "Actinius Icarus SoM DK"

config BOARD_ACTINIUS_ICARUS_SOM_DK_NS
bool "Actinius Icarus SoM DK Non-Secure"

endif # SOC_NRF9160_SICA
40 changes: 40 additions & 0 deletions boards/arm/actinius_icarus_som_dk/Kconfig.defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Actinius Icarus SoM DK board configuration

# Copyright (c) 2022 Actinius
# SPDX-License-Identifier: Apache-2.0

if BOARD_ACTINIUS_ICARUS_SOM_DK || BOARD_ACTINIUS_ICARUS_SOM_DK_NS

config BOARD
default "actinius_icarus_som_dk"

source "boards/common/actinius/Kconfig"

# For the secure version of the board the firmware is linked at the beginning
# of the flash, or into the code-partition defined in DT if it is intended to
# be loaded by MCUboot. If the secure firmware is to be combined with a non-
# secure image (TRUSTED_EXECUTION_SECURE=y), the secure FW image shall always
# be restricted to the size of its code partition.
# For the non-secure version of the board, the firmware
# must be linked into the code-partition (non-secure) defined in DT, regardless.
# Apply this configuration below by setting the Kconfig symbols used by
# the linker according to the information extracted from DT partitions.

# Workaround for not being able to have commas in macro arguments
DT_CHOSEN_Z_CODE_PARTITION := zephyr,code-partition

config FLASH_LOAD_SIZE
default $(dt_chosen_reg_size_hex,$(DT_CHOSEN_Z_CODE_PARTITION))
depends on BOARD_ACTINIUS_ICARUS_SOM_DK && TRUSTED_EXECUTION_SECURE

if BOARD_ACTINIUS_ICARUS_SOM_DK_NS

config FLASH_LOAD_OFFSET
default $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_CODE_PARTITION))

config FLASH_LOAD_SIZE
default $(dt_chosen_reg_size_hex,$(DT_CHOSEN_Z_CODE_PARTITION))

endif # BOARD_ACTINIUS_ICARUS_SOM_DK_NS

endif # BOARD_ACTINIUS_ICARUS_SOM_DK || BOARD_ACTINIUS_ICARUS_SOM_DK_NS
19 changes: 19 additions & 0 deletions boards/arm/actinius_icarus_som_dk/actinius_icarus_som_dk.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/*
* Copyright (c) 2022 Actinius
*
* SPDX-License-Identifier: Apache-2.0
*/

/dts-v1/;
#include <nordic/nrf9160_sica.dtsi>
#include "actinius_icarus_som_dk_common.dts"

/ {
chosen {
zephyr,sram = &sram0_s;
zephyr,flash = &flash0;
zephyr,code-partition = &slot0_partition;
zephyr,sram-secure-partition = &sram0_s;
zephyr,sram-non-secure-partition = &sram0_ns;
};
};
21 changes: 21 additions & 0 deletions boards/arm/actinius_icarus_som_dk/actinius_icarus_som_dk.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
identifier: actinius_icarus_som_dk
name: Actinius Icarus SoM DK
type: mcu
arch: arm
toolchain:
- gnuarmemb
- xtools
- zephyr
ram: 88
flash: 256
supported:
- gpio
- i2c
- pwm
- spi
- watchdog
- counter
- arduino_gpio
- arduino_i2c
- arduino_serial
- arduino_spi
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
/*
* Copyright (c) 2022 Actinius
* SPDX-License-Identifier: Apache-2.0
*/

&pinctrl {
uart0_default: uart0_default {
group1 {
psels = <NRF_PSEL(UART_TX, 0, 9)>,
<NRF_PSEL(UART_RX, 0, 6)>;
};
};

uart0_sleep: uart0_sleep {
group1 {
psels = <NRF_PSEL(UART_TX, 0, 9)>,
<NRF_PSEL(UART_RX, 0, 6)>;
low-power-enable;
};
};

i2c2_default: i2c2_default {
group1 {
psels = <NRF_PSEL(TWIM_SDA, 0, 10)>,
<NRF_PSEL(TWIM_SCL, 0, 11)>;
};
};

i2c2_sleep: i2c2_sleep {
group1 {
psels = <NRF_PSEL(TWIM_SDA, 0, 10)>,
<NRF_PSEL(TWIM_SCL, 0, 11)>;
low-power-enable;
};
};

spi3_default: spi3_default {
group1 {
psels = <NRF_PSEL(SPIM_SCK, 0, 22)>,
<NRF_PSEL(SPIM_MOSI, 0, 25)>,
<NRF_PSEL(SPIM_MISO, 0, 21)>;
};
};

spi3_sleep: spi3_sleep {
group1 {
psels = <NRF_PSEL(SPIM_SCK, 0, 22)>,
<NRF_PSEL(SPIM_MOSI, 0, 25)>,
<NRF_PSEL(SPIM_MISO, 0, 21)>;
low-power-enable;
};
};

neopixel_spi_default: neopixel_spi_default {
group1 {
psels = <NRF_PSEL(SPIM_SCK, 0, 0)>,
<NRF_PSEL(SPIM_MOSI, 0, 8)>,
<NRF_PSEL(SPIM_MISO, 0, 0)>;
};
};

neopixel_spi_sleep: neopixel_spi_sleep {
group1 {
psels = <NRF_PSEL(SPIM_SCK, 0, 0)>,
<NRF_PSEL(SPIM_MOSI, 0, 8)>,
<NRF_PSEL(SPIM_MISO, 0, 0)>;
low-power-enable;
};
};

pwm0_default: pwm0_default {
group1 {
psels = <NRF_PSEL(PWM_OUT0, 0, 3)>;
nordic,invert;
};
};

pwm0_sleep: pwm0_sleep {
group1 {
psels = <NRF_PSEL(PWM_OUT0, 0, 3)>;
low-power-enable;
};
};

};
Loading

0 comments on commit fa65136

Please sign in to comment.