Unverified Commit 52b7afd5 authored by AngeloGioacchino Del Regno's avatar AngeloGioacchino Del Regno
Browse files

arm64: mediatek: mt8195-cherry: Introduce the MT8195 Dojo Chromebook

Add a devicetree for the Cherry Dojo (HP Chromebook x360 13b-ca0002sa)
convertible type machine.

Differences with the already supported Tomato machines include:
 - Different speaker amplifiers (Dual MAX98380, one per channel)
 - I2C Touchscreen is on a different address (though still a HID device)
 - Has NVMe storage on the PCIe0 controller
 - Slightly different keyboard top row keymap

Link: https://lore.kernel.org/r/20240314103500.93158-3-angelogioacchino.delregno@collabora.com


Signed-off-by: default avatarAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
parent a43bf5be
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8192-asurada-hayato-r5-sku2.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8192-asurada-spherion-r0.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8192-asurada-spherion-r4.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8192-evb.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8195-cherry-dojo-r1.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8195-cherry-tomato-r1.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8195-cherry-tomato-r2.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8195-cherry-tomato-r3.dtb
+114 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Copyright (C) 2022 MediaTek Inc.
 */
/dts-v1/;
#include "mt8195-cherry.dtsi"

/ {
	model = "HP Dojo (sku 1, 3, 5, 7) board";
	chassis-type = "convertible";
	compatible = "google,dojo-sku7", "google,dojo-sku5",
		     "google,dojo-sku3", "google,dojo-sku1",
		     "google,dojo", "mediatek,mt8195";
};

&audio_codec {
	compatible = "realtek,rt5682s";
	realtek,amic-delay-ms = <250>;
};

&i2c2 {
	spk_r_amp: amplifier@38 {
		compatible = "maxim,max98390";
		reg = <0x38>;
		reset-gpios = <&pio 100 GPIO_ACTIVE_LOW>;
		sound-name-prefix = "Right";
		#sound-dai-cells = <0>;
	};

	spk_l_amp: amplifier@39 {
		compatible = "maxim,max98390";
		reg = <0x39>;
		sound-name-prefix = "Left";
		#sound-dai-cells = <0>;
	};
};

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

&keyboard_controller {
	linux,keymap = <
		CROS_STD_MAIN_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_KBDILLUMTOGGLE)
		MATRIX_KEY(0x01, 0x09, KEY_PLAYPAUSE)
		MATRIX_KEY(0x00, 0x04, KEY_MICMUTE)
		MATRIX_KEY(0x00, 0x01, KEY_MUTE)
		MATRIX_KEY(0x01, 0x05, KEY_VOLUMEDOWN)
		MATRIX_KEY(0x03, 0x05, KEY_VOLUMEUP)
	>;
};

&pcie0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pcie0_pins_default>;
	status = "okay";
};

&pciephy {
	status = "okay";
};

&pio_default {
	pins-low-power-hdmi-disable {
		pinmux = <PINMUX_GPIO31__FUNC_GPIO31>,
			 <PINMUX_GPIO32__FUNC_GPIO32>,
			 <PINMUX_GPIO33__FUNC_GPIO33>,
			 <PINMUX_GPIO34__FUNC_GPIO34>,
			 <PINMUX_GPIO35__FUNC_GPIO35>;
		input-enable;
		bias-pull-down;
	};
};

&sound {
	compatible = "mediatek,mt8195_mt6359_max98390_rt5682";
	model = "m8195_m98390_5682s";

	audio-routing =
		"Headphone", "HPOL",
		"Headphone", "HPOR",
		"IN1P", "Headset Mic",
		"Right Spk", "Right BE_OUT",
		"Left Spk", "Left BE_OUT";

	spk-playback-dai-link {
		codec {
			sound-dai = <&spk_r_amp>, <&spk_l_amp>;
		};
	};
};

&spk_amplifier {
	/* Disable RT1019P, not present on Dojo */
	status = "disabled";
};
+5 −0
Original line number Diff line number Diff line
@@ -1434,6 +1434,11 @@ MATRIX_KEY(0x01, 0x04, 0) /* T7 */
		MATRIX_KEY(0x02, 0x09, 0)	/* T8 */
		MATRIX_KEY(0x01, 0x09, 0)	/* T9 */
		MATRIX_KEY(0x00, 0x04, 0)	/* T10 */

		/* T11 to T13 are present only on Dojo */
		MATRIX_KEY(0x00, 0x01, 0)	/* T11 */
		MATRIX_KEY(0x01, 0x05, 0)	/* T12 */
		MATRIX_KEY(0x03, 0x05, 0)	/* T13 */
	>;

	linux,keymap = <