Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
B
Beam Positoning Monitor - Software
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
Beam Positoning Monitor - Software
Commits
dee12280
Commit
dee12280
authored
Jul 30, 2014
by
Lucas Russo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
hal/include/hw/*: add SPI register definitions
parent
ad1cdd87
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
114 additions
and
0 deletions
+114
-0
wb_spi_regs.h
hal/include/hw/wb_spi_regs.h
+114
-0
No files found.
hal/include/hw/wb_spi_regs.h
0 → 100644
View file @
dee12280
#ifndef _WB_SPI_REGS_H_
#define _WB_SPI_REGS_H_
#include <inttypes.h>
#if defined( __GNUC__)
#define PACKED __attribute__ ((packed))
#else
#error "Unsupported compiler?"
#endif
/* Copied from wb_acq_core_regs.h */
#ifndef __WBGEN2_MACROS_DEFINED__
#define __WBGEN2_MACROS_DEFINED__
#define WBGEN2_GEN_MASK(offset, size) (((1<<(size))-1) << (offset))
#define WBGEN2_GEN_WRITE(value, offset, size) (((value) & ((1<<(size))-1)) << (offset))
#define WBGEN2_GEN_READ(reg, offset, size) (((reg) >> (offset)) & ((1<<(size))-1))
#define WBGEN2_SIGN_EXTEND(value, bits) (((value) & (1<<bits) ? ~((1<<(bits))-1): 0 ) | (value))
#endif
/* OpenCores SPI registers description with modification
* to support bidirectional on a single MOSI line */
#define SPI_PROTO_REG_RX0 0x00000000
#define SPI_PROTO_REG_TX0 0x00000000
#define SPI_PROTO_REG_RX1 0x00000004
#define SPI_PROTO_REG_TX1 0x00000004
#define SPI_PROTO_REG_RX2 0x00000008
#define SPI_PROTO_REG_TX2 0x00000008
#define SPI_PROTO_REG_RX3 0x0000000C
#define SPI_PROTO_REG_TX3 0x0000000C
#define SPI_PROTO_REG_RXTX_NUM 4
/* read-write whole register */
#define SPI_PROTO_TX0_W(value) (value)
#define SPI_PROTO_TX0_R(reg) (reg)
#define SPI_PROTO_TX1_W(value) (value)
#define SPI_PROTO_TX1_R(reg) (reg)
#define SPI_PROTO_TX2_W(value) (value)
#define SPI_PROTO_TX2_R(reg) (reg)
#define SPI_PROTO_TX3_W(value) (value)
#define SPI_PROTO_TX3_R(reg) (reg)
#define SPI_PROTO_REG_CTRL 0x00000010
/* Definitions for SPI_PROTO_REG_CTRL */
/*#define SPI_PROTO_CTRL_THREE_WIRE (1<<16)
#define SPI_PROTO_CTRL_RES2 (1<<15)
#define SPI_PROTO_CTRL_DIR (1<<14)*/
#define SPI_PROTO_CTRL_ASS WBGEN2_GEN_MASK(13, 1)
#define SPI_PROTO_CTRL_IE WBGEN2_GEN_MASK(12, 1)
#define SPI_PROTO_CTRL_LSB WBGEN2_GEN_MASK(11, 1)
#define SPI_PROTO_CTRL_TXNEG WBGEN2_GEN_MASK(10, 1)
#define SPI_PROTO_CTRL_RXNEG WBGEN2_GEN_MASK(9, 1)
#define SPI_PROTO_CTRL_GO_BSY WBGEN2_GEN_MASK(8, 1)
#define SPI_PROTO_CTRL_BSY WBGEN2_GEN_MASK(8, 1)
#define SPI_PROTO_CTRL_CHAR_LEN_SIZE 7
#define SPI_PROTO_CTRL_CHAR_LEN_SHIFT 0
#define SPI_PROTO_CTRL_CHAR_LEN_MASK WBGEN2_GEN_MASK(SPI_PROTO_CTRL_CHAR_LEN_SHIFT, \
SPI_PROTO_CTRL_CHAR_LEN_SIZE)
#define SPI_PROTO_CTRL_CHAR_LEN_W(value) WBGEN2_GEN_WRITE(value, SPI_PROTO_CTRL_CHAR_LEN_SHIFT, \
SPI_PROTO_CTRL_CHAR_LEN_SIZE)
#define SPI_PROTO_CTRL_CHAR_LEN_R(reg) WBGEN2_GEN_READ(reg, SPI_PROTO_CTRL_CHAR_LEN_SHIFT, \
SPI_PROTO_CTRL_CHAR_LEN_SIZE)
/* read-write whole register */
#define SPI_PROTO_CTRL_W(value) (value)
#define SPI_PROTO_CTRL_R(reg) (reg)
#define SPI_PROTO_REG_DIVIDER 0x00000014
/* Definitions for SPI_PROTO_REG_DIVIDER */
#define SPI_PROTO_DIVIDER_SIZE 16
#define SPI_PROTO_DIVIDER_SHIFT 0
#define SPI_PROTO_DIVIDER_MASK WBGEN2_GEN_MASK(SPI_PROTO_DIVIDER_SHIFT, \
SPI_PROTO_DIVIDER_SIZE)
#define SPI_PROTO_DIVIDER_W(value) WBGEN2_GEN_WRITE(value, SPI_PROTO_DIVIDER_SHIFT, \
SPI_PROTO_DIVIDER_SIZE)
#define SPI_PROTO_DIVIDER_R(reg) WBGEN2_GEN_READ(reg, SPI_PROTO_DIVIDER_SHIFT, \
SPI_PROTO_DIVIDER_SIZE)
#define SPI_PROTO_REG_SS 0x00000018
/* Definitions for SPI_PROTO_REG_SS */
#define SPI_PROTO_SS_SIZE 8
#define SPI_PROTO_SS_SHIFT 0
#define SPI_PROTO_SS_MASK WBGEN2_GEN_MASK(SPI_PROTO_SS_SHIFT, \
SPI_PROTO_SS_SIZE)
#define SPI_PROTO_SS_W(value) WBGEN2_GEN_WRITE(value, SPI_PROTO_SS_SHIFT, \
SPI_PROTO_SS_SIZE)
#define SPI_PROTO_SS_R(reg) WBGEN2_GEN_READ(reg, SPI_PROTO_SS_SHIFT, \
SPI_PROTO_SS_SIZE)
#define SPI_PROTO_REG_CFG_BIDIR 0x0000001C
/* For RX data from MISO (single line) */
#define SPI_PROTO_REG_RX0_SINGLE 0x00000020
#define SPI_PROTO_REG_RX1_SINGLE 0x00000024
#define SPI_PROTO_REG_RX2_SINGLE 0x00000028
#define SPI_PROTO_REG_RX3_SINGLE 0x0000002C
/* read-write whole register */
#define SPI_PROTO_TX0_SINGLE_W(value) (value)
#define SPI_PROTO_TX0_SINGLE_R(reg) (reg)
#define SPI_PROTO_TX1_SINGLE_W(value) (value)
#define SPI_PROTO_TX1_SINGLE_R(reg) (reg)
#define SPI_PROTO_TX2_SINGLE_W(value) (value)
#define SPI_PROTO_TX2_SINGLE_R(reg) (reg)
#define SPI_PROTO_TX3_SINGLE_W(value) (value)
#define SPI_PROTO_TX3_SINGLE_R(reg) (reg)
#endif
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment