]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: mediatek: mt8195-cherry: Introduce the MT8195 Dojo Chromebook
authorAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Thu, 14 Mar 2024 10:35:00 +0000 (11:35 +0100)
committerAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Thu, 27 Jun 2024 08:10:21 +0000 (10:10 +0200)
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: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
arch/arm64/boot/dts/mediatek/Makefile
arch/arm64/boot/dts/mediatek/mt8195-cherry-dojo-r1.dts [new file with mode: 0644]
arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi

index cae5fcc7ca0c98a3598d1438bab8dda45832fbcf..3542e42acfff7dcc921f62de888c6212f82dc2e6 100644 (file)
@@ -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
diff --git a/arch/arm64/boot/dts/mediatek/mt8195-cherry-dojo-r1.dts b/arch/arm64/boot/dts/mediatek/mt8195-cherry-dojo-r1.dts
new file mode 100644 (file)
index 0000000..8812384
--- /dev/null
@@ -0,0 +1,114 @@
+// 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";
+};
index e35adff0246909c825e96f3145f8269e8ca2510d..fe5400e17b0f4392628868a91380ab556c070b26 100644 (file)
                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 = <