xref: /freebsd/sys/contrib/device-tree/Bindings/soc/qcom/qcom,pmic-glink.yaml (revision cb7aa33ac6cd46a5434798e50363136e64f3ae98)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/soc/qcom/qcom,pmic-glink.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm PMIC GLINK firmware interface for battery management, USB
8  Type-C and other things.
9
10maintainers:
11  - Bjorn Andersson <andersson@kernel.org>
12
13description:
14  The PMIC GLINK service, running on a coprocessor on some modern Qualcomm
15  platforms and implement USB Type-C handling and battery management. This
16  binding describes the component in the OS used to communicate with the
17  firmware and connect it's resources to those described in the Devicetree,
18  particularly the USB Type-C controllers relationship with USB and DisplayPort
19  components.
20
21properties:
22  compatible:
23    items:
24      - enum:
25          - qcom,sc8180x-pmic-glink
26          - qcom,sc8280xp-pmic-glink
27          - qcom,sm8350-pmic-glink
28      - const: qcom,pmic-glink
29
30  '#address-cells':
31    const: 1
32
33  '#size-cells':
34    const: 0
35
36patternProperties:
37  '^connector@\d$':
38    $ref: /schemas/connector/usb-connector.yaml#
39
40    properties:
41      reg: true
42
43    required:
44      - reg
45
46    unevaluatedProperties: false
47
48required:
49  - compatible
50
51additionalProperties: false
52
53examples:
54  - |+
55    pmic-glink {
56        compatible = "qcom,sc8280xp-pmic-glink", "qcom,pmic-glink";
57
58        #address-cells = <1>;
59        #size-cells = <0>;
60
61        connector@0 {
62            compatible = "usb-c-connector";
63            reg = <0>;
64            power-role = "dual";
65            data-role = "dual";
66
67            ports {
68                #address-cells = <1>;
69                #size-cells = <0>;
70
71                port@0 {
72                    reg = <0>;
73                    endpoint {
74                        remote-endpoint = <&usb_role>;
75                    };
76                };
77
78                port@1 {
79                    reg = <1>;
80                    endpoint {
81                        remote-endpoint = <&ss_phy_out>;
82                    };
83                };
84
85                port@2 {
86                    reg = <2>;
87                    endpoint {
88                        remote-endpoint = <&sbu_mux>;
89                    };
90                };
91            };
92        };
93    };
94...
95
96