// SPDX-License-Identifier: GPL-2.0
#include "bcm2835-rpi.dtsi"

#include <dt-bindings/reset/raspberrypi,firmware-reset.h>

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

	aliases {
		emmc2bus = &emmc2bus;
		ethernet0 = &genet;
		pcie0 = &pcie0;
		blconfig = &blconfig;
	};

	i2c0mux: i2c-mux0 {
		compatible = "i2c-mux-pinctrl";
		#address-cells = <1>;
		#size-cells = <0>;

		i2c-parent = <&i2c0>;

		pinctrl-names = "i2c0", "i2c0-vc";
		pinctrl-0 = <&i2c0_gpio0>;
		pinctrl-1 = <&i2c0_gpio44>;

		i2c0_0: i2c@0 {
			reg = <0>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		i2c0_1: i2c@1 {
			reg = <1>;
			#address-cells = <1>;
			#size-cells = <0>;
		};
	};
};

&firmware {
	expgpio: gpio {
		compatible = "raspberrypi,firmware-gpio";
		gpio-controller;
		#gpio-cells = <2>;
		status = "okay";
	};

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

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

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

&hvs {
	clocks = <&firmware_clocks 4>;
};

&i2c0 {
	/delete-property/ pinctrl-names;
	/delete-property/ pinctrl-0;
};

&rmem {
	/*
	 * RPi4's co-processor will copy the board's bootloader configuration
	 * into memory for the OS to consume. It'll also update this node with
	 * its placement information.
	 */
	blconfig: nvram@0 {
		compatible = "raspberrypi,bootloader-config", "nvmem-rmem";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <0x0 0x0 0x0>;
		no-map;
		status = "disabled";
	};
};

&v3d {
	clocks = <&firmware_clocks 5>;
};

&vchiq {
	interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
};
