xref: /freebsd-src/sys/contrib/device-tree/Bindings/soc/qcom/qcom,pmic-glink.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
1cb7aa33aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2cb7aa33aSEmmanuel Vadot%YAML 1.2
3cb7aa33aSEmmanuel Vadot---
4cb7aa33aSEmmanuel Vadot$id: http://devicetree.org/schemas/soc/qcom/qcom,pmic-glink.yaml#
5cb7aa33aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6cb7aa33aSEmmanuel Vadot
7cb7aa33aSEmmanuel Vadottitle: Qualcomm PMIC GLINK firmware interface for battery management, USB
8cb7aa33aSEmmanuel Vadot  Type-C and other things.
9cb7aa33aSEmmanuel Vadot
10cb7aa33aSEmmanuel Vadotmaintainers:
11cb7aa33aSEmmanuel Vadot  - Bjorn Andersson <andersson@kernel.org>
12cb7aa33aSEmmanuel Vadot
13cb7aa33aSEmmanuel Vadotdescription:
14cb7aa33aSEmmanuel Vadot  The PMIC GLINK service, running on a coprocessor on some modern Qualcomm
15cb7aa33aSEmmanuel Vadot  platforms and implement USB Type-C handling and battery management. This
16cb7aa33aSEmmanuel Vadot  binding describes the component in the OS used to communicate with the
17cb7aa33aSEmmanuel Vadot  firmware and connect it's resources to those described in the Devicetree,
18cb7aa33aSEmmanuel Vadot  particularly the USB Type-C controllers relationship with USB and DisplayPort
19cb7aa33aSEmmanuel Vadot  components.
20cb7aa33aSEmmanuel Vadot
21cb7aa33aSEmmanuel Vadotproperties:
22cb7aa33aSEmmanuel Vadot  compatible:
238d13bc63SEmmanuel Vadot    oneOf:
248d13bc63SEmmanuel Vadot      - items:
25cb7aa33aSEmmanuel Vadot          - enum:
2601950c46SEmmanuel Vadot              - qcom,qcm6490-pmic-glink
27cb7aa33aSEmmanuel Vadot              - qcom,sc8180x-pmic-glink
28cb7aa33aSEmmanuel Vadot              - qcom,sc8280xp-pmic-glink
29cb7aa33aSEmmanuel Vadot              - qcom,sm8350-pmic-glink
30fac71e4eSEmmanuel Vadot              - qcom,sm8450-pmic-glink
31fac71e4eSEmmanuel Vadot              - qcom,sm8550-pmic-glink
32cb7aa33aSEmmanuel Vadot          - const: qcom,pmic-glink
338d13bc63SEmmanuel Vadot      - items:
348d13bc63SEmmanuel Vadot          - enum:
35*b2d2a78aSEmmanuel Vadot              - qcom,sm7325-pmic-glink
36*b2d2a78aSEmmanuel Vadot          - const: qcom,qcm6490-pmic-glink
37*b2d2a78aSEmmanuel Vadot          - const: qcom,pmic-glink
38*b2d2a78aSEmmanuel Vadot      - items:
39*b2d2a78aSEmmanuel Vadot          - enum:
408d13bc63SEmmanuel Vadot              - qcom,sm8650-pmic-glink
4101950c46SEmmanuel Vadot              - qcom,x1e80100-pmic-glink
428d13bc63SEmmanuel Vadot          - const: qcom,sm8550-pmic-glink
438d13bc63SEmmanuel Vadot          - const: qcom,pmic-glink
44cb7aa33aSEmmanuel Vadot
45cb7aa33aSEmmanuel Vadot  '#address-cells':
46cb7aa33aSEmmanuel Vadot    const: 1
47cb7aa33aSEmmanuel Vadot
48cb7aa33aSEmmanuel Vadot  '#size-cells':
49cb7aa33aSEmmanuel Vadot    const: 0
50cb7aa33aSEmmanuel Vadot
5184943d6fSEmmanuel Vadot  orientation-gpios:
5284943d6fSEmmanuel Vadot    description: Array of input gpios for the Type-C connector orientation indication.
5384943d6fSEmmanuel Vadot      The GPIO indication is used to detect the orientation of the Type-C connector.
5484943d6fSEmmanuel Vadot      The array should contain a gpio entry for each PMIC Glink connector, in reg order.
5584943d6fSEmmanuel Vadot      It is defined that GPIO active level means "CC2" or Reversed/Flipped orientation.
5684943d6fSEmmanuel Vadot
57cb7aa33aSEmmanuel VadotpatternProperties:
58cb7aa33aSEmmanuel Vadot  '^connector@\d$':
59cb7aa33aSEmmanuel Vadot    $ref: /schemas/connector/usb-connector.yaml#
60cb7aa33aSEmmanuel Vadot    required:
61cb7aa33aSEmmanuel Vadot      - reg
62cb7aa33aSEmmanuel Vadot
63cb7aa33aSEmmanuel Vadotrequired:
64cb7aa33aSEmmanuel Vadot  - compatible
65cb7aa33aSEmmanuel Vadot
66cb7aa33aSEmmanuel VadotadditionalProperties: false
67cb7aa33aSEmmanuel Vadot
68cb7aa33aSEmmanuel Vadotexamples:
69cb7aa33aSEmmanuel Vadot  - |+
70cb7aa33aSEmmanuel Vadot    pmic-glink {
71cb7aa33aSEmmanuel Vadot        compatible = "qcom,sc8280xp-pmic-glink", "qcom,pmic-glink";
72cb7aa33aSEmmanuel Vadot
73cb7aa33aSEmmanuel Vadot        #address-cells = <1>;
74cb7aa33aSEmmanuel Vadot        #size-cells = <0>;
75cb7aa33aSEmmanuel Vadot
76cb7aa33aSEmmanuel Vadot        connector@0 {
77cb7aa33aSEmmanuel Vadot            compatible = "usb-c-connector";
78cb7aa33aSEmmanuel Vadot            reg = <0>;
79cb7aa33aSEmmanuel Vadot            power-role = "dual";
80cb7aa33aSEmmanuel Vadot            data-role = "dual";
81cb7aa33aSEmmanuel Vadot
82cb7aa33aSEmmanuel Vadot            ports {
83cb7aa33aSEmmanuel Vadot                #address-cells = <1>;
84cb7aa33aSEmmanuel Vadot                #size-cells = <0>;
85cb7aa33aSEmmanuel Vadot
86cb7aa33aSEmmanuel Vadot                port@0 {
87cb7aa33aSEmmanuel Vadot                    reg = <0>;
88cb7aa33aSEmmanuel Vadot                    endpoint {
89cb7aa33aSEmmanuel Vadot                        remote-endpoint = <&usb_role>;
90cb7aa33aSEmmanuel Vadot                    };
91cb7aa33aSEmmanuel Vadot                };
92cb7aa33aSEmmanuel Vadot
93cb7aa33aSEmmanuel Vadot                port@1 {
94cb7aa33aSEmmanuel Vadot                    reg = <1>;
95cb7aa33aSEmmanuel Vadot                    endpoint {
96cb7aa33aSEmmanuel Vadot                        remote-endpoint = <&ss_phy_out>;
97cb7aa33aSEmmanuel Vadot                    };
98cb7aa33aSEmmanuel Vadot                };
99cb7aa33aSEmmanuel Vadot
100cb7aa33aSEmmanuel Vadot                port@2 {
101cb7aa33aSEmmanuel Vadot                    reg = <2>;
102cb7aa33aSEmmanuel Vadot                    endpoint {
103cb7aa33aSEmmanuel Vadot                        remote-endpoint = <&sbu_mux>;
104cb7aa33aSEmmanuel Vadot                    };
105cb7aa33aSEmmanuel Vadot                };
106cb7aa33aSEmmanuel Vadot            };
107cb7aa33aSEmmanuel Vadot        };
108cb7aa33aSEmmanuel Vadot    };
109cb7aa33aSEmmanuel Vadot...
110cb7aa33aSEmmanuel Vadot
111