Message ID | 20250105174159.227831-2-mitltlatltl@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | platform: arm64: Huawei Matebook E Go embedded controller | expand |
On Mon, Jan 06, 2025 at 01:41:55AM +0800, Pengyu Luo wrote: > +maintainers: > + - Pengyu Luo <mitltlatltl@gmail.com> > + > +description: > + Different from other Qualcomm Snapdragon sc8180x and sc8280xp-based > + machines, the Huawei Matebook E Go tablets use embedded controllers > + while others use a system called PMIC GLink which handles battery, > + UCSI, USB Type-C DP Alt Mode. In addition, Huawei's implementation > + also handles additional features, such as charging thresholds, FN > + lock, smart charging, tablet lid status, thermal sensors, and more. > + > +properties: > + compatible: > + items: > + - enum: > + - huawei,gaokun2 > + - huawei,gaokun3 Missing "-ec", because gaokun2/3 is the name of the board, apparently. You cannot duplicate compatibles with different meanings and if you tested this you would see errors. I think I might mislead you during last talk, where I questioned what is "gen2" etc. > + - const: huawei,gaokun-ec There is no support for gaokun2 here, so I assume you checked and you know these are compatible. What's more, you claim there is a generic piece of hardware called gaokun-ec and everything in this family will be compatible with it. Well, that's my standard disclaimer and disapproval of using generic compatibles. So in general what you want here is *only one* compatible called huawei,gaokun3-ec > + > + reg: > + const: 0x38 > + > + '#address-cells': > + const: 1 > + > + '#size-cells': > + const: 0 > + > + interrupts: > + maxItems: 1 > + > +patternProperties: > + '^connector@[01]$': > + $ref: /schemas/connector/usb-connector.yaml# > + > + properties: > + reg: > + maxItems: 1 > + > +required: > + - compatible > + - reg > + - interrupts > + > +additionalProperties: false > + > +examples: > + - |+ Drop + Best regards, Krzysztof
On Mon, Jan 6, 2025 at 3:11 PM Krzysztof Kozlowski <krzk@kernel.org> wrote: > On Mon, Jan 06, 2025 at 01:41:55AM +0800, Pengyu Luo wrote: > > +maintainers: > > + - Pengyu Luo <mitltlatltl@gmail.com> > > + > > +description: > > + Different from other Qualcomm Snapdragon sc8180x and sc8280xp-based > > + machines, the Huawei Matebook E Go tablets use embedded controllers > > + while others use a system called PMIC GLink which handles battery, > > + UCSI, USB Type-C DP Alt Mode. In addition, Huawei's implementation > > + also handles additional features, such as charging thresholds, FN > > + lock, smart charging, tablet lid status, thermal sensors, and more. > > + > > +properties: > > + compatible: > > + items: > > + - enum: > > + - huawei,gaokun2 > > + - huawei,gaokun3 > > Missing "-ec", because gaokun2/3 is the name of the board, apparently. You cannot > duplicate compatibles with different meanings and if you tested this you > would see errors. > > I think I might mislead you during last talk, where I questioned what is > "gen2" etc. > Agree > > + - const: huawei,gaokun-ec > > There is no support for gaokun2 here, so I assume you checked and you > know these are compatible. What's more, you claim there is a generic > piece of hardware called gaokun-ec and everything in this family will be > compatible with it. Well, that's my standard disclaimer and disapproval > of using generic compatibles. > > So in general what you want here is *only one* compatible called > huawei,gaokun3-ec > I agree with you. If there is a generic rule to follow, I am not familiar with this. I have seen some bindings, using like this, so I followed it recently. properties: compatible: items: - enum: - vendor0,device0 - vendor1,device1 - const: generic-device > > + > > + reg: > > + const: 0x38 > > + > > + '#address-cells': > > + const: 1 > > + > > + '#size-cells': > > + const: 0 > > + > > + interrupts: > > + maxItems: 1 > > + > > +patternProperties: > > + '^connector@[01]$': > > + $ref: /schemas/connector/usb-connector.yaml# > > + > > + properties: > > + reg: > > + maxItems: 1 > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + > > +additionalProperties: false > > + > > +examples: > > + - |+ > > Drop + > Agree Best Wishes, Pengyu
On 06/01/2025 09:06, Pengyu Luo wrote: >>> + - const: huawei,gaokun-ec >> >> There is no support for gaokun2 here, so I assume you checked and you >> know these are compatible. What's more, you claim there is a generic >> piece of hardware called gaokun-ec and everything in this family will be >> compatible with it. Well, that's my standard disclaimer and disapproval >> of using generic compatibles. >> >> So in general what you want here is *only one* compatible called >> huawei,gaokun3-ec >> > > I agree with you. If there is a generic rule to follow, I am not familiar > with this. I have seen some bindings, using like this, so I followed it > recently. Generic rule is: wildcards and family names are not allowed. Now what "generic" means, is different for different devices. If unsure, always use only device-specific compatibles. Best regards, Krzysztof
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..149c0cbe4 --- /dev/null +++ b/Documentation/devicetree/bindings/platform/huawei,gaokun-ec.yaml @@ -0,0 +1,127 @@ +# 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 and sc8280xp-based + machines, the Huawei Matebook E Go tablets use embedded controllers + while others use a system called PMIC GLink which handles battery, + UCSI, USB Type-C DP Alt Mode. In addition, Huawei's implementation + also handles additional features, such as charging thresholds, FN + lock, smart charging, tablet lid status, thermal sensors, and more. + +properties: + compatible: + items: + - enum: + - huawei,gaokun2 + - huawei,gaokun3 + - const: huawei,gaokun-ec + + reg: + const: 0x38 + + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + + interrupts: + maxItems: 1 + +patternProperties: + '^connector@[01]$': + $ref: /schemas/connector/usb-connector.yaml# + + properties: + reg: + maxItems: 1 + +required: + - compatible + - reg + - interrupts + +additionalProperties: false + +examples: + - |+ + #include <dt-bindings/interrupt-controller/irq.h> + i2c { + #address-cells = <1>; + #size-cells = <0>; + + embedded-controller@38 { + compatible = "huawei,gaokun3", "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 and Huawei Matebook E Go LTE 2-in-1 tablets, the former one is a QS sc8280xp based tablet, the latter one is QS sc8180x based tablet. This series has a codename, gaokun. More information about gaokun, please check https://bugzilla.kernel.org/show_bug.cgi?id=219645 Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com> --- .../bindings/platform/huawei,gaokun-ec.yaml | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 Documentation/devicetree/bindings/platform/huawei,gaokun-ec.yaml