tizen 2.4 release
[kernel/u-boot-tm1.git] / board / freescale / common / ngpixis.h
1 /**
2  * Copyright 2010 Freescale Semiconductor
3  * Author: Timur Tabi <timur@freescale.com>
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License as published by the Free
7  * Software Foundation; either version 2 of the License, or (at your option)
8  * any later version.
9  *
10  * This file provides support for the ngPIXIS, a board-specific FPGA used on
11  * some Freescale reference boards.
12  */
13
14 /* ngPIXIS register set. Hopefully, this won't change too much over time.
15  * Feel free to add board-specific #ifdefs where necessary.
16  */
17 typedef struct ngpixis {
18         u8 id;
19         u8 arch;
20         u8 scver;
21         u8 csr;
22         u8 rst;
23         u8 res1;
24         u8 aux;
25         u8 spd;
26         u8 brdcfg0;
27         u8 brdcfg1;     /* On some boards, this register is called 'dma' */
28         u8 addr;
29         u8 res2[2];
30         u8 data;
31         u8 led;
32         u8 res3;
33         u8 vctl;
34         u8 vstat;
35         u8 vcfgen0;
36         u8 res4;
37         u8 ocmcsr;
38         u8 ocmmsg;
39         u8 gmdbg;
40         u8 res5[2];
41         u8 sclk[3];
42         u8 dclk[3];
43         u8 watch;
44         struct {
45                 u8 sw;
46                 u8 en;
47         } s[8];
48 } __attribute__ ((packed)) ngpixis_t;
49
50 /* Pointer to the PIXIS register set */
51 #define pixis ((ngpixis_t *)PIXIS_BASE)
52
53 /* The PIXIS SW register that corresponds to board switch X, where x >= 1 */
54 #define PIXIS_SW(x)             (pixis->s[(x) - 1].sw)
55
56 /* The PIXIS EN register that corresponds to board switch X, where x >= 1 */
57 #define PIXIS_EN(x)             (pixis->s[(x) - 1].en)