diff options
| author | Dirk Eibach <eibach@gdsys.de> | 2013-06-26 16:04:26 +0200 | 
|---|---|---|
| committer | Stefan Roese <sr@denx.de> | 2013-07-25 19:35:42 +0200 | 
| commit | aba27acf6711dce0ef1507f2f9f02a80d70a45da (patch) | |
| tree | f77350104f847ab46c990c7119cb705f51089a09 /board/gdsys/405ep/iocon.c | |
| parent | aaf5e825606a70ddc8fca8e366d8c16a6fd3cc7c (diff) | |
| download | olio-uboot-2014.01-aba27acf6711dce0ef1507f2f9f02a80d70a45da.tar.xz olio-uboot-2014.01-aba27acf6711dce0ef1507f2f9f02a80d70a45da.zip | |
powerpc/ppc4xx: Use generic accessor functions for gdsys FPGA
A set of accessor functions was added to be able to access not only
memory mapped FPGA in a generic way.
Thanks to Wolfgang Denk for getting this sorted properly.
Signed-off-by: Dirk Eibach <dirk.eibach@gdsys.cc>
Signed-off-by: Stefan Roese <sr@denx.de>
Diffstat (limited to 'board/gdsys/405ep/iocon.c')
| -rw-r--r-- | board/gdsys/405ep/iocon.c | 24 | 
1 files changed, 17 insertions, 7 deletions
| diff --git a/board/gdsys/405ep/iocon.c b/board/gdsys/405ep/iocon.c index c728bc7b7..1af5245c8 100644 --- a/board/gdsys/405ep/iocon.c +++ b/board/gdsys/405ep/iocon.c @@ -53,6 +53,8 @@ enum {  	RAM_DDR2_32 = 0,  }; +struct ihs_fpga *fpga_ptr[] = CONFIG_SYS_FPGA_PTR; +  /*   * Check Board Identity:   */ @@ -76,10 +78,9 @@ int checkboard(void)  static void print_fpga_info(void)  { -	struct ihs_fpga *fpga = (struct ihs_fpga *) CONFIG_SYS_FPGA_BASE(0); -	u16 versions = in_le16(&fpga->versions); -	u16 fpga_version = in_le16(&fpga->fpga_version); -	u16 fpga_features = in_le16(&fpga->fpga_features); +	u16 versions; +	u16 fpga_version; +	u16 fpga_features;  	unsigned unit_type;  	unsigned hardware_version;  	unsigned feature_compression; @@ -90,6 +91,10 @@ static void print_fpga_info(void)  	unsigned feature_carriers;  	unsigned feature_video_channels; +	FPGA_GET_REG(0, versions, &versions); +	FPGA_GET_REG(0, fpga_version, &fpga_version); +	FPGA_GET_REG(0, fpga_features, &fpga_features); +  	unit_type = (versions & 0xf000) >> 12;  	hardware_version = versions & 0x000f;  	feature_compression = (fpga_features & 0xe000) >> 13; @@ -211,20 +216,25 @@ int last_stage_init(void)  /*   * provide access to fpga gpios (for I2C bitbang) + * (these may look all too simple but make iocon.h much more readable)   */  void fpga_gpio_set(int pin)  { -	out_le16((void *)(CONFIG_SYS_FPGA0_BASE + 0x18), pin); +	FPGA_SET_REG(0, gpio.set, pin);  }  void fpga_gpio_clear(int pin)  { -	out_le16((void *)(CONFIG_SYS_FPGA0_BASE + 0x16), pin); +	FPGA_SET_REG(0, gpio.clear, pin);  }  int fpga_gpio_get(int pin)  { -	return in_le16((void *)(CONFIG_SYS_FPGA0_BASE + 0x14)) & pin; +	u16 val; + +	FPGA_GET_REG(0, gpio.read, &val); + +	return val & pin;  }  void gd405ep_init(void) |