82 lines
2.1 KiB
C
82 lines
2.1 KiB
C
|
// See LICENSE for license details.
|
||
|
|
||
|
#ifndef _SIFIVE_HIFIVE1_H
|
||
|
#define _SIFIVE_HIFIVE1_H
|
||
|
|
||
|
#include <stdint.h>
|
||
|
|
||
|
/****************************************************************************
|
||
|
* GPIO Connections
|
||
|
*****************************************************************************/
|
||
|
|
||
|
// These are the GPIO bit offsets for the RGB LED on HiFive1 Board.
|
||
|
// These are also mapped to RGB LEDs on the Freedom E300 Arty
|
||
|
// FPGA
|
||
|
// Dev Kit.
|
||
|
|
||
|
#define RED_LED_OFFSET 22
|
||
|
#define GREEN_LED_OFFSET 19
|
||
|
#define BLUE_LED_OFFSET 21
|
||
|
|
||
|
// These are the GPIO bit offsets for the differen digital pins
|
||
|
// on the headers for both the HiFive1 Board and the Freedom E300 Arty FPGA Dev Kit.
|
||
|
#define PIN_0_OFFSET 16
|
||
|
#define PIN_1_OFFSET 17
|
||
|
#define PIN_2_OFFSET 18
|
||
|
#define PIN_3_OFFSET 19
|
||
|
#define PIN_4_OFFSET 20
|
||
|
#define PIN_5_OFFSET 21
|
||
|
#define PIN_6_OFFSET 22
|
||
|
#define PIN_7_OFFSET 23
|
||
|
#define PIN_8_OFFSET 0
|
||
|
#define PIN_9_OFFSET 1
|
||
|
#define PIN_10_OFFSET 2
|
||
|
#define PIN_11_OFFSET 3
|
||
|
#define PIN_12_OFFSET 4
|
||
|
#define PIN_13_OFFSET 5
|
||
|
//#define PIN_14_OFFSET 8 //This pin is not connected on either board.
|
||
|
#define PIN_15_OFFSET 9
|
||
|
#define PIN_16_OFFSET 10
|
||
|
#define PIN_17_OFFSET 11
|
||
|
#define PIN_18_OFFSET 12
|
||
|
#define PIN_19_OFFSET 13
|
||
|
|
||
|
// These are *PIN* numbers, not
|
||
|
// GPIO Offset Numbers.
|
||
|
#define PIN_SPI1_SCK (13u)
|
||
|
#define PIN_SPI1_MISO (12u)
|
||
|
#define PIN_SPI1_MOSI (11u)
|
||
|
#define PIN_SPI1_SS0 (10u)
|
||
|
#define PIN_SPI1_SS1 (14u)
|
||
|
#define PIN_SPI1_SS2 (15u)
|
||
|
#define PIN_SPI1_SS3 (16u)
|
||
|
|
||
|
#define SS_PIN_TO_CS_ID(x) \
|
||
|
((x==PIN_SPI1_SS0 ? 0 : \
|
||
|
(x==PIN_SPI1_SS1 ? 1 : \
|
||
|
(x==PIN_SPI1_SS2 ? 2 : \
|
||
|
(x==PIN_SPI1_SS3 ? 3 : \
|
||
|
-1)))))
|
||
|
|
||
|
|
||
|
// These buttons are present only on the Freedom E300 Arty Dev Kit.
|
||
|
#ifdef HAS_BOARD_BUTTONS
|
||
|
#define BUTTON_0_OFFSET 15
|
||
|
#define BUTTON_1_OFFSET 30
|
||
|
#define BUTTON_2_OFFSET 31
|
||
|
|
||
|
#define INT_DEVICE_BUTTON_0 (INT_GPIO_BASE + BUTTON_0_OFFSET)
|
||
|
#define INT_DEVICE_BUTTON_1 (INT_GPIO_BASE + BUTTON_1_OFFSET)
|
||
|
#define INT_DEVICE_BUTTON_2 (INT_GPIO_BASE + BUTTON_2_OFFSET)
|
||
|
|
||
|
#endif
|
||
|
|
||
|
#define HAS_HFXOSC 1
|
||
|
#define HAS_LFROSC_BYPASS 1
|
||
|
|
||
|
#define RTC_FREQ 32768
|
||
|
|
||
|
void write_hex(int fd, unsigned long int hex);
|
||
|
|
||
|
#endif /* _SIFIVE_HIFIVE1_H */
|