at91lib/boards/at91cap7-stk/fpga.h

145 lines
4.7 KiB
C

/* ----------------------------------------------------------------------------
* ATMEL Microcontroller Software Support
* ----------------------------------------------------------------------------
* Copyright (c) 2008, Atmel Corporation
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the disclaimer below.
*
* Atmel's name may not be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
* DISCLAIMED. IN NO EVENT SHALL ATMEL 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 FPGA_H
#define FPGA_H
//------------------------------------------------------------------------------
// Definitions - PIOA connection to FPGA I/Os.
// This fpga.h file is used in conjuction with the verilog (*.v) file for
// FPGA interface I/O conneciton.
//------------------------------------------------------------------------------
/************/
/* LEDs */
/************/
/// LED #0 pin definition.
#define PIN_LED_DS1 {1 << 10, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_OUTPUT_1, PIO_DEFAULT}
/// LED #1 pin definition.
#define PIN_LED_DS2 {1 << 11, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_OUTPUT_1, PIO_DEFAULT}
#define PINS_LEDS PIN_LED_DS1, PIN_LED_DS2 //, PIN_LED_DS3, PIN_LED_DS4, PIN_LED_DS5, PIN_LED_DS6, PIN_LED_DS7
/// LED DS1 index.
#define LED_DS1 0
/// LED DS2 index.
#define LED_DS2 1
/********************/
/* Push Buttons */
/********************/
/// Push button #0 definition.
#define PIN_PUSHBUTTON_1 {1 << 8, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_INPUT, PIO_DEGLITCH | PIO_PULLUP}
/// Push button #1 definition.
#define PIN_PUSHBUTTON_2 {1 << 9, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_INPUT, PIO_DEGLITCH | PIO_PULLUP}
/// List of all push button definitions.
#define PINS_PUSHBUTTONS PIN_PUSHBUTTON_1, PIN_PUSHBUTTON_2 // , PIN_PUSHBUTTON_3, PIN_PUSHBUTTON_4
/// Push button #0 index.
#define PUSHBUTTON_BP1 0
/// Push button #1 index.
#define PUSHBUTTON_BP2 1
/// Push button #2 index.
/// #define PUSHBUTTON_BP3 2
/// Push button #3 index.
/// #define PUSHBUTTON_BP4 3
/***********************/
/* Joystick control */
/***********************/
// Joystick UP.
#define PIN_JOYSTICK_UP {1 << 20, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_INPUT, PIO_PULLUP}
// Joystick DOWN.
#define PIN_JOYSTICK_DOWN {1 << 23, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_INPUT, PIO_PULLUP}
// Joystick LEFT.
#define PIN_JOYSTICK_LEFT {1 << 22, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_INPUT, PIO_PULLUP}
// Joystick RIGHT.
#define PIN_JOYSTICK_RIGHT {1 << 21, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_INPUT, PIO_PULLUP}
// Joystick LEFT clic.
#define PIN_JOYSTICK_LCLIC {1 << 24, AT91C_BASE_PIOB, AT91C_ID_PIOB, PIO_INPUT, PIO_PULLUP}
// Joystick PUSH button.
#define PIN_JOYSTICK_PUSH PIN_JOYSTICK_LCLIC
// List of all Joystick click definitions
#define PINS_JOYSTICK_CLIC PIN_JOYSTICK_LCLIC
// List of all Joystick movement direction definitions
#define PINS_JOYSTICK_MOVE PIN_JOYSTICK_UP, PIN_JOYSTICK_DOWN, \
PIN_JOYSTICK_LEFT, PIN_JOYSTICK_RIGHT
// List of all Joystick definitions
#define PINS_JOYSTICK PINS_JOYSTICK_MOVE, \
PINS_JOYSTICK_CLIC
// Joystick UP index.
#define JOYSTICK_UP 0
// Joystick DOWN index.
#define JOYSTICK_DOWN 1
// Joystick LEFT index.
#define JOYSTICK_LEFT 2
// Joystick RIGHT index.
#define JOYSTICK_RIGHT 3
// Joystick LEFT CLICK index.
#define JOYSTICK_LCLIC 4
// Joystick PUSH button index.
#define JOYSTICK_PUSH 4
#endif //#ifndef FPGA_H