[PATCH 3/3] ARM: dts: bcm2835: Add Raspberry Pi Zero W
Stefan Wahren
stefan.wahren at i2se.com
Thu Jul 27 04:35:18 PDT 2017
Am 26.07.2017 um 22:09 schrieb Eric Anholt:
> Stefan Wahren <stefan.wahren at i2se.com> writes:
>
>> The Raspberry Pi Zero W has the same components like the Zero plus
>> a Cypress CYW43438 wireless chip (wifi + bl).
> I sent out v2 of the arm64 patch so that hopefully we can get started
> merging this. Couple of comments on a re-read.
>
>> Signed-off-by: Stefan Wahren <stefan.wahren at i2se.com>
>> Reviewed-by: Eric Anholt <eric at anholt.net>
>> ---
>> arch/arm/boot/dts/Makefile | 3 +-
>> arch/arm/boot/dts/bcm2835-rpi-zero-w.dts | 73 ++++++++++++++++++++++++++++++++
>> 2 files changed, 75 insertions(+), 1 deletion(-)
>> create mode 100644 arch/arm/boot/dts/bcm2835-rpi-zero-w.dts
>>
>> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
>> index ec60f4f..f3bf9397 100644
>> --- a/arch/arm/boot/dts/Makefile
>> +++ b/arch/arm/boot/dts/Makefile
>> @@ -74,7 +74,8 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
>> bcm2835-rpi-a-plus.dtb \
>> bcm2836-rpi-2-b.dtb \
>> bcm2837-rpi-3-b.dtb \
>> - bcm2835-rpi-zero.dtb
>> + bcm2835-rpi-zero.dtb \
>> + bcm2835-rpi-zero-w.dtb
>> dtb-$(CONFIG_ARCH_BCM_5301X) += \
>> bcm4708-asus-rt-ac56u.dtb \
>> bcm4708-asus-rt-ac68u.dtb \
>> diff --git a/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts b/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts
>> new file mode 100644
>> index 0000000..9c6d714
>> --- /dev/null
>> +++ b/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts
>> @@ -0,0 +1,73 @@
>> +/*
>> + * Copyright (C) 2017 Stefan Wahren <stefan.wahren at i2se.com>
>> + *
>> + * The code contained herein is licensed under the GNU General Public
>> + * License. You may obtain a copy of the GNU General Public License
>> + * Version 2 or later at the following locations:
>> + *
>> + * http://www.opensource.org/licenses/gpl-license.html
>> + * http://www.gnu.org/copyleft/gpl.html
>> + */
>> +
>> +/dts-v1/;
>> +#include "bcm2835.dtsi"
>> +#include "bcm2835-rpi.dtsi"
>> +#include "bcm283x-rpi-usb-host.dtsi"
>> +
>> +/ {
>> + compatible = "raspberrypi,model-zero-w", "brcm,bcm2835";
>> + model = "Raspberry Pi Zero W";
>> +
>> + aliases {
>> + uart0 = "/soc/serial at 7e201000";
>> + uart1 = "/soc/serial at 7e215040";
>> + serial0 = "/soc/serial at 7e201000";
>> + serial1 = "/soc/serial at 7e215040";
>> + };
> Should we have this in the other board DTs? What does it do?
This was the hardest part to make the Zero W useable. I took it from
downstream [1], because without it i don't see anything on debug UART
(config.txt already has enable_uart=1).
I could add a helpful comment, but i can't explain why it's necessary
for RPI Zero W and not for the older RPI Zero.
Maybe the foundation guys have an alternative solution or at least
explanation.
[1] -
https://github.com/raspberrypi/linux/blob/rpi-4.9.y/arch/arm/boot/dts/bcm2708-rpi.dtsi
[2] -
https://github.com/raspberrypi/linux/blob/rpi-4.9.y/arch/arm/boot/dts/overlays/pi3-disable-bt-overlay.dts
>
>> +
>> + leds {
>> + act {
>> + gpios = <&gpio 47 GPIO_ACTIVE_HIGH>;
>> + };
>> + };
>> +
>> + wifi_pwrseq: wifi-pwrseq {
>> + compatible = "mmc-pwrseq-simple";
>> + pinctrl-names = "default";
>> + pinctrl-0 = <&wl_on>;
>> + reset-gpios = <&gpio 41 GPIO_ACTIVE_LOW>;
>> + };
>> +};
>> +
>> +&gpio {
>> + pinctrl-0 = <&gpioout &alt0>;
>> +
>> + wl_on: wl-on {
>> + brcm,pins = <41>;
>> + brcm,function = <BCM2835_FSEL_GPIO_OUT>;
>> + };
>> +};
> Would you be up for adding gpio-line-names based on the dt-blob.dts?
Sure
>
>> +
>> +&hdmi {
>> + hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
>> +};
>> +
>> +&sdhci {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> + pinctrl-0 = <&emmc_gpio34 &gpclk2_gpio43>;
>> + mmc-pwrseq = <&wifi_pwrseq>;
>> + non-removable;
>> + status = "okay";
>> +
>> + brcmf: wifi at 1 {
>> + reg = <1>;
>> + compatible = "brcm,bcm4329-fmac";
>> + };
>> +};
>> +
>> +&uart0 {
>> + pinctrl-names = "default";
>> + pinctrl-0 = <&uart0_gpio14>;
>> + status = "okay";
>> +};
>> --
>> 2.7.4
>>
>>
>> _______________________________________________
>> linux-arm-kernel mailing list
>> linux-arm-kernel at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
More information about the linux-arm-kernel
mailing list