[U-Boot] Remove board specific code from ENC28J60 network driver?

Dirk Behme dirk.behme at googlemail.com
Sun Dec 20 20:30:35 CET 2009


For TI OMAP3 Beagle based Zippy expansion board from TinCanTools [1] 
I'm currently looking into reusing spi based ENC28J60 network driver

drivers/net/enc28j60.c

It seems to me that it uses LPC2292 specific macros

IO1CLR, IO1SET and IO1DIR

These macros are defined in

asm-arm/arch-lpc2292/lpc2292_registers.h

 From enc28j60.c:

...
#define enc_enable() PUT32(IO1CLR, ENC_SPI_SLAVE_CS)
#define enc_disable() PUT32(IO1SET, ENC_SPI_SLAVE_CS)
...

...
/* configure GPIO */
(*((volatile unsigned long *) IO1DIR)) |= ENC_SPI_SLAVE_CS;
(*((volatile unsigned long *) IO1DIR)) |= ENC_RESET;

/* CS and RESET active low */
PUT32 (IO1SET, ENC_SPI_SLAVE_CS);
PUT32 (IO1SET, ENC_RESET);
...

Anybody with an idea how to move this code to some (LPC2292?) board 
specific files to make enc28j60.c more generic to be able to reuse it 
on other boards?

Best regards

Dirk

[1] 
http://www.tincantools.com/product.php?productid=16147&cat=0&page=1&featured


More information about the U-Boot mailing list