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 } ngpixis_t __attribute__ ((aligned(1))); 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) 58