| /**************************************************************************** |
| * boards/arm/samv7/same70-qmtech/src/same70-qmtech.h |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. The |
| * ASF licenses this file to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance with the |
| * License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| * License for the specific language governing permissions and limitations |
| * under the License. |
| * |
| ****************************************************************************/ |
| |
| #ifndef __BOARDS_ARM_SAMV7_SAME70_QMTECH_SRC_SAME70_QMTECH_H |
| #define __BOARDS_ARM_SAMV7_SAME70_QMTECH_SRC_SAME70_QMTECH_H |
| |
| /**************************************************************************** |
| * Included Files |
| ****************************************************************************/ |
| |
| #include <nuttx/config.h> |
| |
| #include <stdint.h> |
| #include <stdbool.h> |
| |
| #include <arch/irq.h> |
| #include <nuttx/irq.h> |
| |
| /**************************************************************************** |
| * Pre-processor Definitions |
| ****************************************************************************/ |
| |
| /* Configuration ************************************************************/ |
| |
| #define HAVE_HSMCI 1 |
| #define HAVE_AUTOMOUNTER 1 |
| #define HAVE_PROGMEM_CHARDEV 1 |
| |
| /* HSMCI */ |
| |
| /* Can't support MMC/SD if the card interface is not enabled */ |
| |
| #if !defined(CONFIG_SAMV7_HSMCI0) |
| # undef HAVE_HSMCI |
| #endif |
| |
| /* Can't support MMC/SD features if mountpoints are disabled */ |
| |
| #if defined(HAVE_HSMCI) && defined(CONFIG_DISABLE_MOUNTPOINT) |
| # warning Mountpoints disabled. No MMC/SD support |
| # undef HAVE_HSMCI |
| #endif |
| |
| /* We need PIO interrupts on GPIOD to support card detect interrupts */ |
| |
| #if defined(HAVE_HSMCI) && !defined(CONFIG_SAMV7_GPIOD_IRQ) |
| # warning PIOD interrupts not enabled. No MMC/SD support. |
| # undef HAVE_HSMCI |
| #endif |
| |
| /* MMC/SD minor numbers */ |
| |
| #ifndef CONFIG_NSH_MMCSDMINOR |
| # define CONFIG_NSH_MMCSDMINOR 0 |
| #endif |
| |
| #ifndef CONFIG_NSH_MMCSDSLOTNO |
| # define CONFIG_NSH_MMCSDSLOTNO 0 |
| #endif |
| |
| #if CONFIG_NSH_MMCSDSLOTNO != 0 |
| # error SAME70 has only one MMC/SD slot (CONFIG_NSH_MMCSDSLOTNO) |
| # undef CONFIG_NSH_MMCSDSLOTNO |
| # define CONFIG_NSH_MMCSDSLOTNO 0 |
| #endif |
| |
| #define HSMCI0_SLOTNO CONFIG_NSH_MMCSDSLOTNO |
| #define HSMCI0_MINOR CONFIG_NSH_MMCSDMINOR |
| |
| /* Automounter. Currently only works with HSMCI. */ |
| |
| #if !defined(CONFIG_FS_AUTOMOUNTER) || !defined(HAVE_HSMCI) |
| # undef HAVE_AUTOMOUNTER |
| # undef CONFIG_SAMV7_HSMCI0_AUTOMOUNT |
| #endif |
| |
| #ifndef CONFIG_SAMV7_HSMCI0_AUTOMOUNT |
| # undef HAVE_AUTOMOUNTER |
| #endif |
| |
| /* On-chip Programming Memory */ |
| |
| #if !defined(CONFIG_SAMV7_PROGMEM) || !defined(CONFIG_MTD_PROGMEM) |
| # undef HAVE_PROGMEM_CHARDEV |
| #endif |
| |
| /* This is the on-chip progmem memory driver minor number */ |
| |
| #define PROGMEM_MTD_MINOR 0 |
| |
| /* procfs File System */ |
| |
| #ifdef CONFIG_FS_PROCFS |
| # ifdef CONFIG_NSH_PROC_MOUNTPOINT |
| # define SAME70_PROCFS_MOUNTPOINT CONFIG_NSH_PROC_MOUNTPOINT |
| # else |
| # define SAME70_PROCFS_MOUNTPOINT "/proc" |
| # endif |
| #endif |
| |
| /* SAME70-QMTECH GPIO Pin Definitions ***************************************/ |
| |
| /* LEDs |
| * |
| * A single LED is available driven by PA15. |
| */ |
| |
| #define GPIO_LED0 (GPIO_OUTPUT | GPIO_CFG_DEFAULT | GPIO_OUTPUT_SET | \ |
| GPIO_PORT_PIOA | GPIO_PIN15) |
| |
| /* Buttons |
| * |
| * SAM E70 QMTECH contains two mechanical buttons. One button is the RESET |
| * button connected to the SAM E70 reset line and the other, PA11, is a |
| * generic user configurable button. |
| * When a button is pressed it will drive the I/O line to GND. |
| * |
| * NOTE: There are no pull-up resistors connected to the generic user buttons |
| * so it is necessary to enable the internal pull-up in the SAM E70 to use |
| * the button. |
| */ |
| |
| #define GPIO_SW0 (GPIO_INPUT | GPIO_CFG_PULLUP | GPIO_CFG_DEGLITCH | \ |
| GPIO_INT_BOTHEDGES | GPIO_PORT_PIOA | GPIO_PIN21) |
| #define IRQ_SW0 SAM_IRQ_PA21 |
| |
| /* HSMCI SD Card Detect |
| * |
| * The SAM E70 QMTECH has one standard SD card connector that is connected |
| * to the High Speed Multimedia Card Interface (HSMCI) of the SAM E70. |
| * SD card connector: |
| * |
| * ------ ----------------- |
| * SAME70 SAME70 |
| * Pin Function |
| * ------ ----------------- |
| * PA30 MCDA0 (DAT0) |
| * PA31 MCDA1 (DAT1) |
| * PA26 MCDA2 (DAT2) |
| * PA27 MCDA3 (DAT3) |
| * PA25 MCCK (CLK) |
| * PA28 MCCDA (CMD) |
| * N/A Card Detect (C/D) |
| * ------ ----------------- |
| * |
| * The SD card connector does not have CD signal connected to SAM E70 pin, |
| * but in order to provide automounter support the HW rework can be done and |
| * CD signal can be connected to SAM E70 PD17 (connector J3 pin 17). |
| */ |
| |
| #define GPIO_HSMCI0_CD (GPIO_INPUT | GPIO_CFG_DEFAULT | GPIO_CFG_DEGLITCH | \ |
| GPIO_INT_BOTHEDGES | GPIO_PORT_PIOD | GPIO_PIN17) |
| #define IRQ_HSMCI0_CD SAM_IRQ_PD17 |
| |
| /* GPIO pins used by the GPIO Subsystem */ |
| |
| #define BOARD_NGPIOIN 0 /* Amount of GPIO Input pins */ |
| #define BOARD_NGPIOOUT 0 /* Amount of GPIO Output pins */ |
| #define BOARD_NGPIOINT 0 /* Amount of GPIO Input w/ Interruption pins */ |
| |
| /**************************************************************************** |
| * Public Types |
| ****************************************************************************/ |
| |
| /**************************************************************************** |
| * Public Data |
| ****************************************************************************/ |
| |
| #ifndef __ASSEMBLY__ |
| |
| /**************************************************************************** |
| * Public Functions Definitions |
| ****************************************************************************/ |
| |
| /**************************************************************************** |
| * Name: sam_bringup |
| * |
| * Description: |
| * Bring up board features |
| * |
| ****************************************************************************/ |
| |
| #if defined(CONFIG_BOARDCTL) || defined(CONFIG_BOARD_LATE_INITIALIZE) |
| int sam_bringup(void); |
| #endif |
| |
| /**************************************************************************** |
| * Name: sam_afec_initialize |
| * |
| * Description: |
| * Initialize and register the ADC driver. |
| * |
| ****************************************************************************/ |
| |
| #ifdef CONFIG_SAMV7_AFEC |
| int sam_afec_setup(void); |
| #endif |
| |
| /**************************************************************************** |
| * Name: sam_dacdev_initialize |
| * |
| * Description: |
| * Called to configure DAC peripheral module |
| * |
| ****************************************************************************/ |
| |
| #if defined(CONFIG_SAMV7_DAC0) || defined(CONFIG_SAMV7_DAC1) |
| int sam_dacdev_initialize(void); |
| #endif |
| |
| /**************************************************************************** |
| * Name: sam_spidev_initialize |
| * |
| * Description: |
| * Called to configure SPI chip select GPIO pins for the SAME70-QMTECH |
| * board. |
| * |
| ****************************************************************************/ |
| |
| #ifdef CONFIG_SAMV7_SPI |
| void sam_spidev_initialize(void); |
| #endif |
| |
| /**************************************************************************** |
| * Name: sam_can_setup |
| * |
| * Description: |
| * Initialize CAN and register the CAN device |
| * |
| ****************************************************************************/ |
| |
| #ifdef CONFIG_SAMV7_MCAN |
| int sam_can_setup(void); |
| #endif |
| |
| /**************************************************************************** |
| * Name: sam_gpio_initialize |
| * |
| * Description: |
| * Initialize GPIO drivers for use with /apps/examples/gpio |
| * |
| ****************************************************************************/ |
| |
| #ifdef CONFIG_DEV_GPIO |
| int sam_gpio_initialize(void); |
| #endif |
| |
| #endif /* __ASSEMBLY__ */ |
| #endif /* __BOARDS_ARM_SAMV7_SAME70_QMTECH_SRC_SAME70_QMTECH_H */ |