Re: [RFC 1/8] dt-bindings: usb: qcom,dwc3: Add bindings to enable runtime

From: Krishna Kurapati PSSNV
Date: Thu Nov 02 2023 - 13:02:51 EST




On 11/2/2023 10:03 PM, Caleb Connolly wrote:


On 17/10/2023 14:18, Krishna Kurapati wrote:
Add enable-rt binding to let the device register vendor hooks to
core and facilitate runtime suspend and resume.

Hi Krishna,

From reading through these patches, it's not clear to me why this behaviour should be conditional on a new devicetree property. Are there some platforms where this behaviour would be undesirable? And if so then would it be possible to determine this based on the QSCRATCH registers?


Hi Caleb,

There are two types of platforms, some use extcon and some use role-switch to deliver vbus/id notifications. Extcon targets already have this qscratch modifications present today in vbus and id handlers. But for role-switch based targets we don't have any way to get this notification to dwc3-qcom. In this implementation, I wanted to get those notications from core to glue and for this we implenented vendor hooks.

The property added has been used to do two things:

1. Register glue's vendor hooks to core driver
2. Do runtime_allow for glue (and by default for core as the dt is not flattened)

In case of extcon, we don't want to register vendor hooks as notifications are not necessary.

For xhci, we opted to enable runtime from userspace.

Signed-off-by: Krishna Kurapati <quic_kriskura@xxxxxxxxxxx>
---
  Documentation/devicetree/bindings/usb/qcom,dwc3.yaml | 5 +++++
  1 file changed, 5 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml b/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml
index cb50261c6a36..788d9c510abc 100644
--- a/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml
+++ b/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml
@@ -151,6 +151,11 @@ properties:
        HS/FS/LS modes are supported.
      type: boolean
+  qcom,enable-rt:
+    description:
+      If present, register vendor hooks to facilitate runtime suspend/resume
+    type: boolean

A Krzysztof pointed out, properties should define the hardware behaviour, not tot the implementation details. For this case the hardware isn't wired up to vbus, so maybe something like "qcom,no-vbus"?
+

On all targets, vbus is not routed to hardware. This vbus toggle indication is given to controller via qscratch only.

Regards,
Krishna,