* [PATCH v3 1/3] dt-bindings: connector: usb: add altmodes description
2023-11-20 22:00 [PATCH v3 0/3] dt-bindings: connector: usb: provide bindings for altmodes Dmitry Baryshkov
@ 2023-11-20 22:00 ` Dmitry Baryshkov
2023-11-21 8:31 ` Krzysztof Kozlowski
2023-11-27 18:50 ` Rob Herring
2023-11-20 22:00 ` [PATCH v3 2/3] usb: typec: change altmode SVID to u16 entry Dmitry Baryshkov
2023-11-20 22:00 ` [PATCH v3 3/3] arm64: dts: qcom: qrb5165-rb5: use u16 for DP altmode svid Dmitry Baryshkov
2 siblings, 2 replies; 7+ messages in thread
From: Dmitry Baryshkov @ 2023-11-20 22:00 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andy Gross,
Bjorn Andersson, Konrad Dybcio, Hans de Goede, Ilpo Järvinen,
Mark Gross, Heikki Krogerus, Greg Kroah-Hartman
Cc: devicetree, linux-kernel, linux-arm-msm, platform-driver-x86,
linux-usb
Add description of the USB-C AltModes supported on the particular USB-C
connector. This is required for devices like Qualcomm Robotics RB5,
which have no other way to express alternative modes supported by the
hardware platform.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
.../bindings/connector/usb-connector.yaml | 29 +++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/Documentation/devicetree/bindings/connector/usb-connector.yaml b/Documentation/devicetree/bindings/connector/usb-connector.yaml
index 7c8a3e8430d3..c1aaac861d9d 100644
--- a/Documentation/devicetree/bindings/connector/usb-connector.yaml
+++ b/Documentation/devicetree/bindings/connector/usb-connector.yaml
@@ -171,6 +171,28 @@ properties:
offer the power, Capability Mismatch is set. Required for power sink and
power dual role.
+ altmodes:
+ type: object
+ description: List of Alternative Modes supported by the schematics on the
+ particular device. This is only necessary if there are no other means to
+ discover supported alternative modes (e.g. through the UCSI firmware
+ interface).
+
+ patternProperties:
+ "^(displayport)$":
+ type: object
+ description:
+ A single USB-C Alternative Mode as supported by the USB-C connector logic.
+ properties:
+ svid:
+ $ref: /schemas/types.yaml#/definitions/uint16
+ description: Unique value assigned by USB-IF to the Vendor / AltMode.
+ vdo:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: VDO returned by Discover Modes USB PD command.
+ additionalProperties: false
+ additionalProperties: false
+
port:
$ref: /schemas/graph.yaml#/properties/port
description: OF graph bindings modeling a data bus to the connector, e.g.
@@ -289,6 +311,13 @@ examples:
compatible = "usb-c-connector";
label = "USB-C";
+ altmodes {
+ displayport {
+ svid = /bits/ 16 <0xff01>;
+ vdo = <0x00001c46>;
+ };
+ };
+
ports {
#address-cells = <1>;
#size-cells = <0>;
--
2.42.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v3 1/3] dt-bindings: connector: usb: add altmodes description
2023-11-20 22:00 ` [PATCH v3 1/3] dt-bindings: connector: usb: add altmodes description Dmitry Baryshkov
@ 2023-11-21 8:31 ` Krzysztof Kozlowski
2023-11-21 9:19 ` Dmitry Baryshkov
2023-11-27 18:50 ` Rob Herring
1 sibling, 1 reply; 7+ messages in thread
From: Krzysztof Kozlowski @ 2023-11-21 8:31 UTC (permalink / raw)
To: Dmitry Baryshkov, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Andy Gross, Bjorn Andersson, Konrad Dybcio, Hans de Goede,
Ilpo Järvinen, Mark Gross, Heikki Krogerus,
Greg Kroah-Hartman
Cc: devicetree, linux-kernel, linux-arm-msm, platform-driver-x86,
linux-usb
On 20/11/2023 23:00, Dmitry Baryshkov wrote:
> Add description of the USB-C AltModes supported on the particular USB-C
> connector. This is required for devices like Qualcomm Robotics RB5,
> which have no other way to express alternative modes supported by the
> hardware platform.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
> .../bindings/connector/usb-connector.yaml | 29 +++++++++++++++++++
> 1 file changed, 29 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/connector/usb-connector.yaml b/Documentation/devicetree/bindings/connector/usb-connector.yaml
> index 7c8a3e8430d3..c1aaac861d9d 100644
> --- a/Documentation/devicetree/bindings/connector/usb-connector.yaml
> +++ b/Documentation/devicetree/bindings/connector/usb-connector.yaml
> @@ -171,6 +171,28 @@ properties:
> offer the power, Capability Mismatch is set. Required for power sink and
> power dual role.
>
> + altmodes:
> + type: object
> + description: List of Alternative Modes supported by the schematics on the
> + particular device. This is only necessary if there are no other means to
> + discover supported alternative modes (e.g. through the UCSI firmware
> + interface).
> +
> + patternProperties:
> + "^(displayport)$":
This is just a property, so should be under "properties:".
The rest looks good to me, but I don't know USB that much to judge.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v3 1/3] dt-bindings: connector: usb: add altmodes description
2023-11-21 8:31 ` Krzysztof Kozlowski
@ 2023-11-21 9:19 ` Dmitry Baryshkov
0 siblings, 0 replies; 7+ messages in thread
From: Dmitry Baryshkov @ 2023-11-21 9:19 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andy Gross,
Bjorn Andersson, Konrad Dybcio, Hans de Goede, Ilpo Järvinen,
Mark Gross, Heikki Krogerus, Greg Kroah-Hartman, devicetree,
linux-kernel, linux-arm-msm, platform-driver-x86, linux-usb
On Tue, 21 Nov 2023 at 10:31, Krzysztof Kozlowski
<krzysztof.kozlowski@linaro.org> wrote:
>
> On 20/11/2023 23:00, Dmitry Baryshkov wrote:
> > Add description of the USB-C AltModes supported on the particular USB-C
> > connector. This is required for devices like Qualcomm Robotics RB5,
> > which have no other way to express alternative modes supported by the
> > hardware platform.
> >
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> > ---
> > .../bindings/connector/usb-connector.yaml | 29 +++++++++++++++++++
> > 1 file changed, 29 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/connector/usb-connector.yaml b/Documentation/devicetree/bindings/connector/usb-connector.yaml
> > index 7c8a3e8430d3..c1aaac861d9d 100644
> > --- a/Documentation/devicetree/bindings/connector/usb-connector.yaml
> > +++ b/Documentation/devicetree/bindings/connector/usb-connector.yaml
> > @@ -171,6 +171,28 @@ properties:
> > offer the power, Capability Mismatch is set. Required for power sink and
> > power dual role.
> >
> > + altmodes:
> > + type: object
> > + description: List of Alternative Modes supported by the schematics on the
> > + particular device. This is only necessary if there are no other means to
> > + discover supported alternative modes (e.g. through the UCSI firmware
> > + interface).
> > +
> > + patternProperties:
> > + "^(displayport)$":
>
> This is just a property, so should be under "properties:".
Having it under properties would make adding new altmodes harder.
Inherently it should become something like
"^(displayport|virtuallink|thunderbolt)$".
>
> The rest looks good to me, but I don't know USB that much to judge.
>
> Best regards,
> Krzysztof
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v3 1/3] dt-bindings: connector: usb: add altmodes description
2023-11-20 22:00 ` [PATCH v3 1/3] dt-bindings: connector: usb: add altmodes description Dmitry Baryshkov
2023-11-21 8:31 ` Krzysztof Kozlowski
@ 2023-11-27 18:50 ` Rob Herring
1 sibling, 0 replies; 7+ messages in thread
From: Rob Herring @ 2023-11-27 18:50 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Krzysztof Kozlowski, Conor Dooley, Andy Gross, Bjorn Andersson,
Konrad Dybcio, Hans de Goede, Ilpo Järvinen, Mark Gross,
Heikki Krogerus, Greg Kroah-Hartman, devicetree, linux-kernel,
linux-arm-msm, platform-driver-x86, linux-usb
On Tue, Nov 21, 2023 at 12:00:18AM +0200, Dmitry Baryshkov wrote:
> Add description of the USB-C AltModes supported on the particular USB-C
> connector. This is required for devices like Qualcomm Robotics RB5,
> which have no other way to express alternative modes supported by the
> hardware platform.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
> .../bindings/connector/usb-connector.yaml | 29 +++++++++++++++++++
> 1 file changed, 29 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/connector/usb-connector.yaml b/Documentation/devicetree/bindings/connector/usb-connector.yaml
> index 7c8a3e8430d3..c1aaac861d9d 100644
> --- a/Documentation/devicetree/bindings/connector/usb-connector.yaml
> +++ b/Documentation/devicetree/bindings/connector/usb-connector.yaml
> @@ -171,6 +171,28 @@ properties:
> offer the power, Capability Mismatch is set. Required for power sink and
> power dual role.
>
> + altmodes:
> + type: object
> + description: List of Alternative Modes supported by the schematics on the
> + particular device. This is only necessary if there are no other means to
> + discover supported alternative modes (e.g. through the UCSI firmware
> + interface).
Move additionalProperties here.
> +
> + patternProperties:
> + "^(displayport)$":
> + type: object
> + description:
> + A single USB-C Alternative Mode as supported by the USB-C connector logic.
Move additionalProperties here.
And a blank line
> + properties:
> + svid:
> + $ref: /schemas/types.yaml#/definitions/uint16
> + description: Unique value assigned by USB-IF to the Vendor / AltMode.
blank line
Since you've constrained the node name, then the only possible value
here is 0xff01?
OTOH, I don't know that we want to enumerate all possible values here
especially if there could be lots of vendor modes. But then again, maybe
better to just wait and see if that becomes a problem.
With those nits fixed,
Reviewed-by: Rob Herring <robh@kernel.org>
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v3 2/3] usb: typec: change altmode SVID to u16 entry
2023-11-20 22:00 [PATCH v3 0/3] dt-bindings: connector: usb: provide bindings for altmodes Dmitry Baryshkov
2023-11-20 22:00 ` [PATCH v3 1/3] dt-bindings: connector: usb: add altmodes description Dmitry Baryshkov
@ 2023-11-20 22:00 ` Dmitry Baryshkov
2023-11-20 22:00 ` [PATCH v3 3/3] arm64: dts: qcom: qrb5165-rb5: use u16 for DP altmode svid Dmitry Baryshkov
2 siblings, 0 replies; 7+ messages in thread
From: Dmitry Baryshkov @ 2023-11-20 22:00 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andy Gross,
Bjorn Andersson, Konrad Dybcio, Hans de Goede, Ilpo Järvinen,
Mark Gross, Heikki Krogerus, Greg Kroah-Hartman
Cc: devicetree, linux-kernel, linux-arm-msm, platform-driver-x86,
linux-usb
As stated in the changelog for the commit 7b458a4c5d73 ("usb: typec: Add
typec_port_register_altmodes()"), the code should be adjusted according
to the AltMode bindings. As the SVID is 16 bits wide (according to the
USB PD Spec), use fwnode_property_read_u16() to read it.
Acked-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
drivers/platform/x86/intel/chtwc_int33fe.c | 2 +-
drivers/usb/typec/class.c | 5 +++--
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/platform/x86/intel/chtwc_int33fe.c b/drivers/platform/x86/intel/chtwc_int33fe.c
index 848baecc1bb0..93f75ba1dafd 100644
--- a/drivers/platform/x86/intel/chtwc_int33fe.c
+++ b/drivers/platform/x86/intel/chtwc_int33fe.c
@@ -136,7 +136,7 @@ static const struct software_node altmodes_node = {
};
static const struct property_entry dp_altmode_properties[] = {
- PROPERTY_ENTRY_U32("svid", 0xff01),
+ PROPERTY_ENTRY_U16("svid", 0xff01),
PROPERTY_ENTRY_U32("vdo", 0x0c0086),
{ }
};
diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c
index 6ec2a94e6fad..4251d44137b6 100644
--- a/drivers/usb/typec/class.c
+++ b/drivers/usb/typec/class.c
@@ -2238,7 +2238,8 @@ void typec_port_register_altmodes(struct typec_port *port,
struct typec_altmode_desc desc;
struct typec_altmode *alt;
size_t index = 0;
- u32 svid, vdo;
+ u16 svid;
+ u32 vdo;
int ret;
altmodes_node = device_get_named_child_node(&port->dev, "altmodes");
@@ -2246,7 +2247,7 @@ void typec_port_register_altmodes(struct typec_port *port,
return; /* No altmodes specified */
fwnode_for_each_child_node(altmodes_node, child) {
- ret = fwnode_property_read_u32(child, "svid", &svid);
+ ret = fwnode_property_read_u16(child, "svid", &svid);
if (ret) {
dev_err(&port->dev, "Error reading svid for altmode %s\n",
fwnode_get_name(child));
--
2.42.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v3 3/3] arm64: dts: qcom: qrb5165-rb5: use u16 for DP altmode svid
2023-11-20 22:00 [PATCH v3 0/3] dt-bindings: connector: usb: provide bindings for altmodes Dmitry Baryshkov
2023-11-20 22:00 ` [PATCH v3 1/3] dt-bindings: connector: usb: add altmodes description Dmitry Baryshkov
2023-11-20 22:00 ` [PATCH v3 2/3] usb: typec: change altmode SVID to u16 entry Dmitry Baryshkov
@ 2023-11-20 22:00 ` Dmitry Baryshkov
2 siblings, 0 replies; 7+ messages in thread
From: Dmitry Baryshkov @ 2023-11-20 22:00 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Andy Gross,
Bjorn Andersson, Konrad Dybcio, Hans de Goede, Ilpo Järvinen,
Mark Gross, Heikki Krogerus, Greg Kroah-Hartman
Cc: devicetree, linux-kernel, linux-arm-msm, platform-driver-x86,
linux-usb
Follow the bindings and use 16-bit value for AltMode SVID instead of
using the full u32.
Fixes: b3dea914127e ("arm64: dts: qcom: qrb5165-rb5: enable DP altmode")
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
arch/arm64/boot/dts/qcom/qrb5165-rb5.dts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
index c8cd40a462a3..88b37ceb13ed 100644
--- a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
+++ b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
@@ -1425,7 +1425,7 @@ PDO_FIXED_USB_COMM |
altmodes {
displayport {
- svid = <0xff01>;
+ svid = /bits/ 16 <0xff01>;
vdo = <0x00001c46>;
};
};
--
2.42.0
^ permalink raw reply related [flat|nested] 7+ messages in thread