[v2,1/4] dt-bindings: soc: qcom: Introduce PMIC GLINK binding
Commit Message
From: Bjorn Andersson <bjorn.andersson@linaro.org>
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.
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com>
---
Changes since v1:
- Added reg under connector, to identify multiple connectors
- Updated maintainer email
.../bindings/soc/qcom/qcom,pmic-glink.yaml | 102 ++++++++++++++++++
1 file changed, 102 insertions(+)
create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
Comments
On Thu, Jan 12, 2023 at 08:11:29PM -0800, Bjorn Andersson wrote:
> From: Bjorn Andersson <bjorn.andersson@linaro.org>
>
> 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.
>
> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com>
> ---
>
> Changes since v1:
> - Added reg under connector, to identify multiple connectors
> - Updated maintainer email
>
> .../bindings/soc/qcom/qcom,pmic-glink.yaml | 102 ++++++++++++++++++
> 1 file changed, 102 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
>
> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
> new file mode 100644
> index 000000000000..a79dd0ed9275
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
> @@ -0,0 +1,102 @@
> +# 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:
> + items:
> + - enum:
> + - qcom,sc8180x-pmic-glink
> + - qcom,sc8280xp-pmic-glink
> + - qcom,sm8350-pmic-glink
> + - const: qcom,pmic-glink
> +
> + '#address-cells':
> + const: 1
> +
> + '#size-cells':
> + const: 0
> +
> +patternProperties:
> + '^connector@\d$':
> + $ref: /schemas/connector/usb-connector.yaml#
> +
> + properties:
> + reg: true
required:
- reg
Or '@\d' needs to be optional.
> +
> + unevaluatedProperties: false
> +
> +required:
> + - compatible
> +
> +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>;
> +
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + endpoint@0 {
> + reg = <0>;
> + remote-endpoint = <&qmp_out>;
> + };
> +
> + endpoint@1 {
> + reg = <1>;
> + remote-endpoint = <&displayport_hpd>;
> + };
> + };
> +
> + port@2 {
> + reg = <2>;
> + endpoint {
> + remote-endpoint = <&sbu_mux>;
> + };
> + };
> + };
> + };
> + };
> +...
> +
> --
> 2.37.3
>
On Tue, Jan 17, 2023 at 12:00:58PM -0600, Rob Herring wrote:
> On Thu, Jan 12, 2023 at 08:11:29PM -0800, Bjorn Andersson wrote:
[..]
> > +patternProperties:
> > + '^connector@\d$':
> > + $ref: /schemas/connector/usb-connector.yaml#
> > +
> > + properties:
> > + reg: true
>
> required:
> - reg
>
> Or '@\d' needs to be optional.
>
You're right, and as the identifier is significant in the firmware
interface I'll add it as required.
Thanks,
Bjorn
new file mode 100644
@@ -0,0 +1,102 @@
+# 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:
+ items:
+ - enum:
+ - qcom,sc8180x-pmic-glink
+ - qcom,sc8280xp-pmic-glink
+ - qcom,sm8350-pmic-glink
+ - const: qcom,pmic-glink
+
+ '#address-cells':
+ const: 1
+
+ '#size-cells':
+ const: 0
+
+patternProperties:
+ '^connector@\d$':
+ $ref: /schemas/connector/usb-connector.yaml#
+
+ properties:
+ reg: true
+
+ unevaluatedProperties: false
+
+required:
+ - compatible
+
+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>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ endpoint@0 {
+ reg = <0>;
+ remote-endpoint = <&qmp_out>;
+ };
+
+ endpoint@1 {
+ reg = <1>;
+ remote-endpoint = <&displayport_hpd>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+ endpoint {
+ remote-endpoint = <&sbu_mux>;
+ };
+ };
+ };
+ };
+ };
+...
+