Commit cd894e27 authored by Enric Balletbo i Serra's avatar Enric Balletbo i Serra Committed by Matthias Brugger
Browse files

arm64: dts: mt8183: Add krane-sku176 board



Also known as the Lenovo IdeaPad Duet Chromebook.

There are different krane boards with shared resources, hence a
mt8183-kukui-krane.dtsi was created for easily introduce future new
boards. The same happens with the baseboard codenamed kukui where
different variants, apart from kukui variant can take advantage of the
shared resources.

Signed-off-by: default avatarBen Ho <Ben.Ho@mediatek.com>
[originally created by Ben Ho but adapted and ported to mainline]
Signed-off-by: default avatarEnric Balletbo i Serra <enric.balletbo@collabora.com>
Tested-by: default avatarHsin-Yi Wang <hsinyi@chromium.org>
Link: https://lore.kernel.org/r/20200625101757.101775-8-enric.balletbo@collabora.com


Signed-off-by: default avatarMatthias Brugger <matthias.bgg@gmail.com>
parent 6b3bfa37
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -11,4 +11,5 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-elm-hana.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-elm-hana-rev7.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-evb.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-evb.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-krane-sku176.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8516-pumpkin.dtb
+18 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Copyright 2019 Google LLC
 *
 * Device-tree for Krane sku176.
 *
 * SKU is a 8-bit value (0xb0 == 176):
 *  - Bits 7..4: Panel ID: 0xb (BOE)
 *  - Bits 3..0: SKU ID:   0x0 (default)
 */

/dts-v1/;
#include "mt8183-kukui-krane.dtsi"

/ {
	model = "MediaTek krane sku176 board";
	compatible = "google,krane-sku176", "google,krane", "mediatek,mt8183";
};
+343 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Copyright 2019 Google LLC
 */

#include "mt8183-kukui.dtsi"

/ {
	ppvarn_lcd: ppvarn-lcd {
		compatible = "regulator-fixed";
		regulator-name = "ppvarn_lcd";
		pinctrl-names = "default";
		pinctrl-0 = <&ppvarn_lcd_en>;

		enable-active-high;

		gpio = <&pio 66 GPIO_ACTIVE_HIGH>;
	};

	ppvarp_lcd: ppvarp-lcd {
		compatible = "regulator-fixed";
		regulator-name = "ppvarp_lcd";
		pinctrl-names = "default";
		pinctrl-0 = <&ppvarp_lcd_en>;

		enable-active-high;

		gpio = <&pio 166 GPIO_ACTIVE_HIGH>;
	};

	pp1800_lcd: pp1800-lcd {
		compatible = "regulator-fixed";
		regulator-name = "pp1800_lcd";
		pinctrl-names = "default";
		pinctrl-0 = <&pp1800_lcd_en>;

		enable-active-high;

		gpio = <&pio 36 GPIO_ACTIVE_HIGH>;
	};
};

&bluetooth {
	firmware-name = "nvm_00440302_i2s_eu.bin";
};

&i2c0 {
	status = "okay";

	touchscreen4: touchscreen@5d {
		compatible = "hid-over-i2c";
		reg = <0x5d>;
		pinctrl-names = "default";
		pinctrl-0 = <&open_touch>;

		interrupt-parent = <&pio>;
		interrupts = <155 IRQ_TYPE_EDGE_FALLING>;

		post-power-on-delay-ms = <10>;
		hid-descr-addr = <0x0001>;
	};
};

&mt6358_vcama2_reg {
	regulator-min-microvolt = <2800000>;
	regulator-max-microvolt = <2800000>;
};

&i2c2 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c2_pins>;
	status = "okay";
	clock-frequency = <400000>;

	eeprom@58 {
		compatible = "atmel,24c32";
		reg = <0x58>;
		pagesize = <32>;
	};
};

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

	eeprom@54 {
		compatible = "atmel,24c32";
		reg = <0x54>;
		pagesize = <32>;
	};
};

&pio {
	/* 192 lines */
	gpio-line-names =
		"SPI_AP_EC_CS_L",
		"SPI_AP_EC_MOSI",
		"SPI_AP_EC_CLK",
		"I2S3_DO",
		"USB_PD_INT_ODL",
		"",
		"",
		"",
		"",
		"IT6505_HPD_L",
		"I2S3_TDM_D3",
		"SOC_I2C6_1V8_SCL",
		"SOC_I2C6_1V8_SDA",
		"DPI_D0",
		"DPI_D1",
		"DPI_D2",
		"DPI_D3",
		"DPI_D4",
		"DPI_D5",
		"DPI_D6",
		"DPI_D7",
		"DPI_D8",
		"DPI_D9",
		"DPI_D10",
		"DPI_D11",
		"DPI_HSYNC",
		"DPI_VSYNC",
		"DPI_DE",
		"DPI_CK",
		"AP_MSDC1_CLK",
		"AP_MSDC1_DAT3",
		"AP_MSDC1_CMD",
		"AP_MSDC1_DAT0",
		"AP_MSDC1_DAT2",
		"AP_MSDC1_DAT1",
		"",
		"",
		"",
		"",
		"",
		"",
		"OTG_EN",
		"DRVBUS",
		"DISP_PWM",
		"DSI_TE",
		"LCM_RST_1V8",
		"AP_CTS_WIFI_RTS",
		"AP_RTS_WIFI_CTS",
		"SOC_I2C5_1V8_SCL",
		"SOC_I2C5_1V8_SDA",
		"SOC_I2C3_1V8_SCL",
		"SOC_I2C3_1V8_SDA",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"SOC_I2C1_1V8_SDA",
		"SOC_I2C0_1V8_SDA",
		"SOC_I2C0_1V8_SCL",
		"SOC_I2C1_1V8_SCL",
		"AP_SPI_H1_MISO",
		"AP_SPI_H1_CS_L",
		"AP_SPI_H1_MOSI",
		"AP_SPI_H1_CLK",
		"I2S5_BCK",
		"I2S5_LRCK",
		"I2S5_DO",
		"BOOTBLOCK_EN_L",
		"MT8183_KPCOL0",
		"SPI_AP_EC_MISO",
		"UART_DBG_TX_AP_RX",
		"UART_AP_TX_DBG_RX",
		"I2S2_MCK",
		"I2S2_BCK",
		"CLK_5M_WCAM",
		"CLK_2M_UCAM",
		"I2S2_LRCK",
		"I2S2_DI",
		"SOC_I2C2_1V8_SCL",
		"SOC_I2C2_1V8_SDA",
		"SOC_I2C4_1V8_SCL",
		"SOC_I2C4_1V8_SDA",
		"",
		"SCL8",
		"SDA8",
		"FCAM_PWDN_L",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"I2S_PMIC",
		"I2S_PMIC",
		"I2S_PMIC",
		"I2S_PMIC",
		"I2S_PMIC",
		"I2S_PMIC",
		"I2S_PMIC",
		"I2S_PMIC",
		"",
		"",
		"",
		"",
		"",
		"",
		/*
		 * AP_FLASH_WP_L is crossystem ABI. Rev1 schematics
		 * call it BIOS_FLASH_WP_R_L.
		 */
		"AP_FLASH_WP_L",
		"EC_AP_INT_ODL",
		"IT6505_INT_ODL",
		"H1_INT_OD_L",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"AP_SPI_FLASH_MISO",
		"AP_SPI_FLASH_CS_L",
		"AP_SPI_FLASH_MOSI",
		"AP_SPI_FLASH_CLK",
		"DA7219_IRQ",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"",
		"";

	ppvarp_lcd_en: ppvarp-lcd-en {
		pins1 {
			pinmux = <PINMUX_GPIO66__FUNC_GPIO66>;
			output-low;
		};
	};

	ppvarn_lcd_en: ppvarn-lcd-en {
		pins1 {
			pinmux = <PINMUX_GPIO166__FUNC_GPIO166>;
			output-low;
		};
	};

	pp1800_lcd_en: pp1800-lcd-en {
		pins1 {
			pinmux = <PINMUX_GPIO36__FUNC_GPIO36>;
			output-low;
		};
	};

	open_touch: open_touch {
		irq_pin {
			pinmux = <PINMUX_GPIO155__FUNC_GPIO155>;
			input-enable;
			bias-pull-up;
		};

		rst_pin {
			pinmux = <PINMUX_GPIO156__FUNC_GPIO156>;

			/*
			 * The pen driver doesn't currently support  driving
			 * this reset line.  By specifying output-high here
			 * we're relying on the fact that this pin has a default
			 * pulldown at boot (which makes sure the pen was in
			 * reset if it was powered) and then we set it high here
			 * to take it out of reset.  Better would be if the pen
			 * driver could control this and we could remove
			 * "output-high" here.
			 */
			output-high;
		};
	};
};

&qca_wifi {
	qcom,ath10k-calibration-variant = "LE_Krane";
};
+788 −0
Original line number Diff line number Diff line
// 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>
 */

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

/ {
	aliases {
		serial0 = &uart0;
	};

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

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

	clk32k: oscillator1 {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <32768>;
		clock-output-names = "clk32k";
	};

	it6505_pp18_reg: regulator0 {
		compatible = "regulator-fixed";
		regulator-name = "it6505_pp18";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		gpio = <&pio 178 0>;
		enable-active-high;
	};

	lcd_pp3300: regulator1 {
		compatible = "regulator-fixed";
		regulator-name = "lcd_pp3300";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
		regulator-boot-on;
	};

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

	mmc1_fixed_power: regulator3 {
		compatible = "regulator-fixed";
		regulator-name = "mmc1_power";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	mmc1_fixed_io: regulator4 {
		compatible = "regulator-fixed";
		regulator-name = "mmc1_io";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

	pp1800_alw: regulator5 {
		compatible = "regulator-fixed";
		regulator-name = "pp1800_alw";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

	pp3300_alw: regulator6 {
		compatible = "regulator-fixed";
		regulator-name = "pp3300_alw";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	max98357a: codec0 {
		compatible = "maxim,max98357a";
		sdmode-gpios = <&pio 175 0>;
	};

	btsco: codec1 {
		compatible = "linux,bt-sco";
	};

	wifi_pwrseq: wifi-pwrseq {
		compatible = "mmc-pwrseq-simple";
		pinctrl-names = "default";
		pinctrl-0 = <&wifi_pins_pwrseq>;

		/* Toggle WIFI_ENABLE to reset the chip. */
		reset-gpios = <&pio 119 1>;
	};

	wifi_wakeup: wifi-wakeup {
		compatible = "gpio-keys";
		pinctrl-names = "default";
		pinctrl-0 = <&wifi_pins_wakeup>;

		wowlan {
			label = "Wake on WiFi";
			gpios = <&pio 113 GPIO_ACTIVE_HIGH>;
			linux,code = <KEY_WAKEUP>;
			wakeup-source;
		};
	};

	tboard_thermistor1: thermal-sensor1 {
		compatible = "generic-adc-thermal";
		#thermal-sensor-cells = <0>;
		io-channels = <&auxadc 0>;
		io-channel-names = "sensor-channel";
		temperature-lookup-table = <    (-5000) 4241
						0 4063
						5000 3856
						10000 3621
						15000 3364
						20000 3091
						25000 2810
						30000 2526
						35000 2247
						40000 1982
						45000 1734
						50000 1507
						55000 1305
						60000 1122
						65000 964
						70000 827
						75000 710
						80000 606
						85000 519
						90000 445
						95000 382
						100000 330
						105000 284
						110000 245
						115000 213
						120000 183
						125000 161>;
	};

	tboard_thermistor2: thermal-sensor2 {
		compatible = "generic-adc-thermal";
		#thermal-sensor-cells = <0>;
		io-channels = <&auxadc 1>;
		io-channel-names = "sensor-channel";
		temperature-lookup-table = <    (-5000) 4241
						0 4063
						5000 3856
						10000 3621
						15000 3364
						20000 3091
						25000 2810
						30000 2526
						35000 2247
						40000 1982
						45000 1734
						50000 1507
						55000 1305
						60000 1122
						65000 964
						70000 827
						75000 710
						80000 606
						85000 519
						90000 445
						95000 382
						100000 330
						105000 284
						110000 245
						115000 213
						120000 183
						125000 161>;
	};
};

&auxadc {
	status = "okay";
};

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

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

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

&i2c3 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c3_pins>;
	status = "okay";
	clock-frequency = <100000>;
	#address-cells = <1>;
	#size-cells = <0>;
};

&i2c5 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c5_pins>;
	status = "okay";
	clock-frequency = <100000>;
	#address-cells = <1>;
	#size-cells = <0>;
};

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

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

&mmc1 {
	status = "okay";
	pinctrl-names = "default", "state_uhs";
	pinctrl-0 = <&mmc1_pins_default>;
	pinctrl-1 = <&mmc1_pins_uhs>;
	vmmc-supply = <&mmc1_fixed_power>;
	vqmmc-supply = <&mmc1_fixed_io>;
	mmc-pwrseq = <&wifi_pwrseq>;
	bus-width = <4>;
	max-frequency = <200000000>;
	drv-type = <2>;
	cap-sd-highspeed;
	sd-uhs-sdr50;
	sd-uhs-sdr104;
	keep-power-in-suspend;
	enable-sdio-wakeup;
	cap-sdio-irq;
	non-removable;
	no-mmc;
	no-sd;
	assigned-clocks = <&topckgen CLK_TOP_MUX_MSDC30_1>;
	assigned-clock-parents = <&topckgen CLK_TOP_MSDCPLL_D2>;
	#address-cells = <1>;
	#size-cells = <0>;

	qca_wifi: qca-wifi@1 {
		compatible = "qcom,ath10k";
		reg = <1>;
	};
};

&mt6358_vdram2_reg {
	regulator-always-on;
};

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

&mt6358_vsim1_reg {
	regulator-min-microvolt = <2700000>;
	regulator-max-microvolt = <2700000>;
};

&mt6358_vsim2_reg {
	regulator-min-microvolt = <2700000>;
	regulator-max-microvolt = <2700000>;
};

&pio {
	bt_pins: bt-pins {
		pins_bt_en {
			pinmux = <PINMUX_GPIO120__FUNC_GPIO120>;
			output-low;
		};
	};

	ec_ap_int_odl: ec_ap_int_odl {
		pins1 {
			pinmux = <PINMUX_GPIO151__FUNC_GPIO151>;
			input-enable;
			bias-pull-up;
		};
	};

	h1_int_od_l: h1_int_od_l {
		pins1 {
			pinmux = <PINMUX_GPIO153__FUNC_GPIO153>;
			input-enable;
		};
	};

	i2c0_pins: i2c0 {
		pins_bus {
			pinmux = <PINMUX_GPIO82__FUNC_SDA0>,
				 <PINMUX_GPIO83__FUNC_SCL0>;
			mediatek,pull-up-adv = <3>;
			mediatek,drive-strength-adv = <00>;
		};
	};

	i2c1_pins: i2c1 {
		pins_bus {
			pinmux = <PINMUX_GPIO81__FUNC_SDA1>,
				 <PINMUX_GPIO84__FUNC_SCL1>;
			mediatek,pull-up-adv = <3>;
			mediatek,drive-strength-adv = <00>;
		};
	};

	i2c2_pins: i2c2 {
		pins_bus {
			pinmux = <PINMUX_GPIO103__FUNC_SCL2>,
				 <PINMUX_GPIO104__FUNC_SDA2>;
			bias-disable;
			mediatek,drive-strength-adv = <00>;
		};
	};

	i2c3_pins: i2c3 {
		pins_bus {
			pinmux = <PINMUX_GPIO50__FUNC_SCL3>,
				 <PINMUX_GPIO51__FUNC_SDA3>;
			mediatek,pull-up-adv = <3>;
			mediatek,drive-strength-adv = <00>;
		};
	};

	i2c4_pins: i2c4 {
		pins_bus {
			pinmux = <PINMUX_GPIO105__FUNC_SCL4>,
				 <PINMUX_GPIO106__FUNC_SDA4>;
			bias-disable;
			mediatek,drive-strength-adv = <00>;
		};
	};

	i2c5_pins: i2c5 {
		pins_bus {
			pinmux = <PINMUX_GPIO48__FUNC_SCL5>,
				 <PINMUX_GPIO49__FUNC_SDA5>;
			mediatek,pull-up-adv = <3>;
			mediatek,drive-strength-adv = <00>;
		};
	};

	i2c6_pins: i2c6 {
		pins_bus {
			pinmux = <PINMUX_GPIO11__FUNC_SCL6>,
				 <PINMUX_GPIO12__FUNC_SDA6>;
			bias-disable;
		};
	};

	mmc0_pins_default: mmc0-pins-default {
		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_14mA>;
			mediatek,pull-up-adv = <01>;
		};

		pins_clk {
			pinmux = <PINMUX_GPIO124__FUNC_MSDC0_CLK>;
			drive-strength = <MTK_DRIVE_14mA>;
			mediatek,pull-down-adv = <10>;
		};

		pins_rst {
			pinmux = <PINMUX_GPIO133__FUNC_MSDC0_RSTB>;
			drive-strength = <MTK_DRIVE_14mA>;
			mediatek,pull-down-adv = <01>;
		};
	};

	mmc0_pins_uhs: mmc0-pins-uhs {
		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_14mA>;
			mediatek,pull-up-adv = <01>;
		};

		pins_clk {
			pinmux = <PINMUX_GPIO124__FUNC_MSDC0_CLK>;
			drive-strength = <MTK_DRIVE_14mA>;
			mediatek,pull-down-adv = <10>;
		};

		pins_ds {
			pinmux = <PINMUX_GPIO131__FUNC_MSDC0_DSL>;
			drive-strength = <MTK_DRIVE_14mA>;
			mediatek,pull-down-adv = <10>;
		};

		pins_rst {
			pinmux = <PINMUX_GPIO133__FUNC_MSDC0_RSTB>;
			drive-strength = <MTK_DRIVE_14mA>;
			mediatek,pull-up-adv = <01>;
		};
	};

	mmc1_pins_default: mmc1-pins-default {
		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;
			mediatek,pull-up-adv = <10>;
		};

		pins_clk {
			pinmux = <PINMUX_GPIO29__FUNC_MSDC1_CLK>;
			input-enable;
			mediatek,pull-down-adv = <10>;
		};
	};

	mmc1_pins_uhs: mmc1-pins-uhs {
		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;
			mediatek,pull-up-adv = <10>;
		};

		pins_clk {
			pinmux = <PINMUX_GPIO29__FUNC_MSDC1_CLK>;
			drive-strength = <MTK_DRIVE_8mA>;
			mediatek,pull-down-adv = <10>;
			input-enable;
		};
	};

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

	spi1_pins: 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;
		};
	};

	spi2_pins: spi2 {
		pins_spi{
			pinmux = <PINMUX_GPIO0__FUNC_SPI2_CSB>,
				 <PINMUX_GPIO1__FUNC_SPI2_MO>,
				 <PINMUX_GPIO2__FUNC_SPI2_CLK>;
			bias-disable;
		};
		pins_spi_mi {
			pinmux = <PINMUX_GPIO94__FUNC_SPI2_MI>;
			mediatek,pull-down-adv = <00>;
		};
	};

	spi3_pins: spi3 {
		pins_spi{
			pinmux = <PINMUX_GPIO21__FUNC_SPI3_MI>,
				 <PINMUX_GPIO22__FUNC_SPI3_CSB>,
				 <PINMUX_GPIO23__FUNC_SPI3_MO>,
				 <PINMUX_GPIO24__FUNC_SPI3_CLK>;
			bias-disable;
		};
	};

	spi4_pins: spi4 {
		pins_spi{
			pinmux = <PINMUX_GPIO17__FUNC_SPI4_MI>,
				 <PINMUX_GPIO18__FUNC_SPI4_CSB>,
				 <PINMUX_GPIO19__FUNC_SPI4_MO>,
				 <PINMUX_GPIO20__FUNC_SPI4_CLK>;
			bias-disable;
		};
	};

	spi5_pins: spi5 {
		pins_spi{
			pinmux = <PINMUX_GPIO13__FUNC_SPI5_MI>,
				 <PINMUX_GPIO14__FUNC_SPI5_CSB>,
				 <PINMUX_GPIO15__FUNC_SPI5_MO>,
				 <PINMUX_GPIO16__FUNC_SPI5_CLK>;
			bias-disable;
		};
	};

	uart0_pins_default: uart0-pins-default {
		pins_rx {
			pinmux = <PINMUX_GPIO95__FUNC_URXD0>;
			input-enable;
			bias-pull-up;
		};
		pins_tx {
			pinmux = <PINMUX_GPIO96__FUNC_UTXD0>;
		};
	};

	uart1_pins_default: uart1-pins-default {
		pins_rx {
			pinmux = <PINMUX_GPIO121__FUNC_URXD1>;
			input-enable;
			bias-pull-up;
		};
		pins_tx {
			pinmux = <PINMUX_GPIO115__FUNC_UTXD1>;
		};
		pins_rts {
			pinmux = <PINMUX_GPIO47__FUNC_URTS1>;
			output-enable;
		};
		pins_cts {
			pinmux = <PINMUX_GPIO46__FUNC_UCTS1>;
			input-enable;
		};
	};

	uart1_pins_sleep: uart1-pins-sleep {
		pins_rx {
			pinmux = <PINMUX_GPIO121__FUNC_GPIO121>;
			input-enable;
			bias-pull-up;
		};
		pins_tx {
			pinmux = <PINMUX_GPIO115__FUNC_UTXD1>;
		};
		pins_rts {
			pinmux = <PINMUX_GPIO47__FUNC_URTS1>;
			output-enable;
		};
		pins_cts {
			pinmux = <PINMUX_GPIO46__FUNC_UCTS1>;
			input-enable;
		};
	};

	wifi_pins_pwrseq: wifi-pins-pwrseq {
		pins_wifi_enable {
			pinmux = <PINMUX_GPIO119__FUNC_GPIO119>;
			output-low;
		};
	};

	wifi_pins_wakeup: wifi-pins-wakeup {
		pins_wifi_wakeup {
			pinmux = <PINMUX_GPIO113__FUNC_GPIO113>;
			input-enable;
		};
	};
};

&soc_data {
	status = "okay";
};

&spi0 {
	pinctrl-names = "default";
	pinctrl-0 = <&spi0_pins>;
	mediatek,pad-select = <0>;
	status = "okay";
	cs-gpios = <&pio 86 GPIO_ACTIVE_LOW>;

	cr50@0 {
		compatible = "google,cr50";
		reg = <0>;
		spi-max-frequency = <1000000>;
		pinctrl-names = "default";
		pinctrl-0 = <&h1_int_od_l>;
		interrupt-parent = <&pio>;
		interrupts = <153 IRQ_TYPE_EDGE_RISING>;
	};
};

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

	w25q64dw: spi-flash@0 {
		compatible = "winbond,w25q64dw", "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <25000000>;
	};
};

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

	cros_ec: cros-ec@0 {
		compatible = "google,cros-ec-spi";
		reg = <0>;
		spi-max-frequency = <3000000>;
		interrupt-parent = <&pio>;
		interrupts = <151 IRQ_TYPE_LEVEL_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&ec_ap_int_odl>;

		i2c_tunnel: i2c-tunnel {
			compatible = "google,cros-ec-i2c-tunnel";
			google,remote-bus = <1>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		usbc_extcon: extcon0 {
			compatible = "google,extcon-usbc-cros-ec";
			google,usb-port-id = <0>;
		};
	};
};

&spi3 {
	pinctrl-names = "default";
	pinctrl-0 = <&spi3_pins>;
	mediatek,pad-select = <0>;
	status = "disabled";
};

&spi4 {
	pinctrl-names = "default";
	pinctrl-0 = <&spi4_pins>;
	mediatek,pad-select = <0>;
	status = "disabled";
};

&spi5 {
	pinctrl-names = "default";
	pinctrl-0 = <&spi5_pins>;
	mediatek,pad-select = <0>;
	status = "disabled";
};

&ssusb {
	dr_mode = "host";
	wakeup-source;
	vusb33-supply = <&mt6358_vusb_reg>;
	status = "okay";
};

&u3phy {
	status = "okay";
};

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

&uart1 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&uart1_pins_default>;
	pinctrl-1 = <&uart1_pins_sleep>;
	status = "okay";
	interrupts-extended = <&sysirq GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>,
			      <&pio 121 IRQ_TYPE_EDGE_FALLING>;

	bluetooth: bluetooth {
		pinctrl-names = "default";
		pinctrl-0 = <&bt_pins>;
		status = "okay";
		compatible = "qcom,qca6174-bt";
		enable-gpios = <&pio 120 0>;
		clocks = <&clk32k>;
		firmware-name = "nvm_00440302_i2s.bin";
	};
};

&usb_host {
	#address-cells = <1>;
	#size-cells = <0>;
	vusb33-supply = <&mt6358_vusb_reg>;
	status = "okay";

	hub@1 {
		compatible = "usb5e3,610";
		reg = <1>;
	};
};

#include <arm/cros-ec-keyboard.dtsi>
#include <arm/cros-ec-sbs.dtsi>