mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-21 14:41:31 +00:00
net: emaclite: Fix OF initialization
- Add xilinx_emaclite_of_init to netdev.h - Remove global data pointer from the driver - Add better handling for error state. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
This commit is contained in:
parent
eeb72e6761
commit
0c9c99a20b
2 changed files with 10 additions and 8 deletions
|
@ -14,8 +14,6 @@
|
|||
#include <asm/io.h>
|
||||
#include <fdtdec.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#undef DEBUG
|
||||
|
||||
#define ENET_ADDR_LENGTH 6
|
||||
|
@ -364,24 +362,27 @@ int xilinx_emaclite_initialize(bd_t *bis, unsigned long base_addr,
|
|||
}
|
||||
|
||||
#ifdef CONFIG_OF_CONTROL
|
||||
int xilinx_emaclite_init(bd_t *bis)
|
||||
int xilinx_emaclite_of_init(const void *blob)
|
||||
{
|
||||
int offset = 0;
|
||||
u32 ret = 0;
|
||||
u32 reg;
|
||||
|
||||
do {
|
||||
offset = fdt_node_offset_by_compatible(gd->fdt_blob, offset,
|
||||
offset = fdt_node_offset_by_compatible(blob, offset,
|
||||
"xlnx,xps-ethernetlite-1.00.a");
|
||||
if (offset != -1) {
|
||||
reg = fdtdec_get_addr(gd->fdt_blob, offset, "reg");
|
||||
reg = fdtdec_get_addr(blob, offset, "reg");
|
||||
if (reg != FDT_ADDR_T_NONE) {
|
||||
u32 rxpp = fdtdec_get_int(gd->fdt_blob, offset,
|
||||
u32 rxpp = fdtdec_get_int(blob, offset,
|
||||
"xlnx,rx-ping-pong", 0);
|
||||
u32 txpp = fdtdec_get_int(gd->fdt_blob, offset,
|
||||
u32 txpp = fdtdec_get_int(blob, offset,
|
||||
"xlnx,tx-ping-pong", 0);
|
||||
ret |= xilinx_emaclite_initialize(bis, reg,
|
||||
ret |= xilinx_emaclite_initialize(NULL, reg,
|
||||
txpp, rxpp);
|
||||
} else {
|
||||
debug("EMACLITE: Can't get base address\n");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
} while (offset != -1);
|
||||
|
|
|
@ -86,6 +86,7 @@ int uli526x_initialize(bd_t *bis);
|
|||
int armada100_fec_register(unsigned long base_addr);
|
||||
int xilinx_axiemac_initialize(bd_t *bis, unsigned long base_addr,
|
||||
unsigned long dma_addr);
|
||||
int xilinx_emaclite_of_init(const void *blob);
|
||||
int xilinx_emaclite_initialize(bd_t *bis, unsigned long base_addr,
|
||||
int txpp, int rxpp);
|
||||
int xilinx_ll_temac_eth_init(bd_t *bis, unsigned long base_addr, int flags,
|
||||
|
|
Loading…
Add table
Reference in a new issue