diff options
Diffstat (limited to 'examples/smc91111_eeprom.c')
| -rw-r--r-- | examples/smc91111_eeprom.c | 31 | 
1 files changed, 20 insertions, 11 deletions
| diff --git a/examples/smc91111_eeprom.c b/examples/smc91111_eeprom.c index b8a3594e9..f5d8c6ab4 100644 --- a/examples/smc91111_eeprom.c +++ b/examples/smc91111_eeprom.c @@ -31,6 +31,13 @@  #include <exports.h>  #include "../drivers/net/smc91111.h" +#ifdef CONFIG_DRIVER_SMC91111 + +#ifdef pFIO0_DIR +# define pFIO_DIR    pFIO0_DIR +# define pFIO_FLAG_S pFIO0_FLAG_S +#endif +  #define SMC_BASE_ADDRESS CONFIG_SMC91111_BASE  #define EEPROM		0x1;  #define MAC		0x2; @@ -59,17 +66,9 @@ int smc91111_eeprom (int argc, char *argv[])  		return (0);  	} -	asm ("p2.h = 0xFFC0;"); -	asm ("p2.l = 0x0730;"); -	asm ("r0 = 0x01;"); -	asm ("w[p2] = r0;"); -	asm ("ssync;"); - -	asm ("p2.h = 0xffc0;"); -	asm ("p2.l = 0x0708;"); -	asm ("r0 = 0x01;"); -	asm ("w[p2] = r0;"); -	asm ("ssync;"); +	*pFIO_DIR = 0x01; +	*pFIO_FLAG_S = 0x01; +	SSYNC();  	if ((SMC_inw (BANK_SELECT) & 0xFF00) != 0x3300) {  		printf ("Can't find SMSC91111\n"); @@ -387,3 +386,13 @@ void dump_reg (void)  		printf ("\n");  	}  } + +#else + +int smc91111_eeprom (int argc, char *argv[]) +{ +	printf("Not supported for this board\n"); +	return 1; +} + +#endif |