xref: /linux/Documentation/devicetree/bindings/embedded-controller/huawei,gaokun3-ec.yaml (revision 4f38da1f027ea2c9f01bb71daa7a299c191b6940)
1*3d6a17fcSKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*3d6a17fcSKrzysztof Kozlowski%YAML 1.2
3*3d6a17fcSKrzysztof Kozlowski---
4*3d6a17fcSKrzysztof Kozlowski$id: http://devicetree.org/schemas/embedded-controller/huawei,gaokun3-ec.yaml#
5*3d6a17fcSKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6*3d6a17fcSKrzysztof Kozlowski
7*3d6a17fcSKrzysztof Kozlowskititle: Huawei Matebook E Go Embedded Controller
8*3d6a17fcSKrzysztof Kozlowski
9*3d6a17fcSKrzysztof Kozlowskimaintainers:
10*3d6a17fcSKrzysztof Kozlowski  - Pengyu Luo <mitltlatltl@gmail.com>
11*3d6a17fcSKrzysztof Kozlowski
12*3d6a17fcSKrzysztof Kozlowskidescription:
13*3d6a17fcSKrzysztof Kozlowski  Different from other Qualcomm Snapdragon sc8180x and sc8280xp-based
14*3d6a17fcSKrzysztof Kozlowski  machines, the Huawei Matebook E Go tablets use embedded controllers
15*3d6a17fcSKrzysztof Kozlowski  while others use a system called PMIC GLink which handles battery,
16*3d6a17fcSKrzysztof Kozlowski  UCSI, USB Type-C DP Alt Mode. In addition, Huawei's implementation
17*3d6a17fcSKrzysztof Kozlowski  also handles additional features, such as charging thresholds, FN
18*3d6a17fcSKrzysztof Kozlowski  lock, smart charging, tablet lid status, thermal sensors, and more.
19*3d6a17fcSKrzysztof Kozlowski
20*3d6a17fcSKrzysztof Kozlowskiproperties:
21*3d6a17fcSKrzysztof Kozlowski  compatible:
22*3d6a17fcSKrzysztof Kozlowski    enum:
23*3d6a17fcSKrzysztof Kozlowski      - huawei,gaokun3-ec
24*3d6a17fcSKrzysztof Kozlowski
25*3d6a17fcSKrzysztof Kozlowski  reg:
26*3d6a17fcSKrzysztof Kozlowski    const: 0x38
27*3d6a17fcSKrzysztof Kozlowski
28*3d6a17fcSKrzysztof Kozlowski  '#address-cells':
29*3d6a17fcSKrzysztof Kozlowski    const: 1
30*3d6a17fcSKrzysztof Kozlowski
31*3d6a17fcSKrzysztof Kozlowski  '#size-cells':
32*3d6a17fcSKrzysztof Kozlowski    const: 0
33*3d6a17fcSKrzysztof Kozlowski
34*3d6a17fcSKrzysztof Kozlowski  interrupts:
35*3d6a17fcSKrzysztof Kozlowski    maxItems: 1
36*3d6a17fcSKrzysztof Kozlowski
37*3d6a17fcSKrzysztof KozlowskipatternProperties:
38*3d6a17fcSKrzysztof Kozlowski  '^connector@[01]$':
39*3d6a17fcSKrzysztof Kozlowski    $ref: /schemas/connector/usb-connector.yaml#
40*3d6a17fcSKrzysztof Kozlowski
41*3d6a17fcSKrzysztof Kozlowski    properties:
42*3d6a17fcSKrzysztof Kozlowski      reg:
43*3d6a17fcSKrzysztof Kozlowski        maxItems: 1
44*3d6a17fcSKrzysztof Kozlowski
45*3d6a17fcSKrzysztof Kozlowskirequired:
46*3d6a17fcSKrzysztof Kozlowski  - compatible
47*3d6a17fcSKrzysztof Kozlowski  - reg
48*3d6a17fcSKrzysztof Kozlowski  - interrupts
49*3d6a17fcSKrzysztof Kozlowski
50*3d6a17fcSKrzysztof KozlowskiadditionalProperties: false
51*3d6a17fcSKrzysztof Kozlowski
52*3d6a17fcSKrzysztof Kozlowskiexamples:
53*3d6a17fcSKrzysztof Kozlowski  - |
54*3d6a17fcSKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/irq.h>
55*3d6a17fcSKrzysztof Kozlowski    i2c {
56*3d6a17fcSKrzysztof Kozlowski        #address-cells = <1>;
57*3d6a17fcSKrzysztof Kozlowski        #size-cells = <0>;
58*3d6a17fcSKrzysztof Kozlowski
59*3d6a17fcSKrzysztof Kozlowski        embedded-controller@38 {
60*3d6a17fcSKrzysztof Kozlowski            compatible = "huawei,gaokun3-ec";
61*3d6a17fcSKrzysztof Kozlowski            reg = <0x38>;
62*3d6a17fcSKrzysztof Kozlowski
63*3d6a17fcSKrzysztof Kozlowski            interrupts-extended = <&tlmm 107 IRQ_TYPE_LEVEL_LOW>;
64*3d6a17fcSKrzysztof Kozlowski
65*3d6a17fcSKrzysztof Kozlowski            #address-cells = <1>;
66*3d6a17fcSKrzysztof Kozlowski            #size-cells = <0>;
67*3d6a17fcSKrzysztof Kozlowski
68*3d6a17fcSKrzysztof Kozlowski            connector@0 {
69*3d6a17fcSKrzysztof Kozlowski                compatible = "usb-c-connector";
70*3d6a17fcSKrzysztof Kozlowski                reg = <0>;
71*3d6a17fcSKrzysztof Kozlowski                power-role = "dual";
72*3d6a17fcSKrzysztof Kozlowski                data-role = "dual";
73*3d6a17fcSKrzysztof Kozlowski
74*3d6a17fcSKrzysztof Kozlowski                ports {
75*3d6a17fcSKrzysztof Kozlowski                    #address-cells = <1>;
76*3d6a17fcSKrzysztof Kozlowski                    #size-cells = <0>;
77*3d6a17fcSKrzysztof Kozlowski
78*3d6a17fcSKrzysztof Kozlowski                    port@0 {
79*3d6a17fcSKrzysztof Kozlowski                        reg = <0>;
80*3d6a17fcSKrzysztof Kozlowski
81*3d6a17fcSKrzysztof Kozlowski                        ucsi0_ss_in: endpoint {
82*3d6a17fcSKrzysztof Kozlowski                            remote-endpoint = <&usb_0_qmpphy_out>;
83*3d6a17fcSKrzysztof Kozlowski                        };
84*3d6a17fcSKrzysztof Kozlowski                    };
85*3d6a17fcSKrzysztof Kozlowski
86*3d6a17fcSKrzysztof Kozlowski                    port@1 {
87*3d6a17fcSKrzysztof Kozlowski                        reg = <1>;
88*3d6a17fcSKrzysztof Kozlowski
89*3d6a17fcSKrzysztof Kozlowski                        ucsi0_sbu: endpoint {
90*3d6a17fcSKrzysztof Kozlowski                            remote-endpoint = <&usb0_sbu_mux>;
91*3d6a17fcSKrzysztof Kozlowski                        };
92*3d6a17fcSKrzysztof Kozlowski                    };
93*3d6a17fcSKrzysztof Kozlowski                };
94*3d6a17fcSKrzysztof Kozlowski            };
95*3d6a17fcSKrzysztof Kozlowski
96*3d6a17fcSKrzysztof Kozlowski            connector@1 {
97*3d6a17fcSKrzysztof Kozlowski                compatible = "usb-c-connector";
98*3d6a17fcSKrzysztof Kozlowski                reg = <1>;
99*3d6a17fcSKrzysztof Kozlowski                power-role = "dual";
100*3d6a17fcSKrzysztof Kozlowski                data-role = "dual";
101*3d6a17fcSKrzysztof Kozlowski
102*3d6a17fcSKrzysztof Kozlowski                ports {
103*3d6a17fcSKrzysztof Kozlowski                    #address-cells = <1>;
104*3d6a17fcSKrzysztof Kozlowski                    #size-cells = <0>;
105*3d6a17fcSKrzysztof Kozlowski
106*3d6a17fcSKrzysztof Kozlowski                    port@0 {
107*3d6a17fcSKrzysztof Kozlowski                        reg = <0>;
108*3d6a17fcSKrzysztof Kozlowski
109*3d6a17fcSKrzysztof Kozlowski                        ucsi1_ss_in: endpoint {
110*3d6a17fcSKrzysztof Kozlowski                            remote-endpoint = <&usb_1_qmpphy_out>;
111*3d6a17fcSKrzysztof Kozlowski                        };
112*3d6a17fcSKrzysztof Kozlowski                    };
113*3d6a17fcSKrzysztof Kozlowski
114*3d6a17fcSKrzysztof Kozlowski                    port@1 {
115*3d6a17fcSKrzysztof Kozlowski                        reg = <1>;
116*3d6a17fcSKrzysztof Kozlowski
117*3d6a17fcSKrzysztof Kozlowski                        ucsi1_sbu: endpoint {
118*3d6a17fcSKrzysztof Kozlowski                            remote-endpoint = <&usb1_sbu_mux>;
119*3d6a17fcSKrzysztof Kozlowski                        };
120*3d6a17fcSKrzysztof Kozlowski                    };
121*3d6a17fcSKrzysztof Kozlowski                };
122*3d6a17fcSKrzysztof Kozlowski            };
123*3d6a17fcSKrzysztof Kozlowski        };
124*3d6a17fcSKrzysztof Kozlowski    };
125