You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by je...@apache.org on 2022/02/18 10:22:53 UTC

[mynewt-core] branch master updated (c68d040 -> 8b90a1b)

This is an automated email from the ASF dual-hosted git repository.

jerzy pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git.


    from c68d040  hw/mcu/dialog: Fix OTP settings when using 96MHz clock
     new afcf581  mcu/da1469x: Move scripts from bsp to mcu
     new feec1cc  Added bsp and mcu packages for dialog_da14695-dk-usb
     new 8b90a1b  Added serial load option to da1469x download script.

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../boot-da14695.ld}                               |  0
 .../bsp.yml                                        | 10 ++---
 .../da1469x.ld                                     |  0
 .../include/bsp/bsp.h                              | 44 +++++++++++++++-------
 .../pkg.yml                                        |  8 ++--
 .../src/arch/cortex_m33/gcc_startup_da1469x.S      |  0
 .../src/hal_bsp.c                                  |  0
 .../syscfg.yml                                     | 10 -----
 hw/bsp/dialog_da1469x-dk-pro/bsp.yml               |  4 +-
 .../dialog/{da14699 => da14695}/include/mcu/mcu.h  | 18 +++------
 hw/mcu/dialog/{da14699 => da14695}/pkg.yml         |  6 +--
 .../dialog/{da14699 => da14695}/src/da1469x_pd.c   |  0
 hw/mcu/{arc/snps => dialog/da14695}/syscfg.yml     |  2 +-
 .../dialog/da1469x/scripts}/cfg/device.cfg         |  0
 .../dialog/da1469x/scripts}/cfg/ft4232h.cfg        |  0
 .../dialog/da1469x/scripts}/da1469x_header_tool.py |  0
 .../dialog/da1469x/scripts}/da1469x_serial.py      |  0
 .../da1469x/scripts/dialog_da1469x-debug_jlink.sh} |  0
 .../scripts/dialog_da1469x-download_jlink.sh}      | 20 ++++++++--
 .../dialog/da1469x/scripts}/otp_tool.py            |  0
 .../dialog/da1469x/scripts}/reset.sh               |  0
 .../dialog/da1469x/scripts}/reset_ocd.sh           |  0
 22 files changed, 68 insertions(+), 54 deletions(-)
 copy hw/bsp/{dialog_da1469x-dk-pro/boot-da1469x.ld => dialog_da14695-dk-usb/boot-da14695.ld} (100%)
 copy hw/bsp/{dialog_da1469x-dk-pro => dialog_da14695-dk-usb}/bsp.yml (87%)
 copy hw/bsp/{dialog_da1469x-dk-pro => dialog_da14695-dk-usb}/da1469x.ld (100%)
 copy hw/bsp/{black_vet6 => dialog_da14695-dk-usb}/include/bsp/bsp.h (52%)
 copy hw/bsp/{dialog_da1469x-dk-pro => dialog_da14695-dk-usb}/pkg.yml (84%)
 copy hw/bsp/{dialog_da1469x-dk-pro => dialog_da14695-dk-usb}/src/arch/cortex_m33/gcc_startup_da1469x.S (100%)
 copy hw/bsp/{dialog_da1469x-dk-pro => dialog_da14695-dk-usb}/src/hal_bsp.c (100%)
 copy hw/bsp/{dialog_da1469x-dk-pro => dialog_da14695-dk-usb}/syscfg.yml (89%)
 copy hw/mcu/dialog/{da14699 => da14695}/include/mcu/mcu.h (93%)
 copy hw/mcu/dialog/{da14699 => da14695}/pkg.yml (90%)
 copy hw/mcu/dialog/{da14699 => da14695}/src/da1469x_pd.c (100%)
 copy hw/mcu/{arc/snps => dialog/da14695}/syscfg.yml (96%)
 rename hw/{bsp/dialog_da1469x-dk-pro => mcu/dialog/da1469x/scripts}/cfg/device.cfg (100%)
 rename hw/{bsp/dialog_da1469x-dk-pro => mcu/dialog/da1469x/scripts}/cfg/ft4232h.cfg (100%)
 rename hw/{bsp/dialog_da1469x-dk-pro => mcu/dialog/da1469x/scripts}/da1469x_header_tool.py (100%)
 rename hw/{bsp/dialog_da1469x-dk-pro => mcu/dialog/da1469x/scripts}/da1469x_serial.py (100%)
 rename hw/{bsp/dialog_da1469x-dk-pro/dialog_da1469x-dk-pro_debug.sh => mcu/dialog/da1469x/scripts/dialog_da1469x-debug_jlink.sh} (100%)
 rename hw/{bsp/dialog_da1469x-dk-pro/dialog_da1469x-dk-pro_download.sh => mcu/dialog/da1469x/scripts/dialog_da1469x-download_jlink.sh} (87%)
 rename hw/{bsp/dialog_da1469x-dk-pro => mcu/dialog/da1469x/scripts}/otp_tool.py (100%)
 rename hw/{bsp/dialog_da1469x-dk-pro => mcu/dialog/da1469x/scripts}/reset.sh (100%)
 rename hw/{bsp/dialog_da1469x-dk-pro => mcu/dialog/da1469x/scripts}/reset_ocd.sh (100%)

[mynewt-core] 02/03: Added bsp and mcu packages for dialog_da14695-dk-usb

Posted by je...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jerzy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git

commit feec1cc17f7cb4a52a6baeb3d79a9164279357f1
Author: Miguel Azevedo <mi...@gmail.com>
AuthorDate: Wed Mar 11 17:14:57 2020 +0000

    Added bsp and mcu packages for dialog_da14695-dk-usb
---
 hw/bsp/dialog_da14695-dk-usb/boot-da14695.ld       |  38 +++
 hw/bsp/dialog_da14695-dk-usb/bsp.yml               |  70 ++++
 hw/bsp/dialog_da14695-dk-usb/da1469x.ld            |  27 ++
 hw/bsp/dialog_da14695-dk-usb/include/bsp/bsp.h     |  76 +++++
 hw/bsp/dialog_da14695-dk-usb/pkg.yml               |  35 ++
 .../src/arch/cortex_m33/gcc_startup_da1469x.S      | 357 +++++++++++++++++++++
 hw/bsp/dialog_da14695-dk-usb/src/hal_bsp.c         |  97 ++++++
 hw/bsp/dialog_da14695-dk-usb/syscfg.yml            |  80 +++++
 hw/mcu/dialog/da14695/include/mcu/mcu.h            | 163 ++++++++++
 hw/mcu/dialog/da14695/pkg.yml                      |  33 ++
 hw/mcu/dialog/da14695/src/da1469x_pd.c             |  74 +++++
 hw/mcu/dialog/da14695/syscfg.yml                   |  20 ++
 12 files changed, 1070 insertions(+)

diff --git a/hw/bsp/dialog_da14695-dk-usb/boot-da14695.ld b/hw/bsp/dialog_da14695-dk-usb/boot-da14695.ld
new file mode 100755
index 0000000..8568a03
--- /dev/null
+++ b/hw/bsp/dialog_da14695-dk-usb/boot-da14695.ld
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+MEMORY
+{
+    /* 
+     * Flash is remapped at 0x0 by 1st stage bootloader, but this is done with
+     * an offset derived from image header thus it is safer to use remapped
+     * address space at 0x0 instead of QSPI_M address space at 0x16000000.
+     * Bootloader partition is 32K, but 9K is currently reserved for product
+     * header (8K) and image header (1K).
+     * First 512 bytes of SYSRAM are remapped at 0x0 and used as ISR vector
+     * (there's no need to reallocate ISR vector) and thus cannot be used by
+     * application.
+     */
+
+    FLASH (rx)  : ORIGIN = (0x00000000), LENGTH = (23 * 1024)
+    RAM (rw)    : ORIGIN = (0x20000000), LENGTH = (512 * 1024)
+}
+
+/* The bootloader does not contain an image header */
+_imghdr_size = 0x0;
diff --git a/hw/bsp/dialog_da14695-dk-usb/bsp.yml b/hw/bsp/dialog_da14695-dk-usb/bsp.yml
new file mode 100644
index 0000000..407f9dc
--- /dev/null
+++ b/hw/bsp/dialog_da14695-dk-usb/bsp.yml
@@ -0,0 +1,70 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+bsp.arch: cortex_m33
+bsp.compiler: "@apache-mynewt-core/compiler/arm-none-eabi-m33"
+bsp.downloadscript:
+    "hw/mcu/dialog/da1469x/scripts/dialog_da1469x-download_jlink.sh"
+bsp.debugscript: "hw/mcu/dialog/da1469x/scripts/dialog_da1469x-debug_jlink.sh"
+
+bsp.linkerscript:
+    - "hw/bsp/dialog_da14695-dk-usb/da1469x.ld"
+    - "hw/mcu/dialog/da1469x/da1469x.ld"
+
+bsp.linkerscript.BOOT_LOADER.OVERWRITE:
+    - "hw/bsp/dialog_da14695-dk-usb/boot-da14695.ld"
+    - "hw/mcu/dialog/da1469x/da1469x.ld"
+
+bsp.linkerscript.RAM_RESIDENT.OVERWRITE:
+    - "hw/bsp/dialog_da14695-dk-usb/boot-da14695.ld"
+    - "hw/mcu/dialog/da1469x/da1469x_ram_resident.ld"
+
+bsp.flash_map:
+    areas:
+        # System areas.
+        FLASH_AREA_BOOTLOADER:
+            device: 0
+            offset: 0x00000000
+            # This does not include 9K of headers currently required by 1st
+            # stage bootloader thus effective total size is 32K (0x0000 to 0x8000)
+            size: 23kB
+        FLASH_AREA_IMAGE_0:
+            device: 0
+            offset: 0x00008000
+            size: 384kB
+        FLASH_AREA_IMAGE_1:
+            device: 0
+            offset: 0x00068000
+            size: 384kB
+        FLASH_AREA_IMAGE_SCRATCH:
+            device: 0
+            offset: 0x000C8000
+            size: 64kB
+
+        # User areas.
+        FLASH_AREA_REBOOT_LOG:
+            user_id: 0
+            device: 0
+            offset: 0x000D8000
+            size: 16kB
+        FLASH_AREA_NFFS:
+            user_id: 1
+            device: 0
+            offset: 0x000DC000
+            size: 16kB
diff --git a/hw/bsp/dialog_da14695-dk-usb/da1469x.ld b/hw/bsp/dialog_da14695-dk-usb/da1469x.ld
new file mode 100755
index 0000000..bbc5498
--- /dev/null
+++ b/hw/bsp/dialog_da14695-dk-usb/da1469x.ld
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+MEMORY
+{
+    FLASH (rx)  : ORIGIN = (0x16008000), LENGTH = (384 * 1024)
+    RAM (rw)    : ORIGIN = (0x20000000), LENGTH = (512 * 1024)
+}
+
+/* This linker script is used for images and thus contains an image header */
+_imghdr_size = 0x20;
diff --git a/hw/bsp/dialog_da14695-dk-usb/include/bsp/bsp.h b/hw/bsp/dialog_da14695-dk-usb/include/bsp/bsp.h
new file mode 100644
index 0000000..5c0b572
--- /dev/null
+++ b/hw/bsp/dialog_da14695-dk-usb/include/bsp/bsp.h
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#ifndef H_BSP_H
+#define H_BSP_H
+
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Define special stackos sections */
+#define sec_data_core   __attribute__((section(".data.core")))
+#define sec_bss_core    __attribute__((section(".bss.core")))
+#define sec_bss_nz_core __attribute__((section(".bss.core.nz")))
+
+/* More convenient section placement macros. */
+#define bssnz_t         sec_bss_nz_core
+
+extern uint8_t _ram_start;
+#define RAM_SIZE            0x80000
+
+/* LED pins */
+#define LED_1               (33)    /* P1_1 */
+#define LED_BLINK_PIN       LED_1
+
+/* Button pins */
+#define BUTTON_1            (6)     /* P0_6 */
+
+/* MikroBUS(R) pins */
+#define MIKROBUS_1_PIN_AN   (41)  /* P1_9 */
+#define MIKROBUS_1_PIN_CS   (20)  /* P0_20 */
+#define MIKROBUS_1_PIN_SCK  (21)  /* P0_21 */
+#define MIKROBUS_1_PIN_MISO (24)  /* P0_24 */
+#define MIKROBUS_1_PIN_MOSI (26)  /* P0_26 */
+#define MIKROBUS_1_PIN_PWM  (33)  /* P1_1 */
+#define MIKROBUS_1_PIN_INT  (27)  /* P1_27 */
+#define MIKROBUS_1_PIN_RX   (28)  /* P1_28 */
+#define MIKROBUS_1_PIN_TX   (29)  /* P1_29 */
+#define MIKROBUS_1_PIN_SCL  (30)  /* P1_30 */
+#define MIKROBUS_1_PIN_SDA  (31)  /* P1_31 */
+
+#define MIKROBUS_2_PIN_AN   (25)  /* P0_25 */
+#define MIKROBUS_2_PIN_CS   (34)  /* P1_2 */
+#define MIKROBUS_2_PIN_SCK  (35)  /* P1_3 */
+#define MIKROBUS_2_PIN_MISO (36)  /* P1_4 */
+#define MIKROBUS_2_PIN_MOSI (37)  /* P1_5 */
+#define MIKROBUS_2_PIN_PWM  (38)  /* P1_6 */
+#define MIKROBUS_2_PIN_INT  (39)  /* P1_7 */
+#define MIKROBUS_2_PIN_RX   (40)  /* P1_8 */
+#define MIKROBUS_2_PIN_TX   (17)  /* P0_17 */
+#define MIKROBUS_2_PIN_SCL  (18)  /* P0_18 */
+#define MIKROBUS_2_PIN_SDA  (19)  /* P0_19 */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  /* H_BSP_H */
diff --git a/hw/bsp/dialog_da14695-dk-usb/pkg.yml b/hw/bsp/dialog_da14695-dk-usb/pkg.yml
new file mode 100644
index 0000000..7979389
--- /dev/null
+++ b/hw/bsp/dialog_da14695-dk-usb/pkg.yml
@@ -0,0 +1,35 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+pkg.name: hw/bsp/dialog_da14695-dk-usb
+pkg.type: bsp
+pkg.description: BSP definition for the Dialog DA14695 USB development kit.
+pkg.author: "Apache Mynewt <de...@mynewt.apache.org>"
+pkg.homepage: "http://mynewt.apache.org/"
+pkg.keywords:
+    - dialog
+    - da1469x
+    - da14695
+
+pkg.cflags.HARDFLOAT:
+    - '-mfloat-abi=hard'
+    - '-mfpu=fpv5-sp-d16'
+
+pkg.deps:
+    - "@apache-mynewt-core/libc/baselibc"
+    - "@apache-mynewt-core/hw/mcu/dialog/da14695"
diff --git a/hw/bsp/dialog_da14695-dk-usb/src/arch/cortex_m33/gcc_startup_da1469x.S b/hw/bsp/dialog_da14695-dk-usb/src/arch/cortex_m33/gcc_startup_da1469x.S
new file mode 100644
index 0000000..c535071
--- /dev/null
+++ b/hw/bsp/dialog_da14695-dk-usb/src/arch/cortex_m33/gcc_startup_da1469x.S
@@ -0,0 +1,357 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+ #include "syscfg/syscfg.h"
+
+    .syntax unified
+    .arch   armv7-m
+
+    .section .stack
+    .align  3
+#ifdef __STACK_SIZE
+    .equ    Stack_Size, __STACK_SIZE
+#else
+    .equ    Stack_Size, 0xC00
+#endif
+    .equ    SYS_CTRL_REG,       0x50000024
+    .equ    CACHE_FLASH_REG,    0x100C0040
+    .equ    RESET_STAT_REG,     0x500000BC
+    .equ    MTB_POSITION_REG,   0xE0043000
+    .equ    MTB_MASTER_REG,     0xE0043004
+    .equ    MTB_FLOW_REG,       0xE0043008
+
+    .globl  __StackTop
+    .globl  __StackLimit
+__StackLimit:
+    .space  Stack_Size
+    .size   __StackLimit, . - __StackLimit
+__StackTop:
+    .size   __StackTop, . - __StackTop
+
+    .section .heap
+    .align  3
+#ifdef __HEAP_SIZE
+    .equ    Heap_Size, __HEAP_SIZE
+#else
+    .equ    Heap_Size, 0
+#endif
+    .globl  __HeapBase
+    .globl  __HeapLimit
+__HeapBase:
+    .if     Heap_Size
+    .space  Heap_Size
+    .endif
+    .size   __HeapBase, . - __HeapBase
+__HeapLimit:
+    .size   __HeapLimit, . - __HeapLimit
+
+    .section .isr_vector
+    .align 2
+    .globl  __isr_vector
+__isr_vector:
+    .long   __StackTop
+    .long   Reset_Handler
+    /* Cortex-M33 interrupts */
+    .long   NMI_Handler
+    .long   HardFault_Handler
+    .long   MemoryManagement_Handler
+    .long   BusFault_Handler
+    .long   UsageFault_Handler
+    .long   SecureFault_Handler
+    .long   0                       /* Reserved */
+    .long   0                       /* Reserved */
+    .long   0                       /* Reserved */
+    .long   SVC_Handler
+    .long   DebugMonitor_Handler
+    .long   0                       /* Reserved */
+    .long   PendSV_Handler
+    .long   SysTick_Handler
+    /* DA1469x interrupts */
+    .long   SENSOR_NODE_IRQHandler
+    .long   DMA_IRQHandler
+    .long   CHARGER_STATE_IRQHandler
+    .long   CHARGER_ERROR_IRQHandler
+    .long   CMAC2SYS_IRQHandler
+    .long   UART_IRQHandler
+    .long   UART2_IRQHandler
+    .long   UART3_IRQHandler
+    .long   I2C_IRQHandler
+    .long   I2C2_IRQHandler
+    .long   SPI_IRQHandler
+    .long   SPI2_IRQHandler
+    .long   PCM_IRQHandler
+    .long   SRC_IN_IRQHandler
+    .long   SRC_OUT_IRQHandler
+    .long   USB_IRQHandler
+    .long   TIMER_IRQHandler
+    .long   TIMER2_IRQHandler
+    .long   RTC_IRQHandler
+    .long   KEY_WKUP_GPIO_IRQHandler
+    .long   PDC_IRQHandler
+    .long   VBUS_IRQHandler
+    .long   MRM_IRQHandler
+    .long   MOTOR_CONTROLLER_IRQHandler
+    .long   TRNG_IRQHandler
+    .long   DCDC_IRQHandler
+    .long   XTAL32M_RDY_IRQHandler
+    .long   ADC_IRQHandler
+    .long   ADC2_IRQHandler
+    .long   CRYPTO_IRQHandler
+    .long   CAPTIMER1_IRQHandler
+    .long   RFDIAG_IRQHandler
+    .long   LCD_CONTROLLER_IRQHandler
+    .long   PLL_LOCK_IRQHandler
+    .long   TIMER3_IRQHandler
+    .long   TIMER4_IRQHandler
+    .long   LRA_IRQHandler
+    .long   RTC_EVENT_IRQHandler
+    .long   GPIO_P0_IRQHandler
+    .long   GPIO_P1_IRQHandler
+    .long   0                       /* Reserved */
+    .long   0                       /* Reserved */
+    .long   0                       /* Reserved */
+    .long   0                       /* Reserved */
+    .long   0                       /* Reserved */
+    .long   0                       /* Reserved */
+    .long   0                       /* Reserved */
+    .long   0                       /* Reserved */
+    .size   __isr_vector, . - __isr_vector
+
+    .section .text_ram
+    .thumb
+    .thumb_func
+    .align 2
+    .globl wakeup_handler
+    .type  wakeup_handler, %function
+wakeup_handler:
+    ldr     r0, =RESET_STAT_REG
+    ldr     r0, [r0, #0]
+    teq     r0, #0
+    ite     eq
+    ldreq   r3, =da1469x_m33_wakeup
+    ldrne   r3, =Reset_Handler
+    bx      r3
+
+    .size   wakeup_handler, . - wakeup_handler
+
+    .text
+    .thumb
+    .thumb_func
+    .align 2
+    .globl Reset_Handler
+    .type  Reset_Handler, %function
+Reset_Handler:
+#if MYNEWT_VAL(RAM_RESIDENT)
+    mov     r0, #0
+    msr     msplim, r0
+#endif
+
+#if MYNEWT_VAL(MCU_MTB_ENABLE)
+    mov     r2, #0
+    ldr     r1, =MTB_POSITION_REG
+    str     r2, [r1]
+    ldr     r1, =MTB_FLOW_REG
+    str     r2, [r1]
+    ldr     r1, =MTB_MASTER_REG
+#if MYNEWT_VAL(MCU_MTB_AUTO_START)
+    ldr     r2, =0x80000009
+#else
+    ldr     r2, =0x00000009
+#endif
+    str     r2, [r1]
+#else
+    ldr     r1, =MTB_MASTER_REG
+    mov     r2, #0
+    str     r2, [r1]
+#endif
+
+ /* Make sure interrupt vector is remapped at 0x0 */
+    ldr     r1, =SYS_CTRL_REG
+    ldrh    r2, [r1, #0]
+    orrs    r2, r2, #8
+    strh    r2, [r1, #0]
+
+#if !MYNEWT_VAL(RAM_RESIDENT)
+/*
+ * Flash is remapped at 0x0 with an offset, i.e. 0x0 does not correspond to
+ * 0x16000000 but to start of an image on flash. This is calculated from product
+ * header by 1st state bootloader and configured in CACHE_FLASH_REG. We need to
+ * retrieve proper offset value for calculations later.
+ */
+    ldr     r1, =CACHE_FLASH_REG
+    ldr     r4, [r1, #0]
+    mov     r2, r4
+    mov     r3, #0xFFFF
+    bic     r4, r4, r3      /* CACHE_FLASH_REG[FLASH_REGION_BASE] */
+    mov     r3, #0xFFF0
+    and     r2, r2, r3      /* CACHE_FLASH_REG[FLASH_REGION_OFFSET] */
+    lsr     r2, r2, #2
+    orr     r4, r4, r2
+
+/* Copy ISR vector from flash to RAM */
+    ldr     r1, =__isr_vector_start     /* src ptr */
+    ldr     r2, =__isr_vector_end       /* src end */
+    ldr     r3, =__intvect_start__      /* dst ptr */
+/* Make sure we copy from QSPIC address range, not from remapped range */
+    cmp     r1, r4
+    itt     lt
+    addlt   r1, r1, r4
+    addlt   r2, r2, r4
+.loop_isr_copy:
+    cmp     r1, r2
+    ittt    lt
+    ldrlt   r0, [r1], #4
+    strlt   r0, [r3], #4
+    blt     .loop_isr_copy
+
+/* Copy QSPI code from flash to RAM */
+    ldr     r1, =__text_ram_addr        /* src ptr */
+    ldr     r2, =__text_ram_start__     /* ptr */
+    ldr     r3, =__text_ram_end__       /* dst end */
+.loop_code_text_ram_copy:
+    cmp     r2, r3
+    ittt    lt
+    ldrlt   r0, [r1], #4
+    strlt   r0, [r2], #4
+    blt     .loop_code_text_ram_copy
+
+/* Copy data from flash to RAM */
+    ldr     r1, =__etext                /* src ptr */
+    ldr     r2, =__data_start__         /* dst ptr */
+    ldr     r3, =__data_end__           /* dst end */
+.loop_data_copy:
+    cmp     r2, r3
+    ittt    lt
+    ldrlt   r0, [r1], #4
+    strlt   r0, [r2], #4
+    blt     .loop_data_copy
+#endif
+
+/* Clear BSS */
+    movs    r0, 0
+    ldr     r1, =__bss_start__
+    ldr     r2, =__bss_end__
+.loop_bss_clear:
+    cmp     r1, r2
+    itt     lt
+    strlt   r0, [r1], #4
+    blt     .loop_bss_clear
+
+    ldr     r0, =__HeapBase
+    ldr     r1, =__HeapLimit
+    bl      _sbrkInit
+
+/* Set reset handler to wakeup handler so we can handle wake up from deep sleep */
+    ldr     r0, =__intvect_start__
+    ldr     r1, =wakeup_handler
+    str     r1, [r0, #4]
+
+    bl      SystemInit
+    bl      hal_system_init
+    bl      _start
+
+    .pool
+    .size   Reset_Handler, . - Reset_Handler
+
+/* Default interrupt handler */
+    .type   Default_Handler, %function
+Default_Handler:
+#if MYNEWT_VAL(MCU_MTB_ENABLE)
+    /* Disable MTB, otherwise it will quickly fill up buffer with infinite loop branch. */
+    ldr     r1, =MTB_POSITION_REG
+    ldr     r2, [r1, #4]
+    bic     r2, #0x80000000
+    str     r2, [r1, #4]
+#endif
+    ldr     r1, =SYS_CTRL_REG
+    ldrh    r2, [r1, #0]
+    orrs    r2, r2, #0x80   /* DEBUGGER_ENABLE */
+    strh    r2, [r1, #0]
+    b       .
+
+    .size   Default_Handler, . - Default_Handler
+
+/* Default handlers for all interrupts */
+    .macro  IRQ handler
+    .weak   \handler
+    .set    \handler, Default_Handler
+    .endm
+
+    /* Cortex-M33 interrupts */
+    IRQ  NMI_Handler
+    IRQ  HardFault_Handler
+    IRQ  MemoryManagement_Handler
+    IRQ  BusFault_Handler
+    IRQ  UsageFault_Handler
+    IRQ  SecureFault_Handler
+    IRQ  SVC_Handler
+    IRQ  DebugMonitor_Handler
+    IRQ  PendSV_Handler
+    IRQ  SysTick_Handler
+    /* DA1469x interrupts */
+    IRQ  SENSOR_NODE_IRQHandler
+    IRQ  DMA_IRQHandler
+    IRQ  CHARGER_STATE_IRQHandler
+    IRQ  CHARGER_ERROR_IRQHandler
+    IRQ  CMAC2SYS_IRQHandler
+    IRQ  UART_IRQHandler
+    IRQ  UART2_IRQHandler
+    IRQ  UART3_IRQHandler
+    IRQ  I2C_IRQHandler
+    IRQ  I2C2_IRQHandler
+    IRQ  SPI_IRQHandler
+    IRQ  SPI2_IRQHandler
+    IRQ  PCM_IRQHandler
+    IRQ  SRC_IN_IRQHandler
+    IRQ  SRC_OUT_IRQHandler
+    IRQ  USB_IRQHandler
+    IRQ  TIMER_IRQHandler
+    IRQ  TIMER2_IRQHandler
+    IRQ  RTC_IRQHandler
+    IRQ  KEY_WKUP_GPIO_IRQHandler
+    IRQ  PDC_IRQHandler
+    IRQ  VBUS_IRQHandler
+    IRQ  MRM_IRQHandler
+    IRQ  MOTOR_CONTROLLER_IRQHandler
+    IRQ  TRNG_IRQHandler
+    IRQ  DCDC_IRQHandler
+    IRQ  XTAL32M_RDY_IRQHandler
+    IRQ  ADC_IRQHandler
+    IRQ  ADC2_IRQHandler
+    IRQ  CRYPTO_IRQHandler
+    IRQ  CAPTIMER1_IRQHandler
+    IRQ  RFDIAG_IRQHandler
+    IRQ  LCD_CONTROLLER_IRQHandler
+    IRQ  PLL_LOCK_IRQHandler
+    IRQ  TIMER3_IRQHandler
+    IRQ  TIMER4_IRQHandler
+    IRQ  LRA_IRQHandler
+    IRQ  RTC_EVENT_IRQHandler
+    IRQ  GPIO_P0_IRQHandler
+    IRQ  GPIO_P1_IRQHandler
+    IRQ  RESERVED40_IRQHandler
+    IRQ  RESERVED41_IRQHandler
+    IRQ  RESERVED42_IRQHandler
+    IRQ  RESERVED43_IRQHandler
+    IRQ  RESERVED44_IRQHandler
+    IRQ  RESERVED45_IRQHandler
+    IRQ  RESERVED46_IRQHandler
+    IRQ  RESERVED47_IRQHandler
+
+.end
diff --git a/hw/bsp/dialog_da14695-dk-usb/src/hal_bsp.c b/hw/bsp/dialog_da14695-dk-usb/src/hal_bsp.c
new file mode 100644
index 0000000..f5bfacf
--- /dev/null
+++ b/hw/bsp/dialog_da14695-dk-usb/src/hal_bsp.c
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#include <assert.h>
+#include <stdint.h>
+#include <string.h>
+#include "hal/hal_bsp.h"
+#include "hal/hal_flash.h"
+#include "hal/hal_system.h"
+#include "mcu/mcu.h"
+#include "mcu/da1469x_hal.h"
+#include "mcu/da1469x_periph.h"
+#include "bsp/bsp.h"
+
+static const struct hal_bsp_mem_dump dump_cfg[] = {
+    [0] = {
+        .hbmd_start = (void *)MCU_MEM_SYSRAM_START_ADDRESS,
+        .hbmd_size = MCU_MEM_SYSRAM_END_ADDRESS - MCU_MEM_SYSRAM_START_ADDRESS,
+    }
+};
+
+/* Note: This is just dummy implementation.
+ * There is no special register for hardware id.
+ * Most probably it should be generated and stored somewhere in OTP.
+ */
+static char hw_id[] = "DA1469X_HW_ID";
+
+const struct hal_flash *
+hal_bsp_flash_dev(uint8_t id)
+{
+    if (id != 0) {
+        return NULL;
+    }
+
+    return &da1469x_flash_dev;
+}
+
+const struct hal_bsp_mem_dump *
+hal_bsp_core_dump(int *area_cnt)
+{
+    *area_cnt = sizeof(dump_cfg) / sizeof(dump_cfg[0]);
+    return dump_cfg;
+}
+
+int
+hal_bsp_power_state(int state)
+{
+    return 0;
+}
+
+int
+hal_bsp_hw_id_len(void)
+{
+    return sizeof(hw_id);
+}
+
+int
+hal_bsp_hw_id(uint8_t *id, int max_len)
+{
+    int len = sizeof(hw_id);
+
+    assert(max_len > len);
+    memcpy(id, hw_id, len);
+
+    return len;
+}
+
+void
+hal_bsp_init(void)
+{
+    /* Make sure system clocks have started */
+    hal_system_clock_start();
+
+    /* Create all available DA1649x peripherals */
+    da1469x_periph_create();
+}
+
+void
+hal_bsp_deinit(void)
+{
+}
diff --git a/hw/bsp/dialog_da14695-dk-usb/syscfg.yml b/hw/bsp/dialog_da14695-dk-usb/syscfg.yml
new file mode 100644
index 0000000..9b3e7b4
--- /dev/null
+++ b/hw/bsp/dialog_da14695-dk-usb/syscfg.yml
@@ -0,0 +1,80 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+syscfg.defs:
+    BOOT_SECURE:
+        description: 'Set to indicate that ROM bootloader is secure'
+        value: 0
+
+    BOOT_AES_SLOT:
+        description: 'Denotes OTP QSPI FW key index used for encryption'
+        value: -1
+
+    BOOT_SIG_SLOT:
+        description: 'Denotes OTP signature key index used for validation'
+        value: -1
+
+    BOOT_AES_KEY:
+        description: 'Specifies path to AES-256-CTR key in base64 format'
+        value: ''
+
+    BOOT_SIG_PEM:
+        description: 'Specifies path to ED25519 private key PEM file'
+        value: ''
+
+    USER_AES_SLOT:
+        description: 'Specifies AES key slot for OTP user data encryption and decryption'
+        value: -1
+
+syscfg.defs.BUS_DRIVER_PRESENT:
+    BSP_FLASH_SPI_NAME:
+        description: 'SPIFLASH device name'
+        value: '"spiflash0"'
+    BSP_FLASH_SPI_BUS:
+        description: 'bus name SPIFLASH is connected to'
+        value:
+
+syscfg.vals:
+    MCU_DCDC_ENABLE: 1
+    # Setting for QSPI Flash
+    QSPI_FLASH_ADDRESS_LENGTH: 24
+    QSPI_FLASH_SECTOR_SIZE: 4096
+    QSPI_FLASH_SECTOR_COUNT: 256
+    QSPI_FLASH_PAGE_SIZE: 256
+    QSPI_FLASH_CMD_QUAD_INPUT_PAGE_PROGRAM: 0x32
+    # Set default pins for peripherals
+    UART_0_PIN_TX: 9
+    UART_0_PIN_RX: 8
+    UART_1_PIN_TX: 9
+    UART_1_PIN_RX: 8
+    UART_1_PIN_RTS: 32
+    UART_1_PIN_CTS: 7
+    I2C_0_PIN_SCL: 29
+    I2C_0_PIN_SDA: 28
+    SPI_0_MASTER_PIN_SCK: 27
+    SPI_0_MASTER_PIN_MOSI: 24
+    SPI_0_MASTER_PIN_MISO: 26
+    # Configure flash areas
+    CONFIG_FCB_FLASH_AREA: FLASH_AREA_NFFS
+    REBOOT_LOG_FLASH_AREA: FLASH_AREA_REBOOT_LOG
+    NFFS_FLASH_AREA: FLASH_AREA_NFFS
+    COREDUMP_FLASH_AREA: FLASH_AREA_IMAGE_1
+
+syscfg.vals.'BLE_HCI_TRANSPORT == "dialog_cmac"':
+    TRNG: 1
diff --git a/hw/mcu/dialog/da14695/include/mcu/mcu.h b/hw/mcu/dialog/da14695/include/mcu/mcu.h
new file mode 100644
index 0000000..bdf4ac7
--- /dev/null
+++ b/hw/mcu/dialog/da14695/include/mcu/mcu.h
@@ -0,0 +1,163 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#ifndef __MCU_MCU_H_
+#define __MCU_MCU_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "DA1469xAB.h"
+
+#define sec_text_ram_core   __attribute__((section(".text_ram"))) __attribute__((noinline))
+
+#define MCU_SYSVIEW_INTERRUPTS \
+    "I#1=Reset,I#2=MNI,I#3=HardFault,I#4=MemoryMgmt,I#5=BusFault,I#6=UsageFault," \
+    "I#7=SecureFault,I#11=SVCall,I#12=DebugMonitor,I#14=PendSV,I#15=SysTick," \
+    "I#16=SENSOR_NODE,I#17=DMA,I#18=CHARGER_STATE,I#19=CHARGER_ERROR," \
+    "I#20=CMAC2SYS,I#21=UART,I#22=UART2,I#23=UART3,I#24=I2C,I#25=I2C2,I#26=SPI," \
+    "I#27=SPI2,I#28=PCM,I#29=SRC_IN,I#30=SRC_OUT,I#31=USB,I#32=TIMER," \
+    "I#33=TIMER2,I#34=RTC,I#35=KEY_WKUP_GPIO,I#36=PDC,I#37=VBUS,I#38=MRM," \
+    "I#39=MOTOR_CONTROLLER,I#40=TRNG,I#41=DCDC,I#42=XTAL32M_RDY,I#43=ADC," \
+    "I#44=ADC2,I#45=CRYPTO,I#46=CAPTIMER1,I#47=RFDIAG,I#48=LCD_CONTROLLER," \
+    "I#49=PLL_LOCK,I#50=TIMER3,I#51=TIMER4,I#52=LRA,I#53=RTC_EVENT," \
+    "I#54=GPIO_P0,I#55=GPIO_P1"
+
+/**
+ * \brief GPIO function
+ *
+ */
+typedef enum {
+    MCU_GPIO_FUNC_GPIO = 0,                  /**< GPIO */
+    MCU_GPIO_FUNC_UART_RX = 1,               /**< GPIO as UART RX */
+    MCU_GPIO_FUNC_UART_TX = 2,               /**< GPIO as UART TX */
+    MCU_GPIO_FUNC_UART2_RX = 3,              /**< GPIO as UART2 RX */
+    MCU_GPIO_FUNC_UART2_TX = 4,              /**< GPIO as UART2 TX */
+    MCU_GPIO_FUNC_UART2_CTSN = 5,            /**< GPIO as UART2 CTSN */
+    MCU_GPIO_FUNC_UART2_RTSN = 6,            /**< GPIO as UART2 RTSN */
+    MCU_GPIO_FUNC_UART3_RX = 7,              /**< GPIO as UART3 RX */
+    MCU_GPIO_FUNC_UART3_TX = 8,              /**< GPIO as UART3 TX */
+    MCU_GPIO_FUNC_UART3_CTSN = 9,            /**< GPIO as UART3 CTSN */
+    MCU_GPIO_FUNC_UART3_RTSN = 10,           /**< GPIO as UART3 RTSN */
+    MCU_GPIO_FUNC_ISO_CLK = 11,              /**< GPIO as ISO CLK */
+    MCU_GPIO_FUNC_ISO_DATA = 12,             /**< GPIO as ISO DATA */
+    MCU_GPIO_FUNC_SPI_DI = 13,               /**< GPIO as SPI DI */
+    MCU_GPIO_FUNC_SPI_DO = 14,               /**< GPIO as SPI DO */
+    MCU_GPIO_FUNC_SPI_CLK = 15,              /**< GPIO as SPI CLK */
+    MCU_GPIO_FUNC_SPI_EN = 16,               /**< GPIO as SPI EN */
+    MCU_GPIO_FUNC_SPI2_DI = 17,              /**< GPIO as SPI2 DI */
+    MCU_GPIO_FUNC_SPI2_DO = 18,              /**< GPIO as SPI2 DO */
+    MCU_GPIO_FUNC_SPI2_CLK = 19,             /**< GPIO as SPI2 CLK */
+    MCU_GPIO_FUNC_SPI2_EN = 20,              /**< GPIO as SPI2 EN */
+    MCU_GPIO_FUNC_I2C_SCL = 21,              /**< GPIO as I2C SCL */
+    MCU_GPIO_FUNC_I2C_SDA = 22,              /**< GPIO as I2C SDA */
+    MCU_GPIO_FUNC_I2C2_SCL = 23,             /**< GPIO as I2C2 SCL */
+    MCU_GPIO_FUNC_I2C2_SDA = 24,             /**< GPIO as I2C2 SDA */
+    MCU_GPIO_FUNC_USB_SOF = 25,              /**< GPIO as USB SOF */
+    MCU_GPIO_FUNC_ADC = 26,                  /**< GPIO as ADC (dedicated pin) */
+    MCU_GPIO_FUNC_USB = 27,                  /**< GPIO as USB */
+    MCU_GPIO_FUNC_PCM_DI = 28,               /**< GPIO as PCM DI */
+    MCU_GPIO_FUNC_PCM_DO = 29,               /**< GPIO as PCM DO */
+    MCU_GPIO_FUNC_PCM_FSC = 30,              /**< GPIO as PCM FSC */
+    MCU_GPIO_FUNC_PCM_CLK = 31,              /**< GPIO as PCM CLK */
+    MCU_GPIO_FUNC_PDM_DATA = 32,             /**< GPIO as PDM DATA */
+    MCU_GPIO_FUNC_PDM_CLK = 33,              /**< GPIO as PDM CLK */
+    MCU_GPIO_FUNC_COEX_EXT_ACT = 34,         /**< GPIO as COEX EXT ACT0 */
+    MCU_GPIO_FUNC_COEX_SMART_ACT = 35,       /**< GPIO as COEX SMART ACT */
+    MCU_GPIO_FUNC_COEX_SMART_PRI = 36,       /**< GPIO as COEX SMART PRI */
+    MCU_GPIO_FUNC_PORT0_DCF = 37,            /**< GPIO as PORT0 DCF */
+    MCU_GPIO_FUNC_PORT1_DCF = 38,            /**< GPIO as PORT1 DCF */
+    MCU_GPIO_FUNC_PORT2_DCF = 39,            /**< GPIO as PORT2 DCF */
+    MCU_GPIO_FUNC_PORT3_DCF = 40,            /**< GPIO as PORT3 DCF */
+    MCU_GPIO_FUNC_PORT4_DCF = 41,            /**< GPIO as PORT4 DCF */
+    MCU_GPIO_FUNC_CLOCK = 42,                /**< GPIO as CLOCK */
+    MCU_GPIO_FUNC_PG = 43,                   /**< GPIO as PG */
+    MCU_GPIO_FUNC_LCD = 44,                  /**< GPIO as LCD */
+    MCU_GPIO_FUNC_LCD_SPI_DC = 45,           /**< GPIO as LCD SPI DC */
+    MCU_GPIO_FUNC_LCD_SPI_DO = 46,           /**< GPIO as LCD SPI DO */
+    MCU_GPIO_FUNC_LCD_SPI_CLK = 47,          /**< GPIO as LCD SPI CLK */
+    MCU_GPIO_FUNC_LCD_SPI_EN = 48,           /**< GPIO as LCD SPI EN */
+    MCU_GPIO_FUNC_TIM_PWM = 49,              /**< GPIO as TIM PWM */
+    MCU_GPIO_FUNC_TIM2_PWM = 50,             /**< GPIO as TIM2 PWM */
+    MCU_GPIO_FUNC_TIM_1SHOT = 51,            /**< GPIO as TIM 1SHOT */
+    MCU_GPIO_FUNC_TIM2_1SHOT = 52,           /**< GPIO as TIM2 1SHOT */
+    MCU_GPIO_FUNC_TIM3_PWM = 53,             /**< GPIO as TIM3 PWM */
+    MCU_GPIO_FUNC_TIM4_PWM = 54,             /**< GPIO as TIM4 PWM */
+    MCU_GPIO_FUNC_AGC_EXT = 55,              /**< GPIO as AGC EXT */
+    MCU_GPIO_FUNC_CMAC_DIAG0 = 56,           /**< GPIO as CMAC DIAG0 */
+    MCU_GPIO_FUNC_CMAC_DIAG1 = 57,           /**< GPIO as CMAC DIAG1 */
+    MCU_GPIO_FUNC_CMAC_DIAG2 = 58,           /**< GPIO as CMAC DIAG2 */
+    MCU_GPIO_FUNC_CMAC_DIAGX = 59,           /**< GPIO as CMAC DIAGX */
+    MCU_GPIO_FUNC_LAST,
+} mcu_gpio_func;
+
+#define MCU_GPIO_MODE_INPUT                 0x000    /**< GPIO as an input */
+#define MCU_GPIO_MODE_INPUT_PULLUP          0x100    /**< GPIO as an input with pull-up */
+#define MCU_GPIO_MODE_INPUT_PULLDOWN        0x200    /**< GPIO as an input with pull-down */
+#define MCU_GPIO_MODE_OUTPUT                0x300    /**< GPIO as an output */
+#define MCU_GPIO_MODE_OUTPUT_OPEN_DRAIN     0x700    /**< GPIO as an open-drain output */
+
+#define MCU_GPIO_PORT0_PIN_COUNT            32
+#define MCU_GPIO_PORT0(pin)    ((0 * 32) + (pin))
+#define MCU_GPIO_PORT1(pin)    ((1 * 32) + (pin))
+#define MCU_DMA_CHAN_MAX                    8
+
+#define MCU_PIN_USB_DP                      MCU_GPIO_PORT0(14)
+#define MCU_PIN_USB_DM                      MCU_GPIO_PORT0(15)
+
+#define MCU_PIN_GPADC_SEL0               MCU_GPIO_PORT1(9)
+#define MCU_PIN_GPADC_SEL1               MCU_GPIO_PORT0(25)
+#define MCU_PIN_GPADC_SEL2               MCU_GPIO_PORT0(8)
+#define MCU_PIN_GPADC_SEL3               MCU_GPIO_PORT0(9)
+#define MCU_PIN_GPADC_DIFF0_P0           MCU_GPIO_PORT1(9)
+#define MCU_PIN_GPADC_DIFF0_P1           MCU_GPIO_PORT0(25)
+#define MCU_PIN_GPADC_DIFF1_P0           MCU_GPIO_PORT0(8)
+#define MCU_PIN_GPADC_DIFF1_P1           MCU_GPIO_PORT0(9)
+
+#define MCU_PIN_SDADC0               MCU_GPIO_PORT1(9)
+#define MCU_PIN_SDADC1               MCU_GPIO_PORT0(25)
+#define MCU_PIN_SDADC2               MCU_GPIO_PORT0(8)
+#define MCU_PIN_SDADC3               MCU_GPIO_PORT0(9)
+
+void mcu_gpio_set_pin_function(int pin, int mode, mcu_gpio_func func);
+void mcu_gpio_enter_sleep(void);
+void mcu_gpio_exit_sleep(void);
+
+#define MCU_MEM_QSPIF_M_END_REMAP_ADDRESS (0x800000)
+#define MCU_MEM_QSPIF_M_START_ADDRESS   (0x16000000)
+#define MCU_MEM_QSPIF_M_END_ADDRESS     (0x18000000)
+#define MCU_MEM_SYSRAM_START_ADDRESS    (0x20000000)
+#define MCU_MEM_SYSRAM_END_ADDRESS      (0x20080000)
+#define MCU_MEM_QSPIF_M_RANGE_ADDRESS(x) \
+    ((uint32_t)(x) >= (uint32_t)MCU_MEM_QSPIF_M_START_ADDRESS && \
+     (uint32_t)(x) <= (uint32_t)MCU_MEM_QSPIF_M_END_ADDRESS)
+
+#define MCU_OTPM_BASE 0x30080000UL
+#define MCU_OTPM_SIZE 4096
+
+/* Largest group id seen on a DA14699 was 18 so far */
+#define MCU_TRIMV_GROUP_ID_MAX          (18)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MCU_MCU_H_ */
+
diff --git a/hw/mcu/dialog/da14695/pkg.yml b/hw/mcu/dialog/da14695/pkg.yml
new file mode 100644
index 0000000..f53170a
--- /dev/null
+++ b/hw/mcu/dialog/da14695/pkg.yml
@@ -0,0 +1,33 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+pkg.name: hw/mcu/dialog/da14695
+pkg.description: MCU definition for Dialog DA14695 ARM Cortex-M33 chip
+pkg.author: "Apache Mynewt <de...@mynewt.apache.org>"
+pkg.homepage: "http://mynewt.apache.org/"
+pkg.keywords:
+    - dialog
+    - da1469x
+    - da14695
+
+pkg.deps:
+    - "@apache-mynewt-core/hw/hal"
+    - "@apache-mynewt-core/hw/cmsis-core"
+    - "@apache-mynewt-core/hw/mcu/dialog/da1469x"
+
diff --git a/hw/mcu/dialog/da14695/src/da1469x_pd.c b/hw/mcu/dialog/da14695/src/da1469x_pd.c
new file mode 100644
index 0000000..d6ca249
--- /dev/null
+++ b/hw/mcu/dialog/da14695/src/da1469x_pd.c
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#include <stdint.h>
+#include "mcu/da1469x_pd.h"
+
+static inline uint32_t
+get_reg32(uint32_t addr)
+{
+    volatile uint32_t *reg = (volatile uint32_t *)addr;
+
+    return *reg;
+}
+
+static inline void
+set_reg32(uint32_t addr, uint32_t val)
+{
+    volatile uint32_t *reg = (volatile uint32_t *)addr;
+
+    *reg = val;
+}
+
+static inline void
+set_reg32_mask(uint32_t addr, uint32_t mask, uint32_t val)
+{
+    volatile uint32_t *reg = (volatile uint32_t *)addr;
+
+    *reg = (*reg & (~mask)) | (val & mask);
+}
+
+void
+da1469x_pd_apply_preferred(uint8_t pd)
+{
+    switch (pd) {
+    case MCU_PD_DOMAIN_AON:
+        if (get_reg32(0x500000f8) == 0x00008800) {
+            set_reg32(0x500000f8, 0x00007700);
+        }
+        set_reg32_mask(0x50000050, 0x00001000, 0x00001020);
+        set_reg32(0x500000a4, 0x000000ca);
+        set_reg32_mask(0x50000064, 0x0003ffff, 0x041e6ef4);
+        break;
+    case MCU_PD_DOMAIN_SYS:
+        set_reg32_mask(0x50040400, 0x00000c00, 0x003f6a78);
+        set_reg32_mask(0x50040454, 0x000003ff, 0x00000002);
+        break;
+    case MCU_PD_DOMAIN_TIM:
+        set_reg32_mask(0x50010000, 0x3ff00000, 0x000afd70);
+        set_reg32_mask(0x50010010, 0x000000c0, 0x00000562);
+        set_reg32_mask(0x50010030, 0x43c38002, 0x4801e6b6);
+        set_reg32_mask(0x50010034, 0x007fff00, 0x7500a1a4);
+        set_reg32_mask(0x50010038, 0x00000fff, 0x001e45c4);
+        set_reg32_mask(0x5001003c, 0x40000000, 0x40096255);
+        set_reg32_mask(0x50010040, 0x00c00000, 0x00c00000);
+        set_reg32_mask(0x50010018, 0x000000ff, 0x00000180);
+        break;
+    }
+}
diff --git a/hw/mcu/dialog/da14695/syscfg.yml b/hw/mcu/dialog/da14695/syscfg.yml
new file mode 100644
index 0000000..9b024f3
--- /dev/null
+++ b/hw/mcu/dialog/da14695/syscfg.yml
@@ -0,0 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+syscfg.vals:
+    MCU_TARGET: DA14695

[mynewt-core] 03/03: Added serial load option to da1469x download script.

Posted by je...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jerzy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git

commit 8b90a1ba471381864406dd1c7ae8539535bdbef2
Author: Miguel Azevedo <mi...@gmail.com>
AuthorDate: Wed Apr 15 19:38:34 2020 +0100

    Added serial load option to da1469x download script.
---
 .../da1469x/scripts/dialog_da1469x-download_jlink.sh     | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/hw/mcu/dialog/da1469x/scripts/dialog_da1469x-download_jlink.sh b/hw/mcu/dialog/da1469x/scripts/dialog_da1469x-download_jlink.sh
index 572465e..4feea80 100755
--- a/hw/mcu/dialog/da1469x/scripts/dialog_da1469x-download_jlink.sh
+++ b/hw/mcu/dialog/da1469x/scripts/dialog_da1469x-download_jlink.sh
@@ -109,13 +109,27 @@ if [ -z $JLINK_TARGET_HOST ]; then
     JLINK_SERVER_CMD="shell sh -c \"trap '' 2; $JLINK_GDB_SERVER -device cortex-m33 -speed 4000 -if SWD -port $PORT -singlerun $EXTRA_JTAG_CMD > $JLINK_LOG_FILE 2>&1 &\""
 fi
 
+if [ -n "$UART_PROTO_DEV" ]; then
+    ${CORE_PATH}/hw/mcu/dialog/da1469x/scripts/da1469x_serial.py load ${FLASH_LOADER}.bin \
+                -u ${UART_PROTO_DEV} -r ${CORE_PATH}/hw/mcu/dialog/da1469x/scripts/reset.sh
+    if [ $? != 0 ]; then
+        exit 1
+    fi
+fi
+
 cat > $GDB_CMD_FILE <<EOF
 set pagination off
 $JLINK_SERVER_CMD
 $JLINK_TARGET_CMD
 mon reset
 mon halt
-restore $FLASH_LOADER.bin binary 0x20000000
+EOF
+
+if [ ! -n "$UART_PROTO_DEV" ]; then
+    echo "restore $FLASH_LOADER.bin binary 0x20000000" >> $GDB_CMD_FILE
+fi
+
+cat >> $GDB_CMD_FILE <<EOF
 symbol-file $FLASH_LOADER
 
 # Configure QSPI controller so it can read flash in automode (values 

[mynewt-core] 01/03: mcu/da1469x: Move scripts from bsp to mcu

Posted by je...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jerzy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git

commit afcf581beec4fe1667299ff57ad9980c334e3d28
Author: Jerzy Kasenberg <je...@codecoup.pl>
AuthorDate: Thu Feb 17 10:05:44 2022 +0100

    mcu/da1469x: Move scripts from bsp to mcu
    
    To avoid having multiple copies of download/debug scripts in da1469x based bsps,
    scripts are moved to scripts folder that can be used by many bsps.
    This is first step to introduce second Dialog board.
---
 hw/bsp/dialog_da1469x-dk-pro/bsp.yml                                  | 4 ++--
 .../dialog/da1469x/scripts}/cfg/device.cfg                            | 0
 .../dialog/da1469x/scripts}/cfg/ft4232h.cfg                           | 0
 .../dialog/da1469x/scripts}/da1469x_header_tool.py                    | 0
 .../dialog/da1469x/scripts}/da1469x_serial.py                         | 0
 .../dialog/da1469x/scripts/dialog_da1469x-debug_jlink.sh}             | 0
 .../dialog/da1469x/scripts/dialog_da1469x-download_jlink.sh}          | 4 ++--
 .../dialog_da1469x-dk-pro => mcu/dialog/da1469x/scripts}/otp_tool.py  | 0
 hw/{bsp/dialog_da1469x-dk-pro => mcu/dialog/da1469x/scripts}/reset.sh | 0
 .../dialog_da1469x-dk-pro => mcu/dialog/da1469x/scripts}/reset_ocd.sh | 0
 10 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/hw/bsp/dialog_da1469x-dk-pro/bsp.yml b/hw/bsp/dialog_da1469x-dk-pro/bsp.yml
index 9120492..7b184e5 100644
--- a/hw/bsp/dialog_da1469x-dk-pro/bsp.yml
+++ b/hw/bsp/dialog_da1469x-dk-pro/bsp.yml
@@ -20,8 +20,8 @@
 bsp.arch: cortex_m33
 bsp.compiler: "@apache-mynewt-core/compiler/arm-none-eabi-m33"
 bsp.downloadscript:
-    "hw/bsp/dialog_da1469x-dk-pro/dialog_da1469x-dk-pro_download.sh"
-bsp.debugscript: "hw/bsp/dialog_da1469x-dk-pro/dialog_da1469x-dk-pro_debug.sh"
+    "hw/mcu/dialog/da1469x/scripts/dialog_da1469x-download_jlink.sh"
+bsp.debugscript: "hw/mcu/dialog/da1469x/scripts/dialog_da1469x-debug_jlink.sh"
 
 bsp.linkerscript:
     - "hw/bsp/dialog_da1469x-dk-pro/da1469x.ld"
diff --git a/hw/bsp/dialog_da1469x-dk-pro/cfg/device.cfg b/hw/mcu/dialog/da1469x/scripts/cfg/device.cfg
similarity index 100%
rename from hw/bsp/dialog_da1469x-dk-pro/cfg/device.cfg
rename to hw/mcu/dialog/da1469x/scripts/cfg/device.cfg
diff --git a/hw/bsp/dialog_da1469x-dk-pro/cfg/ft4232h.cfg b/hw/mcu/dialog/da1469x/scripts/cfg/ft4232h.cfg
similarity index 100%
rename from hw/bsp/dialog_da1469x-dk-pro/cfg/ft4232h.cfg
rename to hw/mcu/dialog/da1469x/scripts/cfg/ft4232h.cfg
diff --git a/hw/bsp/dialog_da1469x-dk-pro/da1469x_header_tool.py b/hw/mcu/dialog/da1469x/scripts/da1469x_header_tool.py
similarity index 100%
rename from hw/bsp/dialog_da1469x-dk-pro/da1469x_header_tool.py
rename to hw/mcu/dialog/da1469x/scripts/da1469x_header_tool.py
diff --git a/hw/bsp/dialog_da1469x-dk-pro/da1469x_serial.py b/hw/mcu/dialog/da1469x/scripts/da1469x_serial.py
similarity index 100%
rename from hw/bsp/dialog_da1469x-dk-pro/da1469x_serial.py
rename to hw/mcu/dialog/da1469x/scripts/da1469x_serial.py
diff --git a/hw/bsp/dialog_da1469x-dk-pro/dialog_da1469x-dk-pro_debug.sh b/hw/mcu/dialog/da1469x/scripts/dialog_da1469x-debug_jlink.sh
similarity index 100%
rename from hw/bsp/dialog_da1469x-dk-pro/dialog_da1469x-dk-pro_debug.sh
rename to hw/mcu/dialog/da1469x/scripts/dialog_da1469x-debug_jlink.sh
diff --git a/hw/bsp/dialog_da1469x-dk-pro/dialog_da1469x-dk-pro_download.sh b/hw/mcu/dialog/da1469x/scripts/dialog_da1469x-download_jlink.sh
similarity index 95%
rename from hw/bsp/dialog_da1469x-dk-pro/dialog_da1469x-dk-pro_download.sh
rename to hw/mcu/dialog/da1469x/scripts/dialog_da1469x-download_jlink.sh
index 9755363..572465e 100755
--- a/hw/bsp/dialog_da1469x-dk-pro/dialog_da1469x-dk-pro_download.sh
+++ b/hw/mcu/dialog/da1469x/scripts/dialog_da1469x-download_jlink.sh
@@ -88,11 +88,11 @@ if [ "$BOOT_LOADER" ]; then
             exit 1
         fi
 
-        ${BSP_PATH}/da1469x_header_tool.py secure --sign ${MYNEWT_VAL_BOOT_SIG_PEM} \
+        ${CORE_PATH}/hw/mcu/dialog/da1469x/scripts/da1469x_header_tool.py secure --sign ${MYNEWT_VAL_BOOT_SIG_PEM} \
             -s${MYNEWT_VAL_BOOT_SIG_SLOT} -d${MYNEWT_VAL_BOOT_AES_SLOT} \
             -E${MYNEWT_VAL_BOOT_AES_KEY} ${IMAGE_FILE} ${FILE_NAME}
     else
-        ${BSP_PATH}/da1469x_header_tool.py nonsecure ${IMAGE_FILE} ${FILE_NAME}
+        ${CORE_PATH}/hw/mcu/dialog/da1469x/scripts/da1469x_header_tool.py nonsecure ${IMAGE_FILE} ${FILE_NAME}
     fi
 
     if [ $? != 0 ]; then
diff --git a/hw/bsp/dialog_da1469x-dk-pro/otp_tool.py b/hw/mcu/dialog/da1469x/scripts/otp_tool.py
similarity index 100%
rename from hw/bsp/dialog_da1469x-dk-pro/otp_tool.py
rename to hw/mcu/dialog/da1469x/scripts/otp_tool.py
diff --git a/hw/bsp/dialog_da1469x-dk-pro/reset.sh b/hw/mcu/dialog/da1469x/scripts/reset.sh
similarity index 100%
rename from hw/bsp/dialog_da1469x-dk-pro/reset.sh
rename to hw/mcu/dialog/da1469x/scripts/reset.sh
diff --git a/hw/bsp/dialog_da1469x-dk-pro/reset_ocd.sh b/hw/mcu/dialog/da1469x/scripts/reset_ocd.sh
similarity index 100%
rename from hw/bsp/dialog_da1469x-dk-pro/reset_ocd.sh
rename to hw/mcu/dialog/da1469x/scripts/reset_ocd.sh