mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-31 10:26:10 +01:00 
			
		
		
		
	The P3041DS & P5020DS boards are almost identical (except for the processor in them). Additionally they are based on the P4080DS board design so we use the some board code for all 3 boards. Some ngPIXIS (FPGA) registers where reserved on P4080DS and now have meaning on P3041DS/P5020DS. We utilize some of these for SERDES clock configuration. Additionally, the P3041DS/P5020DS support NAND. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Shaohui Xie <b21989@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /**
 | |
|  * Copyright 2010-2011 Freescale Semiconductor
 | |
|  * 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;
 | |
| 	u8 serclk;
 | |
| 	u8 aux;
 | |
| 	u8 spd;
 | |
| 	u8 brdcfg0;
 | |
| 	u8 brdcfg1;	/* On some boards, this register is called 'dma' */
 | |
| 	u8 addr;
 | |
| 	u8 brdcfg2;
 | |
| 	u8 gpiodir;
 | |
| 	u8 data;
 | |
| 	u8 led;
 | |
| 	u8 tag;
 | |
| 	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];
 | |
| } __attribute__ ((packed)) ngpixis_t;
 | |
| 
 | |
| /* 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)
 | |
| 
 | |
| 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)
 |