Message ID | 20241227171353.404432-2-mitltlatltl@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | platform: arm64: Huawei Matebook E Go embedded controller | expand |
On Sat, 28 Dec 2024 01:13:49 +0800, Pengyu Luo wrote: > Add binding for the EC found in the Huawei Matebook E Go (sc8280xp) and > Huawei Matebook E Go LTE (sc8180x) 2in1 tablet. > > Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com> > --- > .../bindings/platform/huawei,gaokun-ec.yaml | 116 ++++++++++++++++++ > 1 file changed, 116 insertions(+) > create mode 100644 Documentation/devicetree/bindings/platform/huawei,gaokun-ec.yaml > My bot found errors running 'make dt_binding_check' on your patch: yamllint warnings/errors: dtschema/dtc warnings/errors: Error: Documentation/devicetree/bindings/platform/huawei,gaokun-ec.example.dts:26.61-62 syntax error FATAL ERROR: Unable to parse input tree make[2]: *** [scripts/Makefile.dtbs:131: Documentation/devicetree/bindings/platform/huawei,gaokun-ec.example.dtb] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [/builds/robherring/dt-review-ci/linux/Makefile:1506: dt_binding_check] Error 2 make: *** [Makefile:251: __sub-make] Error 2 doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20241227171353.404432-2-mitltlatltl@gmail.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.
On 27/12/2024 18:13, Pengyu Luo wrote: > + > +description: > + Different from other Qualcomm Snapdragon sc8180x sc8280xp based machines, > + the Huawei Matebook E Go tablets use embedded controllers while others > + use something called pmic glink which handles battery, UCSI, USB Type-C DP > + alt mode. Huawei one handles even more, like charging thresholds, FN lock, > + lid status, HPD events for the USB Type-C DP alt mode, etc. > + > +properties: > + compatible: > + items: > + - enum: > + - huawei,sc8180x-gaokun-ec > + - huawei,sc8280xp-gaokun-ec sc8180x and sc8280xp are not products of Huawei, so you cannot combine them. Use compatibles matching exactly your device, because I doubt any of us has actual schematics or datasheet of that device. > + - const: huawei,gaokun-ec How did you get the name? > + > + reg: > + const: 0x38 > + > + interrupts: > + maxItems: 1 > + > + connector: > + $ref: /schemas/connector/usb-connector.yaml# > + > +required: > + - compatible > + - reg > + - interrupts > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/interrupt-controller/irq.h> > + i2c15 { i2c > + clock-frequency = <400000>; > + > + pinctrl-names = "default"; > + pinctrl-0 = <&i2c15_default>; Drop all three above and test your bindings. This cannot work and test will tell you what is missing. > + > + embedded-controller@38 { > + compatible = "huawei,sc8280xp-gaokun-ec", ""huawei,gaokun-ec"; > + reg = <0x38>; > + > + interrupts-extended = <&tlmm 107 IRQ_TYPE_LEVEL_LOW>; > + > + #address-cells = <1>; > + #size-cells = <0>; > + > + connector@0 { Test your bindings - you do not have node connector@0. Best regards, Krzysztof
On Sat, Dec 28, 2024 at 5:54 PM Krzysztof Kozlowski <krzk@kernel.org> wrote: > On 27/12/2024 18:13, Pengyu Luo wrote: > > + > > +description: > > + Different from other Qualcomm Snapdragon sc8180x sc8280xp based machines, > > + the Huawei Matebook E Go tablets use embedded controllers while others > > + use something called pmic glink which handles battery, UCSI, USB Type-C DP > > + alt mode. Huawei one handles even more, like charging thresholds, FN lock, > > + lid status, HPD events for the USB Type-C DP alt mode, etc. > > + > > +properties: > > + compatible: > > + items: > > + - enum: > > + - huawei,sc8180x-gaokun-ec > > + - huawei,sc8280xp-gaokun-ec > > sc8180x and sc8280xp are not products of Huawei, so you cannot combine > them. Use compatibles matching exactly your device, because I doubt any > of us has actual schematics or datasheet of that device. > > > + - const: huawei,gaokun-ec > > How did you get the name? > From website of Huawei([1]), please search for 'gaokun' here, we can know this series is called gaokun. Many files from windows indicate more, someone fetch drivers from microsoft server([2]), in one of driver archive 'OemXAudioExt_HWVE.cab', there are two files, "algorithm_GaoKunGen2.xml" "algorithm_GaoKunGen3.xml". And `Gaokun Gen3` print can be found on motherboard(someone have the motherboard, I can ask for it later). So can I use? - enum: - huawei,gaokun-gen2 - huawei,gaokun-gen3 Some backgroud: There are 3 variants, Huawei released first 2 at the same time. Huawei Matebook E Go LTE(sc8180x), codename should be gaokun2. Huawei Matebook E Go(sc8280xp@3.0GHz), codename is gaokun3. Huawei Matebook E Go 2023(sc8280xp@2.69GHz). > > + > > + reg: > > + const: 0x38 > > + > > + interrupts: > > + maxItems: 1 > > + > > + connector: > > + $ref: /schemas/connector/usb-connector.yaml# > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + #include <dt-bindings/interrupt-controller/irq.h> > > + i2c15 { > > i2c > Agree > > + clock-frequency = <400000>; > > + > > + pinctrl-names = "default"; > > + pinctrl-0 = <&i2c15_default>; > > Drop all three above and test your bindings. This cannot work and test > will tell you what is missing. > Agree > > + > > + embedded-controller@38 { > > + compatible = "huawei,sc8280xp-gaokun-ec", ""huawei,gaokun-ec"; > > + reg = <0x38>; > > + > > + interrupts-extended = <&tlmm 107 IRQ_TYPE_LEVEL_LOW>; > > + > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + connector@0 { > > Test your bindings - you do not have node connector@0. > I have rewritten it locally. So I will add the following and do some fixes in v2. patternProperties: '^connector@[01]$': $ref: /schemas/connector/usb-connector.yaml# properties: reg: maxItems: 1 > > > Best regards, > Krzysztof Thanks, Pengyu [1] https://consumer.huawei.com/en/support/content/en-us15945089 [2] https://github.com/matebook-e-go/uup-drivers-sc8280xp/releases
On 28/12/2024 11:50, Pengyu Luo wrote: > On Sat, Dec 28, 2024 at 5:54 PM Krzysztof Kozlowski <krzk@kernel.org> wrote: >> On 27/12/2024 18:13, Pengyu Luo wrote: >>> + >>> +description: >>> + Different from other Qualcomm Snapdragon sc8180x sc8280xp based machines, >>> + the Huawei Matebook E Go tablets use embedded controllers while others >>> + use something called pmic glink which handles battery, UCSI, USB Type-C DP >>> + alt mode. Huawei one handles even more, like charging thresholds, FN lock, >>> + lid status, HPD events for the USB Type-C DP alt mode, etc. >>> + >>> +properties: >>> + compatible: >>> + items: >>> + - enum: >>> + - huawei,sc8180x-gaokun-ec >>> + - huawei,sc8280xp-gaokun-ec >> >> sc8180x and sc8280xp are not products of Huawei, so you cannot combine >> them. Use compatibles matching exactly your device, because I doubt any >> of us has actual schematics or datasheet of that device. >> >>> + - const: huawei,gaokun-ec >> >> How did you get the name? >> > > From website of Huawei([1]), please search for 'gaokun' here, we can know Then please explain this in commit msg or bindings description (what is gaokun). > this series is called gaokun. Many files from windows indicate more, > someone fetch drivers from microsoft server([2]), in one of driver archive > 'OemXAudioExt_HWVE.cab', there are two files, "algorithm_GaoKunGen2.xml" > "algorithm_GaoKunGen3.xml". And `Gaokun Gen3` print can be found on > motherboard(someone have the motherboard, I can ask for it later). > > So can I use? > - enum: > - huawei,gaokun-gen2 > - huawei,gaokun-gen3 The internal name? > > Some backgroud: > There are 3 variants, Huawei released first 2 at the same time. > Huawei Matebook E Go LTE(sc8180x), codename should be gaokun2. > Huawei Matebook E Go(sc8280xp@3.0GHz), codename is gaokun3. > Huawei Matebook E Go 2023(sc8280xp@2.69GHz). Well, I believe it is still not good choice because we have absolutely zero insights what is actually there, what else is called gaokun etc. Especially "gen2" and "gen3" - how can anyone, outside of Huawei, figure out which is gen3? Why do people try to decode some vendor naming scheme instead of using well recognized, public and available naming: the device name? Best regards, Krzysztof
On Sun, Dec 29, 2024 at 5:50 PM Krzysztof Kozlowski <krzk@kernel.org> wrote: > On 28/12/2024 11:50, Pengyu Luo wrote: > > On Sat, Dec 28, 2024 at 5:54 PM Krzysztof Kozlowski <krzk@kernel.org> wrote: > >> On 27/12/2024 18:13, Pengyu Luo wrote: > >>> + > >>> +description: > >>> + Different from other Qualcomm Snapdragon sc8180x sc8280xp based machines, > >>> + the Huawei Matebook E Go tablets use embedded controllers while others > >>> + use something called pmic glink which handles battery, UCSI, USB Type-C DP > >>> + alt mode. Huawei one handles even more, like charging thresholds, FN lock, > >>> + lid status, HPD events for the USB Type-C DP alt mode, etc. > >>> + > >>> +properties: > >>> + compatible: > >>> + items: > >>> + - enum: > >>> + - huawei,sc8180x-gaokun-ec > >>> + - huawei,sc8280xp-gaokun-ec > >> > >> sc8180x and sc8280xp are not products of Huawei, so you cannot combine > >> them. Use compatibles matching exactly your device, because I doubt any > >> of us has actual schematics or datasheet of that device. > >> > >>> + - const: huawei,gaokun-ec > >> > >> How did you get the name? > >> > > > > From website of Huawei([1]), please search for 'gaokun' here, we can know > > Then please explain this in commit msg or bindings description (what is > gaokun). > I will add it in v2. > > this series is called gaokun. Many files from windows indicate more, > > someone fetch drivers from microsoft server([2]), in one of driver archive > > 'OemXAudioExt_HWVE.cab', there are two files, "algorithm_GaoKunGen2.xml" > > "algorithm_GaoKunGen3.xml". And `Gaokun Gen3` print can be found on > > motherboard(someone have the motherboard, I can ask for it later). > > > > So can I use? > > - enum: > > - huawei,gaokun-gen2 > > - huawei,gaokun-gen3 > > The internal name? > > > > > Some backgroud: > > There are 3 variants, Huawei released first 2 at the same time. > > Huawei Matebook E Go LTE(sc8180x), codename should be gaokun2. > > Huawei Matebook E Go(sc8280xp@3.0GHz), codename is gaokun3. > > Huawei Matebook E Go 2023(sc8280xp@2.69GHz). > > Well, I believe it is still not good choice because we have absolutely > zero insights what is actually there, what else is called gaokun etc. > Especially "gen2" and "gen3" - how can anyone, outside of Huawei, figure > out which is gen3? > > Why do people try to decode some vendor naming scheme instead of using > well recognized, public and available naming: the device name? > Check the motherboard, https://postimg.cc/V5r4KCgx (Credit to Tianyu Gao <gty0622@gmail.com>) Gen3 must be sc8280xp based variants. There are many clues showing that sc8180x based variant is Gen2. I don't want to decode anything, but as you also review Documentation/devicetree/bindings/arm/qcom.yaml, most of them are suggest to use a codename, the retailer name is so long and confused. Best wishes, Pengyu
On 12/29/2024 6:12 PM, Pengyu Luo wrote: [...] >>>>> + - const: huawei,gaokun-ec >>>> >>>> How did you get the name? >>>> >>> >>> From website of Huawei([1]), please search for 'gaokun' here, we can know Gaokun appears to be a code name from Huawei for the HUAWEI MateBook E Go devices. Could you please specify which EC functions are customized specifically for Gaokun and which EC functions are common features used in qcom,sc8180x and qcom,sc8280xp boards? For example, the upstreamed ones like sc8180x (Lenovo Flex 5G/Primus) and sc8280xp (CRD/Lenovo ThinkPad X13s/Microsoft Arcata). >> [...] >> > > Check the motherboard, https://postimg.cc/V5r4KCgx (Credit to Tianyu Gao <gty0622@gmail.com>) The link is not accessible from my end. Could you please help follow the document tips referenced by [1] if this content is important for the overall naming design? Here are some snippets for reference: "for 'volatile' documents, please create an entry in the kernel bugzilla https://bugzilla.kernel.org and attach a copy of these documents to the bugzilla entry. Finally, provide the URL of the bugzilla entry in the changelog." https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/maintainer-tip.rst [1]
On 30/12/2024 08:28, Aiqun(Maria) Yu wrote: >>> > [...] >>> >> >> Check the motherboard, https://postimg.cc/V5r4KCgx (Credit to Tianyu Gao <gty0622@gmail.com>) > > The link is not accessible from my end. Could you please help follow the Link is accessible. Maybe you are using corporate network with some firewalls/content filtering? > document tips referenced by [1] if this content is important for the > overall naming design? > Best regards, Krzysztof
On Mon, Dec 30, 2024 at 3:28 PM Aiqun(Maria) Yu <quic_aiquny@quicinc.com> wrote: > On 12/29/2024 6:12 PM, Pengyu Luo wrote: > [...] > >>>>> + - const: huawei,gaokun-ec > >>>> > >>>> How did you get the name? > >>>> > >>> > >>> From website of Huawei([1]), please search for 'gaokun' here, we can know > > Gaokun appears to be a code name from Huawei for the HUAWEI MateBook E > Go devices. > > Could you please specify which EC functions are customized specifically > for Gaokun and which EC functions are common features used in > qcom,sc8180x and qcom,sc8280xp boards? For example, the upstreamed ones > like sc8180x (Lenovo Flex 5G/Primus) and sc8280xp (CRD/Lenovo ThinkPad > X13s/Microsoft Arcata). > Generally, pmic glink is a subset to this EC, common functions(slightlg different in implementations): - Battery and charger monitoring; (drivers/power/supply/qcom_battmgr.c) - UCSI (drivers/usb/typec/ucsi/ucsi_glink.c) - Altmodes (drivers/soc/qcom/pmic_glink_altmode.c) EC extended: - Charge control and smart charge; - Fn_lock settings; - Tablet lid status; - Temperature sensors; - many other thngs (watchdog, more WMI functions, it is hard to reverse for me) If necessary, I will add them to dt-binding, it is a bit bloated. > >> > [...] > >> > > > > Check the motherboard, https://postimg.cc/V5r4KCgx (Credit to Tianyu Gao <gty0622@gmail.com>) > > The link is not accessible from my end. Could you please help follow the > document tips referenced by [1] if this content is important for the > overall naming design? > > Here are some snippets for reference: > "for 'volatile' documents, please create an entry in the kernel > bugzilla https://bugzilla.kernel.org and attach a copy of these documents > to the bugzilla entry. Finally, provide the URL of the bugzilla entry in > the changelog." > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/maintainer-tip.rst > [1] > I am an amateur, I have only read a small part of the documentation so far. I will have a try in v2 after reading the doc. Best wishes, Pengyu
On 12/30/2024 3:35 PM, Krzysztof Kozlowski wrote: > On 30/12/2024 08:28, Aiqun(Maria) Yu wrote: >>>> >> [...] >>>> >>> >>> Check the motherboard, https://postimg.cc/V5r4KCgx (Credit to Tianyu Gao <gty0622@gmail.com>) >> >> The link is not accessible from my end. Could you please help follow the > > Link is accessible. Maybe you are using corporate network with some > firewalls/content filtering? It's highly likely that my corporate network has blocked this.
diff --git a/Documentation/devicetree/bindings/platform/huawei,gaokun-ec.yaml b/Documentation/devicetree/bindings/platform/huawei,gaokun-ec.yaml new file mode 100644 index 000000000..f5488b57b --- /dev/null +++ b/Documentation/devicetree/bindings/platform/huawei,gaokun-ec.yaml @@ -0,0 +1,116 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/platform/huawei,gaokun-ec.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Huawei Matebook E Go Embedded Controller + +maintainers: + - Pengyu Luo <mitltlatltl@gmail.com> + +description: + Different from other Qualcomm Snapdragon sc8180x sc8280xp based machines, + the Huawei Matebook E Go tablets use embedded controllers while others + use something called pmic glink which handles battery, UCSI, USB Type-C DP + alt mode. Huawei one handles even more, like charging thresholds, FN lock, + lid status, HPD events for the USB Type-C DP alt mode, etc. + +properties: + compatible: + items: + - enum: + - huawei,sc8180x-gaokun-ec + - huawei,sc8280xp-gaokun-ec + - const: huawei,gaokun-ec + + reg: + const: 0x38 + + interrupts: + maxItems: 1 + + connector: + $ref: /schemas/connector/usb-connector.yaml# + +required: + - compatible + - reg + - interrupts + +additionalProperties: false + +examples: + - | + #include <dt-bindings/interrupt-controller/irq.h> + i2c15 { + clock-frequency = <400000>; + + pinctrl-names = "default"; + pinctrl-0 = <&i2c15_default>; + + embedded-controller@38 { + compatible = "huawei,sc8280xp-gaokun-ec", ""huawei,gaokun-ec"; + reg = <0x38>; + + interrupts-extended = <&tlmm 107 IRQ_TYPE_LEVEL_LOW>; + + #address-cells = <1>; + #size-cells = <0>; + + connector@0 { + compatible = "usb-c-connector"; + reg = <0>; + power-role = "dual"; + data-role = "dual"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + ucsi0_ss_in: endpoint { + remote-endpoint = <&usb_0_qmpphy_out>; + }; + }; + + port@1 { + reg = <1>; + + ucsi0_sbu: endpoint { + remote-endpoint = <&usb0_sbu_mux>; + }; + }; + }; + }; + + connector@1 { + compatible = "usb-c-connector"; + reg = <1>; + power-role = "dual"; + data-role = "dual"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + ucsi1_ss_in: endpoint { + remote-endpoint = <&usb_1_qmpphy_out>; + }; + }; + + port@1 { + reg = <1>; + + ucsi1_sbu: endpoint { + remote-endpoint = <&usb1_sbu_mux>; + }; + }; + }; + }; + };
Add binding for the EC found in the Huawei Matebook E Go (sc8280xp) and Huawei Matebook E Go LTE (sc8180x) 2in1 tablet. Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com> --- .../bindings/platform/huawei,gaokun-ec.yaml | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 Documentation/devicetree/bindings/platform/huawei,gaokun-ec.yaml