// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
#include "bcm2835-rpi-common.dtsi"
#include "bcm283x-rpi-led-deprecated.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>;
	};
};

&gpio {
	/*
	 * Taken from Raspberry-Pi-B-Plus-V1.2-Schematics.pdf
	 * RPI-BPLUS sheet 1
	 *
	 * Legend:
	 * "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",
			  "", /* GPIO30 */
			  "LAN_RUN", /* GPIO31 */
			  "CAM_GPIO1", /* GPIO32 */
			  "", /* GPIO33 */
			  "", /* GPIO34 */
			  "PWR_LOW_N", /* GPIO35 */
			  "", /* GPIO36 */
			  "", /* GPIO37 */
			  "USB_LIMIT", /* GPIO38 */
			  "", /* GPIO39 */
			  "PWM0_OUT", /* GPIO40 */
			  "CAM_GPIO0", /* GPIO41 */
			  "", /* GPIO42 */
			  "", /* GPIO43 */
			  "ETH_CLK", /* 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-names = "default";
	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";
};

&led_act {
	gpios = <&gpio 47 GPIO_ACTIVE_HIGH>;
};

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

&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";
};
