From: Frederic Lambert <frdr...@gmail.com>

Until now we let the code in spi.c assign us the bus number if the platform
device didn't specify its id. This patch adds the possibility to explicitely
specify the bus number via device tree.

Signed-off-by: Frederic Lambert <frdr...@gmail.com>
Signed-off-by: Tobias Klauser <tklau...@distanz.ch>
---
 .../devicetree/bindings/spi/spi_altera.txt         |    3 +++
 drivers/spi/spi-altera.c                           |    9 +++++++++
 2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/Documentation/devicetree/bindings/spi/spi_altera.txt 
b/Documentation/devicetree/bindings/spi/spi_altera.txt
index dda3759..3e0e921 100644
--- a/Documentation/devicetree/bindings/spi/spi_altera.txt
+++ b/Documentation/devicetree/bindings/spi/spi_altera.txt
@@ -2,3 +2,6 @@ Altera SPI
 
 Required properties:
 - compatible : should be "ALTR,spi-1.0".
+
+Optional property:
+- bus-number : SPI bus number
diff --git a/drivers/spi/spi-altera.c b/drivers/spi/spi-altera.c
index 4813a63..d5bf52b 100644
--- a/drivers/spi/spi-altera.c
+++ b/drivers/spi/spi-altera.c
@@ -226,6 +226,15 @@ static int __devinit altera_spi_probe(struct 
platform_device *pdev)
        if (!master)
                return err;
 
+       /* bus_num is dynamically assigned when undefined (see spi.c)  */
+       /* look for a DTS entry to override this */
+       if (pdev->id == -1 && pdev->dev.of_node != 0) {
+               u32 tmp;
+
+               if (of_property_read_u32(pdev->dev.of_node, "bus-number", &tmp) 
== 0)
+                       pdev->id = tmp;
+       }
+
        /* setup the master state. */
        master->bus_num = pdev->id;
        master->num_chipselect = 16;
-- 
1.7.5.4

_______________________________________________
devicetree-discuss mailing list
devicetree-discuss@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/devicetree-discuss

Reply via email to