# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/soc/qcom/qcom,pmic-glink.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm PMIC GLINK firmware interface for battery management, USB
  Type-C and other things.

maintainers:
  - Bjorn Andersson <andersson@kernel.org>

description:
  The PMIC GLINK service, running on a coprocessor on some modern Qualcomm
  platforms and implement USB Type-C handling and battery management. This
  binding describes the component in the OS used to communicate with the
  firmware and connect it's resources to those described in the Devicetree,
  particularly the USB Type-C controllers relationship with USB and DisplayPort
  components.

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - qcom,qcm6490-pmic-glink
              - qcom,sc8180x-pmic-glink
              - qcom,sc8280xp-pmic-glink
              - qcom,sm8350-pmic-glink
              - qcom,sm8450-pmic-glink
              - qcom,sm8550-pmic-glink
          - const: qcom,pmic-glink
      - items:
          - enum:
              - qcom,sm8650-pmic-glink
              - qcom,x1e80100-pmic-glink
          - const: qcom,sm8550-pmic-glink
          - const: qcom,pmic-glink

  '#address-cells':
    const: 1

  '#size-cells':
    const: 0

  orientation-gpios:
    description: Array of input gpios for the Type-C connector orientation indication.
      The GPIO indication is used to detect the orientation of the Type-C connector.
      The array should contain a gpio entry for each PMIC Glink connector, in reg order.
      It is defined that GPIO active level means "CC2" or Reversed/Flipped orientation.

patternProperties:
  '^connector@\d$':
    $ref: /schemas/connector/usb-connector.yaml#
    required:
      - reg

required:
  - compatible

allOf:
  - if:
      not:
        properties:
          compatible:
            contains:
              enum:
                - qcom,sm8450-pmic-glink
                - qcom,sm8550-pmic-glink
                - qcom,x1e80100-pmic-glink
    then:
      properties:
        orientation-gpios: false

additionalProperties: false

examples:
  - |+
    pmic-glink {
        compatible = "qcom,sc8280xp-pmic-glink", "qcom,pmic-glink";

        #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>;
                    endpoint {
                        remote-endpoint = <&usb_role>;
                    };
                };

                port@1 {
                    reg = <1>;
                    endpoint {
                        remote-endpoint = <&ss_phy_out>;
                    };
                };

                port@2 {
                    reg = <2>;
                    endpoint {
                        remote-endpoint = <&sbu_mux>;
                    };
                };
            };
        };
    };
...

