Unverified Commit 8855d01f authored by Chen-Yu Tsai's avatar Chen-Yu Tsai Committed by AngeloGioacchino Del Regno
Browse files

arm64: dts: mediatek: Add MT8186 Krabby platform based Tentacruel / Tentacool



Tentacruel and Tentacool are MT8186 based Chromebooks based on the
Krabby design.

Tentacruel, also known as the ASUS Chromebook CM14 Flip CM1402F, is a
convertible device with touchscreen and stylus.

Tentacool, also known as the ASUS Chromebook CM14 CM1402C, is a laptop
device. It does not have a touchscreen or stylus.

The two devices both have two variants. The difference is a second
source trackpad controller that shares the same address as the original,
but is incompatible.

The extra SKU IDs for the Tentacruel devices map to different sensor
components attached to the Embedded Controller. These are not visible
to the main processor.

Signed-off-by: default avatarChen-Yu Tsai <wenst@chromium.org>
Acked-by: default avatarConor Dooley <conor.dooley@microchip.com>
Reviewed-by: default avatarAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20240126083802.2728610-7-wenst@chromium.org


Signed-off-by: default avatarAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
parent 449b1322
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -51,6 +51,10 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-kodama-sku32.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-krane-sku0.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-krane-sku176.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-pumpkin.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-tentacool-sku327681.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-tentacool-sku327683.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-tentacruel-sku262144.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-tentacruel-sku262148.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-evb.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8188-evb.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8192-asurada-hayato-r1.dtb
+129 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Copyright 2022 Google LLC
 */

/dts-v1/;
#include "mt8186-corsola.dtsi"
#include <dt-bindings/gpio/gpio.h>

/ {
	aliases {
		i2c4 = &i2c4;
	};
};

&dsi_out {
	remote-endpoint = <&ps8640_in>;
};

&i2c0 {
	clock-frequency = <400000>;

	edp-bridge@8 {
		compatible = "parade,ps8640";
		reg = <0x8>;
		pinctrl-names = "default";
		pinctrl-0 = <&ps8640_pins>;
		powerdown-gpios = <&pio 96 GPIO_ACTIVE_LOW>;
		reset-gpios = <&pio 98 GPIO_ACTIVE_LOW>;
		vdd12-supply = <&mt6366_vrf12_reg>;
		vdd33-supply = <&mt6366_vcn33_reg>;

		ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@0 {
				reg = <0>;

				ps8640_in: endpoint {
					remote-endpoint = <&dsi_out>;
				};
			};

			port@1 {
				reg = <1>;

				ps8640_out: endpoint {
					remote-endpoint = <&panel_in>;
				};
			};
		};

		aux-bus {
			panel {
				compatible = "edp-panel";
				power-supply = <&pp3300_disp_x>;
				backlight = <&backlight_lcd0>;

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

&i2c1 {
	i2c-scl-internal-delay-ns = <10000>;

	touchscreen: touchscreen@10 {
		compatible = "hid-over-i2c";
		reg = <0x10>;
		interrupts-extended = <&pio 12 IRQ_TYPE_LEVEL_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&touchscreen_pins>;
		post-power-on-delay-ms = <10>;
		hid-descr-addr = <0x0001>;
		vdd-supply = <&pp3300_s3>;
	};
};

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

	proximity@28 {
		compatible = "semtech,sx9324";
		reg = <0x28>;
		#io-channel-cells = <1>;
		interrupts-extended = <&pio 5 IRQ_TYPE_LEVEL_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&sar_sensor_pins>;
		vdd-supply = <&mt6366_vio18_reg>;
		svdd-supply = <&mt6366_vio18_reg>;
	};
};

&pio {
	i2c4_pins: i2c4-pins {
		pins-bus {
			pinmux = <PINMUX_GPIO136__FUNC_SDA4>,
				 <PINMUX_GPIO135__FUNC_SCL4>;
			bias-disable;
			drive-strength = <4>;
			input-enable;
		};
	};

	ps8640_pins: ps8640-pins {
		pins-pwrdn-rst {
			pinmux = <PINMUX_GPIO96__FUNC_GPIO96>,
				 <PINMUX_GPIO98__FUNC_GPIO98>;
			output-low;
		};
	};

	sar_sensor_pins: sar-sensor-pins {
		pins-irq {
			pinmux = <PINMUX_GPIO5__FUNC_GPIO5>;
			input-enable;
			bias-pull-up;
		};
	};
};
+57 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Copyright 2022 Google LLC
 */

/dts-v1/;
#include "mt8186-corsola-krabby.dtsi"

/ {
	model = "Google Tentacool board";
	compatible = "google,tentacruel-sku327681", "google,tentacruel", "mediatek,mt8186";
	chassis-type = "laptop";
};

/* Tentacool omits the pen. */
&gpio_keys {
	status = "disabled";
};

/* Tentacool omits the touchscreen; nothing else is on i2c1. */
&i2c1 {
	status = "disabled";
};

&keyboard_controller {
	function-row-physmap = <
		MATRIX_KEY(0x00, 0x02, 0)	/* T1 */
		MATRIX_KEY(0x03, 0x02, 0)	/* T2 */
		MATRIX_KEY(0x02, 0x02, 0)	/* T3 */
		MATRIX_KEY(0x01, 0x02, 0)	/* T4 */
		MATRIX_KEY(0x03, 0x04, 0)	/* T5 */
		MATRIX_KEY(0x02, 0x04, 0)	/* T6 */
		MATRIX_KEY(0x01, 0x04, 0)	/* T7 */
		MATRIX_KEY(0x02, 0x09, 0)	/* T8 */
		MATRIX_KEY(0x01, 0x09, 0)	/* T9 */
		MATRIX_KEY(0x00, 0x04, 0)	/* T10 */
	>;

	linux,keymap = <
		MATRIX_KEY(0x00, 0x02, KEY_BACK)
		MATRIX_KEY(0x03, 0x02, KEY_REFRESH)
		MATRIX_KEY(0x02, 0x02, KEY_ZOOM)
		MATRIX_KEY(0x01, 0x02, KEY_SCALE)
		MATRIX_KEY(0x03, 0x04, KEY_SYSRQ)
		MATRIX_KEY(0x02, 0x04, KEY_BRIGHTNESSDOWN)
		MATRIX_KEY(0x01, 0x04, KEY_BRIGHTNESSUP)
		MATRIX_KEY(0x02, 0x09, KEY_MUTE)
		MATRIX_KEY(0x01, 0x09, KEY_VOLUMEDOWN)
		MATRIX_KEY(0x00, 0x04, KEY_VOLUMEUP)
		CROS_STD_MAIN_KEYMAP
	>;
};

/* Tentacool omits the touchscreen. */
&touchscreen {
	status = "disabled";
};
+24 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Copyright 2023 Google LLC
 */

#include "mt8186-corsola-tentacool-sku327681.dts"

/ {
	compatible = "google,tentacruel-sku327683", "google,tentacruel", "mediatek,mt8186";
};

/* This variant replaces only the trackpad controller. */
&i2c2 {
	/delete-node/ trackpad@15;

	trackpad@15 {
		compatible = "hid-over-i2c";
		reg = <0x15>;
		interrupts-extended = <&pio 11 IRQ_TYPE_LEVEL_LOW>;
		hid-descr-addr = <0x0001>;
		vdd-supply = <&pp3300_s3>;
		wakeup-source;
	};
};
+44 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Copyright 2022 Google LLC
 */

/dts-v1/;
#include "mt8186-corsola-krabby.dtsi"

/ {
	model = "Google Tentacruel board";
	compatible = "google,tentacruel-sku262147", "google,tentacruel-sku262146",
		     "google,tentacruel-sku262145", "google,tentacruel-sku262144",
		     "google,tentacruel", "mediatek,mt8186";
	chassis-type = "convertible";
};

&keyboard_controller {
	function-row-physmap = <
		MATRIX_KEY(0x00, 0x02, 0)	/* T1 */
		MATRIX_KEY(0x03, 0x02, 0)	/* T2 */
		MATRIX_KEY(0x02, 0x02, 0)	/* T3 */
		MATRIX_KEY(0x01, 0x02, 0)	/* T4 */
		MATRIX_KEY(0x03, 0x04, 0)	/* T5 */
		MATRIX_KEY(0x02, 0x04, 0)	/* T6 */
		MATRIX_KEY(0x01, 0x04, 0)	/* T7 */
		MATRIX_KEY(0x02, 0x09, 0)	/* T8 */
		MATRIX_KEY(0x01, 0x09, 0)	/* T9 */
		MATRIX_KEY(0x00, 0x04, 0)	/* T10 */
	>;

	linux,keymap = <
		MATRIX_KEY(0x00, 0x02, KEY_BACK)
		MATRIX_KEY(0x03, 0x02, KEY_REFRESH)
		MATRIX_KEY(0x02, 0x02, KEY_ZOOM)
		MATRIX_KEY(0x01, 0x02, KEY_SCALE)
		MATRIX_KEY(0x03, 0x04, KEY_SYSRQ)
		MATRIX_KEY(0x02, 0x04, KEY_BRIGHTNESSDOWN)
		MATRIX_KEY(0x01, 0x04, KEY_BRIGHTNESSUP)
		MATRIX_KEY(0x02, 0x09, KEY_MUTE)
		MATRIX_KEY(0x01, 0x09, KEY_VOLUMEDOWN)
		MATRIX_KEY(0x00, 0x04, KEY_VOLUMEUP)
		CROS_STD_MAIN_KEYMAP
	>;
};
Loading