arm64: dts: mediatek: mt8186: Add Starmie device
authorWojciech Macek <wmacek@chromium.org>
Fri, 29 Nov 2024 05:57:20 +0000 (05:57 +0000)
committerAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Mon, 9 Dec 2024 11:43:09 +0000 (12:43 +0100)
Add support for Starmie Chromebooks.

Signed-off-by: Wojciech Macek <wmacek@chromium.org>
Link: https://lore.kernel.org/r/20241129055720.3328681-3-wmacek@chromium.org
Reviewed-by: AngeloGioacchino Del Regno <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/mt8186-corsola-starmie-sku0.dts [new file with mode: 0644]
arch/arm64/boot/dts/mediatek/mt8186-corsola-starmie-sku1.dts [new file with mode: 0644]
arch/arm64/boot/dts/mediatek/mt8186-corsola-starmie.dtsi [new file with mode: 0644]

index c6c34d99316bcab6af828b122e86853a4edc03cd..1a493052f4e4b332b7c41fe03f68f19d930f6f60 100644 (file)
@@ -59,6 +59,8 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-magneton-sku393216.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-magneton-sku393217.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-magneton-sku393218.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-rusty-sku196608.dtb
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-starmie-sku0.dtb
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-starmie-sku1.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-steelix-sku131072.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-steelix-sku131073.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-tentacool-sku327681.dtb
diff --git a/arch/arm64/boot/dts/mediatek/mt8186-corsola-starmie-sku0.dts b/arch/arm64/boot/dts/mediatek/mt8186-corsola-starmie-sku0.dts
new file mode 100644 (file)
index 0000000..23e1945
--- /dev/null
@@ -0,0 +1,31 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright 2023 Google LLC
+ */
+
+/dts-v1/;
+#include "mt8186-corsola-starmie.dtsi"
+
+/ {
+       model = "Google Starmie sku0 board";
+       compatible = "google,starmie-sku0", "google,starmie-sku2",
+                    "google,starmie-sku3", "google,starmie",
+                    "mediatek,mt8186";
+};
+
+&panel {
+       compatible = "starry,ili9882t";
+};
+
+&i2c1 {
+       touchscreen: touchscreen@41 {
+               compatible = "ilitek,ili9882t";
+               reg = <0x41>;
+               interrupts-extended = <&pio 12 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&touchscreen_pins>;
+               panel = <&panel>;
+               reset-gpios = <&pio 60 GPIO_ACTIVE_LOW>;
+               vccio-supply = <&mt6366_vio18_reg>;
+       };
+};
diff --git a/arch/arm64/boot/dts/mediatek/mt8186-corsola-starmie-sku1.dts b/arch/arm64/boot/dts/mediatek/mt8186-corsola-starmie-sku1.dts
new file mode 100644 (file)
index 0000000..214b972
--- /dev/null
@@ -0,0 +1,31 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright 2023 Google LLC
+ */
+
+/dts-v1/;
+#include "mt8186-corsola-starmie.dtsi"
+
+/ {
+       model = "Google Starmie sku1 board";
+       compatible = "google,starmie-sku1", "google,starmie-sku4",
+                    "google,starmie", "mediatek,mt8186";
+};
+
+&panel {
+       compatible = "starry,himax83102-j02", "himax,hx83102";
+};
+
+&i2c1 {
+       touchscreen_himax: touchscreen@4f {
+               compatible = "hid-over-i2c";
+               reg = <0x4f>;
+               interrupts-extended = <&pio 12 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&touchscreen_pins>;
+               vdd-supply = <&mt6366_vio18_reg>;
+               panel = <&panel>;
+               post-power-on-delay-ms = <450>;
+               hid-descr-addr = <0x0001>;
+       };
+};
diff --git a/arch/arm64/boot/dts/mediatek/mt8186-corsola-starmie.dtsi b/arch/arm64/boot/dts/mediatek/mt8186-corsola-starmie.dtsi
new file mode 100644 (file)
index 0000000..5ea8bdc
--- /dev/null
@@ -0,0 +1,472 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright 2023 Google LLC
+ */
+
+/dts-v1/;
+#include "mt8186-corsola.dtsi"
+
+/ {
+       en_pp6000_mipi_disp_150ma: en-pp6000-mipi-disp-150ma {
+               compatible = "regulator-fixed";
+               regulator-name = "en_pp6000_mipi_disp_150ma";
+               gpio = <&pio 154 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               pinctrl-names = "default";
+               pinctrl-0 = <&en_pp6000_mipi_disp_150ma_fixed_pins>;
+       };
+
+       /*
+        * Starmie does not have 3.3V display regulator. It is replaced
+        * with 6V module for enabling panel, re-using eDP GPIOs.
+        */
+       /delete-node/ pp3300_disp_x;
+       en_pp6000_mipi_disp: en-regulator-pp6000-mipi-disp {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&edp_panel_fixed_pins>;
+               gpios = <&pio 153 GPIO_ACTIVE_HIGH>;
+               regulator-name = "en_pp6000_mipi_disp";
+               enable-active-high;
+               regulator-enable-ramp-delay = <3000>;
+               vin-supply = <&pp3300_z2>;
+       };
+
+       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) 1492
+                                               0 1413
+                                               5000 1324
+                                               10000 1227
+                                               15000 1121
+                                               20000 1017
+                                               25000 900
+                                               30000 797
+                                               35000 698
+                                               40000 606
+                                               45000 522
+                                               50000 449
+                                               55000 383
+                                               60000 327
+                                               65000 278
+                                               70000 236
+                                               75000 201
+                                               80000 171
+                                               85000 145
+                                               90000 163
+                                               95000 124
+                                               100000 91
+                                               105000 78
+                                               110000 67
+                                               115000 58
+                                               120000 50
+                                               125000 44>;
+       };
+
+       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) 1492
+                                               0 1413
+                                               5000 1324
+                                               10000 1227
+                                               15000 1121
+                                               20000 1017
+                                               25000 900
+                                               30000 797
+                                               35000 698
+                                               40000 606
+                                               45000 522
+                                               50000 449
+                                               55000 383
+                                               60000 327
+                                               65000 278
+                                               70000 236
+                                               75000 201
+                                               80000 171
+                                               85000 145
+                                               90000 163
+                                               95000 124
+                                               100000 91
+                                               105000 78
+                                               110000 67
+                                               115000 58
+                                               120000 50
+                                               125000 44>;
+       };
+};
+
+/*
+ * Starmie does not have EC keyboard. Remove default keyboard controller
+ * and replace it with the driver for side switches.
+ */
+/delete-node/ &keyboard_controller;
+
+&cros_ec {
+       cbas: cbas {
+               compatible = "google,cros-cbas";
+       };
+
+       keyboard-controller {
+               compatible = "google,cros-ec-keyb-switches";
+       };
+};
+
+&dsi0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       panel: panel@0 {
+               /* compatible will be set in board dts */
+               reg = <0>;
+               enable-gpios = <&pio 98 0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&panel_default_pins>;
+               avdd-supply = <&en_pp6000_mipi_disp>;
+               avee-supply = <&en_pp6000_mipi_disp_150ma>;
+               pp1800-supply = <&mt6366_vio18_reg>;
+               backlight = <&backlight_lcd0>;
+               rotation = <270>;
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&dsi_out>;
+                       };
+               };
+       };
+};
+
+&dsi_out {
+       remote-endpoint = <&panel_in>;
+};
+
+&i2c0 {
+       status = "disabled";
+};
+
+&i2c2 {
+       status = "disabled";
+};
+
+&i2c4 {
+       status = "disabled";
+};
+
+&i2c5 {
+       clock-frequency = <400000>;
+};
+
+&mmc1_pins_default {
+       pins-clk {
+               drive-strength = <8>;
+       };
+
+       pins-cmd-dat {
+               drive-strength = <8>;
+       };
+};
+
+&mmc1_pins_uhs {
+       pins-clk {
+               drive-strength = <8>;
+       };
+
+       pins-cmd-dat {
+               drive-strength = <8>;
+       };
+};
+
+&pen_insert {
+       wakeup-event-action = <EV_ACT_ANY>;
+};
+
+&pio {
+       /* 185 lines */
+       gpio-line-names = "TP",
+                         "TP",
+                         "TP",
+                         "I2S0_HP_DI",
+                         "I2S3_DP_SPKR_DO",
+                         "SAR_INT_ODL",
+                         "BT_WAKE_AP_ODL",
+                         "WIFI_INT_ODL",
+                         "DPBRDG_INT_ODL",
+                         "NC",
+                         "EC_AP_HPD_OD",
+                         "NC",
+                         "TCHSCR_INT_1V8_ODL",
+                         "EC_AP_INT_ODL",
+                         "EC_IN_RW_ODL",
+                         "GSC_AP_INT_ODL",
+                         /*
+                          * AP_FLASH_WP_L is crossystem ABI. Rev1 schematics
+                          * call it AP_WP_ODL.
+                          */
+                         "AP_FLASH_WP_L",
+                         "HP_INT_ODL",
+                         "PEN_EJECT_OD",
+                         "NC",
+                         "NC",
+                         "UCAM_SEN_EN",
+                         "NC",
+                         "NC",
+                         "NC",
+                         "I2S2_DP_SPK_MCK",
+                         "I2S2_DP_SPKR_BCK",
+                         "I2S2_DP_SPKR_LRCK",
+                         "NC",
+                         "NC",
+                         "NC",
+                         "NC",
+                         "UART_GSC_TX_AP_RX",
+                         "UART_AP_TX_GSC_RX",
+                         "UART_DBGCON_TX_ADSP_RX",
+                         "UART_ADSP_TX_DBGCON_RX",
+                         "NC",
+                         "TCHSCR_REPORT_DISABLE",
+                         "NC",
+                         "EN_PP1800_DPBRDG",
+                         "SPI_AP_CLK_EC",
+                         "SPI_AP_CS_EC_L",
+                         "SPI_AP_DO_EC_DI",
+                         "SPI_AP_DI_EC_DO",
+                         "SPI_AP_CLK_GSC",
+                         "SPI_AP_CS_GSC_L",
+                         "SPI_AP_DO_GSC_DI",
+                         "SPI_AP_DI_GSC_DO",
+                         "UART_DBGCON_TX_SCP_RX",
+                         "UART_SCP_TX_DBGCON_RX",
+                         "EN_PP1200_CAM_X",
+                         "WLAN_MODULE_RST_L",
+                         "NC",
+                         "NC",
+                         "NC",
+                         "NC",
+                         "I2S1_HP_DO",
+                         "I2S1_HP_BCK",
+                         "I2S1_HP_LRCK",
+                         "I2S1_HP_MCK",
+                         "TCHSCR_RST_1V8_L",
+                         "SPI_AP_CLK_ROM",
+                         "SPI_AP_CS_ROM_L",
+                         "SPI_AP_DO_ROM_DI",
+                         "SPI_AP_DI_ROM_DO",
+                         "NC",
+                         "NC",
+                         "EMMC_STRB",
+                         "EMMC_CLK",
+                         "EMMC_CMD",
+                         "EMMC_RST_L",
+                         "EMMC_DATA0",
+                         "EMMC_DATA1",
+                         "EMMC_DATA2",
+                         "EMMC_DATA3",
+                         "EMMC_DATA4",
+                         "EMMC_DATA5",
+                         "EMMC_DATA6",
+                         "EMMC_DATA7",
+                         "AP_KPCOL0",
+                         "NC",
+                         "NC",
+                         "NC",
+                         "TP",
+                         "SDIO_CLK",
+                         "SDIO_CMD",
+                         "SDIO_DATA0",
+                         "SDIO_DATA1",
+                         "SDIO_DATA2",
+                         "SDIO_DATA3",
+                         "NC",
+                         "NC",
+                         "NC",
+                         "NC",
+                         "NC",
+                         "NC",
+                         "NC",
+                         "MIPI_BL_PWM_1V8",
+                         "DISP_RST_1V8_L",
+                         "MIPI_DPI_CLK",
+                         "MIPI_DPI_VSYNC",
+                         "MIPI_DPI_HSYNC",
+                         "MIPI_DPI_DE",
+                         "MIPI_DPI_D0",
+                         "MIPI_DPI_D1",
+                         "MIPI_DPI_D2",
+                         "MIPI_DPI_D3",
+                         "MIPI_DPI_D4",
+                         "MIPI_DPI_D5",
+                         "MIPI_DPI_D6",
+                         "MIPI_DPI_DA7",
+                         "MIPI_DPI_D8",
+                         "MIPI_DPI_D9",
+                         "MIPI_DPI_D10",
+                         "MIPI_DPI_D11",
+                         "PCM_BT_CLK",
+                         "PCM_BT_SYNC",
+                         "PCM_BT_DI",
+                         "PCM_BT_DO",
+                         "JTAG_TMS_TP",
+                         "JTAG_TCK_TP",
+                         "JTAG_TDI_TP",
+                         "JTAG_TDO_TP",
+                         "JTAG_TRSTN_TP",
+                         "NC",
+                         "NC",
+                         "UCAM_DET_ODL",
+                         "NC",
+                         "NC",
+                         "AP_I2C_TCHSCR_SCL_1V8",
+                         "AP_I2C_TCHSCR_SDA_1V8",
+                         "NC",
+                         "NC",
+                         "AP_I2C_DPBRDG_SCL_1V8",
+                         "AP_I2C_DPBRDG_SDA_1V8",
+                         "NC",
+                         "NC",
+                         "AP_I2C_AUD_SCL_1V8",
+                         "AP_I2C_AUD_SDA_1V8",
+                         "AP_I2C_DISP_SCL_1V8",
+                         "AP_I2C_DISP_SDA_1V8",
+                         "NC",
+                         "NC",
+                         "NC",
+                         "NC",
+                         "SCP_I2C_SENSOR_SCL_1V8",
+                         "SCP_I2C_SENSOR_SDA_1V8",
+                         "AP_EC_WARM_RST_REQ",
+                         "AP_XHCI_INIT_DONE",
+                         "USB3_HUB_RST_L",
+                         "EN_SPKR",
+                         "BEEP_ON",
+                         "AP_DISP_BKLTEN",
+                         "EN_PP6000_MIPI_DISP",
+                         "EN_PP6000_MIPI_DISP_150MA",
+                         "BT_KILL_1V8_L",
+                         "WIFI_KILL_1V8_L",
+                         "PWRAP_SPI0_CSN",
+                         "PWRAP_SPI0_CK",
+                         "PWRAP_SPI0_MO",
+                         "PWRAP_SPI0_MI",
+                         "SRCLKENA0",
+                         "SRCLKENA1",
+                         "SCP_VREQ_VAO",
+                         "AP_RTC_CLK32K",
+                         "AP_PMIC_WDTRST_L",
+                         "AUD_CLK_MOSI",
+                         "AUD_SYNC_MOSI",
+                         "AUD_DAT_MOSI0",
+                         "AUD_DAT_MOSI1",
+                         "AUD_CLK_MISO",
+                         "AUD_SYNC_MISO",
+                         "AUD_DAT_MISO0",
+                         "AUD_DAT_MISO1",
+                         "NC",
+                         "NC",
+                         "NC",
+                         "DPBRDG_RST_L",
+                         "LTE_W_DISABLE_L",
+                         "LTE_SAR_DETECT_L",
+                         "EN_PP3300_LTE_X",
+                         "LTE_PWR_OFF_L",
+                         "LTE_RESET_L",
+                         "TP",
+                         "TP";
+
+       dpi_default_pins: dpi-default-pins {
+               pins-cmd-dat {
+                       pinmux = <PINMUX_GPIO103__FUNC_GPIO103>,
+                                <PINMUX_GPIO104__FUNC_GPIO104>,
+                                <PINMUX_GPIO105__FUNC_GPIO105>,
+                                <PINMUX_GPIO106__FUNC_GPIO106>,
+                                <PINMUX_GPIO107__FUNC_GPIO107>,
+                                <PINMUX_GPIO108__FUNC_GPIO108>,
+                                <PINMUX_GPIO109__FUNC_GPIO109>,
+                                <PINMUX_GPIO110__FUNC_GPIO110>,
+                                <PINMUX_GPIO111__FUNC_GPIO111>,
+                                <PINMUX_GPIO112__FUNC_GPIO112>,
+                                <PINMUX_GPIO113__FUNC_GPIO113>,
+                                <PINMUX_GPIO114__FUNC_GPIO114>,
+                                <PINMUX_GPIO101__FUNC_GPIO101>,
+                                <PINMUX_GPIO100__FUNC_GPIO100>,
+                                <PINMUX_GPIO102__FUNC_GPIO102>,
+                                <PINMUX_GPIO99__FUNC_GPIO99>;
+                       drive-strength = <10>;
+                       output-low;
+               };
+       };
+
+       dpi_func_pins: dpi-func-pins {
+               pins-cmd-dat {
+                       pinmux = <PINMUX_GPIO103__FUNC_DPI_DATA0>,
+                                <PINMUX_GPIO104__FUNC_DPI_DATA1>,
+                                <PINMUX_GPIO105__FUNC_DPI_DATA2>,
+                                <PINMUX_GPIO106__FUNC_DPI_DATA3>,
+                                <PINMUX_GPIO107__FUNC_DPI_DATA4>,
+                                <PINMUX_GPIO108__FUNC_DPI_DATA5>,
+                                <PINMUX_GPIO109__FUNC_DPI_DATA6>,
+                                <PINMUX_GPIO110__FUNC_DPI_DATA7>,
+                                <PINMUX_GPIO111__FUNC_DPI_DATA8>,
+                                <PINMUX_GPIO112__FUNC_DPI_DATA9>,
+                                <PINMUX_GPIO113__FUNC_DPI_DATA10>,
+                                <PINMUX_GPIO114__FUNC_DPI_DATA11>,
+                                <PINMUX_GPIO101__FUNC_DPI_HSYNC>,
+                                <PINMUX_GPIO100__FUNC_DPI_VSYNC>,
+                                <PINMUX_GPIO102__FUNC_DPI_DE>,
+                                <PINMUX_GPIO99__FUNC_DPI_PCLK>;
+                       drive-strength = <10>;
+               };
+       };
+
+       en_pp6000_mipi_disp_150ma_fixed_pins: en_pp6000-mipi-disp-150ma-fixed-pins {
+               pins-en {
+                       pinmux = <PINMUX_GPIO154__FUNC_GPIO154>;
+                       output-low;
+               };
+       };
+
+       panel_default_pins: panel-default-pins {
+               pins-en {
+                       pinmux = <PINMUX_GPIO98__FUNC_GPIO98>;
+                       output-low;
+               };
+       };
+};
+
+&usb_c1 {
+       status = "disabled";
+};
+
+&thermal_zones {
+       tboard1-thermal {
+               polling-delay = <1000>; /* milliseconds */
+               polling-delay-passive = <0>; /* milliseconds */
+               thermal-sensors = <&tboard_thermistor1>;
+       };
+
+       tboard2-thermal {
+               polling-delay = <1000>; /* milliseconds */
+               polling-delay-passive = <0>; /* milliseconds */
+               thermal-sensors = <&tboard_thermistor2>;
+       };
+};
+
+&wifi_pwrseq {
+       reset-gpios = <&pio 51 1>;
+};
+
+/*
+ * Battery on Starmie is using a different address than default.
+ * Remove old node to reuse "battery" alias.
+ */
+/delete-node/ &battery;
+&i2c_tunnel {
+       battery: sbs-battery@f {
+               compatible = "sbs,sbs-battery";
+               reg = <0xf>;
+               sbs,i2c-retry-count = <2>;
+               sbs,poll-retry-count = <1>;
+       };
+};