* [PATCH] dt-bindings: usb: add yaml file for maxim,max3421
@ 2025-10-09 18:15 Rodrigo Gobbi
2025-10-10 1:34 ` Krzysztof Kozlowski
0 siblings, 1 reply; 4+ messages in thread
From: Rodrigo Gobbi @ 2025-10-09 18:15 UTC (permalink / raw)
To: gregkh, robh, krzk+dt, conor+dt, davidm
Cc: ~lkcamp/patches, linux-usb, devicetree, linux-kernel
Convert maxim,max3421.txt to yaml format with a few extra properties like
maxim,vbus-en-pin, maxim,gpx-pin, reset pin and supplies. Also add a
maxim,max3421e compatible with a fallback, since the actually PN is with
the 'e' suffix.
Signed-off-by: Rodrigo Gobbi <rodrigo.gobbi.7@gmail.com>
---
I've converted the txt into yaml with a few extra things as mentioned
in the commit msg. All of them were extracted from the datasheet and also
looking at the current state of the driver.
About the maintainer ref inside yaml, I'll quote the driver author:
Dear @David Mosberger, the binding file for this driver was not converted
to YAML format. This patch address this. I've noticed you were the original
driver author, so I`m "quoting" you at the maintainer ref inside yaml.
I would appreciate your comment or suggestion over this topic.
Tks and regards to all.
---
.../devicetree/bindings/usb/maxim,3421.yaml | 88 +++++++++++++++++++
.../devicetree/bindings/usb/maxim,max3421.txt | 23 -----
2 files changed, 88 insertions(+), 23 deletions(-)
create mode 100644 Documentation/devicetree/bindings/usb/maxim,3421.yaml
delete mode 100644 Documentation/devicetree/bindings/usb/maxim,max3421.txt
diff --git a/Documentation/devicetree/bindings/usb/maxim,3421.yaml b/Documentation/devicetree/bindings/usb/maxim,3421.yaml
new file mode 100644
index 000000000000..bccb22be74ff
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/maxim,3421.yaml
@@ -0,0 +1,88 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/maxim,3421.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MAXIM MAX3421e USB Peripheral/Host Controller
+
+maintainers:
+ - David Mosberger <davidm@egauge.net>
+
+description: |
+ The controller provides USB2.0 compliant with Full Speed or Low Speed when in
+ the host mode. At peripheral, it operates at Full Speed. At both cases, it
+ uses a SPI interface.
+ Datasheet at:
+ https://www.analog.com/media/en/technical-documentation/data-sheets/max3421e.pdf
+
+properties:
+ compatible:
+ oneOf:
+ - items:
+ - enum:
+ - maxim,max3421e
+ - const: maxim,max3421
+ - const: maxim,max3421
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ spi-max-frequency:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ maximum: 26000000
+ description:
+ SPI interface that operates up to 26MHz in Hz.
+
+ maxim,vbus-en-pin:
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ description:
+ One of eight GPOUT pins to control external VBUS power and the polarity
+ of the active level. It's an array of GPIO number and the active level of it.
+ minItems: 2
+ maxItems: 2
+
+ maxim,gpx-pin:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: A property to define the behavior of the GPX pin, which is an
+ output that may be selected in a 4-way multiplexer between OPERATE(0),
+ VBUS_DETECT(1), BUSACT/INIRQ(2) and SOF(3) signals.
+ enum: [0, 1, 2, 3]
+ default: 0
+
+ reset-gpios:
+ description: Active low to clear all of the internal registers except for
+ PINCTL (R17), USBCTL (R15), and SPI logic.
+
+ vdd-supply: true
+
+ vlogic-supply: true
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - maxim,vbus-en-pin
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+ spi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ usb@0 {
+ compatible = "maxim,max3421";
+ reg = <0>;
+ maxim,vbus-en-pin = <3 1>;
+ spi-max-frequency = <26000000>;
+ interrupt-parent = <&gpio>;
+ interrupts = <42>;
+ };
+ };
diff --git a/Documentation/devicetree/bindings/usb/maxim,max3421.txt b/Documentation/devicetree/bindings/usb/maxim,max3421.txt
deleted file mode 100644
index 90495b1aeec2..000000000000
--- a/Documentation/devicetree/bindings/usb/maxim,max3421.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-Maxim Integrated SPI-based USB 2.0 host controller MAX3421E
-
-Required properties:
- - compatible: Should be "maxim,max3421"
- - spi-max-frequency: maximum frequency for this device must not exceed 26 MHz.
- - reg: chip select number to which this device is connected.
- - maxim,vbus-en-pin: <GPOUTx ACTIVE_LEVEL>
- GPOUTx is the number (1-8) of the GPOUT pin of MAX3421E to drive Vbus.
- ACTIVE_LEVEL is 0 or 1.
- - interrupts: the interrupt line description for the interrupt controller.
- The driver configures MAX3421E for active low level triggered interrupts,
- configure your interrupt line accordingly.
-
-Example:
-
- usb@0 {
- compatible = "maxim,max3421";
- reg = <0>;
- maxim,vbus-en-pin = <3 1>;
- spi-max-frequency = <26000000>;
- interrupt-parent = <&PIC>;
- interrupts = <42>;
- };
--
2.48.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] dt-bindings: usb: add yaml file for maxim,max3421
2025-10-09 18:15 [PATCH] dt-bindings: usb: add yaml file for maxim,max3421 Rodrigo Gobbi
@ 2025-10-10 1:34 ` Krzysztof Kozlowski
2025-10-10 19:46 ` Rodrigo Gobbi
0 siblings, 1 reply; 4+ messages in thread
From: Krzysztof Kozlowski @ 2025-10-10 1:34 UTC (permalink / raw)
To: Rodrigo Gobbi, gregkh, robh, krzk+dt, conor+dt, davidm
Cc: ~lkcamp/patches, linux-usb, devicetree, linux-kernel
On 09/10/2025 03:15, Rodrigo Gobbi wrote:
> Convert maxim,max3421.txt to yaml format with a few extra properties like
Here and in subject, please do not use yaml at all. Look at other
commits, this is supposed to be:
dt-bindings: usb: maxim,max3421: convert to DT schema
(and all other things like "file for" are redundant")
> maxim,vbus-en-pin, maxim,gpx-pin, reset pin and supplies. Also add a
Why new properties? You must explain not only the difference but WHY you
are doing this.
WHY is the most important question/answer.
> maxim,max3421e compatible with a fallback, since the actually PN is with
> the 'e' suffix.
We don't add PNs usually, unless there is a need. So again, why?
>
> Signed-off-by: Rodrigo Gobbi <rodrigo.gobbi.7@gmail.com>
> ---
> I've converted the txt into yaml with a few extra things as mentioned
> in the commit msg. All of them were extracted from the datasheet and also
> looking at the current state of the driver.
>
> About the maintainer ref inside yaml, I'll quote the driver author:
>
> Dear @David Mosberger, the binding file for this driver was not converted
> to YAML format. This patch address this. I've noticed you were the original
> driver author, so I`m "quoting" you at the maintainer ref inside yaml.
> I would appreciate your comment or suggestion over this topic.
>
> Tks and regards to all.
> ---
> .../devicetree/bindings/usb/maxim,3421.yaml | 88 +++++++++++++++++++
> .../devicetree/bindings/usb/maxim,max3421.txt | 23 -----
> 2 files changed, 88 insertions(+), 23 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/usb/maxim,3421.yaml
> delete mode 100644 Documentation/devicetree/bindings/usb/maxim,max3421.txt
>
> diff --git a/Documentation/devicetree/bindings/usb/maxim,3421.yaml b/Documentation/devicetree/bindings/usb/maxim,3421.yaml
> new file mode 100644
> index 000000000000..bccb22be74ff
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/usb/maxim,3421.yaml
> @@ -0,0 +1,88 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/usb/maxim,3421.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: MAXIM MAX3421e USB Peripheral/Host Controller
> +
> +maintainers:
> + - David Mosberger <davidm@egauge.net>
> +
> +description: |
> + The controller provides USB2.0 compliant with Full Speed or Low Speed when in
> + the host mode. At peripheral, it operates at Full Speed. At both cases, it
> + uses a SPI interface.
> + Datasheet at:
> + https://www.analog.com/media/en/technical-documentation/data-sheets/max3421e.pdf
> +
> +properties:
> + compatible:
> + oneOf:
> + - items:
> + - enum:
> + - maxim,max3421e
> + - const: maxim,max3421
> + - const: maxim,max3421
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + spi-max-frequency:
> + $ref: /schemas/types.yaml#/definitions/uint32
No, drop $ref. Do you see any binding like that? No, there is none.
> + maximum: 26000000
> + description:
> + SPI interface that operates up to 26MHz in Hz.
Drop description, again, look at other bindings.
> +
> + maxim,vbus-en-pin:
> + $ref: /schemas/types.yaml#/definitions/uint32-array
> + description:
> + One of eight GPOUT pins to control external VBUS power and the polarity
> + of the active level. It's an array of GPIO number and the active level of it.
> + minItems: 2
> + maxItems: 2
> +
> + maxim,gpx-pin:
I don't understand. There is no need for this property. Drop.
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: A property to define the behavior of the GPX pin, which is an
> + output that may be selected in a 4-way multiplexer between OPERATE(0),
> + VBUS_DETECT(1), BUSACT/INIRQ(2) and SOF(3) signals.
> + enum: [0, 1, 2, 3]
> + default: 0
> +
> + reset-gpios:
> + description: Active low to clear all of the internal registers except for
> + PINCTL (R17), USBCTL (R15), and SPI logic.
> +
> + vdd-supply: true
> +
> + vlogic-supply: true
> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> + - maxim,vbus-en-pin
> +
Missing ref to spi props.
> +additionalProperties: false
unevaluatedProperties instead.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] dt-bindings: usb: add yaml file for maxim,max3421
2025-10-10 1:34 ` Krzysztof Kozlowski
@ 2025-10-10 19:46 ` Rodrigo Gobbi
2025-10-10 23:27 ` Krzysztof Kozlowski
0 siblings, 1 reply; 4+ messages in thread
From: Rodrigo Gobbi @ 2025-10-10 19:46 UTC (permalink / raw)
To: Krzysztof Kozlowski, gregkh, robh, krzk+dt, conor+dt, davidm
Cc: ~lkcamp/patches, linux-usb, devicetree, linux-kernel
On 10/9/25 22:34, Krzysztof Kozlowski wrote:
> On 09/10/2025 03:15, Rodrigo Gobbi wrote:
>> Convert maxim,max3421.txt to yaml format with a few extra properties like
>
>
> Here and in subject, please do not use yaml at all. Look at other
> commits, this is supposed to be:
>
> dt-bindings: usb: maxim,max3421: convert to DT schema
>
> (and all other things like "file for" are redundant")
>
>> maxim,vbus-en-pin, maxim,gpx-pin, reset pin and supplies. Also add a
>
> Why new properties? You must explain not only the difference but WHY you
> are doing this.
>
> WHY is the most important question/answer.
The reason was that the device (the IC) supports that. Is it
enough to justify? I mean, is a plausible answer in this case? If yes,
I agree that my commit msg was not right since I didn`t mention that.
>
>> maxim,max3421e compatible with a fallback, since the actually PN is with
>> the 'e' suffix.
>
> We don't add PNs usually, unless there is a need. So again, why?
>
The PN of this is Maxim3421e, Maxim3421 without `e` doesn`t exists as far as I`ve
searched it. If it exists, it`s a different thing. In this case, I would expect that
the compatible string should be something that "matches" the device, but in this
case, the compatible string is without the 'e'. In that way, I was suggesting in this patch to
allow a more precisely compatible string to no break anyone using the original one. But if
it was a bad idea here, I can drop that for sure.
>> + spi-max-frequency:
>> + $ref: /schemas/types.yaml#/definitions/uint32
>
> No, drop $ref. Do you see any binding like that? No, there is none.
I`ve a previous patch recently at [1], that added a "similar" thing of frequency:
+ sampling-frequency:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 2500000
+ maximum: 20000000
+ description:
+ Default sampling frequency of the ADC in Hz.
In that case, $ref and description were added. Why that case is different from this one here?
[1] https://lore.kernel.org/all/20250522204130.21604-1-rodrigo.gobbi.7@gmail.com/
>
>> +
>> + maxim,vbus-en-pin:
>> + $ref: /schemas/types.yaml#/definitions/uint32-array
>> + description:
>> + One of eight GPOUT pins to control external VBUS power and the polarity
>> + of the active level. It's an array of GPIO number and the active level of it.
>> + minItems: 2
>> + maxItems: 2
>> +
>> + maxim,gpx-pin:
>
> I don't understand. There is no need for this property. Drop.
During my other reviews of new bindings, my final premise was that we should add every "capability" of
a device (the IC) regardless of the driver support. In this case, the maxim,gpx-pin, is an example of that,
the device supports that despite the driver support. I`m wondering here why we cannot add that here.
Tks and best regards.
Rodrigo.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] dt-bindings: usb: add yaml file for maxim,max3421
2025-10-10 19:46 ` Rodrigo Gobbi
@ 2025-10-10 23:27 ` Krzysztof Kozlowski
0 siblings, 0 replies; 4+ messages in thread
From: Krzysztof Kozlowski @ 2025-10-10 23:27 UTC (permalink / raw)
To: Rodrigo Gobbi, gregkh, robh, krzk+dt, conor+dt, davidm
Cc: ~lkcamp/patches, linux-usb, devicetree, linux-kernel
On 10/10/2025 21:46, Rodrigo Gobbi wrote:
> On 10/9/25 22:34, Krzysztof Kozlowski wrote:
>> On 09/10/2025 03:15, Rodrigo Gobbi wrote:
>>> Convert maxim,max3421.txt to yaml format with a few extra properties like
>>
>>
>> Here and in subject, please do not use yaml at all. Look at other
>> commits, this is supposed to be:
>>
>> dt-bindings: usb: maxim,max3421: convert to DT schema
>>
>> (and all other things like "file for" are redundant")
>>
>>> maxim,vbus-en-pin, maxim,gpx-pin, reset pin and supplies. Also add a
>>
>> Why new properties? You must explain not only the difference but WHY you
>> are doing this.
>>
>> WHY is the most important question/answer.
>
> The reason was that the device (the IC) supports that. Is it
> enough to justify? I mean, is a plausible answer in this case? If yes,
> I agree that my commit msg was not right since I didn`t mention that.
It's not relevant to conversion then, so must be done in separate commit.
>
>>
>>> maxim,max3421e compatible with a fallback, since the actually PN is with
>>> the 'e' suffix.
>>
>> We don't add PNs usually, unless there is a need. So again, why?
>>
>
> The PN of this is Maxim3421e, Maxim3421 without `e` doesn`t exists as far as I`ve
> searched it. If it exists, it`s a different thing. In this case, I would expect that
> the compatible string should be something that "matches" the device, but in this
> case, the compatible string is without the 'e'. In that way, I was suggesting in this patch to
> allow a more precisely compatible string to no break anyone using the original one. But if
> it was a bad idea here, I can drop that for sure.
So again not relevant to conversion and you need separate commit with
its own rationale explaining WHY you are doing this.
>
>>> + spi-max-frequency:
>>> + $ref: /schemas/types.yaml#/definitions/uint32
>>
>> No, drop $ref. Do you see any binding like that? No, there is none.
>
> I`ve a previous patch recently at [1], that added a "similar" thing of frequency:
>
> + sampling-frequency:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + minimum: 2500000
> + maximum: 20000000
> + description:
> + Default sampling frequency of the ADC in Hz.
>
> In that case, $ref and description were added. Why that case is different from this one here?
> [1] https://lore.kernel.org/all/20250522204130.21604-1-rodrigo.gobbi.7@gmail.com/
Yes it is very different. Please use git grep.
>
>>
>>> +
>>> + maxim,vbus-en-pin:
>>> + $ref: /schemas/types.yaml#/definitions/uint32-array
>>> + description:
>>> + One of eight GPOUT pins to control external VBUS power and the polarity
>>> + of the active level. It's an array of GPIO number and the active level of it.
>>> + minItems: 2
>>> + maxItems: 2
>>> +
>>> + maxim,gpx-pin:
>>
>> I don't understand. There is no need for this property. Drop.
>
> During my other reviews of new bindings, my final premise was that we should add every "capability" of
> a device (the IC) regardless of the driver support. In this case, the maxim,gpx-pin, is an example of that,
> the device supports that despite the driver support. I`m wondering here why we cannot add that here.
Read your commit msg. You are doing conversion. You cannot add random
stuff or missing hardware, just becase you are doing conversion.
You need to organize commits in logical way. Please ready carefully
submitting patches document.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-10-10 23:27 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-09 18:15 [PATCH] dt-bindings: usb: add yaml file for maxim,max3421 Rodrigo Gobbi
2025-10-10 1:34 ` Krzysztof Kozlowski
2025-10-10 19:46 ` Rodrigo Gobbi
2025-10-10 23:27 ` Krzysztof Kozlowski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).