Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp5329575ybv; Tue, 11 Feb 2020 13:38:06 -0800 (PST) X-Google-Smtp-Source: APXvYqzKzSOI8OnUHaqOFaMVPPFS75MXj4QcO4vniGofzrwiovFeTV5RTMVV+rLNT7SUm5vA0r7E X-Received: by 2002:a05:6830:606:: with SMTP id w6mr6951808oti.323.1581457085780; Tue, 11 Feb 2020 13:38:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581457085; cv=none; d=google.com; s=arc-20160816; b=d4IPTpky8vIJ89KQJIAw4uW0nmcfoO4+seS36zrPba4k/T716NK1THw57qb/DILb/A WJgcllYndhaoKQ2v6RmIN+Z+KvRXJ2Bbs+EyIjQj+JfWOj795IQhc+V25tJk1vyIXMG9 1V3pVCGB0mQhs7vxtzgv39z6pBnTcU+tNuPQMa1QFmae+Oe5bzpyCwiMlXUZRZBL97eM LkAxg4YhzRrnvhoTmdg4pszCHeX1tRpxgwj6vD2/Axc1DYF1HwybzvwonnN4IOEH2qGu gQwICauTqJOfMg4YfYfFOrZ+lTo4wCLqfoGpYdcxqqrgYHjMRDP6yUgSCedHATvjhwtX KrtQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=v8ElLutl/m0ZH3q/Jagn5Sm+o4lBHaVCMWC2w+7i5dQ=; b=hE3mW7SpM2zyXj4vXQrqKsdrL+DMCjXreu+EMI/8ztHz4SEJ1D0xQw+D6MaxfFvSbd Q7S1CLvLZiM2+MFLcLoc4z7I3bafJrzZOgOeoDbafyZI+O87AWndI+Se8mQSg94S9YN1 BOZlgEL91rcJXl0uigbFExaa6M2FwCaP0KzgUv/FUiwcIuItUWha1WQjgfCFLVImGNfW cgAC8ak/+0kZPoZI+OELktHwfJXJ9gIWa7gQStEhQ5iRaFZJJl6GeH5c92qGqSUoEo/a TkumCJtIt5R0tKhkE7USRIA31uy2arqkfKd5/496Rglmp+3NrOBbwWmUQaDfffwI3vtR wCAg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=J9JXf+ef; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d5si2202259oij.139.2020.02.11.13.37.53; Tue, 11 Feb 2020 13:38:05 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=J9JXf+ef; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730704AbgBKTCA (ORCPT + 99 others); Tue, 11 Feb 2020 14:02:00 -0500 Received: from mail-qt1-f195.google.com ([209.85.160.195]:37873 "EHLO mail-qt1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730414AbgBKTCA (ORCPT ); Tue, 11 Feb 2020 14:02:00 -0500 Received: by mail-qt1-f195.google.com with SMTP id w47so8807504qtk.4 for ; Tue, 11 Feb 2020 11:01:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=v8ElLutl/m0ZH3q/Jagn5Sm+o4lBHaVCMWC2w+7i5dQ=; b=J9JXf+efOVR0SzD70t/aui7ZMlj9gDR5dOzMNHqIi3LnZA939xxuLrhEUjLovPPR6r saDD3EshQmGnPX294Pi+A4dLvQrAYlLtt2KovymDgkzXqEYBrke6MqaUadLRIzzT0OQe KJ5ow30BgnINxPHCoZbay5J1cCeJjgpQp44/w= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=v8ElLutl/m0ZH3q/Jagn5Sm+o4lBHaVCMWC2w+7i5dQ=; b=uLCtQdkzrbeEdLu9V/G+PKaSpxVYlkPFVewguXckAXHgb4m9dN2lfJ6uo0R30WH/Id zAvJmyAkLm8NzmPDilAipbcfWqeqzCtyiATu9Ua/1WFSF4efczYO6SZSNkn7yzUJ+VvG tlUH8dGs1VU5giZcHBS/67cZpMnIMdw/q7dLaFEyY9S0YPdO4/F8mQvJmdWW6AWlc80Y 6/29YlPc1Ciera2NfnubuzsK6k6lVUMhQfjNB+L+PX6KMI/+B/CSQiYVZrN03sOZE1oe 2JohgJZavNhuErjXNQD2jvXzFGXc7vUj4hp2MS55ylpO5WY+vG3wD3jz6faUuxYUnu5D JjTg== X-Gm-Message-State: APjAAAUBn3NtXq+oSdBGTNylUL9Z8BY7EH8YoPFp72YZBrP/kp77PTQ6 ZP5WhoZkMDmvCDQFw/ZkKPbD+TKK5kE5iv3gpMdmCg== X-Received: by 2002:ac8:5457:: with SMTP id d23mr3594214qtq.93.1581447717756; Tue, 11 Feb 2020 11:01:57 -0800 (PST) MIME-Version: 1.0 References: <20200207203752.209296-1-pmalani@chromium.org> <20200207203752.209296-2-pmalani@chromium.org> In-Reply-To: From: Prashant Malani Date: Tue, 11 Feb 2020 11:01:46 -0800 Message-ID: Subject: Re: [PATCH v2 1/4] dt-bindings: Add cros-ec Type C port driver To: Enric Balletbo i Serra Cc: Linux Kernel Mailing List , heikki.krogerus@intel.com, Benson Leung , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Guenter Roeck , Mark Rutland , Rob Herring Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Resending (because I didn't send it in PlainText mode, so the MLs blocked the email). Sorry. On Tue, Feb 11, 2020 at 11:00 AM Prashant Malani wrote: > > Hi Enric, > > Thanks as always for reviewing the patch. Kindly see my responses inline: > > On Tue, Feb 11, 2020 at 2:28 AM Enric Balletbo i Serra wrote: >> >> Hi Prashant, >> >> On 7/2/20 21:37, 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 >> > --- >> > >> > Changes in v2: >> > - No changes. Patch first introduced in v2 of series. >> > >> > .../bindings/chrome/google,cros-ec-typec.yaml | 77 +++++++++++++++++++ >> > 1 file changed, 77 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..46ebcbe76db3c2 >> > --- /dev/null >> > +++ b/Documentation/devicetree/bindings/chrome/google,cros-ec-typec.yaml >> > @@ -0,0 +1,77 @@ >> > +# SPDX-License-Identifier: GPL-2.0 >> >> I think that Google is fine with the dual licensing here. Would be good if this >> can be (GPL-2.0-only OR BSD-2-Clause) > > > Thanks for catching this. I will update it in the next version. >> >> >> > +%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 >> > + - Prashant Malani >> > + >> > +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 >> > + >> > + port: >> > + description: A node that represents a physical Type C port on the >> > + device. >> > + type: object >> > + properties: >> > + port-number: >> > + description: The number used by the Chrome OS EC to identify >> > + this type C port. >> > + $ref: /schemas/types.yaml#/definitions/uint32 >> >> Any range of values allowed? 0 is okay? > > > 0 is acceptable. Looks like Chrome OS EC numbers the ports as 0 to (num_ports - 1). > Actually, looking at it more closely, the port info EC command struct uses uint8_t (https://elixir.bootlin.com/linux/latest/source/include/linux/platform_data/cros_ec_commands.h#L4879) > Also, num_ports cannot be larger than: https://elixir.bootlin.com/linux/latest/ident/EC_USB_PD_MAX_PORTS > > So perhaps this should be updated to say it can be any value from 0 - EC_USB_PD_MAX_PORTS ? (Not sure if I can reference #defines from header files in the DT bindings file....) >> >> >> > + power-role: >> >> Sorry if this question is silly, aren't this and below properties the same as >> provided by usb-connector? Can't this be usb-c-connector? >> >> Documentation/devicetree/bindings/connector/usb-connector.txt > > > That's correct, it is the same. I think there is a slight difference between the properties of usb-connector (what properties are defined as optional and required) so I don't know if we can re-use usb-connector. > TBH I wasn't sure about this myself. I am also not sure whether there will be an issue with usb-c-connector being "claimed" by another driver. I think Heikki could perhaps guide us here. >> >> >> > + description: Determines the power role that the Type C port will >> > + adopt. >> > + oneOf: >> > + - items: >> > + - const: sink >> > + - const: source >> > + - const: dual >> > + data-role: >> > + description: Determines the data role that the Type C port will >> > + adopt. >> > + oneOf: >> > + - items: >> > + - const: host >> > + - const: device >> > + - const: dual >> > + try-power-role: >> > + description: Determines the preferred power role of the Type C port. >> > + oneOf: >> > + - items: >> > + - const: sink >> > + - const: source >> > + - const: dual >> > + >> > + required: >> > + - port-number >> > + - power-role >> > + - data-role >> > + - try-power-role >> > + >> > +required: >> > + - compatible >> > + - port >> > + >> > +examples: >> > + - |+ >> >> Rob can confirm, but I think is a good practice add the parent node, so add the >> cros-ec-spi node here? > > Done. Will add it in the next version. >> >> >> > + typec { >> > + compatible = "google,cros-ec-typec"; >> > + >> > + port@0 { >> >> You can run: >> >> make dt_binding_check DT_SCHEMA_FILES=<...>/chrome/google,cros-ec-typec.yaml >> >> And you'll get an error: >> >> typec: 'port' is a required property > > Noted. I will run this check before pushing next time and fix the error. >> >> >> > + port-number = <0>; >> > + power-role = "dual"; >> > + data-role = "dual"; >> > + try-power-role = "source"; >> > + }; >> > + }; >> > >> Thanks, >> >> Enric > > > > Thanks, > > -Prashant