From: Rafał Miłecki Date: Wed, 22 Mar 2017 22:35:39 +0000 (+0100) Subject: brcm2708: backport upstream ARM dts commits X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=313197d7079ae5046740909133b1cd89f81e2533;p=openwrt%2Fstaging%2Fnoltari.git brcm2708: backport upstream ARM dts commits 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 Acked-by: Álvaro Fernández Rojas --- 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 +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 +Signed-off-by: Eric Anholt +Acked-by: Linus Walleij +Acked-by: Stefan Wahren +--- + 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 +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 +Signed-off-by: Eric Anholt +Acked-by: Stefan Wahren +--- + 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 = ; ++ }; ++ emmc_gpio22: emmc_gpio22 { ++ brcm,pins = <22 23 24 25 26 27>; ++ brcm,function = ; ++ }; ++ emmc_gpio34: emmc_gpio34 { ++ brcm,pins = <34 35 36 37 38 39>; ++ brcm,function = ; ++ brcm,pull = ; ++ }; ++ emmc_gpio48: emmc_gpio48 { ++ brcm,pins = <48 49 50 51 52 53>; ++ brcm,function = ; ++ }; ++ ++ gpclk0_gpio4: gpclk0_gpio4 { ++ brcm,pins = <4>; ++ brcm,function = ; ++ }; ++ gpclk1_gpio5: gpclk1_gpio5 { ++ brcm,pins = <5>; ++ brcm,function = ; ++ }; ++ gpclk1_gpio42: gpclk1_gpio42 { ++ brcm,pins = <42>; ++ brcm,function = ; ++ }; ++ gpclk1_gpio44: gpclk1_gpio44 { ++ brcm,pins = <44>; ++ brcm,function = ; ++ }; ++ gpclk2_gpio6: gpclk2_gpio6 { ++ brcm,pins = <6>; ++ brcm,function = ; ++ }; ++ gpclk2_gpio43: gpclk2_gpio43 { ++ brcm,pins = <43>; ++ brcm,function = ; ++ }; ++ ++ i2c0_gpio0: i2c0_gpio0 { ++ brcm,pins = <0 1>; ++ brcm,function = ; ++ }; ++ i2c0_gpio32: i2c0_gpio32 { ++ brcm,pins = <32 34>; ++ brcm,function = ; ++ }; ++ i2c0_gpio44: i2c0_gpio44 { ++ brcm,pins = <44 45>; ++ brcm,function = ; ++ }; ++ i2c1_gpio2: i2c1_gpio2 { ++ brcm,pins = <2 3>; ++ brcm,function = ; ++ }; ++ i2c1_gpio44: i2c1_gpio44 { ++ brcm,pins = <44 45>; ++ brcm,function = ; ++ }; ++ i2c_slave_gpio18: i2c_slave_gpio18 { ++ brcm,pins = <18 19 20 21>; ++ brcm,function = ; ++ }; ++ ++ jtag_gpio4: jtag_gpio4 { ++ brcm,pins = <4 5 6 12 13>; ++ brcm,function = ; ++ }; ++ jtag_gpio22: jtag_gpio22 { ++ brcm,pins = <22 23 24 25 26 27>; ++ brcm,function = ; ++ }; ++ ++ pcm_gpio18: pcm_gpio18 { ++ brcm,pins = <18 19 20 21>; ++ brcm,function = ; ++ }; ++ pcm_gpio28: pcm_gpio28 { ++ brcm,pins = <28 29 30 31>; ++ brcm,function = ; ++ }; ++ ++ pwm0_gpio12: pwm0_gpio12 { ++ brcm,pins = <12>; ++ brcm,function = ; ++ }; ++ pwm0_gpio18: pwm0_gpio18 { ++ brcm,pins = <18>; ++ brcm,function = ; ++ }; ++ pwm0_gpio40: pwm0_gpio40 { ++ brcm,pins = <40>; ++ brcm,function = ; ++ }; ++ pwm1_gpio13: pwm1_gpio13 { ++ brcm,pins = <13>; ++ brcm,function = ; ++ }; ++ pwm1_gpio19: pwm1_gpio19 { ++ brcm,pins = <19>; ++ brcm,function = ; ++ }; ++ pwm1_gpio41: pwm1_gpio41 { ++ brcm,pins = <41>; ++ brcm,function = ; ++ }; ++ pwm1_gpio45: pwm1_gpio45 { ++ brcm,pins = <45>; ++ brcm,function = ; ++ }; ++ ++ sdhost_gpio48: sdhost_gpio48 { ++ brcm,pins = <48 49 50 51 52 53>; ++ brcm,function = ; ++ }; ++ ++ spi0_gpio7: spi0_gpio7 { ++ brcm,pins = <7 8 9 10 11>; ++ brcm,function = ; ++ }; ++ spi0_gpio35: spi0_gpio35 { ++ brcm,pins = <35 36 37 38 39>; ++ brcm,function = ; ++ }; ++ spi1_gpio16: spi1_gpio16 { ++ brcm,pins = <16 17 18 19 20 21>; ++ brcm,function = ; ++ }; ++ spi2_gpio40: spi2_gpio40 { ++ brcm,pins = <40 41 42 43 44 45>; ++ brcm,function = ; ++ }; ++ ++ uart0_gpio14: uart0_gpio14 { ++ brcm,pins = <14 15>; ++ brcm,function = ; ++ }; ++ /* 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 = ; ++ }; ++ uart0_gpio30: uart0_gpio30 { ++ brcm,pins = <30 31>; ++ brcm,function = ; ++ }; ++ uart0_ctsrts_gpio32: uart0_ctsrts_gpio32 { ++ brcm,pins = <32 33>; ++ brcm,function = ; ++ }; ++ ++ uart1_gpio14: uart1_gpio14 { ++ brcm,pins = <14 15>; ++ brcm,function = ; ++ }; ++ uart1_ctsrts_gpio16: uart1_ctsrts_gpio16 { ++ brcm,pins = <16 17>; ++ brcm,function = ; ++ }; ++ uart1_gpio32: uart1_gpio32 { ++ brcm,pins = <32 33>; ++ brcm,function = ; ++ }; ++ uart1_ctsrts_gpio30: uart1_ctsrts_gpio30 { ++ brcm,pins = <30 31>; ++ brcm,function = ; ++ }; ++ uart1_gpio36: uart1_gpio36 { ++ brcm,pins = <36 37 38 39>; ++ brcm,function = ; ++ }; ++ uart1_gpio40: uart1_gpio40 { ++ brcm,pins = <40 41>; ++ brcm,function = ; ++ }; ++ uart1_ctsrts_gpio42: uart1_ctsrts_gpio42 { ++ brcm,pins = <42 43>; ++ brcm,function = ; ++ }; + }; + + uart0: serial@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 +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 +Signed-off-by: Eric Anholt +Acked-by: Stefan Wahren +--- + 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 = ; + }; + +@@ -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 +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 +Signed-off-by: Eric Anholt +Acked-by: Stefan Wahren +--- + 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 = ; + }; + +@@ -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 +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 +Signed-off-by: Eric Anholt +--- + 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 = ; + }; + +@@ -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 +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 +Signed-off-by: Eric Anholt +Acked-by: Stefan Wahren +--- + 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 = ; + }; + }; +@@ -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 +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 +Signed-off-by: Eric Anholt +Acked-by: Stefan Wahren +--- + 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 = ; + }; +- +- alt3: alt3 { +- brcm,pins = <>; +- brcm,function = ; +- }; + }; + + &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 +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 +Reviewed-by: Eric Anholt +Acked-by: Stefan Wahren + +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@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 +--- + 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@7e212000 { ++ compatible = "brcm,bcm2835-thermal"; ++ reg = <0x7e212000 0x8>; ++ clocks = <&clocks BCM2835_CLOCK_TSENS>; ++ status = "disabled"; ++ }; ++ + aux: aux@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 +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" or "P5HEADER_P" and drop the mostly-unused + GPIO_GEN names in favor of GPIO, 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 / P5HEADER + 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 +Signed-off-by: Eric Anholt +--- + 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 +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 +Signed-off-by: Eric Anholt +--- + 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 +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 +Signed-off-by: Eric Anholt +--- + 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/032-v4.11-0001-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 new file mode 100644 index 0000000000..c0d43870ec --- /dev/null +++ b/target/linux/brcm2708/patches-4.9/032-v4.11-0001-ARM-dts-bcm283x-Add-VEC-node-in-bcm283x.dtsi.patch @@ -0,0 +1,30 @@ +From b899c45208d6f204a6da9a1132577993eeecf0fb Mon Sep 17 00:00:00 2001 +From: Boris Brezillon +Date: Fri, 2 Dec 2016 14:48:12 +0100 +Subject: [PATCH] ARM: dts: bcm283x: Add VEC node in bcm283x.dtsi + +Add the VEC (Video EnCoder) node definition in bcm283x.dtsi. + +Signed-off-by: Boris Brezillon +Signed-off-by: Eric Anholt +--- + 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 +@@ -476,6 +476,14 @@ + status = "disabled"; + }; + ++ vec: vec@7e806000 { ++ compatible = "brcm,bcm2835-vec"; ++ reg = <0x7e806000 0x1000>; ++ clocks = <&clocks BCM2835_CLOCK_VEC>; ++ interrupts = <2 27>; ++ status = "disabled"; ++ }; ++ + pixelvalve@7e807000 { + compatible = "brcm,bcm2835-pixelvalve2"; + reg = <0x7e807000 0x100>; diff --git a/target/linux/brcm2708/patches-4.9/032-v4.11-0002-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 new file mode 100644 index 0000000000..3362fbb833 --- /dev/null +++ b/target/linux/brcm2708/patches-4.9/032-v4.11-0002-ARM-dts-bcm283x-Enable-the-VEC-IP-on-all-RaspberryPi.patch @@ -0,0 +1,25 @@ +From 5ab1a37c6027c114a87a1ae32cfc5ef303d643c5 Mon Sep 17 00:00:00 2001 +From: Boris Brezillon +Date: Fri, 2 Dec 2016 14:48:13 +0100 +Subject: [PATCH] ARM: dts: bcm283x: Enable the VEC IP on all RaspberryPi + boards + +Enable the VEC IP on all RaspberryPi boards. + +Signed-off-by: Boris Brezillon +Signed-off-by: Eric Anholt +--- + 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 +@@ -87,3 +87,8 @@ + power-domains = <&power RPI_POWER_DOMAIN_HDMI>; + status = "okay"; + }; ++ ++&vec { ++ power-domains = <&power RPI_POWER_DOMAIN_VEC>; ++ status = "okay"; ++}; 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 --- 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 --- 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 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 + firmware = <&firmware>; + }; + -+ thermal: thermal { ++ thermal: thermal@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 --- 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 --- 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 }; rng@7e104000 { -@@ -188,6 +191,26 @@ - interrupts = <2 14>; /* pwa1 */ +@@ -398,6 +401,26 @@ + status = "disabled"; }; + dsi0: dsi@7e209000 { @@ -72,7 +72,7 @@ Signed-off-by: Eric Anholt aux: aux@0x7e215000 { compatible = "brcm,bcm2835-aux"; #clock-cells = <1>; -@@ -247,6 +270,26 @@ +@@ -457,6 +480,26 @@ interrupts = <2 1>; }; 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/999-0174-ARM-dts-bcm283x-Add-VEC-node-in-bcm283x.dtsi.patch deleted file mode 100644 index a2671f2439..0000000000 --- a/target/linux/brcm2708/patches-4.9/999-0174-ARM-dts-bcm283x-Add-VEC-node-in-bcm283x.dtsi.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 9389f17c3c92c3ec54e0d689ad46b95b90a8039a Mon Sep 17 00:00:00 2001 -From: Boris Brezillon -Date: Fri, 2 Dec 2016 14:48:12 +0100 -Subject: [PATCH] ARM: dts: bcm283x: Add VEC node in bcm283x.dtsi - -Add the VEC (Video EnCoder) node definition in bcm283x.dtsi. - -Signed-off-by: Boris Brezillon -Signed-off-by: Eric Anholt -(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 @@ - status = "disabled"; - }; - -+ vec: vec@7e806000 { -+ compatible = "brcm,bcm2835-vec"; -+ reg = <0x7e806000 0x1000>; -+ clocks = <&clocks BCM2835_CLOCK_VEC>; -+ interrupts = <2 27>; -+ status = "disabled"; -+ }; -+ - pixelvalve@7e807000 { - compatible = "brcm,bcm2835-pixelvalve2"; - reg = <0x7e807000 0x100>; 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/999-0175-ARM-dts-bcm283x-Enable-the-VEC-IP-on-all-RaspberryPi.patch deleted file mode 100644 index 8689450266..0000000000 --- a/target/linux/brcm2708/patches-4.9/999-0175-ARM-dts-bcm283x-Enable-the-VEC-IP-on-all-RaspberryPi.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 686aed7763ddc3bd31b45454cbe73fb217a3d1c1 Mon Sep 17 00:00:00 2001 -From: Boris Brezillon -Date: Fri, 2 Dec 2016 14:48:13 +0100 -Subject: [PATCH] ARM: dts: bcm283x: Enable the VEC IP on all RaspberryPi - boards - -Enable the VEC IP on all RaspberryPi boards. - -Signed-off-by: Boris Brezillon -Signed-off-by: Eric Anholt -(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>; - }; -+ -+&vec { -+ power-domains = <&power RPI_POWER_DOMAIN_VEC>; -+ status = "okay"; -+};