On Thu, Feb 27, 2020 at 05:12:16PM +0200, Heikki Krogerus wrote: > Hi, > > On Wed, Feb 19, 2020 at 04:30:55PM -0800, Prashant Malani wrote: > > 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 > > Do you really need to redefine those? No. > > I think you just need to mention that there is a required sub-node > "connector", and the place where it's described. So something > like this: > > Required sub-node: > - connector : The "usb-c-connector". The bindings of the > connector node are specified in: > > Documentation/devicetree/bindings/connector/usb-connector.txt Ideally, we'd convert this to schema first and then here just have: connector: $ref: /schemas/connector/usb-connector.yaml# > > > Then you just need to define the Chrome OS EC specific properties, so > I guess just the "port-number". 'reg' as Stephen suggested. Rob