diff --git a/TODO b/TODO index e2c66cb3be..195b29b351 100644 --- a/TODO +++ b/TODO @@ -2135,22 +2135,12 @@ o Build system libapps.a file was deleted. UPDATE: This is a potential fix for the second problem in place - in apps/Application.mk. That is include by most (but not all) - lower-level Makefiles. This fix is: + in in all Makefiles under apps/. This fix adds - --- a/Application.mk - +++ b/Application.mk - @@ -70,6 +70,7 @@ VPATH = + .PRECIOUS: $(BIN) - all: .built - .PHONY: clean preconfig depend distclean - +.PRECIOUS: $(BIN) - - $(AOBJS): %$(OBJEXT): %.S - $(call ASSEMBLE, $<, $@) - - It has not yet been confirmed that this fix totally eliminates - the issue. + to all Makefiles. It has not yet been confirmed that this fix + eliminates the dependency issue or not. o Other drivers (drivers/) ^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/arch/arm/src/nuc1xx/nuc_serial.c b/arch/arm/src/nuc1xx/nuc_serial.c index 0932cfaf99..fef9001237 100644 --- a/arch/arm/src/nuc1xx/nuc_serial.c +++ b/arch/arm/src/nuc1xx/nuc_serial.c @@ -734,8 +734,8 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) { struct inode *inode = filep->f_inode; struct uart_dev_s *dev = inode->i_private; - struct nuc_dev_s *priv = (struct nuc_dev_s *)dev->priv; - int ret = OK; + struct nuc_dev_s *priv = (struct nuc_dev_s *)dev->priv; + int ret = OK; switch (cmd) { @@ -815,6 +815,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) break; } + UNUSED(priv); return ret; } diff --git a/arch/arm/src/sama5/sam_xdmac.c b/arch/arm/src/sama5/sam_xdmac.c index 54386d92e1..458efcd82b 100644 --- a/arch/arm/src/sama5/sam_xdmac.c +++ b/arch/arm/src/sama5/sam_xdmac.c @@ -158,16 +158,6 @@ struct sam_xdmac_s * Private Data ****************************************************************************/ -/* Channel Control (CC) Register field lookups */ - -static const uint32_t g_chanwidth[4] = -{ - XDMACH_CC_DWIDTH_BYTE, - XDMACH_CC_DWIDTH_HWORD, - XDMACH_CC_DWIDTH_WORD, - XDMACH_CC_DWIDTH_DWORD -}; - /* These tables map peripheral IDs to channels. A lookup is performed * before each DMA transfer in order to map the peripheral IDs to the * correct channel. This must be done because the channel can change with diff --git a/arch/arm/src/stm32/stm32_dma2d.c b/arch/arm/src/stm32/stm32_dma2d.c index 8611ab2c1a..98848b44a7 100644 --- a/arch/arm/src/stm32/stm32_dma2d.c +++ b/arch/arm/src/stm32/stm32_dma2d.c @@ -268,6 +268,7 @@ static const uintptr_t stm32_color_layer_t[DMA2D_NLAYERS] = STM32_DMA2D_OCOLR }; +#ifdef CONFIG_STM32_DMA2D_L8 /* DMA2D clut memory address register */ static const uintptr_t stm32_cmar_layer_t[DMA2D_NLAYERS - 1] = @@ -275,6 +276,7 @@ static const uintptr_t stm32_cmar_layer_t[DMA2D_NLAYERS - 1] = STM32_DMA2D_FGCMAR, STM32_DMA2D_BGCMAR }; +#endif /**************************************************************************** * Private Function Prototypes diff --git a/arch/arm/src/stm32f7/stm32_dma2d.c b/arch/arm/src/stm32f7/stm32_dma2d.c index 0e8d4edd75..17b6245ca0 100644 --- a/arch/arm/src/stm32f7/stm32_dma2d.c +++ b/arch/arm/src/stm32f7/stm32_dma2d.c @@ -263,8 +263,9 @@ static const uintptr_t stm32_color_layer_t[DMA2D_NLAYERS] = STM32_DMA2D_OCOLR }; -/* DMA2D clut memory address register */ #if defined(CONFIG_STM32F7_DMA2D_L8) +/* DMA2D clut memory address register */ + static const uintptr_t stm32_cmar_layer_t[DMA2D_NLAYERS - 1] = { STM32_DMA2D_FGCMAR, diff --git a/arch/arm/src/stm32f7/stm32_otghost.c b/arch/arm/src/stm32f7/stm32_otghost.c index 92fc2bc7d0..59d8bd076e 100644 --- a/arch/arm/src/stm32f7/stm32_otghost.c +++ b/arch/arm/src/stm32f7/stm32_otghost.c @@ -68,6 +68,7 @@ #include "up_internal.h" #include "stm32_otg.h" +#include "stm32_usbhost.h" #if defined(CONFIG_USBHOST) && defined(CONFIG_STM32F7_OTGFS) diff --git a/arch/arm/src/stm32f7/stm32_usbhost.h b/arch/arm/src/stm32f7/stm32_usbhost.h new file mode 100644 index 0000000000..effac14ba6 --- /dev/null +++ b/arch/arm/src/stm32f7/stm32_usbhost.h @@ -0,0 +1,126 @@ +/************************************************************************************ + * arch/arm/src/stm32f7/stm32_usbhost.h + * + * Copyright (C) 2017 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 __ARCH_ARM_SRC_STM32F7_STM32_USBHOST_H +#define __ARCH_ARM_SRC_STM32F7_STM32_USBHOST_H + +/* STM32 USB OTG Host Driver Support + * + * Pre-requisites + * + * CONFIG_USBHOST - Enable general USB host support + * CONFIG_STM32F7_OTGFS - Enable the STM32 USB OTG FS block + * or + * CONFIG_STM32F7_OTGHS - Enable the STM32 USB OTG HS block + * CONFIG_STM32F7_SYSCFG - Needed + * + * Options: + * + * CONFIG_STM32F7_OTG_RXFIFO_SIZE - Size of the RX FIFO in 32-bit words. + * Default 128 (512 bytes) + * CONFIG_STM32F7_OTG_NPTXFIFO_SIZE - Size of the non-periodic Tx FIFO + * in 32-bit words. Default 96 (384 bytes) + * CONFIG_STM32F7_OTG_PTXFIFO_SIZE - Size of the periodic Tx FIFO in 32-bit + * words. Default 96 (384 bytes) + * CONFIG_STM32F7_OTG_SOFINTR - Enable SOF interrupts. Why would you ever + * want to do that? + * + * CONFIG_STM32F7_USBHOST_REGDEBUG - Enable very low-level register access + * debug. Depends on CONFIG_DEBUG_FEATURES. + */ + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include +#include + +#if (defined(CONFIG_STM32F7_OTGFS) || defined(CONFIG_STM32F7_OTGHS)) && \ + defined(CONFIG_USBHOST) + +/************************************************************************************ + * Public Functions + ************************************************************************************/ + +#ifndef __ASSEMBLY__ + +#undef EXTERN +#if defined(__cplusplus) +#define EXTERN extern "C" +extern "C" +{ +#else +#define EXTERN extern +#endif + +/*********************************************************************************** + * Name: stm32_usbhost_vbusdrive + * + * Description: + * Enable/disable driving of VBUS 5V output. This function must be provided be + * each platform that implements the STM32 OTG FS host interface + * + * "On-chip 5 V VBUS generation is not supported. For this reason, a charge pump + * or, if 5 V are available on the application board, a basic power switch, must + * be added externally to drive the 5 V VBUS line. The external charge pump can + * be driven by any GPIO output. When the application decides to power on VBUS + * using the chosen GPIO, it must also set the port power bit in the host port + * control and status register (PPWR bit in OTG_FS_HPRT). + * + * "The application uses this field to control power to this port, and the core + * clears this bit on an overcurrent condition." + * + * Input Parameters: + * iface - For future growth to handle multiple USB host interface. Should be zero. + * enable - true: enable VBUS power; false: disable VBUS power + * + * Returned Value: + * None + * + ***********************************************************************************/ + +#ifdef CONFIG_STM32F7_OTGFS_VBUS_CONTROL +void stm32_usbhost_vbusdrive(int iface, bool enable); +#endif + +#undef EXTERN +#if defined(__cplusplus) +} +#endif + +#endif /* __ASSEMBLY__ */ +#endif /* (CONFIG_STM32F7_OTGFS || CONFIG_STM32F7_OTGHS) && CONFIG_USBHOST */ +#endif /* __ARCH_ARM_SRC_STM32F7_STM32_USBHOST_H */ diff --git a/configs/shenzhou/src/stm32_ssd1289.c b/configs/shenzhou/src/stm32_ssd1289.c index 413a49c9e4..eabe95ff67 100644 --- a/configs/shenzhou/src/stm32_ssd1289.c +++ b/configs/shenzhou/src/stm32_ssd1289.c @@ -113,7 +113,9 @@ static void stm32_backlight(FAR struct ssd1289_lcd_s *dev, int power); /* Initialization */ +#ifndef CONFIG_LCD_NOGETRUN static void stm32_lcdinput(FAR struct stm32_lower_s *priv); +#endif static void stm32_lcdoutput(FAR struct stm32_lower_s *priv); /************************************************************************************ @@ -438,6 +440,7 @@ static void stm32_backlight(FAR struct ssd1289_lcd_s *dev, int power) * ************************************************************************************/ +#ifndef CONFIG_LCD_NOGETRUN static void stm32_lcdinput(FAR struct stm32_lower_s *priv) { #ifndef CONFIG_LCD_FASTCONFIG @@ -464,6 +467,7 @@ static void stm32_lcdinput(FAR struct stm32_lower_s *priv) priv->output = false; } } +#endif /************************************************************************************ * Name: stm32_lcdoutput diff --git a/configs/stm32f746g-disco/src/stm32_buttons.c b/configs/stm32f746g-disco/src/stm32_buttons.c index ab8d6cb25e..5ae9b26f27 100644 --- a/configs/stm32f746g-disco/src/stm32_buttons.c +++ b/configs/stm32f746g-disco/src/stm32_buttons.c @@ -51,23 +51,6 @@ #ifdef CONFIG_ARCH_BUTTONS -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - - /**************************************************************************** - * Private Data - ****************************************************************************/ - -/* Pin configuration for each STM32F746G Discovery button. This array is indexed by - * the BUTTON_* definitions in board.h - */ - -static const uint32_t g_buttons[NUM_BUTTONS] = -{ - GPIO_BTN_USER -}; - /**************************************************************************** * Public Functions ****************************************************************************/ @@ -124,9 +107,9 @@ int board_button_irq(int id, xcpt_t irqhandler, FAR void *arg) { int ret = -EINVAL; - if (id >= MIN_IRQBUTTON && id <= MAX_IRQBUTTON) + if (id == BUTTON_USER) { - ret = stm32_gpiosetevent(g_buttons[id], true, true, true, irqhandler, arg); + ret = stm32_gpiosetevent(GPIO_BTN_USER, true, true, true, irqhandler, arg); } return ret;