]> git.ipfire.org Git - thirdparty/u-boot.git/blame - board/freescale/common/ngpixis.h
Add GPL-2.0+ SPDX-License-Identifier to source files
[thirdparty/u-boot.git] / board / freescale / common / ngpixis.h
CommitLineData
5a469608 1/**
aa8d3fb8 2 * Copyright 2010-2011 Freescale Semiconductor
5a469608
TT
3 * Author: Timur Tabi <timur@freescale.com>
4 *
1a459660 5 * SPDX-License-Identifier: GPL-2.0+
5a469608
TT
6 *
7 * This file provides support for the ngPIXIS, a board-specific FPGA used on
8 * some Freescale reference boards.
9 */
10
11/* ngPIXIS register set. Hopefully, this won't change too much over time.
12 * Feel free to add board-specific #ifdefs where necessary.
13 */
14typedef struct ngpixis {
15 u8 id;
16 u8 arch;
17 u8 scver;
18 u8 csr;
19 u8 rst;
e02aea61 20 u8 serclk;
5a469608
TT
21 u8 aux;
22 u8 spd;
23 u8 brdcfg0;
5f4d3682 24 u8 brdcfg1; /* On some boards, this register is called 'dma' */
5a469608 25 u8 addr;
e02aea61
KG
26 u8 brdcfg2;
27 u8 gpiodir;
5a469608
TT
28 u8 data;
29 u8 led;
e02aea61 30 u8 tag;
5a469608
TT
31 u8 vctl;
32 u8 vstat;
33 u8 vcfgen0;
34 u8 res4;
35 u8 ocmcsr;
36 u8 ocmmsg;
37 u8 gmdbg;
38 u8 res5[2];
39 u8 sclk[3];
40 u8 dclk[3];
41 u8 watch;
42 struct {
43 u8 sw;
44 u8 en;
d31e53b4 45 } s[9]; /* s[0]..s[7] is SW1..SW8, and s[8] is SW11 */
b4a60e52 46} __attribute__ ((packed)) ngpixis_t;
5a469608
TT
47
48/* Pointer to the PIXIS register set */
49#define pixis ((ngpixis_t *)PIXIS_BASE)
50
51/* The PIXIS SW register that corresponds to board switch X, where x >= 1 */
52#define PIXIS_SW(x) (pixis->s[(x) - 1].sw)
53
54/* The PIXIS EN register that corresponds to board switch X, where x >= 1 */
55#define PIXIS_EN(x) (pixis->s[(x) - 1].en)
aa8d3fb8
TT
56
57u8 pixis_read(unsigned int reg);
58void pixis_write(unsigned int reg, u8 value);
59
60#define PIXIS_READ(reg) pixis_read(offsetof(ngpixis_t, reg))
61#define PIXIS_WRITE(reg, value) pixis_write(offsetof(ngpixis_t, reg), value)