Message ID | 1501598865-4281-1-git-send-email-dessel.k@gmail.com |
---|---|
State | Superseded |
Delegated to: | Tom Rini |
Headers | show |
On Tue, Aug 01, 2017 at 06:47:45PM +0400, Dmitry Korunov wrote: > The Raspberry Pi Zero W extends the Pi Zero family and it's also > based on a BCM2835 SoC. Like the Pi Zero, it has 512MB RAM, > Mini HDMI and USB On-The-Go ports. Both Pi's hasn't got Ethernet, > but Pi Zero W has built in wireless LAN 802.11 b/g/n. > > Signed-off-by: Dmitry Korunov <dessel.k@gmail.com> Reviewed-by: Tom Rini <trini@konsulko.com>
Am 01.08.2017 um 16:47 schrieb Dmitry Korunov: > The Raspberry Pi Zero W extends the Pi Zero family and it's also > based on a BCM2835 SoC. Like the Pi Zero, it has 512MB RAM, > Mini HDMI and USB On-The-Go ports. Both Pi's hasn't got Ethernet, > but Pi Zero W has built in wireless LAN 802.11 b/g/n. > > Signed-off-by: Dmitry Korunov <dessel.k@gmail.com> > --- > Changes for v2: > - removed surplus spaces > - added the board description > > arch/arm/dts/bcm2835-rpi-zero-w.dts | 33 +++++++++++++++++++++++++++++++++ > arch/arm/dts/bcm283x-rpi-usb-host.dtsi | 3 +++ > arch/arm/mach-bcm283x/Kconfig | 16 ++++++++++++++++ > board/raspberrypi/rpi/rpi.c | 5 +++++ > configs/rpi_0_w_defconfig | 28 ++++++++++++++++++++++++++++ > include/configs/rpi.h | 2 +- > 6 files changed, 86 insertions(+), 1 deletion(-) > create mode 100644 arch/arm/dts/bcm2835-rpi-zero-w.dts > create mode 100644 arch/arm/dts/bcm283x-rpi-usb-host.dtsi This file is already present in the meantime (but applies with --3way). > create mode 100644 configs/rpi_0_w_defconfig > > diff --git a/arch/arm/dts/bcm2835-rpi-zero-w.dts b/arch/arm/dts/bcm2835-rpi-zero-w.dts > new file mode 100644 > index 0000000..067cb31 > --- /dev/null > +++ b/arch/arm/dts/bcm2835-rpi-zero-w.dts > @@ -0,0 +1,33 @@ > +/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"; > + > + leds { > + act { > + gpios = <&gpio 47 0>; > + }; > + }; > +}; > + > +&gpio { > + pinctrl-0 = <&gpioout &alt0 &i2s_alt0 &alt3>; DTC arch/arm/dts/bcm2835-rpi-zero-w.dtb arch/arm/dts/bcm2835-rpi-zero-w.dtb: ERROR (phandle_references): Reference to non-existent node or label "alt3" ERROR: Input tree has errors, aborting (use -f to force output) If I comment out alt3, it builds and boots okay. How to fix properly? > + > + /* I2S interface */ > + i2s_alt0: i2s_alt0 { > + brcm,pins = <18 19 20 21>; > + brcm,function = <BCM2835_FSEL_ALT0>; > + }; > +}; > + > +&uart1 { The v4.14 .dts file does not have this and does not seem to work. Does this need to go into a -uboot.dtsi file instead or do more files need a refresh? Regards, Andreas > + status = "okay"; > +}; > + > +&hdmi { > + hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; > +}; [snip]
diff --git a/arch/arm/dts/bcm2835-rpi-zero-w.dts b/arch/arm/dts/bcm2835-rpi-zero-w.dts new file mode 100644 index 0000000..067cb31 --- /dev/null +++ b/arch/arm/dts/bcm2835-rpi-zero-w.dts @@ -0,0 +1,33 @@ +/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"; + + leds { + act { + gpios = <&gpio 47 0>; + }; + }; +}; + +&gpio { + pinctrl-0 = <&gpioout &alt0 &i2s_alt0 &alt3>; + + /* I2S interface */ + i2s_alt0: i2s_alt0 { + brcm,pins = <18 19 20 21>; + brcm,function = <BCM2835_FSEL_ALT0>; + }; +}; + +&uart1 { + status = "okay"; +}; + +&hdmi { + hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; +}; diff --git a/arch/arm/dts/bcm283x-rpi-usb-host.dtsi b/arch/arm/dts/bcm283x-rpi-usb-host.dtsi new file mode 100644 index 0000000..73f4ece --- /dev/null +++ b/arch/arm/dts/bcm283x-rpi-usb-host.dtsi @@ -0,0 +1,3 @@ +&usb { + dr_mode = "host"; +}; diff --git a/arch/arm/mach-bcm283x/Kconfig b/arch/arm/mach-bcm283x/Kconfig index 69f7a46..a78239d 100644 --- a/arch/arm/mach-bcm283x/Kconfig +++ b/arch/arm/mach-bcm283x/Kconfig @@ -44,6 +44,22 @@ config TARGET_RPI This option creates a build targetting the ARM1176 ISA. select BCM2835 +config TARGET_RPI_0_W + bool "Raspberry Pi Zero W" + help + Support for all ARM1176-/BCM2835-based Raspberry Pi variants, such as + the RPi Zero model W. + + This option assumes the VideoCore firmware is configured to use the + mini UART (rather than PL011) for the serial console. This is the + default on the RPi Zero W. To enable the UART console, the following + non-default option must be present in config.txt: enable_uart=1. + This is required for U-Boot to operate correctly, even if you only + care about the HDMI/usbkbd console. + + This option creates a build targetting the ARMv7/AArch32 ISA. + select BCM2835 + config TARGET_RPI_2 bool "Raspberry Pi 2" help diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c index d3c6ba5..63998d7 100644 --- a/board/raspberrypi/rpi/rpi.c +++ b/board/raspberrypi/rpi/rpi.c @@ -105,6 +105,11 @@ static const struct rpi_model rpi_models_new_scheme[] = { DTB_DIR "bcm2835-rpi-zero.dtb", false, }, + [0xC] = { + "Zero W", + DTB_DIR "bcm2835-rpi-zero-w.dtb", + false, + }, }; static const struct rpi_model rpi_models_old_scheme[] = { diff --git a/configs/rpi_0_w_defconfig b/configs/rpi_0_w_defconfig new file mode 100644 index 0000000..092f378 --- /dev/null +++ b/configs/rpi_0_w_defconfig @@ -0,0 +1,28 @@ +CONFIG_ARM=y +CONFIG_ARCH_BCM283X=y +CONFIG_TARGET_RPI_0_W=y +CONFIG_DEFAULT_DEVICE_TREE="bcm2835-rpi-zero-w" +CONFIG_DISTRO_DEFAULTS=y +CONFIG_OF_BOARD_SETUP=y +# CONFIG_DISPLAY_CPUINFO is not set +# CONFIG_DISPLAY_BOARDINFO is not set +CONFIG_SYS_PROMPT="U-Boot> " +# CONFIG_CMD_IMLS is not set +# CONFIG_CMD_FLASH is not set +CONFIG_CMD_MMC=y +CONFIG_CMD_USB=y +# CONFIG_CMD_FPGA is not set +CONFIG_CMD_GPIO=y +CONFIG_DM_MMC=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_BCM2835=y +CONFIG_DM_ETH=y +CONFIG_USB=y +CONFIG_DM_USB=y +CONFIG_USB_STORAGE=y +CONFIG_USB_KEYBOARD=y +CONFIG_DM_VIDEO=y +CONFIG_SYS_WHITE_ON_BLACK=y +CONFIG_CONSOLE_SCROLL_LINES=10 +CONFIG_PHYS_TO_BUS=y +CONFIG_OF_LIBFDT_OVERLAY=y diff --git a/include/configs/rpi.h b/include/configs/rpi.h index c545f99..46295c7 100644 --- a/include/configs/rpi.h +++ b/include/configs/rpi.h @@ -79,7 +79,7 @@ #endif /* Console UART */ -#ifdef CONFIG_BCM2837 +#if defined (CONFIG_BCM2837) || defined(CONFIG_TARGET_RPI_0_W) #define CONFIG_BCM283X_MU_SERIAL #else #define CONFIG_PL01X_SERIAL
The Raspberry Pi Zero W extends the Pi Zero family and it's also based on a BCM2835 SoC. Like the Pi Zero, it has 512MB RAM, Mini HDMI and USB On-The-Go ports. Both Pi's hasn't got Ethernet, but Pi Zero W has built in wireless LAN 802.11 b/g/n. Signed-off-by: Dmitry Korunov <dessel.k@gmail.com> --- Changes for v2: - removed surplus spaces - added the board description arch/arm/dts/bcm2835-rpi-zero-w.dts | 33 +++++++++++++++++++++++++++++++++ arch/arm/dts/bcm283x-rpi-usb-host.dtsi | 3 +++ arch/arm/mach-bcm283x/Kconfig | 16 ++++++++++++++++ board/raspberrypi/rpi/rpi.c | 5 +++++ configs/rpi_0_w_defconfig | 28 ++++++++++++++++++++++++++++ include/configs/rpi.h | 2 +- 6 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 arch/arm/dts/bcm2835-rpi-zero-w.dts create mode 100644 arch/arm/dts/bcm283x-rpi-usb-host.dtsi create mode 100644 configs/rpi_0_w_defconfig