[LEDE-DEV] [PATCH] brcm2708: backport upstream ARM dts commits

Rafał Miłecki zajec5 at gmail.com
Fri Mar 24 00:11:32 PDT 2017


From: Rafał Miłecki <rafal at milecki.pl>

This gets us in sync with dts from kernel 4.11. Two patches were already
backported earlier.
I decided to use 03x prefix as it's kind of similar to the 3xx prefix:
3xx - architecture specific patches
It isn't any documented or strict rule though. We don't need to stick to
it if we hit any problems.

Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
---
 ...l-bcm2835-add-pull-defines-to-dt-bindings.patch |  44 +++
 ...283x-Define-standard-pinctrl-groups-in-th.patch | 235 ++++++++++++
 ...283x-add-pinctrl-group-to-pwm-drop-pins-f.patch |  33 ++
 ...283x-add-pinctrl-group-to-i2c0-drop-pins-.patch |  33 ++
 ...283x-add-pinctrl-group-to-i2c1-drop-pins-.patch |  32 ++
 ...283x-add-pinctrl-group-to-sdhci-drop-pins.patch |  33 ++
 ...-0006-ARM-dts-bcm283x-drop-alt3-from-gpio.patch | 112 ++++++
 ...-dts-add-thermal-node-to-device-tree-of-b.patch |  67 ++++
 ...-Add-names-for-the-Raspberry-Pi-GPIO-line.patch | 414 +++++++++++++++++++++
 ...-Fix-names-for-the-Raspberry-Pi-GPIO-line.patch |  93 +++++
 ...835-Add-names-for-the-RPi-Zero-GPIO-lines.patch |  91 +++++
 ...dts-bcm283x-Add-VEC-node-in-bcm283x.dtsi.patch} |   5 +-
 ...83x-Enable-the-VEC-IP-on-all-RaspberryPi.patch} |   9 +-
 ...2835-Set-base-to-0-give-expected-gpio-num.patch |   2 +-
 ...2835-Fix-interrupt-handling-for-GPIOs-28-.patch |  14 +-
 ...2835-Only-request-the-interrupts-listed-i.patch |   2 +-
 ...-bcm2835-Return-pins-to-inputs-when-freed.patch |   4 +-
 ...0054-BCM2708-Add-core-Device-Tree-support.patch |   2 +-
 ...26-spi-bcm2835-Disable-forced-software-CS.patch |   2 +-
 ...35-dt-Add-the-DSI-module-nodes-and-clocks.patch |  10 +-
 20 files changed, 1211 insertions(+), 26 deletions(-)
 create mode 100644 target/linux/brcm2708/patches-4.9/030-pinctrl-bcm2835-add-pull-defines-to-dt-bindings.patch
 create mode 100644 target/linux/brcm2708/patches-4.9/031-v4.10-0001-ARM-dts-bcm283x-Define-standard-pinctrl-groups-in-th.patch
 create mode 100644 target/linux/brcm2708/patches-4.9/031-v4.10-0002-ARM-dts-bcm283x-add-pinctrl-group-to-pwm-drop-pins-f.patch
 create mode 100644 target/linux/brcm2708/patches-4.9/031-v4.10-0003-ARM-dts-bcm283x-add-pinctrl-group-to-i2c0-drop-pins-.patch
 create mode 100644 target/linux/brcm2708/patches-4.9/031-v4.10-0004-ARM-dts-bcm283x-add-pinctrl-group-to-i2c1-drop-pins-.patch
 create mode 100644 target/linux/brcm2708/patches-4.9/031-v4.10-0005-ARM-dts-bcm283x-add-pinctrl-group-to-sdhci-drop-pins.patch
 create mode 100644 target/linux/brcm2708/patches-4.9/031-v4.10-0006-ARM-dts-bcm283x-drop-alt3-from-gpio.patch
 create mode 100644 target/linux/brcm2708/patches-4.9/031-v4.10-0008-ARM-bcm2835-dts-add-thermal-node-to-device-tree-of-b.patch
 create mode 100644 target/linux/brcm2708/patches-4.9/031-v4.10-0009-ARM-bcm2835-Add-names-for-the-Raspberry-Pi-GPIO-line.patch
 create mode 100644 target/linux/brcm2708/patches-4.9/031-v4.10-0010-ARM-bcm2835-Fix-names-for-the-Raspberry-Pi-GPIO-line.patch
 create mode 100644 target/linux/brcm2708/patches-4.9/031-v4.10-0011-ARM-bcm2835-Add-names-for-the-RPi-Zero-GPIO-lines.patch
 rename target/linux/brcm2708/patches-4.9/{999-0174-ARM-dts-bcm283x-Add-VEC-node-in-bcm283x.dtsi.patch => 032-v4.11-0001-ARM-dts-bcm283x-Add-VEC-node-in-bcm283x.dtsi.patch} (84%)
 rename target/linux/brcm2708/patches-4.9/{999-0175-ARM-dts-bcm283x-Enable-the-VEC-IP-on-all-RaspberryPi.patch => 032-v4.11-0002-ARM-dts-bcm283x-Enable-the-VEC-IP-on-all-RaspberryPi.patch} (73%)

diff --git a/target/linux/brcm2708/patches-4.9/030-pinctrl-bcm2835-add-pull-defines-to-dt-bindings.patch b/target/linux/brcm2708/patches-4.9/030-pinctrl-bcm2835-add-pull-defines-to-dt-bindings.patch
new file mode 100644
index 0000000000..e300cf6a37
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.9/030-pinctrl-bcm2835-add-pull-defines-to-dt-bindings.patch
@@ -0,0 +1,44 @@
+From 396a3529800af0817c6af2eb65c542588a1f7fb7 Mon Sep 17 00:00:00 2001
+From: Gerd Hoffmann <kraxel at redhat.com>
+Date: Mon, 19 Sep 2016 10:43:17 +0200
+Subject: [PATCH] pinctrl: bcm2835: add pull defines to dt bindings
+
+Also delete (unused) private enum from driver.
+The pull defines can be used instead if needed.
+
+Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>
+Signed-off-by: Eric Anholt <eric at anholt.net>
+Acked-by: Linus Walleij <linus.walleij at linaro.org>
+Acked-by: Stefan Wahren <stefan.wahren at i2se.com>
+---
+ drivers/pinctrl/bcm/pinctrl-bcm2835.c | 6 ------
+ include/dt-bindings/pinctrl/bcm2835.h | 5 +++++
+ 2 files changed, 5 insertions(+), 6 deletions(-)
+
+--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
++++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+@@ -76,12 +76,6 @@ enum bcm2835_pinconf_param {
+ 	BCM2835_PINCONF_PARAM_PULL,
+ };
+ 
+-enum bcm2835_pinconf_pull {
+-	BCM2835_PINCONFIG_PULL_NONE,
+-	BCM2835_PINCONFIG_PULL_DOWN,
+-	BCM2835_PINCONFIG_PULL_UP,
+-};
+-
+ #define BCM2835_PINCONF_PACK(_param_, _arg_) ((_param_) << 16 | (_arg_))
+ #define BCM2835_PINCONF_UNPACK_PARAM(_conf_) ((_conf_) >> 16)
+ #define BCM2835_PINCONF_UNPACK_ARG(_conf_) ((_conf_) & 0xffff)
+--- a/include/dt-bindings/pinctrl/bcm2835.h
++++ b/include/dt-bindings/pinctrl/bcm2835.h
+@@ -24,4 +24,9 @@
+ #define BCM2835_FSEL_ALT2	6
+ #define BCM2835_FSEL_ALT3	7
+ 
++/* brcm,pull property */
++#define BCM2835_PUD_OFF		0
++#define BCM2835_PUD_DOWN	1
++#define BCM2835_PUD_UP		2
++
+ #endif /* __DT_BINDINGS_PINCTRL_BCM2835_H__ */
diff --git a/target/linux/brcm2708/patches-4.9/031-v4.10-0001-ARM-dts-bcm283x-Define-standard-pinctrl-groups-in-th.patch b/target/linux/brcm2708/patches-4.9/031-v4.10-0001-ARM-dts-bcm283x-Define-standard-pinctrl-groups-in-th.patch
new file mode 100644
index 0000000000..6173d943d2
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.9/031-v4.10-0001-ARM-dts-bcm283x-Define-standard-pinctrl-groups-in-th.patch
@@ -0,0 +1,235 @@
+From 21ff843931b2e5a9b628ac56fd0f2e4355890096 Mon Sep 17 00:00:00 2001
+From: Eric Anholt <eric at anholt.net>
+Date: Mon, 19 Sep 2016 10:43:18 +0200
+Subject: [PATCH] ARM: dts: bcm283x: Define standard pinctrl groups in the gpio
+ node.
+
+The BCM2835-ARM-Peripherals.pdf documentation specifies what the
+function selects do for the pins, and there are a bunch of obvious
+groupings to be made.  With these created, we'll be able to replace
+bcm2835-rpi.dtsi's main "set all of these pins to alt0" with
+references to specific groups we want enabled.
+
+Also add pinctrl groups for emmc and sdhost.
+
+Based on patches by Eric Anholt, with fixups by Gerd Hoffmann.
+
+Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>
+Signed-off-by: Eric Anholt <eric at anholt.net>
+Acked-by: Stefan Wahren <stefan.wahren at i2se.com>
+---
+ arch/arm/boot/dts/bcm283x.dtsi | 203 +++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 203 insertions(+)
+
+--- a/arch/arm/boot/dts/bcm283x.dtsi
++++ b/arch/arm/boot/dts/bcm283x.dtsi
+@@ -132,6 +132,209 @@
+ 
+ 			interrupt-controller;
+ 			#interrupt-cells = <2>;
++
++			/* Defines pin muxing groups according to
++			 * BCM2835-ARM-Peripherals.pdf page 102.
++			 *
++			 * While each pin can have its mux selected
++			 * for various functions individually, some
++			 * groups only make sense to switch to a
++			 * particular function together.
++			 */
++			dpi_gpio0: dpi_gpio0 {
++				brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11
++					     12 13 14 15 16 17 18 19
++					     20 21 22 23 24 25 26 27>;
++				brcm,function = <BCM2835_FSEL_ALT2>;
++			};
++			emmc_gpio22: emmc_gpio22 {
++				brcm,pins = <22 23 24 25 26 27>;
++				brcm,function = <BCM2835_FSEL_ALT3>;
++			};
++			emmc_gpio34: emmc_gpio34 {
++				brcm,pins = <34 35 36 37 38 39>;
++				brcm,function = <BCM2835_FSEL_ALT3>;
++				brcm,pull = <BCM2835_PUD_OFF
++					     BCM2835_PUD_UP
++					     BCM2835_PUD_UP
++					     BCM2835_PUD_UP
++					     BCM2835_PUD_UP
++					     BCM2835_PUD_UP>;
++			};
++			emmc_gpio48: emmc_gpio48 {
++				brcm,pins = <48 49 50 51 52 53>;
++				brcm,function = <BCM2835_FSEL_ALT3>;
++			};
++
++			gpclk0_gpio4: gpclk0_gpio4 {
++				brcm,pins = <4>;
++				brcm,function = <BCM2835_FSEL_ALT0>;
++			};
++			gpclk1_gpio5: gpclk1_gpio5 {
++				brcm,pins = <5>;
++				brcm,function = <BCM2835_FSEL_ALT0>;
++			};
++			gpclk1_gpio42: gpclk1_gpio42 {
++				brcm,pins = <42>;
++				brcm,function = <BCM2835_FSEL_ALT0>;
++			};
++			gpclk1_gpio44: gpclk1_gpio44 {
++				brcm,pins = <44>;
++				brcm,function = <BCM2835_FSEL_ALT0>;
++			};
++			gpclk2_gpio6: gpclk2_gpio6 {
++				brcm,pins = <6>;
++				brcm,function = <BCM2835_FSEL_ALT0>;
++			};
++			gpclk2_gpio43: gpclk2_gpio43 {
++				brcm,pins = <43>;
++				brcm,function = <BCM2835_FSEL_ALT0>;
++			};
++
++			i2c0_gpio0: i2c0_gpio0 {
++				brcm,pins = <0 1>;
++				brcm,function = <BCM2835_FSEL_ALT0>;
++			};
++			i2c0_gpio32: i2c0_gpio32 {
++				brcm,pins = <32 34>;
++				brcm,function = <BCM2835_FSEL_ALT0>;
++			};
++			i2c0_gpio44: i2c0_gpio44 {
++				brcm,pins = <44 45>;
++				brcm,function = <BCM2835_FSEL_ALT1>;
++			};
++			i2c1_gpio2: i2c1_gpio2 {
++				brcm,pins = <2 3>;
++				brcm,function = <BCM2835_FSEL_ALT0>;
++			};
++			i2c1_gpio44: i2c1_gpio44 {
++				brcm,pins = <44 45>;
++				brcm,function = <BCM2835_FSEL_ALT2>;
++			};
++			i2c_slave_gpio18: i2c_slave_gpio18 {
++				brcm,pins = <18 19 20 21>;
++				brcm,function = <BCM2835_FSEL_ALT3>;
++			};
++
++			jtag_gpio4: jtag_gpio4 {
++				brcm,pins = <4 5 6 12 13>;
++				brcm,function = <BCM2835_FSEL_ALT4>;
++			};
++			jtag_gpio22: jtag_gpio22 {
++				brcm,pins = <22 23 24 25 26 27>;
++				brcm,function = <BCM2835_FSEL_ALT4>;
++			};
++
++			pcm_gpio18: pcm_gpio18 {
++				brcm,pins = <18 19 20 21>;
++				brcm,function = <BCM2835_FSEL_ALT0>;
++			};
++			pcm_gpio28: pcm_gpio28 {
++				brcm,pins = <28 29 30 31>;
++				brcm,function = <BCM2835_FSEL_ALT2>;
++			};
++
++			pwm0_gpio12: pwm0_gpio12 {
++				brcm,pins = <12>;
++				brcm,function = <BCM2835_FSEL_ALT0>;
++			};
++			pwm0_gpio18: pwm0_gpio18 {
++				brcm,pins = <18>;
++				brcm,function = <BCM2835_FSEL_ALT5>;
++			};
++			pwm0_gpio40: pwm0_gpio40 {
++				brcm,pins = <40>;
++				brcm,function = <BCM2835_FSEL_ALT0>;
++			};
++			pwm1_gpio13: pwm1_gpio13 {
++				brcm,pins = <13>;
++				brcm,function = <BCM2835_FSEL_ALT0>;
++			};
++			pwm1_gpio19: pwm1_gpio19 {
++				brcm,pins = <19>;
++				brcm,function = <BCM2835_FSEL_ALT5>;
++			};
++			pwm1_gpio41: pwm1_gpio41 {
++				brcm,pins = <41>;
++				brcm,function = <BCM2835_FSEL_ALT0>;
++			};
++			pwm1_gpio45: pwm1_gpio45 {
++				brcm,pins = <45>;
++				brcm,function = <BCM2835_FSEL_ALT0>;
++			};
++
++			sdhost_gpio48: sdhost_gpio48 {
++				brcm,pins = <48 49 50 51 52 53>;
++				brcm,function = <BCM2835_FSEL_ALT0>;
++			};
++
++			spi0_gpio7: spi0_gpio7 {
++				brcm,pins = <7 8 9 10 11>;
++				brcm,function = <BCM2835_FSEL_ALT0>;
++			};
++			spi0_gpio35: spi0_gpio35 {
++				brcm,pins = <35 36 37 38 39>;
++				brcm,function = <BCM2835_FSEL_ALT0>;
++			};
++			spi1_gpio16: spi1_gpio16 {
++				brcm,pins = <16 17 18 19 20 21>;
++				brcm,function = <BCM2835_FSEL_ALT4>;
++			};
++			spi2_gpio40: spi2_gpio40 {
++				brcm,pins = <40 41 42 43 44 45>;
++				brcm,function = <BCM2835_FSEL_ALT4>;
++			};
++
++			uart0_gpio14: uart0_gpio14 {
++				brcm,pins = <14 15>;
++				brcm,function = <BCM2835_FSEL_ALT0>;
++			};
++			/* Separate from the uart0_gpio14 group
++			 * because it conflicts with spi1_gpio16, and
++			 * people often run uart0 on the two pins
++			 * without flow contrl.
++			 */
++			uart0_ctsrts_gpio16: uart0_ctsrts_gpio16 {
++				brcm,pins = <16 17>;
++				brcm,function = <BCM2835_FSEL_ALT3>;
++			};
++			uart0_gpio30: uart0_gpio30 {
++				brcm,pins = <30 31>;
++				brcm,function = <BCM2835_FSEL_ALT3>;
++			};
++			uart0_ctsrts_gpio32: uart0_ctsrts_gpio32 {
++				brcm,pins = <32 33>;
++				brcm,function = <BCM2835_FSEL_ALT3>;
++			};
++
++			uart1_gpio14: uart1_gpio14 {
++				brcm,pins = <14 15>;
++				brcm,function = <BCM2835_FSEL_ALT5>;
++			};
++			uart1_ctsrts_gpio16: uart1_ctsrts_gpio16 {
++				brcm,pins = <16 17>;
++				brcm,function = <BCM2835_FSEL_ALT5>;
++			};
++			uart1_gpio32: uart1_gpio32 {
++				brcm,pins = <32 33>;
++				brcm,function = <BCM2835_FSEL_ALT5>;
++			};
++			uart1_ctsrts_gpio30: uart1_ctsrts_gpio30 {
++				brcm,pins = <30 31>;
++				brcm,function = <BCM2835_FSEL_ALT5>;
++			};
++			uart1_gpio36: uart1_gpio36 {
++				brcm,pins = <36 37 38 39>;
++				brcm,function = <BCM2835_FSEL_ALT2>;
++			};
++			uart1_gpio40: uart1_gpio40 {
++				brcm,pins = <40 41>;
++				brcm,function = <BCM2835_FSEL_ALT5>;
++			};
++			uart1_ctsrts_gpio42: uart1_ctsrts_gpio42 {
++				brcm,pins = <42 43>;
++				brcm,function = <BCM2835_FSEL_ALT5>;
++			};
+ 		};
+ 
+ 		uart0: serial at 7e201000 {
diff --git a/target/linux/brcm2708/patches-4.9/031-v4.10-0002-ARM-dts-bcm283x-add-pinctrl-group-to-pwm-drop-pins-f.patch b/target/linux/brcm2708/patches-4.9/031-v4.10-0002-ARM-dts-bcm283x-add-pinctrl-group-to-pwm-drop-pins-f.patch
new file mode 100644
index 0000000000..edff9e4145
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.9/031-v4.10-0002-ARM-dts-bcm283x-add-pinctrl-group-to-pwm-drop-pins-f.patch
@@ -0,0 +1,33 @@
+From 14e0ea34058ce13794877206f05a6ab5034e147b Mon Sep 17 00:00:00 2001
+From: Gerd Hoffmann <kraxel at redhat.com>
+Date: Mon, 19 Sep 2016 10:43:19 +0200
+Subject: [PATCH] ARM: dts: bcm283x: add pinctrl group to &pwm, drop pins from
+ &gpio
+
+Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>
+Signed-off-by: Eric Anholt <eric at anholt.net>
+Acked-by: Stefan Wahren <stefan.wahren at i2se.com>
+---
+ arch/arm/boot/dts/bcm2835-rpi.dtsi | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
++++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
+@@ -39,7 +39,7 @@
+ 	};
+ 
+ 	alt0: alt0 {
+-		brcm,pins = <0 1 2 3 4 5 7 8 9 10 11 14 15 40 45>;
++		brcm,pins = <0 1 2 3 4 5 7 8 9 10 11 14 15>;
+ 		brcm,function = <BCM2835_FSEL_ALT0>;
+ 	};
+ 
+@@ -69,6 +69,8 @@
+ };
+ 
+ &pwm {
++	pinctrl-names = "default";
++	pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>;
+ 	status = "okay";
+ };
+ 
diff --git a/target/linux/brcm2708/patches-4.9/031-v4.10-0003-ARM-dts-bcm283x-add-pinctrl-group-to-i2c0-drop-pins-.patch b/target/linux/brcm2708/patches-4.9/031-v4.10-0003-ARM-dts-bcm283x-add-pinctrl-group-to-i2c0-drop-pins-.patch
new file mode 100644
index 0000000000..602faf1a9b
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.9/031-v4.10-0003-ARM-dts-bcm283x-add-pinctrl-group-to-i2c0-drop-pins-.patch
@@ -0,0 +1,33 @@
+From e6e199712008374edb4de979e74ae5acb1f40845 Mon Sep 17 00:00:00 2001
+From: Gerd Hoffmann <kraxel at redhat.com>
+Date: Mon, 19 Sep 2016 10:43:20 +0200
+Subject: [PATCH] ARM: dts: bcm283x: add pinctrl group to &i2c0, drop pins from
+ &gpio
+
+Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>
+Signed-off-by: Eric Anholt <eric at anholt.net>
+Acked-by: Stefan Wahren <stefan.wahren at i2se.com>
+---
+ arch/arm/boot/dts/bcm2835-rpi.dtsi | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
++++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
+@@ -39,7 +39,7 @@
+ 	};
+ 
+ 	alt0: alt0 {
+-		brcm,pins = <0 1 2 3 4 5 7 8 9 10 11 14 15>;
++		brcm,pins = <2 3 4 5 7 8 9 10 11 14 15>;
+ 		brcm,function = <BCM2835_FSEL_ALT0>;
+ 	};
+ 
+@@ -50,6 +50,8 @@
+ };
+ 
+ &i2c0 {
++	pinctrl-names = "default";
++	pinctrl-0 = <&i2c0_gpio0>;
+ 	status = "okay";
+ 	clock-frequency = <100000>;
+ };
diff --git a/target/linux/brcm2708/patches-4.9/031-v4.10-0004-ARM-dts-bcm283x-add-pinctrl-group-to-i2c1-drop-pins-.patch b/target/linux/brcm2708/patches-4.9/031-v4.10-0004-ARM-dts-bcm283x-add-pinctrl-group-to-i2c1-drop-pins-.patch
new file mode 100644
index 0000000000..ad883b157a
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.9/031-v4.10-0004-ARM-dts-bcm283x-add-pinctrl-group-to-i2c1-drop-pins-.patch
@@ -0,0 +1,32 @@
+From 4eb65cbfa721db9d7bbe2f76e8b1909fa0320273 Mon Sep 17 00:00:00 2001
+From: Gerd Hoffmann <kraxel at redhat.com>
+Date: Mon, 19 Sep 2016 10:43:21 +0200
+Subject: [PATCH] ARM: dts: bcm283x: add pinctrl group to &i2c1, drop pins from
+ &gpio
+
+Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>
+Signed-off-by: Eric Anholt <eric at anholt.net>
+---
+ arch/arm/boot/dts/bcm2835-rpi.dtsi | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
++++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
+@@ -39,7 +39,7 @@
+ 	};
+ 
+ 	alt0: alt0 {
+-		brcm,pins = <2 3 4 5 7 8 9 10 11 14 15>;
++		brcm,pins = <4 5 7 8 9 10 11 14 15>;
+ 		brcm,function = <BCM2835_FSEL_ALT0>;
+ 	};
+ 
+@@ -57,6 +57,8 @@
+ };
+ 
+ &i2c1 {
++	pinctrl-names = "default";
++	pinctrl-0 = <&i2c1_gpio2>;
+ 	status = "okay";
+ 	clock-frequency = <100000>;
+ };
diff --git a/target/linux/brcm2708/patches-4.9/031-v4.10-0005-ARM-dts-bcm283x-add-pinctrl-group-to-sdhci-drop-pins.patch b/target/linux/brcm2708/patches-4.9/031-v4.10-0005-ARM-dts-bcm283x-add-pinctrl-group-to-sdhci-drop-pins.patch
new file mode 100644
index 0000000000..b54c2b41a0
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.9/031-v4.10-0005-ARM-dts-bcm283x-add-pinctrl-group-to-sdhci-drop-pins.patch
@@ -0,0 +1,33 @@
+From f8bef3619bb219ed27dfe11cd20547e5b709650a Mon Sep 17 00:00:00 2001
+From: Gerd Hoffmann <kraxel at redhat.com>
+Date: Mon, 19 Sep 2016 10:43:22 +0200
+Subject: [PATCH] ARM: dts: bcm283x: add pinctrl group to &sdhci, drop pins
+ from &gpio
+
+Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>
+Signed-off-by: Eric Anholt <eric at anholt.net>
+Acked-by: Stefan Wahren <stefan.wahren at i2se.com>
+---
+ arch/arm/boot/dts/bcm2835-rpi.dtsi | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
++++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
+@@ -44,7 +44,7 @@
+ 	};
+ 
+ 	alt3: alt3 {
+-		brcm,pins = <48 49 50 51 52 53>;
++		brcm,pins = <>;
+ 		brcm,function = <BCM2835_FSEL_ALT3>;
+ 	};
+ };
+@@ -68,6 +68,8 @@
+ };
+ 
+ &sdhci {
++	pinctrl-names = "default";
++	pinctrl-0 = <&emmc_gpio48>;
+ 	status = "okay";
+ 	bus-width = <4>;
+ };
diff --git a/target/linux/brcm2708/patches-4.9/031-v4.10-0006-ARM-dts-bcm283x-drop-alt3-from-gpio.patch b/target/linux/brcm2708/patches-4.9/031-v4.10-0006-ARM-dts-bcm283x-drop-alt3-from-gpio.patch
new file mode 100644
index 0000000000..26a75cfe93
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.9/031-v4.10-0006-ARM-dts-bcm283x-drop-alt3-from-gpio.patch
@@ -0,0 +1,112 @@
+From a6d962aeb22fbf73c023334bdf55dc45c9fd7dba Mon Sep 17 00:00:00 2001
+From: Gerd Hoffmann <kraxel at redhat.com>
+Date: Mon, 19 Sep 2016 10:43:23 +0200
+Subject: [PATCH] ARM: dts: bcm283x: drop alt3 from &gpio
+
+As the alt3 group has no pins left drop it from &gpio.
+
+Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>
+Signed-off-by: Eric Anholt <eric at anholt.net>
+Acked-by: Stefan Wahren <stefan.wahren at i2se.com>
+---
+ arch/arm/boot/dts/bcm2835-rpi-a-plus.dts | 2 +-
+ arch/arm/boot/dts/bcm2835-rpi-a.dts      | 2 +-
+ arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | 2 +-
+ arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts | 2 +-
+ arch/arm/boot/dts/bcm2835-rpi-b.dts      | 2 +-
+ arch/arm/boot/dts/bcm2835-rpi-zero.dts   | 2 +-
+ arch/arm/boot/dts/bcm2835-rpi.dtsi       | 5 -----
+ arch/arm/boot/dts/bcm2836-rpi-2-b.dts    | 2 +-
+ 8 files changed, 7 insertions(+), 12 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
++++ b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
+@@ -22,7 +22,7 @@
+ };
+ 
+ &gpio {
+-	pinctrl-0 = <&gpioout &alt0 &i2s_alt0 &alt3>;
++	pinctrl-0 = <&gpioout &alt0 &i2s_alt0>;
+ 
+ 	/* I2S interface */
+ 	i2s_alt0: i2s_alt0 {
+--- a/arch/arm/boot/dts/bcm2835-rpi-a.dts
++++ b/arch/arm/boot/dts/bcm2835-rpi-a.dts
+@@ -15,7 +15,7 @@
+ };
+ 
+ &gpio {
+-	pinctrl-0 = <&gpioout &alt0 &i2s_alt2 &alt3>;
++	pinctrl-0 = <&gpioout &alt0 &i2s_alt2>;
+ 
+ 	/* I2S interface */
+ 	i2s_alt2: i2s_alt2 {
+--- a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
++++ b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
+@@ -23,7 +23,7 @@
+ };
+ 
+ &gpio {
+-	pinctrl-0 = <&gpioout &alt0 &i2s_alt0 &alt3>;
++	pinctrl-0 = <&gpioout &alt0 &i2s_alt0>;
+ 
+ 	/* I2S interface */
+ 	i2s_alt0: i2s_alt0 {
+--- a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
++++ b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
+@@ -16,7 +16,7 @@
+ };
+ 
+ &gpio {
+-	pinctrl-0 = <&gpioout &alt0 &i2s_alt2 &alt3>;
++	pinctrl-0 = <&gpioout &alt0 &i2s_alt2>;
+ 
+ 	/* I2S interface */
+ 	i2s_alt2: i2s_alt2 {
+--- a/arch/arm/boot/dts/bcm2835-rpi-b.dts
++++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts
+@@ -16,7 +16,7 @@
+ };
+ 
+ &gpio {
+-	pinctrl-0 = <&gpioout &alt0 &alt3>;
++	pinctrl-0 = <&gpioout &alt0>;
+ };
+ 
+ &hdmi {
+--- a/arch/arm/boot/dts/bcm2835-rpi-zero.dts
++++ b/arch/arm/boot/dts/bcm2835-rpi-zero.dts
+@@ -26,7 +26,7 @@
+ };
+ 
+ &gpio {
+-	pinctrl-0 = <&gpioout &alt0 &i2s_alt0 &alt3>;
++	pinctrl-0 = <&gpioout &alt0 &i2s_alt0>;
+ 
+ 	/* I2S interface */
+ 	i2s_alt0: i2s_alt0 {
+--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
++++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
+@@ -42,11 +42,6 @@
+ 		brcm,pins = <4 5 7 8 9 10 11 14 15>;
+ 		brcm,function = <BCM2835_FSEL_ALT0>;
+ 	};
+-
+-	alt3: alt3 {
+-		brcm,pins = <>;
+-		brcm,function = <BCM2835_FSEL_ALT3>;
+-	};
+ };
+ 
+ &i2c0 {
+--- a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
++++ b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
+@@ -27,7 +27,7 @@
+ };
+ 
+ &gpio {
+-	pinctrl-0 = <&gpioout &alt0 &i2s_alt0 &alt3>;
++	pinctrl-0 = <&gpioout &alt0 &i2s_alt0>;
+ 
+ 	/* I2S interface */
+ 	i2s_alt0: i2s_alt0 {
diff --git a/target/linux/brcm2708/patches-4.9/031-v4.10-0008-ARM-bcm2835-dts-add-thermal-node-to-device-tree-of-b.patch b/target/linux/brcm2708/patches-4.9/031-v4.10-0008-ARM-bcm2835-dts-add-thermal-node-to-device-tree-of-b.patch
new file mode 100644
index 0000000000..4c541a7669
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.9/031-v4.10-0008-ARM-bcm2835-dts-add-thermal-node-to-device-tree-of-b.patch
@@ -0,0 +1,67 @@
+From 43bac4133f405b67857e4c985aecc44a57233bfe Mon Sep 17 00:00:00 2001
+From: Martin Sperl <kernel at martin.sperl.org>
+Date: Wed, 2 Nov 2016 10:18:23 +0000
+Subject: [PATCH] ARM: bcm2835: dts: add thermal node to device-tree of bcm283x
+
+Add the node for the thermal sensor of the bcm2835-soc
+to the device tree.
+
+Signed-off-by: Martin Sperl <kernel at martin.sperl.org>
+Reviewed-by: Eric Anholt <eric at anholt.net>
+Acked-by: Stefan Wahren <stefan.wahren at i2se.com>
+
+Changelog:
+V1 -> V5: generic settings is shared in bcm283x.dtsi, but disabled
+	  moved the compatible string to the SOC specific dtsi
+            for arm and arm64
+V5 -> V6: fix remove 0x prefix from thermal at 0x7e212000
+
+Note: there is no arm/boot/dts/bcm2837.dtsi as of now,
+      so the 32-bit rpi3 dt is not modified.
+Signed-off-by: Eric Anholt <eric at anholt.net>
+---
+ arch/arm/boot/dts/bcm2835.dtsi | 6 ++++++
+ arch/arm/boot/dts/bcm2836.dtsi | 6 ++++++
+ arch/arm/boot/dts/bcm283x.dtsi | 7 +++++++
+ 3 files changed, 19 insertions(+)
+
+--- a/arch/arm/boot/dts/bcm2835.dtsi
++++ b/arch/arm/boot/dts/bcm2835.dtsi
+@@ -23,3 +23,9 @@
+ 		};
+ 	};
+ };
++
++/* enable thermal sensor with the correct compatible property set */
++&thermal {
++	compatible = "brcm,bcm2835-thermal";
++	status = "okay";
++};
+--- a/arch/arm/boot/dts/bcm2836.dtsi
++++ b/arch/arm/boot/dts/bcm2836.dtsi
+@@ -76,3 +76,9 @@
+ 	interrupt-parent = <&local_intc>;
+ 	interrupts = <8>;
+ };
++
++/* enable thermal sensor with the correct compatible property set */
++&thermal {
++	compatible = "brcm,bcm2836-thermal";
++	status = "okay";
++};
+--- a/arch/arm/boot/dts/bcm283x.dtsi
++++ b/arch/arm/boot/dts/bcm283x.dtsi
+@@ -390,6 +390,13 @@
+ 			interrupts = <2 14>; /* pwa1 */
+ 		};
+ 
++		thermal: thermal at 7e212000 {
++			compatible = "brcm,bcm2835-thermal";
++			reg = <0x7e212000 0x8>;
++			clocks = <&clocks BCM2835_CLOCK_TSENS>;
++			status = "disabled";
++		};
++
+ 		aux: aux at 0x7e215000 {
+ 			compatible = "brcm,bcm2835-aux";
+ 			#clock-cells = <1>;
diff --git a/target/linux/brcm2708/patches-4.9/031-v4.10-0009-ARM-bcm2835-Add-names-for-the-Raspberry-Pi-GPIO-line.patch b/target/linux/brcm2708/patches-4.9/031-v4.10-0009-ARM-bcm2835-Add-names-for-the-Raspberry-Pi-GPIO-line.patch
new file mode 100644
index 0000000000..da6c3b624d
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.9/031-v4.10-0009-ARM-bcm2835-Add-names-for-the-Raspberry-Pi-GPIO-line.patch
@@ -0,0 +1,414 @@
+From 731b26a6ac17f24057c559361c6d0cb7cb79baed Mon Sep 17 00:00:00 2001
+From: Linus Walleij <linus.walleij at linaro.org>
+Date: Thu, 6 Oct 2016 13:15:02 +0200
+Subject: [PATCH] ARM: bcm2835: Add names for the Raspberry Pi GPIO lines
+
+The idea is to give useful names to GPIO lines that an implementer
+will be using from userspace, e.g. for maker type projects.  These are
+user-visible using tools/gpio/lsgpio.c
+
+v2: Major rewrite by anholt: Flatten each GPIO line to a line in the
+    file for better diffing, prefix all expansion header pins with
+    "P<number>" or "P5HEADER_P<number>" and drop the mostly-unused
+    GPIO_GEN<smallnumber> names in favor of GPIO<socgpionumber>, fix
+    extra '[]' on a couple of lines, fix locations of SD_CARD_DETECT,
+    CAM_GPIO and STATUS_LED, fix HDMI_HPD polarities, rewrite A+ using
+    unreleased schematics.
+
+v3: More changes by anholt: Drop P<number> / P5HEADER<number>
+    prefixes.  I had been skeptical about adding them, and was
+    convinced to drop them by Gottfried (who probably has more
+    experience with GPIOs in educational contexts than the rest of
+    us).  Also drop [] brackets for "is pinmuxed", which didn't seem
+    to clarify, and were ambiguous for things like the SPI_*-labeled
+    pins which may or may not actually be pinmuxed to SPI.
+
+v4: Rename B+'s SDA0/SCL0 to match the other boards, despite the
+    naming on its schematic.
+
+Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
+Signed-off-by: Eric Anholt <eric at anholt.net>
+---
+ arch/arm/boot/dts/bcm2835-rpi-a-plus.dts | 65 +++++++++++++++++++++++++++++++
+ arch/arm/boot/dts/bcm2835-rpi-a.dts      | 67 ++++++++++++++++++++++++++++++++
+ arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | 66 +++++++++++++++++++++++++++++++
+ arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts | 66 +++++++++++++++++++++++++++++++
+ arch/arm/boot/dts/bcm2835-rpi-b.dts      | 67 ++++++++++++++++++++++++++++++++
+ 5 files changed, 331 insertions(+)
+
+--- a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
++++ b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
+@@ -22,6 +22,71 @@
+ };
+ 
+ &gpio {
++	/*
++	 * This is based on the unreleased schematic for the Model A+.
++	 *
++	 * Legend:
++	 * "NC" = not connected (no rail from the SoC)
++	 * "FOO" = GPIO line named "FOO" on the schematic
++	 * "FOO_N" = GPIO line named "FOO" on schematic, active low
++	 */
++	gpio-line-names = "SDA0",
++			  "SCL0",
++			  "SDA1",
++			  "SCL1",
++			  "GPIO_GCLK",
++			  "GPIO5",
++			  "GPIO6",
++			  "SPI_CE1_N",
++			  "SPI_CE0_N",
++			  "SPI_MISO",
++			  "SPI_MOSI",
++			  "SPI_SCLK",
++			  "GPIO12",
++			  "GPIO13",
++			  /* Serial port */
++			  "TXD0",
++			  "RXD0",
++			  "GPIO16",
++			  "GPIO17",
++			  "GPIO18",
++			  "GPIO19",
++			  "GPIO20",
++			  "GPIO21",
++			  "GPIO22",
++			  "GPIO23",
++			  "GPIO24",
++			  "GPIO25",
++			  "GPIO26",
++			  "GPIO27",
++			  "SDA0",
++			  "SCL0",
++			  "NC", /* GPIO30 */
++			  "NC", /* GPIO31 */
++			  "NC", /* GPIO32 */
++			  "NC", /* GPIO33 */
++			  "NC", /* GPIO34 */
++			  "PWR_LOW_N", /* GPIO35 */
++			  "NC", /* GPIO36 */
++			  "NC", /* GPIO37 */
++			  "NC", /* GPIO38 */
++			  "NC", /* GPIO39 */
++			  "PWM0_OUT", /* GPIO40 */
++			  "CAM_GPIO0", /* GPIO41 */
++			  "NC", /* GPIO42 */
++			  "NC", /* GPIO43 */
++			  "NC", /* GPIO44 */
++			  "PWM1_OUT", /* GPIO45 */
++			  "HDMI_HPD_N",
++			  "STATUS_LED",
++			  /* Used by SD Card */
++			  "SD_CLK_R",
++			  "SD_CMD_R",
++			  "SD_DATA0_R",
++			  "SD_DATA1_R",
++			  "SD_DATA2_R",
++			  "SD_DATA3_R";
++
+ 	pinctrl-0 = <&gpioout &alt0 &i2s_alt0>;
+ 
+ 	/* I2S interface */
+--- a/arch/arm/boot/dts/bcm2835-rpi-a.dts
++++ b/arch/arm/boot/dts/bcm2835-rpi-a.dts
+@@ -15,6 +15,73 @@
+ };
+ 
+ &gpio {
++	/*
++	 * Taken from Raspberry-Pi-Rev-1.0-Model-AB-Schematics.pdf
++	 * RPI00021 sheet 02
++	 *
++	 * Legend:
++	 * "NC" = not connected (no rail from the SoC)
++	 * "FOO" = GPIO line named "FOO" on the schematic
++	 * "FOO_N" = GPIO line named "FOO" on schematic, active low
++	 */
++	gpio-line-names = "SDA0",
++			  "SCL0",
++			  "SDA1",
++			  "SCL1",
++			  "GPIO_GCLK",
++			  "CAM_CLK",
++			  "LAN_RUN",
++			  "SPI_CE1_N",
++			  "SPI_CE0_N",
++			  "SPI_MISO",
++			  "SPI_MOSI",
++			  "SPI_SCLK",
++			  "NC", /* GPIO12 */
++			  "NC", /* GPIO13 */
++			  /* Serial port */
++			  "TXD0",
++			  "RXD0",
++			  "STATUS_LED_N",
++			  "GPIO17",
++			  "GPIO18",
++			  "NC", /* GPIO19 */
++			  "NC", /* GPIO20 */
++			  "GPIO21",
++			  "GPIO22",
++			  "GPIO23",
++			  "GPIO24",
++			  "GPIO25",
++			  "NC", /* GPIO26 */
++			  "CAM_GPIO",
++			  /* Binary number representing build/revision */
++			  "CONFIG0",
++			  "CONFIG1",
++			  "CONFIG2",
++			  "CONFIG3",
++			  "NC", /* GPIO32 */
++			  "NC", /* GPIO33 */
++			  "NC", /* GPIO34 */
++			  "NC", /* GPIO35 */
++			  "NC", /* GPIO36 */
++			  "NC", /* GPIO37 */
++			  "NC", /* GPIO38 */
++			  "NC", /* GPIO39 */
++			  "PWM0_OUT",
++			  "NC", /* GPIO41 */
++			  "NC", /* GPIO42 */
++			  "NC", /* GPIO43 */
++			  "NC", /* GPIO44 */
++			  "PWM1_OUT",
++			  "HDMI_HPD_P",
++			  "SD_CARD_DET",
++			  /* Used by SD Card */
++			  "SD_CLK_R",
++			  "SD_CMD_R",
++			  "SD_DATA0_R",
++			  "SD_DATA1_R",
++			  "SD_DATA2_R",
++			  "SD_DATA3_R";
++
+ 	pinctrl-0 = <&gpioout &alt0 &i2s_alt2>;
+ 
+ 	/* I2S interface */
+--- a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
++++ b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
+@@ -23,6 +23,72 @@
+ };
+ 
+ &gpio {
++	/*
++	 * Taken from Raspberry-Pi-B-Plus-V1.2-Schematics.pdf
++	 * RPI-BPLUS sheet 1
++	 *
++	 * Legend:
++	 * "NC" = not connected (no rail from the SoC)
++	 * "FOO" = GPIO line named "FOO" on the schematic
++	 * "FOO_N" = GPIO line named "FOO" on schematic, active low
++	 */
++	gpio-line-names = "SDA0",
++			  "SCL0",
++			  "SDA1",
++			  "SCL1",
++			  "GPIO_GCLK",
++			  "GPIO5",
++			  "GPIO6",
++			  "SPI_CE1_N",
++			  "SPI_CE0_N",
++			  "SPI_MISO",
++			  "SPI_MOSI",
++			  "SPI_SCLK",
++			  "GPIO12",
++			  "GPIO13",
++			  /* Serial port */
++			  "TXD0",
++			  "RXD0",
++			  "GPIO16",
++			  "GPIO17",
++			  "GPIO18",
++			  "GPIO19",
++			  "GPIO20",
++			  "GPIO21",
++			  "GPIO22",
++			  "GPIO23",
++			  "GPIO24",
++			  "GPIO25",
++			  "GPIO26",
++			  "GPIO27",
++			  "SDA0",
++			  "SCL0",
++			  "NC", /* GPIO30 */
++			  "LAN_RUN", /* GPIO31 */
++			  "CAM_GPIO1", /* GPIO32 */
++			  "NC", /* GPIO33 */
++			  "NC", /* GPIO34 */
++			  "PWR_LOW_N", /* GPIO35 */
++			  "NC", /* GPIO36 */
++			  "NC", /* GPIO37 */
++			  "NC", /* GPIO38 */
++			  "NC", /* GPIO39 */
++			  "PWM0_OUT", /* GPIO40 */
++			  "CAM_GPIO0", /* GPIO41 */
++			  "NC", /* GPIO42 */
++			  "NC", /* GPIO43 */
++			  "ETHCLK", /* GPIO44 */
++			  "PWM1_OUT", /* GPIO45 */
++			  "HDMI_HPD_N",
++			  "STATUS_LED",
++			  /* Used by SD Card */
++			  "SD_CLK_R",
++			  "SD_CMD_R",
++			  "SD_DATA0_R",
++			  "SD_DATA1_R",
++			  "SD_DATA2_R",
++			  "SD_DATA3_R";
++
+ 	pinctrl-0 = <&gpioout &alt0 &i2s_alt0>;
+ 
+ 	/* I2S interface */
+--- a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
++++ b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
+@@ -16,6 +16,72 @@
+ };
+ 
+ &gpio {
++	/*
++	 * Taken from Raspberry-Pi-Rev-2.0-Model-AB-Schematics.pdf
++	 * RPI00022 sheet 02
++	 *
++	 * Legend:
++	 * "NC" = not connected (no rail from the SoC)
++	 * "FOO" = GPIO line named "FOO" on the schematic
++	 * "FOO_N" = GPIO line named "FOO" on schematic, active low
++	 */
++	gpio-line-names = "SDA0",
++			  "SCL0",
++			  "SDA1",
++			  "SCL1",
++			  "GPIO_GCLK",
++			  "CAM_CLK",
++			  "LAN_RUN",
++			  "SPI_CE1_N",
++			  "SPI_CE0_N",
++			  "SPI_MISO",
++			  "SPI_MOSI",
++			  "SPI_SCLK",
++			  "NC", /* GPIO12 */
++			  "NC", /* GPIO13 */
++			  /* Serial port */
++			  "TXD0",
++			  "RXD0",
++			  "STATUS_LED_N",
++			  "GPIO17",
++			  "GPIO18",
++			  "NC", /* GPIO19 */
++			  "NC", /* GPIO20 */
++			  "CAM_GPIO",
++			  "GPIO22",
++			  "GPIO23",
++			  "GPIO24",
++			  "GPIO25",
++			  "NC", /* GPIO26 */
++			  "GPIO27",
++			  "GPIO28",
++			  "GPIO29",
++			  "GPIO30",
++			  "GPIO31",
++			  "NC", /* GPIO32 */
++			  "NC", /* GPIO33 */
++			  "NC", /* GPIO34 */
++			  "NC", /* GPIO35 */
++			  "NC", /* GPIO36 */
++			  "NC", /* GPIO37 */
++			  "NC", /* GPIO38 */
++			  "NC", /* GPIO39 */
++			  "PWM0_OUT",
++			  "NC", /* GPIO41 */
++			  "NC", /* GPIO42 */
++			  "NC", /* GPIO43 */
++			  "NC", /* GPIO44 */
++			  "PWM1_OUT",
++			  "HDMI_HPD_P",
++			  "SD_CARD_DET",
++			  /* Used by SD Card */
++			  "SD_CLK_R",
++			  "SD_CMD_R",
++			  "SD_DATA0_R",
++			  "SD_DATA1_R",
++			  "SD_DATA2_R",
++			  "SD_DATA3_R";
++
+ 	pinctrl-0 = <&gpioout &alt0 &i2s_alt2>;
+ 
+ 	/* I2S interface */
+--- a/arch/arm/boot/dts/bcm2835-rpi-b.dts
++++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts
+@@ -16,6 +16,73 @@
+ };
+ 
+ &gpio {
++	/*
++	 * Taken from Raspberry-Pi-Rev-1.0-Model-AB-Schematics.pdf
++	 * RPI00021 sheet 02
++	 *
++	 * Legend:
++	 * "NC" = not connected (no rail from the SoC)
++	 * "FOO" = GPIO line named "FOO" on the schematic
++	 * "FOO_N" = GPIO line named "FOO" on schematic, active low
++	 */
++	gpio-line-names = "SDA0",
++			  "SCL0",
++			  "SDA1",
++			  "SCL1",
++			  "GPIO_GCLK",
++			  "CAM_CLK",
++			  "LAN_RUN",
++			  "SPI_CE1_N",
++			  "SPI_CE0_N",
++			  "SPI_MISO",
++			  "SPI_MOSI",
++			  "SPI_SCLK",
++			  "NC", /* GPIO12 */
++			  "NC", /* GPIO13 */
++			  /* Serial port */
++			  "TXD0",
++			  "RXD0",
++			  "STATUS_LED_N",
++			  "GPIO17",
++			  "GPIO18",
++			  "NC", /* GPIO19 */
++			  "NC", /* GPIO20 */
++			  "GPIO21",
++			  "GPIO22",
++			  "GPIO23",
++			  "GPIO24",
++			  "GPIO25",
++			  "NC", /* GPIO26 */
++			  "CAM_GPIO",
++			  /* Binary number representing build/revision */
++			  "CONFIG0",
++			  "CONFIG1",
++			  "CONFIG2",
++			  "CONFIG3",
++			  "NC", /* GPIO32 */
++			  "NC", /* GPIO33 */
++			  "NC", /* GPIO34 */
++			  "NC", /* GPIO35 */
++			  "NC", /* GPIO36 */
++			  "NC", /* GPIO37 */
++			  "NC", /* GPIO38 */
++			  "NC", /* GPIO39 */
++			  "PWM0_OUT",
++			  "NC", /* GPIO41 */
++			  "NC", /* GPIO42 */
++			  "NC", /* GPIO43 */
++			  "NC", /* GPIO44 */
++			  "PWM1_OUT",
++			  "HDMI_HPD_P",
++			  "SD_CARD_DET",
++			  /* Used by SD Card */
++			  "SD_CLK_R",
++			  "SD_CMD_R",
++			  "SD_DATA0_R",
++			  "SD_DATA1_R",
++			  "SD_DATA2_R",
++			  "SD_DATA3_R";
++
+ 	pinctrl-0 = <&gpioout &alt0>;
+ };
+ 
diff --git a/target/linux/brcm2708/patches-4.9/031-v4.10-0010-ARM-bcm2835-Fix-names-for-the-Raspberry-Pi-GPIO-line.patch b/target/linux/brcm2708/patches-4.9/031-v4.10-0010-ARM-bcm2835-Fix-names-for-the-Raspberry-Pi-GPIO-line.patch
new file mode 100644
index 0000000000..83448f2394
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.9/031-v4.10-0010-ARM-bcm2835-Fix-names-for-the-Raspberry-Pi-GPIO-line.patch
@@ -0,0 +1,93 @@
+From 6b9170887e1b912b657dab4597f8b44ae4dbdf50 Mon Sep 17 00:00:00 2001
+From: Stefan Wahren <stefan.wahren at i2se.com>
+Date: Wed, 16 Nov 2016 17:52:06 +0000
+Subject: [PATCH] ARM: bcm2835: Fix names for the Raspberry Pi GPIO lines
+
+There are some differences between the schematics and the official firmware
+DTS [1]. So based on these additional information the following has been
+changed:
+
+* use consistent "CAM_GPIO1" for camera LED
+* use consistent "CAM_GPIO0" for camera shutdown
+* add "USB_LIMIT" for USB current limit (0=600mA, 1=1200mA)
+
+[1] - https://github.com/raspberrypi/firmware/blob/master/extra/dt-blob.dts
+
+Signed-off-by: Stefan Wahren <stefan.wahren at i2se.com>
+Signed-off-by: Eric Anholt <eric at anholt.net>
+---
+ arch/arm/boot/dts/bcm2835-rpi-a-plus.dts | 4 ++--
+ arch/arm/boot/dts/bcm2835-rpi-a.dts      | 4 ++--
+ arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | 2 +-
+ arch/arm/boot/dts/bcm2835-rpi-b.dts      | 4 ++--
+ 4 files changed, 7 insertions(+), 7 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
++++ b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
+@@ -63,13 +63,13 @@
+ 			  "SCL0",
+ 			  "NC", /* GPIO30 */
+ 			  "NC", /* GPIO31 */
+-			  "NC", /* GPIO32 */
++			  "CAM_GPIO1", /* GPIO32 */
+ 			  "NC", /* GPIO33 */
+ 			  "NC", /* GPIO34 */
+ 			  "PWR_LOW_N", /* GPIO35 */
+ 			  "NC", /* GPIO36 */
+ 			  "NC", /* GPIO37 */
+-			  "NC", /* GPIO38 */
++			  "USB_LIMIT", /* GPIO38 */
+ 			  "NC", /* GPIO39 */
+ 			  "PWM0_OUT", /* GPIO40 */
+ 			  "CAM_GPIO0", /* GPIO41 */
+--- a/arch/arm/boot/dts/bcm2835-rpi-a.dts
++++ b/arch/arm/boot/dts/bcm2835-rpi-a.dts
+@@ -29,7 +29,7 @@
+ 			  "SDA1",
+ 			  "SCL1",
+ 			  "GPIO_GCLK",
+-			  "CAM_CLK",
++			  "CAM_GPIO1",
+ 			  "LAN_RUN",
+ 			  "SPI_CE1_N",
+ 			  "SPI_CE0_N",
+@@ -52,7 +52,7 @@
+ 			  "GPIO24",
+ 			  "GPIO25",
+ 			  "NC", /* GPIO26 */
+-			  "CAM_GPIO",
++			  "CAM_GPIO0",
+ 			  /* Binary number representing build/revision */
+ 			  "CONFIG0",
+ 			  "CONFIG1",
+--- a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
++++ b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
+@@ -71,7 +71,7 @@
+ 			  "PWR_LOW_N", /* GPIO35 */
+ 			  "NC", /* GPIO36 */
+ 			  "NC", /* GPIO37 */
+-			  "NC", /* GPIO38 */
++			  "USB_LIMIT", /* GPIO38 */
+ 			  "NC", /* GPIO39 */
+ 			  "PWM0_OUT", /* GPIO40 */
+ 			  "CAM_GPIO0", /* GPIO41 */
+--- a/arch/arm/boot/dts/bcm2835-rpi-b.dts
++++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts
+@@ -30,7 +30,7 @@
+ 			  "SDA1",
+ 			  "SCL1",
+ 			  "GPIO_GCLK",
+-			  "CAM_CLK",
++			  "CAM_GPIO1",
+ 			  "LAN_RUN",
+ 			  "SPI_CE1_N",
+ 			  "SPI_CE0_N",
+@@ -53,7 +53,7 @@
+ 			  "GPIO24",
+ 			  "GPIO25",
+ 			  "NC", /* GPIO26 */
+-			  "CAM_GPIO",
++			  "CAM_GPIO0",
+ 			  /* Binary number representing build/revision */
+ 			  "CONFIG0",
+ 			  "CONFIG1",
diff --git a/target/linux/brcm2708/patches-4.9/031-v4.10-0011-ARM-bcm2835-Add-names-for-the-RPi-Zero-GPIO-lines.patch b/target/linux/brcm2708/patches-4.9/031-v4.10-0011-ARM-bcm2835-Add-names-for-the-RPi-Zero-GPIO-lines.patch
new file mode 100644
index 0000000000..5beef8ecb9
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.9/031-v4.10-0011-ARM-bcm2835-Add-names-for-the-RPi-Zero-GPIO-lines.patch
@@ -0,0 +1,91 @@
+From 3a1689ea752436917c5ce4487527ed6c444630ee Mon Sep 17 00:00:00 2001
+From: Stefan Wahren <stefan.wahren at i2se.com>
+Date: Wed, 16 Nov 2016 17:52:07 +0000
+Subject: [PATCH] ARM: bcm2835: Add names for the RPi Zero GPIO lines
+
+This adds the GPIO names for the Raspberry Pi Zero. The GPIO lines
+of the RPi Zero are almost identical to the Model A+ except:
+
+* GPIO 35, 38, 40 and 45 are not connected
+* Status LED is active low
+
+Signed-off-by: Stefan Wahren <stefan.wahren at i2se.com>
+Signed-off-by: Eric Anholt <eric at anholt.net>
+---
+ arch/arm/boot/dts/bcm2835-rpi-zero.dts | 65 ++++++++++++++++++++++++++++++++++
+ 1 file changed, 65 insertions(+)
+
+--- a/arch/arm/boot/dts/bcm2835-rpi-zero.dts
++++ b/arch/arm/boot/dts/bcm2835-rpi-zero.dts
+@@ -26,6 +26,71 @@
+ };
+ 
+ &gpio {
++	/*
++	 * This is based on the official GPU firmware DT blob.
++	 *
++	 * Legend:
++	 * "NC" = not connected (no rail from the SoC)
++	 * "FOO" = GPIO line named "FOO" on the schematic
++	 * "FOO_N" = GPIO line named "FOO" on schematic, active low
++	 */
++	gpio-line-names = "SDA0",
++			  "SCL0",
++			  "SDA1",
++			  "SCL1",
++			  "GPIO_GCLK",
++			  "GPIO5",
++			  "GPIO6",
++			  "SPI_CE1_N",
++			  "SPI_CE0_N",
++			  "SPI_MISO",
++			  "SPI_MOSI",
++			  "SPI_SCLK",
++			  "GPIO12",
++			  "GPIO13",
++			  /* Serial port */
++			  "TXD0",
++			  "RXD0",
++			  "GPIO16",
++			  "GPIO17",
++			  "GPIO18",
++			  "GPIO19",
++			  "GPIO20",
++			  "GPIO21",
++			  "GPIO22",
++			  "GPIO23",
++			  "GPIO24",
++			  "GPIO25",
++			  "GPIO26",
++			  "GPIO27",
++			  "SDA0",
++			  "SCL0",
++			  "NC", /* GPIO30 */
++			  "NC", /* GPIO31 */
++			  "CAM_GPIO1", /* GPIO32 */
++			  "NC", /* GPIO33 */
++			  "NC", /* GPIO34 */
++			  "NC", /* GPIO35 */
++			  "NC", /* GPIO36 */
++			  "NC", /* GPIO37 */
++			  "NC", /* GPIO38 */
++			  "NC", /* GPIO39 */
++			  "NC", /* GPIO40 */
++			  "CAM_GPIO0", /* GPIO41 */
++			  "NC", /* GPIO42 */
++			  "NC", /* GPIO43 */
++			  "NC", /* GPIO44 */
++			  "NC", /* GPIO45 */
++			  "HDMI_HPD_N",
++			  "STATUS_LED_N",
++			  /* Used by SD Card */
++			  "SD_CLK_R",
++			  "SD_CMD_R",
++			  "SD_DATA0_R",
++			  "SD_DATA1_R",
++			  "SD_DATA2_R",
++			  "SD_DATA3_R";
++
+ 	pinctrl-0 = <&gpioout &alt0 &i2s_alt0>;
+ 
+ 	/* I2S interface */
diff --git a/target/linux/brcm2708/patches-4.9/999-0174-ARM-dts-bcm283x-Add-VEC-node-in-bcm283x.dtsi.patch b/target/linux/brcm2708/patches-4.9/032-v4.11-0001-ARM-dts-bcm283x-Add-VEC-node-in-bcm283x.dtsi.patch
similarity index 84%
rename from target/linux/brcm2708/patches-4.9/999-0174-ARM-dts-bcm283x-Add-VEC-node-in-bcm283x.dtsi.patch
rename to target/linux/brcm2708/patches-4.9/032-v4.11-0001-ARM-dts-bcm283x-Add-VEC-node-in-bcm283x.dtsi.patch
index a2671f2439..c0d43870ec 100644
--- a/target/linux/brcm2708/patches-4.9/999-0174-ARM-dts-bcm283x-Add-VEC-node-in-bcm283x.dtsi.patch
+++ b/target/linux/brcm2708/patches-4.9/032-v4.11-0001-ARM-dts-bcm283x-Add-VEC-node-in-bcm283x.dtsi.patch
@@ -1,4 +1,4 @@
-From 9389f17c3c92c3ec54e0d689ad46b95b90a8039a Mon Sep 17 00:00:00 2001
+From b899c45208d6f204a6da9a1132577993eeecf0fb Mon Sep 17 00:00:00 2001
 From: Boris Brezillon <boris.brezillon at free-electrons.com>
 Date: Fri, 2 Dec 2016 14:48:12 +0100
 Subject: [PATCH] ARM: dts: bcm283x: Add VEC node in bcm283x.dtsi
@@ -7,14 +7,13 @@ Add the VEC (Video EnCoder) node definition in bcm283x.dtsi.
 
 Signed-off-by: Boris Brezillon <boris.brezillon at free-electrons.com>
 Signed-off-by: Eric Anholt <eric at anholt.net>
-(cherry picked from commit b899c45208d6f204a6da9a1132577993eeecf0fb)
 ---
  arch/arm/boot/dts/bcm283x.dtsi | 8 ++++++++
  1 file changed, 8 insertions(+)
 
 --- a/arch/arm/boot/dts/bcm283x.dtsi
 +++ b/arch/arm/boot/dts/bcm283x.dtsi
-@@ -310,6 +310,14 @@
+@@ -476,6 +476,14 @@
  			status = "disabled";
  		};
  
diff --git a/target/linux/brcm2708/patches-4.9/999-0175-ARM-dts-bcm283x-Enable-the-VEC-IP-on-all-RaspberryPi.patch b/target/linux/brcm2708/patches-4.9/032-v4.11-0002-ARM-dts-bcm283x-Enable-the-VEC-IP-on-all-RaspberryPi.patch
similarity index 73%
rename from target/linux/brcm2708/patches-4.9/999-0175-ARM-dts-bcm283x-Enable-the-VEC-IP-on-all-RaspberryPi.patch
rename to target/linux/brcm2708/patches-4.9/032-v4.11-0002-ARM-dts-bcm283x-Enable-the-VEC-IP-on-all-RaspberryPi.patch
index 8689450266..3362fbb833 100644
--- a/target/linux/brcm2708/patches-4.9/999-0175-ARM-dts-bcm283x-Enable-the-VEC-IP-on-all-RaspberryPi.patch
+++ b/target/linux/brcm2708/patches-4.9/032-v4.11-0002-ARM-dts-bcm283x-Enable-the-VEC-IP-on-all-RaspberryPi.patch
@@ -1,4 +1,4 @@
-From 686aed7763ddc3bd31b45454cbe73fb217a3d1c1 Mon Sep 17 00:00:00 2001
+From 5ab1a37c6027c114a87a1ae32cfc5ef303d643c5 Mon Sep 17 00:00:00 2001
 From: Boris Brezillon <boris.brezillon at free-electrons.com>
 Date: Fri, 2 Dec 2016 14:48:13 +0100
 Subject: [PATCH] ARM: dts: bcm283x: Enable the VEC IP on all RaspberryPi
@@ -8,16 +8,15 @@ Enable the VEC IP on all RaspberryPi boards.
 
 Signed-off-by: Boris Brezillon <boris.brezillon at free-electrons.com>
 Signed-off-by: Eric Anholt <eric at anholt.net>
-(cherry picked from commit 5ab1a37c6027c114a87a1ae32cfc5ef303d643c5)
 ---
  arch/arm/boot/dts/bcm2835-rpi.dtsi | 5 +++++
  1 file changed, 5 insertions(+)
 
 --- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
 +++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
-@@ -92,3 +92,8 @@
- &dsi1 {
- 	power-domains = <&power RPI_POWER_DOMAIN_DSI1>;
+@@ -87,3 +87,8 @@
+ 	power-domains = <&power RPI_POWER_DOMAIN_HDMI>;
+ 	status = "okay";
  };
 +
 +&vec {
diff --git a/target/linux/brcm2708/patches-4.9/950-0011-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch b/target/linux/brcm2708/patches-4.9/950-0011-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch
index 319eafbb19..ae52152254 100644
--- a/target/linux/brcm2708/patches-4.9/950-0011-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch
+++ b/target/linux/brcm2708/patches-4.9/950-0011-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch
@@ -10,7 +10,7 @@ Signed-off-by: Noralf Tronnes <notro at tronnes.org>
 
 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
 +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
-@@ -386,7 +386,7 @@ static struct gpio_chip bcm2835_gpio_chi
+@@ -380,7 +380,7 @@ static struct gpio_chip bcm2835_gpio_chi
  	.get = bcm2835_gpio_get,
  	.set = bcm2835_gpio_set,
  	.to_irq = bcm2835_gpio_to_irq,
diff --git a/target/linux/brcm2708/patches-4.9/950-0012-pinctrl-bcm2835-Fix-interrupt-handling-for-GPIOs-28-.patch b/target/linux/brcm2708/patches-4.9/950-0012-pinctrl-bcm2835-Fix-interrupt-handling-for-GPIOs-28-.patch
index b29aa8d7fb..6eae4e6823 100644
--- a/target/linux/brcm2708/patches-4.9/950-0012-pinctrl-bcm2835-Fix-interrupt-handling-for-GPIOs-28-.patch
+++ b/target/linux/brcm2708/patches-4.9/950-0012-pinctrl-bcm2835-Fix-interrupt-handling-for-GPIOs-28-.patch
@@ -31,7 +31,7 @@ the pins are often used for I2S instead.
  
  #define BCM2835_PIN_BITMAP_SZ \
  	DIV_ROUND_UP(BCM2835_NUM_GPIOS, sizeof(unsigned long) * 8)
-@@ -88,13 +89,13 @@ enum bcm2835_pinconf_pull {
+@@ -82,13 +83,13 @@ enum bcm2835_pinconf_param {
  
  struct bcm2835_gpio_irqdata {
  	struct bcm2835_pinctrl *pc;
@@ -47,7 +47,7 @@ the pins are often used for I2S instead.
  
  	/* note: locking assumes each bank will have its own unsigned long */
  	unsigned long enabled_irq_map[BCM2835_NUM_BANKS];
-@@ -105,7 +106,7 @@ struct bcm2835_pinctrl {
+@@ -99,7 +100,7 @@ struct bcm2835_pinctrl {
  	struct gpio_chip gpio_chip;
  	struct pinctrl_gpio_range gpio_range;
  
@@ -56,7 +56,7 @@ the pins are often used for I2S instead.
  	spinlock_t irq_lock[BCM2835_NUM_BANKS];
  };
  
-@@ -391,17 +392,16 @@ static struct gpio_chip bcm2835_gpio_chi
+@@ -385,17 +386,16 @@ static struct gpio_chip bcm2835_gpio_chi
  	.can_sleep = false,
  };
  
@@ -77,7 +77,7 @@ the pins are often used for I2S instead.
  	events &= pc->enabled_irq_map[bank];
  	for_each_set_bit(offset, &events, 32) {
  		gpio = (32 * bank) + offset;
-@@ -409,7 +409,30 @@ static irqreturn_t bcm2835_gpio_irq_hand
+@@ -403,7 +403,30 @@ static irqreturn_t bcm2835_gpio_irq_hand
  
  		generic_handle_irq(irq_linear_revmap(pc->irq_domain, gpio));
  	}
@@ -109,7 +109,7 @@ the pins are often used for I2S instead.
  }
  
  static inline void __bcm2835_gpio_irq_config(struct bcm2835_pinctrl *pc,
-@@ -998,8 +1021,6 @@ static int bcm2835_pinctrl_probe(struct
+@@ -992,8 +1015,6 @@ static int bcm2835_pinctrl_probe(struct
  	for (i = 0; i < BCM2835_NUM_BANKS; i++) {
  		unsigned long events;
  		unsigned offset;
@@ -118,7 +118,7 @@ the pins are often used for I2S instead.
  
  		/* clear event detection flags */
  		bcm2835_gpio_wr(pc, GPREN0 + i * 4, 0);
-@@ -1014,10 +1035,15 @@ static int bcm2835_pinctrl_probe(struct
+@@ -1008,10 +1029,15 @@ static int bcm2835_pinctrl_probe(struct
  		for_each_set_bit(offset, &events, 32)
  			bcm2835_gpio_wr(pc, GPEDS0 + i * 4, BIT(offset));
  
@@ -136,7 +136,7 @@ the pins are often used for I2S instead.
  
  		len = strlen(dev_name(pc->dev)) + 16;
  		name = devm_kzalloc(pc->dev, len, GFP_KERNEL);
-@@ -1074,6 +1100,7 @@ static struct platform_driver bcm2835_pi
+@@ -1068,6 +1094,7 @@ static struct platform_driver bcm2835_pi
  	.remove = bcm2835_pinctrl_remove,
  	.driver = {
  		.name = MODULE_NAME,
diff --git a/target/linux/brcm2708/patches-4.9/950-0013-pinctrl-bcm2835-Only-request-the-interrupts-listed-i.patch b/target/linux/brcm2708/patches-4.9/950-0013-pinctrl-bcm2835-Only-request-the-interrupts-listed-i.patch
index d2b764f98a..6c365cc8ea 100644
--- a/target/linux/brcm2708/patches-4.9/950-0013-pinctrl-bcm2835-Only-request-the-interrupts-listed-i.patch
+++ b/target/linux/brcm2708/patches-4.9/950-0013-pinctrl-bcm2835-Only-request-the-interrupts-listed-i.patch
@@ -16,7 +16,7 @@ interface, is unlikely to be a problem.
 
 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
 +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
-@@ -1042,6 +1042,8 @@ static int bcm2835_pinctrl_probe(struct
+@@ -1036,6 +1036,8 @@ static int bcm2835_pinctrl_probe(struct
  		int len;
  		char *name;
  		pc->irq[i] = irq_of_parse_and_map(np, i);
diff --git a/target/linux/brcm2708/patches-4.9/950-0014-pinctrl-bcm2835-Return-pins-to-inputs-when-freed.patch b/target/linux/brcm2708/patches-4.9/950-0014-pinctrl-bcm2835-Return-pins-to-inputs-when-freed.patch
index 4eb4923021..0729614881 100644
--- a/target/linux/brcm2708/patches-4.9/950-0014-pinctrl-bcm2835-Return-pins-to-inputs-when-freed.patch
+++ b/target/linux/brcm2708/patches-4.9/950-0014-pinctrl-bcm2835-Return-pins-to-inputs-when-freed.patch
@@ -14,7 +14,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
 
 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
 +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
-@@ -844,6 +844,16 @@ static const struct pinctrl_ops bcm2835_
+@@ -838,6 +838,16 @@ static const struct pinctrl_ops bcm2835_
  	.dt_free_map = bcm2835_pctl_dt_free_map,
  };
  
@@ -31,7 +31,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
  static int bcm2835_pmx_get_functions_count(struct pinctrl_dev *pctldev)
  {
  	return BCM2835_FSEL_COUNT;
-@@ -903,6 +913,7 @@ static int bcm2835_pmx_gpio_set_directio
+@@ -897,6 +907,7 @@ static int bcm2835_pmx_gpio_set_directio
  }
  
  static const struct pinmux_ops bcm2835_pmx_ops = {
diff --git a/target/linux/brcm2708/patches-4.9/950-0054-BCM2708-Add-core-Device-Tree-support.patch b/target/linux/brcm2708/patches-4.9/950-0054-BCM2708-Add-core-Device-Tree-support.patch
index d9d1fa9a58..92ccb7bff4 100644
--- a/target/linux/brcm2708/patches-4.9/950-0054-BCM2708-Add-core-Device-Tree-support.patch
+++ b/target/linux/brcm2708/patches-4.9/950-0054-BCM2708-Add-core-Device-Tree-support.patch
@@ -1013,7 +1013,7 @@ Signed-off-by: Khem Raj <raj.khem at gmail.com>
 +			firmware = <&firmware>;
 +		};
 +
-+		thermal: thermal {
++		thermal: thermal at 7e212000 {
 +			compatible = "brcm,bcm2835-thermal";
 +			firmware = <&firmware>;
 +		};
diff --git a/target/linux/brcm2708/patches-4.9/950-0126-spi-bcm2835-Disable-forced-software-CS.patch b/target/linux/brcm2708/patches-4.9/950-0126-spi-bcm2835-Disable-forced-software-CS.patch
index 544ccf6f0b..34acd201ba 100644
--- a/target/linux/brcm2708/patches-4.9/950-0126-spi-bcm2835-Disable-forced-software-CS.patch
+++ b/target/linux/brcm2708/patches-4.9/950-0126-spi-bcm2835-Disable-forced-software-CS.patch
@@ -16,7 +16,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.org>
 
 --- a/arch/arm/boot/dts/bcm283x.dtsi
 +++ b/arch/arm/boot/dts/bcm283x.dtsi
-@@ -163,6 +163,7 @@
+@@ -366,6 +366,7 @@
  			#address-cells = <1>;
  			#size-cells = <0>;
  			status = "disabled";
diff --git a/target/linux/brcm2708/patches-4.9/950-0160-ARM-bcm2835-dt-Add-the-DSI-module-nodes-and-clocks.patch b/target/linux/brcm2708/patches-4.9/950-0160-ARM-bcm2835-dt-Add-the-DSI-module-nodes-and-clocks.patch
index 444c287eed..00703579e5 100644
--- a/target/linux/brcm2708/patches-4.9/950-0160-ARM-bcm2835-dt-Add-the-DSI-module-nodes-and-clocks.patch
+++ b/target/linux/brcm2708/patches-4.9/950-0160-ARM-bcm2835-dt-Add-the-DSI-module-nodes-and-clocks.patch
@@ -14,8 +14,8 @@ Signed-off-by: Eric Anholt <eric at anholt.net>
 
 --- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
 +++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
-@@ -84,3 +84,11 @@
- 	power-domains = <&power RPI_POWER_DOMAIN_HDMI>;
+@@ -92,3 +92,11 @@
+ 	power-domains = <&power RPI_POWER_DOMAIN_VEC>;
  	status = "okay";
  };
 +
@@ -45,8 +45,8 @@ Signed-off-by: Eric Anholt <eric at anholt.net>
  		};
  
  		rng at 7e104000 {
-@@ -188,6 +191,26 @@
- 			interrupts = <2 14>; /* pwa1 */
+@@ -398,6 +401,26 @@
+ 			status = "disabled";
  		};
  
 +		dsi0: dsi at 7e209000 {
@@ -72,7 +72,7 @@ Signed-off-by: Eric Anholt <eric at anholt.net>
  		aux: aux at 0x7e215000 {
  			compatible = "brcm,bcm2835-aux";
  			#clock-cells = <1>;
-@@ -247,6 +270,26 @@
+@@ -457,6 +480,26 @@
  			interrupts = <2 1>;
  		};
  
-- 
2.11.0




More information about the Lede-dev mailing list