All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Andrzej Hajda <a.hajda@samsung.com>
Cc: Li Jun <jun.li@nxp.com>,
	gregkh@linuxfoundation.org, heikki.krogerus@linux.intel.com,
	linux@roeck-us.net, mark.rutland@arm.com, yueyao@google.com,
	peter.chen@nxp.com, garsilva@embeddedor.com, o_leveque@orange.fr,
	shufan_lee@richtek.com, linux-usb@vger.kernel.org,
	devicetree@vger.kernel.org, linux-imx@nxp.com
Subject: Re: [PATCH v2 10/12] dt-bindings: connector: add properties for typec power delivery
Date: Fri, 2 Mar 2018 16:38:41 -0600	[thread overview]
Message-ID: <20180302223841.2lj3dutyknlhxvra@rob-hp-laptop> (raw)
In-Reply-To: <20522804-65ab-5d48-716a-c199e4c095fc@samsung.com>

On Tue, Feb 27, 2018 at 09:41:19AM +0100, Andrzej Hajda wrote:
> On 26.02.2018 12:49, Li Jun wrote:
> > In case of usb-c-connector with power delivery support, add bingdings
> > supported by current typec driver, so user can pass all those properties
> > via dt.
> >
> > Signed-off-by: Li Jun <jun.li@nxp.com>
> > ---
> > Changes for v2:
> > - Added typec properties are based on general usb connector bindings[1]
> >   proposed by Andrzej Hajda.
> > - Use the standard unit suffixes as defined in property-units.txt.
> >
> > [1] https://patchwork.kernel.org/patch/10231447/
> >
> >  .../bindings/connector/usb-connector.txt           | 43 ++++++++++++++++++++++
> >  1 file changed, 43 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/connector/usb-connector.txt b/Documentation/devicetree/bindings/connector/usb-connector.txt
> > index e1463f1..242f6df 100644
> > --- a/Documentation/devicetree/bindings/connector/usb-connector.txt
> > +++ b/Documentation/devicetree/bindings/connector/usb-connector.txt
> > @@ -15,6 +15,30 @@ Optional properties:
> >  - type: size of the connector, should be specified in case of USB-A, USB-B
> >    non-fullsize connectors: "mini", "micro".
> >  
> > +Required properties for usb-c-connector with power delivery support:
> > +- port-type: should be one of "source", "sink" or "dual".
> > +- default-role: preferred power role if port-type is "dual"(drp), should be
> > +  "sink" or "source".
> 
> Since port carries data and power, it would be better to explicitly
> mention it in names of properties which can be ambiguous.
> Maybe instead of 'port-type' you can use 'power-role', for example.
> Other thing is that default-role is required only in case of DRP, so
> maybe better would be to squash it in power-role, for example:
> ��� power-role: should be on of "source", "sink", "dual-source",
> "dual-sink", in case of dual roles suffix determines preferred role.
> 
> 
> > +- src-pdos: 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.
> > +- snk-pdos: 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.
> 
> We should avoid magic numbers, magic numbers are bad :)

I don't mind if there's a defined format for the data.

> If we really need to use PDOs here, I think we can re-use PDO_* macros
> [1] - DTC should be able to parse it, maybe some lifting will be necessary.
> 
> [1]:
> https://elixir.bootlin.com/linux/v4.16-rc3/source/include/linux/usb/pd.h#L161
> > +- max-snk-microvolt: The max voltage the sink can support in micro volts,
> > +  required for power sink and power dual role.
> > +- max-snk-microamp: The max current the sink can support in micro amps,
> > +  required for power sink and power dual role.
> > +- max-snk-microwatt-hours: The max power the sink can support in micro
> > +  Watt-hours, required for power sink and power dual role.
> > +- op-snk-microwatt-hours: Sink required operating power in micro Watt-hours,
> > +  if source offered power is less then it, Capability Mismatch is set,
> > +  required for power sink and power dual role.
> 
> What is the relation between above properties and PDOs specified earlier?
> Are you sure all these props are required?
> 
> And general remark regarding all above properties. For me, most of them
> are specific not to the port but to devices responsible for power
> management: chargers, pmics,....
> In many cases these properties are redundant with devices capabilities.
> On the other side I guess in many cases it may be convenient to put them
> here, so I am not sure what is better :)

I debated that too, but decided if you had 2 connectors connected to a 
single power controller, then you'd want these in the connector.

Rob

WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org>
To: Andrzej Hajda <a.hajda@samsung.com>
Cc: Li Jun <jun.li@nxp.com>,
	gregkh@linuxfoundation.org, heikki.krogerus@linux.intel.com,
	linux@roeck-us.net, mark.rutland@arm.com, yueyao@google.com,
	peter.chen@nxp.com, garsilva@embeddedor.com, o_leveque@orange.fr,
	shufan_lee@richtek.com, linux-usb@vger.kernel.org,
	devicetree@vger.kernel.org, linux-imx@nxp.com
Subject: [v2,10/12] dt-bindings: connector: add properties for typec power delivery
Date: Fri, 2 Mar 2018 16:38:41 -0600	[thread overview]
Message-ID: <20180302223841.2lj3dutyknlhxvra@rob-hp-laptop> (raw)

On Tue, Feb 27, 2018 at 09:41:19AM +0100, Andrzej Hajda wrote:
> On 26.02.2018 12:49, Li Jun wrote:
> > In case of usb-c-connector with power delivery support, add bingdings
> > supported by current typec driver, so user can pass all those properties
> > via dt.
> >
> > Signed-off-by: Li Jun <jun.li@nxp.com>
> > ---
> > Changes for v2:
> > - Added typec properties are based on general usb connector bindings[1]
> >   proposed by Andrzej Hajda.
> > - Use the standard unit suffixes as defined in property-units.txt.
> >
> > [1] https://patchwork.kernel.org/patch/10231447/
> >
> >  .../bindings/connector/usb-connector.txt           | 43 ++++++++++++++++++++++
> >  1 file changed, 43 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/connector/usb-connector.txt b/Documentation/devicetree/bindings/connector/usb-connector.txt
> > index e1463f1..242f6df 100644
> > --- a/Documentation/devicetree/bindings/connector/usb-connector.txt
> > +++ b/Documentation/devicetree/bindings/connector/usb-connector.txt
> > @@ -15,6 +15,30 @@ Optional properties:
> >  - type: size of the connector, should be specified in case of USB-A, USB-B
> >    non-fullsize connectors: "mini", "micro".
> >  
> > +Required properties for usb-c-connector with power delivery support:
> > +- port-type: should be one of "source", "sink" or "dual".
> > +- default-role: preferred power role if port-type is "dual"(drp), should be
> > +  "sink" or "source".
> 
> Since port carries data and power, it would be better to explicitly
> mention it in names of properties which can be ambiguous.
> Maybe instead of 'port-type' you can use 'power-role', for example.
> Other thing is that default-role is required only in case of DRP, so
> maybe better would be to squash it in power-role, for example:
>     power-role: should be on of "source", "sink", "dual-source",
> "dual-sink", in case of dual roles suffix determines preferred role.
> 
> 
> > +- src-pdos: 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.
> > +- snk-pdos: 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.
> 
> We should avoid magic numbers, magic numbers are bad :)

I don't mind if there's a defined format for the data.

> If we really need to use PDOs here, I think we can re-use PDO_* macros
> [1] - DTC should be able to parse it, maybe some lifting will be necessary.
> 
> [1]:
> https://elixir.bootlin.com/linux/v4.16-rc3/source/include/linux/usb/pd.h#L161
> > +- max-snk-microvolt: The max voltage the sink can support in micro volts,
> > +  required for power sink and power dual role.
> > +- max-snk-microamp: The max current the sink can support in micro amps,
> > +  required for power sink and power dual role.
> > +- max-snk-microwatt-hours: The max power the sink can support in micro
> > +  Watt-hours, required for power sink and power dual role.
> > +- op-snk-microwatt-hours: Sink required operating power in micro Watt-hours,
> > +  if source offered power is less then it, Capability Mismatch is set,
> > +  required for power sink and power dual role.
> 
> What is the relation between above properties and PDOs specified earlier?
> Are you sure all these props are required?
> 
> And general remark regarding all above properties. For me, most of them
> are specific not to the port but to devices responsible for power
> management: chargers, pmics,....
> In many cases these properties are redundant with devices capabilities.
> On the other side I guess in many cases it may be convenient to put them
> here, so I am not sure what is better :)

I debated that too, but decided if you had 2 connectors connected to a 
single power controller, then you'd want these in the connector.

Rob
---
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2018-03-02 22:38 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-26 11:49 [PATCH v2 00/12] staging: typec: tcpci: move out of staging Li Jun
2018-02-26 11:49 ` [PATCH v2 01/12] usb: typec: add API to get port type and preferred role Li Jun
2018-02-26 11:49   ` [v2,01/12] " Jun Li
2018-02-26 13:19   ` [PATCH v2 01/12] " Heikki Krogerus
2018-02-26 13:19     ` [v2,01/12] " Heikki Krogerus
2018-03-05  7:54     ` [PATCH v2 01/12] " Jun Li
2018-03-05  7:54       ` [v2,01/12] " Jun Li
2018-02-26 11:49 ` [PATCH v2 02/12] usb: typec: add API to get sink and source config Li Jun
2018-02-26 11:49   ` [v2,02/12] " Jun Li
2018-02-26 13:32   ` [PATCH v2 02/12] " Heikki Krogerus
2018-02-26 13:32     ` [v2,02/12] " Heikki Krogerus
2018-03-05  8:40     ` [PATCH v2 02/12] " Jun Li
2018-03-05  8:40       ` [v2,02/12] " Jun Li
2018-02-26 11:49 ` [PATCH v2 03/12] staging: typec: tcpci: support port config passed via dt Li Jun
2018-02-26 11:49   ` [v2,03/12] " Jun Li
2018-02-26 14:06   ` [PATCH v2 03/12] " Heikki Krogerus
2018-02-26 14:06     ` [v2,03/12] " Heikki Krogerus
2018-02-26 14:30     ` [PATCH v2 03/12] " Jun Li
2018-02-26 14:30       ` [v2,03/12] " Jun Li
2018-02-27 11:03       ` [PATCH v2 03/12] " Heikki Krogerus
2018-02-27 11:03         ` [v2,03/12] " Heikki Krogerus
2018-03-05  8:53         ` [PATCH v2 03/12] " Jun Li
2018-03-05  8:53           ` [v2,03/12] " Jun Li
2018-03-05  9:53           ` [PATCH v2 03/12] " Heikki Krogerus
2018-03-05  9:53             ` [v2,03/12] " Heikki Krogerus
2018-03-05 10:35             ` [PATCH v2 03/12] " Jun Li
2018-03-05 10:35               ` [v2,03/12] " Jun Li
2018-03-05 11:30               ` [PATCH v2 03/12] " Heikki Krogerus
2018-03-05 11:30                 ` [v2,03/12] " Heikki Krogerus
2018-03-05 12:38                 ` [PATCH v2 03/12] " Jun Li
2018-03-05 12:38                   ` [v2,03/12] " Jun Li
2018-02-26 11:49 ` [PATCH v2 04/12] staging: typec: tcpci: register port before request irq Li Jun
2018-02-26 11:49   ` [v2,04/12] " Jun Li
2018-02-26 11:49 ` [PATCH v2 05/12] staging: typec: tcpci: enable vbus detection Li Jun
2018-02-26 11:49   ` [v2,05/12] " Jun Li
2018-02-26 11:49 ` [PATCH v2 06/12] typec: tcpm: add starting value for drp toggling Li Jun
2018-02-26 11:49   ` [v2,06/12] " Jun Li
2018-02-26 11:49 ` [PATCH v2 07/12] staging: typec: tcpci: correct " Li Jun
2018-02-26 11:49   ` [v2,07/12] " Jun Li
2018-02-26 11:49 ` [PATCH v2 08/12] staging: typec: tcpci: keep the uncontact cc line open Li Jun
2018-02-26 11:49   ` [v2,08/12] " Jun Li
2018-02-26 11:49 ` [PATCH v2 09/12] staging: typec: tcpci: Only touch target bit when enable vconn Li Jun
2018-02-26 11:49   ` [v2,09/12] " Jun Li
2018-02-26 11:49 ` [PATCH v2 10/12] dt-bindings: connector: add properties for typec power delivery Li Jun
2018-02-26 11:49   ` [v2,10/12] " Jun Li
2018-02-27  8:41   ` [PATCH v2 10/12] " Andrzej Hajda
2018-02-27  8:41     ` [v2,10/12] " Andrzej Hajda
2018-03-02 22:38     ` Rob Herring [this message]
2018-03-02 22:38       ` Rob Herring
2018-03-05  7:52       ` [PATCH v2 10/12] " Jun Li
2018-03-05  7:52         ` [v2,10/12] " Jun Li
2018-03-05 12:25         ` [PATCH v2 10/12] " Jun Li
2018-03-05 12:25           ` [v2,10/12] " Jun Li
2018-03-05  7:00     ` [PATCH v2 10/12] " Jun Li
2018-03-05  7:00       ` [v2,10/12] " Jun Li
2018-03-05  9:59       ` [PATCH v2 10/12] " Andrzej Hajda
2018-03-05  9:59         ` [v2,10/12] " Andrzej Hajda
2018-03-06  9:38         ` [PATCH v2 10/12] " Jun Li
2018-03-06  9:38           ` [v2,10/12] " Jun Li
2018-03-06 11:54           ` [PATCH v2 10/12] " Andrzej Hajda
2018-03-06 11:54             ` [v2,10/12] " Andrzej Hajda
2018-03-06 12:02           ` [PATCH v2 10/12] " Heikki Krogerus
2018-03-06 12:02             ` [v2,10/12] " Heikki Krogerus
2018-03-08  1:41             ` [PATCH v2 10/12] " Jun Li
2018-03-08  1:41               ` [v2,10/12] " Jun Li
2018-03-09  7:34               ` [PATCH v2 10/12] " Heikki Krogerus
2018-03-09  7:34                 ` [v2,10/12] " Heikki Krogerus
2018-03-02 22:29   ` [PATCH v2 10/12] " Rob Herring
2018-03-02 22:29     ` [v2,10/12] " Rob Herring
2018-03-05  7:07     ` [PATCH v2 10/12] " Jun Li
2018-03-05  7:07       ` [v2,10/12] " Jun Li
2018-02-26 11:49 ` [PATCH v2 11/12] dt-bindings: usb: add documentation for typec port controller(TCPCI) Li Jun
2018-02-26 11:49   ` [v2,11/12] " Jun Li
2018-03-02 22:56   ` [PATCH v2 11/12] " Rob Herring
2018-03-02 22:56     ` [v2,11/12] " Rob Herring
2018-02-26 11:49 ` [PATCH v2 12/12] staging: typec: tcpci: move tcpci driver out of staging Li Jun
2018-02-26 11:49   ` [v2,12/12] " Jun Li

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180302223841.2lj3dutyknlhxvra@rob-hp-laptop \
    --to=robh@kernel.org \
    --cc=a.hajda@samsung.com \
    --cc=devicetree@vger.kernel.org \
    --cc=garsilva@embeddedor.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=jun.li@nxp.com \
    --cc=linux-imx@nxp.com \
    --cc=linux-usb@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=mark.rutland@arm.com \
    --cc=o_leveque@orange.fr \
    --cc=peter.chen@nxp.com \
    --cc=shufan_lee@richtek.com \
    --cc=yueyao@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.