diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2013-02-26 14:09:43 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2013-02-26 14:09:43 +0000 |
commit | 41ffa0e5976e6dd4969e757097b8ed64a486ab35 (patch) | |
tree | 0c042bf3c73f50b5f3bbc9f40243989d3aba770e /nuttx/configs/zkit-arm-1769/src | |
parent | 16b331cdc8d014264d17099f7034e45fca0bd7a8 (diff) | |
download | px4-nuttx-41ffa0e5976e6dd4969e757097b8ed64a486ab35.tar.gz px4-nuttx-41ffa0e5976e6dd4969e757097b8ed64a486ab35.tar.bz2 px4-nuttx-41ffa0e5976e6dd4969e757097b8ed64a486ab35.zip |
Add port to Zilogic Systems ZKIT-ARM-1769 board (more coming)
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5673 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/configs/zkit-arm-1769/src')
-rw-r--r-- | nuttx/configs/zkit-arm-1769/src/Makefile | 97 | ||||
-rw-r--r-- | nuttx/configs/zkit-arm-1769/src/up_boot.c | 98 | ||||
-rw-r--r-- | nuttx/configs/zkit-arm-1769/src/up_leds.c | 161 | ||||
-rw-r--r-- | nuttx/configs/zkit-arm-1769/src/up_nsh.c | 176 | ||||
-rw-r--r-- | nuttx/configs/zkit-arm-1769/src/up_ssp.c | 214 | ||||
-rw-r--r-- | nuttx/configs/zkit-arm-1769/src/up_usbmsc.c | 147 | ||||
-rw-r--r-- | nuttx/configs/zkit-arm-1769/src/zkitarm_internal.h | 236 |
7 files changed, 1129 insertions, 0 deletions
diff --git a/nuttx/configs/zkit-arm-1769/src/Makefile b/nuttx/configs/zkit-arm-1769/src/Makefile new file mode 100644 index 000000000..b04f0c75f --- /dev/null +++ b/nuttx/configs/zkit-arm-1769/src/Makefile @@ -0,0 +1,97 @@ +############################################################################ +# configs/zkit-arm-1769/src/Makefile +# +# Copyright (C) 2013 Zilogic Systems. All rights reserved. +# Author: BabuSubashChandar <code@zilogic.com> +# +# Based on configs/lpcxpresso-lpc1768/src/Makefile +# +# Copyright (C) 2011 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt <gnutt@nuttx.org> +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +-include $(TOPDIR)/Make.defs + +CFLAGS += -I$(TOPDIR)/sched + +ASRCS = +CSRCS = up_boot.c up_leds.c up_ssp.c + +ifeq ($(CONFIG_NSH_ARCHINIT),y) +CSRCS += up_nsh.c +endif + +ifeq ($(CONFIG_USBMSC),y) +CSRCS += up_usbmsc.c +endif + +AOBJS = $(ASRCS:.S=$(OBJEXT)) +COBJS = $(CSRCS:.c=$(OBJEXT)) + +SRCS = $(ASRCS) $(CSRCS) +OBJS = $(AOBJS) $(COBJS) + +ARCH_SRCDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src +ifeq ($(WINTOOL),y) + CFLAGS += -I "${shell cygpath -w $(ARCH_SRCDIR)/chip}" \ + -I "${shell cygpath -w $(ARCH_SRCDIR)/common}" \ + -I "${shell cygpath -w $(ARCH_SRCDIR)/armv7-m}" +else + CFLAGS += -I$(ARCH_SRCDIR)/chip -I$(ARCH_SRCDIR)/common -I$(ARCH_SRCDIR)/armv7-m +endif + +all: libboard$(LIBEXT) + +$(AOBJS): %$(OBJEXT): %.S + $(call ASSEMBLE, $<, $@) + +$(COBJS) $(LINKOBJS): %$(OBJEXT): %.c + $(call COMPILE, $<, $@) + +libboard$(LIBEXT): $(OBJS) + @( for obj in $(OBJS) ; do \ + $(call ARCHIVE, $@, $${obj}); \ + done ; ) + +.depend: Makefile $(SRCS) + @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep + @touch $@ + +depend: .depend + +clean: + @rm -f libboard$(LIBEXT) *~ .*.swp + $(call CLEAN) + +distclean: clean + @rm -f Make.dep .depend + +-include Make.dep diff --git a/nuttx/configs/zkit-arm-1769/src/up_boot.c b/nuttx/configs/zkit-arm-1769/src/up_boot.c new file mode 100644 index 000000000..6622f8de6 --- /dev/null +++ b/nuttx/configs/zkit-arm-1769/src/up_boot.c @@ -0,0 +1,98 @@ +/************************************************************************************ + * configs/zkit-arm-1769/src/up_boot.c + * arch/arm/src/board/up_boot.c + * + * Copyright (C) 2013 Zilogic Systems. All rights reserved. + * Author: BabuSubashChandar <code@zilogic.com> + * + * Based on configs/lpcxpresso-lpc1768/src/up_boot.c + * + * Copyright (C) 2011 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt <gnutt@nuttx.org> + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include <nuttx/config.h> + +#include <debug.h> + +#include <arch/board/board.h> + +#include "up_arch.h" +#include "up_internal.h" + +#include "lpc17_internal.h" +#include "zkitarm_internal.h" + +/************************************************************************************ + * Definitions + ************************************************************************************/ + +/************************************************************************************ + * Private Functions + ************************************************************************************/ + +/************************************************************************************ + * Public Functions + ************************************************************************************/ + +/************************************************************************************ + * Name: lpc17_boardinitialize + * + * Description: + * All LPC17xx architectures must provide the following entry point. This entry point + * is called early in the intitialization -- after all memory has been configured + * and mapped but before any devices have been initialized. + * + ************************************************************************************/ + +void lpc17_boardinitialize(void) +{ + /* Configure SSP chip selects if 1) at least one SSP is enabled, and 2) the weak + * function lpc17_sspinitialize() has been brought into the link. + */ + +#if defined(CONFIG_LPC17_SSP0) || defined(CONFIG_LPC17_SSP1) + if (lpc17_sspinitialize) + { + lpc17_sspinitialize(); + } +#endif + + /* Configure on-board LEDs if LED support has been selected. */ + +#ifdef CONFIG_ARCH_LEDS + up_ledinit(); +#endif +} diff --git a/nuttx/configs/zkit-arm-1769/src/up_leds.c b/nuttx/configs/zkit-arm-1769/src/up_leds.c new file mode 100644 index 000000000..f0d8730d5 --- /dev/null +++ b/nuttx/configs/zkit-arm-1769/src/up_leds.c @@ -0,0 +1,161 @@ +/**************************************************************************** + * configs/zkit-arm-1769/src/up_leds.c + * arch/arm/src/board/up_leds.c + * + * Copyright (C) 2013 Zilogic Systems. All rights reserved. + * Author: BabuSubashChandar <code@zilogic.com> + * + * Based on configs/lpcxpresso-lpc1768/src/up_leds.c + * + * Copyright (C) 2011 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt <gnutt@nuttx.org> + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include <nuttx/config.h> + +#include <stdbool.h> +#include <debug.h> + +#include "up_arch.h" +#include "up_internal.h" + +#include "lpc17_internal.h" +#include "zkitarm_internal.h" + +#ifdef CONFIG_ARCH_LEDS + +/**************************************************************************** + * Definitions + ****************************************************************************/ + +/* CONFIG_DEBUG_LED enables debug output from this file (needs CONFIG_DEBUG + * and pherhaps CONFIG_DEBUG_VERBOSE too) + */ + +#ifdef CONFIG_DEBUG_LED +# define leddbg lldbg +# ifdef CONFIG_DEBUG_VERBOSE +# define ledvdbg lldbg +# else +# define ledvdbg(x...) +# endif +#else +# define leddbg(x...) +# define ledvdbg(x...) +#endif + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +static bool g_ncstate; + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: up_ledinit + ****************************************************************************/ + +void up_ledinit(void) +{ + /* Configure all LED GPIO lines */ + + lpc17_configgpio(ZKITARM_LED1); + lpc17_configgpio(ZKITARM_LED2); + g_ncstate = true; +} + +/**************************************************************************** + * Name: up_ledon + ****************************************************************************/ + +void up_ledon(int led) +{ + bool off; + + switch (led) + { + case 0: + case 2: + off = true; + break; + + case 1: + off = false; + g_ncstate = false; + break; + + default: + return; + } + + lpc17_gpiowrite(ZKITARM_LED1, off); + lpc17_gpiowrite(ZKITARM_LED2, off); +} + +/**************************************************************************** + * Name: up_ledoff + ****************************************************************************/ + +void up_ledoff(int led) +{ + bool off; + + switch (led) + { + case 0: + case 1: + off = false; + break; + + case 2: + off = g_ncstate; + break; + + default: + return; + } + + lpc17_gpiowrite(ZKITARM_LED1, off); + lpc17_gpiowrite(ZKITARM_LED2, off); +} + +#endif /* CONFIG_ARCH_LEDS */ diff --git a/nuttx/configs/zkit-arm-1769/src/up_nsh.c b/nuttx/configs/zkit-arm-1769/src/up_nsh.c new file mode 100644 index 000000000..766c46b92 --- /dev/null +++ b/nuttx/configs/zkit-arm-1769/src/up_nsh.c @@ -0,0 +1,176 @@ +/**************************************************************************** + * config/zkit-arm-1769/src/up_nsh.c + * arch/arm/src/board/up_nsh.c + * + * Copyright (C) 2013 Zilogic Systems. All rights reserved. + * Author: BabuSubashChandar <code@zilogic.com> + * + * Based on config/lpcxpresso-lpc1768/src/up_nsh.c + * + * Copyright (C) 2011 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt <gnutt@nuttx.org> + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include <nuttx/config.h> + +#include <stdio.h> +#include <debug.h> +#include <errno.h> + +#include <nuttx/spi.h> +#include <nuttx/mmcsd.h> + +/**************************************************************************** + * Pre-Processor Definitions + ****************************************************************************/ + +/* Configuration ************************************************************/ + +/* PORT and SLOT number probably depend on the board configuration */ + +#ifdef CONFIG_ARCH_BOARD_ZKITARM +# define CONFIG_NSH_HAVEUSBDEV 1 +# ifdef CONFIG_LPC17_SSP0 +# define CONFIG_NSH_HAVEMMCSD 1 +# else +# undef CONFIG_NSH_HAVEMMCSD +# endif +#else +# error "Unrecognized board" +# undef CONFIG_NSH_HAVEUSBDEV +# undef CONFIG_NSH_HAVEMMCSD +#endif + +/* Do we have SPI support for MMC/SD? */ + +#ifdef CONFIG_NSH_HAVEMMCSD +# if !defined(CONFIG_NSH_MMCSDSPIPORTNO) || CONFIG_NSH_MMCSDSPIPORTNO != 0 +# error "The ZKit-arm MMC/SD is on SSP0" +# undef CONFIG_NSH_MMCSDSPIPORTNO +# define CONFIG_NSH_MMCSDSPIPORTNO 0 +# endif +# if !defined(CONFIG_NSH_MMCSDSLOTNO) || CONFIG_NSH_MMCSDSLOTNO != 0 +# error "The ZKit-arm MMC/SD has only one slot (0)" +# undef CONFIG_NSH_MMCSDSLOTNO +# define CONFIG_NSH_MMCSDSLOTNO 0 +# endif +#endif + +/* Can't support USB device features if USB device is not enabled */ + +#ifndef CONFIG_USBDEV +# undef CONFIG_NSH_HAVEUSBDEV +#endif + +/* Can't support MMC/SD features if mountpoints are disabled */ + +#if defined(CONFIG_DISABLE_MOUNTPOINT) +# undef CONFIG_NSH_HAVEMMCSD +#endif + +#ifndef CONFIG_NSH_MMCSDMINOR +# define CONFIG_NSH_MMCSDMINOR 0 +#endif + +/* Debug ********************************************************************/ + +#ifdef CONFIG_CPP_HAVE_VARARGS +# ifdef CONFIG_DEBUG +# define message(...) lib_lowprintf(__VA_ARGS__) +# else +# define message(...) printf(__VA_ARGS__) +# endif +#else +# ifdef CONFIG_DEBUG +# define message lib_lowprintf +# else +# define message printf +# endif +#endif + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: nsh_archinitialize + * + * Description: + * Perform architecture specific initialization + * + ****************************************************************************/ + +int nsh_archinitialize(void) +{ +#ifdef CONFIG_NSH_HAVEMMCSD + FAR struct spi_dev_s *ssp; + int ret; + + /* Get the SSP port */ + + ssp = up_spiinitialize(CONFIG_NSH_MMCSDSPIPORTNO); + if (!ssp) + { + message("nsh_archinitialize: Failed to initialize SSP port %d\n", + CONFIG_NSH_MMCSDSPIPORTNO); + return -ENODEV; + } + + message("Successfully initialized SSP port %d\n", + CONFIG_NSH_MMCSDSPIPORTNO); + + /* Bind the SSP port to the slot */ + + ret = mmcsd_spislotinitialize(CONFIG_NSH_MMCSDMINOR, CONFIG_NSH_MMCSDSLOTNO, ssp); + if (ret < 0) + { + message("nsh_archinitialize: Failed to bind SSP port %d to MMC/SD slot %d: %d\n", + CONFIG_NSH_MMCSDSPIPORTNO, CONFIG_NSH_MMCSDSLOTNO, ret); + return ret; + } + + message("Successfuly bound SSP port %d to MMC/SD slot %d\n", + CONFIG_NSH_MMCSDSPIPORTNO, CONFIG_NSH_MMCSDSLOTNO); +#endif + return OK; +} diff --git a/nuttx/configs/zkit-arm-1769/src/up_ssp.c b/nuttx/configs/zkit-arm-1769/src/up_ssp.c new file mode 100644 index 000000000..543669035 --- /dev/null +++ b/nuttx/configs/zkit-arm-1769/src/up_ssp.c @@ -0,0 +1,214 @@ +/************************************************************************************ + * configs/zkit-arm-1769/src/up_ssp.c + * arch/arm/src/board/up_ssp.c + * + * Copyright (C) 2013 Zilogic Systems. All rights reserved. + * Author: BabuSubashChandar <code@zilogic.com> + * + * Based on configs/lpcxpresso-lpc1768/src/up_ssp.c + * + * Copyright (C) 2011 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt <gnutt@nuttx.org> + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include <nuttx/config.h> + +#include <stdint.h> +#include <stdbool.h> +#include <debug.h> + +#include <nuttx/spi.h> +#include <arch/board/board.h> + +#include "up_arch.h" +#include "chip.h" +#include "lpc17_internal.h" +#include "zkitarm_internal.h" + +#if defined(CONFIG_LPC17_SSP0) || defined(CONFIG_LPC17_SSP1) + +/************************************************************************************ + * Definitions + ************************************************************************************/ + +/* CONFIG_DEBUG_SPI enables debug output from this file (needs CONFIG_DEBUG too) */ + +#ifdef CONFIG_DEBUG_SPI +# define sspdbg lldbg +# ifdef CONFIG_DEBUG_VERBOSE +# define sspvdbg lldbg +# else +# define sspvdbg(x...) +# endif +#else +# define sspdbg(x...) +# define sspvdbg(x...) +#endif + +/* Dump GPIO registers */ + +#if defined(CONFIG_DEBUG_SPI) && defined(CONFIG_DEBUG_VERBOSE) +# define ssp_dumpgpio(m) lpc17_dumpgpio(SDCCS_GPIO, m) +#else +# define ssp_dumpgpio(m) +#endif + +/************************************************************************************ + * Private Functions + ************************************************************************************/ + +/************************************************************************************ + * Public Functions + ************************************************************************************/ + +/************************************************************************************ + * Name: lpc17_sspinitialize + * + * Description: + * Called to configure SPI chip select GPIO pins for the LM3S6965 Eval Kit. + * + ************************************************************************************/ + +void weak_function lpc17_sspinitialize(void) +{ + /* Configure the SPI-based microSD CS GPIO */ + + ssp_dumpgpio("lpc17_sspinitialize() Entry)"); + + /* Configure card detect and chip select for the SD slot. NOTE: Jumper J55 must + * be set correctly for the SD slot chip select. + */ + +#ifdef CONFIG_LPC17_SSP0 + (void)lpc17_configgpio(ZKITARM_SD_CS); + (void)lpc17_configgpio(ZKITARM_SD_CD); + + /* Configure chip select for the OLED. For the SPI interface, insert jumpers in + * J42, J43, J45 pin1-2 and J46 pin 1-2. + */ + +#ifdef CONFIG_NX_LCDDRIVER + (void)lpc17_configgpio(ZKITARM_OLED_CS); +#endif +#endif + + ssp_dumpgpio("lpc17_sspinitialize() Exit"); +} + +/************************************************************************************ + * Name: lpc17_ssp0/ssp1select and lpc17_ssp0/ssp1status + * + * Description: + * The external functions, lpc17_ssp0/ssp1select and lpc17_ssp0/ssp1status + * must be provided by board-specific logic. They are implementations of the select + * and status methods of the SPI interface defined by struct spi_ops_s (see + * include/nuttx/spi.h). All other methods (including up_spiinitialize()) + * are provided by common LPC17xx logic. To use this common SPI logic on your + * board: + * + * 1. Provide logic in lpc17_boardinitialize() to configure SPI/SSP chip select + * pins. + * 2. Provide lpc17_ssp0/ssp1select() and lpc17_ssp0/ssp1status() functions + * in your board-specific logic. These functions will perform chip selection + * and status operations using GPIOs in the way your board is configured. + * 3. Add a calls to up_spiinitialize() in your low level application + * initialization logic + * 4. The handle returned by up_spiinitialize() may then be used to bind the + * SPI driver to higher level logic (e.g., calling + * mmcsd_spislotinitialize(), for example, will bind the SPI driver to + * the SPI MMC/SD driver). + * + ************************************************************************************/ + +#ifdef CONFIG_LPC17_SSP1 +void lpc17_ssp1select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) +{ + sspdbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert"); + ssp_dumpgpio("lpc17_spi1select() Entry"); + +#warning "Assert CS here (false)" + + ssp_dumpgpio("lpc17_spi1select() Exit"); +} + +uint8_t lpc17_ssp1status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) +{ + sspdbg("Returning SPI_STATUS_PRESENT\n"); + return SPI_STATUS_PRESENT; +} +#endif + +#ifdef CONFIG_LPC17_SSP0 +void lpc17_ssp0select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) +{ + sspdbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert"); + ssp_dumpgpio("lpc17_spi0select() Entry"); + + if (devid == SPIDEV_MMCSD) + { + /* Assert/de-assert the CS pin to the card */ + + (void)lpc17_gpiowrite(ZKITARM_SD_CS, !selected); + } +#ifdef CONFIG_NX_LCDDRIVER + else if (devid == SPIDEV_DISPLAY) + { + /* Assert the CS pin to the OLED display */ + + (void)lpc17_gpiowrite(ZKITARM_OLED_CS, !selected); + } +#endif + ssp_dumpgpio("lpc17_spi0select() Exit"); +} + +uint8_t lpc17_ssp0status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) +{ + if (devid == SPIDEV_MMCSD) + { + /* Read the state of the card-detect bit */ + + if (lpc17_gpioread(ZKITARM_SD_CD) == 0) + { + sspdbg("Returning SPI_STATUS_PRESENT\n"); + return SPI_STATUS_PRESENT; + } + } + + sspdbg("Returning zero\n"); + return 0; +} +#endif + +#endif /* CONFIG_LPC17_SSP0 || CONFIG_LPC17_SSP1 */ diff --git a/nuttx/configs/zkit-arm-1769/src/up_usbmsc.c b/nuttx/configs/zkit-arm-1769/src/up_usbmsc.c new file mode 100644 index 000000000..2cdfe8603 --- /dev/null +++ b/nuttx/configs/zkit-arm-1769/src/up_usbmsc.c @@ -0,0 +1,147 @@ +/**************************************************************************** + * configs/zkit-arm-1769/src/up_usbmsc.c + * + * Copyright (C) 2013 Zilogic Systems. All rights reserved. + * Author: BabuSubashChandar <code@zilogic.com> + * + * Based on configs/lpcxpresso-lpc1768/src/up_usbmsc.c + * + * Copyright (C) 2011 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt <gnutt@nuttx.org> + * + * Configure and register the LPC17xx MMC/SD SPI block driver. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include <nuttx/config.h> + +#include <stdio.h> +#include <debug.h> +#include <errno.h> + +#include <nuttx/spi.h> +#include <nuttx/mmcsd.h> + +/**************************************************************************** + * Pre-Processor Definitions + ****************************************************************************/ + +/* Configuration ************************************************************/ + +#ifndef CONFIG_EXAMPLES_USBMSC_DEVMINOR1 +# define CONFIG_EXAMPLES_USBMSC_DEVMINOR1 0 +#endif + +/* PORT and SLOT number probably depend on the board configuration */ + +#ifdef CONFIG_ARCH_BOARD_ZKITARM +# undef LPC17XX_MMCSDSPIPORTNO +# define LPC17XX_MMCSDSPIPORTNO 0 +# undef LPC17XX_MMCSDSLOTNO +# define LPC17XX_MMCSDSLOTNO 0 +#else + /* Add configuration for new LPC17xx boards here */ +# error "Unrecognized LPC17xx board" +#endif + +/* Debug ********************************************************************/ + +#ifdef CONFIG_CPP_HAVE_VARARGS +# ifdef CONFIG_DEBUG +# define message(...) lib_lowprintf(__VA_ARGS__) +# define msgflush() +# else +# define message(...) printf(__VA_ARGS__) +# define msgflush() fflush(stdout) +# endif +#else +# ifdef CONFIG_DEBUG +# define message lib_lowprintf +# define msgflush() +# else +# define message printf +# define msgflush() fflush(stdout) +# endif +#endif + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: usbmsc_archinitialize + * + * Description: + * Perform architecture specific initialization + * + ****************************************************************************/ + +int usbmsc_archinitialize(void) +{ + FAR struct spi_dev_s *spi; + int ret; + + /* Get the SPI port */ + + message("usbmsc_archinitialize: Initializing SPI port %d\n", + LPC17XX_MMCSDSPIPORTNO); + + spi = up_spiinitialize(LPC17XX_MMCSDSPIPORTNO); + if (!spi) + { + message("usbmsc_archinitialize: Failed to initialize SPI port %d\n", + LPC17XX_MMCSDSPIPORTNO); + return -ENODEV; + } + + message("usbmsc_archinitialize: Successfully initialized SPI port %d\n", + LPC17XX_MMCSDSPIPORTNO); + + /* Bind the SPI port to the slot */ + + message("usbmsc_archinitialize: Binding SPI port %d to MMC/SD slot %d\n", + LPC17XX_MMCSDSPIPORTNO, LPC17XX_MMCSDSLOTNO); + + ret = mmcsd_spislotinitialize(CONFIG_EXAMPLES_USBMSC_DEVMINOR1, LPC17XX_MMCSDSLOTNO, spi); + if (ret < 0) + { + message("usbmsc_archinitialize: Failed to bind SPI port %d to MMC/SD slot %d: %d\n", + LPC17XX_MMCSDSPIPORTNO, LPC17XX_MMCSDSLOTNO, ret); + return ret; + } + + message("usbmsc_archinitialize: Successfuly bound SPI port %d to MMC/SD slot %d\n", + LPC17XX_MMCSDSPIPORTNO, LPC17XX_MMCSDSLOTNO); + return OK; +} diff --git a/nuttx/configs/zkit-arm-1769/src/zkitarm_internal.h b/nuttx/configs/zkit-arm-1769/src/zkitarm_internal.h new file mode 100644 index 000000000..19eb5b438 --- /dev/null +++ b/nuttx/configs/zkit-arm-1769/src/zkitarm_internal.h @@ -0,0 +1,236 @@ +/************************************************************************************ + * configs/zkit-arm-1769/src/zkitarm_internal.h + * arch/arm/src/board/zkitarm_internal.n + * + * Copyright (C) 2013 Zilogic Systems. All rights reserved. + * Author: BabuSubashChandar <code@zilogic.com> + * + * Based on configs/lpcxpresso-lpc1768/src/lpcxpresso_internal.h + * + * Copyright (C) 2011 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt <gnutt@nuttx.org> + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +#ifndef _CONFIGS_ZKITARM_LPC1768_SRC_ZKITARM_INTERNAL_H +#define _CONFIGS_ZKITARM_LPC1768_SRC_ZKITARM_INTERNAL_H + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include <nuttx/config.h> +#include <nuttx/compiler.h> + +/************************************************************************************ + * Definitions + ************************************************************************************/ +/************************************************************************************ + * ZKit-ARM-1769 Pin Usage + ************************************************************************************/ +/* Pin Description On Board Connector + * -------------------------------- ---------------- ------------- + * P0.0/RD1/TXD3/SDA1 RD1 AUX-CON + * P0.1/TD1/RXD3/SCL1 TD1 + * P0.2/TXD0/AD0.7 TXD0 COM0 + * P0.3/RXD0/AD0.6 RXD0 + * P0.4/I2SRX_CLK/RD2/CAP2.0 GPIO0 + * P0.5/I2SRX_WS/TD2/CAP2.1 GPIO1 + * P0.6/I2SRX_SDA/SSEL1/MAT2.0 SSEL1 SPI + * P0.7/I2STX_CLK/SCK1/MAT2.1 SCK1 + * P0.8/I2STX_WS/MISO1/MAT2.2 MISO1 + * P0.9/I2STX_SDA/MOSI1/MAT2.3 MOSI1 + * P0.10/TXD2/SDA2/MAT3.0 TXD2 AUX-CON + * P0.11/RXD2/SCL2/MAT3.1 RXD2 + * P0.15/TXD1/SCK0/SCK SD-SCK + * P0.16/RXD1/SSEL0/SSEL SD-SSEL SD-CARD + * P0.17/CTS1/MISO0/MISO SD-MISO + * P0.18/DCD1/M0SI0/MOSI SD-MOSI + * P0.19/DSR1/SDA1 LED1 + * P0.20/DTR1/SCL1 DTR1 COM1 + * P0.21/RI1/RD1 N.C LED2 + * P0.22/RTS1/TD1 RTS1 COM1 + * P0.23/AD0.0/I2SRX_CLK/CAP3.0 AD0 + * P0.24/AD0.1/I2SRX_WS/CAP3.1 AD1 AIN + * P0.25/AD0.2/I2SRX_SDA/TXD3 AD2 + * P0.26/AD0.3/AOUT/RXD3 AD3 + * P0.27/SDA0/USB_SDA SDA0 I2C0 + * P0.28/SCL0/USB_SCL SCL0 + * P0.29/USB_D+ USB-D+ USB + * P0.30/USB_D- USB-D- + * + * P1.0/ENET_TXD0 ETH-TXD0 + * P1.1/ENET_TXD1 ETH-TXD1 + * P1.4/ENET_TX_EN ETH-TXEN + * P1.8/ENET_CRS ETH-CRS + * P1.9/ENET_RXD0 ETH-RXD0 ETH + * P1.10/ENET_RXD1 ETH-RXD1 + * P1.14/ENET_RX_ER ETH-RXER + * P1.15/ENET_REF_CLK ETH-REFCLK + * P1.16/ENET_MDC ETH-MDC + * P1.17/ENET_MDIO ETH-MDIO + * P1.18/USB_UP_LED/PWM1.1/CAP1.0 USB-UP-LED + * P1.19/MCOA0/nUSB_PPWR/CAP1.1 KEY1 + * P1.20/MCFB0/PWM1.2/SCK0 LCD-SCK + * P1.21/MCABORT/PWM1.3/SSEL0 LCD-SSEL + * P1.22/MCOB0/USB_PWRD/MAT1.0 LCD-A0 LCD + * P1.23/MCFB1/PWM1.4/MISO0 NC + * P1.24/MCFB2/PWM1.5/MOSI0 LCD_MOSI + * P1.25/MCOA1/MAT1.1 LCD-RST + * P1.26/MCOB1/PWM1.6/CAP0.0 LCD-AO + * P1.27/CLKOUT/nUSB_OVRCR/CAP0.1 KEY2 + * P1.28/MCOA2/MAT0.0 KEY3 + * P1.29/MCOB2/PCAP1.1/MAT0.1 CAP1 PWM-CON + * P1.30/VBUS/AD0.4 VBUS USB + * P1.31/SCK1/AD0.5 KEY4 + * + * P2.0/PWM1.1/TXD1 TXD1 + * P2.1/PWM1.2/RXD1 RXD1 COM1 + * P2.2/PWM1.3/CTS1/TRACEDATA3 CTS1 + * P2.3/PWM1.4/DCD1/TRACEDATA2 PWM4 + * P2.4/PWM1.5/DSR1/TRACEDATA1 PWM5 PWM + * P2.5/PWM1.6/DTR1/TRACEDATA0 PWM6 + * P2.6/PCAP1.0/RI1/TRACECLK CAP0 + * P2.7/RD2/RTS1 RD2 RD2 CAN2 + * P2.8/TD2/TXD2 TD2 TD2 + * P2.9/USB_CONNECT/RXD2 USB_CONNECT USB + * P2.10/nEINT0/NMI ISP + * P2.11/nEINT1/I2STX_CLK INT1 I2C + * P2.12/nEINT2/I2STX_WS SD-DET SD-CARD + * P2.13/nEINT3/I2STX_SDA KEY5 + * + * P3.25/MAT0.0/PWM1.2 PWM2 PWM + * P3.26/STCLK/MAT0.1/PWM1.3 PWM3 + * + * P4.28/RX_MCLK/MAT2.0/TXD3 GPIO2 SPI + * P4.28/RX_MCLK/MAT2.0/TXD3 GPIO3 + */ + +#define ZKITARM_I2C1_EPROM_SDA GPIO_I2C1_SDA +#define ZKITARM_I2C1_EPROM_SDL GPIO_I2C1_SCL + +#define ZKITARM_LED1 (GPIO_OUTPUT | GPIO_VALUE_ONE | GPIO_PORT0 | GPIO_PIN19) +#define ZKITARM_LED2 (GPIO_OUTPUT | GPIO_VALUE_ONE | GPIO_PORT0 | GPIO_PIN21) + +#define ZKITARM_KEY5 (GPIO_INTBOTH | GPIO_FLOAT | GPIO_PORT2 | GPIO_PIN13) + +#define ZKITARM_KEY5_IRQ LPC17_IRQ_P2p13 + +/* SD Slot + * + * Board LPC1768 + * SD Signal Pin + * --- ----------- ---------- + * CS SD-SSEL P0.16 + * DIN SD-MOSI P0.18 MOSI0 + * DOUT SD-MISO P0.17 MISO0 + * CLK SD-SCK P0.15 SCK0 + * CD SD-DET P2.12 + */ + +#define ZKITARM_SD_CS (GPIO_OUTPUT | GPIO_VALUE_ONE | GPIO_PORT0 | GPIO_PIN16) +#ifdef CONFIG_GPIO_IRQ +# define ZKITARM_SD_CD (GPIO_INTBOTH | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN12) +#else +# define ZKITARM_SD_CD (GPIO_INPUT | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN12) +#endif + +#define ZKITARM_SD_CDIRQ LPC17_IRQ_P2p12 + +/* USB: + * + * Board LPC1768 + * Signal Pin + * ------------------- -------- + * USB_CONNECT P2.9 USB_CONNECT + * USB_DM P0.29 USB_D- + * USB_DP P0.30 USB_D+ + * USB_VBUS P1.30 USB_VBUS + * USB_UPLED P1.18 USB_UPLED + * + */ + +#define ZKITARM_USB_CONNECT (GPIO_OUTPUT | GPIO_VALUE_ONE | GPIO_PORT2 | GPIO_PIN9) +#ifdef CONFIG_GPIO_IRQ +# define ZKITARM_USB_VBUSSENSE (GPIO_INTBOTH | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN30) +#else +# define ZKITARM_USB_VBUSSENSE (GPIO_INPUT | GPIO_PULLUP | GPIO_PORT1 | GPIO_PIN30) +#endif + +/* 128x64 LCD with SPI interface + * --------------------------------------- + * The LCD display is connected to the SPI-bus. + * + * ZKit-ARM Signals + * + * ----------------------------+---------------+-------------------------------------------- + * LPC1758 Pin | Board Signal | Description + * ----------------------------+---------------+-------------------------------------------- + * P1.20/MCFB0/PWM1.2/SCK0 | LCD-SCK | LCD Clock signal (D6) + * P1.21/MCABORT/PWM1.3/SSEL0 | LCD-SSEL | LCD Chip Select (CSB) + * P1.22/MCOB0/USB_PWRD/MAT1.0 | LCD-A0 | LCD-A0 (A0) + * P1.23/MCFB1/PWM1.4/MISO0 | N.C | + * P1.24/MCFB2/PWM1.5/MOSI0 | LCD-MOSI | LCD Data (D7) + * P1.25/MCOA1/MAT1.1 | LCD-RST | LCD Reset (RSTB) - Resets Everything in LCD + * ----------------------------+---------------+-------------------------------------------- + */ + +#if 0 +#define ZKITARM_OLED_POWER (GPIO_OUTPUT | GPIO_VALUE_ZERO | GPIO_PORT2 | GPIO_PIN1) +#define ZKITARM_OLED_CS (GPIO_OUTPUT | GPIO_VALUE_ONE | GPIO_PORT0 | GPIO_PIN6) +#define ZKITARM_OLED_DC (GPIO_OUTPUT | GPIO_VALUE_ZERO | GPIO_PORT2 | GPIO_PIN7) +#endif + +/************************************************************************************ + * Public Types + ************************************************************************************/ + +/************************************************************************************ + * Public data + ************************************************************************************/ + +#ifndef __ASSEMBLY__ + +/************************************************************************************ + * Public Functions + ************************************************************************************/ + +/************************************************************************************ + * Name: lpc17_sspinitialize + * + * Description: + * Called to configure SPI chip select GPIO pins for the LPCXpresso board. + * + ************************************************************************************/ + +void weak_function lpc17_sspinitialize(void); + +#endif /* __ASSEMBLY__ */ +#endif /* _CONFIGS_ZKITARM_LPC1768_SRC_ZKITARM_INTERNAL_H */ |