net/ethoc: support device tree
authorMax Filippov <jcmvbkbc@gmail.com>
Fri, 5 Aug 2016 15:26:18 +0000 (18:26 +0300)
committerJoe Hershberger <joe.hershberger@ni.com>
Mon, 15 Aug 2016 18:34:47 +0000 (13:34 -0500)
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>
drivers/net/ethoc.c

index 4846c58ecc52f0b305ba1ae0cde12188cc4ee385..a5c4b4621d9b58b82ca52535e1a619cd81c90b6e 100644 (file)
@@ -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,