summaryrefslogtreecommitdiff
path: root/nuttx/configs/zkit-arm-1769/src
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2013-02-26 14:09:43 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2013-02-26 14:09:43 +0000
commit41ffa0e5976e6dd4969e757097b8ed64a486ab35 (patch)
tree0c042bf3c73f50b5f3bbc9f40243989d3aba770e /nuttx/configs/zkit-arm-1769/src
parent16b331cdc8d014264d17099f7034e45fca0bd7a8 (diff)
downloadpx4-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/Makefile97
-rw-r--r--nuttx/configs/zkit-arm-1769/src/up_boot.c98
-rw-r--r--nuttx/configs/zkit-arm-1769/src/up_leds.c161
-rw-r--r--nuttx/configs/zkit-arm-1769/src/up_nsh.c176
-rw-r--r--nuttx/configs/zkit-arm-1769/src/up_ssp.c214
-rw-r--r--nuttx/configs/zkit-arm-1769/src/up_usbmsc.c147
-rw-r--r--nuttx/configs/zkit-arm-1769/src/zkitarm_internal.h236
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 */