diff options
author | Max Filippov <jcmvbkbc@gmail.com> | 2016-08-05 18:26:18 +0300 |
---|---|---|
committer | Joe Hershberger <joe.hershberger@ni.com> | 2016-08-15 13:34:47 -0500 |
commit | 2de18c8d77b026115dbe6b3e1a35446e31d3dbad (patch) | |
tree | 91e681135a6fd5af5758fcf60cb8affbe233574d | |
parent | 5d43feabf3707ae4e879b54450e5a3c3c664b2b9 (diff) | |
download | u-boot-imx-2de18c8d77b026115dbe6b3e1a35446e31d3dbad.zip u-boot-imx-2de18c8d77b026115dbe6b3e1a35446e31d3dbad.tar.gz u-boot-imx-2de18c8d77b026115dbe6b3e1a35446e31d3dbad.tar.bz2 |
net/ethoc: support device tree
Add .of_match table and .ofdata_to_platdata callback to allow for ethoc
device configuration from the device tree.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
-rw-r--r-- | drivers/net/ethoc.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/net/ethoc.c b/drivers/net/ethoc.c index 4846c58..a5c4b46 100644 --- a/drivers/net/ethoc.c +++ b/drivers/net/ethoc.c @@ -523,6 +523,14 @@ static void ethoc_stop(struct udevice *dev) ethoc_disable_rx_and_tx(priv); } +static int ethoc_ofdata_to_platdata(struct udevice *dev) +{ + struct ethoc_eth_pdata *pdata = dev_get_platdata(dev); + + pdata->eth_pdata.iobase = dev_get_addr(dev); + return 0; +} + static int ethoc_probe(struct udevice *dev) { struct ethoc_eth_pdata *pdata = dev_get_platdata(dev); @@ -549,9 +557,16 @@ static const struct eth_ops ethoc_ops = { .write_hwaddr = ethoc_write_hwaddr, }; +static const struct udevice_id ethoc_ids[] = { + { .compatible = "opencores,ethoc" }, + { } +}; + U_BOOT_DRIVER(ethoc) = { .name = "ethoc", .id = UCLASS_ETH, + .of_match = ethoc_ids, + .ofdata_to_platdata = ethoc_ofdata_to_platdata, .probe = ethoc_probe, .remove = ethoc_remove, .ops = ðoc_ops, |