boards: Add DA1469x Pro DK
This adds support for DA1469x Pro DK which is an official development
kit for DA1469x SoC series provided by Renesas.
Signed-off-by: Andrzej Kaczmarek <andrzej.kaczmarek@codecoup.pl>
Signed-off-by: Ben Lauret <ben.lauret.wm@renesas.com>
diff --git a/boards/arm/da1469x_dk_pro/Kconfig b/boards/arm/da1469x_dk_pro/Kconfig
new file mode 100644
index 0000000..0bca665
--- /dev/null
+++ b/boards/arm/da1469x_dk_pro/Kconfig
@@ -0,0 +1,4 @@
+# DA1469x series Development Kit Pro board configuration
+
+# Copyright (c) 2022 Renesas Electronics Corporation
+# SPDX-License-Identifier: Apache-2.0
diff --git a/boards/arm/da1469x_dk_pro/Kconfig.board b/boards/arm/da1469x_dk_pro/Kconfig.board
new file mode 100644
index 0000000..0c7f9e2
--- /dev/null
+++ b/boards/arm/da1469x_dk_pro/Kconfig.board
@@ -0,0 +1,8 @@
+# DA1469x series Development Kit Pro board configuration
+
+# Copyright (c) 2022 Renesas Electronics Corporation
+# SPDX-License-Identifier: Apache-2.0
+
+config BOARD_DA1469X_DK_PRO
+ bool "DA1469x series Development Kit Pro board"
+ depends on SOC_SERIES_DA1469X
diff --git a/boards/arm/da1469x_dk_pro/Kconfig.defconfig b/boards/arm/da1469x_dk_pro/Kconfig.defconfig
new file mode 100644
index 0000000..b0a50f8
--- /dev/null
+++ b/boards/arm/da1469x_dk_pro/Kconfig.defconfig
@@ -0,0 +1,11 @@
+# DA1469x series Development Kit Pro board configuration
+
+# Copyright (c) 2022 Renesas Electronics Corporation
+# SPDX-License-Identifier: Apache-2.0
+
+if BOARD_DA1469X_DK_PRO
+
+config BOARD
+ default "da1469x_dk_pro"
+
+endif # BOARD_DA1469X_DK_PRO
diff --git a/boards/arm/da1469x_dk_pro/board.cmake b/boards/arm/da1469x_dk_pro/board.cmake
new file mode 100644
index 0000000..8c19f0e
--- /dev/null
+++ b/boards/arm/da1469x_dk_pro/board.cmake
@@ -0,0 +1,10 @@
+#
+# Copyright (c) 2022 Renesas Electronics Corporation
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+board_runner_args(ezflashcli)
+board_runner_args(jlink --device=DA14699)
+include(${ZEPHYR_BASE}/boards/common/ezflashcli.board.cmake)
+include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
diff --git a/boards/arm/da1469x_dk_pro/da1469x_dk_pro-pinctrl.dtsi b/boards/arm/da1469x_dk_pro/da1469x_dk_pro-pinctrl.dtsi
new file mode 100644
index 0000000..45f0851
--- /dev/null
+++ b/boards/arm/da1469x_dk_pro/da1469x_dk_pro-pinctrl.dtsi
@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) 2022 Renesas Electronics Corporation
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#include <zephyr/dt-bindings/pinctrl/smartbond-pinctrl.h>
+
+&pinctrl {
+ uart_default: uart_default {
+ group1 {
+ pinmux = <SMARTBOND_PINMUX(UART_TX, 0, 9)>;
+ };
+ group2 {
+ pinmux = <SMARTBOND_PINMUX(UART_RX, 0, 8)>;
+ bias-pull-up;
+ };
+ };
+};
diff --git a/boards/arm/da1469x_dk_pro/da1469x_dk_pro.dts b/boards/arm/da1469x_dk_pro/da1469x_dk_pro.dts
new file mode 100644
index 0000000..e075a04
--- /dev/null
+++ b/boards/arm/da1469x_dk_pro/da1469x_dk_pro.dts
@@ -0,0 +1,115 @@
+/*
+ * Copyright (c) 2022 Renesas Electronics Corporation
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/dts-v1/;
+#include <renesas/smartbond/da14699.dtsi>
+#include "da1469x_dk_pro-pinctrl.dtsi"
+
+/ {
+ model = "DA1469x series Development Kit Pro";
+ compatible = "renesas,da1469x_dk_pro";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ chosen {
+ zephyr,sram = &sram0;
+ zephyr,flash = &flash0;
+ zephyr,console = &uart;
+ zephyr,shell-uart = &uart;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ red_led: led_0 {
+ gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+ arduino_header: connector {
+ compatible = "arduino-header-r3";
+ #gpio-cells = <2>;
+ gpio-map-mask = <0xffffffff 0xffffffc0>;
+ gpio-map-pass-thru = <0 0x3f>;
+ gpio-map =
+ <0 0 &gpio1 9 0>, /* A0 */
+ <1 0 &gpio0 25 0>, /* A1 */
+ <2 0 &gpio0 8 0>, /* A2 */
+ <3 0 &gpio0 9 0>, /* A3 */
+ <4 0 &gpio1 13 0>, /* A4 */
+ <5 0 &gpio1 12 0>, /* A5 */
+ <6 0 &gpio1 2 0>, /* D0 */
+ <7 0 &gpio1 3 0>, /* D1 */
+ <8 0 &gpio1 4 0>, /* D2 */
+ <9 0 &gpio1 5 0>, /* D3 */
+ <10 0 &gpio1 7 0>, /* D4 */
+ <11 0 &gpio1 8 0>, /* D5 */
+ <12 0 &gpio0 17 0>, /* D6 */
+ <13 0 &gpio0 18 0>, /* D7 */
+ <14 0 &gpio0 19 0>, /* D8 */
+ <15 0 &gpio0 20 0>, /* D9 */
+ <16 0 &gpio0 21 0>, /* D10 */
+ <17 0 &gpio0 24 0>, /* D11 */
+ <18 0 &gpio0 26 0>, /* D12 */
+ <19 0 &gpio0 27 0>, /* D13 */
+ <20 0 &gpio0 28 0>, /* D14 */
+ <21 0 &gpio0 29 0>; /* D15 */
+ };
+
+ aliases {
+ led0 = &red_led;
+ };
+
+ sysclk: system-clock {
+ compatible = "fixed-clock";
+ clock-frequency = <32000000>;
+ #clock-cells = <0>;
+ };
+};
+
+&flash0 {
+ reg = <0 DT_SIZE_M(1)>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ boot_partition: partition@2400 {
+ label = "mcuboot";
+ reg = <0x000002400 0x00005c00>;
+ };
+ slot0_partition: partition@8000 {
+ label = "image-0";
+ reg = <0x00008000 0x00060000>;
+ };
+ slot1_partition: partition@68000 {
+ label = "image-1";
+ reg = <0x00068000 0x00060000>;
+ };
+ scratch_partition: partition@c8000 {
+ label = "image-scratch";
+ reg = <0x000c8000 0x00010000>;
+ };
+ storage_partition: partition@dc000 {
+ label = "storage";
+ reg = <0x000dc000 0x00004000>;
+ };
+ };
+};
+
+&gpio0 {
+ status = "okay";
+};
+
+&gpio1 {
+ status = "okay";
+};
+
+&uart {
+ current-speed = <115200>;
+ status = "okay";
+ pinctrl-0 = <&uart_default>;
+ pinctrl-names = "default";
+};
diff --git a/boards/arm/da1469x_dk_pro/da1469x_dk_pro.yaml b/boards/arm/da1469x_dk_pro/da1469x_dk_pro.yaml
new file mode 100644
index 0000000..04935f5
--- /dev/null
+++ b/boards/arm/da1469x_dk_pro/da1469x_dk_pro.yaml
@@ -0,0 +1,12 @@
+identifier: da1469x_dk_pro
+name: DA1469X_DK_PRO
+type: mcu
+arch: arm
+ram: 512
+toolchain:
+ - zephyr
+ - gnuarmemb
+ - xtools
+supported:
+ - arduino_gpio
+ - gpio
diff --git a/boards/arm/da1469x_dk_pro/da1469x_dk_pro_defconfig b/boards/arm/da1469x_dk_pro/da1469x_dk_pro_defconfig
new file mode 100644
index 0000000..7543faa
--- /dev/null
+++ b/boards/arm/da1469x_dk_pro/da1469x_dk_pro_defconfig
@@ -0,0 +1,16 @@
+# SPDX-License-Identifier: Apache-2.0
+
+CONFIG_SOC_FAMILY_SMARTBOND=y
+CONFIG_SOC_SERIES_DA1469X=y
+CONFIG_SOC_DA14699=y
+CONFIG_BOARD_DA1469X_DK_PRO=y
+
+CONFIG_HW_STACK_PROTECTION=y
+
+CONFIG_GPIO=y
+
+CONFIG_CONSOLE=y
+CONFIG_UART_CONSOLE=y
+CONFIG_SERIAL=y
+
+CONFIG_BUILD_OUTPUT_HEX=n
diff --git a/boards/arm/da1469x_dk_pro/doc/da14695-00hqdevkt-board.jpg b/boards/arm/da1469x_dk_pro/doc/da14695-00hqdevkt-board.jpg
new file mode 100644
index 0000000..b8d8417
--- /dev/null
+++ b/boards/arm/da1469x_dk_pro/doc/da14695-00hqdevkt-board.jpg
Binary files differ
diff --git a/boards/arm/da1469x_dk_pro/doc/index.rst b/boards/arm/da1469x_dk_pro/doc/index.rst
new file mode 100644
index 0000000..a29bab1
--- /dev/null
+++ b/boards/arm/da1469x_dk_pro/doc/index.rst
@@ -0,0 +1,117 @@
+.. _da1469x_dk_pro:
+
+DA1469x Development Kit Pro
+###########################
+
+Overview
+********
+
+The DA1469x Development Kit Pro hardware provides support for the Renesas
+DA1469x ARM Cortex-M33 MCU family. The development kit consist of a motherboard
+with connectors and integrated debugger and an interchangeable daughterboard
+with an actual MCU (e.g. DA14695 or DA14699).
+
+.. figure:: da14695-00hqdevkt-board.jpg
+ :width: 442px
+ :align: center
+ :alt: DA14695 Development Kit Pro
+
+ DA14695 Development Kit Pro (Credit: Renesas Electronics Corporation)
+
+Hardware
+********
+
+DA1469x Development Kit Pro has two external oscillators. The frequency of
+the sleep clock is 32768 Hz. The frequency of the system clock is 32 MHz.
+
+Supported Features
+==================
+
+The _da1469x_dk_pro board configuration supports the following
+hardware features:
+
++-----------+------------+----------------------+
+| Interface | Controller | Driver/Component |
++===========+============+======================+
+| FLASH | on-chip | flash |
++-----------+------------+----------------------+
+| GPIO | on-chip | gpio |
++-----------+------------+----------------------+
+| MPU | on-chip | arch/arm |
++-----------+------------+----------------------+
+| NVIC | on-chip | arch/arm |
++-----------+------------+----------------------+
+| RTT | Segger | console |
++-----------+------------+----------------------+
+| UART | on-chip | serial |
++-----------+------------+----------------------+
+
+Other hardware features, including the Configurable MAC (CMAC) controller,
+are currently not supported by the port.
+
+For more information about the DA14695 Development Kit see:
+
+- `DA14695 DK website`_
+- `DA14699 daughterboard website`_
+
+System Clock
+============
+
+The DA1469x Development Kit Pro is configured to use the 32 MHz external oscillator
+on the board.
+
+Connections and IOs
+===================
+
+The DA1469x Development Kit Pro has one LED and one push button which can be used
+by applications. The UART is connected to on-board serial converter and accessible
+via USB1 port on motherboard.
+
+The pin connections are as follows:
+
+* LED (red), located on daughterboard = P1.01
+* BUTTON, located on motherboard = P0.06
+* UART RX, via USB1 on motherboard = P0.08
+* UART TX, via USB1 on motherboard = P0.09
+
+Programming and Debugging
+*************************
+
+Applications for the ``da1469x_dk_pro`` board configuration can be
+built, flashed, and debugged in the usual way. See
+:ref:`build_an_application` and :ref:`application_run` for more details on
+building and running.
+
+Flashing
+========
+
+The DA1469x boots from an external flash connected to QSPI interface. The image
+written to flash has to have proper header prepended. The process is simplified
+by using dedicated `eZFlashCLI`_ tool that takes care of writing header and can
+handle different types of flash chips connected to DA1469x MCU. Follow instructions
+on `ezFlashCLI`_ to install the tool. Once installed, flashing can be done in the
+usual way.
+
+.. zephyr-app-commands::
+ :zephyr-app: samples/basic/blinky
+ :board: da1469x_dk_pro
+ :goals: build flash
+
+Debugging
+=========
+
+The DA1469x Development Kit Pro includes a `J-Link`_ adaptor built-in on
+motherboard which provides both debugging interface and serial port.
+Application can be debugged in the usual way once DA1469x Development Kit Pro
+is connected to PC via USB port on motherboard.
+
+References
+**********
+
+.. target-notes::
+
+.. _DA14695 DK website: https://www.renesas.com/eu/en/products/interface-connectivity/wireless-communications/bluetooth-low-energy/da14695-00hqdevkt-p-smartbond-da14695-bluetooth-low-energy-52-development-kit-pro
+.. _DA14699 daughterboard website: https://www.renesas.com/br/en/products/interface-connectivity/wireless-communications/bluetooth-low-energy/da14699-00hrdb-p-smartbond-da14695-bluetooth-low-energy-52-development-kit-pro-vfbga100-daughterboard
+.. _DA1469x Datasheet: https://www.renesas.com/eu/en/document/dst/da1469x-datasheet
+.. _J-Link: https://www.segger.com/jlink-debug-probes.html
+.. _ezFlashCLI: https://github.com/ezflash/ezFlashCLI/