// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Copyright (C) 2021 MediaTek Inc.
 * Author: Seiya Wang <seiya.wang@mediatek.com>
 */
/dts-v1/;
#include "mt8195.dtsi"

/ {
	model = "MediaTek MT8195 evaluation board";
	compatible = "mediatek,mt8195-evb", "mediatek,mt8195";

	aliases {
		serial0 = &uart0;
	};

	chosen {
		stdout-path = "serial0:921600n8";
	};

	memory@40000000 {
		device_type = "memory";
		reg = <0 0x40000000 0 0x80000000>;
	};
};

&auxadc {
	status = "okay";
};

&i2c0 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c0_pin>;
	clock-frequency = <100000>;
	status = "okay";
};

&i2c1 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c1_pin>;
	clock-frequency = <400000>;
	status = "okay";
};

&i2c4 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c4_pin>;
	clock-frequency = <400000>;
	status = "okay";
};

&i2c6 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c6_pin>;
	clock-frequency = <400000>;
	status = "okay";
};

&nor_flash {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&nor_pins_default>;

	flash@0 {
		compatible = "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <50000000>;
	};
};

&pio {
	i2c0_pin: i2c0-pins {
		pins {
			pinmux = <PINMUX_GPIO8__FUNC_SDA0>,
				 <PINMUX_GPIO9__FUNC_SCL0>;
			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
			drive-strength = <6>;
		};
	};

	i2c1_pin: i2c1-pins {
		pins {
			pinmux = <PINMUX_GPIO10__FUNC_SDA1>,
				 <PINMUX_GPIO11__FUNC_SCL1>;
			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
			drive-strength = <6>;
		};
	};

	i2c4_pin: i2c4-pins {
		pins {
			pinmux = <PINMUX_GPIO16__FUNC_SDA4>,
				 <PINMUX_GPIO17__FUNC_SCL4>;
			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
			drive-strength-microamp = <1000>;
		};
	};

	i2c6_pin: i2c6-pins {
		pins {
			pinmux = <PINMUX_GPIO25__FUNC_SDA6>,
				 <PINMUX_GPIO26__FUNC_SCL6>;
			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
		};
	};

	i2c7_pin: i2c7-pins {
		pins {
			pinmux = <PINMUX_GPIO27__FUNC_SCL7>,
				 <PINMUX_GPIO28__FUNC_SDA7>;
			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
		};
	};

	nor_pins_default: nor-pins {
		pins0 {
			pinmux = <PINMUX_GPIO142__FUNC_SPINOR_IO0>,
				 <PINMUX_GPIO141__FUNC_SPINOR_CK>,
				 <PINMUX_GPIO143__FUNC_SPINOR_IO1>;
			bias-pull-down;
		};

		pins1 {
			pinmux = <PINMUX_GPIO140__FUNC_SPINOR_CS>,
				 <PINMUX_GPIO130__FUNC_SPINOR_IO2>,
				 <PINMUX_GPIO131__FUNC_SPINOR_IO3>;
			bias-pull-up;
		};
	};

	uart0_pin: uart0-pins {
		pins {
			pinmux = <PINMUX_GPIO98__FUNC_UTXD0>,
				 <PINMUX_GPIO99__FUNC_URXD0>;
		};
	};
};

&u3phy0 {
	status = "okay";
};

&u3phy1 {
	status = "okay";
};

&u3phy2 {
	status = "okay";
};

&u3phy3 {
	status = "okay";
};

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

&ssusb0 {
	status = "okay";
};

&ssusb2 {
	status = "okay";
};

&ssusb3 {
	status = "okay";
};

&xhci0 {
	status = "okay";
};

&xhci1 {
	status = "okay";
};

&xhci2 {
	status = "okay";
};

&xhci3 {
	/* This controller is connected with a BT device.
	 * Disable usb2 lpm to prevent known issues.
	 */
	usb2-lpm-disable;
	status = "okay";
};
