diff options
Diffstat (limited to 'board/gdsys/405ep/iocon.c')
| -rw-r--r-- | board/gdsys/405ep/iocon.c | 34 | 
1 files changed, 34 insertions, 0 deletions
| diff --git a/board/gdsys/405ep/iocon.c b/board/gdsys/405ep/iocon.c index ce5334089..ed27791c3 100644 --- a/board/gdsys/405ep/iocon.c +++ b/board/gdsys/405ep/iocon.c @@ -27,10 +27,15 @@  #include <asm/io.h>  #include <asm/ppc4xx-gpio.h> +#include "405ep.h"  #include <gdsys_fpga.h>  #include "../common/osd.h" +#define LATCH0_BASE (CONFIG_SYS_LATCH_BASE) +#define LATCH1_BASE (CONFIG_SYS_LATCH_BASE + 0x100) +#define LATCH2_BASE (CONFIG_SYS_LATCH_BASE + 0x200) +  enum {  	UNITTYPE_MAIN_SERVER = 0,  	UNITTYPE_MAIN_USER = 1, @@ -231,3 +236,32 @@ int fpga_gpio_get(int pin)  {  	return in_le16((void *)(CONFIG_SYS_FPGA0_BASE + 0x14)) & pin;  } + +void gd405ep_init(void) +{ +} + +void gd405ep_set_fpga_reset(unsigned state) +{ +	if (state) { +		out_le16((void *)LATCH0_BASE, CONFIG_SYS_LATCH0_RESET); +		out_le16((void *)LATCH1_BASE, CONFIG_SYS_LATCH1_RESET); +	} else { +		out_le16((void *)LATCH0_BASE, CONFIG_SYS_LATCH0_BOOT); +		out_le16((void *)LATCH1_BASE, CONFIG_SYS_LATCH1_BOOT); +	} +} + +void gd405ep_setup_hw(void) +{ +	/* +	 * set "startup-finished"-gpios +	 */ +	gpio_write_bit(21, 0); +	gpio_write_bit(22, 1); +} + +int gd405ep_get_fpga_done(unsigned fpga) +{ +	return in_le16((void *)LATCH2_BASE) & CONFIG_SYS_FPGA_DONE(fpga); +} |