Message ID | 20240925080353.2362879-2-jakiela@google.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [1/2] dt-bindings: arm: mediatek: Add MT8186 Chinchou/Chinchou360 Chromebooks | expand |
Il 25/09/24 10:03, Albert Jakieła ha scritto: > The MT8186 Chinchou/Chinchou360, also known as the Asus Chromebook > CZ12/CZ11 Flip, is a clamshell or convertible device with touchscreen, > stylus and extra buttons. > > Signed-off-by: Albert Jakieła <jakiela@google.com> > --- > arch/arm64/boot/dts/mediatek/Makefile | 3 + > .../mediatek/mt8186-corsola-chinchou-sku0.dts | 18 + > .../mediatek/mt8186-corsola-chinchou-sku1.dts | 34 ++ > .../mt8186-corsola-chinchou-sku16.dts | 28 ++ > .../dts/mediatek/mt8186-corsola-chinchou.dtsi | 445 ++++++++++++++++++ > 5 files changed, 528 insertions(+) > create mode 100644 arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku0.dts > create mode 100644 arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku1.dts > create mode 100644 arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku16.dts > create mode 100644 arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou.dtsi > > diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile > index 8fd7b2bb7a15..0db7770e8907 100644 > --- a/arch/arm64/boot/dts/mediatek/Makefile > +++ b/arch/arm64/boot/dts/mediatek/Makefile > @@ -55,6 +55,9 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-kodama-sku32.dtb > dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-krane-sku0.dtb > dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-krane-sku176.dtb > dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-pumpkin.dtb > +dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-chinchou-sku0.dtb > +dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-chinchou-sku1.dtb > +dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-chinchou-sku16.dtb > 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 > diff --git a/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku0.dts b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku0.dts > new file mode 100644 > index 000000000000..29dd92318da1 > --- /dev/null > +++ b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku0.dts > @@ -0,0 +1,18 @@ > +// SPDX-License-Identifier: (GPL-2.0 OR MIT) > +/* > + * Copyright 2023 Google LLC > + */ > + > +/dts-v1/; > +#include "mt8186-corsola-chinchou.dtsi" > + > +/ { > + model = "Google chinchou sku0 board"; > + compatible = "google,chinchou-sku0", "google,chinchou-sku2", > + "google,chinchou-sku4", "google,chinchou-sku5", > + "google,chinchou", "mediatek,mt8186"; > +}; > + > +&gpio_keys { > + status = "disabled"; > +}; > diff --git a/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku1.dts b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku1.dts > new file mode 100644 > index 000000000000..8ba31f81d9ad > --- /dev/null > +++ b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku1.dts > @@ -0,0 +1,34 @@ > +// SPDX-License-Identifier: (GPL-2.0 OR MIT) > +/* > + * Copyright 2023 Google LLC > + */ > + > +/dts-v1/; > +#include "mt8186-corsola-chinchou.dtsi" > + > +/ { > + model = "Google chinchou sku1/sku17 board"; > + compatible = "google,chinchou-sku1", "google,chinchou-sku17", > + "google,chinchou-sku3", "google,chinchou-sku6", > + "google,chinchou-sku7", "google,chinchou-sku20", > + "google,chinchou-sku22", "google,chinchou-sku23", > + "mediatek,mt8186"; > +}; > + > +&i2c1 { > + i2c-scl-internal-delay-ns = <10000>; > + > + touchscreen: touchscreen@41 { > + compatible = "ilitek,ili2901"; > + reg = <0x41>; > + interrupts-extended = <&pio 12 IRQ_TYPE_LEVEL_LOW>; > + pinctrl-names = "default"; > + pinctrl-0 = <&touchscreen_pins>; > + reset-gpios = <&pio 60 GPIO_ACTIVE_LOW>; > + vccio-supply = <&pp1800_tchscr_report_disable>; > + }; > +}; > + > +&gpio_keys { > + status = "disabled"; > +}; > diff --git a/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku16.dts b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku16.dts > new file mode 100644 > index 000000000000..d3378d7ad096 > --- /dev/null > +++ b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku16.dts > @@ -0,0 +1,28 @@ > +// SPDX-License-Identifier: (GPL-2.0 OR MIT) > +/* > + * Copyright 2023 Google LLC > + */ > + > +/dts-v1/; > +#include "mt8186-corsola-chinchou.dtsi" > + > +/ { > + model = "Google chinchou sku16/sku2147483647 board"; > + compatible = "google,chinchou-sku16", "google,chinchou-sku18", > + "google,chinchou-sku19", "google,chinchou-sku21", > + "google,chinchou-sku2147483647", "mediatek,mt8186"; > +}; > + > +&i2c1 { > + i2c-scl-internal-delay-ns = <10000>; > + > + touchscreen: touchscreen@41 { > + compatible = "ilitek,ili2901"; > + reg = <0x41>; > + interrupts-extended = <&pio 12 IRQ_TYPE_LEVEL_LOW>; > + pinctrl-names = "default"; > + pinctrl-0 = <&touchscreen_pins>; > + reset-gpios = <&pio 60 GPIO_ACTIVE_LOW>; > + vccio-supply = <&pp1800_tchscr_report_disable>; > + }; > +}; > diff --git a/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou.dtsi b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou.dtsi > new file mode 100644 > index 000000000000..c77cc43f8442 > --- /dev/null > +++ b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou.dtsi ..snip.. > + > +&mmc1_pins_default { > + pins-clk { > + drive-strength = <MTK_DRIVE_8mA>; Please stop using the meaningless MTK_DRIVE_(x)mA macro. drive-strength = <8>; is enough :-) Cheers, Angelo > + }; > + > + pins-cmd-dat { > + drive-strength = <MTK_DRIVE_8mA>; > + }; > +}; > + > +&mmc1_pins_uhs { > + pins-clk { > + drive-strength = <MTK_DRIVE_8mA>; > + }; > + > + pins-cmd-dat { > + drive-strength = <MTK_DRIVE_8mA>; > + }; > +}; > + > +&sound { > + status = "okay"; > + > + compatible = "mediatek,mt8186-mt6366-rt5650-sound"; You don't need to change this compatible, as the only thing that changes in the actual driver are the dapm_routes. I implemented support for that nice dai-link (standard, kind of) graph so that we stop getting a thousand compatibles for no reason other than routing :-) This should work with (99.9% confident it will, but please test): model = "mt8186_rt5650"; status = "okay"; > + mediatek,adsp = <&adsp>; This property is already set in the node that you're inheriting from mt8186-corsola.dtsi, please drop. > + > + audio-routing = > + "Headphone", "HPOL", > + "Headphone", "HPOR", > + "HDMI1", "TX"; > + > + hs-playback-dai-link { > + codec { > + sound-dai = <&rt5650>; > + }; > + }; > + > + hs-capture-dai-link { > + codec { > + sound-dai = <&rt5650>; > + }; > + }; > + > + spk-share-dai-link { > + }; Empty nodes are meaningless (and you're inheriting this dai link from mt8186-corsola.dtsi as well). Drop. > + > + spk-hdmi-playback-dai-link { > + codec { > + sound-dai = <&it6505dptx>; > + }; > + }; > +}; > + > +&wifi_enable_pin { > + pins-wifi-enable { > + pinmux = <PINMUX_GPIO51__FUNC_GPIO51>; > + }; > +}; > + > +&wifi_pwrseq { > + reset-gpios = <&pio 51 GPIO_ACTIVE_LOW>; > +}; > + ..snip.. > + > +&pen_insert { > + wakeup-event-action = <EV_ACT_ANY>; Why is this set to EV_ACT_ANY on Chinchou but not on the other Corsola devices? Is there any specific reason? Cheers, Angelo
On Thu, Sep 26, 2024 at 2:27 AM AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> wrote: > > Il 25/09/24 10:03, Albert Jakieła ha scritto: > > The MT8186 Chinchou/Chinchou360, also known as the Asus Chromebook > > CZ12/CZ11 Flip, is a clamshell or convertible device with touchscreen, > > stylus and extra buttons. > > > > Signed-off-by: Albert Jakieła <jakiela@google.com> > > --- > > arch/arm64/boot/dts/mediatek/Makefile | 3 + > > .../mediatek/mt8186-corsola-chinchou-sku0.dts | 18 + > > .../mediatek/mt8186-corsola-chinchou-sku1.dts | 34 ++ > > .../mt8186-corsola-chinchou-sku16.dts | 28 ++ > > .../dts/mediatek/mt8186-corsola-chinchou.dtsi | 445 ++++++++++++++++++ > > 5 files changed, 528 insertions(+) > > create mode 100644 arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku0.dts > > create mode 100644 arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku1.dts > > create mode 100644 arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku16.dts > > create mode 100644 arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou.dtsi > > > > diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile > > index 8fd7b2bb7a15..0db7770e8907 100644 > > --- a/arch/arm64/boot/dts/mediatek/Makefile > > +++ b/arch/arm64/boot/dts/mediatek/Makefile > > @@ -55,6 +55,9 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-kodama-sku32.dtb > > dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-krane-sku0.dtb > > dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-krane-sku176.dtb > > dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-pumpkin.dtb > > +dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-chinchou-sku0.dtb > > +dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-chinchou-sku1.dtb > > +dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-chinchou-sku16.dtb > > 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 > > diff --git a/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku0.dts b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku0.dts > > new file mode 100644 > > index 000000000000..29dd92318da1 > > --- /dev/null > > +++ b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku0.dts > > @@ -0,0 +1,18 @@ > > +// SPDX-License-Identifier: (GPL-2.0 OR MIT) > > +/* > > + * Copyright 2023 Google LLC > > + */ > > + > > +/dts-v1/; > > +#include "mt8186-corsola-chinchou.dtsi" > > + > > +/ { > > + model = "Google chinchou sku0 board"; > > + compatible = "google,chinchou-sku0", "google,chinchou-sku2", > > + "google,chinchou-sku4", "google,chinchou-sku5", > > + "google,chinchou", "mediatek,mt8186"; > > +}; > > + > > +&gpio_keys { > > + status = "disabled"; > > +}; > > diff --git a/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku1.dts b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku1.dts > > new file mode 100644 > > index 000000000000..8ba31f81d9ad > > --- /dev/null > > +++ b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku1.dts > > @@ -0,0 +1,34 @@ > > +// SPDX-License-Identifier: (GPL-2.0 OR MIT) > > +/* > > + * Copyright 2023 Google LLC > > + */ > > + > > +/dts-v1/; > > +#include "mt8186-corsola-chinchou.dtsi" > > + > > +/ { > > + model = "Google chinchou sku1/sku17 board"; > > + compatible = "google,chinchou-sku1", "google,chinchou-sku17", > > + "google,chinchou-sku3", "google,chinchou-sku6", > > + "google,chinchou-sku7", "google,chinchou-sku20", > > + "google,chinchou-sku22", "google,chinchou-sku23", > > + "mediatek,mt8186"; > > +}; > > + > > +&i2c1 { > > + i2c-scl-internal-delay-ns = <10000>; > > + > > + touchscreen: touchscreen@41 { > > + compatible = "ilitek,ili2901"; > > + reg = <0x41>; > > + interrupts-extended = <&pio 12 IRQ_TYPE_LEVEL_LOW>; > > + pinctrl-names = "default"; > > + pinctrl-0 = <&touchscreen_pins>; > > + reset-gpios = <&pio 60 GPIO_ACTIVE_LOW>; > > + vccio-supply = <&pp1800_tchscr_report_disable>; > > + }; > > +}; > > + > > +&gpio_keys { > > + status = "disabled"; > > +}; > > diff --git a/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku16.dts b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku16.dts > > new file mode 100644 > > index 000000000000..d3378d7ad096 > > --- /dev/null > > +++ b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku16.dts > > @@ -0,0 +1,28 @@ > > +// SPDX-License-Identifier: (GPL-2.0 OR MIT) > > +/* > > + * Copyright 2023 Google LLC > > + */ > > + > > +/dts-v1/; > > +#include "mt8186-corsola-chinchou.dtsi" > > + > > +/ { > > + model = "Google chinchou sku16/sku2147483647 board"; > > + compatible = "google,chinchou-sku16", "google,chinchou-sku18", > > + "google,chinchou-sku19", "google,chinchou-sku21", > > + "google,chinchou-sku2147483647", "mediatek,mt8186"; > > +}; > > + > > +&i2c1 { > > + i2c-scl-internal-delay-ns = <10000>; > > + > > + touchscreen: touchscreen@41 { > > + compatible = "ilitek,ili2901"; > > + reg = <0x41>; > > + interrupts-extended = <&pio 12 IRQ_TYPE_LEVEL_LOW>; > > + pinctrl-names = "default"; > > + pinctrl-0 = <&touchscreen_pins>; > > + reset-gpios = <&pio 60 GPIO_ACTIVE_LOW>; > > + vccio-supply = <&pp1800_tchscr_report_disable>; > > + }; > > +}; > > diff --git a/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou.dtsi b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou.dtsi > > new file mode 100644 > > index 000000000000..c77cc43f8442 > > --- /dev/null > > +++ b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou.dtsi > > ..snip.. > > > + > > +&mmc1_pins_default { > > + pins-clk { > > + drive-strength = <MTK_DRIVE_8mA>; > > Please stop using the meaningless MTK_DRIVE_(x)mA macro. > > drive-strength = <8>; is enough :-) > > Cheers, > Angelo > > > + }; > > + > > + pins-cmd-dat { > > + drive-strength = <MTK_DRIVE_8mA>; > > + }; > > +}; > > + > > +&mmc1_pins_uhs { > > + pins-clk { > > + drive-strength = <MTK_DRIVE_8mA>; > > + }; > > + > > + pins-cmd-dat { > > + drive-strength = <MTK_DRIVE_8mA>; > > + }; > > +}; > > + > > +&sound { > > + status = "okay"; > > + > > + compatible = "mediatek,mt8186-mt6366-rt5650-sound"; > > You don't need to change this compatible, as the only thing that changes in the > actual driver are the dapm_routes. I implemented support for that nice dai-link > (standard, kind of) graph so that we stop getting a thousand compatibles for no > reason other than routing :-) > > This should work with (99.9% confident it will, but please test): > > model = "mt8186_rt5650"; > status = "okay"; > > > + mediatek,adsp = <&adsp>; > > This property is already set in the node that you're inheriting from > mt8186-corsola.dtsi, please drop. > > > + > > + audio-routing = > > + "Headphone", "HPOL", > > + "Headphone", "HPOR", > > + "HDMI1", "TX"; > > + > > + hs-playback-dai-link { > > + codec { > > + sound-dai = <&rt5650>; > > + }; > > + }; > > + > > + hs-capture-dai-link { > > + codec { > > + sound-dai = <&rt5650>; > > + }; > > + }; > > + > > + spk-share-dai-link { > > + }; > > Empty nodes are meaningless (and you're inheriting this dai link from > mt8186-corsola.dtsi as well). Drop. > > > + > > + spk-hdmi-playback-dai-link { > > + codec { > > + sound-dai = <&it6505dptx>; > > + }; > > + }; > > +}; > > + > > +&wifi_enable_pin { > > + pins-wifi-enable { > > + pinmux = <PINMUX_GPIO51__FUNC_GPIO51>; > > + }; > > +}; > > + > > +&wifi_pwrseq { > > + reset-gpios = <&pio 51 GPIO_ACTIVE_LOW>; > > +}; > > + > > ..snip.. > > > + > > +&pen_insert { > > + wakeup-event-action = <EV_ACT_ANY>; > > Why is this set to EV_ACT_ANY on Chinchou but not on the other Corsola devices? > Is there any specific reason? Default it's set to EV_ACT_DEASSERTED. Some OEMs want to wake up on both assert and deassert. > > Cheers, > Angelo >
diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile index 8fd7b2bb7a15..0db7770e8907 100644 --- a/arch/arm64/boot/dts/mediatek/Makefile +++ b/arch/arm64/boot/dts/mediatek/Makefile @@ -55,6 +55,9 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-kodama-sku32.dtb dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-krane-sku0.dtb dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-krane-sku176.dtb dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-pumpkin.dtb +dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-chinchou-sku0.dtb +dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-chinchou-sku1.dtb +dtb-$(CONFIG_ARCH_MEDIATEK) += mt8186-corsola-chinchou-sku16.dtb 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 diff --git a/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku0.dts b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku0.dts new file mode 100644 index 000000000000..29dd92318da1 --- /dev/null +++ b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku0.dts @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: (GPL-2.0 OR MIT) +/* + * Copyright 2023 Google LLC + */ + +/dts-v1/; +#include "mt8186-corsola-chinchou.dtsi" + +/ { + model = "Google chinchou sku0 board"; + compatible = "google,chinchou-sku0", "google,chinchou-sku2", + "google,chinchou-sku4", "google,chinchou-sku5", + "google,chinchou", "mediatek,mt8186"; +}; + +&gpio_keys { + status = "disabled"; +}; diff --git a/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku1.dts b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku1.dts new file mode 100644 index 000000000000..8ba31f81d9ad --- /dev/null +++ b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku1.dts @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: (GPL-2.0 OR MIT) +/* + * Copyright 2023 Google LLC + */ + +/dts-v1/; +#include "mt8186-corsola-chinchou.dtsi" + +/ { + model = "Google chinchou sku1/sku17 board"; + compatible = "google,chinchou-sku1", "google,chinchou-sku17", + "google,chinchou-sku3", "google,chinchou-sku6", + "google,chinchou-sku7", "google,chinchou-sku20", + "google,chinchou-sku22", "google,chinchou-sku23", + "mediatek,mt8186"; +}; + +&i2c1 { + i2c-scl-internal-delay-ns = <10000>; + + touchscreen: touchscreen@41 { + compatible = "ilitek,ili2901"; + reg = <0x41>; + interrupts-extended = <&pio 12 IRQ_TYPE_LEVEL_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&touchscreen_pins>; + reset-gpios = <&pio 60 GPIO_ACTIVE_LOW>; + vccio-supply = <&pp1800_tchscr_report_disable>; + }; +}; + +&gpio_keys { + status = "disabled"; +}; diff --git a/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku16.dts b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku16.dts new file mode 100644 index 000000000000..d3378d7ad096 --- /dev/null +++ b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku16.dts @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: (GPL-2.0 OR MIT) +/* + * Copyright 2023 Google LLC + */ + +/dts-v1/; +#include "mt8186-corsola-chinchou.dtsi" + +/ { + model = "Google chinchou sku16/sku2147483647 board"; + compatible = "google,chinchou-sku16", "google,chinchou-sku18", + "google,chinchou-sku19", "google,chinchou-sku21", + "google,chinchou-sku2147483647", "mediatek,mt8186"; +}; + +&i2c1 { + i2c-scl-internal-delay-ns = <10000>; + + touchscreen: touchscreen@41 { + compatible = "ilitek,ili2901"; + reg = <0x41>; + interrupts-extended = <&pio 12 IRQ_TYPE_LEVEL_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&touchscreen_pins>; + reset-gpios = <&pio 60 GPIO_ACTIVE_LOW>; + vccio-supply = <&pp1800_tchscr_report_disable>; + }; +}; diff --git a/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou.dtsi b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou.dtsi new file mode 100644 index 000000000000..c77cc43f8442 --- /dev/null +++ b/arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou.dtsi @@ -0,0 +1,445 @@ +// SPDX-License-Identifier: (GPL-2.0 OR MIT) +/* + * Copyright 2023 Google LLC + */ + +/dts-v1/; +#include "mt8186-corsola.dtsi" + +/ { + 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) 1491 + 0 1413 + 5000 1324 + 10000 1225 + 15000 1120 + 20000 1012 + 25000 900 + 30000 797 + 35000 698 + 40000 607 + 45000 525 + 50000 451 + 55000 386 + 60000 330 + 65000 282 + 70000 241 + 75000 206 + 80000 176 + 85000 151 + 90000 129 + 95000 111 + 100000 96 + 105000 83 + 110000 72 + 115000 62 + 120000 54 + 125000 47>; + }; + + 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) 1491 + 0 1413 + 5000 1324 + 10000 1225 + 15000 1120 + 20000 1012 + 25000 900 + 30000 797 + 35000 698 + 40000 607 + 45000 525 + 50000 451 + 55000 386 + 60000 330 + 65000 282 + 70000 241 + 75000 206 + 80000 176 + 85000 151 + 90000 129 + 95000 111 + 100000 96 + 105000 83 + 110000 72 + 115000 62 + 120000 54 + 125000 47>; + }; + + pp1800_tchscr_report_disable: regulator-pp1800-tchscr-report-disable { + compatible = "regulator-fixed"; + regulator-name = "pp1800_tchscr_report_disable"; + pinctrl-names = "default"; + enable-active-low; + regulator-boot-on; + pinctrl-0 = <&touch_pin_report>; + gpio = <&pio 37 GPIO_ACTIVE_LOW>; + }; + + pp1000_edpbrdg: regulator-pp1000-edpbrdg { + compatible = "regulator-fixed"; + regulator-name = "pp1000_edpbrdg"; + pinctrl-names = "default"; + pinctrl-0 = <&en_pp1000_edpbrdg>; + enable-active-high; + regulator-boot-on; + gpio = <&pio 29 GPIO_ACTIVE_HIGH>; + vin-supply = <&pp3300_z2>; + }; + + pp1800_edpbrdg_dx: regulator-pp1800-edpbrdg-dx { + compatible = "regulator-fixed"; + regulator-name = "pp1800_edpbrdg_dx"; + pinctrl-names = "default"; + pinctrl-0 = <&en_pp1800_edpbrdg>; + enable-active-high; + regulator-boot-on; + gpio = <&pio 30 GPIO_ACTIVE_HIGH>; + vin-supply = <&mt6366_vio18_reg>; + }; + + pp3300_edp_dx: regulator-pp3300-edp-dx { + compatible = "regulator-fixed"; + regulator-name = "pp3300_edp_dx"; + pinctrl-names = "default"; + pinctrl-0 = <&en_pp3300_edpbrdg>; + enable-active-high; + regulator-boot-on; + gpio = <&pio 31 GPIO_ACTIVE_HIGH>; + vin-supply = <&pp3300_z2>; + }; +}; + +&rt5682s { + status = "disabled"; +}; + +&rt1019p { + status = "disabled"; +}; + +&dsi_out { + remote-endpoint = <&anx7625_in>; +}; + +&i2c0 { + clock-frequency = <400000>; + + anx_bridge: anx7625@58 { + compatible = "analogix,anx7625"; + reg = <0x58>; + pinctrl-names = "default"; + pinctrl-0 = <&anx7625_pins>; + panel_flags = <1>; + enable-gpios = <&pio 96 GPIO_ACTIVE_HIGH>; + reset-gpios = <&pio 98 GPIO_ACTIVE_HIGH>; + vdd10-supply = <&pp1000_edpbrdg>; + vdd18-supply = <&pp1800_edpbrdg_dx>; + vdd33-supply = <&pp3300_edp_dx>; + #address-cells = <1>; + #size-cells = <0>; + analogix,lane0-swing = /bits/ 8 <0x70 0x30>; + analogix,lane1-swing = /bits/ 8 <0x70 0x30>; + + port@0 { + reg = <0>; + + anx7625_in: endpoint { + remote-endpoint = <&dsi_out>; + data-lanes = <0 1 2 3>; + }; + }; + + port@1 { + reg = <1>; + + anx7625_out: endpoint { + remote-endpoint = <&panel_in>; + }; + }; + + aux-bus { + panel: panel { + compatible = "edp-panel"; + power-supply = <&pp3300_disp_x>; + backlight = <&backlight_lcd0>; + + port { + panel_in: endpoint { + remote-endpoint = <&anx7625_out>; + }; + }; + }; + }; + }; +}; + +&i2c2 { + trackpad@15 { + compatible = "hid-over-i2c"; + post-power-on-delay-ms = <10>; + hid-descr-addr = <0x0001>; + vdd-supply = <&pp3300_s3>; + }; +}; + +&i2c5 { + clock-frequency = <400000>; + + rt5650: rt5650@1a { + compatible = "realtek,rt5650"; + reg = <0x1a>; + avdd-supply = <&mt6366_vio18_reg>; + pinctrl-names = "default"; + pinctrl-0 = <&rt1019p_pins_default>; + cbj-sleeve-gpio = <&pio 150 GPIO_ACTIVE_HIGH>; + interrupt-parent = <&pio>; + interrupts = <17 IRQ_TYPE_EDGE_BOTH>; + #sound-dai-cells = <0>; + realtek,dmic1-data-pin = <2>; + realtek,jd-mode = <2>; + }; +}; + +&mmc1_pins_default { + pins-clk { + drive-strength = <MTK_DRIVE_8mA>; + }; + + pins-cmd-dat { + drive-strength = <MTK_DRIVE_8mA>; + }; +}; + +&mmc1_pins_uhs { + pins-clk { + drive-strength = <MTK_DRIVE_8mA>; + }; + + pins-cmd-dat { + drive-strength = <MTK_DRIVE_8mA>; + }; +}; + +&sound { + status = "okay"; + + compatible = "mediatek,mt8186-mt6366-rt5650-sound"; + mediatek,adsp = <&adsp>; + + audio-routing = + "Headphone", "HPOL", + "Headphone", "HPOR", + "HDMI1", "TX"; + + hs-playback-dai-link { + codec { + sound-dai = <&rt5650>; + }; + }; + + hs-capture-dai-link { + codec { + sound-dai = <&rt5650>; + }; + }; + + spk-share-dai-link { + }; + + spk-hdmi-playback-dai-link { + codec { + sound-dai = <&it6505dptx>; + }; + }; +}; + +&wifi_enable_pin { + pins-wifi-enable { + pinmux = <PINMUX_GPIO51__FUNC_GPIO51>; + }; +}; + +&wifi_pwrseq { + reset-gpios = <&pio 51 GPIO_ACTIVE_LOW>; +}; + +&keyboard_controller { + keypad,num-columns = <15>; + + function-row-physmap = < + MATRIX_KEY(0x00, 0x02, 0) /* T1 */ + MATRIX_KEY(0x03, 0x02, 0) /* T2 */ + MATRIX_KEY(0x02, 0x02, 0) /* T3 */ + MATRIX_KEY(0x01, 0x02, 0) /* T4 */ + MATRIX_KEY(0x03, 0x04, 0) /* T5 */ + MATRIX_KEY(0x02, 0x04, 0) /* T6 */ + MATRIX_KEY(0x01, 0x04, 0) /* T7 */ + MATRIX_KEY(0x02, 0x09, 0) /* T8 */ + MATRIX_KEY(0x01, 0x09, 0) /* T9 */ + MATRIX_KEY(0x00, 0x04, 0) /* T10 */ + MATRIX_KEY(0x00, 0x01, 0) /* T11 */ + MATRIX_KEY(0x01, 0x05, 0) /* T12 */ + >; + + linux,keymap = < + CROS_STD_MAIN_KEYMAP + MATRIX_KEY(0x00, 0x02, KEY_BACK) /* T1 */ + MATRIX_KEY(0x03, 0x02, KEY_REFRESH) /* T2 */ + MATRIX_KEY(0x02, 0x02, KEY_ZOOM) /* T3 */ + MATRIX_KEY(0x01, 0x02, KEY_SCALE) /* T4 */ + MATRIX_KEY(0x03, 0x04, KEY_SYSRQ) /* T5 */ + MATRIX_KEY(0x02, 0x04, KEY_BRIGHTNESSDOWN) /* T6 */ + MATRIX_KEY(0x01, 0x04, KEY_BRIGHTNESSUP) /* T7 */ + MATRIX_KEY(0x02, 0x09, KEY_MUTE) /* T8 */ + MATRIX_KEY(0x01, 0x09, KEY_VOLUMEDOWN) /* T9 */ + MATRIX_KEY(0x00, 0x04, KEY_VOLUMEUP) /* T10 */ + MATRIX_KEY(0x00, 0x01, KEY_MICMUTE) /* T11 */ + MATRIX_KEY(0x01, 0x05, KEY_CONTROLPANEL) /* T12 */ + MATRIX_KEY(0x03, 0x05, KEY_PREVIOUSSONG) /* T13 */ + MATRIX_KEY(0x00, 0x09, KEY_PLAYPAUSE) /* T14 */ + MATRIX_KEY(0x00, 0x0b, KEY_NEXTSONG) /* T15 */ + MATRIX_KEY(0x03, 0x00, KEY_LEFTMETA) /* Search*/ + MATRIX_KEY(0x01, 0x0e, KEY_LEFTCTRL) /* Left Control*/ + MATRIX_KEY(0x06, 0x0d, KEY_LEFTALT) /* Left ALT*/ + MATRIX_KEY(0x03, 0x0e, KEY_RIGHTCTRL) /* Right Control*/ + MATRIX_KEY(0x06, 0x0a, KEY_BACKSLASH) /* BACKSLASH*/ + >; +}; + +&thermal_zones { + cpu-ntc { + polling-delay = <1000>; /* milliseconds */ + polling-delay-passive = <0>; /* milliseconds */ + thermal-sensors = <&tboard_thermistor1>; + }; + + pmic-ntc { + polling-delay = <1000>; /* milliseconds */ + polling-delay-passive = <50>; /* milliseconds */ + thermal-sensors = <&tboard_thermistor2>; + sustainable-power = <1500>; + + trips { + pmic_temp_alert0: trip-point@0 { + temperature = <50000>; + hysteresis = <2000>; + type = "passive"; + }; + + pmic_temp_alert1: target@1 { + temperature = <60000>; + hysteresis = <2000>; + type = "passive"; + }; + + pmic_ntc_crit: pmic-ntc-crit@0 { + temperature = <80000>; + hysteresis = <2000>; + type = "critical"; + }; + }; + + cooling-maps { + map0 { + trip = <&pmic_temp_alert1>; + cooling-device = <&cpu0 + THERMAL_NO_LIMIT + THERMAL_NO_LIMIT>, + <&cpu1 + THERMAL_NO_LIMIT + THERMAL_NO_LIMIT>, + <&cpu2 + THERMAL_NO_LIMIT + THERMAL_NO_LIMIT>, + <&cpu3 + THERMAL_NO_LIMIT + THERMAL_NO_LIMIT>, + <&cpu4 + THERMAL_NO_LIMIT + THERMAL_NO_LIMIT>, + <&cpu5 + THERMAL_NO_LIMIT + THERMAL_NO_LIMIT>; + contribution = <4096>; + }; + + map1 { + trip = <&pmic_temp_alert1>; + cooling-device = <&cpu6 + THERMAL_NO_LIMIT + THERMAL_NO_LIMIT>, + <&cpu7 + THERMAL_NO_LIMIT + THERMAL_NO_LIMIT>; + contribution = <1024>; + }; + }; + }; +}; + +&pio { + touch_pin_report: pin-report { + pinmux = <PINMUX_GPIO37__FUNC_GPIO37>; + output-low; + }; + + anx7625_pins: anx7625-pins { + pins1 { + pinmux = <PINMUX_GPIO96__FUNC_GPIO96>, + <PINMUX_GPIO98__FUNC_GPIO98>; + output-low; + }; + + pins2 { + pinmux = <PINMUX_GPIO9__FUNC_GPIO9>; + input-enable; + bias-pull-up; + }; + }; + + en_pp1000_edpbrdg: pp1000-edpbrdg-en-pins { + pins-vreg-en { + pinmux = <PINMUX_GPIO29__FUNC_GPIO29>; + output-low; + }; + }; + + en_pp1800_edpbrdg: pp1800-edpbrdg-en-pins { + pins-vreg-en { + pinmux = <PINMUX_GPIO30__FUNC_GPIO30>; + output-low; + }; + }; + + en_pp3300_edpbrdg: pp3300-edpbrdg-en-pins { + pins-vreg-en { + pinmux = <PINMUX_GPIO31__FUNC_GPIO31>; + output-low; + }; + }; +}; + +&i2c_tunnel { + /delete-node/ sbs-battery@b; + + battery: sbs-battery@f { + compatible = "sbs,sbs-battery"; + reg = <0xf>; + sbs,i2c-retry-count = <2>; + sbs,poll-retry-count = <1>; + }; +}; + +&pen_insert { + wakeup-event-action = <EV_ACT_ANY>; +};
The MT8186 Chinchou/Chinchou360, also known as the Asus Chromebook CZ12/CZ11 Flip, is a clamshell or convertible device with touchscreen, stylus and extra buttons. Signed-off-by: Albert Jakieła <jakiela@google.com> --- arch/arm64/boot/dts/mediatek/Makefile | 3 + .../mediatek/mt8186-corsola-chinchou-sku0.dts | 18 + .../mediatek/mt8186-corsola-chinchou-sku1.dts | 34 ++ .../mt8186-corsola-chinchou-sku16.dts | 28 ++ .../dts/mediatek/mt8186-corsola-chinchou.dtsi | 445 ++++++++++++++++++ 5 files changed, 528 insertions(+) create mode 100644 arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku0.dts create mode 100644 arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku1.dts create mode 100644 arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou-sku16.dts create mode 100644 arch/arm64/boot/dts/mediatek/mt8186-corsola-chinchou.dtsi