[U-Boot] Remove board specific code from ENC28J60 network driver?
Mike Frysinger
vapier at gentoo.org
Sat Dec 26 19:40:45 CET 2009
On Friday 25 December 2009 13:57:55 Dirk Behme wrote:
> I started to convert the enc28j60.c to common SPI framework. Do you
> like to have a look at attachment (and maybe test it?)?
>
> It is compile tested only. And for the moment it just re-uses the
> existing driver. When we know that it basically works this way, doing
> it in a clean way as you describe above would be the next step.
> CONFIG_NET_MULTI is still missing, too.
spi_lock/spi_unlock should redirect to spi_claim_bus/spi_release_bus. this
isnt so much an "interrupts" issue as the process of claiming the bus
reprograms the controller with the slave settings.
> In your config file you have to set and configure
>
> #define CONFIG_xxx_SPI
> #define CONFIG_ENC28J60
> #define CONFIG_ENC28J60_SPI_BUS 0
> #define CONFIG_ENC28J60_SPI_CS 0
> #define CONFIG_ENC28J60_SPI_CLK 1000000
> #define CONFIG_CMD_NET
>
> for your board.
this is ok with the current design, but broken for NET_MULTI. when converted
to NET_MULTI, the new enc28j60_register() function will take the spi settings
as function arguments. so the function would look something like:
int enc28j60_register(bd_t *bis, unsigned int spi_bus, unsigned int spi_cs,
unsigned int max_hz, unsigned int mode);
and it'd be up to the board to call it with the settings it wants
-mike
More information about the U-Boot
mailing list