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
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