From 8daedc3591c3b0fa5aeda83e4c8b5f9607394295 Mon Sep 17 00:00:00 2001
From: schneider <schneider@blinkenlichts.net>
Date: Mon, 6 May 2019 10:37:54 +0200
Subject: [PATCH] chore(sdk): copy evkit board to card10 board

---
 sdk/Libraries/Boards/card10/Include/board.h | 134 +++++++++++++++
 sdk/Libraries/Boards/card10/Source/board.c  | 179 ++++++++++++++++++++
 sdk/Libraries/Boards/card10/adapters.txt    |   4 +
 sdk/Libraries/Boards/card10/board.mk        |  59 +++++++
 sdk/Libraries/Boards/card10/examples.txt    |  38 +++++
 5 files changed, 414 insertions(+)
 create mode 100644 sdk/Libraries/Boards/card10/Include/board.h
 create mode 100644 sdk/Libraries/Boards/card10/Source/board.c
 create mode 100644 sdk/Libraries/Boards/card10/adapters.txt
 create mode 100644 sdk/Libraries/Boards/card10/board.mk
 create mode 100644 sdk/Libraries/Boards/card10/examples.txt

diff --git a/sdk/Libraries/Boards/card10/Include/board.h b/sdk/Libraries/Boards/card10/Include/board.h
new file mode 100644
index 00000000..82f5ff8a
--- /dev/null
+++ b/sdk/Libraries/Boards/card10/Include/board.h
@@ -0,0 +1,134 @@
+/*******************************************************************************
+ * Copyright (C) 2017 Maxim Integrated Products, Inc., All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
+ * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name of Maxim Integrated
+ * Products, Inc. shall not be used except as stated in the Maxim Integrated
+ * Products, Inc. Branding Policy.
+ *
+ * The mere transfer of this software does not imply any licenses
+ * of trade secrets, proprietary technology, copyrights, patents,
+ * trademarks, maskwork rights, or any other form of intellectual
+ * property whatsoever. Maxim Integrated Products, Inc. retains all
+ * ownership rights.
+ *
+ * $Date: 2018-08-29 19:57:14 +0000 (Wed, 29 Aug 2018) $
+ * $Revision: 37501 $
+ *
+ ******************************************************************************/
+
+/**
+ * @file    board.h
+ * @brief   Board support package API.
+ */
+
+
+#include <stdio.h>
+#include "spixfc.h"
+
+#ifndef _BOARD_H
+#define _BOARD_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef CONSOLE_UART
+#define CONSOLE_UART    1      /// UART instance to use for console
+#endif
+
+#ifndef CONSOLE_BAUD
+#define CONSOLE_BAUD    115200  /// Console baud rate
+#endif
+
+#define LED_OFF         1       /// Inactive state of LEDs
+#define LED_ON          0       /// Active state of LEDs
+
+#define MX25_SPI                    MXC_SPIXFC
+#define MX25_SSEL                   0
+// #define SPI_CHAR_BITS               8
+
+
+/**
+ * \brief   Initialize the BSP and board interfaces.
+ * \returns #E_NO_ERROR if everything is successful
+ */
+int Board_Init(void);
+
+/**
+ * \brief   Initialize or reinitialize the console. This may be necessary if the
+ *          system clock rate is changed.
+ * \returns #E_NO_ERROR if everything is successful
+ */
+int Console_Init(void);
+
+/**
+ * \brief   Attempt to prepare the console for sleep.
+ * \returns #E_NO_ERROR if ready to sleep, #E_BUSY if not ready for sleep.
+ */
+int Console_PrepForSleep(void);
+
+/**
+ * @brief   Initialize or reinitialize the console. This may be necessary if the
+ *          system clock rate is changed.
+ * @returns #E_NO_ERROR if everything is successful
+ */
+int Console_Shutdown(void);
+
+/**
+ * \brief   Initialize the SPI peripheral to use for MX25
+  * \returns #E_NO_ERROR if everything is successful
+ */
+int MX25_Board_Init(void);
+
+/**
+ * \brief   Translation function to implement SPI Read transaction
+ * @param   read        Pointer to where master will store data.
+ * @param   len         Number of characters to send.
+ * @param   deassert    Deassert slave select at the end of the transaction.
+ * @param   width       spi_width_t for how many data lines to use 
+ * \returns #E_NO_ERROR if successful, !=0 otherwise
+ */
+
+int MX25_Board_Read(uint8_t* read, unsigned len, unsigned deassert, spixfc_width_t width);
+/**
+ * \brief   Translation function to implement SPI Write transaction
+ * @param   write       Pointer to data master will write.
+ * @param   len         Number of characters to send.
+ * @param   deassert    Deassert slave select at the end of the transaction.
+ * @param   width       spi_width_t for how many data lines to use
+ * \returns #E_NO_ERROR if successful, !=0 otherwise
+ */
+
+int MX25_Board_Write(const uint8_t* write, unsigned len, unsigned deassert, spixfc_width_t width);
+
+/**
+ * \brief   Send clocks on SCLK.
+ * @param   len         Number of characters to send.
+ * @param   deassert    Deassert slave select at the end of the transaction.
+ * \returns #E_NO_ERROR if successful, !=0 otherwise
+ */
+int MX25_Clock(unsigned len, unsigned deassert);;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BOARD_H */
diff --git a/sdk/Libraries/Boards/card10/Source/board.c b/sdk/Libraries/Boards/card10/Source/board.c
new file mode 100644
index 00000000..647c579d
--- /dev/null
+++ b/sdk/Libraries/Boards/card10/Source/board.c
@@ -0,0 +1,179 @@
+/*******************************************************************************
+ * Copyright (C) 2015 Maxim Integrated Products, Inc., All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
+ * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name of Maxim Integrated
+ * Products, Inc. shall not be used except as stated in the Maxim Integrated
+ * Products, Inc. Branding Policy.
+ *
+ * The mere transfer of this software does not imply any licenses
+ * of trade secrets, proprietary technology, copyrights, patents,
+ * trademarks, maskwork rights, or any other form of intellectual
+ * property whatsoever. Maxim Integrated Products, Inc. retains all
+ * ownership rights.
+ *
+ * $Date: 2018-12-03 19:30:05 +0000 (Mon, 03 Dec 2018) $
+ * $Revision: 39561 $
+ *
+ ******************************************************************************/
+
+#include <stdio.h>
+#include "mxc_config.h"
+#include "mxc_sys.h"
+#include "mxc_assert.h"
+#include "board.h"
+#include "uart.h"
+#include "gpio.h"
+#include "mxc_pins.h"
+#include "led.h"
+#include "pb.h"
+#include "spixfc.h"
+
+/***** Global Variables *****/
+mxc_uart_regs_t * ConsoleUart = MXC_UART_GET_UART(CONSOLE_UART);
+extern uint32_t SystemCoreClock;
+
+const gpio_cfg_t pb_pin[] = {
+    {PORT_1, PIN_6, GPIO_FUNC_IN, GPIO_PAD_PULL_UP},
+    {PORT_1, PIN_7, GPIO_FUNC_IN, GPIO_PAD_PULL_UP},
+};
+const unsigned int num_pbs = (sizeof(pb_pin) / sizeof(gpio_cfg_t));
+
+const gpio_cfg_t led_pin[] = {
+    {PORT_1, PIN_14, GPIO_FUNC_OUT, GPIO_PAD_NONE},
+    {PORT_1, PIN_15, GPIO_FUNC_OUT, GPIO_PAD_NONE},
+};
+const unsigned int num_leds = (sizeof(led_pin) / sizeof(gpio_cfg_t));
+
+/***** File Scope Variables *****/
+const uart_cfg_t uart_cfg = {
+    .parity = UART_PARITY_DISABLE,
+    .size   = UART_DATA_SIZE_8_BITS,
+    .stop   = UART_STOP_1,
+    .flow   = UART_FLOW_CTRL_DIS,
+    .pol    = UART_FLOW_POL_DIS,
+    .baud   = CONSOLE_BAUD,
+    .clksel = UART_CLKSEL_SYSTEM
+};
+
+const sys_cfg_uart_t uart_sys_cfg = {
+    .map = MAP_A,
+    .flow = Disable
+};
+
+const sys_cfg_spixfc_t spixfc_sys_cfg = NULL;   // There is no special system configuration parameters for SPIXC
+
+const spixfc_cfg_t mx25_spixfc_cfg = {
+    0, //mode
+    0, //ssel_pol
+    10000000 //baud
+};
+
+/******************************************************************************/
+void mxc_assert(const char *expr, const char *file, int line)
+{
+    printf("MXC_ASSERT %s #%d: (%s)\n", file, line, expr);
+    while (1);
+}
+
+/******************************************************************************/
+int Board_Init(void)
+{
+    int err;
+
+    if ((err = Console_Init()) != E_NO_ERROR) {
+        MXC_ASSERT_FAIL();
+        return err;
+    }
+
+    if ((err = PB_Init()) != E_NO_ERROR) {
+        MXC_ASSERT_FAIL();
+        return err;
+    }
+
+    if ((err = LED_Init()) != E_NO_ERROR) {
+        MXC_ASSERT_FAIL();
+        return err;
+    }
+	
+    return E_NO_ERROR;
+}
+
+/******************************************************************************/
+int Console_Init(void)
+{
+    int err;
+
+    if ((err = UART_Init(ConsoleUart, &uart_cfg, &uart_sys_cfg)) != E_NO_ERROR) {
+        return err;
+    }
+
+    return E_NO_ERROR;
+}
+
+/******************************************************************************/
+int Console_Shutdown(void)
+{
+    int err;
+    
+    if ((err = UART_Shutdown(ConsoleUart)) != E_NO_ERROR) {
+        return err;
+    }
+    
+    return E_NO_ERROR;
+}
+
+/******************************************************************************/
+void NMI_Handler(void)
+{
+    __NOP();
+}
+
+
+/******************************************************************************/
+int MX25_Board_Init(void)
+{
+  return SPIXFC_Init(MX25_SPI, &mx25_spixfc_cfg, &spixfc_sys_cfg);
+
+}
+
+/******************************************************************************/
+int MX25_Board_Read(uint8_t* read, unsigned len, unsigned deassert, spixfc_width_t width)
+{
+
+    spixfc_req_t req = {MX25_SSEL,deassert,0,NULL,read, width,len,0,0,NULL};
+	
+    return SPIXFC_Trans(MX25_SPI, &req);
+}
+
+/******************************************************************************/
+int MX25_Board_Write(const uint8_t* write, unsigned len, unsigned deassert, spixfc_width_t width)
+{
+	
+    spixfc_req_t req = {MX25_SSEL,deassert,0,write,NULL, width,len,0,0,NULL};
+	
+    return SPIXFC_Trans(MX25_SPI, &req);
+}
+
+/******************************************************************************/
+int MX25_Clock(unsigned len, unsigned deassert)
+{
+    return SPIXFC_Clocks(MX25_SPI, len, MX25_SSEL, deassert);
+}
diff --git a/sdk/Libraries/Boards/card10/adapters.txt b/sdk/Libraries/Boards/card10/adapters.txt
new file mode 100644
index 00000000..269a39d8
--- /dev/null
+++ b/sdk/Libraries/Boards/card10/adapters.txt
@@ -0,0 +1,4 @@
+OLIMEX-ARM-USB-OCD-H SWD, interface/ftdi/olimex-arm-usb-ocd-h.cfg -f interface/ftdi/olimex-arm-jtag-swd.cfg
+OLIMEX-ARM-USB-TINY-H SWD, interface/ftdi/olimex-arm-usb-tiny-h.cfg -f interface/ftdi/olimex-arm-jtag-swd.cfg
+MAX32625_PICO, interface/cmsis-dap.cfg
+CMSIS-DAP, interface/cmsis-dap.cfg
\ No newline at end of file
diff --git a/sdk/Libraries/Boards/card10/board.mk b/sdk/Libraries/Boards/card10/board.mk
new file mode 100644
index 00000000..6bb725d4
--- /dev/null
+++ b/sdk/Libraries/Boards/card10/board.mk
@@ -0,0 +1,59 @@
+################################################################################
+ # Copyright (C) 2017 Maxim Integrated Products, Inc., All Rights Reserved.
+ #
+ # Permission is hereby granted, free of charge, to any person obtaining a
+ # copy of this software and associated documentation files (the "Software"),
+ # to deal in the Software without restriction, including without limitation
+ # the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ # and/or sell copies of the Software, and to permit persons to whom the
+ # Software is furnished to do so, subject to the following conditions:
+ #
+ # The above copyright notice and this permission notice shall be included
+ # in all copies or substantial portions of the Software.
+ #
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ # IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
+ # OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ # OTHER DEALINGS IN THE SOFTWARE.
+ #
+ # Except as contained in this notice, the name of Maxim Integrated
+ # Products, Inc. shall not be used except as stated in the Maxim Integrated
+ # Products, Inc. Branding Policy.
+ #
+ # The mere transfer of this software does not imply any licenses
+ # of trade secrets, proprietary technology, copyrights, patents,
+ # trademarks, maskwork rights, or any other form of intellectual
+ # property whatsoever. Maxim Integrated Products, Inc. retains all
+ # ownership rights.
+ #
+ # $Date: 2018-08-10 14:36:39 +0000 (Fri, 10 Aug 2018) $ 
+ # $Revision: 36825 $
+ #
+ ###############################################################################
+
+ifeq "$(BOARD_DIR)" ""
+$(error BOARD_DIR must be set)
+endif
+
+# PROJ_CFLAGS+=-DRO_FREQ=46000000
+# PROJ_CFLAGS+=-DCRYPTO_FREQ=46000000
+
+#PROJ_CFLAGS+=-DPeripheralClock=60000000
+# Source files for this test (add path to VPATH below)
+SRCS += board.c
+SRCS += stdio.c
+SRCS += led.c
+SRCS += mx25.c
+SRCS += pb.c
+
+
+# Where to find BSP source files
+VPATH += $(BOARD_DIR)/Source
+VPATH += $(BOARD_DIR)/../Source
+
+# Where to find BSP header files
+IPATH += $(BOARD_DIR)/Include
+IPATH += $(BOARD_DIR)/../Include
diff --git a/sdk/Libraries/Boards/card10/examples.txt b/sdk/Libraries/Boards/card10/examples.txt
new file mode 100644
index 00000000..559344b4
--- /dev/null
+++ b/sdk/Libraries/Boards/card10/examples.txt
@@ -0,0 +1,38 @@
+ADC
+AES
+BLE_beacon
+BLE_datc
+BLE_dats
+BLE_fit
+BLE_scanner
+CRC
+DES
+DMA
+DualCore
+Flash
+FreeRTOSDemo
+GPIO
+Hello_World
+HTMR
+I2C
+ICC
+LCD
+LP
+MAA
+OWM
+Pulse_Train
+RTC
+SDHC_FAT
+SDHC_Raw
+Semaphore
+SPI
+SPIXF
+SPIXR
+TMR
+TRNG
+UART
+USB_CDCACM
+USB_CompositeDevice
+USB_HIDKeyboard
+USB_MassStorage
+Watchdog
-- 
GitLab