diff --git a/arch/arm/src/sam34/Kconfig b/arch/arm/src/sam34/Kconfig index b93787e8cd5..bcc5ebab9c3 100644 --- a/arch/arm/src/sam34/Kconfig +++ b/arch/arm/src/sam34/Kconfig @@ -459,6 +459,12 @@ config USART3_ISUART select ARCH_HAVE_USART2 comment "AT91SAM3/4 GPIO Interrupt Configuration" +config GPIO_IRQ + bool "GPIO pin interrupts" + ---help--- + Enable support for interrupting GPIO pins + +if GPIO_IRQ config GPIOA_IRQ bool "GPIOA interrupts" @@ -472,6 +478,8 @@ config GPIOC_IRQ bool "GPIOC interrupts" default n +endif + if SAM34_WDT comment "AT91SAM3/4 Watchdog Configuration"| diff --git a/arch/arm/src/sam34/chip/sam_smc.h b/arch/arm/src/sam34/chip/sam_smc.h index e7cd87f8ca7..e729c1519e5 100644 --- a/arch/arm/src/sam34/chip/sam_smc.h +++ b/arch/arm/src/sam34/chip/sam_smc.h @@ -155,7 +155,7 @@ #define SAM_SMCCS_CYCLE(n) (SAM_SMCCS_BASE(n)+SAM_SMCCS_CYCLE_OFFSET) #if defined(CONFIG_ARCH_CHIP_SAM3U) # define SAM_SMCCS_TIMINGS(n) (SAM_SMCCS_BASE(n)+SAM_SMCCS_TIMINGS_OFFSET) -#enmdif +#endif #define SAM_SMCCS_MODE(n) (SAM_SMCCS_BASE(n)+SAM_SMCCS_MODE_OFFSET) #define SAM_SMC_OCMS (SAM_SMC_BASE+SAM_SMC_OCMS_OFFSET) diff --git a/arch/arm/src/sam34/sam_gpioirq.c b/arch/arm/src/sam34/sam_gpioirq.c index 395578bfdf9..b7c7ead2784 100644 --- a/arch/arm/src/sam34/sam_gpioirq.c +++ b/arch/arm/src/sam34/sam_gpioirq.c @@ -54,6 +54,7 @@ #include "up_internal.h" #include "sam_gpio.h" +#include "sam_periphclks.h" #include "chip/sam3u_pio.h" #include "chip/sam3u_pmc.h" diff --git a/arch/arm/src/sam34/sam_lowputc.c b/arch/arm/src/sam34/sam_lowputc.c index 54f4ac6e31b..55ab7555b68 100644 --- a/arch/arm/src/sam34/sam_lowputc.c +++ b/arch/arm/src/sam34/sam_lowputc.c @@ -48,17 +48,15 @@ #include "up_arch.h" #include "sam_gpio.h" +#include "sam_periphclks.h" #include "sam_lowputc.h" #if defined(CONFIG_ARCH_CHIP_SAM3U) # include "chip/sam3u_uart.h" -# include "sam3u_periphclks.h" #elif defined(CONFIG_ARCH_CHIP_SAM4L) # include "chip/sam4l_usart.h" -# include "sam4l_periphclks.h" #elif defined(CONFIG_ARCH_CHIP_SAM4S) # include "chip/sam3u_uart.h" -# include "sam4s_periphclks.h" #else # error Unknown UART #endif diff --git a/arch/arm/src/sam34/sam_periphclks.h b/arch/arm/src/sam34/sam_periphclks.h new file mode 100644 index 00000000000..43fb6dc8999 --- /dev/null +++ b/arch/arm/src/sam34/sam_periphclks.h @@ -0,0 +1,92 @@ +/************************************************************************************ + * arch/arm/src/sam34/sam_periphclks.h + * + * 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. + * + ************************************************************************************/ + +#ifndef __ARCH_ARM_SRC_SAM34_SAM_PERIPHCLKS_H +#define __ARCH_ARM_SRC_SAM34_SAM_PERIPHCLKS_H + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include + +#if defined(CONFIG_ARCH_CHIP_SAM3U) +# include "sam3u_periphclks.h" +#elif defined(CONFIG_ARCH_CHIP_SAM4L) +# include "sam4l_periphclks.h" +#elif defined(CONFIG_ARCH_CHIP_SAM4S) +# include "sam4s_periphclks.h" +#else +# error Unknown SAM chip +#endif + +/************************************************************************************ + * Pre-processor Definitions + ************************************************************************************/ + +/************************************************************************************ + * Public Types + ************************************************************************************/ + +/************************************************************************************ + * Inline Functions + ************************************************************************************/ + +#ifndef __ASSEMBLY__ + +/************************************************************************************ + * Public Data + ************************************************************************************/ + +#undef EXTERN +#if defined(__cplusplus) +#define EXTERN extern "C" +extern "C" +{ +#else +#define EXTERN extern +#endif + +/************************************************************************************ + * Public Function Prototypes + ************************************************************************************/ + +#undef EXTERN +#if defined(__cplusplus) +} +#endif + +#endif /* __ASSEMBLY__ */ +#endif /* __ARCH_ARM_SRC_SAM34_SAM_PERIPHCLKS_H */ diff --git a/arch/arm/src/sam34/sam_spi.c b/arch/arm/src/sam34/sam_spi.c index 70550462d40..2143a5c15c4 100644 --- a/arch/arm/src/sam34/sam_spi.c +++ b/arch/arm/src/sam34/sam_spi.c @@ -57,6 +57,7 @@ #include "chip.h" #include "sam_gpio.h" #include "sam_spi.h" +#include "sam_periphclks.h" #include "chip/sam3u_pmc.h" #include "chip/sam_spi.h" #include "chip/sam_pinmap.h" @@ -899,7 +900,6 @@ FAR struct spi_dev_s *up_spiinitialize(int port) { FAR struct sam_spidev_s *priv = &g_spidev; irqstate_t flags; - uint32_t regval; /* The SAM3U has only a single SPI port */