diff --git a/configs/olimex-lpc1766stk/src/lpc1766stk_internal.h b/configs/olimex-lpc1766stk/src/lpc1766stk_internal.h deleted file mode 100644 index 561037490cf..00000000000 --- a/configs/olimex-lpc1766stk/src/lpc1766stk_internal.h +++ /dev/null @@ -1,266 +0,0 @@ -/************************************************************************************ - * configs/olimex-lpc1766stk/src/lpc1766stk_internal.h - * arch/arm/src/board/lpc1766stk_internal.n - * - * Copyright (C) 2010-2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * 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_OLIMEX_LPC1766STK_SRC_LPC1766STK_INTERNAL_H -#define _CONFIGS_OLIMEX_LPC1766STK_SRC_LPC1766STK_INTERNAL_H - -/************************************************************************************ - * Included Files - ************************************************************************************/ - -#include -#include - -/************************************************************************************ - * Definitions - ************************************************************************************/ - -/* LPC1766-STK GPIO Pin Definitions *************************************************/ -/* Board GPIO Usage: - * - * GPIO PIN SIGNAL NAME - * -------------------------------- ---- -------------- - * P0[0]/RD1/TXD3/SDA1 46 RD1 - * P0[1]/TD1/RXD3/SCL1 47 TD1 - * P0[2]/TXD0/AD0[7] 98 TXD0 - * P0[3]/RXD0/AD0[6] 99 RXD0 - * P0[4]/I2SRX_CLK/RD2/CAP2[0] 81 LED2/ACC IRQ - * P0[5]/I2SRX_WS/TD2/CAP2[1] 80 CENTER - * P0[6]/I2SRX_SDA/SSEL1/MAT2[0] 79 SSEL1 - * P0[7]/I2STX_CLK/SCK1/MAT2[1] 78 SCK1 - * P0[8]/I2STX_WS/MISO1/MAT2[2] 77 MISO1 - * P0[9]/I2STX_SDA/MOSI1/MAT2[3] 76 MOSI1 - * P0[10]/TXD2/SDA2/MAT3[0] 48 SDA2 - * P0[11]/RXD2/SCL2/MAT3[1] 49 SCL2 - * P0[15]/TXD1/SCK0/SCK 62 TXD1 - * P0[16]/RXD1/SSEL0/SSEL 63 RXD1 - * P0[17]/CTS1/MISO0/MISO 61 CTS1 - * P0[18]/DCD1/MOSI0/MOSI 60 DCD1 - * P0[19]/DSR1/SDA1 59 DSR1 - * P0[20]/DTR1/SCL1 58 DTR1 - * P0[21]/RI1/RD1 57 MMC PWR - * P0[22]/RTS1/TD1 56 RTS1 - * P0[23]/AD0[0]/I2SRX_CLK/CAP3[0] 9 BUT1 - * P0[24]/AD0[1]/I2SRX_WS/CAP3[1] 8 TEMP - * P0[25]/AD0[2]/I2SRX_SDA/TXD3 7 MIC IN - * P0[26]/AD0[3]/AOUT/RXD3 6 AOUT - * P0[27]/SDA0/USB_SDA 25 USB_SDA - * P0[28]/SCL0/USB_SCL 24 USB_SCL - * P0[29]/USB_D+ 29 USB_D+ - * P0[30]/USB_D- 30 USB_D- - * P1[0]/ENET_TXD0 95 E_TXD0 - * P1[1]/ENET_TXD1 94 E_TXD1 - * P1[4]/ENET_TX_EN 93 E_TX_EN - * P1[8]/ENET_CRS 92 E_CRS - * P1[9]/ENET_RXD0 91 E_RXD0 - * P1[10]/ENET_RXD1 90 E_RXD1 - * P1[14]/ENET_RX_ER 89 E_RX_ER - * P1[15]/ENET_REF_CLK 88 E_REF_CLK - * P1[16]/ENET_MDC 87 E_MDC - * P1[17]/ENET_MDIO 86 E_MDIO - * P1[18]/USB_UP_LED/PWM1[1]/CAP1[0] 32 USB_UP_LED - * P1[19]/MC0A/#USB_PPWR/CAP1[1] 33 #USB_PPWR - * P1[20]/MCFB0/PWM1[2]/SCK0 34 SCK0 - * P1[21]/MCABORT/PWM1[3]/SSEL0 35 SSEL0 - * P1[22]/MC0B/USB_PWRD/MAT1[0] 36 USBH_PWRD - * P1[23]/MCFB1/PWM1[4]/MISO0 37 MISO0 - * P1[24]/MCFB2/PWM1[5]/MOSI0 38 MOSI0 - * P1[25]/MC1A/MAT1[1] 39 LED1 - * P1[26]/MC1B/PWM1[6]/CAP0[0] 40 CS_UEXT - * P1[27]/CLKOUT/#USB_OVRCR/CAP0[1] 43 #USB_OVRCR - * P1[28]/MC2A/PCAP1[0]/MAT0[0] 44 P1.28 - * P1[29]/MC2B/PCAP1[1]/MAT0[1] 45 P1.29 - * P1[30]/VBUS/AD0[4] 21 VBUS - * P1[31]/SCK1/AD0[5] 20 AIN5 - * P2[0]/PWM1[1]/TXD1 75 UP - * P2[1]/PWM1[2]/RXD1 74 DOWN - * P2[2]/PWM1[3]/CTS1/TRACEDATA[3] 73 TRACE_D3 - * P2[3]/PWM1[4]/DCD1/TRACEDATA[2] 70 TRACE_D2 - * P2[4]/PWM1[5]/DSR1/TRACEDATA[1] 69 TRACE_D1 - * P2[5]/PWM1[6]/DTR1/TRACEDATA[0] 68 TRACE_D0 - * P2[6]/PCAP1[0]/RI1/TRACECLK 67 TRACE_CLK - * P2[7]/RD2/RTS1 66 LEFT - * P2[8]/TD2/TXD2 65 RIGHT - * P2[9]/USB_CONNECT/RXD2 64 USBD_CONNECT - * P2[10]/#EINT0/NMI 53 ISP_E4 - * P2[11]/#EINT1/I2STX_CLK 52 #EINT1 - * P2[12]/#EINT2/I2STX_WS 51 WAKE-UP - * P2[13]/#EINT3/I2STX_SDA 50 BUT2 - * P3[25]/MAT0[0]/PWM1[2] 27 LCD_RST - * P3[26]/STCLK/MAT0[1]/PWM1[3] 26 LCD_BL - */ - -/* LEDs GPIO PIN SIGNAL NAME - * -------------------------------- ---- -------------- - * P1[25]/MC1A/MAT1[1] 39 LED1 - * P0[4]/I2SRX_CLK/RD2/CAP2[0] 81 LED2/ACC IRQ - * - * LEDs are connected to +3.3V through a diode on one side and must be pulled - * low (through a resistor) on the LPC17xx side in order to illuminuate them. - */ - -#define LPC1766STK_LED1 (GPIO_OUTPUT | GPIO_VALUE_ONE | GPIO_PORT1 | GPIO_PIN25) -#define LPC1766STK_LED2 (GPIO_OUTPUT | GPIO_VALUE_ONE | GPIO_PORT0 | GPIO_PIN4) - -/* Buttons GPIO PIN SIGNAL NAME - * -------------------------------- ---- -------------- - * P0[23]/AD0[0]/I2SRX_CLK/CAP3[0] 9 BUT1 - * P2[13]/#EINT3/I2STX_SDA 50 BUT2 - * P2[12]/#EINT2/I2STX_WS 51 WAKE-UP - * - * NOTES: - * 1. Pull-ups are not required because the pins are already pulled-up by - * through resistors on the board. - * 2. All buttons are capable of supporting interrupts if board_button_irq() is - * called to attach an interrupt handler. Interrupts are configured to - * occur on both edges. - */ - -#define LPC1766STK_BUT1 (GPIO_INTBOTH | GPIO_FLOAT | GPIO_PORT0 | GPIO_PIN23) -#define LPC1766STK_BUT2 (GPIO_INTBOTH | GPIO_FLOAT | GPIO_PORT2 | GPIO_PIN13) -#define LPC1766STK_WAKEUP (GPIO_INTBOTH | GPIO_FLOAT | GPIO_PORT2 | GPIO_PIN12) - -/* Button IRQ numbers */ - -#define LPC1766STK_BUT1_IRQ LPC17_IRQ_P0p23 -#define LPC1766STK_BUT2_IRQ LPC17_IRQ_P2p13 -#define LPC1766STK_WAKEUP_IRQ LPC17_IRQ_P2p12 - -/* Joystick GPIO PIN SIGNAL NAME - * -------------------------------- ---- -------------- - * P0[5]/I2SRX_WS/TD2/CAP2[1] 80 CENTER - * P2[0]/PWM1[1]/TXD1 75 UP - * P2[1]/PWM1[2]/RXD1 74 DOWN - * P2[7]/RD2/RTS1 66 LEFT - * P2[8]/TD2/TXD2 65 RIGHT - * - * NOTES: - * 1. Pull-ups are not required because the pins are already pulled-up by - * through resistors on the board. - * 2. All buttons are capable of supporting interrupts if board_button_irq() is - * called to attach an interrupt handler. Interrupts are configured to - * occur on both edges. - */ - -#define LPC1766STK_CENTER (GPIO_INTBOTH | GPIO_FLOAT | GPIO_PORT0 | GPIO_PIN5) -#define LPC1766STK_UP (GPIO_INTBOTH | GPIO_FLOAT | GPIO_PORT2 | GPIO_PIN0) -#define LPC1766STK_DOWN (GPIO_INTBOTH | GPIO_FLOAT | GPIO_PORT2 | GPIO_PIN1) -#define LPC1766STK_LEFT (GPIO_INTBOTH | GPIO_FLOAT | GPIO_PORT2 | GPIO_PIN7) -#define LPC1766STK_RIGHT (GPIO_INTBOTH | GPIO_FLOAT | GPIO_PORT2 | GPIO_PIN8) - -/* Joystick IRQ numbers */ - -#define LPC1766STK_CENTER_IRQ LPC17_IRQ_P0p5 -#define LPC1766STK_UP_IRQ LPC17_IRQ_P2p0 -#define LPC1766STK_DOWN_IRQ LPC17_IRQ_P2p1 -#define LPC1766STK_LEFT_IRQ LPC17_IRQ_P2p7 -#define LPC1766STK_RIGHT_IRQ LPC17_IRQ_P2p8 - -/* Nokia LCD GPIO PIN SIGNAL NAME - * -------------------------------- ---- -------------- - * P1[21]/MCABORT/PWM1[3]/SSEL0 35 SSEL0 - * P1[20]/MCFB0/PWM1[2]/SCK0 34 SCK0 - * P1[23]/MCFB1/PWM1[4]/MISO0 37 MISO0 - * P1[24]/MCFB2/PWM1[5]/MOSI0 38 MOSI0 - * P3[25]/MAT0[0]/PWM1[2] 27 LCD_RST - * P3[26]/STCLK/MAT0[1]/PWM1[3] 26 LCD_BL (PWM1) - */ - -#define LPC1766STK_LCD_CS (GPIO_OUTPUT | GPIO_VALUE_ONE | GPIO_PORT1 | GPIO_PIN21) -#define LPC1766STK_LCD_RST (GPIO_OUTPUT | GPIO_VALUE_ZERO | GPIO_PORT3 | GPIO_PIN25) -#define LPC1766STK_LCD_BL GPIO_PWM1p3_3 -#define GPIO_PWM1p3 GPIO_PWM1p3_3 - -/* SD/MMC GPIO PIN SIGNAL NAME - * -------------------------------- ---- -------------- - * P0[6]/I2SRX_SDA/SSEL1/MAT2[0] 79 SSEL1 (active low) - * P0[7]/I2STX_CLK/SCK1/MAT2[1] 78 SCK1 - * P0[8]/I2STX_WS/MISO1/MAT2[2] 77 MISO1 - * P0[9]/I2STX_SDA/MOSI1/MAT2[3] 76 MOSI1 - * P0[21]/RI1/RD1 57 MMC PWR (active low) - */ - -#define LPC1766STK_MMC_CS (GPIO_OUTPUT | GPIO_VALUE_ONE | GPIO_PORT0 | GPIO_PIN6) -#define LPC1766STK_MMC_PWR (GPIO_OUTPUT | GPIO_VALUE_ONE | GPIO_PORT0 | GPIO_PIN21) - -/* AD GPIO PIN SIGNAL NAME - * -------------------------------- ---- -------------- - * P0[24]/AD0[1]/I2SRX_WS/CAP3[1] 8 TEMP - * P0[25]/AD0[2]/I2SRX_SDA/TXD3 7 MIC IN - */ - -#define LPC1766STK_TEMP GPIO_AD0p1 -#define LPC1766STK_MIC_IN GPIO_AD0p2 - -/* UEXT GPIO PIN SIGNAL NAME - * -------------------------------- ---- -------------- - * P1[26]/MC1B/PWM1[6]/CAP0[0] 40 CS_UEXT - */ - -#define LPC1766STK_CS_UEXT (GPIO_OUTPUT | GPIO_VALUE_ONE | GPIO_PORT1 | GPIO_PIN26) - -/* ISP? GPIO PIN SIGNAL NAME - * -------------------------------- ---- -------------- - * P2[10]/#EINT0/NMI 53 ISP_E4 - */ - -/************************************************************************************ - * Public Types - ************************************************************************************/ - -/************************************************************************************ - * Public data - ************************************************************************************/ - -#ifndef __ASSEMBLY__ - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - -/************************************************************************************ - * Name: lpc1766stk_sspinitialize - * - * Description: - * Called to configure SPI chip select GPIO pins for the Olimex LPC1766-STK board. - * - ************************************************************************************/ - -void weak_function lpc1766stk_sspinitialize(void); - -#endif /* __ASSEMBLY__ */ -#endif /* _CONFIGS_OLIMEX_LPC1766STK_SRC_LPC1766STK_INTERNAL_H */ - diff --git a/configs/olimex-lpc1766stk/src/up_boot.c b/configs/olimex-lpc1766stk/src/up_boot.c deleted file mode 100644 index b3ce10d1a4f..00000000000 --- a/configs/olimex-lpc1766stk/src/up_boot.c +++ /dev/null @@ -1,93 +0,0 @@ -/************************************************************************************ - * configs/olimex-lpc1766stk/src/up_boot.c - * arch/arm/src/board/up_boot.c - * - * Copyright (C) 2010, 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * 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 - -#include - -#include - -#include "up_arch.h" -#include "up_internal.h" - -#include "lpc17_ssp.h" -#include "lpc1766stk_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 lpc1766stk_sspinitialize() has been brought into the link. - */ - -#if defined(CONFIG_LPC17_SSP0) || defined(CONFIG_LPC17_SSP1) - if (lpc1766stk_sspinitialize) - { - lpc1766stk_sspinitialize(); - } -#endif - - /* Configure on-board LEDs if LED support has been selected. */ - -#ifdef CONFIG_ARCH_LEDS - board_led_initialize(); -#endif -} diff --git a/configs/olimex-lpc1766stk/src/up_buttons.c b/configs/olimex-lpc1766stk/src/up_buttons.c deleted file mode 100644 index 49888a5218d..00000000000 --- a/configs/olimex-lpc1766stk/src/up_buttons.c +++ /dev/null @@ -1,228 +0,0 @@ -/**************************************************************************** - * configs/olimex-lpc1766stk/src/board_buttons.c - * - * Copyright (C) 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * 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 - -#include -#include - -#include -#include - -#include - -#include "lpc17_gpio.h" -#include "lpc1766stk_internal.h" - -#ifdef CONFIG_ARCH_BUTTONS - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ -/* Pin configuration for each STM3210E-EVAL button. This array is indexed by - * the BUTTON_* and JOYSTICK_* definitions in board.h - */ - -static const uint16_t g_buttoncfg[BOARD_NUM_BUTTONS] = -{ - LPC1766STK_BUT1, LPC1766STK_BUT2, LPC1766STK_WAKEUP, LPC1766STK_CENTER, - LPC1766STK_UP, LPC1766STK_DOWN, LPC1766STK_LEFT, LPC1766STK_RIGHT -}; - -/* This array defines all of the interupt handlers current attached to - * button events. - */ - -#if defined(CONFIG_ARCH_IRQBUTTONS) && defined(CONFIG_GPIO_IRQ) -static xcpt_t g_buttonisr[BOARD_NUM_BUTTONS]; - -/* This array provides the mapping from button ID numbers to button IRQ - * numbers. - */ - -static uint8_t g_buttonirq[BOARD_NUM_BUTTONS] = -{ - LPC1766STK_BUT1_IRQ, LPC1766STK_BUT2_IRQ, LPC1766STK_WAKEUP_IRQ, - LPC1766STK_CENTER_IRQ, LPC1766STK_UP_IRQ, LPC1766STK_DOWN_IRQ, - LPC1766STK_LEFT_IRQ, LPC1766STK_RIGHT_IRQ -}; -#endif - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: board_button_initialize - * - * Description: - * board_button_initialize() must be called to initialize button resources. After - * that, board_buttons() may be called to collect the current state of all - * buttons or board_button_irq() may be called to register button interrupt - * handlers. - * - ****************************************************************************/ - -void board_button_initialize(void) -{ - int i; - - /* Configure the GPIO pins as interrupting inputs. */ - - for (i = 0; i < BOARD_NUM_BUTTONS; i++) - { - lpc17_configgpio(g_buttoncfg[i]); - } -} - -/**************************************************************************** - * Name: board_buttons - * - * Description: - * board_button_initialize() must be called to initialize button resources. After - * that, board_buttons() may be called to collect the current state of all - * buttons. - * - * board_buttons() may be called at any time to harvest the state of every - * button. The state of the buttons is returned as a bitset with one - * bit corresponding to each button: If the bit is set, then the button - * is pressed. See the BOARD_BUTTON_*_BIT and BOARD_JOYSTICK_*_BIT - * definitions in board.h for the meaning of each bit. - * - ****************************************************************************/ - -uint8_t board_buttons(void) -{ - uint8_t ret = 0; - int i; - - /* Check that state of each key */ - - for (i = 0; i < BOARD_NUM_BUTTONS; i++) - { - /* A LOW value means that the key is pressed. */ - - bool released = lpc17_gpioread(g_buttoncfg[i]); - - /* Accumulate the set of depressed (not released) keys */ - - if (!released) - { - ret |= (1 << i); - } - } - - return ret; -} - -/**************************************************************************** - * Button support. - * - * Description: - * board_button_initialize() must be called to initialize button resources. After - * that, board_button_irq() may be called to register button interrupt handlers. - * - * board_button_irq() may be called to register an interrupt handler that will - * be called when a button is depressed or released. The ID value is a - * button enumeration value that uniquely identifies a button resource. See the - * BOARD_BUTTON_* and BOARD_JOYSTICK_* definitions in board.h for the meaning - * of enumeration values. The previous interrupt handler address is returned - * (so that it may restored, if so desired). - * - * Note that board_button_irq() also enables button interrupts. Button - * interrupts will remain enabled after the interrupt handler is attached. - * Interrupts may be disabled (and detached) by calling board_button_irq with - * irqhandler equal to NULL. - * - ****************************************************************************/ - -#if defined(CONFIG_ARCH_IRQBUTTONS) && defined(CONFIG_GPIO_IRQ) -xcpt_t board_button_irq(int id, xcpt_t irqhandler) -{ - xcpt_t oldhandler = NULL; - irqstate_t flags; - int irq; - - /* Verify that the button ID is within range */ - - if ((unsigned)id < BOARD_NUM_BUTTONS) - { - /* Return the current button handler and set the new interrupt handler */ - - oldhandler = g_buttonisr[id]; - g_buttonisr[id] = irqhandler; - - /* Disable interrupts until we are done */ - - flags = irqsave(); - - /* Configure the interrupt. Either attach and enable the new - * interrupt or disable and detach the old interrupt handler. - */ - - irq = g_buttonirq[id]; - if (irqhandler) - { - /* Attach then enable the new interrupt handler */ - - (void)irq_attach(irq, irqhandler); - up_enable_irq(irq); - } - else - { - /* Disable then detach the old interrupt handler */ - - up_disable_irq(irq); - (void)irq_detach(irq); - } - irqrestore(flags); - } - return oldhandler; -} -#endif - -#endif /* CONFIG_ARCH_BUTTONS */ diff --git a/configs/olimex-lpc1766stk/src/up_can.c b/configs/olimex-lpc1766stk/src/up_can.c deleted file mode 100644 index 51d8423e3f5..00000000000 --- a/configs/olimex-lpc1766stk/src/up_can.c +++ /dev/null @@ -1,145 +0,0 @@ -/************************************************************************************ - * configs/solimex-lpc1766stk/src/up_can.c - * arch/arm/src/board/up_can.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * 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 - -#include -#include - -#include -#include - -#include "chip.h" -#include "up_arch.h" - -#include "lpc17_can.h" -#include "lpc1766stk_internal.h" - -#if defined(CONFIG_CAN) && (defined(CONFIG_LPC17_CAN1) || defined(CONFIG_LPC17_CAN2)) - -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ -/* Configuration ********************************************************************/ - -#if defined(CONFIG_LPC17_CAN1) && defined(CONFIG_LPC17_CAN2) -# warning "Both CAN1 and CAN2 are enabled. Assuming only CAN1." -# undef CONFIG_LPC17_CAN2 -#endif - -#ifdef CONFIG_LPC17_CAN2 -# warning "CAN2 is not connected on the LPC1766-STK" -#endif - -#ifdef CONFIG_LPC17_CAN1 -# define CAN_PORT 1 -#else -# define CAN_PORT 2 -#endif - -/* Debug ***************************************************************************/ -/* Non-standard debug that may be enabled just for testing CAN */ - -#ifdef CONFIG_DEBUG_CAN -# define candbg dbg -# define canvdbg vdbg -# define canlldbg lldbg -# define canllvdbg llvdbg -#else -# define candbg(x...) -# define canvdbg(x...) -# define canlldbg(x...) -# define canllvdbg(x...) -#endif - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - -/************************************************************************************ - * Name: can_devinit - * - * Description: - * All LPC17 architectures must provide the following interface to work with - * examples/can. - * - ************************************************************************************/ - -int can_devinit(void) -{ - static bool initialized = false; - struct can_dev_s *can; - int ret; - - /* Check if we have already initialized */ - - if (!initialized) - { - /* Call lpc17_caninitialize() to get an instance of the CAN interface */ - - can = lpc17_caninitialize(CAN_PORT); - if (can == NULL) - { - candbg("ERROR: Failed to get CAN interface\n"); - return -ENODEV; - } - - /* Register the CAN driver at "/dev/can0" */ - - ret = can_register("/dev/can0", can); - if (ret < 0) - { - candbg("ERROR: can_register failed: %d\n", ret); - return ret; - } - - /* Now we are initialized */ - - initialized = true; - } - - return OK; -} - -#endif /* CONFIG_CAN && (CONFIG_LPC17_CAN1 || CONFIG_LPC17_CAN2) */ diff --git a/configs/olimex-lpc1766stk/src/up_hidkbd.c b/configs/olimex-lpc1766stk/src/up_hidkbd.c deleted file mode 100644 index b1180082955..00000000000 --- a/configs/olimex-lpc1766stk/src/up_hidkbd.c +++ /dev/null @@ -1,71 +0,0 @@ -/**************************************************************************** - * configs/olimex-lpc1766stk/src/up_hidkbd.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * 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 - -#include - -#include "lpc17_usbhost.h" - -#if defined(CONFIG_LPC17_USBHOST) && defined(CONFIG_USBHOST) && \ - defined(CONFIG_EXAMPLES_HIDKBD) - -/**************************************************************************** - * Pre-Processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: arch_usbhost_initialize - * - * Description: - * The apps/example/hidkbd test requires that platform-specific code - * provide a wrapper called arch_usbhost_initialize() that will perform - * the actual USB host initialization. - * - ****************************************************************************/ - -struct usbhost_connection_s *arch_usbhost_initialize(void) -{ - return lpc17_usbhost_initialize(0); -} -#endif /* CONFIG_LPC17_USBHOST && CONFIG_USBHOST && CONFIG_EXAMPLES_HIDKBD */ diff --git a/configs/olimex-lpc1766stk/src/up_lcd.c b/configs/olimex-lpc1766stk/src/up_lcd.c deleted file mode 100644 index 78a2c5717bb..00000000000 --- a/configs/olimex-lpc1766stk/src/up_lcd.c +++ /dev/null @@ -1,265 +0,0 @@ -/**************************************************************************** - * config/olimex-lpc1766stk/src/up_lcd.c - * arch/arm/src/board/up_lcd.c - * - * Copyright (C) 2010, 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * 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 - * POSSPBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include - -#include -#include -#include - -#include -#include -#include -#include - -#include "up_arch.h" -#include "chip/lpc17_syscon.h" -#include "chip/lpc17_pwm.h" -#include "lpc17_gpio.h" -#include "lpc1766stk_internal.h" - -#if defined(CONFIG_NX_LCDDRIVER) && defined(CONFIG_LCD_NOKIA6100) && defined(CONFIG_LPC17_SSP0) - -/**************************************************************************** - * Pre-Processor Definitions - ****************************************************************************/ - -/* Check power setting */ - -#if !defined(CONFIG_LCD_MAXPOWER) || CONFIG_LCD_MAXPOWER != 127 -# error "CONFIG_LCD_MAXPOWER must be 127" -#endif - -/* Backlight OFF PWM setting */ - -#define NOKIA_BACKLIGHT_OFF 0x40 - -/* Define the CONFIG_LCD_NOKIADBG to enable detailed debug output (stuff you - * would never want to see unless you are debugging this file). - * - * Verbose debug must also be enabled - */ - -#ifndef CONFIG_DEBUG -# undef CONFIG_DEBUG_VERBOSE -# undef CONFIG_DEBUG_GRAPHICS -#endif - -#ifndef CONFIG_DEBUG_VERBOSE -# undef CONFIG_LCD_NOKIADBG -#endif - -#ifdef CONFIG_LCD_NOKIADBG -# define lcddbg(format, arg...) vdbg(format, ##arg) -# define lcd_dumpgpio(m) lpc17_dumpgpio(LPC1766STK_LCD_RST, m) -#else -# define lcddbg(x...) -# define lcd_dumpgpio(m) -#endif - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: nokia_blinitialize - * - * Description: - * Initialize PWM1 to manage the LCD backlight. - * - ****************************************************************************/ - -void nokia_blinitialize(void) -{ - uint32_t regval; - - /* Enable clocking of PWM1 */ - - regval = getreg32(LPC17_SYSCON_PCONP); - regval |= SYSCON_PCONP_PCPWM1; - putreg32(regval, LPC17_SYSCON_PCONP); - - /* Disable and reset PWM1 */ - - regval = getreg32(LPC17_PWM1_TCR); - regval &= ~(PWM_TCR_PWMEN|PWM_TCR_CNTREN); - regval |= PWM_TCR_CNTRRST; - putreg32(regval, LPC17_PWM1_TCR); - - /* Put PWM1 in timer mode */ - - regval = getreg32(LPC17_PWM1_CTCR); - regval &= ~PWM_CTCR_MODE_MASK; - regval |= PWM_CTCR_MODE_TIMER; - putreg32(regval, LPC17_PWM1_CTCR); - - /* Reset on MR0 */ - - putreg32(PWM_MCR_MR0R, LPC17_PWM1_MCR); - - /* Single edge controlled mod for PWM3 and enable output */ - - regval = getreg32(LPC17_PWM1_PCR); - regval &= ~PWM_PCR_SEL3; - regval |= PWM_PCR_ENA3; - putreg32(regval, LPC17_PWM1_PCR); - - /* Clear prescaler */ - - putreg32(0, LPC17_PWM1_PR); - - /* Set 8-bit resolution */ - - putreg32(0xff, LPC17_PWM1_MCR); - - /* Enable PWM match 1 latch */ - - regval = getreg32(LPC17_PWM1_LER); - regval |= PWM_LER_M0EN; - putreg32(regval, LPC17_PWM1_LER); - - /* Clear match register 3 */ - - putreg32(0, LPC17_PWM1_MR3); - - /* Enable PWM1 */ - - regval |= PWM_LER_M3EN; - putreg32(regval, LPC17_PWM1_LER); - - regval = getreg32(LPC17_PWM1_TCR); - regval &= ~(PWM_TCR_CNTRRST); - regval |= (PWM_TCR_PWMEN|PWM_TCR_CNTREN); - putreg32(regval, LPC17_PWM1_TCR); - - nokia_backlight(0); -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: up_nxdrvinit - * - * Description: - * Called NX initialization logic to configure the LCD. - * - ****************************************************************************/ - -FAR struct lcd_dev_s *up_nxdrvinit(unsigned int devno) -{ - FAR struct spi_dev_s *spi; - FAR struct lcd_dev_s *dev; - - /* Configure the LCD GPIOs */ - - lcd_dumpgpio("up_nxdrvinit: On entry"); - lpc17_configgpio(LPC1766STK_LCD_RST); - lpc17_configgpio(LPC1766STK_LCD_BL); - lcd_dumpgpio("up_nxdrvinit: After GPIO setup"); - - /* Reset the LCD */ - - lpc17_gpiowrite(LPC1766STK_LCD_RST, false); - up_udelay(10); - lpc17_gpiowrite(LPC1766STK_LCD_RST, true); - up_mdelay(5); - - /* Configure PWM1 to support the backlight */ - - nokia_blinitialize(); - - /* Get the SSP0 port (configure as a Freescale SPI port) */ - - spi = lpc17_sspinitialize(0); - if (!spi) - { - glldbg("Failed to initialize SSP port 0\n"); - } - else - { - /* Bind the SSP port to the LCD */ - - dev = nokia_lcdinitialize(spi, devno); - if (!dev) - { - glldbg("Failed to bind SSP port 0 to LCD %d: %d\n", devno); - } - else - { - gllvdbg("Bound SSP port 0 to LCD %d\n", devno); - - /* And turn the LCD on (CONFIG_LCD_MAXPOWER should be 1) */ - - (void)dev->setpower(dev, CONFIG_LCD_MAXPOWER); - return dev; - } - } - return NULL; -} - -/**************************************************************************** - * Name: nokia_backlight - * - * Description: - * The Nokia 6100 backlight is controlled by logic outside of the LCD - * assembly. This function must be provided by board specific logic to - * manage the backlight. This function will receive a power value (0: - * full off - CONFIG_LCD_MAXPOWER: full on) and should set the backlight - * accordingly. - * - * On the Olimex LPC1766STK, the backlight level is controlled by PWM1. - * - ****************************************************************************/ - -int nokia_backlight(unsigned int power) -{ - uint32_t regval; - - putreg32(NOKIA_BACKLIGHT_OFF + power, LPC17_PWM1_MR3); - - regval = getreg32(LPC17_PWM1_LER); - regval |= PWM_LER_M3EN; - putreg32(regval, LPC17_PWM1_LER); - return OK; -} - -#endif /* CONFIG_NX_LCDDRIVER && CONFIG_LCD_NOKIA6100 && CONFIG_LPC17_SSP0 */ diff --git a/configs/olimex-lpc1766stk/src/up_leds.c b/configs/olimex-lpc1766stk/src/up_leds.c deleted file mode 100644 index b29f24dd22e..00000000000 --- a/configs/olimex-lpc1766stk/src/up_leds.c +++ /dev/null @@ -1,206 +0,0 @@ -/**************************************************************************** - * configs/olimex-lpc1766stk/src/up_leds.c - * arch/arm/src/board/up_leds.c - * - * Copyright (C) 2010-2011, 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * 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 - -#include -#include -#include - -#include - -#include "chip.h" -#include "up_arch.h" -#include "up_internal.h" - -#include "lpc17_gpio.h" - -#include "lpc1766stk_internal.h" - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/* CONFIG_DEBUG_LEDS enables debug output from this file (needs CONFIG_DEBUG - * with CONFIG_DEBUG_VERBOSE too) - */ - -#ifdef CONFIG_DEBUG_LEDS -# define leddbg lldbg -# ifdef CONFIG_DEBUG_VERBOSE -# define ledvdbg lldbg -# else -# define ledvdbg(x...) -# endif -#else -# define leddbg(x...) -# define ledvdbg(x...) -#endif - -/* Dump GPIO registers */ - -#if defined(CONFIG_DEBUG_VERBOSE) && defined(CONFIG_DEBUG_LEDS) -# define led_dumpgpio(m) lpc17_dumpgpio(LPC1766STK_LED1, m) -#else -# define led_dumpgpio(m) -#endif - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -#ifdef CONFIG_ARCH_LEDS -static bool g_uninitialized = true; -#endif - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: lpc17_ledinit/board_led_initialize - ****************************************************************************/ - -#ifndef CONFIG_ARCH_LEDS -void lpc17_ledinit(void) /* Name when invoked externally */ -#else -void board_led_initialize(void) /* Name when invoked via up_boot.c */ -#endif -{ - /* Configure all LED GPIO lines */ - - led_dumpgpio("board_led_initialize() Entry)"); - - lpc17_configgpio(LPC1766STK_LED1); - lpc17_configgpio(LPC1766STK_LED2); - - led_dumpgpio("board_led_initialize() Exit"); -} - -/**************************************************************************** - * Name: lpc17_setled - ****************************************************************************/ - -#ifndef CONFIG_ARCH_LEDS -void lpc17_setled(int led, bool ledon) -{ - if (led == BOARD_LED1) - { - lpc17_gpiowrite(LPC1766STK_LED1, !ledon); - } - else if (led == BOARD_LED2) - { - lpc17_gpiowrite(LPC1766STK_LED2, !ledon); - } -} -#endif - -/**************************************************************************** - * Name: lpc17_setleds - ****************************************************************************/ - -#ifndef CONFIG_ARCH_LEDS -void lpc17_setleds(uint8_t ledset) -{ - lpc17_gpiowrite(LPC1766STK_LED1, (ledset & BOARD_LED1_BIT) == 0); - lpc17_gpiowrite(LPC1766STK_LED2, (ledset & BOARD_LED2_BIT) == 0); -} -#endif - -/**************************************************************************** - * Name: board_led_on - ****************************************************************************/ - -#ifdef CONFIG_ARCH_LEDS -void board_led_on(int led) -{ - switch (led) - { - default: - case 0 : /* STARTED, HEAPALLOCATE, IRQSENABLED */ - lpc17_gpiowrite(LPC1766STK_LED1, true); - lpc17_gpiowrite(LPC1766STK_LED2, true); - break; - - case 1 : /* STACKCREATED */ - lpc17_gpiowrite(LPC1766STK_LED1, false); - lpc17_gpiowrite(LPC1766STK_LED2, true); - g_uninitialized = false; - break; - - case 2 : /* INIRQ, SIGNAL, ASSERTION, PANIC */ - lpc17_gpiowrite(LPC1766STK_LED2, false); - break; - - case 3 : /* IDLE */ - lpc17_gpiowrite(LPC1766STK_LED1, true); - break; - } -} -#endif - -/**************************************************************************** - * Name: board_led_off - ****************************************************************************/ - -#ifdef CONFIG_ARCH_LEDS -void board_led_off(int led) -{ - switch (led) - { - default: - case 0 : /* STARTED, HEAPALLOCATE, IRQSENABLED */ - case 1 : /* STACKCREATED */ - lpc17_gpiowrite(LPC1766STK_LED1, true); - - case 2 : /* INIRQ, SIGNAL, ASSERTION, PANIC */ - lpc17_gpiowrite(LPC1766STK_LED2, true); - break; - - case 3 : /* IDLE */ - lpc17_gpiowrite(LPC1766STK_LED1, g_uninitialized); - break; - } -} -#endif diff --git a/configs/olimex-lpc1766stk/src/up_nsh.c b/configs/olimex-lpc1766stk/src/up_nsh.c deleted file mode 100644 index 7a124c29a98..00000000000 --- a/configs/olimex-lpc1766stk/src/up_nsh.c +++ /dev/null @@ -1,331 +0,0 @@ -/**************************************************************************** - * config/olimex-lpc1766stk/src/up_nsh.c - * arch/arm/src/board/up_nsh.c - * - * Copyright (C) 2010, 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * 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 - -#include -#include -#include -#include - -#include -#include -#include - -#include "lpc17_ssp.h" -#include "lpc17_gpio.h" -#include "lpc17_usbhost.h" -#include "lpc1766stk_internal.h" - -/**************************************************************************** - * Pre-Processor Definitions - ****************************************************************************/ - -/* Configuration ************************************************************/ - -/* PORT and SLOT number probably depend on the board configuration */ - -#ifdef CONFIG_ARCH_BOARD_LPC1766STK -# define NSH_HAVEMMCSD 1 -# define NSH_HAVEUSBHOST 1 -# if !defined(CONFIG_NSH_MMCSDSPIPORTNO) || CONFIG_NSH_MMCSDSPIPORTNO != 1 -# error "The LPC1766-STK MMC/SD is on SSP1" -# undef CONFIG_NSH_MMCSDSPIPORTNO -# define CONFIG_NSH_MMCSDSPIPORTNO 1 -# endif -# if !defined(CONFIG_NSH_MMCSDSLOTNO) || CONFIG_NSH_MMCSDSLOTNO != 0 -# error "The LPC1766-STK MMC/SD is only one slot (0)" -# undef CONFIG_NSH_MMCSDSLOTNO -# define CONFIG_NSH_MMCSDSLOTNO 0 -# endif -# ifndef CONFIG_LPC17_SSP1 -# warning "CONFIG_LPC17_SSP1 is not enabled" -# undef NSH_HAVEMMCSD -# endif -#else -# error "Unrecognized board" -# undef NSH_HAVEMMCSD -# undef NSH_HAVEUSBHOST -#endif - -/* Can't support MMC/SD features if mountpoints are disabled */ - -#if defined(CONFIG_DISABLE_MOUNTPOINT) -# undef NSH_HAVEMMCSD -#endif - -#ifndef CONFIG_NSH_MMCSDMINOR -# define CONFIG_NSH_MMCSDMINOR 0 -#endif - -/* USB Host */ - -#ifdef CONFIG_USBHOST -# ifndef CONFIG_LPC17_USBHOST -# error "CONFIG_LPC17_USBHOST is not selected" -# endif -#endif - -#ifdef CONFIG_LPC17_USBHOST -# ifndef CONFIG_USBHOST -# warning "CONFIG_USBHOST is not selected" -# endif -#endif - -#if !defined(CONFIG_USBHOST) || !defined(CONFIG_LPC17_USBHOST) -# undef NSH_HAVEUSBHOST -#endif - -#ifdef NSH_HAVEUSBHOST -# ifndef CONFIG_USBHOST_DEFPRIO -# define CONFIG_USBHOST_DEFPRIO 50 -# endif -# ifndef CONFIG_USBHOST_STACKSIZE -# define CONFIG_USBHOST_STACKSIZE 1024 -# endif -#endif - -/* Debug ********************************************************************/ - -#ifdef CONFIG_CPP_HAVE_VARARGS -# ifdef CONFIG_DEBUG -# define message(...) lowsyslog(__VA_ARGS__) -# else -# define message(...) printf(__VA_ARGS__) -# endif -#else -# ifdef CONFIG_DEBUG -# define message lowsyslog -# else -# define message printf -# endif -#endif - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -#ifdef NSH_HAVEUSBHOST -static struct usbhost_connection_s *g_usbconn; -#endif - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: nsh_waiter - * - * Description: - * Wait for USB devices to be connected. - * - ****************************************************************************/ - -#ifdef NSH_HAVEUSBHOST -static int nsh_waiter(int argc, char *argv[]) -{ - bool connected = false; - int ret; - - message("nsh_waiter: Running\n"); - for (;;) - { - /* Wait for the device to change state */ - - ret = CONN_WAIT(g_usbconn, &connected); - DEBUGASSERT(ret == OK); - - connected = !connected; - message("nsh_waiter: %s\n", connected ? "connected" : "disconnected"); - - /* Did we just become connected? */ - - if (connected) - { - /* Yes.. enumerate the newly connected device */ - - (void)CONN_ENUMERATE(g_usbconn, 0); - } - } - - /* Keep the compiler from complaining */ - - return 0; -} -#endif - -/**************************************************************************** - * Name: nsh_sdinitialize - * - * Description: - * Initialize SPI-based microSD. - * - ****************************************************************************/ - -#ifdef NSH_HAVEMMCSD -static int nsh_sdinitialize(void) -{ - FAR struct spi_dev_s *ssp; - int ret; - - /* Enable power to the SD/MMC via a GPIO. LOW enables SD/MMC. */ - - lpc17_gpiowrite(LPC1766STK_MMC_PWR, false); - - /* Get the SSP port */ - - ssp = lpc17_sspinitialize(CONFIG_NSH_MMCSDSPIPORTNO); - if (!ssp) - { - message("nsh_archinitialize: Failed to initialize SSP port %d\n", - CONFIG_NSH_MMCSDSPIPORTNO); - ret = -ENODEV; - goto errout; - } - - 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_sdinitialize: " - "Failed to bind SSP port %d to MMC/SD slot %d: %d\n", - CONFIG_NSH_MMCSDSPIPORTNO, - CONFIG_NSH_MMCSDSLOTNO, ret); - goto errout; - } - - message("Successfuly bound SSP port %d to MMC/SD slot %d\n", - CONFIG_NSH_MMCSDSPIPORTNO, - CONFIG_NSH_MMCSDSLOTNO); - return OK; - - /* Disable power to the SD/MMC via a GPIO. HIGH disables SD/MMC. */ - -errout: - lpc17_gpiowrite(LPC1766STK_MMC_PWR, true); - return ret; -} -#else -# define nsh_sdinitialize() (OK) -#endif - -/**************************************************************************** - * Name: nsh_usbhostinitialize - * - * Description: - * Initialize SPI-based microSD. - * - ****************************************************************************/ - -#ifdef NSH_HAVEUSBHOST -static int nsh_usbhostinitialize(void) -{ - int pid; - int ret; - - /* First, register all of the class drivers needed to support the drivers - * that we care about: - */ - - message("nsh_usbhostinitialize: Register class drivers\n"); - ret = usbhost_storageinit(); - if (ret != OK) - { - message("nsh_usbhostinitialize: Failed to register the mass storage class\n"); - } - - /* Then get an instance of the USB host interface */ - - message("nsh_usbhostinitialize: Initialize USB host\n"); - g_usbconn = lpc17_usbhost_initialize(0); - if (g_usbconn) - { - /* Start a thread to handle device connection. */ - - message("nsh_usbhostinitialize: Start nsh_waiter\n"); - -#ifndef CONFIG_CUSTOM_STACK - pid = task_create("usbhost", CONFIG_USBHOST_DEFPRIO, - CONFIG_USBHOST_STACKSIZE, - (main_t)nsh_waiter, (FAR char * const *)NULL); -#else - pid = task_create("usbhost", CONFIG_USBHOST_DEFPRIO, - (main_t)nsh_waiter, (FAR char * const *)NULL); -#endif - return pid < 0 ? -ENOEXEC : OK; - } - return -ENODEV; -} -#else -# define nsh_usbhostinitialize() (OK) -#endif - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: nsh_archinitialize - * - * Description: - * Perform architecture specific initialization - * - ****************************************************************************/ - -int nsh_archinitialize(void) -{ - int ret; - - /* Initialize SPI-based microSD */ - - ret = nsh_sdinitialize(); - if (ret == OK) - { - /* Initialize USB host */ - - ret = nsh_usbhostinitialize(); - } - return ret; -} diff --git a/configs/olimex-lpc1766stk/src/up_ssp.c b/configs/olimex-lpc1766stk/src/up_ssp.c deleted file mode 100644 index aa20e0d7951..00000000000 --- a/configs/olimex-lpc1766stk/src/up_ssp.c +++ /dev/null @@ -1,381 +0,0 @@ -/************************************************************************************ - * configs/olimex-lpc1766stk/src/up_ssp.c - * arch/arm/src/board/up_ssp.c - * - * Copyright (C) 2010, 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * 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 - -#include -#include -#include - -#include -#ifdef CONFIG_SPI_CALLBACK -#include -#endif - -#include - -#include "up_arch.h" -#include "chip.h" -#include "lpc17_gpio.h" -#include "lpc17_ssp.h" -#include "lpc1766stk_internal.h" - -#if defined(CONFIG_LPC17_SSP0) || defined(CONFIG_LPC17_SSP1) - -/************************************************************************************ - * Definitions - ************************************************************************************/ -/* Configuration ************************************************************/ - -#ifdef CONFIG_SPI_CALLBACK -# ifndef CONFIG_GPIO_IRQ -# warning "CONFIG_GPIO_IRQ is required to support CONFIG_SPI_CALLBACK" -# endif -#endif - -/* Debug ********************************************************************/ -/* The following enable debug output from this file (needs CONFIG_DEBUG too). - * - * CONFIG_SSP_DEBUG - Define to enable basic SSP debug - * CONFIG_SSP_VERBOSE - Define to enable verbose SSP debug - */ - -#ifdef CONFIG_SSP_DEBUG -# define sspdbg lldbg -# ifdef CONFIG_SSP_VERBOSE -# define sspvdbg lldbg -# else -# define sspvdbg(x...) -# endif -#else -# undef CONFIG_SSP_VERBOSE -# define sspdbg(x...) -# define sspvdbg(x...) -#endif - -/* Dump GPIO registers */ - -#ifdef CONFIG_SSP_VERBOSE -# define ssp_dumpssp0gpio(m) lpc17_dumpgpio(LPC1766STK_LCD_CS, m) -# define ssp_dumpssp1gpio(m) lpc17_dumpgpio(LPC1766STK_MMC_CS, m) -#else -# define ssp_dumpssp0gpio(m) -# define ssp_dumpssp1gpio(m) -#endif - -/************************************************************************************ - * Private Types - ************************************************************************************/ - -/* This structure describes on media change callback */ - -#ifdef CONFIG_SPI_CALLBACK -struct lpc17_mediachange_s -{ - spi_mediachange_t callback; /* The media change callback */ - FAR void *arg; /* Callback argument */ -}; -#endif - -/************************************************************************************ - * Private Data - ************************************************************************************/ - -/* Registered media change callback */ - -#ifdef CONFIG_SPI_CALLBACK -#ifdef CONFIG_LPC17_SSP0 -static struct lpc17_mediachange_s g_ssp0callback; -#endif -#ifdef CONFIG_LPC17_SSP1 -static struct lpc17_mediachange_s g_ssp1callback; -#endif -#endif - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - -/************************************************************************************ - * Name: ssp_cdirqsetup - * - * Description: - * Setup to receive a card detection interrupt - * - ************************************************************************************/ - -#ifdef CONFIG_SPI_CALLBACK -static void ssp_cdirqsetup(int irq, xcpt_t irqhandler) -{ - irqstate_t flags; - - /* Disable interrupts until we are done */ - - flags = irqsave(); - - /* Configure the interrupt. Either attach and enable the new - * interrupt or disable and detach the old interrupt handler. - */ - - if (irqhandler) - { - /* Attach then enable the new interrupt handler */ - - (void)irq_attach(irq, irqhandler); - up_enable_irq(irq); - } - else - { - /* Disable then detach the old interrupt handler */ - - up_disable_irq(irq); - (void)irq_detach(irq); - } -} -#endif - -/************************************************************************************ - * Name: ssp0/1_cdinterrupt - * - * Description: - * Handle card detection interrupt - * - ************************************************************************************/ - -#ifdef CONFIG_SPI_CALLBACK -#ifdef CONFIG_LPC17_SSP0 -static int ssp0_cdinterrupt(int irq, FAR void *context) -{ - /* Invoke the media change callback */ - - if (g_ssp0callback.callback) - { - g_ssp0callback.callback(g_ssp0callback.arg); - } - return OK; -} -#endif - -#ifdef CONFIG_LPC17_SSP1 -static int ssp1_cdinterrupt(int irq, FAR void *context) -{ - /* Invoke the media change callback */ - - if (g_ssp1callback.callback) - { - g_ssp1callback.callback(g_ssp1callback.arg); - } - return OK; -} -#endif -#endif - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - -/************************************************************************************ - * Name: lpc1766stk_sspinitialize - * - * Description: - * Called to configure SPI chip select GPIO pins for the LPC1766-STK. - * - ************************************************************************************/ - -void weak_function lpc1766stk_sspinitialize(void) -{ - /* Configure the SSP0 chip select GPIOs. Only the Nokia LCD is connected to SSP0 */ - -#ifdef CONFIG_LPC17_SSP0 - ssp_dumpssp0gpio("BEFORE SSP0 Initialization"); - lpc17_configgpio(LPC1766STK_LCD_CS); - ssp_dumpssp0gpio("AFTER SSP0 Initialization"); -#endif - - /* Configure SSP1 chip select GPIOs. Only the SD/MMC card slot is connected to SSP1 */ - -#ifdef CONFIG_LPC17_SSP1 - ssp_dumpssp0gpio("BEFORE SSP1 Initialization"); - lpc17_configgpio(LPC1766STK_MMC_CS); - - /* Also configure the SD/MMC power GPIO (but leave power off). This really has - * nothing to do with SSP, but does belong with other SD/MMC GPIO configuration - * settings. - */ - - lpc17_configgpio(LPC1766STK_MMC_PWR); - ssp_dumpssp0gpio("AFTER SSP1 Initialization"); -#endif - -#ifdef CONFIG_SPI_CALLBACK - /* If there were any CD detect pins for the LPC1766-STK, this is where - * they would be configured. - */ -#endif -} - -/************************************************************************************ - * 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/spi.h). All other methods (including lpc17_sspinitialize()) - * 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 lpc17_sspinitialize() in your low level application - * initialization logic - * 4. The handle returned by lpc17_sspinitialize() 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_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"); - if (devid == SPIDEV_DISPLAY) - { - /* Assert/de-assert the CS pin to the card */ - - ssp_dumpssp0gpio("lpc17_ssp0select() Entry"); - lpc17_gpiowrite(LPC1766STK_LCD_CS, !selected); - ssp_dumpssp0gpio("lpc17_ssp0select() Exit"); - } -} - -uint8_t lpc17_ssp0status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) -{ - sspdbg("Returning nothing\n"); - return 0; -} -#endif - -#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"); - if (devid == SPIDEV_MMCSD) - { - /* Assert/de-assert the CS pin to the card */ - - ssp_dumpssp1gpio("lpc17_ssp1select() Entry"); - lpc17_gpiowrite(LPC1766STK_MMC_CS, !selected); - ssp_dumpssp1gpio("lpc17_ssp1select() 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 - -/************************************************************************************ - * Name: lpc17_ssp0/1register - * - * Description: - * If the board supports a card detect callback to inform the SPI-based - * MMC/SD drvier when an SD card is inserted or removed, then - * CONFIG_SPI_CALLBACK should be defined and the following function(s) must - * must be implemented. These functiosn implements the registercallback - * method of the SPI interface (see include/nuttx/spi/spi.h for details) - * - * Input Parameters: - * dev - Device-specific state data - * callback - The funtion to call on the media change - * arg - A caller provided value to return with the callback - * - * Returned Value: - * 0 on success; negated errno on failure. - * - ************************************************************************************/ - -#ifdef CONFIG_SPI_CALLBACK -#ifdef CONFIG_LPC17_SSP0 - /* If there were any CD detect pins on the LPC1766-STK, this is how the - * would be configured. - */ - -int lpc17_ssp0register(FAR struct spi_dev_s *dev, spi_mediachange_t callback, void *arg) -{ - /* Save the callback information */ - -#if 0 - g_ssp0callback.callback = callback; - g_ssp0callback.arg = arg; - - /* Setup the interrupt */ - - spi_cdirqsetup(LPC1766STK_SPICD_IRQ, ssp0_cdinterrupt); -#endif - return OK; -} -#endif - -#ifdef CONFIG_LPC17_SSP1 -int lpc17_ssp1register(FAR struct spi_dev_s *dev, spi_mediachange_t callback, void *arg) -{ - /* Save the callback information */ - -#if 0 - g_ssp1callback.callback = callback; - g_ssp1callback.arg = arg; - - /* Setup the interrupt */ - - spi_cdirqsetup(LPC1766STK_SPICD_IRQ, ssp1_cdinterrupt); -#endif - return OK; -} -#endif -#endif - -#endif /* CONFIG_LPC17_SSP0 || CONFIG_LPC17_SSP1 */ diff --git a/configs/olimex-lpc1766stk/src/up_usbmsc.c b/configs/olimex-lpc1766stk/src/up_usbmsc.c deleted file mode 100644 index 78a99a2b1c3..00000000000 --- a/configs/olimex-lpc1766stk/src/up_usbmsc.c +++ /dev/null @@ -1,155 +0,0 @@ -/**************************************************************************** - * configs/olimex-lpc1766stk/src/up_usbmsc.c - * - * Copyright (C) 2010 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * 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 - -#include -#include -#include - -#include -#include - -#include "lpc17_gpio.h" -#include "lpc1766stk_internal.h" - -/**************************************************************************** - * Pre-Processor Definitions - ****************************************************************************/ - -/* Configuration ************************************************************/ - -#ifndef CONFIG_SYSTEM_USBMSC_DEVMINOR1 -# define CONFIG_SYSTEM_USBMSC_DEVMINOR1 0 -#endif - -/* PORT and SLOT number probably depend on the board configuration */ - -#ifdef CONFIG_ARCH_BOARD_LPC1766STK -# undef LPC17XX_MMCSDSPIPORTNO -# define LPC17XX_MMCSDSPIPORTNO 1 -# 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(...) lowsyslog(__VA_ARGS__) -# define msgflush() -# else -# define message(...) printf(__VA_ARGS__) -# define msgflush() fflush(stdout) -# endif -#else -# ifdef CONFIG_DEBUG -# define message lowsyslog -# 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; - - /* Enable power to the SD/MMC via a GPIO. LOW enables SD/MMC. */ - - lpc17_gpiowrite(LPC1766STK_MMC_PWR, false); - - /* Get the SPI port */ - - message("usbmsc_archinitialize: Initializing SPI port %d\n", - LPC17XX_MMCSDSPIPORTNO); - - spi = lpc17_sspinitialize(LPC17XX_MMCSDSPIPORTNO); - if (!spi) - { - message("usbmsc_archinitialize: Failed to initialize SPI port %d\n", - LPC17XX_MMCSDSPIPORTNO); - ret = -ENODEV; - goto errout; - } - - 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_SYSTEM_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); - goto errout; - } - - message("usbmsc_archinitialize: Successfuly bound SPI port %d to MMC/SD slot %d\n", - LPC17XX_MMCSDSPIPORTNO, LPC17XX_MMCSDSLOTNO); - return OK; - - /* Disable power to the SD/MMC via a GPIO. HIGH disables SD/MMC. */ - -errout: - lpc17_gpiowrite(LPC1766STK_MMC_PWR, true); - return ret;}