2010-04-01 15:49:42 +00:00
|
|
|
/**
|
2011-01-21 22:03:57 +00:00
|
|
|
* Copyright 2010-2011 Freescale Semiconductor
|
2010-04-01 15:49:42 +00:00
|
|
|
* Author: Timur Tabi <timur@freescale.com>
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
|
|
* under the terms of the GNU General Public License as published by the Free
|
|
|
|
* Software Foundation; either version 2 of the License, or (at your option)
|
|
|
|
* any later version.
|
|
|
|
*
|
|
|
|
* This file provides support for the ngPIXIS, a board-specific FPGA used on
|
|
|
|
* some Freescale reference boards.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* ngPIXIS register set. Hopefully, this won't change too much over time.
|
|
|
|
* Feel free to add board-specific #ifdefs where necessary.
|
|
|
|
*/
|
|
|
|
typedef struct ngpixis {
|
|
|
|
u8 id;
|
|
|
|
u8 arch;
|
|
|
|
u8 scver;
|
|
|
|
u8 csr;
|
|
|
|
u8 rst;
|
2011-02-09 02:00:08 +00:00
|
|
|
u8 serclk;
|
2010-04-01 15:49:42 +00:00
|
|
|
u8 aux;
|
|
|
|
u8 spd;
|
|
|
|
u8 brdcfg0;
|
2010-05-20 16:16:16 +00:00
|
|
|
u8 brdcfg1; /* On some boards, this register is called 'dma' */
|
2010-04-01 15:49:42 +00:00
|
|
|
u8 addr;
|
2011-02-09 02:00:08 +00:00
|
|
|
u8 brdcfg2;
|
|
|
|
u8 gpiodir;
|
2010-04-01 15:49:42 +00:00
|
|
|
u8 data;
|
|
|
|
u8 led;
|
2011-02-09 02:00:08 +00:00
|
|
|
u8 tag;
|
2010-04-01 15:49:42 +00:00
|
|
|
u8 vctl;
|
|
|
|
u8 vstat;
|
|
|
|
u8 vcfgen0;
|
|
|
|
u8 res4;
|
|
|
|
u8 ocmcsr;
|
|
|
|
u8 ocmmsg;
|
|
|
|
u8 gmdbg;
|
|
|
|
u8 res5[2];
|
|
|
|
u8 sclk[3];
|
|
|
|
u8 dclk[3];
|
|
|
|
u8 watch;
|
|
|
|
struct {
|
|
|
|
u8 sw;
|
|
|
|
u8 en;
|
|
|
|
} s[8];
|
2010-05-22 22:25:47 +00:00
|
|
|
} __attribute__ ((packed)) ngpixis_t;
|
2010-04-01 15:49:42 +00:00
|
|
|
|
|
|
|
/* Pointer to the PIXIS register set */
|
|
|
|
#define pixis ((ngpixis_t *)PIXIS_BASE)
|
|
|
|
|
|
|
|
/* The PIXIS SW register that corresponds to board switch X, where x >= 1 */
|
|
|
|
#define PIXIS_SW(x) (pixis->s[(x) - 1].sw)
|
|
|
|
|
|
|
|
/* The PIXIS EN register that corresponds to board switch X, where x >= 1 */
|
|
|
|
#define PIXIS_EN(x) (pixis->s[(x) - 1].en)
|
2011-01-21 22:03:57 +00:00
|
|
|
|
|
|
|
u8 pixis_read(unsigned int reg);
|
|
|
|
void pixis_write(unsigned int reg, u8 value);
|
|
|
|
|
|
|
|
#define PIXIS_READ(reg) pixis_read(offsetof(ngpixis_t, reg))
|
|
|
|
#define PIXIS_WRITE(reg, value) pixis_write(offsetof(ngpixis_t, reg), value)
|