aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Fainelli <f.fainelli@gmail.com>2014-08-27 20:04:49 -0400
committerDavid S. Miller <davem@davemloft.net>2014-08-28 01:59:39 -0400
commitfa981d9af82e08f316ed25ed43078f995cc4be0a (patch)
tree8452bf0e5628615193033b4a4aaa83c6562d4b66
parent464c3668f065baeacfffa9d421959d21069389fe (diff)
net: dsa: provide a switch device device tree node pointer
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>
-rw-r--r--include/net/dsa.h7
-rw-r--r--net/dsa/dsa.c1
2 files changed, 8 insertions, 0 deletions
diff --git a/include/net/dsa.h b/include/net/dsa.h
index 6e26f1e4d8ce..decc62709acd 100644
--- a/include/net/dsa.h
+++ b/include/net/dsa.h
@@ -15,6 +15,7 @@
15#include <linux/list.h> 15#include <linux/list.h>
16#include <linux/timer.h> 16#include <linux/timer.h>
17#include <linux/workqueue.h> 17#include <linux/workqueue.h>
18#include <linux/of.h>
18 19
19#define DSA_MAX_SWITCHES 4 20#define DSA_MAX_SWITCHES 4
20#define DSA_MAX_PORTS 12 21#define DSA_MAX_PORTS 12
@@ -26,6 +27,12 @@ struct dsa_chip_data {
26 struct device *mii_bus; 27 struct device *mii_bus;
27 int sw_addr; 28 int sw_addr;
28 29
30 /* Device tree node pointer for this specific switch chip
31 * used during switch setup in case additional properties
32 * and resources needs to be used
33 */
34 struct device_node *of_node;
35
29 /* 36 /*
30 * The names of the switch's ports. Use "cpu" to 37 * The names of the switch's ports. Use "cpu" to
31 * designate the switch port that the cpu is connected to, 38 * designate the switch port that the cpu is connected to,
diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c
index 92e71d2a2ccd..a28ef432d016 100644
--- a/net/dsa/dsa.c
+++ b/net/dsa/dsa.c
@@ -410,6 +410,7 @@ static int dsa_of_probe(struct platform_device *pdev)
410 chip_index++; 410 chip_index++;
411 cd = &pd->chip[chip_index]; 411 cd = &pd->chip[chip_index];
412 412
413 cd->of_node = child;
413 cd->mii_bus = &mdio_bus->dev; 414 cd->mii_bus = &mdio_bus->dev;
414 415
415 sw_addr = of_get_property(child, "reg", NULL); 416 sw_addr = of_get_property(child, "reg", NULL);