* [PATCH v5 1/5] dt-bindings: connector: add typec-power-opmode property to usb-connector
2020-11-06 16:58 [PATCH v5 0/5] STUSB1600 support on STM32MP15xx-DKx Amelie Delaunay
@ 2020-11-06 16:58 ` Amelie Delaunay
2020-11-09 15:03 ` Rob Herring
2020-11-06 16:58 ` [PATCH v5 2/5] dt-bindings: usb: Add DT bindings for STUSB160x Type-C controller Amelie Delaunay
` (4 subsequent siblings)
5 siblings, 1 reply; 16+ messages in thread
From: Amelie Delaunay @ 2020-11-06 16:58 UTC (permalink / raw)
To: Rob Herring, Greg Kroah-Hartman, Maxime Coquelin,
Alexandre Torgue, Russell King, Heikki Krogerus,
Badhri Jagan Sridharan, Jun Li
Cc: devicetree, linux-kernel, linux-usb, linux-stm32,
linux-arm-kernel, Amelie Delaunay, Fabrice Gasnier
Power operation mode may depends on hardware design, so, add the optional
property typec-power-opmode for usb-c connector to select the power
operation mode capability.
Signed-off-by: Amelie Delaunay <amelie.delaunay@st.com>
---
Hi Bahdri, Rob,
I've added the exlusion with FRS property, but new FRS property name
should be use here so, be careful.
---
.../bindings/connector/usb-connector.yaml | 24 +++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/Documentation/devicetree/bindings/connector/usb-connector.yaml b/Documentation/devicetree/bindings/connector/usb-connector.yaml
index 62781518aefc..a84464b3e1f2 100644
--- a/Documentation/devicetree/bindings/connector/usb-connector.yaml
+++ b/Documentation/devicetree/bindings/connector/usb-connector.yaml
@@ -93,6 +93,24 @@ properties:
- device
- dual
+ typec-power-opmode:
+ description: Determines the power operation mode that the Type C connector
+ will support and will advertise through CC pins when it has no power
+ delivery support.
+ - "default" corresponds to default USB voltage and current defined by the
+ USB 2.0 and USB 3.2 specifications, 5V 500mA for USB 2.0 ports and
+ 5V 900mA or 1500mA for USB 3.2 ports in single-lane or dual-lane
+ operation respectively.
+ - "1.5A" and "3.0A", 5V 1.5A and 5V 3.0A respectively, as defined in USB
+ Type-C Cable and Connector specification, when Power Delivery is not
+ supported.
+ allOf:
+ - $ref: /schemas/types.yaml#definitions/string
+ enum:
+ - default
+ - 1.5A
+ - 3.0A
+
# The following are optional properties for "usb-c-connector" with power
# delivery support.
source-pdos:
@@ -192,6 +210,12 @@ allOf:
type:
const: micro
+anyOf:
+ - not:
+ required:
+ - typec-power-opmode
+ - new-source-frs-typec-current
+
additionalProperties: true
examples:
--
2.17.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: connector: add typec-power-opmode property to usb-connector
2020-11-06 16:58 ` [PATCH v5 1/5] dt-bindings: connector: add typec-power-opmode property to usb-connector Amelie Delaunay
@ 2020-11-09 15:03 ` Rob Herring
2020-11-09 15:54 ` Amelie DELAUNAY
0 siblings, 1 reply; 16+ messages in thread
From: Rob Herring @ 2020-11-09 15:03 UTC (permalink / raw)
To: Amelie Delaunay
Cc: Greg Kroah-Hartman, Maxime Coquelin, Alexandre Torgue,
Russell King, Heikki Krogerus, Badhri Jagan Sridharan, Jun Li,
devicetree, linux-kernel, Linux USB List,
moderated list:ARM/STM32 ARCHITECTURE, linux-arm-kernel,
Fabrice Gasnier
On Fri, Nov 6, 2020 at 10:58 AM Amelie Delaunay <amelie.delaunay@st.com> wrote:
>
> Power operation mode may depends on hardware design, so, add the optional
> property typec-power-opmode for usb-c connector to select the power
> operation mode capability.
>
> Signed-off-by: Amelie Delaunay <amelie.delaunay@st.com>
> ---
> Hi Bahdri, Rob,
>
> I've added the exlusion with FRS property, but new FRS property name
> should be use here so, be careful.
>
> ---
> .../bindings/connector/usb-connector.yaml | 24 +++++++++++++++++++
> 1 file changed, 24 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/connector/usb-connector.yaml b/Documentation/devicetree/bindings/connector/usb-connector.yaml
> index 62781518aefc..a84464b3e1f2 100644
> --- a/Documentation/devicetree/bindings/connector/usb-connector.yaml
> +++ b/Documentation/devicetree/bindings/connector/usb-connector.yaml
> @@ -93,6 +93,24 @@ properties:
> - device
> - dual
>
> + typec-power-opmode:
> + description: Determines the power operation mode that the Type C connector
> + will support and will advertise through CC pins when it has no power
> + delivery support.
> + - "default" corresponds to default USB voltage and current defined by the
> + USB 2.0 and USB 3.2 specifications, 5V 500mA for USB 2.0 ports and
> + 5V 900mA or 1500mA for USB 3.2 ports in single-lane or dual-lane
> + operation respectively.
> + - "1.5A" and "3.0A", 5V 1.5A and 5V 3.0A respectively, as defined in USB
> + Type-C Cable and Connector specification, when Power Delivery is not
> + supported.
> + allOf:
> + - $ref: /schemas/types.yaml#definitions/string
> + enum:
> + - default
> + - 1.5A
> + - 3.0A
Use the enums here. Unless you want to define it as actual current as
a numerical value.
Rob
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: connector: add typec-power-opmode property to usb-connector
2020-11-09 15:03 ` Rob Herring
@ 2020-11-09 15:54 ` Amelie DELAUNAY
2020-11-09 16:02 ` Rob Herring
0 siblings, 1 reply; 16+ messages in thread
From: Amelie DELAUNAY @ 2020-11-09 15:54 UTC (permalink / raw)
To: Rob Herring
Cc: Greg Kroah-Hartman, Maxime Coquelin, Alexandre Torgue,
Russell King, Heikki Krogerus, Badhri Jagan Sridharan, Jun Li,
devicetree, linux-kernel, Linux USB List,
moderated list:ARM/STM32 ARCHITECTURE, linux-arm-kernel,
Fabrice Gasnier
On 11/9/20 4:03 PM, Rob Herring wrote:
> On Fri, Nov 6, 2020 at 10:58 AM Amelie Delaunay <amelie.delaunay@st.com> wrote:
>>
>> Power operation mode may depends on hardware design, so, add the optional
>> property typec-power-opmode for usb-c connector to select the power
>> operation mode capability.
>>
>> Signed-off-by: Amelie Delaunay <amelie.delaunay@st.com>
>> ---
>> Hi Bahdri, Rob,
>>
>> I've added the exlusion with FRS property, but new FRS property name
>> should be use here so, be careful.
>>
>> ---
>> .../bindings/connector/usb-connector.yaml | 24 +++++++++++++++++++
>> 1 file changed, 24 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/connector/usb-connector.yaml b/Documentation/devicetree/bindings/connector/usb-connector.yaml
>> index 62781518aefc..a84464b3e1f2 100644
>> --- a/Documentation/devicetree/bindings/connector/usb-connector.yaml
>> +++ b/Documentation/devicetree/bindings/connector/usb-connector.yaml
>> @@ -93,6 +93,24 @@ properties:
>> - device
>> - dual
>>
>> + typec-power-opmode:
>> + description: Determines the power operation mode that the Type C connector
>> + will support and will advertise through CC pins when it has no power
>> + delivery support.
>> + - "default" corresponds to default USB voltage and current defined by the
>> + USB 2.0 and USB 3.2 specifications, 5V 500mA for USB 2.0 ports and
>> + 5V 900mA or 1500mA for USB 3.2 ports in single-lane or dual-lane
>> + operation respectively.
>> + - "1.5A" and "3.0A", 5V 1.5A and 5V 3.0A respectively, as defined in USB
>> + Type-C Cable and Connector specification, when Power Delivery is not
>> + supported.
>> + allOf:
>> + - $ref: /schemas/types.yaml#definitions/string
>> + enum:
>> + - default
>> + - 1.5A
>> + - 3.0A
>
> Use the enums here. Unless you want to define it as actual current as
> a numerical value.
If I understand your point correctly, I think I should remove allOf here
and stick with what is done to describe power-role and data-role
property. Right ?
Regards,
Amelie
>
> Rob
>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: connector: add typec-power-opmode property to usb-connector
2020-11-09 15:54 ` Amelie DELAUNAY
@ 2020-11-09 16:02 ` Rob Herring
2020-11-09 16:10 ` Amelie DELAUNAY
0 siblings, 1 reply; 16+ messages in thread
From: Rob Herring @ 2020-11-09 16:02 UTC (permalink / raw)
To: Amelie DELAUNAY
Cc: Greg Kroah-Hartman, Maxime Coquelin, Alexandre Torgue,
Russell King, Heikki Krogerus, Badhri Jagan Sridharan, Jun Li,
devicetree, linux-kernel, Linux USB List,
moderated list:ARM/STM32 ARCHITECTURE, linux-arm-kernel,
Fabrice Gasnier
On Mon, Nov 9, 2020 at 9:54 AM Amelie DELAUNAY <amelie.delaunay@st.com> wrote:
>
> On 11/9/20 4:03 PM, Rob Herring wrote:
> > On Fri, Nov 6, 2020 at 10:58 AM Amelie Delaunay <amelie.delaunay@st.com> wrote:
> >>
> >> Power operation mode may depends on hardware design, so, add the optional
> >> property typec-power-opmode for usb-c connector to select the power
> >> operation mode capability.
> >>
> >> Signed-off-by: Amelie Delaunay <amelie.delaunay@st.com>
> >> ---
> >> Hi Bahdri, Rob,
> >>
> >> I've added the exlusion with FRS property, but new FRS property name
> >> should be use here so, be careful.
> >>
> >> ---
> >> .../bindings/connector/usb-connector.yaml | 24 +++++++++++++++++++
> >> 1 file changed, 24 insertions(+)
> >>
> >> diff --git a/Documentation/devicetree/bindings/connector/usb-connector.yaml b/Documentation/devicetree/bindings/connector/usb-connector.yaml
> >> index 62781518aefc..a84464b3e1f2 100644
> >> --- a/Documentation/devicetree/bindings/connector/usb-connector.yaml
> >> +++ b/Documentation/devicetree/bindings/connector/usb-connector.yaml
> >> @@ -93,6 +93,24 @@ properties:
> >> - device
> >> - dual
> >>
> >> + typec-power-opmode:
> >> + description: Determines the power operation mode that the Type C connector
> >> + will support and will advertise through CC pins when it has no power
> >> + delivery support.
> >> + - "default" corresponds to default USB voltage and current defined by the
> >> + USB 2.0 and USB 3.2 specifications, 5V 500mA for USB 2.0 ports and
> >> + 5V 900mA or 1500mA for USB 3.2 ports in single-lane or dual-lane
> >> + operation respectively.
> >> + - "1.5A" and "3.0A", 5V 1.5A and 5V 3.0A respectively, as defined in USB
> >> + Type-C Cable and Connector specification, when Power Delivery is not
> >> + supported.
> >> + allOf:
> >> + - $ref: /schemas/types.yaml#definitions/string
> >> + enum:
> >> + - default
> >> + - 1.5A
> >> + - 3.0A
> >
> > Use the enums here. Unless you want to define it as actual current as
> > a numerical value.
>
> If I understand your point correctly, I think I should remove allOf here
> and stick with what is done to describe power-role and data-role
> property. Right ?
No, use the numerical values like FRS:
+ "1" refers to default USB power level as described by "Table
6-14 Fixed Supply PDO - Sink".
+ "2" refers to 1.5A@5V.
+ "3" refers to 3.0A@5V.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [1, 2, 3]
Rob
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: connector: add typec-power-opmode property to usb-connector
2020-11-09 16:02 ` Rob Herring
@ 2020-11-09 16:10 ` Amelie DELAUNAY
2020-11-11 20:25 ` Rob Herring
0 siblings, 1 reply; 16+ messages in thread
From: Amelie DELAUNAY @ 2020-11-09 16:10 UTC (permalink / raw)
To: Rob Herring
Cc: Greg Kroah-Hartman, Maxime Coquelin, Alexandre Torgue,
Russell King, Heikki Krogerus, Badhri Jagan Sridharan, Jun Li,
devicetree, linux-kernel, Linux USB List,
moderated list:ARM/STM32 ARCHITECTURE, linux-arm-kernel,
Fabrice Gasnier
On 11/9/20 5:02 PM, Rob Herring wrote:
> On Mon, Nov 9, 2020 at 9:54 AM Amelie DELAUNAY <amelie.delaunay@st.com> wrote:
>>
>> On 11/9/20 4:03 PM, Rob Herring wrote:
>>> On Fri, Nov 6, 2020 at 10:58 AM Amelie Delaunay <amelie.delaunay@st.com> wrote:
>>>>
>>>> Power operation mode may depends on hardware design, so, add the optional
>>>> property typec-power-opmode for usb-c connector to select the power
>>>> operation mode capability.
>>>>
>>>> Signed-off-by: Amelie Delaunay <amelie.delaunay@st.com>
>>>> ---
>>>> Hi Bahdri, Rob,
>>>>
>>>> I've added the exlusion with FRS property, but new FRS property name
>>>> should be use here so, be careful.
>>>>
>>>> ---
>>>> .../bindings/connector/usb-connector.yaml | 24 +++++++++++++++++++
>>>> 1 file changed, 24 insertions(+)
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/connector/usb-connector.yaml b/Documentation/devicetree/bindings/connector/usb-connector.yaml
>>>> index 62781518aefc..a84464b3e1f2 100644
>>>> --- a/Documentation/devicetree/bindings/connector/usb-connector.yaml
>>>> +++ b/Documentation/devicetree/bindings/connector/usb-connector.yaml
>>>> @@ -93,6 +93,24 @@ properties:
>>>> - device
>>>> - dual
>>>>
>>>> + typec-power-opmode:
>>>> + description: Determines the power operation mode that the Type C connector
>>>> + will support and will advertise through CC pins when it has no power
>>>> + delivery support.
>>>> + - "default" corresponds to default USB voltage and current defined by the
>>>> + USB 2.0 and USB 3.2 specifications, 5V 500mA for USB 2.0 ports and
>>>> + 5V 900mA or 1500mA for USB 3.2 ports in single-lane or dual-lane
>>>> + operation respectively.
>>>> + - "1.5A" and "3.0A", 5V 1.5A and 5V 3.0A respectively, as defined in USB
>>>> + Type-C Cable and Connector specification, when Power Delivery is not
>>>> + supported.
>>>> + allOf:
>>>> + - $ref: /schemas/types.yaml#definitions/string
>>>> + enum:
>>>> + - default
>>>> + - 1.5A
>>>> + - 3.0A
>>>
>>> Use the enums here. Unless you want to define it as actual current as
>>> a numerical value.
>>
>> If I understand your point correctly, I think I should remove allOf here
>> and stick with what is done to describe power-role and data-role
>> property. Right ?
>
> No, use the numerical values like FRS:
>
> + "1" refers to default USB power level as described by "Table
> 6-14 Fixed Supply PDO - Sink".
> + "2" refers to 1.5A@5V.
> + "3" refers to 3.0A@5V.
> + $ref: /schemas/types.yaml#/definitions/uint32
> + enum: [1, 2, 3]
But it changes the type-c class philosophy. There is already an API to
convert string into enum, the same kind is used for data-role and
power-role properties.
Moveover, FRS values doesn't fit with typec_pwr_opmode enum:
enum typec_pwr_opmode {
TYPEC_PWR_MODE_USB,
TYPEC_PWR_MODE_1_5A,
TYPEC_PWR_MODE_3_0A,
TYPEC_PWR_MODE_PD,
};
Regards
Amelie
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v5 1/5] dt-bindings: connector: add typec-power-opmode property to usb-connector
2020-11-09 16:10 ` Amelie DELAUNAY
@ 2020-11-11 20:25 ` Rob Herring
0 siblings, 0 replies; 16+ messages in thread
From: Rob Herring @ 2020-11-11 20:25 UTC (permalink / raw)
To: Amelie DELAUNAY
Cc: Greg Kroah-Hartman, Maxime Coquelin, Alexandre Torgue,
Russell King, Heikki Krogerus, Badhri Jagan Sridharan, Jun Li,
devicetree, linux-kernel, Linux USB List,
moderated list:ARM/STM32 ARCHITECTURE, linux-arm-kernel,
Fabrice Gasnier
On Mon, Nov 09, 2020 at 05:10:23PM +0100, Amelie DELAUNAY wrote:
>
>
> On 11/9/20 5:02 PM, Rob Herring wrote:
> > On Mon, Nov 9, 2020 at 9:54 AM Amelie DELAUNAY <amelie.delaunay@st.com> wrote:
> > >
> > > On 11/9/20 4:03 PM, Rob Herring wrote:
> > > > On Fri, Nov 6, 2020 at 10:58 AM Amelie Delaunay <amelie.delaunay@st.com> wrote:
> > > > >
> > > > > Power operation mode may depends on hardware design, so, add the optional
> > > > > property typec-power-opmode for usb-c connector to select the power
> > > > > operation mode capability.
> > > > >
> > > > > Signed-off-by: Amelie Delaunay <amelie.delaunay@st.com>
> > > > > ---
> > > > > Hi Bahdri, Rob,
> > > > >
> > > > > I've added the exlusion with FRS property, but new FRS property name
> > > > > should be use here so, be careful.
> > > > >
> > > > > ---
> > > > > .../bindings/connector/usb-connector.yaml | 24 +++++++++++++++++++
> > > > > 1 file changed, 24 insertions(+)
> > > > >
> > > > > diff --git a/Documentation/devicetree/bindings/connector/usb-connector.yaml b/Documentation/devicetree/bindings/connector/usb-connector.yaml
> > > > > index 62781518aefc..a84464b3e1f2 100644
> > > > > --- a/Documentation/devicetree/bindings/connector/usb-connector.yaml
> > > > > +++ b/Documentation/devicetree/bindings/connector/usb-connector.yaml
> > > > > @@ -93,6 +93,24 @@ properties:
> > > > > - device
> > > > > - dual
> > > > >
> > > > > + typec-power-opmode:
> > > > > + description: Determines the power operation mode that the Type C connector
> > > > > + will support and will advertise through CC pins when it has no power
> > > > > + delivery support.
> > > > > + - "default" corresponds to default USB voltage and current defined by the
> > > > > + USB 2.0 and USB 3.2 specifications, 5V 500mA for USB 2.0 ports and
> > > > > + 5V 900mA or 1500mA for USB 3.2 ports in single-lane or dual-lane
> > > > > + operation respectively.
> > > > > + - "1.5A" and "3.0A", 5V 1.5A and 5V 3.0A respectively, as defined in USB
> > > > > + Type-C Cable and Connector specification, when Power Delivery is not
> > > > > + supported.
> > > > > + allOf:
> > > > > + - $ref: /schemas/types.yaml#definitions/string
> > > > > + enum:
> > > > > + - default
> > > > > + - 1.5A
> > > > > + - 3.0A
> > > >
> > > > Use the enums here. Unless you want to define it as actual current as
> > > > a numerical value.
> > >
> > > If I understand your point correctly, I think I should remove allOf here
> > > and stick with what is done to describe power-role and data-role
> > > property. Right ?
> >
> > No, use the numerical values like FRS:
> >
> > + "1" refers to default USB power level as described by "Table
> > 6-14 Fixed Supply PDO - Sink".
> > + "2" refers to 1.5A@5V.
> > + "3" refers to 3.0A@5V.
> > + $ref: /schemas/types.yaml#/definitions/uint32
> > + enum: [1, 2, 3]
>
> But it changes the type-c class philosophy. There is already an API to
> convert string into enum, the same kind is used for data-role and power-role
> properties.
> Moveover, FRS values doesn't fit with typec_pwr_opmode enum:
> enum typec_pwr_opmode {
> TYPEC_PWR_MODE_USB,
> TYPEC_PWR_MODE_1_5A,
> TYPEC_PWR_MODE_3_0A,
> TYPEC_PWR_MODE_PD,
> };
Okay, then strings it is I guess.
Reviewed-by: Rob Herring <robh@kernel.org>
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH v5 2/5] dt-bindings: usb: Add DT bindings for STUSB160x Type-C controller
2020-11-06 16:58 [PATCH v5 0/5] STUSB1600 support on STM32MP15xx-DKx Amelie Delaunay
2020-11-06 16:58 ` [PATCH v5 1/5] dt-bindings: connector: add typec-power-opmode property to usb-connector Amelie Delaunay
@ 2020-11-06 16:58 ` Amelie Delaunay
2020-11-11 20:26 ` Rob Herring
2020-11-06 16:58 ` [PATCH v5 3/5] usb: typec: stusb160x: fix power-opmode property with typec-power-opmode Amelie Delaunay
` (3 subsequent siblings)
5 siblings, 1 reply; 16+ messages in thread
From: Amelie Delaunay @ 2020-11-06 16:58 UTC (permalink / raw)
To: Rob Herring, Greg Kroah-Hartman, Maxime Coquelin,
Alexandre Torgue, Russell King, Heikki Krogerus,
Badhri Jagan Sridharan, Jun Li
Cc: devicetree, linux-kernel, linux-usb, linux-stm32,
linux-arm-kernel, Amelie Delaunay, Fabrice Gasnier
Add binding documentation for the STMicroelectronics STUSB160x Type-C port
controller.
Signed-off-by: Amelie Delaunay <amelie.delaunay@st.com>
---
.../devicetree/bindings/usb/st,stusb160x.yaml | 87 +++++++++++++++++++
1 file changed, 87 insertions(+)
create mode 100644 Documentation/devicetree/bindings/usb/st,stusb160x.yaml
diff --git a/Documentation/devicetree/bindings/usb/st,stusb160x.yaml b/Documentation/devicetree/bindings/usb/st,stusb160x.yaml
new file mode 100644
index 000000000000..9a51efa9d101
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/st,stusb160x.yaml
@@ -0,0 +1,87 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/usb/st,stusb160x.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: STMicroelectronics STUSB160x Type-C controller bindings
+
+maintainers:
+ - Amelie Delaunay <amelie.delaunay@st.com>
+
+properties:
+ compatible:
+ enum:
+ - st,stusb1600
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ vdd-supply:
+ description: main power supply (4.1V-22V)
+
+ vsys-supply:
+ description: low power supply (3.0V-5.5V)
+
+ vconn-supply:
+ description: power supply (2.7V-5.5V) used to supply VConn on CC pin in
+ source or dual power role
+
+ connector:
+ type: object
+
+ allOf:
+ - $ref: ../connector/usb-connector.yaml
+
+ properties:
+ compatible:
+ const: usb-c-connector
+
+ power-role: true
+
+ typec-power-opmode: true
+
+ required:
+ - compatible
+
+required:
+ - compatible
+ - reg
+ - connector
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/irq.h>
+ i2c4 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ typec: stusb1600@28 {
+ compatible = "st,stusb1600";
+ reg = <0x28>;
+ vdd-supply = <&vbus_drd>;
+ vsys-supply = <&vdd_usb>;
+ interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
+ interrupt-parent = <&gpioi>;
+
+ typec_con: connector {
+ compatible = "usb-c-connector";
+ label = "USB-C";
+ power-role = "dual";
+ data-role = "dual";
+ typec-power-opmode = "default";
+
+ port {
+ typec_con_ep: endpoint {
+ remote-endpoint = <&usbotg_hs_ep>;
+ };
+ };
+ };
+ };
+ };
+...
--
2.17.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH v5 2/5] dt-bindings: usb: Add DT bindings for STUSB160x Type-C controller
2020-11-06 16:58 ` [PATCH v5 2/5] dt-bindings: usb: Add DT bindings for STUSB160x Type-C controller Amelie Delaunay
@ 2020-11-11 20:26 ` Rob Herring
0 siblings, 0 replies; 16+ messages in thread
From: Rob Herring @ 2020-11-11 20:26 UTC (permalink / raw)
To: Amelie Delaunay
Cc: Russell King, Maxime Coquelin, Alexandre Torgue, Heikki Krogerus,
Rob Herring, linux-arm-kernel, Badhri Jagan Sridharan,
linux-kernel, Greg Kroah-Hartman, Jun Li, devicetree,
linux-stm32, linux-usb
On Fri, 06 Nov 2020 17:58:02 +0100, Amelie Delaunay wrote:
> Add binding documentation for the STMicroelectronics STUSB160x Type-C port
> controller.
>
> Signed-off-by: Amelie Delaunay <amelie.delaunay@st.com>
> ---
> .../devicetree/bindings/usb/st,stusb160x.yaml | 87 +++++++++++++++++++
> 1 file changed, 87 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/usb/st,stusb160x.yaml
>
Reviewed-by: Rob Herring <robh@kernel.org>
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH v5 3/5] usb: typec: stusb160x: fix power-opmode property with typec-power-opmode
2020-11-06 16:58 [PATCH v5 0/5] STUSB1600 support on STM32MP15xx-DKx Amelie Delaunay
2020-11-06 16:58 ` [PATCH v5 1/5] dt-bindings: connector: add typec-power-opmode property to usb-connector Amelie Delaunay
2020-11-06 16:58 ` [PATCH v5 2/5] dt-bindings: usb: Add DT bindings for STUSB160x Type-C controller Amelie Delaunay
@ 2020-11-06 16:58 ` Amelie Delaunay
2020-11-27 13:01 ` Amelie DELAUNAY
2020-11-06 16:58 ` [PATCH v5 4/5] ARM: dts: stm32: add STUSB1600 Type-C using I2C4 on stm32mp15xx-dkx Amelie Delaunay
` (2 subsequent siblings)
5 siblings, 1 reply; 16+ messages in thread
From: Amelie Delaunay @ 2020-11-06 16:58 UTC (permalink / raw)
To: Rob Herring, Greg Kroah-Hartman, Maxime Coquelin,
Alexandre Torgue, Russell King, Heikki Krogerus,
Badhri Jagan Sridharan, Jun Li
Cc: devicetree, linux-kernel, linux-usb, linux-stm32,
linux-arm-kernel, Amelie Delaunay, Fabrice Gasnier
Device tree property is named typec-power-opmode, not power-opmode.
Fixes: da0cb6310094 ("usb: typec: add support for STUSB160x Type-C controller family")
Signed-off-by: Amelie Delaunay <amelie.delaunay@st.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
---
drivers/usb/typec/stusb160x.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/usb/typec/stusb160x.c b/drivers/usb/typec/stusb160x.c
index 2a618f02f4f1..d21750bbbb44 100644
--- a/drivers/usb/typec/stusb160x.c
+++ b/drivers/usb/typec/stusb160x.c
@@ -562,7 +562,7 @@ static int stusb160x_get_fw_caps(struct stusb160x *chip,
* Supported power operation mode can be configured through device tree
* else it is read from chip registers in stusb160x_get_caps.
*/
- ret = fwnode_property_read_string(fwnode, "power-opmode", &cap_str);
+ ret = fwnode_property_read_string(fwnode, "typec-power-opmode", &cap_str);
if (!ret) {
ret = typec_find_pwr_opmode(cap_str);
/* Power delivery not yet supported */
--
2.17.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH v5 3/5] usb: typec: stusb160x: fix power-opmode property with typec-power-opmode
2020-11-06 16:58 ` [PATCH v5 3/5] usb: typec: stusb160x: fix power-opmode property with typec-power-opmode Amelie Delaunay
@ 2020-11-27 13:01 ` Amelie DELAUNAY
2020-11-27 13:07 ` Greg Kroah-Hartman
0 siblings, 1 reply; 16+ messages in thread
From: Amelie DELAUNAY @ 2020-11-27 13:01 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Maxime Coquelin,
Alexandre Torgue, Russell King, Heikki Krogerus,
Badhri Jagan Sridharan, Jun Li
Cc: devicetree, linux-kernel, linux-usb, linux-stm32,
linux-arm-kernel, Fabrice Gasnier
Hi Greg,
gentle reminder for this patch, lost in the middle of a DT series (DT
part already in stm32-next).
Thanks and regards,
Amelie
On 11/6/20 5:58 PM, Amelie Delaunay wrote:
> Device tree property is named typec-power-opmode, not power-opmode.
>
> Fixes: da0cb6310094 ("usb: typec: add support for STUSB160x Type-C controller family")
> Signed-off-by: Amelie Delaunay <amelie.delaunay@st.com>
> Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
> ---
> drivers/usb/typec/stusb160x.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/usb/typec/stusb160x.c b/drivers/usb/typec/stusb160x.c
> index 2a618f02f4f1..d21750bbbb44 100644
> --- a/drivers/usb/typec/stusb160x.c
> +++ b/drivers/usb/typec/stusb160x.c
> @@ -562,7 +562,7 @@ static int stusb160x_get_fw_caps(struct stusb160x *chip,
> * Supported power operation mode can be configured through device tree
> * else it is read from chip registers in stusb160x_get_caps.
> */
> - ret = fwnode_property_read_string(fwnode, "power-opmode", &cap_str);
> + ret = fwnode_property_read_string(fwnode, "typec-power-opmode", &cap_str);
> if (!ret) {
> ret = typec_find_pwr_opmode(cap_str);
> /* Power delivery not yet supported */
>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v5 3/5] usb: typec: stusb160x: fix power-opmode property with typec-power-opmode
2020-11-27 13:01 ` Amelie DELAUNAY
@ 2020-11-27 13:07 ` Greg Kroah-Hartman
2020-11-27 13:12 ` Amelie DELAUNAY
0 siblings, 1 reply; 16+ messages in thread
From: Greg Kroah-Hartman @ 2020-11-27 13:07 UTC (permalink / raw)
To: Amelie DELAUNAY
Cc: Rob Herring, Maxime Coquelin, Alexandre Torgue, Russell King,
Heikki Krogerus, Badhri Jagan Sridharan, Jun Li, devicetree,
linux-kernel, linux-usb, linux-stm32, linux-arm-kernel,
Fabrice Gasnier
On Fri, Nov 27, 2020 at 02:01:29PM +0100, Amelie DELAUNAY wrote:
> Hi Greg,
>
> gentle reminder for this patch, lost in the middle of a DT series (DT part
> already in stm32-next).
Odd, I don't see this anymore, can you resend just this one so I can
apply it directly?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v5 3/5] usb: typec: stusb160x: fix power-opmode property with typec-power-opmode
2020-11-27 13:07 ` Greg Kroah-Hartman
@ 2020-11-27 13:12 ` Amelie DELAUNAY
0 siblings, 0 replies; 16+ messages in thread
From: Amelie DELAUNAY @ 2020-11-27 13:12 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: Rob Herring, Maxime Coquelin, Alexandre Torgue, Russell King,
Heikki Krogerus, Badhri Jagan Sridharan, Jun Li, devicetree,
linux-kernel, linux-usb, linux-stm32, linux-arm-kernel,
Fabrice Gasnier
On 11/27/20 2:07 PM, Greg Kroah-Hartman wrote:
> On Fri, Nov 27, 2020 at 02:01:29PM +0100, Amelie DELAUNAY wrote:
>> Hi Greg,
>>
>> gentle reminder for this patch, lost in the middle of a DT series (DT part
>> already in stm32-next).
>
> Odd, I don't see this anymore, can you resend just this one so I can
> apply it directly?
Sure :) I rebase it and send it right now.
Amelie
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH v5 4/5] ARM: dts: stm32: add STUSB1600 Type-C using I2C4 on stm32mp15xx-dkx
2020-11-06 16:58 [PATCH v5 0/5] STUSB1600 support on STM32MP15xx-DKx Amelie Delaunay
` (2 preceding siblings ...)
2020-11-06 16:58 ` [PATCH v5 3/5] usb: typec: stusb160x: fix power-opmode property with typec-power-opmode Amelie Delaunay
@ 2020-11-06 16:58 ` Amelie Delaunay
2020-11-06 16:58 ` [PATCH v5 5/5] ARM: multi_v7_defconfig: enable STUSB160X Type-C port controller support Amelie Delaunay
2020-11-17 9:30 ` [PATCH v5 0/5] STUSB1600 support on STM32MP15xx-DKx Alexandre Torgue
5 siblings, 0 replies; 16+ messages in thread
From: Amelie Delaunay @ 2020-11-06 16:58 UTC (permalink / raw)
To: Rob Herring, Greg Kroah-Hartman, Maxime Coquelin,
Alexandre Torgue, Russell King, Heikki Krogerus,
Badhri Jagan Sridharan, Jun Li
Cc: devicetree, linux-kernel, linux-usb, linux-stm32,
linux-arm-kernel, Amelie Delaunay, Fabrice Gasnier
This patch adds support for STUSB1600 USB Type-C port controller, used on
I2C4 on stm32mp15xx-dkx.
The default configuration on this board, on Type-C connector, is:
- Dual Power Role (DRP), so set power-role to "dual";
- Vbus limited to 500mA, so set typec-power-opmode to "default" (it means
500mA in USB 2.0).
typec-power-opmode is used to reconfigure the STUSB1600 advertising of
current capability when its NVM is not in line with the board layout.
On stm32mp15xx-dkx, Vbus power source of STUSB1600 is 5V_VIN. So power
operation mode depends on the power supply used. To avoid any power
issues, it is better to limit Vbus to 500mA on this board.
ALERT# is the interrupt pin of STUSB1600. It needs an external pull-up, and
signal is active low.
USB OTG controller ID and Vbus signals are not connected on stm32mp15xx-dkx
boards, so disconnection are not detected.
Without DWC2 usb-role-switch:
- if you unplug the USB cable from the Type-C port, you have to manually
disconnect the USB gadget:
echo disconnect > /sys/devices/platform/soc/49000000.usb-otg/udc/49000000.usb-otg/soft_connect
- Then you can plug the USB cable again in the Type-C port, and manually
reconnect the USB gadget:
echo connect > /sys/devices/platform/soc/49000000.usb-otg/udc/49000000.usb-otg/soft_connect
With DWC2 usb-role-switch, USB gadget is dynamically disconnected or connected.
Signed-off-by: Amelie Delaunay <amelie.delaunay@st.com>
---
arch/arm/boot/dts/stm32mp15-pinctrl.dtsi | 7 ++++++
arch/arm/boot/dts/stm32mp15xx-dkx.dtsi | 30 ++++++++++++++++++++++++
2 files changed, 37 insertions(+)
diff --git a/arch/arm/boot/dts/stm32mp15-pinctrl.dtsi b/arch/arm/boot/dts/stm32mp15-pinctrl.dtsi
index d84686e00370..d2e9e7ac3336 100644
--- a/arch/arm/boot/dts/stm32mp15-pinctrl.dtsi
+++ b/arch/arm/boot/dts/stm32mp15-pinctrl.dtsi
@@ -1591,6 +1591,13 @@
};
};
+ stusb1600_pins_a: stusb1600-0 {
+ pins {
+ pinmux = <STM32_PINMUX('I', 11, ANALOG)>;
+ bias-pull-up;
+ };
+ };
+
uart4_pins_a: uart4-0 {
pins1 {
pinmux = <STM32_PINMUX('G', 11, AF6)>; /* UART4_TX */
diff --git a/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi b/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi
index 93398cfae97e..ff324b151609 100644
--- a/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi
+++ b/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi
@@ -238,6 +238,30 @@
/delete-property/dmas;
/delete-property/dma-names;
+ stusb1600@28 {
+ compatible = "st,stusb1600";
+ reg = <0x28>;
+ interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
+ interrupt-parent = <&gpioi>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&stusb1600_pins_a>;
+ status = "okay";
+ vdd-supply = <&vin>;
+
+ connector {
+ compatible = "usb-c-connector";
+ label = "USB-C";
+ power-role = "dual";
+ typec-power-opmode = "default";
+
+ port {
+ con_usbotg_hs_ep: endpoint {
+ remote-endpoint = <&usbotg_hs_ep>;
+ };
+ };
+ };
+ };
+
pmic: stpmic@33 {
compatible = "st,stpmic1";
reg = <0x33>;
@@ -648,6 +672,12 @@
phy-names = "usb2-phy";
usb-role-switch;
status = "okay";
+
+ port {
+ usbotg_hs_ep: endpoint {
+ remote-endpoint = <&con_usbotg_hs_ep>;
+ };
+ };
};
&usbphyc {
--
2.17.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v5 5/5] ARM: multi_v7_defconfig: enable STUSB160X Type-C port controller support
2020-11-06 16:58 [PATCH v5 0/5] STUSB1600 support on STM32MP15xx-DKx Amelie Delaunay
` (3 preceding siblings ...)
2020-11-06 16:58 ` [PATCH v5 4/5] ARM: dts: stm32: add STUSB1600 Type-C using I2C4 on stm32mp15xx-dkx Amelie Delaunay
@ 2020-11-06 16:58 ` Amelie Delaunay
2020-11-17 9:30 ` [PATCH v5 0/5] STUSB1600 support on STM32MP15xx-DKx Alexandre Torgue
5 siblings, 0 replies; 16+ messages in thread
From: Amelie Delaunay @ 2020-11-06 16:58 UTC (permalink / raw)
To: Rob Herring, Greg Kroah-Hartman, Maxime Coquelin,
Alexandre Torgue, Russell King, Heikki Krogerus,
Badhri Jagan Sridharan, Jun Li
Cc: devicetree, linux-kernel, linux-usb, linux-stm32,
linux-arm-kernel, Amelie Delaunay, Fabrice Gasnier
Enable support for the STMicroelectronics STUSB160X USB Type-C port
controller driver by turning on CONFIG_TYPEC and CONFIG_TYPEC_STUSB160X as
modules.
Signed-off-by: Amelie Delaunay <amelie.delaunay@st.com>
---
arch/arm/configs/multi_v7_defconfig | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig
index a611b0c1e540..47eed80268e2 100644
--- a/arch/arm/configs/multi_v7_defconfig
+++ b/arch/arm/configs/multi_v7_defconfig
@@ -829,6 +829,8 @@ CONFIG_USB_CONFIGFS_F_HID=y
CONFIG_USB_CONFIGFS_F_UVC=y
CONFIG_USB_CONFIGFS_F_PRINTER=y
CONFIG_USB_ETH=m
+CONFIG_TYPEC=m
+CONFIG_TYPEC_STUSB160X=m
CONFIG_MMC=y
CONFIG_MMC_BLOCK_MINORS=16
CONFIG_MMC_ARMMMCI=y
--
2.17.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH v5 0/5] STUSB1600 support on STM32MP15xx-DKx
2020-11-06 16:58 [PATCH v5 0/5] STUSB1600 support on STM32MP15xx-DKx Amelie Delaunay
` (4 preceding siblings ...)
2020-11-06 16:58 ` [PATCH v5 5/5] ARM: multi_v7_defconfig: enable STUSB160X Type-C port controller support Amelie Delaunay
@ 2020-11-17 9:30 ` Alexandre Torgue
5 siblings, 0 replies; 16+ messages in thread
From: Alexandre Torgue @ 2020-11-17 9:30 UTC (permalink / raw)
To: Amelie Delaunay, Rob Herring, Greg Kroah-Hartman,
Maxime Coquelin, Russell King, Heikki Krogerus,
Badhri Jagan Sridharan, Jun Li
Cc: devicetree, linux-kernel, linux-usb, linux-stm32,
linux-arm-kernel, Fabrice Gasnier
Hi,
On 11/6/20 5:58 PM, Amelie Delaunay wrote:
> This series adds missing bindings for Type-C typec-power-opmode property
> and STUSB160x Type-C port controllers [1].
> STUSB160x driver requires to get power operation mode via device tree,
> that's why this series also adds the optional DT property
> typec-power-opmode for usb-c-connector to select the power operation mode
> capability.
> Tested on stm32mp157c-dk2 [2], which has a Type-C connector managed by
> STUSB1600, and connected to USB OTG controller.
>
> [1] https://www.st.com/en/interfaces-and-transceivers/usb-type-c-and-power-delivery-controllers.html
> [2] https://www.st.com/en/evaluation-tools/stm32mp157c-dk2.html
>
>
> Amelie Delaunay (5):
> dt-bindings: connector: add typec-power-opmode property to
> usb-connector
> dt-bindings: usb: Add DT bindings for STUSB160x Type-C controller
> usb: typec: stusb160x: fix power-opmode property with
> typec-power-opmode
> ARM: dts: stm32: add STUSB1600 Type-C using I2C4 on stm32mp15xx-dkx
> ARM: multi_v7_defconfig: enable STUSB160X Type-C port controller
> support
>
Device tree and bindings patches ([1],[2],[4],[5]) have been applied to
stm32-next (and will go through arm-soc tree).
Greg, I let you apply patch [3] into usb tree.
Thanks
Alex
> ---
> Changes in v5:
> - add additionalProperties to st,stusb160x yaml
> - add Heikki reviewed-by on stusb160x driver patch 3/5
> Changes in v4:
> - power-opmode DT property renamed to typec-power-opmode and mutually
> exclusive condition with new-source-frs-typec-current added
> - Due to DT property renaming, patch 3/5 is added to update stusb160x
> driver.
> ---
> .../bindings/connector/usb-connector.yaml | 24 +++++
> .../devicetree/bindings/usb/st,stusb160x.yaml | 87 +++++++++++++++++++
> arch/arm/boot/dts/stm32mp15-pinctrl.dtsi | 7 ++
> arch/arm/boot/dts/stm32mp15xx-dkx.dtsi | 30 +++++++
> arch/arm/configs/multi_v7_defconfig | 2 +
> drivers/usb/typec/stusb160x.c | 2 +-
> 6 files changed, 151 insertions(+), 1 deletion(-)
> create mode 100644 Documentation/devicetree/bindings/usb/st,stusb160x.yaml
>
^ permalink raw reply [flat|nested] 16+ messages in thread