net: dsa: provide a switch device device tree node pointer
authorFlorian Fainelli <f.fainelli@gmail.com>
Thu, 28 Aug 2014 00:04:49 +0000 (17:04 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 28 Aug 2014 05:59:39 +0000 (22:59 -0700)
We might need to fetch additional resources from the device tree node
pointer, such as register ranges or other properties. Keep a device_node
pointer around for this.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/dsa.h
net/dsa/dsa.c

index 6e26f1e4d8ceca14a0002ded8274219411e181b6..decc62709acd03773eb751f3c25f65d6ccada881 100644 (file)
@@ -15,6 +15,7 @@
 #include <linux/list.h>
 #include <linux/timer.h>
 #include <linux/workqueue.h>
+#include <linux/of.h>
 
 #define DSA_MAX_SWITCHES       4
 #define DSA_MAX_PORTS          12
@@ -26,6 +27,12 @@ struct dsa_chip_data {
        struct device   *mii_bus;
        int             sw_addr;
 
+       /* Device tree node pointer for this specific switch chip
+        * used during switch setup in case additional properties
+        * and resources needs to be used
+        */
+       struct device_node *of_node;
+
        /*
         * The names of the switch's ports.  Use "cpu" to
         * designate the switch port that the cpu is connected to,
index 92e71d2a2ccd6697867f83ad5178fa6d4d29af95..a28ef432d016e7781401d5e0bd7f8ebd004da75f 100644 (file)
@@ -410,6 +410,7 @@ static int dsa_of_probe(struct platform_device *pdev)
                chip_index++;
                cd = &pd->chip[chip_index];
 
+               cd->of_node = child;
                cd->mii_bus = &mdio_bus->dev;
 
                sw_addr = of_get_property(child, "reg", NULL);