All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH V2 0/3] ARM: dts: add Raspberry Pi 3 A+
@ 2018-11-15 23:00 Stefan Wahren
  2018-11-15 23:00 ` [PATCH V2 1/3] dt-bindings: bcm: Add " Stefan Wahren
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Stefan Wahren @ 2018-11-15 23:00 UTC (permalink / raw)
  To: linux-arm-kernel

This patch series adds support for the brand new Raspberry Pi 3 A+ .

Changes in V2:
- add missing Makefile change for arm64

Stefan Wahren (3):
  dt-bindings: bcm: Add Raspberry Pi 3 A+
  ARM: dts: add Raspberry Pi 3 A+
  arm64: dts: broadcom: Add reference to RPi 3 A+

 .../devicetree/bindings/arm/bcm/brcm,bcm2835.txt   |   4 +
 arch/arm/boot/dts/Makefile                         |   1 +
 arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts         | 107 +++++++++++++++++++++
 arch/arm64/boot/dts/broadcom/Makefile              |   3 +-
 .../boot/dts/broadcom/bcm2837-rpi-3-a-plus.dts     |   2 +
 5 files changed, 116 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts
 create mode 100644 arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-a-plus.dts

-- 
2.7.4

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH V2 1/3] dt-bindings: bcm: Add Raspberry Pi 3 A+
  2018-11-15 23:00 [PATCH V2 0/3] ARM: dts: add Raspberry Pi 3 A+ Stefan Wahren
@ 2018-11-15 23:00 ` Stefan Wahren
  2018-11-15 23:00 ` [PATCH V2 2/3] ARM: dts: add " Stefan Wahren
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 10+ messages in thread
From: Stefan Wahren @ 2018-11-15 23:00 UTC (permalink / raw)
  To: linux-arm-kernel

This adds the root properties for the Raspberry Pi 3 A+ .

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
---
 Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt
index 0dcc3ea..245328f 100644
--- a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt
+++ b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt
@@ -30,6 +30,10 @@ Raspberry Pi 2 Model B
 Required root node properties:
 compatible = "raspberrypi,2-model-b", "brcm,bcm2836";
 
+Raspberry Pi 3 Model A+
+Required root node properties:
+compatible = "raspberrypi,3-model-a-plus", "brcm,bcm2837";
+
 Raspberry Pi 3 Model B
 Required root node properties:
 compatible = "raspberrypi,3-model-b", "brcm,bcm2837";
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH V2 2/3] ARM: dts: add Raspberry Pi 3 A+
  2018-11-15 23:00 [PATCH V2 0/3] ARM: dts: add Raspberry Pi 3 A+ Stefan Wahren
  2018-11-15 23:00 ` [PATCH V2 1/3] dt-bindings: bcm: Add " Stefan Wahren
@ 2018-11-15 23:00 ` Stefan Wahren
  2018-12-14 21:49   ` Phil Elwell
  2018-11-15 23:00 ` [PATCH V2 3/3] arm64: dts: broadcom: Add reference to RPi " Stefan Wahren
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 10+ messages in thread
From: Stefan Wahren @ 2018-11-15 23:00 UTC (permalink / raw)
  To: linux-arm-kernel

The Raspberry Pi 3 A+ is similar to the Pi 3 B+ but has only 512 MB RAM,
1 USB 2.0 port and no Ethernet.

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
---
 arch/arm/boot/dts/Makefile                 |   1 +
 arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts | 107 +++++++++++++++++++++++++++++
 2 files changed, 108 insertions(+)
 create mode 100644 arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index b0e966d..15bbd0d 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -79,6 +79,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
 	bcm2835-rpi-a-plus.dtb \
 	bcm2835-rpi-cm1-io1.dtb \
 	bcm2836-rpi-2-b.dtb \
+	bcm2837-rpi-3-a-plus.dtb \
 	bcm2837-rpi-3-b.dtb \
 	bcm2837-rpi-3-b-plus.dtb \
 	bcm2837-rpi-cm3-io3.dtb \
diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts b/arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts
new file mode 100644
index 0000000..75785dd
--- /dev/null
+++ b/arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts
@@ -0,0 +1,107 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+#include "bcm2837.dtsi"
+#include "bcm2836-rpi.dtsi"
+#include "bcm283x-rpi-usb-host.dtsi"
+
+/ {
+	compatible = "raspberrypi,3-model-a-plus", "brcm,bcm2837";
+	model = "Raspberry Pi 3 Model A+";
+
+	chosen {
+		/* 8250 auxiliary UART instead of pl011 */
+		stdout-path = "serial1:115200n8";
+	};
+
+	memory {
+		reg = <0 0x20000000>;
+	};
+
+	leds {
+		act {
+			gpios = <&gpio 29 GPIO_ACTIVE_HIGH>;
+		};
+
+		pwr {
+			label = "PWR";
+			gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	wifi_pwrseq: wifi-pwrseq {
+		compatible = "mmc-pwrseq-simple";
+		reset-gpios = <&expgpio 1 GPIO_ACTIVE_HIGH>;
+	};
+};
+
+&firmware {
+	expgpio: gpio {
+		compatible = "raspberrypi,firmware-gpio";
+		gpio-controller;
+		#gpio-cells = <2>;
+		gpio-line-names = "BT_ON",
+				  "WL_ON",
+				  "STATUS_LED",
+				  "",
+				  "",
+				  "CAM_GPIO0",
+				  "CAM_GPIO1",
+				  "";
+		status = "okay";
+	};
+};
+
+&hdmi {
+	hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
+};
+
+&pwm {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio41>;
+	status = "okay";
+};
+
+/* SDHCI is used to control the SDIO for wireless */
+&sdhci {
+	#address-cells = <1>;
+	#size-cells = <0>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&emmc_gpio34>;
+	status = "okay";
+	bus-width = <4>;
+	non-removable;
+	mmc-pwrseq = <&wifi_pwrseq>;
+
+	brcmf: wifi at 1 {
+		reg = <1>;
+		compatible = "brcm,bcm4329-fmac";
+	};
+};
+
+/* SDHOST is used to drive the SD card */
+&sdhost {
+	pinctrl-names = "default";
+	pinctrl-0 = <&sdhost_gpio48>;
+	status = "okay";
+	bus-width = <4>;
+};
+
+/* uart0 communicates with the BT module */
+&uart0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32 &gpclk2_gpio43>;
+	status = "okay";
+
+	bluetooth {
+		compatible = "brcm,bcm43438-bt";
+		max-speed = <2000000>;
+		shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
+	};
+};
+
+/* uart1 is mapped to the pin header */
+&uart1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart1_gpio14>;
+	status = "okay";
+};
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH V2 3/3] arm64: dts: broadcom: Add reference to RPi 3 A+
  2018-11-15 23:00 [PATCH V2 0/3] ARM: dts: add Raspberry Pi 3 A+ Stefan Wahren
  2018-11-15 23:00 ` [PATCH V2 1/3] dt-bindings: bcm: Add " Stefan Wahren
  2018-11-15 23:00 ` [PATCH V2 2/3] ARM: dts: add " Stefan Wahren
@ 2018-11-15 23:00 ` Stefan Wahren
  2018-11-15 23:00 ` [PATCH 0/3] ARM: dts: add Raspberry Pi " Stefan Wahren
  2018-11-16 21:23 ` [PATCH V2 " Eric Anholt
  4 siblings, 0 replies; 10+ messages in thread
From: Stefan Wahren @ 2018-11-15 23:00 UTC (permalink / raw)
  To: linux-arm-kernel

This adds a reference to the dts of the Raspberry Pi 3 A+,
so we don't need to maintain the content in arm64.

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
---
 arch/arm64/boot/dts/broadcom/Makefile                 | 3 ++-
 arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-a-plus.dts | 2 ++
 2 files changed, 4 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-a-plus.dts

diff --git a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/broadcom/Makefile
index 667ca98..d1d31cc 100644
--- a/arch/arm64/boot/dts/broadcom/Makefile
+++ b/arch/arm64/boot/dts/broadcom/Makefile
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
-dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb \
+dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-a-plus.dtb \
+			      bcm2837-rpi-3-b.dtb \
 			      bcm2837-rpi-3-b-plus.dtb \
 			      bcm2837-rpi-cm3-io3.dtb
 
diff --git a/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-a-plus.dts b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-a-plus.dts
new file mode 100644
index 0000000..f0ec56a
--- /dev/null
+++ b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-a-plus.dts
@@ -0,0 +1,2 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "arm/bcm2837-rpi-3-a-plus.dts"
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 0/3] ARM: dts: add Raspberry Pi 3 A+
  2018-11-15 23:00 [PATCH V2 0/3] ARM: dts: add Raspberry Pi 3 A+ Stefan Wahren
                   ` (2 preceding siblings ...)
  2018-11-15 23:00 ` [PATCH V2 3/3] arm64: dts: broadcom: Add reference to RPi " Stefan Wahren
@ 2018-11-15 23:00 ` Stefan Wahren
  2018-11-16 21:23 ` [PATCH V2 " Eric Anholt
  4 siblings, 0 replies; 10+ messages in thread
From: Stefan Wahren @ 2018-11-15 23:00 UTC (permalink / raw)
  To: linux-arm-kernel

This patch series adds support for the brand new Raspberry Pi 3 A+ .

Stefan Wahren (3):
  dt-bindings: bcm: Add Raspberry Pi 3 A+
  ARM: dts: add Raspberry Pi 3 A+
  arm64: dts: broadcom: Add reference to RPi 3 A+

 .../devicetree/bindings/arm/bcm/brcm,bcm2835.txt   |   4 +
 arch/arm/boot/dts/Makefile                         |   1 +
 arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts         | 107 +++++++++++++++++++++
 .../boot/dts/broadcom/bcm2837-rpi-3-a-plus.dts     |   2 +
 4 files changed, 114 insertions(+)
 create mode 100644 arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts
 create mode 100644 arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-a-plus.dts

-- 
2.7.4

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH V2 0/3] ARM: dts: add Raspberry Pi 3 A+
  2018-11-15 23:00 [PATCH V2 0/3] ARM: dts: add Raspberry Pi 3 A+ Stefan Wahren
                   ` (3 preceding siblings ...)
  2018-11-15 23:00 ` [PATCH 0/3] ARM: dts: add Raspberry Pi " Stefan Wahren
@ 2018-11-16 21:23 ` Eric Anholt
  2018-11-16 22:43   ` Stefan Wahren
  4 siblings, 1 reply; 10+ messages in thread
From: Eric Anholt @ 2018-11-16 21:23 UTC (permalink / raw)
  To: linux-arm-kernel

Stefan Wahren <stefan.wahren@i2se.com> writes:

> This patch series adds support for the brand new Raspberry Pi 3 A+ .
>
> Changes in V2:
> - add missing Makefile change for arm64
>
> Stefan Wahren (3):
>   dt-bindings: bcm: Add Raspberry Pi 3 A+
>   ARM: dts: add Raspberry Pi 3 A+
>   arm64: dts: broadcom: Add reference to RPi 3 A+

Looks pretty reasonable, but I couldn't verify any of the contents --
the firmware repo doesn't have a DT file for it, and the published
schematics don't show most of the GPIO connections (sigh).  How did you
write/test this?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20181116/43b09e4b/attachment.sig>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH V2 0/3] ARM: dts: add Raspberry Pi 3 A+
  2018-11-16 21:23 ` [PATCH V2 " Eric Anholt
@ 2018-11-16 22:43   ` Stefan Wahren
  2018-11-19 22:49     ` Eric Anholt
  0 siblings, 1 reply; 10+ messages in thread
From: Stefan Wahren @ 2018-11-16 22:43 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Eric,

> Eric Anholt <eric@anholt.net> hat am 16. November 2018 um 22:23 geschrieben:
> 
> 
> Stefan Wahren <stefan.wahren@i2se.com> writes:
> 
> > This patch series adds support for the brand new Raspberry Pi 3 A+ .
> >
> > Changes in V2:
> > - add missing Makefile change for arm64
> >
> > Stefan Wahren (3):
> >   dt-bindings: bcm: Add Raspberry Pi 3 A+
> >   ARM: dts: add Raspberry Pi 3 A+
> >   arm64: dts: broadcom: Add reference to RPi 3 A+
> 
> Looks pretty reasonable, but I couldn't verify any of the contents --
> the firmware repo doesn't have a DT file for it, and the published
> schematics don't show most of the GPIO connections (sigh).  How did you
> write/test this?

i have a Raspberry Pi 3 A+ and the firmware seems to use a runtime generated DT. So i dumped the DTS of a 3 A+ and a 3 B+ from procfs. Based on the procfs diff i modified the upstream 3B+ source to get a 3A+ .

Please consider this series as optional for 5.0. I won't submit any further patch for the next release cycle.

But maybe Phil can provide some feedback.

Regards
Stefan

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH V2 0/3] ARM: dts: add Raspberry Pi 3 A+
  2018-11-16 22:43   ` Stefan Wahren
@ 2018-11-19 22:49     ` Eric Anholt
  0 siblings, 0 replies; 10+ messages in thread
From: Eric Anholt @ 2018-11-19 22:49 UTC (permalink / raw)
  To: linux-arm-kernel

Stefan Wahren <stefan.wahren@i2se.com> writes:

> Hi Eric,
>
>> Eric Anholt <eric@anholt.net> hat am 16. November 2018 um 22:23 geschrieben:
>> 
>> 
>> Stefan Wahren <stefan.wahren@i2se.com> writes:
>> 
>> > This patch series adds support for the brand new Raspberry Pi 3 A+ .
>> >
>> > Changes in V2:
>> > - add missing Makefile change for arm64
>> >
>> > Stefan Wahren (3):
>> >   dt-bindings: bcm: Add Raspberry Pi 3 A+
>> >   ARM: dts: add Raspberry Pi 3 A+
>> >   arm64: dts: broadcom: Add reference to RPi 3 A+
>> 
>> Looks pretty reasonable, but I couldn't verify any of the contents --
>> the firmware repo doesn't have a DT file for it, and the published
>> schematics don't show most of the GPIO connections (sigh).  How did you
>> write/test this?
>
> i have a Raspberry Pi 3 A+ and the firmware seems to use a runtime
> generated DT. So i dumped the DTS of a 3 A+ and a 3 B+ from
> procfs. Based on the procfs diff i modified the upstream 3B+ source to
> get a 3A+ .

Sounds good to me.  Comparing to the pi3b+, it looks like the changes I
would expect for the board, so the series is:

Reviewed-by: Eric Anholt <eric@anholt.net>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20181119/d0dde766/attachment.sig>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH V2 2/3] ARM: dts: add Raspberry Pi 3 A+
  2018-11-15 23:00 ` [PATCH V2 2/3] ARM: dts: add " Stefan Wahren
@ 2018-12-14 21:49   ` Phil Elwell
  2018-12-27 13:50     ` Stefan Wahren
  0 siblings, 1 reply; 10+ messages in thread
From: Phil Elwell @ 2018-12-14 21:49 UTC (permalink / raw)
  To: Stefan Wahren, Rob Herring, Mark Rutland, Florian Fainelli,
	Ray Jui, Scott Branden, Eric Anholt, Arnd Bergmann
  Cc: bcm-kernel-feedback-list, linux-rpi-kernel, linux-arm-kernel

Hi Stefan,

On 15/11/2018 23:00, Stefan Wahren wrote:
> The Raspberry Pi 3 A+ is similar to the Pi 3 B+ but has only 512 MB RAM,
> 1 USB 2.0 port and no Ethernet.
> 
> Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
> ---
>   arch/arm/boot/dts/Makefile                 |   1 +
>   arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts | 107 +++++++++++++++++++++++++++++
>   2 files changed, 108 insertions(+)
>   create mode 100644 arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts
> 
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index b0e966d..15bbd0d 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -79,6 +79,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
>   	bcm2835-rpi-a-plus.dtb \
>   	bcm2835-rpi-cm1-io1.dtb \
>   	bcm2836-rpi-2-b.dtb \
> +	bcm2837-rpi-3-a-plus.dtb \
>   	bcm2837-rpi-3-b.dtb \
>   	bcm2837-rpi-3-b-plus.dtb \
>   	bcm2837-rpi-cm3-io3.dtb \
> diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts b/arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts
> new file mode 100644
> index 0000000..75785dd
> --- /dev/null
> +++ b/arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts
> @@ -0,0 +1,107 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/dts-v1/;
> +#include "bcm2837.dtsi"
> +#include "bcm2836-rpi.dtsi"
> +#include "bcm283x-rpi-usb-host.dtsi"
> +
> +/ {
> +	compatible = "raspberrypi,3-model-a-plus", "brcm,bcm2837";
> +	model = "Raspberry Pi 3 Model A+";
> +
> +	chosen {
> +		/* 8250 auxiliary UART instead of pl011 */
> +		stdout-path = "serial1:115200n8";
> +	};
> +
> +	memory {
> +		reg = <0 0x20000000>;
> +	};
> +
> +	leds {
> +		act {
> +			gpios = <&gpio 29 GPIO_ACTIVE_HIGH>;
> +		};
> +
> +		pwr {
> +			label = "PWR";
> +			gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
> +		};
> +	};
> +
> +	wifi_pwrseq: wifi-pwrseq {
> +		compatible = "mmc-pwrseq-simple";
> +		reset-gpios = <&expgpio 1 GPIO_ACTIVE_HIGH>;
> +	};
> +};
> +
> +&firmware {
> +	expgpio: gpio {
> +		compatible = "raspberrypi,firmware-gpio";
> +		gpio-controller;
> +		#gpio-cells = <2>;
> +		gpio-line-names = "BT_ON",
> +				  "WL_ON",
> +				  "STATUS_LED",
> +				  "",
> +				  "",
> +				  "CAM_GPIO0",
> +				  "CAM_GPIO1",
> +				  "";
> +		status = "okay";
> +	};
> +};
> +
> +&hdmi {
> +	hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
> +};
> +
> +&pwm {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio41>;
> +	status = "okay";
> +};
> +
> +/* SDHCI is used to control the SDIO for wireless */
> +&sdhci {
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&emmc_gpio34>;
> +	status = "okay";
> +	bus-width = <4>;
> +	non-removable;
> +	mmc-pwrseq = <&wifi_pwrseq>;
> +
> +	brcmf: wifi@1 {
> +		reg = <1>;
> +		compatible = "brcm,bcm4329-fmac";
> +	};
> +};
> +
> +/* SDHOST is used to drive the SD card */
> +&sdhost {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&sdhost_gpio48>;
> +	status = "okay";
> +	bus-width = <4>;
> +};
> +
> +/* uart0 communicates with the BT module */
> +&uart0 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32 &gpclk2_gpio43>;
> +	status = "okay";
> +
> +	bluetooth {
> +		compatible = "brcm,bcm43438-bt";
> +		max-speed = <2000000>;
> +		shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
> +	};
> +};
> +
> +/* uart1 is mapped to the pin header */
> +&uart1 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&uart1_gpio14>;
> +	status = "okay";
> +};
> 

Although this DTS originally looked correct to me, I learnt yesterday from
poring over the schematic that, due to routing congestion around the WiFi combo
chip, the 3A+ drives the BT_ON pin from the same source - GPIO1 on the expander -
as the WL_ON pin. GPIO0 on the expander is not connected. This means that the
shutdown-gpios property of the bluetooth node is incorrect.

Furthermore, I've been told that the current production 3B+ is the same in this
regard - a change since the 3B+ schematic with which the firmware support was
developed - so the 3B+ DTS should ideally also be changed, although leaving it
as it stands is likely to make little practical difference.

Phil

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH V2 2/3] ARM: dts: add Raspberry Pi 3 A+
  2018-12-14 21:49   ` Phil Elwell
@ 2018-12-27 13:50     ` Stefan Wahren
  0 siblings, 0 replies; 10+ messages in thread
From: Stefan Wahren @ 2018-12-27 13:50 UTC (permalink / raw)
  To: Phil Elwell, Florian Fainelli, Eric Anholt, marcel
  Cc: Mark Rutland, Arnd Bergmann, Scott Branden, Ray Jui, Rob Herring,
	bcm-kernel-feedback-list, linux-rpi-kernel, linux-arm-kernel

Hi Phil,

[add Marcel to CC]

> Phil Elwell <phil@raspberrypi.org> hat am 14. Dezember 2018 um 22:49 geschrieben:
> 
> 
> Hi Stefan,
> 
> On 15/11/2018 23:00, Stefan Wahren wrote:
> > The Raspberry Pi 3 A+ is similar to the Pi 3 B+ but has only 512 MB RAM,
> > 1 USB 2.0 port and no Ethernet.
> > 
> > Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
> > ---
> >   arch/arm/boot/dts/Makefile                 |   1 +
> >   arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts | 107 +++++++++++++++++++++++++++++
> >   2 files changed, 108 insertions(+)
> >   create mode 100644 arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts
> > 
> > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> > index b0e966d..15bbd0d 100644
> > --- a/arch/arm/boot/dts/Makefile
> > +++ b/arch/arm/boot/dts/Makefile
> > @@ -79,6 +79,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
> >   	bcm2835-rpi-a-plus.dtb \
> >   	bcm2835-rpi-cm1-io1.dtb \
> >   	bcm2836-rpi-2-b.dtb \
> > +	bcm2837-rpi-3-a-plus.dtb \
> >   	bcm2837-rpi-3-b.dtb \
> >   	bcm2837-rpi-3-b-plus.dtb \
> >   	bcm2837-rpi-cm3-io3.dtb \
> > diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts b/arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts
> > new file mode 100644
> > index 0000000..75785dd
> > --- /dev/null
> > +++ b/arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts
> > @@ -0,0 +1,107 @@
> > +// SPDX-License-Identifier: GPL-2.0
> > +/dts-v1/;
> > +#include "bcm2837.dtsi"
> > +#include "bcm2836-rpi.dtsi"
> > +#include "bcm283x-rpi-usb-host.dtsi"
> > +
> > +/ {
> > +	compatible = "raspberrypi,3-model-a-plus", "brcm,bcm2837";
> > +	model = "Raspberry Pi 3 Model A+";
> > +
> > +	chosen {
> > +		/* 8250 auxiliary UART instead of pl011 */
> > +		stdout-path = "serial1:115200n8";
> > +	};
> > +
> > +	memory {
> > +		reg = <0 0x20000000>;
> > +	};
> > +
> > +	leds {
> > +		act {
> > +			gpios = <&gpio 29 GPIO_ACTIVE_HIGH>;
> > +		};
> > +
> > +		pwr {
> > +			label = "PWR";
> > +			gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
> > +		};
> > +	};
> > +
> > +	wifi_pwrseq: wifi-pwrseq {
> > +		compatible = "mmc-pwrseq-simple";
> > +		reset-gpios = <&expgpio 1 GPIO_ACTIVE_HIGH>;
> > +	};
> > +};
> > +
> > +&firmware {
> > +	expgpio: gpio {
> > +		compatible = "raspberrypi,firmware-gpio";
> > +		gpio-controller;
> > +		#gpio-cells = <2>;
> > +		gpio-line-names = "BT_ON",
> > +				  "WL_ON",
> > +				  "STATUS_LED",
> > +				  "",
> > +				  "",
> > +				  "CAM_GPIO0",
> > +				  "CAM_GPIO1",
> > +				  "";
> > +		status = "okay";
> > +	};
> > +};
> > +
> > +&hdmi {
> > +	hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
> > +};
> > +
> > +&pwm {
> > +	pinctrl-names = "default";
> > +	pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio41>;
> > +	status = "okay";
> > +};
> > +
> > +/* SDHCI is used to control the SDIO for wireless */
> > +&sdhci {
> > +	#address-cells = <1>;
> > +	#size-cells = <0>;
> > +	pinctrl-names = "default";
> > +	pinctrl-0 = <&emmc_gpio34>;
> > +	status = "okay";
> > +	bus-width = <4>;
> > +	non-removable;
> > +	mmc-pwrseq = <&wifi_pwrseq>;
> > +
> > +	brcmf: wifi@1 {
> > +		reg = <1>;
> > +		compatible = "brcm,bcm4329-fmac";
> > +	};
> > +};
> > +
> > +/* SDHOST is used to drive the SD card */
> > +&sdhost {
> > +	pinctrl-names = "default";
> > +	pinctrl-0 = <&sdhost_gpio48>;
> > +	status = "okay";
> > +	bus-width = <4>;
> > +};
> > +
> > +/* uart0 communicates with the BT module */
> > +&uart0 {
> > +	pinctrl-names = "default";
> > +	pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32 &gpclk2_gpio43>;
> > +	status = "okay";
> > +
> > +	bluetooth {
> > +		compatible = "brcm,bcm43438-bt";
> > +		max-speed = <2000000>;
> > +		shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
> > +	};
> > +};
> > +
> > +/* uart1 is mapped to the pin header */
> > +&uart1 {
> > +	pinctrl-names = "default";
> > +	pinctrl-0 = <&uart1_gpio14>;
> > +	status = "okay";
> > +};
> > 
> 
> Although this DTS originally looked correct to me, I learnt yesterday from
> poring over the schematic that, due to routing congestion around the WiFi combo
> chip, the 3A+ drives the BT_ON pin from the same source - GPIO1 on the expander -
> as the WL_ON pin. GPIO0 on the expander is not connected. This means that the
> shutdown-gpios property of the bluetooth node is incorrect.

thanks for pointing out. I tested this on my RPi 3 A+ with some gpio-exp hacking and can confirm this behavior.

I don't know the reason for this design decision, but both drivers (wifi and BT) can't share the control of GPIO1. Additionally we can't give the control to only one of them, because the other one could be unexpectedly tied into reset. So i decided to drop the reset control of both ones with all the consequences (no power management, default baudrate usage of BT) in V4 of this series.

> 
> Furthermore, I've been told that the current production 3B+ is the same in this
> regard - a change since the 3B+ schematic with which the firmware support was
> developed - so the 3B+ DTS should ideally also be changed, although leaving it
> as it stands is likely to make little practical difference.

Oh dear. I think there is no hurry for changing 3B+. So i would like to wait until this series has been applied.

Stefan

> 
> Phil

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2018-12-27 13:50 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-15 23:00 [PATCH V2 0/3] ARM: dts: add Raspberry Pi 3 A+ Stefan Wahren
2018-11-15 23:00 ` [PATCH V2 1/3] dt-bindings: bcm: Add " Stefan Wahren
2018-11-15 23:00 ` [PATCH V2 2/3] ARM: dts: add " Stefan Wahren
2018-12-14 21:49   ` Phil Elwell
2018-12-27 13:50     ` Stefan Wahren
2018-11-15 23:00 ` [PATCH V2 3/3] arm64: dts: broadcom: Add reference to RPi " Stefan Wahren
2018-11-15 23:00 ` [PATCH 0/3] ARM: dts: add Raspberry Pi " Stefan Wahren
2018-11-16 21:23 ` [PATCH V2 " Eric Anholt
2018-11-16 22:43   ` Stefan Wahren
2018-11-19 22:49     ` Eric Anholt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.