// SPDX-License-Identifier: GPL-2.0+
/*
 * Copyright (C) 2017 Stefan Wahren <stefan.wahren@i2se.com>
 */

/dts-v1/;
#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
#include "bcm283x-rpi-usb-otg.dtsi"

/ {
	compatible = "raspberrypi,model-zero-w", "brcm,bcm2835";
	model = "Raspberry Pi Zero W";

	memory@0 {
		device_type = "memory";
		reg = <0 0x20000000>;
	};

	chosen {
		/* 8250 auxiliary UART instead of pl011 */
		stdout-path = "serial1:115200n8";
	};

	leds {
		act {
			gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
		};
	};

	wifi_pwrseq: wifi-pwrseq {
		compatible = "mmc-pwrseq-simple";
		reset-gpios = <&gpio 41 GPIO_ACTIVE_LOW>;
	};
};

&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 = "ID_SDA",
			  "ID_SCL",
			  "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 */
			  "NC", /* GPIO35 */
			  "NC", /* GPIO36 */
			  "NC", /* GPIO37 */
			  "NC", /* GPIO38 */
			  "NC", /* GPIO39 */
			  "CAM_GPIO1", /* GPIO40 */
			  "WL_ON", /* GPIO41 */
			  "NC", /* GPIO42 */
			  "WIFI_CLK", /* GPIO43 */
			  "CAM_GPIO0", /* GPIO44 */
			  "BT_ON", /* 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>;
};

&hdmi {
	hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
	power-domains = <&power RPI_POWER_DOMAIN_HDMI>;
	status = "okay";
};

&sdhci {
	#address-cells = <1>;
	#size-cells = <0>;
	pinctrl-names = "default";
	pinctrl-0 = <&emmc_gpio34 &gpclk2_gpio43>;
	bus-width = <4>;
	mmc-pwrseq = <&wifi_pwrseq>;
	non-removable;
	status = "okay";

	brcmf: wifi@1 {
		reg = <1>;
		compatible = "brcm,bcm4329-fmac";
	};
};

&sdhost {
	pinctrl-names = "default";
	pinctrl-0 = <&sdhost_gpio48>;
	bus-width = <4>;
	status = "okay";
};

&uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_gpio32 &uart0_ctsrts_gpio30>;
	status = "okay";

	bluetooth {
		compatible = "brcm,bcm43438-bt";
		max-speed = <2000000>;
		shutdown-gpios = <&gpio 45 GPIO_ACTIVE_HIGH>;
	};
};

&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart1_gpio14>;
	status = "okay";
};
