Re: [PATCH 1/4] dt-bindings: usb: typec: add bindings for stm32g0 controller
From: Fabrice Gasnier
Date: Mon Jun 27 2022 - 10:22:43 EST
On 6/24/22 18:16, Krzysztof Kozlowski wrote:
> On 24/06/2022 17:54, Fabrice Gasnier wrote:
>> This patch adds DT schema documentation for the STM32G0 Type-C controller.
>
> No "This patch"
Hi Krzysztof,
ack,
>
> https://elixir.bootlin.com/linux/v5.17.1/source/Documentation/process/submitting-patches.rst#L95
>
>> STM32G0 provides an integrated USB Type-C and power delivery interface.
>> It can be programmed with a firmware to handle UCSI protocol over I2C
>> interface. A GPIO is used as an interrupt line.
>> It may be used as a wakeup source, so use optional "wakeup-source" and
>> "power-domains" properties to support wakeup.
>>
>> Signed-off-by: Fabrice Gasnier <fabrice.gasnier@xxxxxxxxxxx>
>> ---
>> .../bindings/usb/st,typec-stm32g0.yaml | 83 +++++++++++++++++++
>> 1 file changed, 83 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/usb/st,typec-stm32g0.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/usb/st,typec-stm32g0.yaml b/Documentation/devicetree/bindings/usb/st,typec-stm32g0.yaml
>> new file mode 100644
>> index 0000000000000..b2729bd015a1a
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/usb/st,typec-stm32g0.yaml
>> @@ -0,0 +1,83 @@
>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: "http://devicetree.org/schemas/usb/st,typec-stm32g0.yaml#"
>> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
>
> No quotes.
ack,
>
>> +
>> +title: STMicroelectronics STM32G0 Type-C controller bindings
>
> s/bindings//
ack,
>
>> +
>> +description: |
>> + The STM32G0 MCU can be programmed to control Type-C connector(s) through I2C
>> + typically using the UCSI protocol over I2C, with a dedicated alert
>> + (interrupt) pin.
>> +
>> +maintainers:
>> + - Fabrice Gasnier <fabrice.gasnier@xxxxxxxxxxx>
>> +
>> +properties:
>> + compatible:
>> + const: st,stm32g0-typec
>> +
>> + reg:
>> + maxItems: 1
>> +
>> + interrupts:
>> + maxItems: 1
>> +
>> + connector:
>> + type: object> + allOf:
>> + - $ref: ../connector/usb-connector.yaml#
>
> Full path, so /schemas/connector/...
>
> unevaluatedProperties: false
ack,
>
>> +
>> + firmware-name:
>> + description: |
>> + Should contain the name of the default firmware image
>> + file located on the firmware search path
>> +
>> + wakeup-source: true
>> + power-domains: true
>
> maxItems
Do you mean maxItems regarding the "power-domains" property ?
This will depend on the user platform, where it's used as an I2C device.
So I'm not sure this can / should be specified here.
Could please you clarify ?
>
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - interrupts
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/interrupt-controller/irq.h>
>> + i2c5 {
>
> Just "i2c"
ack,
>
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + stm32g0@53 {
>
> Generic node name describing class of the device.
I wasn't aware of generic node name for an I2C device (not talking of
the controller). I may have missed it.
Could you please clarify ?
>
>> + compatible = "st,stm32g0-typec";
>> + reg = <0x53>;
>> + /* Alert pin on GPIO PE12 */
>> + interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
>> + interrupt-parent = <&gpioe>;
>> +
>> + /* Example with one type-C connector */
>> + connector {
>> + compatible = "usb-c-connector";
>> + label = "USB-C";
>> +
>> + port {
>
> This does not look like proper schema of connector.yaml.
This refers to graph.yaml [1], where similar example is seen [2].
https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/graph.yaml#L79
https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/graph.yaml#L207
device-1 {
port {
device_1_output: endpoint {
remote-endpoint = <&device_2_input>;
};
};
};
device-2 {
port {
device_2_input: endpoint {
remote-endpoint = <&device_1_output>;
};
};
};
Could you please clarify this point too ?
>
>> + con_usb_c_ep: endpoint {
>> + remote-endpoint = <&usbotg_hs_ep>;
>> + };
>> + };
>> + };
>> + };
>> + };
>> +
>> + usbotg_hs {
>
> Generic node names, no underscores in node names.
ack, I guess you'd recommend "usb" here. I'll update it.
Thanks for reviewing,
Best Regards,
Fabrice
>
>> + usb-role-switch;
>> + port {
>> + usbotg_hs_ep: endpoint {
>> + remote-endpoint = <&con_usb_c_ep>;
>> + };
>> + };
>> + };
>> +...
>
>
> Best regards,
> Krzysztof