Message ID | 20230113041132.4189268-2-quic_bjorande@quicinc.com (mailing list archive) |
---|---|
State | Handled Elsewhere, archived |
Headers | show |
Series | soc: qcom: Introduce PMIC GLINK | expand |
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
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 + + 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>; + }; + }; + }; + }; + }; +... +