Received: by 2002:a25:c205:0:0:0:0:0 with SMTP id s5csp6143408ybf; Thu, 5 Mar 2020 14:06:36 -0800 (PST) X-Google-Smtp-Source: ADFU+vtfCrAiyT920+IQs62rQggvOZvzuqkN3sHHtZUD0fnBjqVnxdivsBzITevj/LYz9bAVvV3h X-Received: by 2002:aca:2312:: with SMTP id e18mr425442oie.118.1583445996556; Thu, 05 Mar 2020 14:06:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1583445996; cv=none; d=google.com; s=arc-20160816; b=O+1S0bLJaLO483CYtmT832IJ32l3t9A6C0Nk4vnsUdValo/XGL+DWdB6PCmeohrdz1 OBI86LriZd0hgEOIwUVTgn4pF2/gt3K39LbgoGjkrfoRkqx0h5bXH5nXSmnRtwebkDiF dcM0rn4OQJolZOS7ZM7d0sS/Sa1m5mQzScjoJ8zhqjgBXYGLdc9kXVCY//i3zfWmD6Z+ tEweWlYWhteFlMJS6qZhj/q5dZw5ypE/PTKClsIoiEPWEhixSTv8nNFRKUCTgZezSQpp LXkY+ab1kdR2haxO+19S4tCBJ3HbJUXrAj2uAeBO44PiepYnvjFxPYCOpS9yeJRe6B+t RIFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=IX8YVBG4p5k2QAbGer4G96xm3Z8NgKYITeF73HxiwoQ=; b=Z+lSVBjpD7eKzXTN6MIpqeCG8q3Gl4QkjLRADbqktuUxjoOI2fGrCCxlwpAyDSdJo1 8N1mMEyagoIPm0y9G/nUw+vzLrYHt+S/LWoXj71TD3Fvt+9ELCRdv1Fu5HiZj+0+vqBT b7M7aw5/EFawVkOe0TJJMZrFlPyQvTsamdgHzOpBOnsS3v7QNHci22ObaYdq3J7gyOMR Ce4mpQ5MvUTfO6xwrA/4I6pVR8R7veIB1NUO8o9Jlhbq08r4TB1UmLLzZayh9ubWnGdv 6Itdxi845bGgbB3ld3GpNxEcFG76SeLlpTdy2zsZt84FgY4z+HIERimiUUlc7SfC0ry/ EoZw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=S9o23N9G; 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 x16si146516otj.178.2020.03.05.14.06.25; Thu, 05 Mar 2020 14:06:36 -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=S9o23N9G; 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 S1726234AbgCEWGC (ORCPT + 99 others); Thu, 5 Mar 2020 17:06:02 -0500 Received: from mail-pf1-f195.google.com ([209.85.210.195]:39241 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726142AbgCEWGB (ORCPT ); Thu, 5 Mar 2020 17:06:01 -0500 Received: by mail-pf1-f195.google.com with SMTP id l7so42618pff.6 for ; Thu, 05 Mar 2020 14:06:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=IX8YVBG4p5k2QAbGer4G96xm3Z8NgKYITeF73HxiwoQ=; b=S9o23N9G7dy68xECMQim9toy0bN5fZeup+7EJEjxkpq+VK5XUc65vI4l3O2YZKdpkQ gvA9npnGGhuiu0rZ0dDbA9D8ltdVcaCSy2DvHupfA2qXEYDL66i9t6sipSByz8uIm1mo dNf4lwirNVWsg+ZSVFVC9Qcq5cSWDHKVE2njM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=IX8YVBG4p5k2QAbGer4G96xm3Z8NgKYITeF73HxiwoQ=; b=Kend54Yf03kbF3C+ujlzLxSUX/ETlUSiIS7l+eOn6JkjPAjA4ymqEutm8muzpy/f+a TcS5sjsk4tn4gjPHVY2kswM7lQTYGfmpsOapO/f+m9Y5ALZt3FsezfAF+tklLkfa+UzK ynBLnXlIdDC395uEPH9Ht78pImEAOiyKrSGnRJQ5z9PHkeG43L0QSW2xfLsXJ5Zv4oDa sUt9ZzrDxIm4v76UYMtiiIEH7o7oAqOZTP2NtaQ0R0XYlaAUDbDfHNdeaugMdg71cYzO yBUiygKdQNq/B4ivX6khFfaPtzvJ0SXSlqnrbhrk1RqKQT9S6DrDoYoqnqfDvk9WT1f5 GmdQ== X-Gm-Message-State: ANhLgQ0LYiiQ6ua6YFZ6lqqigJ4hubg+R0jPRZDvtmelIN0LTpeglACt ARQBlujxC1SRDOgKQWXmdBJZrg== X-Received: by 2002:a63:9dc2:: with SMTP id i185mr243179pgd.240.1583445960052; Thu, 05 Mar 2020 14:06:00 -0800 (PST) Received: from google.com ([2620:15c:202:201:476b:691:abc3:38db]) by smtp.gmail.com with ESMTPSA id w14sm32400569pgi.22.2020.03.05.14.05.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Mar 2020 14:05:59 -0800 (PST) Date: Thu, 5 Mar 2020 14:05:58 -0800 From: Prashant Malani To: Stephen Boyd Cc: devicetree@vger.kernel.org, bleung@chromium.org, heikki.krogerus@linux.intel.com, enric.balletbo@collabora.com, Bryan O'Donoghue , Chunfeng Yun , Greg Kroah-Hartman , Linus Walleij , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-usb@vger.kernel.org, Mark Rutland , Matthias Brugger , Miquel Raynal , Rob Herring Subject: Re: [PATCH v2] dt-bindings: Convert usb-connector to YAML format. Message-ID: <20200305220558.GC142502@google.com> References: <20200305030135.210675-1-pmalani@chromium.org> <158344320452.25912.4758137777863945655@swboyd.mtv.corp.google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <158344320452.25912.4758137777863945655@swboyd.mtv.corp.google.com> User-Agent: Mutt/1.12.2 (2019-09-21) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Stephen, Thanks for reviewing the patch. Kindly see my responses inline. Best regards, -Prashant On Thu, Mar 05, 2020 at 01:20:04PM -0800, Stephen Boyd wrote: > Quoting Prashant Malani (2020-03-04 19:01:30) > > diff --git a/Documentation/devicetree/bindings/connector/usb-connector.yaml b/Documentation/devicetree/bindings/connector/usb-connector.yaml > > new file mode 100644 > > index 0000000000000..b386e2880405c > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/connector/usb-connector.yaml > > @@ -0,0 +1,203 @@ > > +# SPDX-License-Identifier: GPL-2.0-only > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/connector/usb-connector.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: USB Connector > > + > > +maintainers: > > + - linux-usb@vger.kernel.org > > + > > +description: > > + A USB connector node represents a physical USB connector. It should be a child > > + of a USB interface controller. > > + > > +properties: > > + compatible: > > + enum: > > + - usb-a-connector > > + - usb-b-connector > > + - usb-c-connector > > + > > + label: > > + description: Symbolic name for the connector. > > + > > + type: > > + description: Size of the connector, should be specified in case of USB-A, > > + USB-B non-fullsize connectors. > > Maybe "should be specified in case of non-fullsize 'usb-a-connector' or > 'usb-b-connector' compatible connectors"? > Done. > > + $ref: /schemas/types.yaml#definitions/string > > + enum: > > + - mini > > + - micro > > + > > + self-powered: > > + description: Set this property if the USB device has its own power source. > > + type: boolean > > + > > + # The following are optional properties for "usb-b-connector". > > + id-gpios: > > + description: An input gpio for USB ID pin. > > + maxItems: 1 > > + > > + vbus-gpios: > > + description: An input gpio for USB VBus pin, used to detect presence of > > + VBUS 5V. See gpio/gpio.txt. > > Can this be written as bindings/gpio/gpio.txt? Dropping it based on Rob's later comment. > > > + maxItems: 1 > > + > > + vbus-supply: > > + description: A phandle to the regulator for USB VBUS if needed when host > > + mode or dual role mode is supported. > > + Particularly, if use an output GPIO to control a VBUS regulator, should > > + model it as a regulator. See regulator/fixed-regulator.yaml > > And bindings/regulator/fixed-regulator.yaml? The idea is to > disambiguate from kernel Documentation/ directory. Done. > > > + > > + # The following are optional properties for "usb-c-connector". > > Is there a way to constrain the binding so that this can't be put in a > connector that doesn't have the usb-c-connector compatible string? > > > + power-role: > > + description: Determines the power role that the Type C connector will > > + support. "dual" refers to Dual Role Port (DRP). > > + allOf: > > + - $ref: /schemas/types.yaml#definitions/string > > + enum: > > + - source > > + - sink > > + - dual > > + > > + try-power-role: > > + description: Preferred power role. > > + allOf: > > + - $ref: /schemas/types.yaml#definitions/string > > + enum: > > + - source > > + - sink > > + - dual > > + > > + data-role: > > + description: Data role if Type C connector supports USB data. "dual" refers > > + Dual Role Device (DRD). > > + allOf: > > + - $ref: /schemas/types.yaml#definitions/string > > + enum: > > + - host > > + - device > > + - dual > > Is there a way to maintain a description for each possible string > property? Then we could move the last sentence in the description above > to be attached to '- dual' here. > I'm not sure of a way to do this, so leaving this as is for now. > > + > > + # The following are optional properties for "usb-c-connector" with power > > + # delivery support. > > + source-pdos: > > + description: An array of u32 with each entry providing supported power > > + source data object(PDO), the detailed bit definitions of PDO can be found > > + in "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.2 > > + Source_Capabilities Message, the order of each entry(PDO) should follow > > + the PD spec chapter 6.4.1. Required for power source and power dual role. > > + User can specify the source PDO array via PDO_FIXED/BATT/VAR/PPS_APDO() > > + defined in dt-bindings/usb/pd.h. > > + minItems: 1 > > + maxItems: 7 > > + allOf: > > + - $ref: /schemas/types.yaml#/definitions/uint32-array > > + > > + sink-pdos: > > + description: An array of u32 with each entry providing supported power sink > > + data object(PDO), the detailed bit definitions of PDO can be found in > > + "Universal Serial Bus Power Delivery Specification" chapter 6.4.1.3 > > + Sink Capabilities Message, the order of each entry(PDO) should follow the > > + PD spec chapter 6.4.1. Required for power sink and power dual role. User > > + can specify the sink PDO array via PDO_FIXED/BATT/VAR/PPS_APDO() defined > > + in dt-bindings/usb/pd.h. > > + minItems: 1 > > + maxItems: 7 > > + allOf: > > + - $ref: /schemas/types.yaml#/definitions/uint32-array > > + > > + op-sink-microwatt: > > + description: Sink required operating power in microwatt, if source can't > > + offer the power, Capability Mismatch is set. Required for power sink and > > + power dual role. > > + > > + ports: > > + description: OF graph bindings (specified in bindings/graph.txt) that model > > + any data bus to the connector unless the bus is between parent node and > > + the connector. Since a single connector can have multiple data buses every > > + bus has assigned OF graph port number as described below. > > has an assigned? Done. > > > + type: object > > + properties: > > + port@0: > > + type: object > > + description: High Speed (HS), present in all connectors. > > + > > + port@1: > > + type: object > > + description: Super Speed (SS), present in SS capable connectors. > > + > > + port@2: > > + type: object > > + description: Sideband Use (SBU), present in USB-C. > > Likewise, is it possible to constrain this to only usb-c-connector > compatible string based bindings? And if so, does it become required for > that compatible string? > > > + > > + required: > > + - port@0 > > + > > +required: > > + - compatible > > + > > +examples: > > + # Micro-USB connector with HS lines routed via controller (MUIC). > > + - |+ > > + muic-max77843@66 { > > Add a reg = <0x66>; here? Or drop the unit address above. Dropped the unit address. > > > + usb_con1: connector { > > + compatible = "usb-b-connector"; > > + label = "micro-USB"; > > + type = "micro"; > > + }; > > + }; > > + > > + # USB-C connector attached to CC controller (s2mm005), HS lines routed > > + # to companion PMIC (max77865), SS lines to USB3 PHY and SBU to DisplayPort. > > + # DisplayPort video lines are routed to the connector via SS mux in USB3 PHY. > > + - |+ > > + ccic: s2mm005@33 { > > Same unit address comment. Dropped the unit address. > > > + usb_con2: connector { > > + compatible = "usb-c-connector"; > > + label = "USB-C"; > > + > > + ports { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + port@0 { > > + reg = <0>; > > + usb_con_hs: endpoint { > > + remote-endpoint = <&max77865_usbc_hs>; > > + }; > > + }; > > + port@1 { > > + reg = <1>; > > + usb_con_ss: endpoint { > > + remote-endpoint = <&usbdrd_phy_ss>; > > + }; > > + }; > > + port@2 { > > + reg = <2>; > > + usb_con_sbu: endpoint { > > + remote-endpoint = <&dp_aux>; > > + }; > > Tabs should be replaced with spaces. Fixed the spacing here. > > > + }; > > + }; > > + }; > > + }; > > + > > + # USB-C connector attached to a typec port controller(ptn5110), which has > > + # power delivery support and enables drp. > > + - |+ > > + #include > > + typec: ptn5110@50 { > > Same unit address comment. Dropped the unit address. > > > + usb_con3: connector { > > + compatible = "usb-c-connector"; > > + label = "USB-C"; > > + power-role = "dual"; > > + try-power-role = "sink"; > > + source-pdos = ; > > + sink-pdos = > + PDO_VAR(5000, 12000, 2000)>; > > + op-sink-microwatt = <10000000>; > > + }; > > + };