Some Chrome OS devices with Embedded Controllers (EC) can read and modify Type C port state. Add an entry in the DT Bindings documentation that lists out the logical device and describes the relevant port information, to be used by the corresponding driver. Signed-off-by: Prashant Malani <pmalani@xxxxxxxxxxxx> --- Changes in v3: - Fixed license identifier. - Renamed "port" to "connector". - Made "connector" be a "usb-c-connector" compatible property. - Updated port-number description to explain min and max values, and removed $ref which was causing dt_binding_check errors. - Fixed power-role, data-role and try-power-role details to make dt_binding_check pass. - Fixed example to include parent EC SPI DT Node. Changes in v2: - No changes. Patch first introduced in v2 of series. .../bindings/chrome/google,cros-ec-typec.yaml | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 Documentation/devicetree/bindings/chrome/google,cros-ec-typec.yaml diff --git a/Documentation/devicetree/bindings/chrome/google,cros-ec-typec.yaml b/Documentation/devicetree/bindings/chrome/google,cros-ec-typec.yaml new file mode 100644 index 00000000000000..97fd982612f120 --- /dev/null +++ b/Documentation/devicetree/bindings/chrome/google,cros-ec-typec.yaml @@ -0,0 +1,86 @@ +# SPDX-License-Identifier: GPL-2.0-only +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/chrome/google,cros-ec-typec.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Google Chrome OS EC(Embedded Controller) Type C port driver. + +maintainers: + - Benson Leung <bleung@xxxxxxxxxxxx> + - Prashant Malani <pmalani@xxxxxxxxxxxx> + +description: + Chrome OS devices have an Embedded Controller(EC) which has access to + Type C port state. This node is intended to allow the host to read and + control the Type C ports. The node for this device should be under a + cros-ec node like google,cros-ec-spi. + +properties: + compatible: + const: google,cros-ec-typec + + connector: + description: A node that represents a physical Type C connector port + on the device. + type: object + properties: + compatible: + const: usb-c-connector + port-number: + description: The number used by the Chrome OS EC to identify + this type C port. Valid values are 0 - (EC_USB_PD_MAX_PORTS - 1). + power-role: + description: Determines the power role that the Type C port will + adopt. + maxItems: 1 + contains: + enum: + - sink + - source + - dual + data-role: + description: Determines the data role that the Type C port will + adopt. + maxItems: 1 + contains: + enum: + - host + - device + - dual + try-power-role: + description: Determines the preferred power role of the Type C port. + maxItems: 1 + contains: + enum: + - sink + - source + - dual + + required: + - port-number + - power-role + - data-role + - try-power-role + +required: + - compatible + - connector + +examples: + - |+ + cros_ec: ec@0 { + compatible = "google,cros-ec-spi"; + + typec { + compatible = "google,cros-ec-typec"; + + usb_con: connector { + compatible = "usb-c-connector"; + port-number = <0>; + power-role = "dual"; + data-role = "dual"; + try-power-role = "source"; + }; + }; + }; -- 2.25.0.265.gbab2e86ba0-goog