// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
#include "bcm283x-rpi-smsc9514.dtsi"
#include "bcm283x-rpi-usb-host.dtsi"

/ {
	compatible = "raspberrypi,model-b-plus", "brcm,bcm2835";
	model = "Raspberry Pi Model B+";

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

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

		pwr {
			label = "PWR";
			gpios = <&gpio 35 GPIO_ACTIVE_HIGH>;
			default-state = "keep";
			linux,default-trigger = "default-on";
		};
	};
};

&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 = "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 */
			  "LAN_RUN", /* GPIO31 */
			  "CAM_GPIO1", /* GPIO32 */
			  "NC", /* GPIO33 */
			  "NC", /* GPIO34 */
			  "PWR_LOW_N", /* GPIO35 */
			  "NC", /* GPIO36 */
			  "NC", /* GPIO37 */
			  "USB_LIMIT", /* 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 */
	i2s_alt0: i2s_alt0 {
		brcm,pins = <18 19 20 21>;
		brcm,function = <BCM2835_FSEL_ALT0>;
	};
};

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

&pwm {
	pinctrl-names = "default";
	pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>;
	status = "okay";
};

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

&uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_gpio14>;
	status = "okay";
};
