blob: 522990d8df68874d42c0b03d9cfa50b35f8b7056 [file] [log] [blame]
Joe Hershberger3ea143a2015-03-22 17:09:13 -05001/*
2 * Copyright (c) 2015 National Instruments
3 *
4 * (C) Copyright 2015
5 * Joe Hershberger <joe.hershberger@ni.com>
6 *
7 * SPDX-License-Identifier: GPL-2.0
8 */
9
10#include <common.h>
11#include <dm.h>
12#include <malloc.h>
13#include <net.h>
14
15DECLARE_GLOBAL_DATA_PTR;
16
17static int sb_eth_start(struct udevice *dev)
18{
19 debug("eth_sandbox: Start\n");
20
21 return 0;
22}
23
24static int sb_eth_send(struct udevice *dev, void *packet, int length)
25{
26 debug("eth_sandbox: Send packet %d\n", length);
27
28 return 0;
29}
30
31static int sb_eth_recv(struct udevice *dev, uchar **packetp)
32{
33 return 0;
34}
35
36static void sb_eth_stop(struct udevice *dev)
37{
38 debug("eth_sandbox: Stop\n");
39}
40
41static int sb_eth_write_hwaddr(struct udevice *dev)
42{
43 struct eth_pdata *pdata = dev_get_platdata(dev);
44
45 debug("eth_sandbox %s: Write HW ADDR - %pM\n", dev->name,
46 pdata->enetaddr);
47 return 0;
48}
49
50static const struct eth_ops sb_eth_ops = {
51 .start = sb_eth_start,
52 .send = sb_eth_send,
53 .recv = sb_eth_recv,
54 .stop = sb_eth_stop,
55 .write_hwaddr = sb_eth_write_hwaddr,
56};
57
58static int sb_eth_remove(struct udevice *dev)
59{
60 return 0;
61}
62
63static int sb_eth_ofdata_to_platdata(struct udevice *dev)
64{
65 struct eth_pdata *pdata = dev_get_platdata(dev);
66
67 pdata->iobase = dev_get_addr(dev);
68 return 0;
69}
70
71static const struct udevice_id sb_eth_ids[] = {
72 { .compatible = "sandbox,eth" },
73 { }
74};
75
76U_BOOT_DRIVER(eth_sandbox) = {
77 .name = "eth_sandbox",
78 .id = UCLASS_ETH,
79 .of_match = sb_eth_ids,
80 .ofdata_to_platdata = sb_eth_ofdata_to_platdata,
81 .remove = sb_eth_remove,
82 .ops = &sb_eth_ops,
83 .platdata_auto_alloc_size = sizeof(struct eth_pdata),
84};