* [PATCH v2 1/4] dt-bindings: usb: generic-ohci: add AT91RM9200 OHCI binding support
2026-02-24 13:12 [PATCH v2 0/4] dt-bindings: usb: atmel: convert Atmel USB controller bindings to YAML Charan Pedumuru
@ 2026-02-24 13:12 ` Charan Pedumuru
2026-03-06 0:45 ` Rob Herring
2026-02-24 13:12 ` [PATCH v2 2/4] dt-bindings: usb: generic-ehci: fix schema structure and add at91sam9g45 constraints Charan Pedumuru
` (2 subsequent siblings)
3 siblings, 1 reply; 12+ messages in thread
From: Charan Pedumuru @ 2026-02-24 13:12 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Claudiu Beznea, Herve Codina, Nicolas Ferre,
Alexandre Belloni
Cc: linux-usb, devicetree, linux-arm-kernel, linux-kernel,
Charan Pedumuru
Add binding support for the Atmel AT91RM9200 OHCI USB host controller
to the generic OHCI schema.
Signed-off-by: Charan Pedumuru <charan.pedumuru@gmail.com>
---
.../devicetree/bindings/usb/generic-ohci.yaml | 27 ++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/Documentation/devicetree/bindings/usb/generic-ohci.yaml b/Documentation/devicetree/bindings/usb/generic-ohci.yaml
index 961cbf85eeb5..ab8a49142386 100644
--- a/Documentation/devicetree/bindings/usb/generic-ohci.yaml
+++ b/Documentation/devicetree/bindings/usb/generic-ohci.yaml
@@ -55,6 +55,7 @@ properties:
- ti,ohci-omap3
- items:
- enum:
+ - atmel,at91rm9200-ohci
- cavium,octeon-6335-ohci
- nintendo,hollywood-usb-ohci
- nxp,ohci-nxp
@@ -137,6 +138,16 @@ properties:
The associated ISP1301 device. Necessary for the UDC controller for
connecting to the USB physical layer.
+ atmel,vbus-gpio:
+ description: GPIO used to control or sense the USB VBUS power.
+ minItems: 1
+ maxItems: 3
+
+ atmel,oc-gpio:
+ description: GPIO used to signal USB overcurrent condition.
+ minItems: 1
+ maxItems: 3
+
required:
- compatible
- reg
@@ -144,6 +155,22 @@ required:
allOf:
- $ref: usb-hcd.yaml
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: atmel,at91rm9200-ohci
+ then:
+ properties:
+ clock-names:
+ items:
+ - const: ohci_clk
+ - const: hclk
+ - const: uhpck
+
+ required:
+ - clocks
+ - clock-names
- if:
not:
properties:
--
2.53.0
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH v2 2/4] dt-bindings: usb: generic-ehci: fix schema structure and add at91sam9g45 constraints
2026-02-24 13:12 [PATCH v2 0/4] dt-bindings: usb: atmel: convert Atmel USB controller bindings to YAML Charan Pedumuru
2026-02-24 13:12 ` [PATCH v2 1/4] dt-bindings: usb: generic-ohci: add AT91RM9200 OHCI binding support Charan Pedumuru
@ 2026-02-24 13:12 ` Charan Pedumuru
2026-03-06 0:47 ` Rob Herring (Arm)
2026-02-24 13:13 ` [PATCH v2 3/4] dt-bindings: usb: atmel,at91rm9200-udc: convert to DT schema Charan Pedumuru
2026-02-24 13:13 ` [PATCH v2 4/4] dt-bindings: usb: atmel,at91sam9rl-udc: " Charan Pedumuru
3 siblings, 1 reply; 12+ messages in thread
From: Charan Pedumuru @ 2026-02-24 13:12 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Claudiu Beznea, Herve Codina, Nicolas Ferre,
Alexandre Belloni
Cc: linux-usb, devicetree, linux-arm-kernel, linux-kernel,
Charan Pedumuru
Add clock and phy constraints for atmel,at91sam9g45-ehci and reorganize
the allOf section to fix dtbs_check warnings.
Signed-off-by: Charan Pedumuru <charan.pedumuru@gmail.com>
---
.../devicetree/bindings/usb/generic-ehci.yaml | 46 ++++++++++++++++------
1 file changed, 33 insertions(+), 13 deletions(-)
diff --git a/Documentation/devicetree/bindings/usb/generic-ehci.yaml b/Documentation/devicetree/bindings/usb/generic-ehci.yaml
index 601f097c09a6..55a5aa7d7a54 100644
--- a/Documentation/devicetree/bindings/usb/generic-ehci.yaml
+++ b/Documentation/devicetree/bindings/usb/generic-ehci.yaml
@@ -9,19 +9,6 @@ title: USB EHCI Controller
maintainers:
- Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-allOf:
- - $ref: usb-hcd.yaml
- - if:
- properties:
- compatible:
- not:
- contains:
- const: ibm,usb-ehci-440epx
- then:
- properties:
- reg:
- maxItems: 1
-
properties:
compatible:
oneOf:
@@ -167,6 +154,39 @@ required:
- reg
- interrupts
+allOf:
+ - $ref: usb-hcd.yaml
+ - if:
+ properties:
+ compatible:
+ not:
+ contains:
+ const: ibm,usb-ehci-440epx
+ then:
+ properties:
+ reg:
+ maxItems: 1
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: atmel,at91sam9g45-ehci
+ then:
+ properties:
+ clock-names:
+ items:
+ - const: usb_clk
+ - const: ehci_clk
+
+ phy_type:
+ enum:
+ - utmi
+ - hsic
+
+ required:
+ - clocks
+ - clock-names
+
unevaluatedProperties: false
examples:
--
2.53.0
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH v2 3/4] dt-bindings: usb: atmel,at91rm9200-udc: convert to DT schema
2026-02-24 13:12 [PATCH v2 0/4] dt-bindings: usb: atmel: convert Atmel USB controller bindings to YAML Charan Pedumuru
2026-02-24 13:12 ` [PATCH v2 1/4] dt-bindings: usb: generic-ohci: add AT91RM9200 OHCI binding support Charan Pedumuru
2026-02-24 13:12 ` [PATCH v2 2/4] dt-bindings: usb: generic-ehci: fix schema structure and add at91sam9g45 constraints Charan Pedumuru
@ 2026-02-24 13:13 ` Charan Pedumuru
2026-03-06 0:47 ` Rob Herring (Arm)
2026-02-24 13:13 ` [PATCH v2 4/4] dt-bindings: usb: atmel,at91sam9rl-udc: " Charan Pedumuru
3 siblings, 1 reply; 12+ messages in thread
From: Charan Pedumuru @ 2026-02-24 13:13 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Claudiu Beznea, Herve Codina, Nicolas Ferre,
Alexandre Belloni
Cc: linux-usb, devicetree, linux-arm-kernel, linux-kernel,
Charan Pedumuru
Convert Atmel AT91 USB Device Controller (UDC) binding to DT schema.
Changes during conversion:
- Include "atmel,pullup-gpio" and "atmel,matrix" in the properties since
they are required by existing in-tree DTS definitions.
Signed-off-by: Charan Pedumuru <charan.pedumuru@gmail.com>
---
.../bindings/usb/atmel,at91rm9200-udc.yaml | 77 ++++++++++++++++++++++
1 file changed, 77 insertions(+)
diff --git a/Documentation/devicetree/bindings/usb/atmel,at91rm9200-udc.yaml b/Documentation/devicetree/bindings/usb/atmel,at91rm9200-udc.yaml
new file mode 100644
index 000000000000..6961cd5d5d89
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/atmel,at91rm9200-udc.yaml
@@ -0,0 +1,77 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/atmel,at91rm9200-udc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Atmel AT91 USB Device Controller (UDC)
+
+maintainers:
+ - Nicolas Ferre <nicolas.ferre@microchip.com>
+ - Alexandre Belloni <alexandre.belloni@bootlin.com>
+
+description:
+ The Atmel AT91 USB Device Controller provides USB gadget (device-mode)
+ functionality on AT91 SoCs. It requires a peripheral clock and an AHB
+ clock for operation and may optionally control VBUS power through a GPIO.
+
+properties:
+ compatible:
+ enum:
+ - atmel,at91rm9200-udc
+ - atmel,at91sam9260-udc
+ - atmel,at91sam9261-udc
+ - atmel,at91sam9263-udc
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ clocks:
+ minItems: 2
+ maxItems: 2
+
+ clock-names:
+ items:
+ - const: pclk
+ - const: hclk
+
+ atmel,vbus-gpio:
+ description: GPIO used to enable or control VBUS power for the USB bus.
+ maxItems: 1
+
+ atmel,matrix:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description: Phandle to the Atmel bus matrix controller.
+
+ atmel,pullup-gpio:
+ description:
+ GPIO controlling the USB D+ pull-up resistor used to signal device
+ connection to the host.
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - clocks
+ - clock-names
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/irq.h>
+ #include <dt-bindings/clock/at91.h>
+ #include <dt-bindings/gpio/gpio.h>
+ gadget@fffa4000 {
+ compatible = "atmel,at91rm9200-udc";
+ reg = <0xfffa4000 0x4000>;
+ interrupts = <11 IRQ_TYPE_LEVEL_HIGH 2>;
+ clocks = <&udc_clk>, <&udpck>;
+ clock-names = "pclk", "hclk";
+ atmel,vbus-gpio = <&pioC 5 GPIO_ACTIVE_HIGH>;
+ };
+...
--
2.53.0
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH v2 4/4] dt-bindings: usb: atmel,at91sam9rl-udc: convert to DT schema
2026-02-24 13:12 [PATCH v2 0/4] dt-bindings: usb: atmel: convert Atmel USB controller bindings to YAML Charan Pedumuru
` (2 preceding siblings ...)
2026-02-24 13:13 ` [PATCH v2 3/4] dt-bindings: usb: atmel,at91rm9200-udc: convert to DT schema Charan Pedumuru
@ 2026-02-24 13:13 ` Charan Pedumuru
2026-03-06 0:49 ` Rob Herring
3 siblings, 1 reply; 12+ messages in thread
From: Charan Pedumuru @ 2026-02-24 13:13 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Claudiu Beznea, Herve Codina, Nicolas Ferre,
Alexandre Belloni
Cc: linux-usb, devicetree, linux-arm-kernel, linux-kernel,
Charan Pedumuru
Convert Atmel High-Speed USB Device Controller (USBA) binding to DT schema.
Changes during conversion:
- Include "#address-cells" and "#size-cells" in the properties since they
are required by existing in-tree DTS definitions.
Signed-off-by: Charan Pedumuru <charan.pedumuru@gmail.com>
---
.../bindings/usb/atmel,at91sam9rl-udc.yaml | 81 +++++++++++++
.../devicetree/bindings/usb/atmel-usb.txt | 125 ---------------------
2 files changed, 81 insertions(+), 125 deletions(-)
diff --git a/Documentation/devicetree/bindings/usb/atmel,at91sam9rl-udc.yaml b/Documentation/devicetree/bindings/usb/atmel,at91sam9rl-udc.yaml
new file mode 100644
index 000000000000..6f5710cecaee
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/atmel,at91sam9rl-udc.yaml
@@ -0,0 +1,81 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/atmel,at91sam9rl-udc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Atmel High-Speed USB Device Controller (USBA)
+
+maintainers:
+ - Nicolas Ferre <nicolas.ferre@microchip.com>
+ - Alexandre Belloni <alexandre.belloni@bootlin.com>
+
+description:
+ The Atmel High-Speed USB Device Controller (USBA) provides USB 2.0
+ high-speed gadget functionality on several Atmel and Microchip SoCs.
+ The controller requires a peripheral clock and a host clock for operation
+ and may optionally use a GPIO to detect VBUS presence.
+
+properties:
+ compatible:
+ oneOf:
+ - enum:
+ - atmel,at91sam9rl-udc
+ - atmel,at91sam9g45-udc
+ - atmel,sama5d3-udc
+ - items:
+ - const: microchip,lan9662-udc
+ - const: atmel,sama5d3-udc
+ - const: microchip,sam9x60-udc
+
+ reg:
+ maxItems: 2
+
+ interrupts:
+ maxItems: 1
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 0
+
+ clocks:
+ minItems: 2
+ maxItems: 2
+
+ clock-names:
+ minItems: 2
+ maxItems: 2
+ items:
+ enum: [pclk, hclk]
+
+ atmel,vbus-gpio:
+ description: GPIO used to detect the presence of VBUS, indicating that
+ the USB cable is connected.
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - clocks
+ - clock-names
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/irq.h>
+ #include <dt-bindings/clock/at91.h>
+ #include <dt-bindings/gpio/gpio.h>
+ gadget@fff78000 {
+ compatible = "atmel,at91sam9g45-udc";
+ reg = <0x00600000 0x80000
+ 0xfff78000 0x400>;
+ interrupts = <27 IRQ_TYPE_LEVEL_HIGH 0>;
+ clocks = <&pmc PMC_TYPE_PERIPHERAL 27>, <&pmc PMC_TYPE_CORE PMC_UTMI>;
+ clock-names = "pclk", "hclk";
+ atmel,vbus-gpio = <&pioC 15 GPIO_ACTIVE_HIGH>;
+ };
+...
diff --git a/Documentation/devicetree/bindings/usb/atmel-usb.txt b/Documentation/devicetree/bindings/usb/atmel-usb.txt
deleted file mode 100644
index 12183ef47ee4..000000000000
--- a/Documentation/devicetree/bindings/usb/atmel-usb.txt
+++ /dev/null
@@ -1,125 +0,0 @@
-Atmel SOC USB controllers
-
-OHCI
-
-Required properties:
- - compatible: Should be "atmel,at91rm9200-ohci" for USB controllers
- used in host mode.
- - reg: Address and length of the register set for the device
- - interrupts: Should contain ohci interrupt
- - clocks: Should reference the peripheral, host and system clocks
- - clock-names: Should contain three strings
- "ohci_clk" for the peripheral clock
- "hclk" for the host clock
- "uhpck" for the system clock
- - num-ports: Number of ports.
- - atmel,vbus-gpio: If present, specifies a gpio that needs to be
- activated for the bus to be powered.
- - atmel,oc-gpio: If present, specifies a gpio that needs to be
- activated for the overcurrent detection.
-
-usb0: ohci@500000 {
- compatible = "atmel,at91rm9200-ohci", "usb-ohci";
- reg = <0x00500000 0x100000>;
- clocks = <&uhphs_clk>, <&uhphs_clk>, <&uhpck>;
- clock-names = "ohci_clk", "hclk", "uhpck";
- interrupts = <20 4>;
- num-ports = <2>;
-};
-
-EHCI
-
-Required properties:
- - compatible: Should be "atmel,at91sam9g45-ehci" for USB controllers
- used in host mode.
- - reg: Address and length of the register set for the device
- - interrupts: Should contain ehci interrupt
- - clocks: Should reference the peripheral and the UTMI clocks
- - clock-names: Should contain two strings
- "ehci_clk" for the peripheral clock
- "usb_clk" for the UTMI clock
-
-Optional properties:
- - phy_type : For multi port host USB controllers, should be one of
- "utmi", or "hsic".
-
-usb1: ehci@800000 {
- compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
- reg = <0x00800000 0x100000>;
- interrupts = <22 4>;
- clocks = <&utmi>, <&uhphs_clk>;
- clock-names = "usb_clk", "ehci_clk";
-};
-
-AT91 USB device controller
-
-Required properties:
- - compatible: Should be one of the following
- "atmel,at91rm9200-udc"
- "atmel,at91sam9260-udc"
- "atmel,at91sam9261-udc"
- "atmel,at91sam9263-udc"
- - reg: Address and length of the register set for the device
- - interrupts: Should contain macb interrupt
- - clocks: Should reference the peripheral and the AHB clocks
- - clock-names: Should contain two strings
- "pclk" for the peripheral clock
- "hclk" for the AHB clock
-
-Optional properties:
- - atmel,vbus-gpio: If present, specifies a gpio that needs to be
- activated for the bus to be powered.
-
-usb1: gadget@fffa4000 {
- compatible = "atmel,at91rm9200-udc";
- reg = <0xfffa4000 0x4000>;
- interrupts = <10 4>;
- clocks = <&udc_clk>, <&udpck>;
- clock-names = "pclk", "hclk";
- atmel,vbus-gpio = <&pioC 5 0>;
-};
-
-Atmel High-Speed USB device controller
-
-Required properties:
- - compatible: Should be one of the following
- "atmel,at91sam9rl-udc"
- "atmel,at91sam9g45-udc"
- "atmel,sama5d3-udc"
- "microchip,sam9x60-udc"
- "microchip,lan9662-udc"
- For "microchip,lan9662-udc" the fallback "atmel,sama5d3-udc"
- is required.
- - reg: Address and length of the register set for the device
- - interrupts: Should contain usba interrupt
- - clocks: Should reference the peripheral and host clocks
- - clock-names: Should contain two strings
- "pclk" for the peripheral clock
- "hclk" for the host clock
-
-Deprecated property:
- - ep childnode: To specify the number of endpoints and their properties.
-
-Optional properties:
- - atmel,vbus-gpio: If present, specifies a gpio that allows to detect whether
- vbus is present (USB is connected).
-
-Deprecated child node properties:
- - name: Name of the endpoint.
- - reg: Num of the endpoint.
- - atmel,fifo-size: Size of the fifo.
- - atmel,nb-banks: Number of banks.
- - atmel,can-dma: Boolean to specify if the endpoint support DMA.
- - atmel,can-isoc: Boolean to specify if the endpoint support ISOC.
-
-usb2: gadget@fff78000 {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "atmel,at91sam9rl-udc";
- reg = <0x00600000 0x80000
- 0xfff78000 0x400>;
- interrupts = <27 4 0>;
- clocks = <&utmi>, <&udphs_clk>;
- clock-names = "hclk", "pclk";
- atmel,vbus-gpio = <&pioB 19 0>;
-};
--
2.53.0
^ permalink raw reply related [flat|nested] 12+ messages in thread