// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/dts-v1/;

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "bcm2712.dtsi"

/ {
	compatible = "raspberrypi,5-model-b", "brcm,bcm2712";
	model = "Raspberry Pi 5";

	aliases {
		serial10 = &uart10;
	};

	chosen: chosen {
		stdout-path = "serial10:115200n8";
	};

	clk_rp1_xosc: clock-50000000 {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-output-names = "rp1-xosc";
		clock-frequency = <50000000>;
	};

	/* Will be filled by the bootloader */
	memory@0 {
		device_type = "memory";
		reg = <0 0 0 0x28000000>;
	};

	gpio-keys {
		compatible = "gpio-keys";
		pinctrl-names = "default";
		pinctrl-0 = <&pwr_button_default>;
		status = "okay";

		power_button: power-button {
			label = "pwr_button";
			linux,code = <KEY_POWER>;
			gpios = <&gio 20 GPIO_ACTIVE_LOW>;
			debounce-interval = <50>;
		};
	};

	sd_io_1v8_reg: sd-io-1v8-reg {
		compatible = "regulator-gpio";
		regulator-name = "vdd-sd-io";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;
		regulator-boot-on;
		regulator-always-on;
		regulator-settling-time-us = <5000>;
		gpios = <&gio_aon 3 GPIO_ACTIVE_HIGH>;
		states = <1800000 1>,
			 <3300000 0>;
	};

	sd_vcc_reg: sd-vcc-reg {
		compatible = "regulator-fixed";
		regulator-name = "vcc-sd";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-boot-on;
		enable-active-high;
		gpios = <&gio_aon 4 GPIO_ACTIVE_HIGH>;
	};

	wl_on_reg: wl-on-reg {
		compatible = "regulator-fixed";
		regulator-name = "wl-on-regulator";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		pinctrl-0 = <&wl_on_default>;
		pinctrl-names = "default";
		gpio = <&gio 28 GPIO_ACTIVE_HIGH>;
		startup-delay-us = <150000>;
		enable-active-high;
	};
};

&pinctrl {
	bt_shutdown_default: bt-shutdown-default-state {
		function = "gpio";
		pins = "gpio29";
	};

	emmc_sd_default: emmc-sd-default-state {
		pins = "emmc_cmd", "emmc_dat0", "emmc_dat1", "emmc_dat2", "emmc_dat3";
		bias-pull-up;
	};

	pwr_button_default: pwr-button-default-state {
		function = "gpio";
		pins = "gpio20";
		bias-pull-up;
	};

	sdio2_30_default: sdio2-30-default-state {
		clk-pins {
			function = "sd2";
			pins = "gpio30";
			bias-disable;
		};
		cmd-pins {
			function = "sd2";
			pins = "gpio31";
			bias-pull-up;
		};
		dat-pins {
			function = "sd2";
			pins = "gpio32", "gpio33", "gpio34", "gpio35";
			bias-pull-up;
		};
	};

	uarta_24_default: uarta-24-default-state {
		rts-pins {
			function = "uart0";
			pins = "gpio24";
			bias-disable;
		};
		cts-pins {
			function = "uart0";
			pins = "gpio25";
			bias-pull-up;
		};
		txd-pins {
			function = "uart0";
			pins = "gpio26";
			bias-disable;
		};
		rxd-pins {
			function = "uart0";
			pins = "gpio27";
			bias-pull-up;
		};
	};

	wl_on_default: wl-on-default-state {
		function = "gpio";
		pins = "gpio28";
	};
};

&pinctrl_aon {
	emmc_aon_cd_default: emmc-aon-cd-default-state {
		function = "sd_card_g";
		pins = "aon_gpio5";
		bias-pull-up;
	};
};

/* The Debug UART, on Rpi5 it's on JST-SH 1.0mm 3-pin connector
 * labeled "UART", i.e. the interface with the system console.
 */
&uart10 {
	status = "okay";
};

/* SDIO1 is used to drive the SD card */
&sdio1 {
	pinctrl-0 = <&emmc_sd_default>, <&emmc_aon_cd_default>;
	pinctrl-names = "default";
	vqmmc-supply = <&sd_io_1v8_reg>;
	vmmc-supply = <&sd_vcc_reg>;
	bus-width = <4>;
	sd-uhs-sdr50;
	sd-uhs-ddr50;
	sd-uhs-sdr104;
	cd-gpios = <&gio_aon 5 GPIO_ACTIVE_LOW>;
};

&sdio2 {
	pinctrl-0 = <&sdio2_30_default>;
	pinctrl-names = "default";
	bus-width = <4>;
	vmmc-supply = <&wl_on_reg>;
	sd-uhs-ddr50;
	non-removable;
	status = "okay";
	#address-cells = <1>;
	#size-cells = <0>;

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

&soc {
	firmware: firmware {
		compatible = "raspberrypi,bcm2835-firmware", "simple-mfd";
		#address-cells = <1>;
		#size-cells = <1>;

		mboxes = <&mailbox>;
		dma-ranges;

		firmware_clocks: clocks {
			compatible = "raspberrypi,firmware-clocks";
			#clock-cells = <1>;
		};

		reset: reset {
			compatible = "raspberrypi,firmware-reset";
			#reset-cells = <1>;
		};
	};

	power: power {
		compatible = "raspberrypi,bcm2835-power";
		firmware = <&firmware>;
		#power-domain-cells = <1>;
	};
};

/* uarta communicates with the BT module */
&uarta {
	uart-has-rtscts;
	pinctrl-0 = <&uarta_24_default &bt_shutdown_default>;
	pinctrl-names = "default";
	status = "okay";

	bluetooth: bluetooth {
		compatible = "brcm,bcm43438-bt";
		max-speed = <3000000>;
		shutdown-gpios = <&gio 29 GPIO_ACTIVE_HIGH>;
	};
};

&hvs {
	clocks = <&firmware_clocks 4>, <&firmware_clocks 16>;
	clock-names = "core", "disp";
};

&hdmi0 {
	clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 0>, <&clk_27MHz>;
	clock-names = "hdmi", "bvb", "audio", "cec";
};

&hdmi1 {
	clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 1>, <&clk_27MHz>;
	clock-names = "hdmi", "bvb", "audio", "cec";
};

&pcie1 {
	status = "okay";
};

&pcie2 {
	status = "okay";
};
