summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2016-08-05 18:26:18 +0300
committerJoe Hershberger <joe.hershberger@ni.com>2016-08-15 13:34:47 -0500
commit2de18c8d77b026115dbe6b3e1a35446e31d3dbad (patch)
tree91e681135a6fd5af5758fcf60cb8affbe233574d /drivers/net
parent5d43feabf3707ae4e879b54450e5a3c3c664b2b9 (diff)
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>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/ethoc.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/net/ethoc.c b/drivers/net/ethoc.c
index 4846c58ecc..a5c4b4621d 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 = &ethoc_ops,