diff options
author | Florian Fainelli <f.fainelli@gmail.com> | 2014-08-27 20:04:49 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-08-28 01:59:39 -0400 |
commit | fa981d9af82e08f316ed25ed43078f995cc4be0a (patch) | |
tree | 8452bf0e5628615193033b4a4aaa83c6562d4b66 | |
parent | 464c3668f065baeacfffa9d421959d21069389fe (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.h | 7 | ||||
-rw-r--r-- | net/dsa/dsa.c | 1 |
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); |