diff mbox series

[v2,7/7] arm64: dts: mt8183: Add krane-sku176 board

Message ID 20200625101757.101775-8-enric.balletbo@collabora.com (mailing list archive)
State New, archived
Headers show
Series arm64: dts: mediatek: Add support for Lenovo IdeaPad Duet Chromebook | expand

Commit Message

Enric Balletbo i Serra June 25, 2020, 10:17 a.m. UTC
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: Ben Ho <Ben.Ho@mediatek.com>
[originally created by Ben Ho but adapted and ported to mainline]
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
---

Changes in v2:
- Move adding #phy-cells out of this patch. (Matthias Brugger)

 arch/arm64/boot/dts/mediatek/Makefile         |   1 +
 .../mediatek/mt8183-kukui-krane-sku176.dts    |  18 +
 .../boot/dts/mediatek/mt8183-kukui-krane.dtsi | 343 ++++++++
 .../arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 788 ++++++++++++++++++
 4 files changed, 1150 insertions(+)
 create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-krane-sku176.dts
 create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-krane.dtsi
 create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi

Comments

Hsin-Yi Wang July 2, 2020, 5:07 a.m. UTC | #1
On Thu, Jun 25, 2020 at 6:18 PM Enric Balletbo i Serra
<enric.balletbo@collabora.com> wrote:
>
> 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: Ben Ho <Ben.Ho@mediatek.com>
> [originally created by Ben Ho but adapted and ported to mainline]
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Tested-by: Hsin-Yi Wang <hsinyi@chromium.org>
> ---
>
> Changes in v2:
> - Move adding #phy-cells out of this patch. (Matthias Brugger)
>
>  arch/arm64/boot/dts/mediatek/Makefile         |   1 +
>  .../mediatek/mt8183-kukui-krane-sku176.dts    |  18 +
>  .../boot/dts/mediatek/mt8183-kukui-krane.dtsi | 343 ++++++++
>  .../arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 788 ++++++++++++++++++
>  4 files changed, 1150 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-krane-sku176.dts
>  create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui-krane.dtsi
>  create mode 100644 arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi
>
> diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile
> index 848218f55bc1d..708fc60fa589a 100644
> --- a/arch/arm64/boot/dts/mediatek/Makefile
> +++ b/arch/arm64/boot/dts/mediatek/Makefile
> @@ -12,4 +12,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
> diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-krane-sku176.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-krane-sku176.dts
> new file mode 100644
> index 0000000000000..47113e275cb52
> --- /dev/null
> +++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-krane-sku176.dts
> @@ -0,0 +1,18 @@
> +// 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";
> +};
> diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-krane.dtsi b/arch/arm64/boot/dts/mediatek/mt8183-kukui-krane.dtsi
> new file mode 100644
> index 0000000000000..fbc471ccf805f
> --- /dev/null
> +++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-krane.dtsi
> @@ -0,0 +1,343 @@
> +// 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";
> +};
> diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi b/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi
> new file mode 100644
> index 0000000000000..f0a070535b340
> --- /dev/null
> +++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi
> @@ -0,0 +1,788 @@
> +// 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>
> --
> 2.27.0
>
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile
index 848218f55bc1d..708fc60fa589a 100644
--- a/arch/arm64/boot/dts/mediatek/Makefile
+++ b/arch/arm64/boot/dts/mediatek/Makefile
@@ -12,4 +12,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
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-krane-sku176.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-krane-sku176.dts
new file mode 100644
index 0000000000000..47113e275cb52
--- /dev/null
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-krane-sku176.dts
@@ -0,0 +1,18 @@ 
+// 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";
+};
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-krane.dtsi b/arch/arm64/boot/dts/mediatek/mt8183-kukui-krane.dtsi
new file mode 100644
index 0000000000000..fbc471ccf805f
--- /dev/null
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui-krane.dtsi
@@ -0,0 +1,343 @@ 
+// 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";
+};
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi b/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi
new file mode 100644
index 0000000000000..f0a070535b340
--- /dev/null
+++ b/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi
@@ -0,0 +1,788 @@ 
+// 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>