On 11/09/2024 02:07, Amit Sunil Dhamne wrote:I was working off gregkh's tree on usb-next branch as that's suggested for USB development.
This commit adds a new property "pd-timers" to enable setting ofPlease work on mainline, not ancient tree. You cannot get my CC address
platform/board specific pd timer values for timers that have a range of
acceptable values.
Cc: Badhri Jagan Sridharan <badhri@xxxxxxxxxx>
Cc: linux-usb@xxxxxxxxxxxxxxx
Cc: devicetree@xxxxxxxxxxxxxxx
Signed-off-by: Amit Sunil Dhamne <amitsd@xxxxxxxxxx>
like that from mainline.
It's not possible. So either you don't developThe above branch and even the tree on Linus' master branch has you
on mainline or you don't use get_maintainers.pl/b4/patman.
In the context of USB Type C Power Delivery (PD), timers are run on the typec protocol driver---timer of what? OS behavior?
.../bindings/connector/usb-connector.yaml | 23 +++++++++++++++++++
include/dt-bindings/usb/pd.h | 8 +++++++
2 files changed, 31 insertions(+)
diff --git a/Documentation/devicetree/bindings/connector/usb-connector.yaml b/Documentation/devicetree/bindings/connector/usb-connector.yaml
index fb216ce68bb3..9be4ed12f13c 100644
--- a/Documentation/devicetree/bindings/connector/usb-connector.yaml
+++ b/Documentation/devicetree/bindings/connector/usb-connector.yaml
@@ -253,6 +253,16 @@ properties:
additionalProperties: false
+ pd-timers:
+ description: An array of u32 integers, where an even index (i) is the timer (referenced in
+ dt-bindings/usb/pd.h) and the odd index (i+1) is the timer value in ms (refer
+ "Table 6-68 Time Values" of "USB Power Delivery Specification Revision 3.0, Version 1.2 " forDo not describe what DT is. We all know what DT properties allow.
+ the appropriate value). For certain timers the PD spec defines a range rather than a fixed
+ value. The timers may need to be tuned based on the platform. This dt property allows the user
Instead describe how this relates to hardware or boards.
All this is wrongly wrapped. See Coding style (and I am not telling you
the value on purpose, so you will read the coding style) .
+ to assign specific values based on the platform. If these values are not explicitly defined,And what is the default?
+ TCPM will use a valid default value for such timers.
+ $ref: /schemas/types.yaml#/definitions/uint32-arrayI guess you want matrix here.
Ack.+Incorporate it into existing example.
dependencies:
sink-vdos-v1: [ sink-vdos ]
sink-vdos: [ sink-vdos-v1 ]
@@ -478,3 +488,16 @@ examples:
};
};
};
+
+ # USB-C connector with PD timers
+ - |
+ #include <dt-bindings/usb/pd.h>
+ usb {
+ connector {
+ compatible = "usb-c-connector";
+ label = "USB-C";
+ pd-timers =
+ <PD_TIMER_SINK_WAIT_CAP 600>,
+ <PD_TIMER_CC_DEBOUNCE 170>;
+ };Please expand this a bit, so we won't have to reach to external sources.
+ };
diff --git a/include/dt-bindings/usb/pd.h b/include/dt-bindings/usb/pd.h
index e6526b138174..6c58c30f3f39 100644
--- a/include/dt-bindings/usb/pd.h
+++ b/include/dt-bindings/usb/pd.h
@@ -465,4 +465,12 @@
| ((vbm) & 0x3) << 15 | (curr) << 14 | ((vbi) & 0x3f) << 7 \
| ((gi) & 0x3f) << 1 | (ct))
+/* PD Timer definitions */
+/* tTypeCSinkWaitCap (Table 6-68 Time Values, USB PD3.1 Spec) */
+#define PD_TIMER_SINK_WAIT_CAP 0
+/* tPSSourceOff (Table 6-68 Time Values, USB PD3.1 Spec) */
+#define PD_TIMER_PS_SOURCE_OFF 1
+/* tCCDebounce (Table 4-33 CC Timing, USB Type-C Cable & Connector Spec Rel2.2) */
+#define PD_TIMER_CC_DEBOUNCE 2
Best regards,
Krzysztof