aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2013-04-12 19:44:38 +0000
committerGabor Juhos <juhosg@openwrt.org>2013-04-12 19:44:38 +0000
commit54635e7f7894828f45f427b772ef93e503662fc7 (patch)
treeedd01bd2a2298391a197e8dea2e301357d8c5306 /target/linux
parentd3a46c4b7f7e1c83998b8c5c4d2eca0c6fceda74 (diff)
downloadupstream-54635e7f7894828f45f427b772ef93e503662fc7.tar.gz
upstream-54635e7f7894828f45f427b772ef93e503662fc7.tar.bz2
upstream-54635e7f7894828f45f427b772ef93e503662fc7.zip
linux/3.8: backport 'spi/of: Use DT aliases for assigning bus number' from 3.9
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 36328
Diffstat (limited to 'target/linux')
-rw-r--r--target/linux/generic/patches-3.8/033-backport-spi-of-Use-DT-aliases-for-assigning-bus-number.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/target/linux/generic/patches-3.8/033-backport-spi-of-Use-DT-aliases-for-assigning-bus-number.patch b/target/linux/generic/patches-3.8/033-backport-spi-of-Use-DT-aliases-for-assigning-bus-number.patch
new file mode 100644
index 0000000000..02a2eca179
--- /dev/null
+++ b/target/linux/generic/patches-3.8/033-backport-spi-of-Use-DT-aliases-for-assigning-bus-number.patch
@@ -0,0 +1,37 @@
+From bb29785e0d6d150181704be2efcc3141044625e2 Mon Sep 17 00:00:00 2001
+From: Grant Likely <grant.likely@secretlab.ca>
+Date: Fri, 21 Dec 2012 19:32:09 +0000
+Subject: [PATCH] spi/of: Use DT aliases for assigning bus number
+
+Linux assigns a number to each spi_master in the system, but when the
+platform used the device tree, the numbers are dynamically assigned and
+are not predictable. In general this shouldn't matter since the kernel
+doesn't use the bus number for anything other than matching a bus to
+spi_boardinfo (not used for DT). However, sometimes userspace needs to
+figure out which bus is which, so it makes sense to use the global
+/aliases namespace to choose a specific bus number.
+
+It is safe to derive the bus number from an alias because aliases will
+never cause two buses to try and use the same bus number. (At one time
+the cell-index property was used for this purpose, but cell-index has
+the risk of an id collision).
+
+Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
+Cc: Anatolij Gustschin <agust@denx.de>
+Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
+---
+ drivers/spi/spi.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/spi/spi.c
++++ b/drivers/spi/spi.c
+@@ -1135,6 +1135,9 @@ int spi_register_master(struct spi_maste
+ if (master->num_chipselect == 0)
+ return -EINVAL;
+
++ if ((master->bus_num < 0) && master->dev.of_node)
++ master->bus_num = of_alias_get_id(master->dev.of_node, "spi");
++
+ /* convention: dynamically assigned bus IDs count down from the max */
+ if (master->bus_num < 0) {
+ /* FIXME switch to an IDR based scheme, something like