// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Copyright (c) 2018 MediaTek Inc.
 * Author: Ben Ho <ben.ho@mediatek.com>
 *	   Erin Lo <erin.lo@mediatek.com>
 */

/dts-v1/;
#include "mt8183.dtsi"
#include "mt6358.dtsi"

#include <dt-bindings/gpio/gpio.h>

/ {
	model = "MediaTek MT8183 evaluation board";
	compatible = "mediatek,mt8183-evb", "mediatek,mt8183";

	aliases {
		serial0 = &uart0;
	};

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

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

	firmware {
		optee: optee@4fd00000 {
			compatible = "linaro,optee-tz";
			method = "smc";
		};
	};

	backlight_lcd0: backlight_lcd0 {
		compatible = "pwm-backlight";
		pwms = <&pwm0 0 500000>;
		power-supply = <&bl_pp5000>;
		brightness-levels = <0 1023>;
		num-interpolated-steps = <1023>;
		default-brightness-level = <576>;
		status = "okay";
	};

	bl_pp5000: regulator@1 {
		compatible = "regulator-fixed";
		regulator-name = "bl_pp5000";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		regulator-always-on;
		regulator-boot-on;
	};

	usb_p0_vbus: regulator@2 {
		compatible = "regulator-fixed";
		regulator-name = "vbus";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&pio 42 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	sound {
		compatible = "mediatek,mt8183-mt6358-sound";
		mediatek,platform = <&afe>;
		pinctrl-names = "default";
		pinctrl-0 = <&aud_pins>;
		status = "okay";
	};

	vddio_touch_reg: vddio_touch_reg {
		compatible = "regulator-fixed";
		regulator-name = "vddio_touch";
		gpio = <&pio 153 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	ntc@0 {
		compatible = "murata,ncp03wf104";
		pullup-uv = <1800000>;
		pullup-ohm = <390000>;
		pulldown-ohm = <0>;
		io-channels = <&auxadc 0>;
	};
};

&auxadc {
	status = "okay";
};

&pio {
	mmc0_pins_default: mmc0default {
		pins_cmd_dat {
			pinmux = <PINMUX_GPIO123__FUNC_MSDC0_DAT0>,
				 <PINMUX_GPIO128__FUNC_MSDC0_DAT1>,
				 <PINMUX_GPIO125__FUNC_MSDC0_DAT2>,
				 <PINMUX_GPIO132__FUNC_MSDC0_DAT3>,
				 <PINMUX_GPIO126__FUNC_MSDC0_DAT4>,
				 <PINMUX_GPIO129__FUNC_MSDC0_DAT5>,
				 <PINMUX_GPIO127__FUNC_MSDC0_DAT6>,
				 <PINMUX_GPIO130__FUNC_MSDC0_DAT7>,
				 <PINMUX_GPIO122__FUNC_MSDC0_CMD>;
			input-enable;
			bias-pull-up;
		};

		pins_clk {
			pinmux = <PINMUX_GPIO124__FUNC_MSDC0_CLK>;
			bias-pull-down;
		};

		pins_rst {
			pinmux = <PINMUX_GPIO133__FUNC_MSDC0_RSTB>;
			bias-pull-up;
		};
	};

	mmc0_pins_uhs: mmc0@0{
		pins_cmd_dat {
			pinmux = <PINMUX_GPIO123__FUNC_MSDC0_DAT0>,
				 <PINMUX_GPIO128__FUNC_MSDC0_DAT1>,
				 <PINMUX_GPIO125__FUNC_MSDC0_DAT2>,
				 <PINMUX_GPIO132__FUNC_MSDC0_DAT3>,
				 <PINMUX_GPIO126__FUNC_MSDC0_DAT4>,
				 <PINMUX_GPIO129__FUNC_MSDC0_DAT5>,
				 <PINMUX_GPIO127__FUNC_MSDC0_DAT6>,
				 <PINMUX_GPIO130__FUNC_MSDC0_DAT7>,
				 <PINMUX_GPIO122__FUNC_MSDC0_CMD>;
			input-enable;
			drive-strength = <MTK_DRIVE_10mA>;
			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
		};

		pins_clk {
			pinmux = <PINMUX_GPIO124__FUNC_MSDC0_CLK>;
			drive-strength = <MTK_DRIVE_10mA>;
			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
		};

		pins_ds {
			pinmux = <PINMUX_GPIO131__FUNC_MSDC0_DSL>;
			drive-strength = <MTK_DRIVE_10mA>;
			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
		};

		pins_rst {
			pinmux = <PINMUX_GPIO133__FUNC_MSDC0_RSTB>;
			drive-strength = <MTK_DRIVE_10mA>;
			bias-pull-up;
		};
	};

	spi_pins_0: spi0{
		pins_spi{
			pinmux = <PINMUX_GPIO85__FUNC_SPI0_MI>,
				 <PINMUX_GPIO86__FUNC_SPI0_CSB>,
				 <PINMUX_GPIO87__FUNC_SPI0_MO>,
				 <PINMUX_GPIO88__FUNC_SPI0_CLK>;
			bias-disable;
		};
	};

	spi_pins_1: spi1{
		pins_spi{
			pinmux = <PINMUX_GPIO161__FUNC_SPI1_A_MI>,
				 <PINMUX_GPIO162__FUNC_SPI1_A_CSB>,
				 <PINMUX_GPIO163__FUNC_SPI1_A_MO>,
				 <PINMUX_GPIO164__FUNC_SPI1_A_CLK>;
			bias-disable;
		};
	};

	spi_pins_2: spi2{
		pins_spi{
			pinmux = <PINMUX_GPIO0__FUNC_SPI2_CSB>,
				 <PINMUX_GPIO1__FUNC_SPI2_MO>,
				 <PINMUX_GPIO2__FUNC_SPI2_CLK>,
				 <PINMUX_GPIO94__FUNC_SPI2_MI>;
			bias-disable;
		};
	};

	panel_pins_default: panel_pins_default {
		panel_reset {
			pinmux = <PINMUX_GPIO45__FUNC_GPIO45>;
			output-low;
			bias-pull-up;
		};
	};

	pwm0_pin_default: pwm0_pin_default {
		disp_pwm {
			pinmux = <PINMUX_GPIO43__FUNC_DISP_PWM>;
		};
	};

	pwm1_pin_default: pwm1_pin_default {
		pwm {
			pinmux = <PINMUX_GPIO90__FUNC_PWM_A>;
		};
	};

	aud_pins: audiopins {
		pins_bus {
			pinmux = <PINMUX_GPIO136__FUNC_AUD_CLK_MOSI>,
				<PINMUX_GPIO137__FUNC_AUD_SYNC_MOSI>,
				<PINMUX_GPIO138__FUNC_AUD_DAT_MOSI0>,
				<PINMUX_GPIO139__FUNC_AUD_DAT_MOSI1>,
				<PINMUX_GPIO140__FUNC_AUD_CLK_MISO>,
				<PINMUX_GPIO141__FUNC_AUD_SYNC_MISO>,
				<PINMUX_GPIO142__FUNC_AUD_DAT_MISO0>,
				<PINMUX_GPIO143__FUNC_AUD_DAT_MISO1>;
		};
	};

	mmc1_pins_default: mmc1default {
		pins_cmd_dat {
			pinmux = <PINMUX_GPIO31__FUNC_MSDC1_CMD>,
				   <PINMUX_GPIO32__FUNC_MSDC1_DAT0>,
				   <PINMUX_GPIO34__FUNC_MSDC1_DAT1>,
				   <PINMUX_GPIO33__FUNC_MSDC1_DAT2>,
				   <PINMUX_GPIO30__FUNC_MSDC1_DAT3>;
			input-enable;
			bias-pull-up;
		};

		pins_clk {
			pinmux = <PINMUX_GPIO29__FUNC_MSDC1_CLK>;
			input-enable;
			bias-pull-down;
		};

		pins_pmu {
			pinmux = <PINMUX_GPIO178__FUNC_GPIO178>,
				   <PINMUX_GPIO166__FUNC_GPIO166>;
			output-high;
		};
	};

	mmc1_pins_uhs: mmc1@0{
		pins_cmd_dat {
			pinmux = <PINMUX_GPIO31__FUNC_MSDC1_CMD>,
				   <PINMUX_GPIO32__FUNC_MSDC1_DAT0>,
				   <PINMUX_GPIO34__FUNC_MSDC1_DAT1>,
				   <PINMUX_GPIO33__FUNC_MSDC1_DAT2>,
				   <PINMUX_GPIO30__FUNC_MSDC1_DAT3>;
			drive-strength = <MTK_DRIVE_6mA>;
			input-enable;
			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
		};

		pins_clk {
			pinmux = <PINMUX_GPIO29__FUNC_MSDC1_CLK>;
			drive-strength = <MTK_DRIVE_6mA>;
			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
			input-enable;
		};
	};

	i2c0_pins: i2c0 {
		pins_cmd_dat {
			pinmux = <PINMUX_GPIO82__FUNC_SDA0>,
				 <PINMUX_GPIO83__FUNC_SCL0>;
			bias-pull-up;
		};
	};

	i2c6_pins: i2c6 {
		pins_cmd_dat {
			pinmux = <PINMUX_GPIO113__FUNC_SCL6>,
				 <PINMUX_GPIO114__FUNC_SDA6>;
			bias-pull-up;
		};
	};

	ctp_pins_default: ctp_pins_default {
		pins_eint_ctp {
			pinmux = <PINMUX_GPIO176__FUNC_GPIO176>;
			input-enable;
			bias-disable;
		};

		pins_rst_ctp {
			pinmux = <PINMUX_GPIO177__FUNC_GPIO177>;
			output-low;
		};
	};

	ite_pins_default: ite_pins_default {
		pins_rst_ite {
			pinmux = <PINMUX_GPIO160__FUNC_GPIO160>;
			output-high;
		};
	};

	dpi_pin_func: dpi_pin_func {
		pins_cmd_dat {
			pinmux = <PINMUX_GPIO12__FUNC_I2S5_BCK>,
				<PINMUX_GPIO46__FUNC_I2S5_LRCK>,
				<PINMUX_GPIO47__FUNC_I2S5_DO>,
				<PINMUX_GPIO13__FUNC_DBPI_D0>,
				<PINMUX_GPIO14__FUNC_DBPI_D1>,
				<PINMUX_GPIO15__FUNC_DBPI_D2>,
				<PINMUX_GPIO16__FUNC_DBPI_D3>,
				<PINMUX_GPIO17__FUNC_DBPI_D4>,
				<PINMUX_GPIO18__FUNC_DBPI_D5>,
				<PINMUX_GPIO19__FUNC_DBPI_D6>,
				<PINMUX_GPIO20__FUNC_DBPI_D7>,
				<PINMUX_GPIO21__FUNC_DBPI_D8>,
				<PINMUX_GPIO22__FUNC_DBPI_D9>,
				<PINMUX_GPIO23__FUNC_DBPI_D10>,
				<PINMUX_GPIO24__FUNC_DBPI_D11>,
				<PINMUX_GPIO25__FUNC_DBPI_HSYNC>,
				<PINMUX_GPIO26__FUNC_DBPI_VSYNC>,
				<PINMUX_GPIO27__FUNC_DBPI_DE>,
				<PINMUX_GPIO28__FUNC_DBPI_CK>;
		};
	};

	dpi_pin_gpio: dpi_pin_gpio {
		pins_cmd_dat {
			pinmux = <PINMUX_GPIO12__FUNC_GPIO12>,
				<PINMUX_GPIO46__FUNC_GPIO46>,
				<PINMUX_GPIO47__FUNC_GPIO47>,
				<PINMUX_GPIO13__FUNC_GPIO13>,
				<PINMUX_GPIO14__FUNC_GPIO14>,
				<PINMUX_GPIO15__FUNC_GPIO15>,
				<PINMUX_GPIO16__FUNC_GPIO16>,
				<PINMUX_GPIO17__FUNC_GPIO17>,
				<PINMUX_GPIO18__FUNC_GPIO18>,
				<PINMUX_GPIO19__FUNC_GPIO19>,
				<PINMUX_GPIO20__FUNC_GPIO20>,
				<PINMUX_GPIO21__FUNC_GPIO21>,
				<PINMUX_GPIO22__FUNC_GPIO22>,
				<PINMUX_GPIO23__FUNC_GPIO23>,
				<PINMUX_GPIO24__FUNC_GPIO24>,
				<PINMUX_GPIO25__FUNC_GPIO25>,
				<PINMUX_GPIO26__FUNC_GPIO26>,
				<PINMUX_GPIO27__FUNC_GPIO27>,
				<PINMUX_GPIO28__FUNC_GPIO28>;
		};
	};

	usb_pins: usb_pins {
		pins_usb {
			pinmux = <PINMUX_GPIO42__FUNC_USB_DRVVBUS>;
		};
		pins_iddig {
			pinmux = <PINMUX_GPIO41__FUNC_IDDIG>;
			mediatek,pull-up-adv = <3>;
		};
	};
};

&spi0 {
	pinctrl-names = "default";
	pinctrl-0 = <&spi_pins_0>;
	mediatek,pad-select = <0>;
	status = "okay";
};

&spi1 {
	pinctrl-names = "default";
	pinctrl-0 = <&spi_pins_1>;
	mediatek,pad-select = <0>;
	status = "okay";
};

&spi2 {
	pinctrl-names = "default";
	pinctrl-0 = <&spi_pins_2>;
	mediatek,pad-select = <0>;
	status = "okay";
};

&cci {
	proc-supply = <&mt6358_vproc12_reg>;
};

&cpu0 {
	proc-supply = <&mt6358_vproc12_reg>;
};

&cpu1 {
	proc-supply = <&mt6358_vproc12_reg>;
};

&cpu2 {
	proc-supply = <&mt6358_vproc12_reg>;
};

&cpu3 {
	proc-supply = <&mt6358_vproc12_reg>;
};

&cpu4 {
	proc-supply = <&mt6358_vproc11_reg>;
};

&cpu5 {
	proc-supply = <&mt6358_vproc11_reg>;
};

&cpu6 {
	proc-supply = <&mt6358_vproc11_reg>;
};

&cpu7 {
	proc-supply = <&mt6358_vproc11_reg>;
};

&svs_cpu_little {
	vcpu-little-supply = <&mt6358_vproc12_reg>;
};

&svs_cpu_big {
	vcpu-big-supply = <&mt6358_vproc11_reg>;
};

&svs_cci {
	vcci-supply = <&mt6358_vproc12_reg>;
};

&svs_gpu {
	vgpu-spply = <&mt6358_vgpu_reg>;
};

&scpsys {
	mfg-supply = <&mt6358_vgpu_reg>;
};

&uart0 {
	status = "okay";
};

&gpu {
	supply-names = "mali","shadercores";
	mali-supply = <&mt6358_vgpu_reg>;
	shadercores-supply = <&mt6358_vsram_gpu_reg>;
	operating-points-v2 = <&gpu_opp_table>;
	power_model@0 {
		compatible = "arm,mali-simple-power-model";
		static-coefficient = <2427750>;
		dynamic-coefficient = <4687>;
		ts = <20000 2000 (-20) 2>;
		thermal-zone = "cpu_thermal";
	};
	power_model@1 {
		compatible = "arm,mali-g72-power-model";
		scale = <15000>;
	};
};

&mmc0 {
	status = "okay";
	pinctrl-names = "default", "state_uhs";
	pinctrl-0 = <&mmc0_pins_default>;
	pinctrl-1 = <&mmc0_pins_uhs>;
	bus-width = <8>;
	max-frequency = <200000000>;
	cap-mmc-highspeed;
	mmc-hs200-1_8v;
	mmc-hs400-1_8v;
	cap-mmc-hw-reset;
	no-sdio;
	no-sd;
	hs400-ds-delay = <0x12814>;
	vmmc-supply = <&mt6358_vemc_reg>;
	vqmmc-supply = <&mt6358_vio18_reg>;
	assigned-clocks = <&topckgen CLK_TOP_MUX_MSDC50_0>;
	assigned-clock-parents = <&topckgen CLK_TOP_MSDCPLL_CK>;
	non-removable;
};

&mipi_tx0 {
	status = "okay";
};

&pwm0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pwm0_pin_default>;
};

&pwm1 {
	status = "okay";
	pinctrl-0 = <&pwm1_pin_default>;
	pinctrl-names = "default";
};

&dpi0 {
	dpi_dual_edge;
	dpi_pin_mode_swap;
	pinctrl-names = "gpiomode", "dpimode";
	pinctrl-0 = <&dpi_pin_gpio>;
	pinctrl-1 = <&dpi_pin_func>;
	status = "okay";
	port {
		dpi_out: endpoint {
			remote-endpoint = <&it66121_in>;
		};
	};
};

&dsi0 {
	status = "okay";
	#address-cells = <1>;
	#size-cells = <0>;

	panel: panel@0 {
		compatible = "sharp,nt35532";
		reg = <0>;
		pinctrl-names = "default";
		pinctrl-0 = <&panel_pins_default>;
		backlight = <&backlight_lcd0>;
		reset-gpios = <&pio 45 0>;
		pwr-gpios = <&pio 158 0>;
		pwr2-gpios = <&pio 159 0>;
		status = "okay";
		port {
			panel_in: endpoint {
				remote-endpoint = <&dsi_out>;
			};
		};
	};

	ports {
		port {
			dsi_out: endpoint {
				remote-endpoint = <&panel_in>;
			};
		};
	};
};

&ssusb {
	pinctrl-names = "default";
	pinctrl-0 = <&usb_pins>;
	mediatek,force-vbus;
	usb-role-switch;
	maximum-speed = "high-speed";
	dr_mode = "otg";
	vusb33-supply = <&mt6358_vusb_reg>;
	vbus-supply = <&usb_p0_vbus>;
	status = "okay";
	connector {
		compatible = "gpio-usb-b-connector", "usb-b-connector";
		type = "mini";
		id-gpios = <&pio 41 GPIO_ACTIVE_HIGH>;
		vbus-supply = <&usb_p0_vbus>;
	};
};

&usb_host {
	vusb33-supply = <&mt6358_vusb_reg>;
	vbus-supply = <&usb_p0_vbus>;
	status = "okay";
};

&mt6358codec {
	Avdd-supply = <&mt6358_vaud28_reg>;
};

&mmc1 {
	status = "okay";
	pinctrl-names = "default", "state_uhs";
	pinctrl-0 = <&mmc1_pins_default>;
	pinctrl-1 = <&mmc1_pins_uhs>;
	bus-width = <4>;
	max-frequency = <200000000>;
	cap-sd-highspeed;
	sd-uhs-sdr50;
	sd-uhs-sdr104;
	cap-sdio-irq;
	no-mmc;
	no-sd;
	vmmc-supply = <&mt6358_vmch_reg>;
	vqmmc-supply = <&mt6358_vmc_reg>;
	keep-power-in-suspend;
	enable-sdio-wakeup;
	non-removable;
};

&i2c0 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c0_pins>;
	status = "okay";
	clock-frequency = <400000>;
	#address-cells = <1>;
	#size-cells = <0>;

	gt5688@5d {
		compatible = "goodix,gt5688";
		reg = <0x5d>;
		pinctrl-names = "default";
		pinctrl-0 = <&ctp_pins_default>;
		interrupt-parent = <&pio>;
		interrupts = <189 IRQ_TYPE_EDGE_FALLING>;
		irq-gpios = <&pio 176 GPIO_ACTIVE_HIGH>;
		reset-gpios = <&pio 177 GPIO_ACTIVE_HIGH>;
		AVDD28-supply = <&mt6358_vldo28_reg>;
		VDDIO-supply = <&vddio_touch_reg>;
	};
};

&i2c6 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c6_pins>;
	status = "okay";
	clock-frequency = <400000>;
	#address-cells = <1>;
	#size-cells = <0>;

	it66121hdmitx: it66121hdmitx@4c {
		compatible = "ite,it66121";
		pinctrl-names = "default";
		pinctrl-0 = <&ite_pins_default>;
		vcn33-supply = <&mt6358_vcn33_wifi_reg>;
		vcn18-supply = <&mt6358_vcn18_reg>;
		vrf12-supply = <&mt6358_vrf12_reg>;
		reset-gpios = <&pio 160 GPIO_ACTIVE_LOW>;
		interrupt-parent = <&pio>;
		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
		reg = <0x4c>;
		pclk-dual-edge;

		port {
			it66121_in: endpoint {
				remote-endpoint = <&dpi_out>;
			};
		};
	};
};
