Message ID | 20230804-topic-sm8550-upstream-type-c-orientation-v1-1-36dd3edec7bf@linaro.org |
---|---|
State | New |
Headers | show |
Series | arm64: qcom: sm8550: retrieve USB-C port orientation from gpio | expand |
On 04/08/2023 18:03, Bjorn Andersson wrote: > On Fri, Aug 04, 2023 at 03:50:07PM +0200, Neil Armstrong wrote: >> On SM8450 and SM8550 based platforms, the Type-C plug orientation is given on a >> GPIO line set by the PMIC. >> >> Document this optional Type-C connector property, and take the >> assumption an active level represents an inverted/flipped orientation. >> >> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> >> --- >> .../devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml | 18 ++++++++++++++++++ >> 1 file changed, 18 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml >> index bceb479f74c5..1b0a00b19a54 100644 >> --- a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml >> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml >> @@ -35,6 +35,11 @@ properties: >> '#size-cells': >> const: 0 >> >> + orientation-gpios: >> + description: An input gpio for Type-C connector orientation, used to detect orientation >> + of the Type-C connector. GPIO active level means "CC2" or Reversed/Flipped orientation. > > This is a per-connector/port property, as such be part of the connector > sub nodes rather than as a property of the shared pmic_glink entity. This has been rejected by Rob, Dmitry & Krzysztof in: https://lore.kernel.org/all/0fbf55e7-2140-751d-5347-f907a46ef78c@linaro.org/ & https://lore.kernel.org/all/20230608154751.GA2750742-robh@kernel.org/ Indeed the "GPIO" is not part of the physical USB-C connector, but a property, and it's not part of the PMIC GLINK firmware either, so ? The PMIC function which generates this signal is handled by the PMIC GLINK firmware, so this representation is the most accurate. Neil > > Regards, > Bjorn > >> + maxItems: 1 >> + >> patternProperties: >> '^connector@\d$': >> $ref: /schemas/connector/usb-connector.yaml# >> @@ -44,6 +49,19 @@ patternProperties: >> required: >> - compatible >> >> +allOf: >> + - if: >> + not: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - qcom,sm8450-pmic-glink >> + - qcom,sm8550-pmic-glink >> + then: >> + properties: >> + orientation-gpios: false >> + >> additionalProperties: false >> >> examples: >> >> -- >> 2.34.1 >>
On Mon, Aug 14, 2023 at 10:09:41AM +0200, Neil Armstrong wrote: > On 04/08/2023 18:03, Bjorn Andersson wrote: > > On Fri, Aug 04, 2023 at 03:50:07PM +0200, Neil Armstrong wrote: > > > On SM8450 and SM8550 based platforms, the Type-C plug orientation is given on a > > > GPIO line set by the PMIC. > > > > > > Document this optional Type-C connector property, and take the > > > assumption an active level represents an inverted/flipped orientation. > > > > > > Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> > > > --- > > > .../devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml | 18 ++++++++++++++++++ > > > 1 file changed, 18 insertions(+) > > > > > > diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml > > > index bceb479f74c5..1b0a00b19a54 100644 > > > --- a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml > > > +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml > > > @@ -35,6 +35,11 @@ properties: > > > '#size-cells': > > > const: 0 > > > + orientation-gpios: > > > + description: An input gpio for Type-C connector orientation, used to detect orientation > > > + of the Type-C connector. GPIO active level means "CC2" or Reversed/Flipped orientation. > > > > This is a per-connector/port property, as such be part of the connector > > sub nodes rather than as a property of the shared pmic_glink entity. > > This has been rejected by Rob, Dmitry & Krzysztof in: > https://lore.kernel.org/all/0fbf55e7-2140-751d-5347-f907a46ef78c@linaro.org/ > & > https://lore.kernel.org/all/20230608154751.GA2750742-robh@kernel.org/ > > Indeed the "GPIO" is not part of the physical USB-C connector, but a property, > and it's not part of the PMIC GLINK firmware either, so ? > > The PMIC function which generates this signal is handled by the PMIC GLINK > firmware, so this representation is the most accurate. > I don't think we reached a conclusion on the discussion that followed. If this indeed is the path forward, please document clearly how the next person should proceed when the need for handling multiple ports with this scheme arise. Thanks, Bjorn > Neil > > > > > Regards, > > Bjorn > > > > > + maxItems: 1 > > > + > > > patternProperties: > > > '^connector@\d$': > > > $ref: /schemas/connector/usb-connector.yaml# > > > @@ -44,6 +49,19 @@ patternProperties: > > > required: > > > - compatible > > > +allOf: > > > + - if: > > > + not: > > > + properties: > > > + compatible: > > > + contains: > > > + enum: > > > + - qcom,sm8450-pmic-glink > > > + - qcom,sm8550-pmic-glink > > > + then: > > > + properties: > > > + orientation-gpios: false > > > + > > > additionalProperties: false > > > examples: > > > > > > -- > > > 2.34.1 > > > >
diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml index bceb479f74c5..1b0a00b19a54 100644 --- a/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml @@ -35,6 +35,11 @@ properties: '#size-cells': const: 0 + orientation-gpios: + description: An input gpio for Type-C connector orientation, used to detect orientation + of the Type-C connector. GPIO active level means "CC2" or Reversed/Flipped orientation. + maxItems: 1 + patternProperties: '^connector@\d$': $ref: /schemas/connector/usb-connector.yaml# @@ -44,6 +49,19 @@ patternProperties: required: - compatible +allOf: + - if: + not: + properties: + compatible: + contains: + enum: + - qcom,sm8450-pmic-glink + - qcom,sm8550-pmic-glink + then: + properties: + orientation-gpios: false + additionalProperties: false examples:
On SM8450 and SM8550 based platforms, the Type-C plug orientation is given on a GPIO line set by the PMIC. Document this optional Type-C connector property, and take the assumption an active level represents an inverted/flipped orientation. Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> --- .../devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)