blob: 2c29599ab9c2032b248f3509d0d15c13ef0e74c8 [file] [log] [blame]
/**
* \page sama5d2_ptc_engi_board_desc sama5d2-PTC-ENGI - Board Description
*
* \section Purpose
*
* This file is dedicated to describe the sama5d2-PTC-ENGI board.
*
* \section Contents
*
* - sama5d2-PTC-ENGI
* - For sama5d2-PTC-ENGI information, see \subpage sama5d2_ptc_engi_board_info.
* - For operating frequency information, see \subpage sama5d2_ptc_engi_opfreq.
* - For using portable PIO definitions, see \subpage sama5d2_ptc_engi_piodef.
* - For on-board memories, see \subpage sama5d2_ptc_engi_mem.
* - Several USB definitions are included here, see \subpage sama5d2_ptc_engi_usb.
* - For External components, see \subpage sama5d2_ptc_engi_extcomp.
* - For Individual chip definition, see \subpage sama5d2_ptc_engi_chipdef.
*
* To get more software details and the full list of parameters related to the
* sama5d2-PTC-ENGI board configuration, please have a look at the source file:
* \ref board.h\n
*
* \section Usage
*
* - The code for booting the board is provided by board_cstartup_xxx.c and
* board_lowlevel.c.
* - For using board PIOs, board characteristics (clock, etc.) and external
* components, see board.h.
* - For manipulating memories, see board_memories.h.
*
* This file can be used as a template and modified to fit a custom board, with
* specific PIOs usage or memory connections.
*/
/**
* \file board.h
*
* Definition of sama5d2-PTC-ENGI
* characteristics, sama5d4-dependant PIOs and external components interfacing.
*/
#ifndef _BOARD_D2_H
#define _BOARD_D2_H
/*----------------------------------------------------------------------------
* Headers
*----------------------------------------------------------------------------*/
#include "chip.h"
#include "board_lowlevel.h"
#include "board_memories.h"
/*----------------------------------------------------------------------------
* HW BOARD Definitions
*----------------------------------------------------------------------------*/
/**
* \page sama5d2_ptc_engi_board_info "sama5d2-PTC-ENGI - Board informations"
* This page lists several definition related to the board description.
*
* \section Definitions
* - \ref BOARD_NAME
*/
/** Name of the board */
#define BOARD_NAME "sama5d2-ptc-engi"
/*----------------------------------------------------------------------------*/
/**
* \page sama5d2_ptc_engi_opfreq "sama5d2-PTC-ENGI - Operating frequencies"
* This page lists several definition related to the board operating frequency
* (when using the initialization done by board_lowlevel.c).
*/
/** Frequency of the board slow clock oscillator */
#define BOARD_SLOW_CLOCK_EXT_OSC 32768
/** Frequency of the board main clock oscillator */
#define BOARD_MAIN_CLOCK_EXT_OSC 12000000
/** /def Definition of DDRAM's type */
#define BOARD_DDRAM_TYPE MT41K128M16
/** \def Board DDR memory size in bytes */
#define BOARD_DDR_MEMORY_SIZE 512*1024*1024
/** \def Board PIT tick resolution */
#define BOARD_TIMER_RESOLUTION 1000
/* =================== PIN CONSOLE definition ================== */
/** CONSOLE pin definition, Use only UART */
#define PINS_CONSOLE PINS_UART0_IOS1
#define CONSOLE_PER_ADD UART0
#define CONSOLE_ID ID_UART0
#define CONSOLE_BAUDRATE 57600
#define CONSOLE_DRIVER DRV_UART
/* =================== PIN LED definition ====================== */
/* RGB LED index */
#define LED_RED 0
#define LED_GREEN 1
#define LED_BLUE 2
/** LED #0 pin definition (Red). */
#define PIN_LED_0 { PIO_GROUP_A, PIO_PA30, PIO_OUTPUT_1, PIO_OPENDRAIN }
/** LED #1 pin definition (Green). */
#define PIN_LED_1 { PIO_GROUP_A, PIO_PA31, PIO_OUTPUT_1, PIO_OPENDRAIN }
/** LED #2 pin definition (Blue). */
#define PIN_LED_2 { PIO_GROUP_B, PIO_PB2, PIO_OUTPUT_1, PIO_OPENDRAIN }
/** List of all LEDs definitions. */
#define PINS_LEDS { PIN_LED_0, PIN_LED_1, PIN_LED_2 }
/* =================== PIN PUSH BUTTON definition ============== */
#define PIO_CFG_PB (PIO_PULLUP | PIO_DEBOUNCE)
#define PIN_PUSHBUTTON_1 { PIO_GROUP_B, PIO_PB9, PIO_INPUT, PIO_CFG_PB }
/** List of all push button definitions. */
#define PINS_PUSHBUTTONS { PIN_PUSHBUTTON_1 }
/** Push button index. */
#define PUSHBUTTON_BP1 0
/* ================== ACT8945A PMIC definition ====================== */
#define ACT8945A_PINS PINS_FLEXCOM4_TWI_IOS3
#define ACT8945A_ADDR TWI0
#define ACT8945A_FREQ 400000
#define ACT8945A_PIN_CHGLEV \
{ PIO_GROUP_A, PIO_PA22, PIO_OUTPUT_0, PIO_PULLUP }
#define ACT8945A_PIN_IRQ \
{ PIO_GROUP_B, PIO_PB13, PIO_INPUT, PIO_PULLUP | PIO_IT_FALL_EDGE }
#define ACT8945A_PIN_LBO \
{ PIO_GROUP_C, PIO_PC8, PIO_INPUT, PIO_PULLUP }
/* ================== PIN USB definition ======================= */
/** USB VBus pin */
#define PIN_USB_VBUS {\
{ PIO_GROUP_A, PIO_PA27, PIO_INPUT, PIO_DEBOUNCE | PIO_IT_BOTH_EDGE },\
}
/** USB OverCurrent detection*/
#define PIN_USB_OVCUR {\
{ PIO_GROUP_A, PIO_PA29, PIO_INPUT, PIO_DEFAULT },\
}
/** USB Power Enable B, Active high */
#define PIN_USB_POWER_ENB {\
{ PIO_GROUP_A, PIO_PBA28, PIO_OUTPUT_0, PIO_DEFAULT },\
}
/* =================== AT25 device definition =================== */
#define AT25_PINS PINS_SPI0_NPCS0_IOS1
#define AT25_ADDR SPI0
#define AT25_CS 0
#define AT25_ATTRS (SPI_MR_MODFDIS | SPI_MR_WDRBT | SPI_MR_MSTR)
#define AT25_FREQ 40000 /* (value in KHz) */
#define AT25_LOW_FREQ 20000 /* (value in KHz) */
#define AT25_DLYBS 0
#define AT25_DLYCT 0
#define AT25_SPI_MODE (SPI_CSR_NCPHA | SPI_CSR_BITS_8_BIT)
/* =================== AT24 device definition =================== */
#define AT24_PINS PINS_TWI1_IOS1;
#define AT24_ADDR ((Twi*)TWIHS1)
#define AT24_FREQ 400000
#define AT24_DESC {"AT24MAC402", 0xFF, 16}
/* =================== GMAC/PHY definition =================== */
#define GMAC0_ADDR GMAC0
#define GMAC0_PINS PINS_GMAC_RMII_IOS3
#define GMAC0_PHY_ADDR 0
#define GMAC0_PHY_IRQ_PIN PIN_GTSUCOM_IOS1
#define GMAC0_PHY_RETRIES PHY_DEFAULT_RETRIES
/* =================== NANDFLASH device definition =================== */
#define BOARD_NANDFLASH_PINS PINS_NFC_IOS2
#define BOARD_NANDFLASH_ADDR EBI_CS3_ADDR
#define BOARD_NANDFLASH_CS 3
#define BOARD_NANDFLASH_BUS_WIDTH 8
#endif /* #ifndef _BOARD_D2_H */