linux-usb.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/4] dt-bindings: usb: chipidea: Convert to json-schema
@ 2021-12-09 16:53 Thierry Reding
  2021-12-09 16:53 ` [PATCH 2/4] dt-bindings: usb: tegra: " Thierry Reding
                   ` (4 more replies)
  0 siblings, 5 replies; 12+ messages in thread
From: Thierry Reding @ 2021-12-09 16:53 UTC (permalink / raw)
  To: Rob Herring
  Cc: Greg Kroah-Hartman, Peter Chen, Nagarjuna Kristam, JC Kuo,
	devicetree, linux-tegra, linux-usb

From: Thierry Reding <treding@nvidia.com>

Convert the ChipIdea USB2 bindings from the free-form text format to
json-schema.

Signed-off-by: Thierry Reding <treding@nvidia.com>
---
 .../bindings/usb/chipidea,usb2.yaml           | 310 ++++++++++++++++++
 .../devicetree/bindings/usb/ci-hdrc-usb2.txt  | 158 ---------
 2 files changed, 310 insertions(+), 158 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/usb/chipidea,usb2.yaml
 delete mode 100644 Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt

diff --git a/Documentation/devicetree/bindings/usb/chipidea,usb2.yaml b/Documentation/devicetree/bindings/usb/chipidea,usb2.yaml
new file mode 100644
index 000000000000..0e36259f23ba
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/chipidea,usb2.yaml
@@ -0,0 +1,310 @@
+# SPDX-License-Identifier: GPL-2.0-only
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/usb/chipidea,usb2.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: USB2 ChipIdea USB controller for ci13xxx
+
+maintainers:
+  - Peter Chen <peter.chen@freescale.com>
+
+properties:
+  compatible:
+    oneOf:
+      - enum:
+          - fsl,imx23-usb
+          - fsl,imx27-usb
+          - fsl,imx28-usb
+          - fsl,imx6q-usb
+          - fsl,imx6sl-usb
+          - fsl,imx6sx-usb
+          - fsl,imx6ul-usb
+          - fsl,imx7d-usb
+          - fsl,imx7ulp-usb
+          - lsi,zevio-usb
+          - qcom,ci-hdrc
+          - chipidea,usb2
+          - xlnx,zynq-usb-2.20a
+          - nvidia,tegra20-udc
+          - nvidia,tegra30-udc
+          - nvidia,tegra114-udc
+          - nvidia,tegra124-udc
+      - items:
+          - const: fsl,imx6q-usb
+          - const: fsl,imx27-usb
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  phy_type:
+    $ref: /schemas/types.yaml#/definitions/string
+    description: The type of the PHY connected to the core. Without this property the PORTSC
+      register won't be touched.
+    enum:
+      - utmi
+      - utmi_wide
+      - ulpi
+      - serial
+      - hsic
+
+  dr_mode:
+    $ref: /schemas/types.yaml#/definitions/string
+    description: dual-role mode of the interface
+    enum:
+      - host
+      - peripheral
+      - otg
+    default:
+      const: otg
+
+  clocks:
+    items:
+      - description: reference to the USB clock
+
+  resets:
+    items:
+      - description: reference to the USB reset
+
+  reset-names:
+    items:
+      - const: usb
+
+  phys:
+    items:
+      - description: reference to the USB PHY
+
+  phy-names:
+    items:
+      - const: usb-phy
+
+  vbus-supply:
+    description: reference to the VBUS regulator
+
+  maximum-speed:
+    description: limit the maximum connection speed to "full-speed".
+
+  tpl-support:
+    description: TPL (Targeted Peripheral List) feature for targeted hosts
+
+  itc-setting:
+    description: Interrupt threshold control register control, the setting should be aligned with
+      ITC bits at register USBCMD.
+
+  ahb-burst-config:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: This vendor-dependent property is used to change the AHB burst configuration and
+      should be aligned with AHBBRST at SBUSCFG. See the ChipIdea specification for the details on
+      each of those values. If this property does not exist, the reset value will be used.
+    minimum: 0
+    maximum: 7
+
+  tx-burst-size-dword:
+    description: This vendor-dependent property is used to configure the TX burst size (in 32-bit
+      words). The value represents the maximum length of a burst while moving data from system
+      memory to the USB bus. This property takes effect only if the "ahb-burst-config" property is
+      set to 0. If this property is missing the reset default of the hardware implementation will
+      be used.
+
+  rx-burst-size-dword:
+    description: This vendor-dependent property is used to configure the RX burst size (in 32-bit
+      words). This value represents the maximum length of a burst while moving data from the USB
+      bus to system memory. This property takes effect only if the "ahb-burst-config" property is
+      set to 0. If this property is missing the reset default of the hardware implementation will
+      be used.
+
+  extcon:
+    description: A list of phandles to external connector devices. The first phandle should point
+      to the external connector which provides "USB" cable events. The second should point to the
+      external connector device that provide "USB-HOST" cable events. If one of the external
+      connector devices is not required, an empty phandle (0) should be specified.
+
+  phy-clkgate-delay-us:
+    description: The delay time (in microseconds) between putting the PHY into low power mode and
+      gating the PHY clock.
+
+  non-zero-ttctrl-ttha:
+    description: |
+      After setting this property, the value of register ttctrl.ttha will be 0x7f; if not, the
+      value will be 0x0 (the default). The value for this property needs to be chosen very
+      carefully after consulting with your IC engineer.
+
+      On most ChipIdea platforms, the "usage_tt" flag at RTL is 0, so this property only affects
+      siTD.
+
+      If this property is not set, the maximum packet size is 1023 bytes, and if the total packet
+      size for previous transactions is more than 256 bytes, no further transactions can be
+      accepted within the frame. The use case is single transaction, but higher frame rate.
+
+      If this property is set, the maximum packet size is limited to 188 bytes and more
+      transactions than in the above case can be handled. Transactions will be accepted as long as
+      188 bytes or more of space are left within a frame. Software needs to make sure it does not
+      send more than 90% maximum_periodic_data_per_frame. The use case is higher amount of
+      transactions at the cost of a lower frame rate.
+
+  mux-controls:
+    description: The mux control for toggling host/device output of this controller. It's expected
+      that a mux state of 0 indicates device mode and a mux state of 1 indicates host mode.
+
+  mux-control-names:
+    const: usb_switch
+
+  pinctrl-names:
+    description: In case of HSIC-mode, "idle" and "active" pin modes are mandatory. In this case,
+      the "idle" state needs to pull down the data and strobe pin and the "active" state needs to
+      pull up the strobe pin.
+    minItems: 1
+    maxItems: 5
+    items:
+      enum:
+        - default
+        - host
+        - device
+        - idle # mandatory for HSIC
+        - active # mandatory for HSIC
+
+  # i.MX specific properties
+  fsl,usbmisc:
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    description: phandle to non-core register device, with one argument that indicate USB
+      controller index.
+
+  disable-over-current:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: disable over current detect
+
+  over-current-active-low:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: Over-current signal polarity is active low. It's recommended to specify the
+      over-current polarity.
+
+  over-current-active-high:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: Over-current signal polarity is active high. It's recommended to specify the
+      over-current polarity.
+
+  power-active-high:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: power signal polarity is active high
+
+  external-vbus-divider:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: enables off-chip resistor divider for Vbus
+
+  samsung,picophy-pre-emp-curr-control:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: HS Transmitter Pre-Emphasis Current Control. This signal controls the amount of
+      current sourced to the USB_OTG*_DP and USB_OTG*_DN pins after a J-to-K or K-to-J transition.
+      Refer to the TXPREEMPAMPTUNE0 bits of register USBNC_n_PHY_CFG1 in the documentation for
+      more details.
+    minimum: 0
+    maximum: 3
+    default: 1
+
+  samsung,picophy-dc-vol-level-adjust:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: HS DC Voltage Level Adjustment. Adjust the high-speed transmitter DC level
+      voltage. Refer to the TXVREFTUNE0 bits of register USBNC_n_PHY_CFG1 in the documentation for
+      more details.
+    minimum: 0
+    maximum: 0xf
+    default: 3
+
+  # NVIDIA Tegra specific properties
+  nvidia,needs-double-reset:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: Specifies a workaround for the USB1 port that needs to be reset twice internally
+      some Tegra devices.
+
+  # deprecated properties
+  usb-phy:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: phandle for the PHY device. Use "phys" instead.
+    deprecated: true
+
+  fsl,usbphy:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: phandle of usb phy that connects to the port. Use "phys" instead.
+    deprecated: true
+
+  nvidia,phy:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: phandle for the PHY device. Use "phys" instead.
+    deprecated: true
+
+  # USB bus
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+patternProperties:
+  "^pinctrl-[0-9]+$": true
+
+additionalProperties:
+  $ref: usb-device.yaml
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+dependencies:
+  mux-control-names: [ mux-controls ]
+
+examples:
+  - |
+    #include <dt-bindings/clock/berlin2.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    usb@f7ed0000 {
+      compatible = "chipidea,usb2";
+      reg = <0xf7ed0000 0x10000>;
+      interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+      clocks = <&chip CLKID_USB0>;
+      phys = <&usb_phy0>;
+      phy-names = "usb-phy";
+      vbus-supply = <&reg_usb0_vbus>;
+      itc-setting = <0x4>; /* 4 micro-frames */
+      /* Incremental burst of unspecified length */
+      ahb-burst-config = <0x0>;
+      tx-burst-size-dword = <0x10>; /* 64 bytes */
+      rx-burst-size-dword = <0x10>;
+      extcon = <0>, <&usb_id>;
+      phy-clkgate-delay-us = <400>;
+      mux-controls = <&usb_switch>;
+      mux-control-names = "usb_switch";
+    };
+
+  # HSIC
+  - |
+    #include <dt-bindings/clock/imx6qdl-clock.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    usb@2184400 {
+      compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
+      reg = <0x02184400 0x200>;
+      interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
+      clocks = <&clks IMX6QDL_CLK_USBOH3>;
+      fsl,usbphy = <&usbphynop1>;
+      fsl,usbmisc = <&usbmisc 2>;
+      phy_type = "hsic";
+      dr_mode = "host";
+      ahb-burst-config = <0x0>;
+      tx-burst-size-dword = <0x10>;
+      rx-burst-size-dword = <0x10>;
+      pinctrl-names = "idle", "active";
+      pinctrl-0 = <&pinctrl_usbh2_idle>;
+      pinctrl-1 = <&pinctrl_usbh2_active>;
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      usbnet: smsc@1 {
+        compatible = "usb424,9730";
+        reg = <1>;
+      };
+    };
diff --git a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt
deleted file mode 100644
index a5c5db6a0b2d..000000000000
--- a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt
+++ /dev/null
@@ -1,158 +0,0 @@
-* USB2 ChipIdea USB controller for ci13xxx
-
-Required properties:
-- compatible: should be one of:
-	"fsl,imx23-usb"
-	"fsl,imx27-usb"
-	"fsl,imx28-usb"
-	"fsl,imx6q-usb"
-	"fsl,imx6sl-usb"
-	"fsl,imx6sx-usb"
-	"fsl,imx6ul-usb"
-	"fsl,imx7d-usb"
-	"fsl,imx7ulp-usb"
-	"lsi,zevio-usb"
-	"qcom,ci-hdrc"
-	"chipidea,usb2"
-	"xlnx,zynq-usb-2.20a"
-	"nvidia,tegra20-udc"
-	"nvidia,tegra30-udc"
-	"nvidia,tegra114-udc"
-	"nvidia,tegra124-udc"
-- reg: base address and length of the registers
-- interrupts: interrupt for the USB controller
-
-Recommended properies:
-- phy_type: the type of the phy connected to the core. Should be one
-  of "utmi", "utmi_wide", "ulpi", "serial" or "hsic". Without this
-  property the PORTSC register won't be touched.
-- dr_mode: One of "host", "peripheral" or "otg". Defaults to "otg"
-
-Deprecated properties:
-- usb-phy:      phandle for the PHY device. Use "phys" instead.
-- fsl,usbphy: phandle of usb phy that connects to the port. Use "phys" instead.
-
-Optional properties:
-- clocks: reference to the USB clock
-- phys: reference to the USB PHY
-- phy-names: should be "usb-phy"
-- vbus-supply: reference to the VBUS regulator
-- maximum-speed: limit the maximum connection speed to "full-speed".
-- tpl-support: TPL (Targeted Peripheral List) feature for targeted hosts
-- itc-setting: interrupt threshold control register control, the setting
-  should be aligned with ITC bits at register USBCMD.
-- ahb-burst-config: it is vendor dependent, the required value should be
-  aligned with AHBBRST at SBUSCFG, the range is from 0x0 to 0x7. This
-  property is used to change AHB burst configuration, check the chipidea
-  spec for meaning of each value. If this property is not existed, it
-  will use the reset value.
-- tx-burst-size-dword: it is vendor dependent, the tx burst size in dword
-  (4 bytes), This register represents the maximum length of a the burst
-  in 32-bit words while moving data from system memory to the USB
-  bus, the value of this property will only take effect if property
-  "ahb-burst-config" is set to 0, if this property is missing the reset
-  default of the hardware implementation will be used.
-- rx-burst-size-dword: it is vendor dependent, the rx burst size in dword
-  (4 bytes), This register represents the maximum length of a the burst
-  in 32-bit words while moving data from the USB bus to system memory,
-  the value of this property will only take effect if property
-  "ahb-burst-config" is set to 0, if this property is missing the reset
-  default of the hardware implementation will be used.
-- extcon: phandles to external connector devices. First phandle should point to
-  external connector, which provide "USB" cable events, the second should point
-  to external connector device, which provide "USB-HOST" cable events. If one
-  of the external connector devices is not required, empty <0> phandle should
-  be specified.
-- phy-clkgate-delay-us: the delay time (us) between putting the PHY into
-  low power mode and gating the PHY clock.
-- non-zero-ttctrl-ttha: after setting this property, the value of register
-  ttctrl.ttha will be 0x7f; if not, the value will be 0x0, this is the default
-  value. It needs to be very carefully for setting this property, it is
-  recommended that consult with your IC engineer before setting this value.
-  On the most of chipidea platforms, the "usage_tt" flag at RTL is 0, so this
-  property only affects siTD.
-  If this property is not set, the max packet size is 1023 bytes, and if
-  the total of packet size for pervious transactions are more than 256 bytes,
-  it can't accept any transactions within this frame. The use case is single
-  transaction, but higher frame rate.
-  If this property is set, the max packet size is 188 bytes, it can handle
-  more transactions than above case, it can accept transactions until it
-  considers the left room size within frame is less than 188 bytes, software
-  needs to make sure it does not send more than 90%
-  maximum_periodic_data_per_frame. The use case is multiple transactions, but
-  less frame rate.
-- mux-controls: The mux control for toggling host/device output of this
-  controller. It's expected that a mux state of 0 indicates device mode and a
-  mux state of 1 indicates host mode.
-- mux-control-names: Shall be "usb_switch" if mux-controls is specified.
-- pinctrl-names: Names for optional pin modes in "default", "host", "device".
-  In case of HSIC-mode, "idle" and "active" pin modes are mandatory. In this
-  case, the "idle" state needs to pull down the data and strobe pin
-  and the "active" state needs to pull up the strobe pin.
-- pinctrl-n: alternate pin modes
-
-i.mx specific properties
-- fsl,usbmisc: phandler of non-core register device, with one
-  argument that indicate usb controller index
-- disable-over-current: disable over current detect
-- over-current-active-low: over current signal polarity is active low.
-- over-current-active-high: over current signal polarity is active high.
-  It's recommended to specify the over current polarity.
-- power-active-high: power signal polarity is active high
-- external-vbus-divider: enables off-chip resistor divider for Vbus
-- samsung,picophy-pre-emp-curr-control: HS Transmitter Pre-Emphasis Current
-  Control. This signal controls the amount of current sourced to the
-  USB_OTG*_DP and USB_OTG*_DN pins after a J-to-K or K-to-J transition.
-  The range is from 0x0 to 0x3, the default value is 0x1.
-  Details can refer to TXPREEMPAMPTUNE0 bits of USBNC_n_PHY_CFG1.
-- samsung,picophy-dc-vol-level-adjust: HS DC Voltage Level Adjustment.
-  Adjust the high-speed transmitter DC level voltage.
-  The range is from 0x0 to 0xf, the default value is 0x3.
-  Details can refer to TXVREFTUNE0 bits of USBNC_n_PHY_CFG1.
-
-Example:
-
-	usb@f7ed0000 {
-		compatible = "chipidea,usb2";
-		reg = <0xf7ed0000 0x10000>;
-		interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&chip CLKID_USB0>;
-		phys = <&usb_phy0>;
-		phy-names = "usb-phy";
-		vbus-supply = <&reg_usb0_vbus>;
-		itc-setting = <0x4>; /* 4 micro-frames */
-		 /* Incremental burst of unspecified length */
-		ahb-burst-config = <0x0>;
-		tx-burst-size-dword = <0x10>; /* 64 bytes */
-		rx-burst-size-dword = <0x10>;
-		extcon = <0>, <&usb_id>;
-		phy-clkgate-delay-us = <400>;
-		mux-controls = <&usb_switch>;
-		mux-control-names = "usb_switch";
-	};
-
-Example for HSIC:
-
-	usb@2184400 {
-		compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
-		reg = <0x02184400 0x200>;
-		interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&clks IMX6QDL_CLK_USBOH3>;
-		fsl,usbphy = <&usbphynop1>;
-		fsl,usbmisc = <&usbmisc 2>;
-		phy_type = "hsic";
-		dr_mode = "host";
-		ahb-burst-config = <0x0>;
-		tx-burst-size-dword = <0x10>;
-		rx-burst-size-dword = <0x10>;
-		pinctrl-names = "idle", "active";
-		pinctrl-0 = <&pinctrl_usbh2_idle>;
-		pinctrl-1 = <&pinctrl_usbh2_active>;
-		#address-cells = <1>;
-		#size-cells = <0>;
-
-		usbnet: smsc@1 {
-			compatible = "usb424,9730";
-			reg = <1>;
-		};
-	};
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 2/4] dt-bindings: usb: tegra: Convert to json-schema
  2021-12-09 16:53 [PATCH 1/4] dt-bindings: usb: chipidea: Convert to json-schema Thierry Reding
@ 2021-12-09 16:53 ` Thierry Reding
  2021-12-09 20:55   ` Rob Herring
  2021-12-15 19:27   ` Rob Herring
  2021-12-09 16:53 ` [PATCH 3/4] dt-bindings: usb: tegra-xusb: " Thierry Reding
                   ` (3 subsequent siblings)
  4 siblings, 2 replies; 12+ messages in thread
From: Thierry Reding @ 2021-12-09 16:53 UTC (permalink / raw)
  To: Rob Herring
  Cc: Greg Kroah-Hartman, Peter Chen, Nagarjuna Kristam, JC Kuo,
	devicetree, linux-tegra, linux-usb

From: Thierry Reding <treding@nvidia.com>

Convert the old plain-text device tree bindings for the USB EHCI
controller found on NVIDIA Tegra SoCs to the json-schema format.

Signed-off-by: Thierry Reding <treding@nvidia.com>

---
Changes in v2:
- include usb-hcd.yaml and usb-drd.yaml
- drop redundant phy_type property

 .../bindings/clock/nvidia,tegra124-car.yaml   |   5 +
 .../bindings/clock/nvidia,tegra20-car.yaml    |   5 +
 .../bindings/usb/nvidia,tegra20-ehci.txt      |  23 ---
 .../bindings/usb/nvidia,tegra20-ehci.yaml     | 156 ++++++++++++++++++
 4 files changed, 166 insertions(+), 23 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt
 create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.yaml

diff --git a/Documentation/devicetree/bindings/clock/nvidia,tegra124-car.yaml b/Documentation/devicetree/bindings/clock/nvidia,tegra124-car.yaml
index ec7ab1483652..bcd812378cfb 100644
--- a/Documentation/devicetree/bindings/clock/nvidia,tegra124-car.yaml
+++ b/Documentation/devicetree/bindings/clock/nvidia,tegra124-car.yaml
@@ -99,6 +99,7 @@ additionalProperties: false
 examples:
   - |
     #include <dt-bindings/clock/tegra124-car.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
 
     car: clock-controller@60006000 {
         compatible = "nvidia,tegra124-car";
@@ -110,6 +111,10 @@ examples:
     usb-controller@c5004000 {
         compatible = "nvidia,tegra20-ehci";
         reg = <0xc5004000 0x4000>;
+        interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
         clocks = <&car TEGRA124_CLK_USB2>;
         resets = <&car TEGRA124_CLK_USB2>;
+        reset-names = "usb";
+        phy_type = "utmi";
+        nvidia,phy = <&phy1>;
     };
diff --git a/Documentation/devicetree/bindings/clock/nvidia,tegra20-car.yaml b/Documentation/devicetree/bindings/clock/nvidia,tegra20-car.yaml
index 459d2a525393..aba52e56a99a 100644
--- a/Documentation/devicetree/bindings/clock/nvidia,tegra20-car.yaml
+++ b/Documentation/devicetree/bindings/clock/nvidia,tegra20-car.yaml
@@ -53,6 +53,7 @@ additionalProperties: false
 examples:
   - |
     #include <dt-bindings/clock/tegra20-car.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
 
     car: clock-controller@60006000 {
         compatible = "nvidia,tegra20-car";
@@ -64,6 +65,10 @@ examples:
     usb-controller@c5004000 {
         compatible = "nvidia,tegra20-ehci";
         reg = <0xc5004000 0x4000>;
+        interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
         clocks = <&car TEGRA20_CLK_USB2>;
         resets = <&car TEGRA20_CLK_USB2>;
+        reset-names = "usb";
+        phy_type = "utmi";
+        nvidia,phy = <&phy1>;
     };
diff --git a/Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt b/Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt
deleted file mode 100644
index f60785f73d3d..000000000000
--- a/Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-Tegra SOC USB controllers
-
-The device node for a USB controller that is part of a Tegra
-SOC is as described in the document "Open Firmware Recommended
-Practice : Universal Serial Bus" with the following modifications
-and additions :
-
-Required properties :
- - compatible : For Tegra20, must contain "nvidia,tegra20-ehci".
-   For Tegra30, must contain "nvidia,tegra30-ehci".  Otherwise, must contain
-   "nvidia,<chip>-ehci" plus at least one of the above, where <chip> is
-   tegra114, tegra124, tegra132, or tegra210.
- - nvidia,phy : phandle of the PHY that the controller is connected to.
- - clocks : Must contain one entry, for the module clock.
-   See ../clocks/clock-bindings.txt for details.
- - resets : Must contain an entry for each entry in reset-names.
-   See ../reset/reset.txt for details.
- - reset-names : Must include the following entries:
-   - usb
-
-Optional properties:
- - nvidia,needs-double-reset : boolean is to be set for some of the Tegra20
-   USB ports, which need reset twice due to hardware issues.
diff --git a/Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.yaml b/Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.yaml
new file mode 100644
index 000000000000..aa00e58f9ee6
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.yaml
@@ -0,0 +1,156 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/usb/nvidia,tegra20-ehci.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: Device tree binding for NVIDIA Tegra USB controllers
+
+description: |
+  The device node for a USB controller that is part of a Tegra SOC is as
+  described in the document "Open Firmware Recommended Practice : Universal
+  Serial Bus". Modifications and additions are detailed in this document.
+
+maintainers:
+  - Thierry Reding <treding@nvidia.com>
+  - Jon Hunter <jonathanh@nvidia.com>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - nvidia,tegra210-ehci
+              - nvidia,tegra124-ehci
+              - nvidia,tegra114-ehci
+          - const: nvidia,tegra30-ehci
+      - items:
+          - const: nvidia,tegra30-ehci
+      - items:
+          - const: nvidia,tegra20-ehci
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: module clock
+
+  clock-names:
+    items:
+      - const: usb
+
+  resets:
+    maxItems: 1
+
+  reset-names:
+    items:
+      - const: usb
+
+  nvidia,phy:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      phandle of the PHY that the controller is connected to
+
+  nvidia,needs-double-reset:
+    type: boolean
+    description:
+      This must be set for some instances of the USB controller found on
+      Tegra20 that need to be reset twice due to some hardware issue.
+
+allOf:
+  - $ref: usb-drd.yaml
+  - $ref: usb-hcd.yaml
+
+unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - resets
+  - reset-names
+  - phy_type
+  - nvidia,phy
+
+examples:
+  - |
+    #include <dt-bindings/clock/tegra20-car.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    usb@c5000000 {
+        compatible = "nvidia,tegra20-ehci";
+        reg = <0xc5000000 0x4000>;
+        interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+        phy_type = "utmi";
+        clocks = <&tegra_car TEGRA20_CLK_USBD>;
+        resets = <&tegra_car 22>;
+        reset-names = "usb";
+        nvidia,needs-double-reset;
+        nvidia,phy = <&phy1>;
+    };
+
+  - |
+    #include <dt-bindings/clock/tegra30-car.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    usb@7d000000 {
+        compatible = "nvidia,tegra30-ehci";
+        reg = <0x7d000000 0x4000>;
+        interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+        phy_type = "utmi";
+        clocks = <&tegra_car TEGRA30_CLK_USBD>;
+        resets = <&tegra_car 22>;
+        reset-names = "usb";
+        nvidia,needs-double-reset;
+        nvidia,phy = <&phy1>;
+    };
+
+  - |
+    #include <dt-bindings/clock/tegra114-car.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    usb@7d000000 {
+        compatible = "nvidia,tegra114-ehci", "nvidia,tegra30-ehci";
+        reg = <0x7d000000 0x4000>;
+        interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+        phy_type = "utmi";
+        clocks = <&tegra_car TEGRA114_CLK_USBD>;
+        resets = <&tegra_car 22>;
+        reset-names = "usb";
+        nvidia,phy = <&phy1>;
+    };
+
+  - |
+    #include <dt-bindings/clock/tegra124-car.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    usb@7d000000 {
+        compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci";
+        reg = <0x7d000000 0x4000>;
+        interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+        phy_type = "utmi";
+        clocks = <&tegra_car TEGRA124_CLK_USBD>;
+        resets = <&tegra_car 22>;
+        reset-names = "usb";
+        nvidia,phy = <&phy1>;
+    };
+
+  - |
+    #include <dt-bindings/clock/tegra210-car.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    usb@7d000000 {
+        compatible = "nvidia,tegra210-ehci", "nvidia,tegra30-ehci";
+        reg = <0x7d000000 0x4000>;
+        interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+        phy_type = "utmi";
+        clocks = <&tegra_car TEGRA210_CLK_USBD>;
+        resets = <&tegra_car 22>;
+        reset-names = "usb";
+        nvidia,phy = <&phy1>;
+    };
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 3/4] dt-bindings: usb: tegra-xusb: Convert to json-schema
  2021-12-09 16:53 [PATCH 1/4] dt-bindings: usb: chipidea: Convert to json-schema Thierry Reding
  2021-12-09 16:53 ` [PATCH 2/4] dt-bindings: usb: tegra: " Thierry Reding
@ 2021-12-09 16:53 ` Thierry Reding
  2021-12-09 20:55   ` Rob Herring
  2021-12-15 19:48   ` Rob Herring
  2021-12-09 16:53 ` [PATCH 4/4] dt-bindings: usb: tegra-xudc: Document interconnects and iommus properties Thierry Reding
                   ` (2 subsequent siblings)
  4 siblings, 2 replies; 12+ messages in thread
From: Thierry Reding @ 2021-12-09 16:53 UTC (permalink / raw)
  To: Rob Herring
  Cc: Greg Kroah-Hartman, Peter Chen, Nagarjuna Kristam, JC Kuo,
	devicetree, linux-tegra, linux-usb

From: Thierry Reding <treding@nvidia.com>

Convert the Tegra XUSB controller bindings from the free-form text
format to json-schema.

Signed-off-by: Thierry Reding <treding@nvidia.com>
---
 .../bindings/usb/nvidia,tegra124-xusb.txt     | 132 -----------
 .../bindings/usb/nvidia,tegra124-xusb.yaml    | 201 +++++++++++++++++
 .../bindings/usb/nvidia,tegra186-xusb.yaml    | 182 +++++++++++++++
 .../bindings/usb/nvidia,tegra194-xusb.yaml    | 188 ++++++++++++++++
 .../bindings/usb/nvidia,tegra210-xusb.yaml    | 210 ++++++++++++++++++
 5 files changed, 781 insertions(+), 132 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.txt
 create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.yaml
 create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra186-xusb.yaml
 create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra194-xusb.yaml
 create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra210-xusb.yaml

diff --git a/Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.txt b/Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.txt
deleted file mode 100644
index 5bfcc0b4d6b9..000000000000
--- a/Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.txt
+++ /dev/null
@@ -1,132 +0,0 @@
-NVIDIA Tegra xHCI controller
-============================
-
-The Tegra xHCI controller supports both USB2 and USB3 interfaces exposed by
-the Tegra XUSB pad controller.
-
-Required properties:
---------------------
-- compatible: Must be:
-  - Tegra124: "nvidia,tegra124-xusb"
-  - Tegra132: "nvidia,tegra132-xusb", "nvidia,tegra124-xusb"
-  - Tegra210: "nvidia,tegra210-xusb"
-  - Tegra186: "nvidia,tegra186-xusb"
-- reg: Must contain the base and length of the xHCI host registers, XUSB FPCI
-  registers and XUSB IPFS registers.
-- reg-names: Must contain the following entries:
-  - "hcd"
-  - "fpci"
-  - "ipfs"
-- interrupts: Must contain the xHCI host interrupt and the mailbox interrupt.
-- clocks: Must contain an entry for each entry in clock-names.
-  See ../clock/clock-bindings.txt for details.
-- clock-names: Must include the following entries:
-   - xusb_host
-   - xusb_host_src
-   - xusb_falcon_src
-   - xusb_ss
-   - xusb_ss_src
-   - xusb_ss_div2
-   - xusb_hs_src
-   - xusb_fs_src
-   - pll_u_480m
-   - clk_m
-   - pll_e
-- resets: Must contain an entry for each entry in reset-names.
-  See ../reset/reset.txt for details.
-- reset-names: Must include the following entries:
-  - xusb_host
-  - xusb_ss
-  - xusb_src
-  Note that xusb_src is the shared reset for xusb_{ss,hs,fs,falcon,host}_src.
-- nvidia,xusb-padctl: phandle to the XUSB pad controller that is used to
-  configure the USB pads used by the XHCI controller
-
-For Tegra124 and Tegra132:
-- avddio-pex-supply: PCIe/USB3 analog logic power supply. Must supply 1.05 V.
-- dvddio-pex-supply: PCIe/USB3 digital logic power supply. Must supply 1.05 V.
-- avdd-usb-supply: USB controller power supply. Must supply 3.3 V.
-- avdd-pll-utmip-supply: UTMI PLL power supply. Must supply 1.8 V.
-- avdd-pll-erefe-supply: PLLE reference PLL power supply. Must supply 1.05 V.
-- avdd-usb-ss-pll-supply: PCIe/USB3 PLL power supply. Must supply 1.05 V.
-- hvdd-usb-ss-supply: High-voltage PCIe/USB3 power supply. Must supply 3.3 V.
-- hvdd-usb-ss-pll-e-supply: High-voltage PLLE power supply. Must supply 3.3 V.
-
-For Tegra210:
-- dvddio-pex-supply: PCIe/USB3 analog logic power supply. Must supply 1.05 V.
-- hvddio-pex-supply: High-voltage PCIe/USB3 power supply. Must supply 1.8 V.
-- avdd-usb-supply: USB controller power supply. Must supply 3.3 V.
-- avdd-pll-utmip-supply: UTMI PLL power supply. Must supply 1.8 V.
-- avdd-pll-uerefe-supply: PLLE reference PLL power supply. Must supply 1.05 V.
-- dvdd-pex-pll-supply: PCIe/USB3 PLL power supply. Must supply 1.05 V.
-- hvdd-pex-pll-e-supply: High-voltage PLLE power supply. Must supply 1.8 V.
-
-For Tegra210 and Tegra186:
-- power-domains: A list of PM domain specifiers that reference each power-domain
-  used by the xHCI controller. This list must comprise of a specifier for the
-  XUSBA and XUSBC power-domains. See ../power/power_domain.txt and
-  ../arm/tegra/nvidia,tegra20-pmc.txt for details.
-- power-domain-names: A list of names that represent each of the specifiers in
-  the 'power-domains' property. Must include 'xusb_ss' and 'xusb_host' which
-  represent the power-domains XUSBA and XUSBC, respectively. See
-  ../power/power_domain.txt for details.
-
-Optional properties:
---------------------
-- phys: Must contain an entry for each entry in phy-names.
-  See ../phy/phy-bindings.txt for details.
-- phy-names: Should include an entry for each PHY used by the controller. The
-  following PHYs are available:
-  - Tegra124: usb2-0, usb2-1, usb2-2, hsic-0, hsic-1, usb3-0, usb3-1
-  - Tegra132: usb2-0, usb2-1, usb2-2, hsic-0, hsic-1, usb3-0, usb3-1
-  - Tegra210: usb2-0, usb2-1, usb2-2, usb2-3, hsic-0, usb3-0, usb3-1, usb3-2,
-              usb3-3
-  - Tegra186: usb2-0, usb2-1, usb2-2, hsic-0, usb3-0, usb3-1, usb3-2
-
-Example:
---------
-
-	usb@0,70090000 {
-		compatible = "nvidia,tegra124-xusb";
-		reg = <0x0 0x70090000 0x0 0x8000>,
-		      <0x0 0x70098000 0x0 0x1000>,
-		      <0x0 0x70099000 0x0 0x1000>;
-		reg-names = "hcd", "fpci", "ipfs";
-
-		interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
-			     <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
-
-		clocks = <&tegra_car TEGRA124_CLK_XUSB_HOST>,
-			 <&tegra_car TEGRA124_CLK_XUSB_HOST_SRC>,
-			 <&tegra_car TEGRA124_CLK_XUSB_FALCON_SRC>,
-			 <&tegra_car TEGRA124_CLK_XUSB_SS>,
-			 <&tegra_car TEGRA124_CLK_XUSB_SS_DIV2>,
-			 <&tegra_car TEGRA124_CLK_XUSB_SS_SRC>,
-			 <&tegra_car TEGRA124_CLK_XUSB_HS_SRC>,
-			 <&tegra_car TEGRA124_CLK_XUSB_FS_SRC>,
-			 <&tegra_car TEGRA124_CLK_PLL_U_480M>,
-			 <&tegra_car TEGRA124_CLK_CLK_M>,
-			 <&tegra_car TEGRA124_CLK_PLL_E>;
-		clock-names = "xusb_host", "xusb_host_src", "xusb_falcon_src",
-			      "xusb_ss", "xusb_ss_div2", "xusb_ss_src",
-			      "xusb_hs_src", "xusb_fs_src", "pll_u_480m",
-			      "clk_m", "pll_e";
-		resets = <&tegra_car 89>, <&tegra_car 156>, <&tegra_car 143>;
-		reset-names = "xusb_host", "xusb_ss", "xusb_src";
-
-		nvidia,xusb-padctl = <&padctl>;
-
-		phys = <&{/padctl@0,7009f000/pads/usb2/lanes/usb2-1}>, /* mini-PCIe USB */
-		       <&{/padctl@0,7009f000/pads/usb2/lanes/usb2-2}>, /* USB A */
-		       <&{/padctl@0,7009f000/pads/pcie/lanes/pcie-0}>; /* USB A */
-		phy-names = "usb2-1", "usb2-2", "usb3-0";
-
-		avddio-pex-supply = <&vdd_1v05_run>;
-		dvddio-pex-supply = <&vdd_1v05_run>;
-		avdd-usb-supply = <&vdd_3v3_lp0>;
-		avdd-pll-utmip-supply = <&vddio_1v8>;
-		avdd-pll-erefe-supply = <&avdd_1v05_run>;
-		avdd-usb-ss-pll-supply = <&vdd_1v05_run>;
-		hvdd-usb-ss-supply = <&vdd_3v3_lp0>;
-		hvdd-usb-ss-pll-e-supply = <&vdd_3v3_lp0>;
-	};
diff --git a/Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.yaml b/Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.yaml
new file mode 100644
index 000000000000..0b636a3b918b
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.yaml
@@ -0,0 +1,201 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/nvidia,tegra124-xusb.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra124 xHCI controller
+
+maintainers:
+  - Thierry Reding <thierry.reding@gmail.com>
+  - Jon Hunter <jonathanh@nvidia.com>
+
+description: The Tegra xHCI controller supports both USB2 and USB3 interfaces exposed by the Tegra
+  XUSB pad controller.
+
+properties:
+  # required
+  compatible:
+    oneOf:
+      - description: NVIDIA Tegra124
+        const: nvidia,tegra124-xusb
+
+      - description: NVIDIA Tegra132
+        items:
+          - const: nvidia,tegra132-xusb
+          - const: nvidia,tegra124-xusb
+
+  reg:
+    items:
+      - description: base and length of the xHCI host registers
+      - description: base and length of the XUSB FPCI registers
+      - description: base and length of the XUSB IPFS registers
+
+  reg-names:
+    items:
+      - const: hcd
+      - const: fpci
+      - const: ipfs
+
+  interrupts:
+    items:
+      - description: xHCI host interrupt
+      - description: mailbox interrupt
+
+  clocks:
+    items:
+      - description: XUSB host clock
+      - description: XUSB host source clock
+      - description: XUSB Falcon source clock
+      - description: XUSB SuperSpeed clock
+      - description: XUSB SuperSpeed clock divider
+      - description: XUSB SuperSpeed source clock
+      - description: XUSB HighSpeed clock source
+      - description: XUSB FullSpeed clock source
+      - description: USB PLL
+      - description: reference clock
+      - description: I/O PLL
+
+  clock-names:
+    items:
+      - const: xusb_host
+      - const: xusb_host_src
+      - const: xusb_falcon_src
+      - const: xusb_ss
+      - const: xusb_ss_div2
+      - const: xusb_ss_src
+      - const: xusb_hs_src
+      - const: xusb_fs_src
+      - const: pll_u_480m
+      - const: clk_m
+      - const: pll_e
+
+  resets:
+    items:
+      - description: reset for the XUSB host controller
+      - description: reset for the SuperSpeed logic
+      - description: shared reset for xusb_{ss,hs,fs,falcon,host}_src.
+
+  reset-names:
+    items:
+      - const: xusb_host
+      - const: xusb_ss
+      - const: xusb_src
+
+  nvidia,xusb-padctl:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: phandle to the XUSB pad controller that is used to configure
+      the USB pads used by the XHCI controller
+
+  # optional
+  phys:
+    description: Must contain an entry for each entry in phy-names. See
+      ../phy/phy-bindings.txt for details.
+
+  phy-names:
+    description: Should include an entry for each PHY used by the controller.
+    contains:
+      anyOf:
+        - const: usb2-0
+        - const: usb2-1
+        - const: usb2-2
+        - const: hsic-0
+        - const: hsic-1
+        - const: usb3-0
+        - const: usb3-1
+
+  avddio-pex-supply:
+    description: PCIe/USB3 analog logic power supply. Must supply 1.05 V.
+
+  dvddio-pex-supply:
+    description: PCIe/USB3 digital logic power supply. Must supply 1.05 V.
+
+  avdd-usb-supply:
+    description: USB controller power supply. Must supply 3.3 V.
+
+  avdd-pll-utmip-supply:
+    description: UTMI PLL power supply. Must supply 1.8 V.
+
+  avdd-pll-erefe-supply:
+    description: PLLE reference PLL power supply. Must supply 1.05 V.
+
+  avdd-usb-ss-pll-supply:
+    description: PCIe/USB3 PLL power supply. Must supply 1.05 V.
+
+  hvdd-usb-ss-supply:
+    description: High-voltage PCIe/USB3 power supply. Must supply 3.3 V.
+
+  hvdd-usb-ss-pll-e-supply:
+    description: High-voltage PLLE power supply. Must supply 3.3 V.
+
+allOf:
+  - $ref: usb-xhci.yaml
+
+unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - interrupts
+  - clocks
+  - clock-names
+  - resets
+  - reset-names
+  - nvidia,xusb-padctl
+  - phys
+  - phy-names
+  - avddio-pex-supply
+  - dvddio-pex-supply
+  - avdd-usb-supply
+  - hvdd-usb-ss-supply
+
+examples:
+  - |
+    #include <dt-bindings/clock/tegra124-car.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    usb@70090000 {
+        compatible = "nvidia,tegra124-xusb";
+        reg = <0x70090000 0x8000>,
+              <0x70098000 0x1000>,
+              <0x70099000 0x1000>;
+        reg-names = "hcd", "fpci", "ipfs";
+
+        interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
+
+        clocks = <&tegra_car TEGRA124_CLK_XUSB_HOST>,
+                 <&tegra_car TEGRA124_CLK_XUSB_HOST_SRC>,
+                 <&tegra_car TEGRA124_CLK_XUSB_FALCON_SRC>,
+                 <&tegra_car TEGRA124_CLK_XUSB_SS>,
+                 <&tegra_car TEGRA124_CLK_XUSB_SS_DIV2>,
+                 <&tegra_car TEGRA124_CLK_XUSB_SS_SRC>,
+                 <&tegra_car TEGRA124_CLK_XUSB_HS_SRC>,
+                 <&tegra_car TEGRA124_CLK_XUSB_FS_SRC>,
+                 <&tegra_car TEGRA124_CLK_PLL_U_480M>,
+                 <&tegra_car TEGRA124_CLK_CLK_M>,
+                 <&tegra_car TEGRA124_CLK_PLL_E>;
+        clock-names = "xusb_host", "xusb_host_src", "xusb_falcon_src",
+                      "xusb_ss", "xusb_ss_div2", "xusb_ss_src",
+                      "xusb_hs_src", "xusb_fs_src", "pll_u_480m",
+                      "clk_m", "pll_e";
+        resets = <&tegra_car 89>, <&tegra_car 156>, <&tegra_car 143>;
+        reset-names = "xusb_host", "xusb_ss", "xusb_src";
+
+        nvidia,xusb-padctl = <&padctl>;
+
+        phys = <&{/padctl@0,7009f000/pads/usb2/lanes/usb2-1}>, /* mini-PCIe USB */
+               <&{/padctl@0,7009f000/pads/usb2/lanes/usb2-2}>, /* USB A */
+               <&{/padctl@0,7009f000/pads/pcie/lanes/pcie-0}>; /* USB A */
+        phy-names = "usb2-1", "usb2-2", "usb3-0";
+
+        avddio-pex-supply = <&vdd_1v05_run>;
+        dvddio-pex-supply = <&vdd_1v05_run>;
+        avdd-usb-supply = <&vdd_3v3_lp0>;
+        avdd-pll-utmip-supply = <&vddio_1v8>;
+        avdd-pll-erefe-supply = <&avdd_1v05_run>;
+        avdd-usb-ss-pll-supply = <&vdd_1v05_run>;
+        hvdd-usb-ss-supply = <&vdd_3v3_lp0>;
+        hvdd-usb-ss-pll-e-supply = <&vdd_3v3_lp0>;
+    };
diff --git a/Documentation/devicetree/bindings/usb/nvidia,tegra186-xusb.yaml b/Documentation/devicetree/bindings/usb/nvidia,tegra186-xusb.yaml
new file mode 100644
index 000000000000..4d896ac2afe5
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/nvidia,tegra186-xusb.yaml
@@ -0,0 +1,182 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/nvidia,tegra186-xusb.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra186 xHCI controller
+
+maintainers:
+  - Thierry Reding <thierry.reding@gmail.com>
+  - Jon Hunter <jonathanh@nvidia.com>
+
+description: The Tegra xHCI controller supports both USB2 and USB3 interfaces exposed by the Tegra
+  XUSB pad controller.
+
+properties:
+  compatible:
+    const: nvidia,tegra186-xusb
+
+  reg:
+    items:
+      - description: base and length of the xHCI host registers
+      - description: base and length of the XUSB FPCI registers
+
+  reg-names:
+    items:
+      - const: hcd
+      - const: fpci
+
+  interrupts:
+    items:
+      - description: xHCI host interrupt
+      - description: mailbox interrupt
+
+  clocks:
+    items:
+      - description: XUSB host clock
+      - description: XUSB Falcon source clock
+      - description: XUSB SuperSpeed clock
+      - description: XUSB SuperSpeed source clock
+      - description: XUSB HighSpeed clock source
+      - description: XUSB FullSpeed clock source
+      - description: USB PLL
+      - description: reference clock
+      - description: I/O PLL
+
+  clock-names:
+    items:
+      - const: xusb_host
+      - const: xusb_falcon_src
+      - const: xusb_ss
+      - const: xusb_ss_src
+      - const: xusb_hs_src
+      - const: xusb_fs_src
+      - const: pll_u_480m
+      - const: clk_m
+      - const: pll_e
+
+  interconnects:
+    items:
+      - description: read client
+      - description: write client
+
+  interconnect-names:
+    items:
+      - const: dma-mem # read
+      - const: write
+
+  iommus:
+    maxItems: 1
+
+  nvidia,xusb-padctl:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: phandle to the XUSB pad controller that is used to configure the USB pads used by
+      the XHCI controller
+
+  phys:
+    minItems: 1
+    maxItems: 7
+
+  phy-names:
+    contains:
+      anyOf:
+        - const: usb2-0
+        - const: usb2-1
+        - const: usb2-2
+        - const: hsic-0
+        - const: usb3-0
+        - const: usb3-1
+        - const: usb3-2
+
+  power-domains:
+    description: A list of PM domain specifiers that reference each power-domain used by the xHCI
+      controller. This list must comprise of a specifier for the XUSBA and XUSBC power-domains.
+      See ../power/power_domain.txt and ../arm/tegra/nvidia,tegra20-pmc.txt for details.
+    items:
+      - description: XUSBC power domain
+      - description: XUSBA power domain
+
+  power-domain-names:
+    description: A list of names that represent each of the specifiers in the 'power-domains'
+      property. See ../power/power_domain.txt for details.
+    items:
+      - const: xusb_host
+      - const: xusb_ss
+
+  dvddio-pex-supply:
+    description: PCIe/USB3 analog logic power supply. Must supply 1.05 V.
+
+  hvddio-pex-supply:
+    description: High-voltage PCIe/USB3 power supply. Must supply 1.8 V.
+
+  avdd-usb-supply:
+    description: USB controller power supply. Must supply 3.3 V.
+
+  avdd-pll-utmip-supply:
+    description: UTMI PLL power supply. Must supply 1.8 V.
+
+  avdd-pll-uerefe-supply:
+    description: PLLE reference PLL power supply. Must supply 1.05 V.
+
+  dvdd-usb-ss-pll-supply:
+    description: PCIe/USB3 PLL power supply. Must supply 1.05 V.
+
+  hvdd-usb-ss-pll-e-supply:
+    description: High-voltage PLLE power supply. Must supply 1.8 V.
+
+  # USB bus
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+additionalProperties:
+  description: USB device nodes
+  type: object
+
+examples:
+  - |
+    #include <dt-bindings/clock/tegra186-clock.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/memory/tegra186-mc.h>
+    #include <dt-bindings/power/tegra186-powergate.h>
+    #include <dt-bindings/reset/tegra186-reset.h>
+
+    usb@3530000 {
+        compatible = "nvidia,tegra186-xusb";
+        reg = <0x03530000 0x8000>,
+              <0x03538000 0x1000>;
+        reg-names = "hcd", "fpci";
+        interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&bpmp TEGRA186_CLK_XUSB_HOST>,
+                 <&bpmp TEGRA186_CLK_XUSB_FALCON>,
+                 <&bpmp TEGRA186_CLK_XUSB_SS>,
+                 <&bpmp TEGRA186_CLK_XUSB_CORE_SS>,
+                 <&bpmp TEGRA186_CLK_CLK_M>,
+                 <&bpmp TEGRA186_CLK_XUSB_FS>,
+                 <&bpmp TEGRA186_CLK_PLLU>,
+                 <&bpmp TEGRA186_CLK_CLK_M>,
+                 <&bpmp TEGRA186_CLK_PLLE>;
+        clock-names = "xusb_host", "xusb_falcon_src", "xusb_ss",
+                      "xusb_ss_src", "xusb_hs_src", "xusb_fs_src",
+                      "pll_u_480m", "clk_m", "pll_e";
+        power-domains = <&bpmp TEGRA186_POWER_DOMAIN_XUSBC>,
+                        <&bpmp TEGRA186_POWER_DOMAIN_XUSBA>;
+        power-domain-names = "xusb_host", "xusb_ss";
+        interconnects = <&mc TEGRA186_MEMORY_CLIENT_XUSB_HOSTR &emc>,
+                        <&mc TEGRA186_MEMORY_CLIENT_XUSB_HOSTW &emc>;
+        interconnect-names = "dma-mem", "write";
+        iommus = <&smmu TEGRA186_SID_XUSB_HOST>;
+        nvidia,xusb-padctl = <&padctl>;
+
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        phys = <&{/padctl@3520000/pads/usb2/lanes/usb2-0}>,
+               <&{/padctl@3520000/pads/usb2/lanes/usb2-1}>,
+               <&{/padctl@3520000/pads/usb3/lanes/usb3-0}>;
+        phy-names = "usb2-0", "usb2-1", "usb3-0";
+    };
diff --git a/Documentation/devicetree/bindings/usb/nvidia,tegra194-xusb.yaml b/Documentation/devicetree/bindings/usb/nvidia,tegra194-xusb.yaml
new file mode 100644
index 000000000000..4cacfa238326
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/nvidia,tegra194-xusb.yaml
@@ -0,0 +1,188 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/nvidia,tegra194-xusb.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra194 xHCI controller
+
+maintainers:
+  - Thierry Reding <thierry.reding@gmail.com>
+  - Jon Hunter <jonathanh@nvidia.com>
+
+description: The Tegra xHCI controller supports both USB2 and USB3 interfaces exposed by the Tegra
+  XUSB pad controller.
+
+properties:
+  compatible:
+    const: nvidia,tegra194-xusb
+
+  reg:
+    items:
+      - description: base and length of the xHCI host registers
+      - description: base and length of the XUSB FPCI registers
+
+  reg-names:
+    items:
+      - const: hcd
+      - const: fpci
+
+  interrupts:
+    items:
+      - description: xHCI host interrupt
+      - description: mailbox interrupt
+
+  clocks:
+    items:
+      - description: XUSB host clock
+      - description: XUSB Falcon source clock
+      - description: XUSB SuperSpeed clock
+      - description: XUSB SuperSpeed source clock
+      - description: XUSB HighSpeed clock source
+      - description: XUSB FullSpeed clock source
+      - description: USB PLL
+      - description: reference clock
+      - description: I/O PLL
+
+  clock-names:
+    items:
+      - const: xusb_host
+      - const: xusb_falcon_src
+      - const: xusb_ss
+      - const: xusb_ss_src
+      - const: xusb_hs_src
+      - const: xusb_fs_src
+      - const: pll_u_480m
+      - const: clk_m
+      - const: pll_e
+
+  interconnects:
+    items:
+      - description: read client
+      - description: write client
+
+  interconnect-names:
+    items:
+      - const: dma-mem # read
+      - const: write
+
+  iommus:
+    maxItems: 1
+
+  nvidia,xusb-padctl:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: phandle to the XUSB pad controller that is used to configure the USB pads used by
+      the XHCI controller
+
+  phys:
+    minItems: 1
+    maxItems: 7
+
+  phy-names:
+    contains:
+      anyOf:
+        - const: usb2-0
+        - const: usb2-1
+        - const: usb2-2
+        - const: usb2-3
+        - const: usb3-0
+        - const: usb3-1
+        - const: usb3-2
+        - const: usb3-3
+
+  power-domains:
+    description: A list of PM domain specifiers that reference each power-domain used by the xHCI
+      controller. This list must comprise of a specifier for the XUSBA and XUSBC power-domains.
+      See ../power/power_domain.txt and ../arm/tegra/nvidia,tegra20-pmc.txt for details.
+    items:
+      - description: XUSBC power domain
+      - description: XUSBA power domain
+
+  power-domain-names:
+    description: A list of names that represent each of the specifiers in the 'power-domains'
+      property. See ../power/power_domain.txt for details.
+    items:
+      - const: xusb_host
+      - const: xusb_ss
+
+  dvddio-pex-supply:
+    description: PCIe/USB3 analog logic power supply. Must supply 1.05 V.
+
+  hvddio-pex-supply:
+    description: High-voltage PCIe/USB3 power supply. Must supply 1.8 V.
+
+  avdd-usb-supply:
+    description: USB controller power supply. Must supply 3.3 V.
+
+  avdd-pll-utmip-supply:
+    description: UTMI PLL power supply. Must supply 1.8 V.
+
+  avdd-pll-uerefe-supply:
+    description: PLLE reference PLL power supply. Must supply 1.05 V.
+
+  dvdd-usb-ss-pll-supply:
+    description: PCIe/USB3 PLL power supply. Must supply 1.05 V.
+
+  hvdd-usb-ss-pll-e-supply:
+    description: High-voltage PLLE power supply. Must supply 1.8 V.
+
+  # USB bus
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+additionalProperties:
+  description: USB device nodes
+  type: object
+
+examples:
+  - |
+    #include <dt-bindings/clock/tegra194-clock.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/memory/tegra194-mc.h>
+    #include <dt-bindings/power/tegra194-powergate.h>
+    #include <dt-bindings/reset/tegra194-reset.h>
+
+    usb@3610000 {
+        compatible = "nvidia,tegra194-xusb";
+        reg = <0x03610000 0x40000>,
+              <0x03600000 0x10000>;
+        reg-names = "hcd", "fpci";
+
+        interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
+
+        clocks = <&bpmp TEGRA194_CLK_XUSB_CORE_HOST>,
+                 <&bpmp TEGRA194_CLK_XUSB_FALCON>,
+                 <&bpmp TEGRA194_CLK_XUSB_CORE_SS>,
+                 <&bpmp TEGRA194_CLK_XUSB_SS>,
+                 <&bpmp TEGRA194_CLK_CLK_M>,
+                 <&bpmp TEGRA194_CLK_XUSB_FS>,
+                 <&bpmp TEGRA194_CLK_UTMIPLL>,
+                 <&bpmp TEGRA194_CLK_CLK_M>,
+                 <&bpmp TEGRA194_CLK_PLLE>;
+        clock-names = "xusb_host", "xusb_falcon_src",
+                      "xusb_ss", "xusb_ss_src", "xusb_hs_src",
+                      "xusb_fs_src", "pll_u_480m", "clk_m",
+                      "pll_e";
+        interconnects = <&mc TEGRA194_MEMORY_CLIENT_XUSB_HOSTR &emc>,
+                        <&mc TEGRA194_MEMORY_CLIENT_XUSB_HOSTW &emc>;
+        interconnect-names = "dma-mem", "write";
+        iommus = <&smmu TEGRA194_SID_XUSB_HOST>;
+
+        power-domains = <&bpmp TEGRA194_POWER_DOMAIN_XUSBC>,
+                        <&bpmp TEGRA194_POWER_DOMAIN_XUSBA>;
+        power-domain-names = "xusb_host", "xusb_ss";
+
+        nvidia,xusb-padctl = <&xusb_padctl>;
+
+        phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>,
+               <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-1}>,
+               <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-3}>,
+               <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-0}>,
+               <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-2}>,
+               <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-3}>;
+        phy-names = "usb2-0", "usb2-1", "usb2-3", "usb3-0", "usb3-2", "usb3-3";
+    };
diff --git a/Documentation/devicetree/bindings/usb/nvidia,tegra210-xusb.yaml b/Documentation/devicetree/bindings/usb/nvidia,tegra210-xusb.yaml
new file mode 100644
index 000000000000..1dc0e337f998
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/nvidia,tegra210-xusb.yaml
@@ -0,0 +1,210 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/nvidia,tegra210-xusb.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra210 xHCI controller
+
+maintainers:
+  - Thierry Reding <thierry.reding@gmail.com>
+  - Jon Hunter <jonathanh@nvidia.com>
+
+description: The Tegra xHCI controller supports both USB2 and USB3 interfaces exposed by the Tegra
+  XUSB pad controller.
+
+properties:
+  compatible:
+    const: nvidia,tegra210-xusb
+
+  reg:
+    items:
+      - description: base and length of the xHCI host registers
+      - description: base and length of the XUSB FPCI registers
+      - description: base and length of the XUSB IPFS registers
+
+  reg-names:
+    items:
+      - const: hcd
+      - const: fpci
+      - const: ipfs
+
+  interrupts:
+    items:
+      - description: xHCI host interrupt
+      - description: mailbox interrupt
+
+  clocks:
+    items:
+      - description: XUSB host clock
+      - description: XUSB host source clock
+      - description: XUSB Falcon source clock
+      - description: XUSB SuperSpeed clock
+      - description: XUSB SuperSpeed clock divider
+      - description: XUSB SuperSpeed source clock
+      - description: XUSB HighSpeed clock source
+      - description: XUSB FullSpeed clock source
+      - description: USB PLL
+      - description: reference clock
+      - description: I/O PLL
+
+  clock-names:
+    items:
+      - const: xusb_host
+      - const: xusb_host_src
+      - const: xusb_falcon_src
+      - const: xusb_ss
+      - const: xusb_ss_div2
+      - const: xusb_ss_src
+      - const: xusb_hs_src
+      - const: xusb_fs_src
+      - const: pll_u_480m
+      - const: clk_m
+      - const: pll_e
+
+  resets:
+    items:
+      - description: reset for the XUSB host controller
+      - description: reset for the SuperSpeed logic
+      - description: shared reset for xusb_{ss,hs,fs,falcon,host}_src.
+
+  reset-names:
+    items:
+      - const: xusb_host
+      - const: xusb_ss
+      - const: xusb_src
+
+  nvidia,xusb-padctl:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: phandle to the XUSB pad controller that is used to configure
+      the USB pads used by the XHCI controller
+
+  phys:
+    minItems: 1
+    maxItems: 9
+
+  phy-names:
+    contains:
+      anyOf:
+        - const: usb2-0
+        - const: usb2-1
+        - const: usb2-2
+        - const: usb2-3
+        - const: hsic-0
+        - const: usb3-0
+        - const: usb3-1
+        - const: usb3-2
+        - const: usb3-3
+
+  power-domains:
+    description: A list of PM domain specifiers that reference each
+      power-domain used by the xHCI controller. This list must comprise
+      of a specifier for the XUSBA and XUSBC power-domains. See
+      ../power/power_domain.txt and ../arm/tegra/nvidia,tegra20-pmc.txt
+      for details.
+    items:
+      - description: XUSBC power domain
+      - description: XUSBA power domain
+
+  power-domain-names:
+    description: A list of names that represent each of the specifiers
+      in the 'power-domains' property. See ../power/power_domain.txt for
+      details.
+    items:
+      - const: xusb_host
+      - const: xusb_ss
+
+  dvddio-pex-supply:
+    description: PCIe/USB3 analog logic power supply. Must supply 1.05 V.
+
+  hvddio-pex-supply:
+    description: High-voltage PCIe/USB3 power supply. Must supply 1.8 V.
+
+  avdd-usb-supply:
+    description: USB controller power supply. Must supply 3.3 V.
+
+  avdd-pll-utmip-supply:
+    description: UTMI PLL power supply. Must supply 1.8 V.
+
+  avdd-pll-uerefe-supply:
+    description: PLLE reference PLL power supply. Must supply 1.05 V.
+
+  dvdd-usb-ss-pll-supply:
+    description: PCIe/USB3 PLL power supply. Must supply 1.05 V.
+
+  hvdd-usb-ss-pll-e-supply:
+    description: High-voltage PLLE power supply. Must supply 1.8 V.
+
+  # USB bus
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+additionalProperties:
+  description: USB device nodes
+  type: object
+
+examples:
+  - |
+    #include <dt-bindings/clock/tegra210-car.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    usb@70090000 {
+        compatible = "nvidia,tegra210-xusb";
+        reg = <0x70090000 0x8000>,
+              <0x70098000 0x1000>,
+              <0x70099000 0x1000>;
+        reg-names = "hcd", "fpci", "ipfs";
+
+        interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
+
+        clocks = <&tegra_car TEGRA210_CLK_XUSB_HOST>,
+                 <&tegra_car TEGRA210_CLK_XUSB_HOST_SRC>,
+                 <&tegra_car TEGRA210_CLK_XUSB_FALCON_SRC>,
+                 <&tegra_car TEGRA210_CLK_XUSB_SS>,
+                 <&tegra_car TEGRA210_CLK_XUSB_SS_DIV2>,
+                 <&tegra_car TEGRA210_CLK_XUSB_SS_SRC>,
+                 <&tegra_car TEGRA210_CLK_XUSB_HS_SRC>,
+                 <&tegra_car TEGRA210_CLK_XUSB_FS_SRC>,
+                 <&tegra_car TEGRA210_CLK_PLL_U_480M>,
+                 <&tegra_car TEGRA210_CLK_CLK_M>,
+                 <&tegra_car TEGRA210_CLK_PLL_E>;
+        clock-names = "xusb_host", "xusb_host_src",
+                      "xusb_falcon_src", "xusb_ss",
+                      "xusb_ss_div2", "xusb_ss_src",
+                      "xusb_hs_src", "xusb_fs_src",
+                      "pll_u_480m", "clk_m", "pll_e";
+        resets = <&tegra_car 89>, <&tegra_car 156>,
+                 <&tegra_car 143>;
+        reset-names = "xusb_host", "xusb_ss", "xusb_src";
+        power-domains = <&pd_xusbhost>, <&pd_xusbss>;
+        power-domain-names = "xusb_host", "xusb_ss";
+
+        nvidia,xusb-padctl = <&padctl>;
+
+        phys = <&{/padctl@7009f000/pads/usb2/lanes/usb2-0}>,
+               <&{/padctl@7009f000/pads/usb2/lanes/usb2-1}>,
+               <&{/padctl@7009f000/pads/usb2/lanes/usb2-2}>,
+               <&{/padctl@7009f000/pads/usb2/lanes/usb2-3}>,
+               <&{/padctl@7009f000/pads/pcie/lanes/pcie-6}>,
+               <&{/padctl@7009f000/pads/pcie/lanes/pcie-5}>;
+        phy-names = "usb2-0", "usb2-1", "usb2-2", "usb2-3", "usb3-0",
+                    "usb3-1";
+        dvddio-pex-supply = <&vdd_pex_1v05>;
+        hvddio-pex-supply = <&vdd_1v8>;
+        avdd-usb-supply = <&vdd_3v3_sys>;
+        avdd-pll-utmip-supply = <&vdd_1v8>;
+        avdd-pll-uerefe-supply = <&vdd_pex_1v05>;
+        dvdd-usb-ss-pll-supply = <&vdd_pex_1v05>;
+        hvdd-usb-ss-pll-e-supply = <&vdd_1v8>;
+
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        ethernet@1 {
+                reg = <1>;
+        };
+    };
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 4/4] dt-bindings: usb: tegra-xudc: Document interconnects and iommus properties
  2021-12-09 16:53 [PATCH 1/4] dt-bindings: usb: chipidea: Convert to json-schema Thierry Reding
  2021-12-09 16:53 ` [PATCH 2/4] dt-bindings: usb: tegra: " Thierry Reding
  2021-12-09 16:53 ` [PATCH 3/4] dt-bindings: usb: tegra-xusb: " Thierry Reding
@ 2021-12-09 16:53 ` Thierry Reding
  2021-12-09 17:14   ` Thierry Reding
  2021-12-09 20:55 ` [PATCH 1/4] dt-bindings: usb: chipidea: Convert to json-schema Rob Herring
  2021-12-15 19:25 ` Rob Herring
  4 siblings, 1 reply; 12+ messages in thread
From: Thierry Reding @ 2021-12-09 16:53 UTC (permalink / raw)
  To: Rob Herring
  Cc: Greg Kroah-Hartman, Peter Chen, Nagarjuna Kristam, JC Kuo,
	devicetree, linux-tegra, linux-usb

From: Thierry Reding <treding@nvidia.com>

Add the interconnects, interconnect-names and iommus properties to the
device tree bindings for the Tegra XUDC controller. These are used to
describe the device's paths to and from memory.

Signed-off-by: Thierry Reding <treding@nvidia.com>
---
 .../devicetree/bindings/usb/nvidia,tegra-xudc.yaml  | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/nvidia,tegra-xudc.yaml b/Documentation/devicetree/bindings/usb/nvidia,tegra-xudc.yaml
index 8428415896ce..a39c76b89484 100644
--- a/Documentation/devicetree/bindings/usb/nvidia,tegra-xudc.yaml
+++ b/Documentation/devicetree/bindings/usb/nvidia,tegra-xudc.yaml
@@ -59,6 +59,19 @@ properties:
       - const: fs_src
       - const: hs_src
 
+  interconnects:
+    items:
+      - description: memory read client
+      - description: memory write client
+
+  interconnect-names:
+    items:
+      - const: dma-mem # read
+      - const: write
+
+  iommus:
+    maxItems: 1
+
   power-domains:
     items:
       - description: XUSBB(device) power-domain
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH 4/4] dt-bindings: usb: tegra-xudc: Document interconnects and iommus properties
  2021-12-09 16:53 ` [PATCH 4/4] dt-bindings: usb: tegra-xudc: Document interconnects and iommus properties Thierry Reding
@ 2021-12-09 17:14   ` Thierry Reding
  0 siblings, 0 replies; 12+ messages in thread
From: Thierry Reding @ 2021-12-09 17:14 UTC (permalink / raw)
  To: Rob Herring
  Cc: Greg Kroah-Hartman, Peter Chen, Nagarjuna Kristam, JC Kuo,
	devicetree, linux-tegra, linux-usb

[-- Attachment #1: Type: text/plain, Size: 723 bytes --]

On Thu, Dec 09, 2021 at 05:53:39PM +0100, Thierry Reding wrote:
> From: Thierry Reding <treding@nvidia.com>
> 
> Add the interconnects, interconnect-names and iommus properties to the
> device tree bindings for the Tegra XUDC controller. These are used to
> describe the device's paths to and from memory.
> 
> Signed-off-by: Thierry Reding <treding@nvidia.com>
> ---
>  .../devicetree/bindings/usb/nvidia,tegra-xudc.yaml  | 13 +++++++++++++
>  1 file changed, 13 insertions(+)

Sorry Rob, I realized you already reviewed this one earlier:

	http://patchwork.ozlabs.org/project/linux-tegra/patch/20211206155559.232550-1-thierry.reding@gmail.com/

so technically:

Acked-by: Rob Herring <robh@kernel.org>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/4] dt-bindings: usb: tegra: Convert to json-schema
  2021-12-09 16:53 ` [PATCH 2/4] dt-bindings: usb: tegra: " Thierry Reding
@ 2021-12-09 20:55   ` Rob Herring
  2021-12-15 19:27   ` Rob Herring
  1 sibling, 0 replies; 12+ messages in thread
From: Rob Herring @ 2021-12-09 20:55 UTC (permalink / raw)
  To: Thierry Reding
  Cc: devicetree, Nagarjuna Kristam, JC Kuo, Greg Kroah-Hartman,
	Rob Herring, Peter Chen, linux-usb, linux-tegra

On Thu, 09 Dec 2021 17:53:37 +0100, Thierry Reding wrote:
> From: Thierry Reding <treding@nvidia.com>
> 
> Convert the old plain-text device tree bindings for the USB EHCI
> controller found on NVIDIA Tegra SoCs to the json-schema format.
> 
> Signed-off-by: Thierry Reding <treding@nvidia.com>
> 
> ---
> Changes in v2:
> - include usb-hcd.yaml and usb-drd.yaml
> - drop redundant phy_type property
> 
>  .../bindings/clock/nvidia,tegra124-car.yaml   |   5 +
>  .../bindings/clock/nvidia,tegra20-car.yaml    |   5 +
>  .../bindings/usb/nvidia,tegra20-ehci.txt      |  23 ---
>  .../bindings/usb/nvidia,tegra20-ehci.yaml     | 156 ++++++++++++++++++
>  4 files changed, 166 insertions(+), 23 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt
>  create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.yaml
> 

Running 'make dtbs_check' with the schema in this patch gives the
following warnings. Consider if they are expected or the schema is
incorrect. These may not be new warnings.

Note that it is not yet a requirement to have 0 warnings for dtbs_check.
This will change in the future.

Full log is available here: https://patchwork.ozlabs.org/patch/1565844


usb@7d004000: asix@1: 'compatible' is a required property
	arch/arm/boot/dts/tegra30-colibri-eval-v3.dt.yaml

usb@c5004000: asix@1: 'compatible' is a required property
	arch/arm/boot/dts/tegra20-colibri-eval-v3.dt.yaml
	arch/arm/boot/dts/tegra20-colibri-iris.dt.yaml


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 3/4] dt-bindings: usb: tegra-xusb: Convert to json-schema
  2021-12-09 16:53 ` [PATCH 3/4] dt-bindings: usb: tegra-xusb: " Thierry Reding
@ 2021-12-09 20:55   ` Rob Herring
  2021-12-15 19:48   ` Rob Herring
  1 sibling, 0 replies; 12+ messages in thread
From: Rob Herring @ 2021-12-09 20:55 UTC (permalink / raw)
  To: Thierry Reding
  Cc: Nagarjuna Kristam, devicetree, Greg Kroah-Hartman, Peter Chen,
	linux-tegra, linux-usb, JC Kuo, Rob Herring

On Thu, 09 Dec 2021 17:53:38 +0100, Thierry Reding wrote:
> From: Thierry Reding <treding@nvidia.com>
> 
> Convert the Tegra XUSB controller bindings from the free-form text
> format to json-schema.
> 
> Signed-off-by: Thierry Reding <treding@nvidia.com>
> ---
>  .../bindings/usb/nvidia,tegra124-xusb.txt     | 132 -----------
>  .../bindings/usb/nvidia,tegra124-xusb.yaml    | 201 +++++++++++++++++
>  .../bindings/usb/nvidia,tegra186-xusb.yaml    | 182 +++++++++++++++
>  .../bindings/usb/nvidia,tegra194-xusb.yaml    | 188 ++++++++++++++++
>  .../bindings/usb/nvidia,tegra210-xusb.yaml    | 210 ++++++++++++++++++
>  5 files changed, 781 insertions(+), 132 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.txt
>  create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.yaml
>  create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra186-xusb.yaml
>  create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra194-xusb.yaml
>  create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra210-xusb.yaml
> 

Running 'make dtbs_check' with the schema in this patch gives the
following warnings. Consider if they are expected or the schema is
incorrect. These may not be new warnings.

Note that it is not yet a requirement to have 0 warnings for dtbs_check.
This will change in the future.

Full log is available here: https://patchwork.ozlabs.org/patch/1565847


usb@70090000: clock-names:4: 'xusb_ss_div2' was expected
	arch/arm64/boot/dts/nvidia/tegra132-norrin.dt.yaml
	arch/arm64/boot/dts/nvidia/tegra210-p2371-0000.dt.yaml
	arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dt.yaml
	arch/arm64/boot/dts/nvidia/tegra210-p2571.dt.yaml
	arch/arm64/boot/dts/nvidia/tegra210-p2894-0050-a08.dt.yaml
	arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dt.yaml
	arch/arm64/boot/dts/nvidia/tegra210-smaug.dt.yaml
	arch/arm/boot/dts/tegra124-apalis-eval.dt.yaml
	arch/arm/boot/dts/tegra124-apalis-v1.2-eval.dt.yaml
	arch/arm/boot/dts/tegra124-jetson-tk1.dt.yaml
	arch/arm/boot/dts/tegra124-nyan-big.dt.yaml
	arch/arm/boot/dts/tegra124-nyan-blaze.dt.yaml
	arch/arm/boot/dts/tegra124-venice2.dt.yaml

usb@70090000: clock-names:5: 'xusb_ss_src' was expected
	arch/arm64/boot/dts/nvidia/tegra132-norrin.dt.yaml
	arch/arm64/boot/dts/nvidia/tegra210-p2371-0000.dt.yaml
	arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dt.yaml
	arch/arm64/boot/dts/nvidia/tegra210-p2571.dt.yaml
	arch/arm64/boot/dts/nvidia/tegra210-p2894-0050-a08.dt.yaml
	arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dt.yaml
	arch/arm64/boot/dts/nvidia/tegra210-smaug.dt.yaml
	arch/arm/boot/dts/tegra124-apalis-eval.dt.yaml
	arch/arm/boot/dts/tegra124-apalis-v1.2-eval.dt.yaml
	arch/arm/boot/dts/tegra124-jetson-tk1.dt.yaml
	arch/arm/boot/dts/tegra124-nyan-big.dt.yaml
	arch/arm/boot/dts/tegra124-nyan-blaze.dt.yaml
	arch/arm/boot/dts/tegra124-venice2.dt.yaml

usb@70090000: dvdd-pex-pll-supply: [[35]] is not of type 'object'
	arch/arm64/boot/dts/nvidia/tegra210-smaug.dt.yaml

usb@70090000: hvdd-pex-pll-e-supply: [[36]] is not of type 'object'
	arch/arm64/boot/dts/nvidia/tegra210-smaug.dt.yaml


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/4] dt-bindings: usb: chipidea: Convert to json-schema
  2021-12-09 16:53 [PATCH 1/4] dt-bindings: usb: chipidea: Convert to json-schema Thierry Reding
                   ` (2 preceding siblings ...)
  2021-12-09 16:53 ` [PATCH 4/4] dt-bindings: usb: tegra-xudc: Document interconnects and iommus properties Thierry Reding
@ 2021-12-09 20:55 ` Rob Herring
  2021-12-15 19:25 ` Rob Herring
  4 siblings, 0 replies; 12+ messages in thread
From: Rob Herring @ 2021-12-09 20:55 UTC (permalink / raw)
  To: Thierry Reding
  Cc: Nagarjuna Kristam, linux-tegra, Greg Kroah-Hartman, Peter Chen,
	linux-usb, JC Kuo, devicetree, Rob Herring

On Thu, 09 Dec 2021 17:53:36 +0100, Thierry Reding wrote:
> From: Thierry Reding <treding@nvidia.com>
> 
> Convert the ChipIdea USB2 bindings from the free-form text format to
> json-schema.
> 
> Signed-off-by: Thierry Reding <treding@nvidia.com>
> ---
>  .../bindings/usb/chipidea,usb2.yaml           | 310 ++++++++++++++++++
>  .../devicetree/bindings/usb/ci-hdrc-usb2.txt  | 158 ---------
>  2 files changed, 310 insertions(+), 158 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/usb/chipidea,usb2.yaml
>  delete mode 100644 Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt
> 

Running 'make dtbs_check' with the schema in this patch gives the
following warnings. Consider if they are expected or the schema is
incorrect. These may not be new warnings.

Note that it is not yet a requirement to have 0 warnings for dtbs_check.
This will change in the future.

Full log is available here: https://patchwork.ozlabs.org/patch/1565842


usb@10024000: clock-names: ['ipg', 'ahb', 'per'] is not of type 'object'
	arch/arm/boot/dts/imx27-apf27dev.dt.yaml
	arch/arm/boot/dts/imx27-apf27.dt.yaml
	arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dt.yaml
	arch/arm/boot/dts/imx27-pdk.dt.yaml
	arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dt.yaml
	arch/arm/boot/dts/imx27-phytec-phycore-rdk.dt.yaml

usb@10024000: clocks: [[1, 75], [1, 62], [1, 15]] is too long
	arch/arm/boot/dts/imx27-apf27dev.dt.yaml
	arch/arm/boot/dts/imx27-apf27.dt.yaml
	arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dt.yaml
	arch/arm/boot/dts/imx27-pdk.dt.yaml
	arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dt.yaml
	arch/arm/boot/dts/imx27-phytec-phycore-rdk.dt.yaml

usb@10024000: clocks: Additional items are not allowed ([1, 62], [1, 15] were unexpected)
	arch/arm/boot/dts/imx27-apf27dev.dt.yaml
	arch/arm/boot/dts/imx27-apf27.dt.yaml
	arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dt.yaml
	arch/arm/boot/dts/imx27-pdk.dt.yaml
	arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dt.yaml
	arch/arm/boot/dts/imx27-phytec-phycore-rdk.dt.yaml

usb@10024200: clock-names: ['ipg', 'ahb', 'per'] is not of type 'object'
	arch/arm/boot/dts/imx27-apf27dev.dt.yaml
	arch/arm/boot/dts/imx27-apf27.dt.yaml
	arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dt.yaml
	arch/arm/boot/dts/imx27-pdk.dt.yaml
	arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dt.yaml
	arch/arm/boot/dts/imx27-phytec-phycore-rdk.dt.yaml

usb@10024200: clocks: [[1, 75], [1, 62], [1, 15]] is too long
	arch/arm/boot/dts/imx27-apf27dev.dt.yaml
	arch/arm/boot/dts/imx27-apf27.dt.yaml
	arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dt.yaml
	arch/arm/boot/dts/imx27-pdk.dt.yaml
	arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dt.yaml
	arch/arm/boot/dts/imx27-phytec-phycore-rdk.dt.yaml

usb@10024200: clocks: Additional items are not allowed ([1, 62], [1, 15] were unexpected)
	arch/arm/boot/dts/imx27-apf27dev.dt.yaml
	arch/arm/boot/dts/imx27-apf27.dt.yaml
	arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dt.yaml
	arch/arm/boot/dts/imx27-pdk.dt.yaml
	arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dt.yaml
	arch/arm/boot/dts/imx27-phytec-phycore-rdk.dt.yaml

usb@10024400: clock-names: ['ipg', 'ahb', 'per'] is not of type 'object'
	arch/arm/boot/dts/imx27-apf27dev.dt.yaml
	arch/arm/boot/dts/imx27-apf27.dt.yaml
	arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dt.yaml
	arch/arm/boot/dts/imx27-pdk.dt.yaml
	arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dt.yaml
	arch/arm/boot/dts/imx27-phytec-phycore-rdk.dt.yaml

usb@10024400: clocks: [[1, 75], [1, 62], [1, 15]] is too long
	arch/arm/boot/dts/imx27-apf27dev.dt.yaml
	arch/arm/boot/dts/imx27-apf27.dt.yaml
	arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dt.yaml
	arch/arm/boot/dts/imx27-pdk.dt.yaml
	arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dt.yaml
	arch/arm/boot/dts/imx27-phytec-phycore-rdk.dt.yaml

usb@10024400: clocks: Additional items are not allowed ([1, 62], [1, 15] were unexpected)
	arch/arm/boot/dts/imx27-apf27dev.dt.yaml
	arch/arm/boot/dts/imx27-apf27.dt.yaml
	arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dt.yaml
	arch/arm/boot/dts/imx27-pdk.dt.yaml
	arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dt.yaml
	arch/arm/boot/dts/imx27-phytec-phycore-rdk.dt.yaml

usb@12500000: clock-names: ['core', 'iface'] is not of type 'object'
	arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml

usb@12500000: clocks: [[12, 128], [12, 126]] is too long
	arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml

usb@12500000: clocks: Additional items are not allowed ([12, 126] was unexpected)
	arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml

usb@12500000: reg: [[307232768, 512], [307233280, 512]] is too long
	arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml

usb@12500000: #reset-cells: [[1]] is not of type 'object'
	arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml

usb@12500000: reset-names:0: 'usb' was expected
	arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml

usb@12500000: ulpi: 'compatible' is a required property
	arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml

usb@12500000: ulpi: 'reg' is a required property
	arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml

usb@12520000: clock-names: ['core', 'iface'] is not of type 'object'
	arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml

usb@12520000: clocks: [[12, 297], [12, 295]] is too long
	arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml

usb@12520000: clocks: Additional items are not allowed ([12, 295] was unexpected)
	arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml

usb@12520000: reg: [[307363840, 512], [307364352, 512]] is too long
	arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml

usb@12520000: #reset-cells: [[1]] is not of type 'object'
	arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml

usb@12520000: reset-names:0: 'usb' was expected
	arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml

usb@12520000: ulpi: 'compatible' is a required property
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml

usb@12520000: ulpi: 'reg' is a required property
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml

usb@12530000: clock-names: ['core', 'iface'] is not of type 'object'
	arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml

usb@12530000: clocks: [[12, 300], [12, 298]] is too long
	arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml

usb@12530000: clocks: Additional items are not allowed ([12, 298] was unexpected)
	arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml

usb@12530000: reg: [[307429376, 512], [307429888, 512]] is too long
	arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml

usb@12530000: #reset-cells: [[1]] is not of type 'object'
	arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml

usb@12530000: reset-names:0: 'usb' was expected
	arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dt.yaml

usb@12530000: ulpi: 'compatible' is a required property
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml

usb@12530000: ulpi: 'reg' is a required property
	arch/arm/boot/dts/qcom-apq8064-cm-qs600.dt.yaml
	arch/arm/boot/dts/qcom-apq8064-ifc6410.dt.yaml

usb@2184000: adp-disable: True is not of type 'object'
	arch/arm/boot/dts/imx6dl-yapp4-draco.dt.yaml
	arch/arm/boot/dts/imx6dl-yapp4-hydra.dt.yaml
	arch/arm/boot/dts/imx6dl-yapp4-orion.dt.yaml
	arch/arm/boot/dts/imx6dl-yapp4-ursa.dt.yaml
	arch/arm/boot/dts/imx6q-pistachio.dt.yaml
	arch/arm/boot/dts/imx6q-var-dt6customboard.dt.yaml
	arch/arm/boot/dts/imx6sll-evk.dt.yaml
	arch/arm/boot/dts/imx6sll-kobo-clarahd.dt.yaml
	arch/arm/boot/dts/imx6sll-kobo-librah2o.dt.yaml
	arch/arm/boot/dts/imx6sl-tolino-shine2hd.dt.yaml
	arch/arm/boot/dts/imx6sl-tolino-shine3.dt.yaml
	arch/arm/boot/dts/imx6sl-tolino-vision5.dt.yaml
	arch/arm/boot/dts/imx6ul-kontron-n6310-s-43.dt.yaml
	arch/arm/boot/dts/imx6ul-kontron-n6310-s.dt.yaml
	arch/arm/boot/dts/imx6ull-colibri-emmc-eval-v3.dt.yaml
	arch/arm/boot/dts/imx6ull-colibri-eval-v3.dt.yaml
	arch/arm/boot/dts/imx6ull-colibri-wifi-eval-v3.dt.yaml

usb@2184000: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/imx6sl-evk.dt.yaml
	arch/arm/boot/dts/imx6sll-evk.dt.yaml
	arch/arm/boot/dts/imx6sll-kobo-clarahd.dt.yaml
	arch/arm/boot/dts/imx6sll-kobo-librah2o.dt.yaml
	arch/arm/boot/dts/imx6sl-tolino-shine2hd.dt.yaml
	arch/arm/boot/dts/imx6sl-tolino-shine3.dt.yaml
	arch/arm/boot/dts/imx6sl-tolino-vision5.dt.yaml
	arch/arm/boot/dts/imx6sl-warp.dt.yaml
	arch/arm/boot/dts/imx6sx-nitrogen6sx.dt.yaml
	arch/arm/boot/dts/imx6sx-sabreauto.dt.yaml
	arch/arm/boot/dts/imx6sx-sdb.dt.yaml
	arch/arm/boot/dts/imx6sx-sdb-mqs.dt.yaml
	arch/arm/boot/dts/imx6sx-sdb-reva.dt.yaml
	arch/arm/boot/dts/imx6sx-sdb-sai.dt.yaml
	arch/arm/boot/dts/imx6sx-softing-vining-2000.dt.yaml
	arch/arm/boot/dts/imx6sx-udoo-neo-basic.dt.yaml
	arch/arm/boot/dts/imx6sx-udoo-neo-extended.dt.yaml
	arch/arm/boot/dts/imx6sx-udoo-neo-full.dt.yaml
	arch/arm/boot/dts/imx6ul-14x14-evk.dt.yaml
	arch/arm/boot/dts/imx6ul-ccimx6ulsbcexpress.dt.yaml
	arch/arm/boot/dts/imx6ul-ccimx6ulsbcpro.dt.yaml
	arch/arm/boot/dts/imx6ul-geam.dt.yaml
	arch/arm/boot/dts/imx6ul-isiot-emmc.dt.yaml
	arch/arm/boot/dts/imx6ul-isiot-nand.dt.yaml
	arch/arm/boot/dts/imx6ul-kontron-n6310-s-43.dt.yaml
	arch/arm/boot/dts/imx6ul-kontron-n6310-s.dt.yaml
	arch/arm/boot/dts/imx6ull-14x14-evk.dt.yaml
	arch/arm/boot/dts/imx6ull-colibri-emmc-eval-v3.dt.yaml
	arch/arm/boot/dts/imx6ull-colibri-eval-v3.dt.yaml
	arch/arm/boot/dts/imx6ull-colibri-wifi-eval-v3.dt.yaml
	arch/arm/boot/dts/imx6ul-liteboard.dt.yaml
	arch/arm/boot/dts/imx6ull-myir-mys-6ulx-eval.dt.yaml
	arch/arm/boot/dts/imx6ull-opos6uldev.dt.yaml
	arch/arm/boot/dts/imx6ull-phytec-segin-ff-rdk-emmc.dt.yaml
	arch/arm/boot/dts/imx6ull-phytec-segin-ff-rdk-nand.dt.yaml
	arch/arm/boot/dts/imx6ull-phytec-segin-lc-rdk-nand.dt.yaml
	arch/arm/boot/dts/imx6ul-opos6uldev.dt.yaml
	arch/arm/boot/dts/imx6ul-phytec-segin-ff-rdk-emmc.dt.yaml
	arch/arm/boot/dts/imx6ul-phytec-segin-ff-rdk-nand.dt.yaml
	arch/arm/boot/dts/imx6ul-pico-dwarf.dt.yaml
	arch/arm/boot/dts/imx6ul-pico-hobbit.dt.yaml
	arch/arm/boot/dts/imx6ul-pico-pi.dt.yaml
	arch/arm/boot/dts/imx6ul-prti6g.dt.yaml
	arch/arm/boot/dts/imx6ul-tx6ul-0010.dt.yaml
	arch/arm/boot/dts/imx6ul-tx6ul-0011.dt.yaml
	arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dt.yaml
	arch/arm/boot/dts/imx6ulz-14x14-evk.dt.yaml

usb@2184000: fsl,anatop: [[15]] is not of type 'object'
	arch/arm/boot/dts/imx6sll-kobo-librah2o.dt.yaml

usb@2184000: fsl,anatop: [[16]] is not of type 'object'
	arch/arm/boot/dts/imx6sll-kobo-clarahd.dt.yaml
	arch/arm/boot/dts/imx6ul-liteboard.dt.yaml

usb@2184000: fsl,anatop: [[17]] is not of type 'object'
	arch/arm/boot/dts/imx6sll-evk.dt.yaml
	arch/arm/boot/dts/imx6ull-myir-mys-6ulx-eval.dt.yaml

usb@2184000: fsl,anatop: [[18]] is not of type 'object'
	arch/arm/boot/dts/imx6ul-isiot-emmc.dt.yaml
	arch/arm/boot/dts/imx6ul-isiot-nand.dt.yaml
	arch/arm/boot/dts/imx6ulz-14x14-evk.dt.yaml

usb@2184000: fsl,anatop: [[20]] is not of type 'object'
	arch/arm/boot/dts/imx6sx-udoo-neo-basic.dt.yaml
	arch/arm/boot/dts/imx6sx-udoo-neo-extended.dt.yaml
	arch/arm/boot/dts/imx6sx-udoo-neo-full.dt.yaml

usb@2184000: fsl,anatop: [[21]] is not of type 'object'
	arch/arm/boot/dts/imx6ul-prti6g.dt.yaml

usb@2184000: fsl,anatop: [[23]] is not of type 'object'
	arch/arm/boot/dts/imx6ul-ccimx6ulsbcexpress.dt.yaml

usb@2184000: fsl,anatop: [[24]] is not of type 'object'
	arch/arm/boot/dts/imx6ul-kontron-n6310-s-43.dt.yaml
	arch/arm/boot/dts/imx6ul-kontron-n6310-s.dt.yaml
	arch/arm/boot/dts/imx6ull-opos6uldev.dt.yaml
	arch/arm/boot/dts/imx6ull-phytec-segin-lc-rdk-nand.dt.yaml
	arch/arm/boot/dts/imx6ul-pico-dwarf.dt.yaml
	arch/arm/boot/dts/imx6ul-pico-hobbit.dt.yaml
	arch/arm/boot/dts/imx6ul-pico-pi.dt.yaml

usb@2184000: fsl,anatop: [[25]] is not of type 'object'
	arch/arm/boot/dts/imx6ul-geam.dt.yaml
	arch/arm/boot/dts/imx6ull-phytec-segin-ff-rdk-emmc.dt.yaml
	arch/arm/boot/dts/imx6ull-phytec-segin-ff-rdk-nand.dt.yaml
	arch/arm/boot/dts/imx6ul-opos6uldev.dt.yaml
	arch/arm/boot/dts/imx6ul-phytec-segin-ff-rdk-emmc.dt.yaml
	arch/arm/boot/dts/imx6ul-phytec-segin-ff-rdk-nand.dt.yaml

usb@2184000: fsl,anatop: [[26]] is not of type 'object'
	arch/arm/boot/dts/imx6sx-sabreauto.dt.yaml

usb@2184000: fsl,anatop: [[27]] is not of type 'object'
	arch/arm/boot/dts/imx6sx-nitrogen6sx.dt.yaml
	arch/arm/boot/dts/imx6sx-sdb-reva.dt.yaml
	arch/arm/boot/dts/imx6sx-softing-vining-2000.dt.yaml
	arch/arm/boot/dts/imx6ul-14x14-evk.dt.yaml
	arch/arm/boot/dts/imx6ull-14x14-evk.dt.yaml

usb@2184000: fsl,anatop: [[28]] is not of type 'object'
	arch/arm/boot/dts/imx6sx-sdb.dt.yaml
	arch/arm/boot/dts/imx6sx-sdb-sai.dt.yaml

usb@2184000: fsl,anatop: [[29]] is not of type 'object'
	arch/arm/boot/dts/imx6sx-sdb-mqs.dt.yaml

usb@2184000: fsl,anatop: [[30]] is not of type 'object'
	arch/arm/boot/dts/imx6ul-ccimx6ulsbcpro.dt.yaml
	arch/arm/boot/dts/imx6ul-tx6ul-0010.dt.yaml
	arch/arm/boot/dts/imx6ul-tx6ul-0011.dt.yaml

usb@2184000: fsl,anatop: [[33]] is not of type 'object'
	arch/arm/boot/dts/imx6ull-colibri-emmc-eval-v3.dt.yaml
	arch/arm/boot/dts/imx6ull-colibri-eval-v3.dt.yaml
	arch/arm/boot/dts/imx6ull-colibri-wifi-eval-v3.dt.yaml

usb@2184000: fsl,anatop: [[35]] is not of type 'object'
	arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dt.yaml

usb@2184000: hnp-disable: True is not of type 'object'
	arch/arm/boot/dts/imx6dl-yapp4-draco.dt.yaml
	arch/arm/boot/dts/imx6dl-yapp4-hydra.dt.yaml
	arch/arm/boot/dts/imx6dl-yapp4-orion.dt.yaml
	arch/arm/boot/dts/imx6dl-yapp4-ursa.dt.yaml
	arch/arm/boot/dts/imx6q-pistachio.dt.yaml
	arch/arm/boot/dts/imx6q-var-dt6customboard.dt.yaml
	arch/arm/boot/dts/imx6sll-evk.dt.yaml
	arch/arm/boot/dts/imx6sll-kobo-clarahd.dt.yaml
	arch/arm/boot/dts/imx6sll-kobo-librah2o.dt.yaml
	arch/arm/boot/dts/imx6sl-tolino-shine2hd.dt.yaml
	arch/arm/boot/dts/imx6sl-tolino-shine3.dt.yaml
	arch/arm/boot/dts/imx6sl-tolino-vision5.dt.yaml
	arch/arm/boot/dts/imx6ul-kontron-n6310-s-43.dt.yaml
	arch/arm/boot/dts/imx6ul-kontron-n6310-s.dt.yaml
	arch/arm/boot/dts/imx6ull-colibri-emmc-eval-v3.dt.yaml
	arch/arm/boot/dts/imx6ull-colibri-eval-v3.dt.yaml
	arch/arm/boot/dts/imx6ull-colibri-wifi-eval-v3.dt.yaml

usb@2184000: srp-disable: True is not of type 'object'
	arch/arm/boot/dts/imx6dl-yapp4-draco.dt.yaml
	arch/arm/boot/dts/imx6dl-yapp4-hydra.dt.yaml
	arch/arm/boot/dts/imx6dl-yapp4-orion.dt.yaml
	arch/arm/boot/dts/imx6dl-yapp4-ursa.dt.yaml
	arch/arm/boot/dts/imx6q-pistachio.dt.yaml
	arch/arm/boot/dts/imx6q-var-dt6customboard.dt.yaml
	arch/arm/boot/dts/imx6sll-evk.dt.yaml
	arch/arm/boot/dts/imx6sll-kobo-clarahd.dt.yaml
	arch/arm/boot/dts/imx6sll-kobo-librah2o.dt.yaml
	arch/arm/boot/dts/imx6sl-tolino-shine2hd.dt.yaml
	arch/arm/boot/dts/imx6sl-tolino-shine3.dt.yaml
	arch/arm/boot/dts/imx6sl-tolino-vision5.dt.yaml
	arch/arm/boot/dts/imx6ul-kontron-n6310-s-43.dt.yaml
	arch/arm/boot/dts/imx6ul-kontron-n6310-s.dt.yaml
	arch/arm/boot/dts/imx6ull-colibri-emmc-eval-v3.dt.yaml
	arch/arm/boot/dts/imx6ull-colibri-eval-v3.dt.yaml
	arch/arm/boot/dts/imx6ull-colibri-wifi-eval-v3.dt.yaml

usb@2184200: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/imx6sl-evk.dt.yaml
	arch/arm/boot/dts/imx6sll-evk.dt.yaml
	arch/arm/boot/dts/imx6sll-kobo-clarahd.dt.yaml
	arch/arm/boot/dts/imx6sll-kobo-librah2o.dt.yaml
	arch/arm/boot/dts/imx6sl-tolino-shine2hd.dt.yaml
	arch/arm/boot/dts/imx6sl-tolino-shine3.dt.yaml
	arch/arm/boot/dts/imx6sl-tolino-vision5.dt.yaml
	arch/arm/boot/dts/imx6sl-warp.dt.yaml
	arch/arm/boot/dts/imx6sx-nitrogen6sx.dt.yaml
	arch/arm/boot/dts/imx6sx-sabreauto.dt.yaml
	arch/arm/boot/dts/imx6sx-sdb.dt.yaml
	arch/arm/boot/dts/imx6sx-sdb-mqs.dt.yaml
	arch/arm/boot/dts/imx6sx-sdb-reva.dt.yaml
	arch/arm/boot/dts/imx6sx-sdb-sai.dt.yaml
	arch/arm/boot/dts/imx6sx-softing-vining-2000.dt.yaml
	arch/arm/boot/dts/imx6sx-udoo-neo-basic.dt.yaml
	arch/arm/boot/dts/imx6sx-udoo-neo-extended.dt.yaml
	arch/arm/boot/dts/imx6sx-udoo-neo-full.dt.yaml
	arch/arm/boot/dts/imx6ul-14x14-evk.dt.yaml
	arch/arm/boot/dts/imx6ul-ccimx6ulsbcexpress.dt.yaml
	arch/arm/boot/dts/imx6ul-ccimx6ulsbcpro.dt.yaml
	arch/arm/boot/dts/imx6ul-geam.dt.yaml
	arch/arm/boot/dts/imx6ul-isiot-emmc.dt.yaml
	arch/arm/boot/dts/imx6ul-isiot-nand.dt.yaml
	arch/arm/boot/dts/imx6ul-kontron-n6310-s-43.dt.yaml
	arch/arm/boot/dts/imx6ul-kontron-n6310-s.dt.yaml
	arch/arm/boot/dts/imx6ull-14x14-evk.dt.yaml
	arch/arm/boot/dts/imx6ull-colibri-emmc-eval-v3.dt.yaml
	arch/arm/boot/dts/imx6ull-colibri-eval-v3.dt.yaml
	arch/arm/boot/dts/imx6ull-colibri-wifi-eval-v3.dt.yaml
	arch/arm/boot/dts/imx6ul-liteboard.dt.yaml
	arch/arm/boot/dts/imx6ull-myir-mys-6ulx-eval.dt.yaml
	arch/arm/boot/dts/imx6ull-opos6uldev.dt.yaml
	arch/arm/boot/dts/imx6ull-phytec-segin-ff-rdk-emmc.dt.yaml
	arch/arm/boot/dts/imx6ull-phytec-segin-ff-rdk-nand.dt.yaml
	arch/arm/boot/dts/imx6ull-phytec-segin-lc-rdk-nand.dt.yaml
	arch/arm/boot/dts/imx6ul-opos6uldev.dt.yaml
	arch/arm/boot/dts/imx6ul-phytec-segin-ff-rdk-emmc.dt.yaml
	arch/arm/boot/dts/imx6ul-phytec-segin-ff-rdk-nand.dt.yaml
	arch/arm/boot/dts/imx6ul-pico-dwarf.dt.yaml
	arch/arm/boot/dts/imx6ul-pico-hobbit.dt.yaml
	arch/arm/boot/dts/imx6ul-pico-pi.dt.yaml
	arch/arm/boot/dts/imx6ul-prti6g.dt.yaml
	arch/arm/boot/dts/imx6ul-tx6ul-0010.dt.yaml
	arch/arm/boot/dts/imx6ul-tx6ul-0011.dt.yaml
	arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dt.yaml
	arch/arm/boot/dts/imx6ulz-14x14-evk.dt.yaml

usb@2184200: reset-gpios: [[21, 11, 0]] is not of type 'object'
	arch/arm/boot/dts/imx6q-dms-ba16.dt.yaml

usb@2184200: reset-gpios: [[22, 11, 0]] is not of type 'object'
	arch/arm/boot/dts/imx6q-b450v3.dt.yaml
	arch/arm/boot/dts/imx6q-b650v3.dt.yaml
	arch/arm/boot/dts/imx6q-b850v3.dt.yaml

usb@2184200: reset-gpios: [[39, 26, 1]] is not of type 'object'
	arch/arm/boot/dts/imx6sx-nitrogen6sx.dt.yaml

usb@2184400: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/imx6sl-evk.dt.yaml
	arch/arm/boot/dts/imx6sl-tolino-shine2hd.dt.yaml
	arch/arm/boot/dts/imx6sl-tolino-shine3.dt.yaml
	arch/arm/boot/dts/imx6sl-tolino-vision5.dt.yaml
	arch/arm/boot/dts/imx6sl-warp.dt.yaml
	arch/arm/boot/dts/imx6sx-nitrogen6sx.dt.yaml
	arch/arm/boot/dts/imx6sx-sabreauto.dt.yaml
	arch/arm/boot/dts/imx6sx-sdb.dt.yaml
	arch/arm/boot/dts/imx6sx-sdb-mqs.dt.yaml
	arch/arm/boot/dts/imx6sx-sdb-reva.dt.yaml
	arch/arm/boot/dts/imx6sx-sdb-sai.dt.yaml
	arch/arm/boot/dts/imx6sx-softing-vining-2000.dt.yaml
	arch/arm/boot/dts/imx6sx-udoo-neo-basic.dt.yaml
	arch/arm/boot/dts/imx6sx-udoo-neo-extended.dt.yaml
	arch/arm/boot/dts/imx6sx-udoo-neo-full.dt.yaml

usb@2184400: fsl,anatop: [[20]] is not of type 'object'
	arch/arm/boot/dts/imx6sx-udoo-neo-basic.dt.yaml
	arch/arm/boot/dts/imx6sx-udoo-neo-extended.dt.yaml
	arch/arm/boot/dts/imx6sx-udoo-neo-full.dt.yaml

usb@2184400: fsl,anatop: [[26]] is not of type 'object'
	arch/arm/boot/dts/imx6sx-sabreauto.dt.yaml

usb@2184400: fsl,anatop: [[27]] is not of type 'object'
	arch/arm/boot/dts/imx6sx-nitrogen6sx.dt.yaml
	arch/arm/boot/dts/imx6sx-sdb-reva.dt.yaml
	arch/arm/boot/dts/imx6sx-softing-vining-2000.dt.yaml

usb@2184400: fsl,anatop: [[28]] is not of type 'object'
	arch/arm/boot/dts/imx6sx-sdb.dt.yaml
	arch/arm/boot/dts/imx6sx-sdb-sai.dt.yaml

usb@2184400: fsl,anatop: [[29]] is not of type 'object'
	arch/arm/boot/dts/imx6sx-sdb-mqs.dt.yaml

usb@30b10000: adp-disable: True is not of type 'object'
	arch/arm/boot/dts/imx7d-mba7.dt.yaml
	arch/arm/boot/dts/imx7s-mba7.dt.yaml

usb@30b10000: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/imx7d-cl-som-imx7.dt.yaml
	arch/arm/boot/dts/imx7d-colibri-aster.dt.yaml
	arch/arm/boot/dts/imx7d-colibri-emmc-aster.dt.yaml
	arch/arm/boot/dts/imx7d-colibri-emmc-eval-v3.dt.yaml
	arch/arm/boot/dts/imx7d-colibri-eval-v3.dt.yaml
	arch/arm/boot/dts/imx7d-flex-concentrator.dt.yaml
	arch/arm/boot/dts/imx7d-flex-concentrator-mfg.dt.yaml
	arch/arm/boot/dts/imx7d-mba7.dt.yaml
	arch/arm/boot/dts/imx7d-meerkat96.dt.yaml
	arch/arm/boot/dts/imx7d-nitrogen7.dt.yaml
	arch/arm/boot/dts/imx7d-pico-dwarf.dt.yaml
	arch/arm/boot/dts/imx7d-pico-hobbit.dt.yaml
	arch/arm/boot/dts/imx7d-pico-nymph.dt.yaml
	arch/arm/boot/dts/imx7d-pico-pi.dt.yaml
	arch/arm/boot/dts/imx7d-remarkable2.dt.yaml
	arch/arm/boot/dts/imx7d-sbc-imx7.dt.yaml
	arch/arm/boot/dts/imx7d-sdb.dt.yaml
	arch/arm/boot/dts/imx7d-sdb-reva.dt.yaml
	arch/arm/boot/dts/imx7d-sdb-sht11.dt.yaml
	arch/arm/boot/dts/imx7d-zii-rmu2.dt.yaml
	arch/arm/boot/dts/imx7d-zii-rpu2.dt.yaml
	arch/arm/boot/dts/imx7s-colibri-aster.dt.yaml
	arch/arm/boot/dts/imx7s-colibri-eval-v3.dt.yaml
	arch/arm/boot/dts/imx7s-mba7.dt.yaml
	arch/arm/boot/dts/imx7s-warp.dt.yaml

usb@30b10000: hnp-disable: True is not of type 'object'
	arch/arm/boot/dts/imx7d-mba7.dt.yaml
	arch/arm/boot/dts/imx7s-mba7.dt.yaml

usb@30b10000: srp-disable: True is not of type 'object'
	arch/arm/boot/dts/imx7d-mba7.dt.yaml
	arch/arm/boot/dts/imx7s-mba7.dt.yaml

usb@30b20000: adp-disable: True is not of type 'object'
	arch/arm/boot/dts/imx7d-flex-concentrator.dt.yaml
	arch/arm/boot/dts/imx7d-flex-concentrator-mfg.dt.yaml
	arch/arm/boot/dts/imx7d-mba7.dt.yaml

usb@30b20000: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/imx7d-cl-som-imx7.dt.yaml
	arch/arm/boot/dts/imx7d-colibri-aster.dt.yaml
	arch/arm/boot/dts/imx7d-colibri-emmc-aster.dt.yaml
	arch/arm/boot/dts/imx7d-colibri-emmc-eval-v3.dt.yaml
	arch/arm/boot/dts/imx7d-colibri-eval-v3.dt.yaml
	arch/arm/boot/dts/imx7d-flex-concentrator.dt.yaml
	arch/arm/boot/dts/imx7d-flex-concentrator-mfg.dt.yaml
	arch/arm/boot/dts/imx7d-mba7.dt.yaml
	arch/arm/boot/dts/imx7d-meerkat96.dt.yaml
	arch/arm/boot/dts/imx7d-nitrogen7.dt.yaml
	arch/arm/boot/dts/imx7d-pico-dwarf.dt.yaml
	arch/arm/boot/dts/imx7d-pico-hobbit.dt.yaml
	arch/arm/boot/dts/imx7d-pico-nymph.dt.yaml
	arch/arm/boot/dts/imx7d-pico-pi.dt.yaml
	arch/arm/boot/dts/imx7d-remarkable2.dt.yaml
	arch/arm/boot/dts/imx7d-sbc-imx7.dt.yaml
	arch/arm/boot/dts/imx7d-sdb.dt.yaml
	arch/arm/boot/dts/imx7d-sdb-reva.dt.yaml
	arch/arm/boot/dts/imx7d-sdb-sht11.dt.yaml
	arch/arm/boot/dts/imx7d-zii-rmu2.dt.yaml
	arch/arm/boot/dts/imx7d-zii-rpu2.dt.yaml

usb@30b20000: hnp-disable: True is not of type 'object'
	arch/arm/boot/dts/imx7d-flex-concentrator.dt.yaml
	arch/arm/boot/dts/imx7d-flex-concentrator-mfg.dt.yaml
	arch/arm/boot/dts/imx7d-mba7.dt.yaml
	arch/arm/boot/dts/imx7d-remarkable2.dt.yaml

usb@30b20000: srp-disable: True is not of type 'object'
	arch/arm/boot/dts/imx7d-flex-concentrator.dt.yaml
	arch/arm/boot/dts/imx7d-flex-concentrator-mfg.dt.yaml
	arch/arm/boot/dts/imx7d-mba7.dt.yaml
	arch/arm/boot/dts/imx7d-remarkable2.dt.yaml

usb@30b30000: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/imx7d-cl-som-imx7.dt.yaml
	arch/arm/boot/dts/imx7d-colibri-aster.dt.yaml
	arch/arm/boot/dts/imx7d-colibri-emmc-aster.dt.yaml
	arch/arm/boot/dts/imx7d-colibri-emmc-eval-v3.dt.yaml
	arch/arm/boot/dts/imx7d-colibri-eval-v3.dt.yaml
	arch/arm/boot/dts/imx7d-flex-concentrator.dt.yaml
	arch/arm/boot/dts/imx7d-flex-concentrator-mfg.dt.yaml
	arch/arm/boot/dts/imx7d-mba7.dt.yaml
	arch/arm/boot/dts/imx7d-meerkat96.dt.yaml
	arch/arm/boot/dts/imx7d-nitrogen7.dt.yaml
	arch/arm/boot/dts/imx7d-pico-dwarf.dt.yaml
	arch/arm/boot/dts/imx7d-pico-hobbit.dt.yaml
	arch/arm/boot/dts/imx7d-pico-nymph.dt.yaml
	arch/arm/boot/dts/imx7d-pico-pi.dt.yaml
	arch/arm/boot/dts/imx7d-remarkable2.dt.yaml
	arch/arm/boot/dts/imx7d-sbc-imx7.dt.yaml
	arch/arm/boot/dts/imx7d-sdb.dt.yaml
	arch/arm/boot/dts/imx7d-sdb-reva.dt.yaml
	arch/arm/boot/dts/imx7d-sdb-sht11.dt.yaml
	arch/arm/boot/dts/imx7d-zii-rmu2.dt.yaml
	arch/arm/boot/dts/imx7d-zii-rpu2.dt.yaml
	arch/arm/boot/dts/imx7s-colibri-aster.dt.yaml
	arch/arm/boot/dts/imx7s-colibri-eval-v3.dt.yaml
	arch/arm/boot/dts/imx7s-mba7.dt.yaml
	arch/arm/boot/dts/imx7s-warp.dt.yaml

usb@30b30000: power-domains: [[44]] is not of type 'object'
	arch/arm/boot/dts/imx7d-remarkable2.dt.yaml

usb@30b30000: power-domains: [[46]] is not of type 'object'
	arch/arm/boot/dts/imx7d-cl-som-imx7.dt.yaml
	arch/arm/boot/dts/imx7d-sbc-imx7.dt.yaml

usb@30b30000: power-domains: [[47]] is not of type 'object'
	arch/arm/boot/dts/imx7d-zii-rmu2.dt.yaml

usb@30b30000: power-domains: [[52]] is not of type 'object'
	arch/arm/boot/dts/imx7d-flex-concentrator.dt.yaml
	arch/arm/boot/dts/imx7d-flex-concentrator-mfg.dt.yaml

usb@30b30000: power-domains: [[54]] is not of type 'object'
	arch/arm/boot/dts/imx7d-meerkat96.dt.yaml

usb@30b30000: power-domains: [[57]] is not of type 'object'
	arch/arm/boot/dts/imx7s-warp.dt.yaml

usb@30b30000: power-domains: [[63]] is not of type 'object'
	arch/arm/boot/dts/imx7d-pico-nymph.dt.yaml

usb@30b30000: power-domains: [[64]] is not of type 'object'
	arch/arm/boot/dts/imx7s-mba7.dt.yaml

usb@30b30000: power-domains: [[65]] is not of type 'object'
	arch/arm/boot/dts/imx7d-pico-dwarf.dt.yaml
	arch/arm/boot/dts/imx7d-pico-hobbit.dt.yaml
	arch/arm/boot/dts/imx7d-pico-pi.dt.yaml
	arch/arm/boot/dts/imx7d-sdb.dt.yaml
	arch/arm/boot/dts/imx7d-sdb-reva.dt.yaml
	arch/arm/boot/dts/imx7d-sdb-sht11.dt.yaml

usb@30b30000: power-domains: [[66]] is not of type 'object'
	arch/arm/boot/dts/imx7d-mba7.dt.yaml
	arch/arm/boot/dts/imx7d-nitrogen7.dt.yaml

usb@30b30000: power-domains: [[74]] is not of type 'object'
	arch/arm/boot/dts/imx7d-zii-rpu2.dt.yaml

usb@30b30000: power-domains: [[78]] is not of type 'object'
	arch/arm/boot/dts/imx7s-colibri-aster.dt.yaml

usb@30b30000: power-domains: [[80]] is not of type 'object'
	arch/arm/boot/dts/imx7d-colibri-aster.dt.yaml
	arch/arm/boot/dts/imx7d-colibri-emmc-aster.dt.yaml

usb@30b30000: power-domains: [[82]] is not of type 'object'
	arch/arm/boot/dts/imx7s-colibri-eval-v3.dt.yaml

usb@30b30000: power-domains: [[84]] is not of type 'object'
	arch/arm/boot/dts/imx7d-colibri-emmc-eval-v3.dt.yaml
	arch/arm/boot/dts/imx7d-colibri-eval-v3.dt.yaml

usb@32e40000: adp-disable: True is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mn-evk.dt.yaml

usb@32e40000: clock-names: ['usb1_ctrl_root_clk'] is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-beacon-kit.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-icore-mx8mm-ctouch2.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-icore-mx8mm-edimm2.2.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-nitrogen-r2.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw71xx-0x.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw72xx-0x.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw73xx-0x.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw7901.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw7902.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mn-beacon-kit.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mn-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mn-var-som-symphony.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dt.yaml

usb@32e40000: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm64/boot/dts/freescale/imx8mm-beacon-kit.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-icore-mx8mm-ctouch2.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-icore-mx8mm-edimm2.2.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-nitrogen-r2.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw71xx-0x.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw72xx-0x.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw73xx-0x.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw7901.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw7902.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mn-beacon-kit.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mn-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mn-var-som-symphony.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dt.yaml

usb@32e40000: hnp-disable: True is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mn-evk.dt.yaml

usb@32e40000: port: 'compatible' is a required property
	arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mn-evk.dt.yaml

usb@32e40000: port: 'reg' is a required property
	arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mn-evk.dt.yaml

usb@32e40000: power-domains: [[47]] is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-icore-mx8mm-ctouch2.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-icore-mx8mm-edimm2.2.dt.yaml

usb@32e40000: power-domains: [[53]] is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dt.yaml

usb@32e40000: power-domains: [[54]] is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw71xx-0x.dt.yaml

usb@32e40000: power-domains: [[57]] is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml

usb@32e40000: power-domains: [[61]] is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw72xx-0x.dt.yaml

usb@32e40000: power-domains: [[64]] is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dt.yaml

usb@32e40000: power-domains: [[65]] is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw73xx-0x.dt.yaml

usb@32e40000: power-domains: [[66]] is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw7902.dt.yaml

usb@32e40000: power-domains: [[67]] is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-beacon-kit.dt.yaml

usb@32e40000: power-domains: [[68]] is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw7901.dt.yaml

usb@32e40000: power-domains: [[71]] is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-nitrogen-r2.dt.yaml

usb@32e40000: srp-disable: True is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mn-evk.dt.yaml

usb@32e40000: usb-role-switch: True is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mn-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mn-var-som-symphony.dt.yaml

usb@32e50000: adp-disable: True is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony.dt.yaml

usb@32e50000: clock-names: ['usb1_ctrl_root_clk'] is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-beacon-kit.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-icore-mx8mm-ctouch2.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-icore-mx8mm-edimm2.2.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-nitrogen-r2.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw71xx-0x.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw72xx-0x.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw73xx-0x.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw7901.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw7902.dt.yaml

usb@32e50000: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm64/boot/dts/freescale/imx8mm-beacon-kit.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-icore-mx8mm-ctouch2.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-icore-mx8mm-edimm2.2.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-nitrogen-r2.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw71xx-0x.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw72xx-0x.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw73xx-0x.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw7901.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw7902.dt.yaml

usb@32e50000: hnp-disable: True is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony.dt.yaml

usb@32e50000: power-domains: [[50]] is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-icore-mx8mm-ctouch2.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-icore-mx8mm-edimm2.2.dt.yaml

usb@32e50000: power-domains: [[57]] is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-ddr4-evk.dt.yaml

usb@32e50000: power-domains: [[58]] is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw71xx-0x.dt.yaml

usb@32e50000: power-domains: [[61]] is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml

usb@32e50000: power-domains: [[65]] is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw72xx-0x.dt.yaml

usb@32e50000: power-domains: [[67]] is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dt.yaml

usb@32e50000: power-domains: [[69]] is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw73xx-0x.dt.yaml

usb@32e50000: power-domains: [[70]] is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-beacon-kit.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony.dt.yaml
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw7902.dt.yaml

usb@32e50000: power-domains: [[71]] is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-venice-gw7901.dt.yaml

usb@32e50000: power-domains: [[75]] is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-nitrogen-r2.dt.yaml

usb@32e50000: srp-disable: True is not of type 'object'
	arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony.dt.yaml

usb@40034000: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/vf500-colibri-eval-v3.dt.yaml
	arch/arm/boot/dts/vf610-bk4.dt.yaml
	arch/arm/boot/dts/vf610-colibri-eval-v3.dt.yaml
	arch/arm/boot/dts/vf610-cosmic.dt.yaml
	arch/arm/boot/dts/vf610m4-colibri.dt.yaml
	arch/arm/boot/dts/vf610m4-cosmic.dt.yaml
	arch/arm/boot/dts/vf610-twr.dt.yaml
	arch/arm/boot/dts/vf610-zii-cfu1.dt.yaml
	arch/arm/boot/dts/vf610-zii-dev-rev-b.dt.yaml
	arch/arm/boot/dts/vf610-zii-dev-rev-c.dt.yaml
	arch/arm/boot/dts/vf610-zii-scu4-aib.dt.yaml
	arch/arm/boot/dts/vf610-zii-spb4.dt.yaml
	arch/arm/boot/dts/vf610-zii-ssmb-dtu.dt.yaml
	arch/arm/boot/dts/vf610-zii-ssmb-spu3.dt.yaml

usb@400b4000: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/vf500-colibri-eval-v3.dt.yaml
	arch/arm/boot/dts/vf610-bk4.dt.yaml
	arch/arm/boot/dts/vf610-colibri-eval-v3.dt.yaml
	arch/arm/boot/dts/vf610-cosmic.dt.yaml
	arch/arm/boot/dts/vf610m4-colibri.dt.yaml
	arch/arm/boot/dts/vf610m4-cosmic.dt.yaml
	arch/arm/boot/dts/vf610-twr.dt.yaml
	arch/arm/boot/dts/vf610-zii-cfu1.dt.yaml
	arch/arm/boot/dts/vf610-zii-dev-rev-b.dt.yaml
	arch/arm/boot/dts/vf610-zii-dev-rev-c.dt.yaml
	arch/arm/boot/dts/vf610-zii-scu4-aib.dt.yaml
	arch/arm/boot/dts/vf610-zii-spb4.dt.yaml
	arch/arm/boot/dts/vf610-zii-ssmb-dtu.dt.yaml
	arch/arm/boot/dts/vf610-zii-ssmb-spu3.dt.yaml

usb@40330000: adp-disable: True is not of type 'object'
	arch/arm/boot/dts/imx7ulp-com.dt.yaml
	arch/arm/boot/dts/imx7ulp-evk.dt.yaml

usb@40330000: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/imx7ulp-com.dt.yaml
	arch/arm/boot/dts/imx7ulp-evk.dt.yaml

usb@40330000: hnp-disable: True is not of type 'object'
	arch/arm/boot/dts/imx7ulp-com.dt.yaml
	arch/arm/boot/dts/imx7ulp-evk.dt.yaml

usb@40330000: srp-disable: True is not of type 'object'
	arch/arm/boot/dts/imx7ulp-com.dt.yaml
	arch/arm/boot/dts/imx7ulp-evk.dt.yaml

usb@53f80000: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/imx50-evk.dt.yaml
	arch/arm/boot/dts/imx50-kobo-aura.dt.yaml
	arch/arm/boot/dts/imx53-ard.dt.yaml
	arch/arm/boot/dts/imx53-cx9020.dt.yaml
	arch/arm/boot/dts/imx53-kp-ddc.dt.yaml
	arch/arm/boot/dts/imx53-kp-hsc.dt.yaml
	arch/arm/boot/dts/imx53-m53evk.dt.yaml
	arch/arm/boot/dts/imx53-m53menlo.dt.yaml
	arch/arm/boot/dts/imx53-mba53.dt.yaml
	arch/arm/boot/dts/imx53-ppd.dt.yaml
	arch/arm/boot/dts/imx53-qsb.dt.yaml
	arch/arm/boot/dts/imx53-qsrb.dt.yaml
	arch/arm/boot/dts/imx53-smd.dt.yaml
	arch/arm/boot/dts/imx53-tx53-x03x.dt.yaml
	arch/arm/boot/dts/imx53-tx53-x13x.dt.yaml
	arch/arm/boot/dts/imx53-usbarmory.dt.yaml
	arch/arm/boot/dts/imx53-voipac-bsb.dt.yaml

usb@53f80200: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/imx50-evk.dt.yaml
	arch/arm/boot/dts/imx50-kobo-aura.dt.yaml
	arch/arm/boot/dts/imx53-ard.dt.yaml
	arch/arm/boot/dts/imx53-cx9020.dt.yaml
	arch/arm/boot/dts/imx53-kp-ddc.dt.yaml
	arch/arm/boot/dts/imx53-kp-hsc.dt.yaml
	arch/arm/boot/dts/imx53-m53evk.dt.yaml
	arch/arm/boot/dts/imx53-m53menlo.dt.yaml
	arch/arm/boot/dts/imx53-mba53.dt.yaml
	arch/arm/boot/dts/imx53-ppd.dt.yaml
	arch/arm/boot/dts/imx53-qsb.dt.yaml
	arch/arm/boot/dts/imx53-qsrb.dt.yaml
	arch/arm/boot/dts/imx53-smd.dt.yaml
	arch/arm/boot/dts/imx53-tx53-x03x.dt.yaml
	arch/arm/boot/dts/imx53-tx53-x13x.dt.yaml
	arch/arm/boot/dts/imx53-usbarmory.dt.yaml
	arch/arm/boot/dts/imx53-voipac-bsb.dt.yaml

usb@53f80400: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/imx53-ard.dt.yaml
	arch/arm/boot/dts/imx53-cx9020.dt.yaml
	arch/arm/boot/dts/imx53-kp-ddc.dt.yaml
	arch/arm/boot/dts/imx53-kp-hsc.dt.yaml
	arch/arm/boot/dts/imx53-m53evk.dt.yaml
	arch/arm/boot/dts/imx53-m53menlo.dt.yaml
	arch/arm/boot/dts/imx53-mba53.dt.yaml
	arch/arm/boot/dts/imx53-ppd.dt.yaml
	arch/arm/boot/dts/imx53-qsb.dt.yaml
	arch/arm/boot/dts/imx53-qsrb.dt.yaml
	arch/arm/boot/dts/imx53-smd.dt.yaml
	arch/arm/boot/dts/imx53-tx53-x03x.dt.yaml
	arch/arm/boot/dts/imx53-tx53-x13x.dt.yaml
	arch/arm/boot/dts/imx53-usbarmory.dt.yaml
	arch/arm/boot/dts/imx53-voipac-bsb.dt.yaml

usb@53f80600: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/imx53-ard.dt.yaml
	arch/arm/boot/dts/imx53-cx9020.dt.yaml
	arch/arm/boot/dts/imx53-kp-ddc.dt.yaml
	arch/arm/boot/dts/imx53-kp-hsc.dt.yaml
	arch/arm/boot/dts/imx53-m53evk.dt.yaml
	arch/arm/boot/dts/imx53-m53menlo.dt.yaml
	arch/arm/boot/dts/imx53-mba53.dt.yaml
	arch/arm/boot/dts/imx53-ppd.dt.yaml
	arch/arm/boot/dts/imx53-qsb.dt.yaml
	arch/arm/boot/dts/imx53-qsrb.dt.yaml
	arch/arm/boot/dts/imx53-smd.dt.yaml
	arch/arm/boot/dts/imx53-tx53-x03x.dt.yaml
	arch/arm/boot/dts/imx53-tx53-x13x.dt.yaml
	arch/arm/boot/dts/imx53-usbarmory.dt.yaml
	arch/arm/boot/dts/imx53-voipac-bsb.dt.yaml

usb@53ff4000: clock-names: ['ipg', 'ahb', 'per'] is not of type 'object'
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-cmo-qvga.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-svga.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-vga.dt.yaml
	arch/arm/boot/dts/imx25-karo-tx25.dt.yaml
	arch/arm/boot/dts/imx25-pdk.dt.yaml
	arch/arm/boot/dts/imx35-eukrea-mbimxsd35-baseboard.dt.yaml
	arch/arm/boot/dts/imx35-pdk.dt.yaml

usb@53ff4000: clocks: [[2, 9], [2, 70], [2, 8]] is too long
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-cmo-qvga.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-svga.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-vga.dt.yaml
	arch/arm/boot/dts/imx25-karo-tx25.dt.yaml
	arch/arm/boot/dts/imx25-pdk.dt.yaml

usb@53ff4000: clocks: [[2, 9], [2, 73], [2, 28]] is too long
	arch/arm/boot/dts/imx35-eukrea-mbimxsd35-baseboard.dt.yaml
	arch/arm/boot/dts/imx35-pdk.dt.yaml

usb@53ff4000: clocks: Additional items are not allowed ([2, 70], [2, 8] were unexpected)
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-cmo-qvga.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-svga.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-vga.dt.yaml
	arch/arm/boot/dts/imx25-karo-tx25.dt.yaml
	arch/arm/boot/dts/imx25-pdk.dt.yaml

usb@53ff4000: clocks: Additional items are not allowed ([2, 73], [2, 28] were unexpected)
	arch/arm/boot/dts/imx35-eukrea-mbimxsd35-baseboard.dt.yaml
	arch/arm/boot/dts/imx35-pdk.dt.yaml

usb@53ff4000: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-cmo-qvga.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-svga.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-vga.dt.yaml
	arch/arm/boot/dts/imx25-karo-tx25.dt.yaml
	arch/arm/boot/dts/imx25-pdk.dt.yaml
	arch/arm/boot/dts/imx35-eukrea-mbimxsd35-baseboard.dt.yaml
	arch/arm/boot/dts/imx35-pdk.dt.yaml

usb@53ff4400: clock-names: ['ipg', 'ahb', 'per'] is not of type 'object'
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-cmo-qvga.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-svga.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-vga.dt.yaml
	arch/arm/boot/dts/imx25-karo-tx25.dt.yaml
	arch/arm/boot/dts/imx25-pdk.dt.yaml
	arch/arm/boot/dts/imx35-eukrea-mbimxsd35-baseboard.dt.yaml
	arch/arm/boot/dts/imx35-pdk.dt.yaml

usb@53ff4400: clocks: [[2, 9], [2, 70], [2, 8]] is too long
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-cmo-qvga.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-svga.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-vga.dt.yaml
	arch/arm/boot/dts/imx25-karo-tx25.dt.yaml
	arch/arm/boot/dts/imx25-pdk.dt.yaml

usb@53ff4400: clocks: [[2, 9], [2, 73], [2, 28]] is too long
	arch/arm/boot/dts/imx35-eukrea-mbimxsd35-baseboard.dt.yaml
	arch/arm/boot/dts/imx35-pdk.dt.yaml

usb@53ff4400: clocks: Additional items are not allowed ([2, 70], [2, 8] were unexpected)
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-cmo-qvga.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-svga.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-vga.dt.yaml
	arch/arm/boot/dts/imx25-karo-tx25.dt.yaml
	arch/arm/boot/dts/imx25-pdk.dt.yaml

usb@53ff4400: clocks: Additional items are not allowed ([2, 73], [2, 28] were unexpected)
	arch/arm/boot/dts/imx35-eukrea-mbimxsd35-baseboard.dt.yaml
	arch/arm/boot/dts/imx35-pdk.dt.yaml

usb@53ff4400: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-cmo-qvga.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-svga.dt.yaml
	arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard-dvi-vga.dt.yaml
	arch/arm/boot/dts/imx25-karo-tx25.dt.yaml
	arch/arm/boot/dts/imx25-pdk.dt.yaml
	arch/arm/boot/dts/imx35-eukrea-mbimxsd35-baseboard.dt.yaml
	arch/arm/boot/dts/imx35-pdk.dt.yaml

usb@73f80000: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/imx51-apf51dev.dt.yaml
	arch/arm/boot/dts/imx51-apf51.dt.yaml
	arch/arm/boot/dts/imx51-babbage.dt.yaml
	arch/arm/boot/dts/imx51-digi-connectcore-jsk.dt.yaml
	arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard.dt.yaml
	arch/arm/boot/dts/imx51-ts4800.dt.yaml
	arch/arm/boot/dts/imx51-zii-rdu1.dt.yaml
	arch/arm/boot/dts/imx51-zii-scu2-mezz.dt.yaml
	arch/arm/boot/dts/imx51-zii-scu3-esb.dt.yaml

usb@73f80200: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/imx51-apf51dev.dt.yaml
	arch/arm/boot/dts/imx51-apf51.dt.yaml
	arch/arm/boot/dts/imx51-babbage.dt.yaml
	arch/arm/boot/dts/imx51-digi-connectcore-jsk.dt.yaml
	arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard.dt.yaml
	arch/arm/boot/dts/imx51-ts4800.dt.yaml
	arch/arm/boot/dts/imx51-zii-rdu1.dt.yaml
	arch/arm/boot/dts/imx51-zii-scu2-mezz.dt.yaml
	arch/arm/boot/dts/imx51-zii-scu3-esb.dt.yaml

usb@73f80400: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/imx51-apf51dev.dt.yaml
	arch/arm/boot/dts/imx51-apf51.dt.yaml
	arch/arm/boot/dts/imx51-babbage.dt.yaml
	arch/arm/boot/dts/imx51-digi-connectcore-jsk.dt.yaml
	arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard.dt.yaml
	arch/arm/boot/dts/imx51-ts4800.dt.yaml
	arch/arm/boot/dts/imx51-zii-rdu1.dt.yaml
	arch/arm/boot/dts/imx51-zii-scu2-mezz.dt.yaml
	arch/arm/boot/dts/imx51-zii-scu3-esb.dt.yaml

usb@73f80600: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/imx51-apf51dev.dt.yaml
	arch/arm/boot/dts/imx51-apf51.dt.yaml
	arch/arm/boot/dts/imx51-babbage.dt.yaml
	arch/arm/boot/dts/imx51-digi-connectcore-jsk.dt.yaml
	arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard.dt.yaml
	arch/arm/boot/dts/imx51-ts4800.dt.yaml
	arch/arm/boot/dts/imx51-zii-rdu1.dt.yaml
	arch/arm/boot/dts/imx51-zii-scu2-mezz.dt.yaml
	arch/arm/boot/dts/imx51-zii-scu3-esb.dt.yaml

usb@78d9000: adp-disable: True is not of type 'object'
	arch/arm64/boot/dts/qcom/apq8016-sbc.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-alcatel-idol347.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-asus-z00l.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8910.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-mtp.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a3u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a5u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-serranove.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-wingtech-wt88047.dt.yaml
	arch/arm/boot/dts/qcom-msm8916-samsung-serranove.dt.yaml

usb@78d9000: clock-names: ['iface', 'core'] is not of type 'object'
	arch/arm64/boot/dts/qcom/apq8016-sbc.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-alcatel-idol347.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-asus-z00l.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8910.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-mtp.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a3u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a5u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-serranove.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-wingtech-wt88047.dt.yaml
	arch/arm/boot/dts/qcom-msm8916-samsung-serranove.dt.yaml

usb@78d9000: clocks: [[19, 133], [19, 134]] is too long
	arch/arm64/boot/dts/qcom/apq8016-sbc.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-alcatel-idol347.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-asus-z00l.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8910.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-mtp.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a3u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a5u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-serranove.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-wingtech-wt88047.dt.yaml
	arch/arm/boot/dts/qcom-msm8916-samsung-serranove.dt.yaml

usb@78d9000: clocks: Additional items are not allowed ([19, 134] was unexpected)
	arch/arm64/boot/dts/qcom/apq8016-sbc.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-alcatel-idol347.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-asus-z00l.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8910.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-mtp.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a3u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a5u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-serranove.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-wingtech-wt88047.dt.yaml
	arch/arm/boot/dts/qcom-msm8916-samsung-serranove.dt.yaml

usb@78d9000: hnp-disable: True is not of type 'object'
	arch/arm64/boot/dts/qcom/apq8016-sbc.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-alcatel-idol347.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-asus-z00l.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8910.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-mtp.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a3u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a5u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-serranove.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-wingtech-wt88047.dt.yaml
	arch/arm/boot/dts/qcom-msm8916-samsung-serranove.dt.yaml

usb@78d9000: interrupts: [[0, 134, 4], [0, 140, 4]] is too long
	arch/arm64/boot/dts/qcom/apq8016-sbc.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-alcatel-idol347.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-asus-z00l.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8910.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-mtp.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a3u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a5u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-serranove.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-wingtech-wt88047.dt.yaml
	arch/arm/boot/dts/qcom-msm8916-samsung-serranove.dt.yaml

usb@78d9000: reg: [[126717952, 512], [126718464, 512]] is too long
	arch/arm64/boot/dts/qcom/apq8016-sbc.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-alcatel-idol347.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-asus-z00l.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8910.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-mtp.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a3u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a5u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-serranove.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-wingtech-wt88047.dt.yaml
	arch/arm/boot/dts/qcom-msm8916-samsung-serranove.dt.yaml

usb@78d9000: #reset-cells: [[1]] is not of type 'object'
	arch/arm64/boot/dts/qcom/apq8016-sbc.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-alcatel-idol347.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-asus-z00l.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8910.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-mtp.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a3u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a5u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-serranove.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-wingtech-wt88047.dt.yaml
	arch/arm/boot/dts/qcom-msm8916-samsung-serranove.dt.yaml

usb@78d9000: reset-names:0: 'usb' was expected
	arch/arm64/boot/dts/qcom/apq8016-sbc.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-alcatel-idol347.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-asus-z00l.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8910.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-mtp.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a3u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a5u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-serranove.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-wingtech-wt88047.dt.yaml
	arch/arm/boot/dts/qcom-msm8916-samsung-serranove.dt.yaml

usb@78d9000: srp-disable: True is not of type 'object'
	arch/arm64/boot/dts/qcom/apq8016-sbc.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-alcatel-idol347.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-asus-z00l.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8910.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-mtp.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a3u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a5u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-serranove.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-wingtech-wt88047.dt.yaml
	arch/arm/boot/dts/qcom-msm8916-samsung-serranove.dt.yaml

usb@78d9000: ulpi: 'compatible' is a required property
	arch/arm64/boot/dts/qcom/apq8016-sbc.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-alcatel-idol347.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-asus-z00l.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8910.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a3u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a5u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-serranove.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-wingtech-wt88047.dt.yaml
	arch/arm/boot/dts/qcom-msm8916-samsung-serranove.dt.yaml

usb@78d9000: ulpi: 'reg' is a required property
	arch/arm64/boot/dts/qcom/apq8016-sbc.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-alcatel-idol347.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-asus-z00l.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-longcheer-l8910.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a3u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-a5u-eur.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-samsung-serranove.dt.yaml
	arch/arm64/boot/dts/qcom/msm8916-wingtech-wt88047.dt.yaml
	arch/arm/boot/dts/qcom-msm8916-samsung-serranove.dt.yaml

usb@80080000: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/imx23-evk.dt.yaml
	arch/arm/boot/dts/imx23-olinuxino.dt.yaml
	arch/arm/boot/dts/imx23-sansa.dt.yaml
	arch/arm/boot/dts/imx23-stmp378x_devb.dt.yaml
	arch/arm/boot/dts/imx23-xfi3.dt.yaml
	arch/arm/boot/dts/imx28-apf28dev.dt.yaml
	arch/arm/boot/dts/imx28-apf28.dt.yaml
	arch/arm/boot/dts/imx28-apx4devkit.dt.yaml
	arch/arm/boot/dts/imx28-cfa10036.dt.yaml
	arch/arm/boot/dts/imx28-cfa10037.dt.yaml
	arch/arm/boot/dts/imx28-cfa10049.dt.yaml
	arch/arm/boot/dts/imx28-cfa10055.dt.yaml
	arch/arm/boot/dts/imx28-cfa10056.dt.yaml
	arch/arm/boot/dts/imx28-cfa10057.dt.yaml
	arch/arm/boot/dts/imx28-cfa10058.dt.yaml
	arch/arm/boot/dts/imx28-duckbill-2-485.dt.yaml
	arch/arm/boot/dts/imx28-duckbill-2.dt.yaml
	arch/arm/boot/dts/imx28-duckbill-2-enocean.dt.yaml
	arch/arm/boot/dts/imx28-duckbill-2-spi.dt.yaml
	arch/arm/boot/dts/imx28-duckbill.dt.yaml
	arch/arm/boot/dts/imx28-eukrea-mbmx283lc.dt.yaml
	arch/arm/boot/dts/imx28-eukrea-mbmx287lc.dt.yaml
	arch/arm/boot/dts/imx28-evk.dt.yaml
	arch/arm/boot/dts/imx28-m28cu3.dt.yaml
	arch/arm/boot/dts/imx28-m28evk.dt.yaml
	arch/arm/boot/dts/imx28-sps1.dt.yaml
	arch/arm/boot/dts/imx28-ts4600.dt.yaml
	arch/arm/boot/dts/imx28-tx28.dt.yaml
	arch/arm/boot/dts/imx28-xea.dt.yaml

usb@80090000: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/imx28-apf28dev.dt.yaml
	arch/arm/boot/dts/imx28-apf28.dt.yaml
	arch/arm/boot/dts/imx28-apx4devkit.dt.yaml
	arch/arm/boot/dts/imx28-cfa10036.dt.yaml
	arch/arm/boot/dts/imx28-cfa10037.dt.yaml
	arch/arm/boot/dts/imx28-cfa10049.dt.yaml
	arch/arm/boot/dts/imx28-cfa10055.dt.yaml
	arch/arm/boot/dts/imx28-cfa10056.dt.yaml
	arch/arm/boot/dts/imx28-cfa10057.dt.yaml
	arch/arm/boot/dts/imx28-cfa10058.dt.yaml
	arch/arm/boot/dts/imx28-duckbill-2-485.dt.yaml
	arch/arm/boot/dts/imx28-duckbill-2.dt.yaml
	arch/arm/boot/dts/imx28-duckbill-2-enocean.dt.yaml
	arch/arm/boot/dts/imx28-duckbill-2-spi.dt.yaml
	arch/arm/boot/dts/imx28-duckbill.dt.yaml
	arch/arm/boot/dts/imx28-eukrea-mbmx283lc.dt.yaml
	arch/arm/boot/dts/imx28-eukrea-mbmx287lc.dt.yaml
	arch/arm/boot/dts/imx28-evk.dt.yaml
	arch/arm/boot/dts/imx28-m28cu3.dt.yaml
	arch/arm/boot/dts/imx28-m28evk.dt.yaml
	arch/arm/boot/dts/imx28-sps1.dt.yaml
	arch/arm/boot/dts/imx28-ts4600.dt.yaml
	arch/arm/boot/dts/imx28-tx28.dt.yaml
	arch/arm/boot/dts/imx28-xea.dt.yaml

usb@e0002000: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/zynq-cc108.dt.yaml
	arch/arm/boot/dts/zynq-ebaz4205.dt.yaml
	arch/arm/boot/dts/zynq-microzed.dt.yaml
	arch/arm/boot/dts/zynq-parallella.dt.yaml
	arch/arm/boot/dts/zynq-zc702.dt.yaml
	arch/arm/boot/dts/zynq-zc706.dt.yaml
	arch/arm/boot/dts/zynq-zc770-xm010.dt.yaml
	arch/arm/boot/dts/zynq-zc770-xm011.dt.yaml
	arch/arm/boot/dts/zynq-zc770-xm012.dt.yaml
	arch/arm/boot/dts/zynq-zc770-xm013.dt.yaml
	arch/arm/boot/dts/zynq-zed.dt.yaml
	arch/arm/boot/dts/zynq-zturn.dt.yaml
	arch/arm/boot/dts/zynq-zturn-v5.dt.yaml
	arch/arm/boot/dts/zynq-zybo.dt.yaml
	arch/arm/boot/dts/zynq-zybo-z7.dt.yaml

usb@e0003000: compatible: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/zynq-cc108.dt.yaml
	arch/arm/boot/dts/zynq-ebaz4205.dt.yaml
	arch/arm/boot/dts/zynq-microzed.dt.yaml
	arch/arm/boot/dts/zynq-parallella.dt.yaml
	arch/arm/boot/dts/zynq-zc702.dt.yaml
	arch/arm/boot/dts/zynq-zc706.dt.yaml
	arch/arm/boot/dts/zynq-zc770-xm010.dt.yaml
	arch/arm/boot/dts/zynq-zc770-xm011.dt.yaml
	arch/arm/boot/dts/zynq-zc770-xm012.dt.yaml
	arch/arm/boot/dts/zynq-zc770-xm013.dt.yaml
	arch/arm/boot/dts/zynq-zed.dt.yaml
	arch/arm/boot/dts/zynq-zturn.dt.yaml
	arch/arm/boot/dts/zynq-zturn-v5.dt.yaml
	arch/arm/boot/dts/zynq-zybo.dt.yaml
	arch/arm/boot/dts/zynq-zybo-z7.dt.yaml

usb@f9a55000: adp-disable: True is not of type 'object'
	arch/arm/boot/dts/qcom-apq8074-dragonboard.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-samsung-klte.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-amami.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dt.yaml

usb@f9a55000: clock-names: ['iface', 'core'] is not of type 'object'
	arch/arm/boot/dts/qcom-apq8074-dragonboard.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-samsung-klte.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-amami.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dt.yaml

usb@f9a55000: clocks: [[23, 263], [23, 265]] is too long
	arch/arm/boot/dts/qcom-apq8074-dragonboard.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-samsung-klte.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-amami.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dt.yaml

usb@f9a55000: clocks: Additional items are not allowed ([23, 265] was unexpected)
	arch/arm/boot/dts/qcom-apq8074-dragonboard.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-samsung-klte.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-amami.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dt.yaml

usb@f9a55000: hnp-disable: True is not of type 'object'
	arch/arm/boot/dts/qcom-apq8074-dragonboard.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-samsung-klte.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-amami.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dt.yaml

usb@f9a55000: phy-select: [[34, 45056, 0]] is not of type 'object'
	arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dt.yaml

usb@f9a55000: phy-select: [[36, 45056, 1]] is not of type 'object'
	arch/arm/boot/dts/qcom-apq8074-dragonboard.dt.yaml

usb@f9a55000: phy-select: [[37, 45056, 0]] is not of type 'object'
	arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-amami.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dt.yaml

usb@f9a55000: phy-select: [[43, 45056, 0]] is not of type 'object'
	arch/arm/boot/dts/qcom-msm8974-samsung-klte.dt.yaml

usb@f9a55000: phy-select: [[45, 45056, 0]] is not of type 'object'
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dt.yaml

usb@f9a55000: reg: [[4188360704, 512], [4188361216, 512]] is too long
	arch/arm/boot/dts/qcom-apq8074-dragonboard.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-samsung-klte.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-amami.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dt.yaml

usb@f9a55000: #reset-cells: [[1]] is not of type 'object'
	arch/arm/boot/dts/qcom-apq8074-dragonboard.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-samsung-klte.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-amami.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dt.yaml

usb@f9a55000: reset-names:0: 'usb' was expected
	arch/arm/boot/dts/qcom-apq8074-dragonboard.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-samsung-klte.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-amami.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dt.yaml

usb@f9a55000: srp-disable: True is not of type 'object'
	arch/arm/boot/dts/qcom-apq8074-dragonboard.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-samsung-klte.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-amami.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dt.yaml

usb@f9a55000: ulpi: 'compatible' is a required property
	arch/arm/boot/dts/qcom-apq8074-dragonboard.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-samsung-klte.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-amami.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dt.yaml

usb@f9a55000: ulpi: 'reg' is a required property
	arch/arm/boot/dts/qcom-apq8074-dragonboard.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-samsung-klte.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-amami.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dt.yaml
	arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dt.yaml


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/4] dt-bindings: usb: chipidea: Convert to json-schema
  2021-12-09 16:53 [PATCH 1/4] dt-bindings: usb: chipidea: Convert to json-schema Thierry Reding
                   ` (3 preceding siblings ...)
  2021-12-09 20:55 ` [PATCH 1/4] dt-bindings: usb: chipidea: Convert to json-schema Rob Herring
@ 2021-12-15 19:25 ` Rob Herring
  2021-12-16 16:12   ` Thierry Reding
  4 siblings, 1 reply; 12+ messages in thread
From: Rob Herring @ 2021-12-15 19:25 UTC (permalink / raw)
  To: Thierry Reding
  Cc: Greg Kroah-Hartman, Peter Chen, Nagarjuna Kristam, JC Kuo,
	devicetree, linux-tegra, linux-usb

On Thu, Dec 09, 2021 at 05:53:36PM +0100, Thierry Reding wrote:
> From: Thierry Reding <treding@nvidia.com>
> 
> Convert the ChipIdea USB2 bindings from the free-form text format to
> json-schema.
> 
> Signed-off-by: Thierry Reding <treding@nvidia.com>
> ---
>  .../bindings/usb/chipidea,usb2.yaml           | 310 ++++++++++++++++++
>  .../devicetree/bindings/usb/ci-hdrc-usb2.txt  | 158 ---------
>  2 files changed, 310 insertions(+), 158 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/usb/chipidea,usb2.yaml
>  delete mode 100644 Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt
> 
> diff --git a/Documentation/devicetree/bindings/usb/chipidea,usb2.yaml b/Documentation/devicetree/bindings/usb/chipidea,usb2.yaml
> new file mode 100644
> index 000000000000..0e36259f23ba
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/usb/chipidea,usb2.yaml
> @@ -0,0 +1,310 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/usb/chipidea,usb2.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: USB2 ChipIdea USB controller for ci13xxx
> +
> +maintainers:
> +  - Peter Chen <peter.chen@freescale.com>

This should have a reference to usb-drd.yaml I think.

> +
> +properties:
> +  compatible:
> +    oneOf:
> +      - enum:
> +          - fsl,imx23-usb
> +          - fsl,imx27-usb
> +          - fsl,imx28-usb
> +          - fsl,imx6q-usb
> +          - fsl,imx6sl-usb
> +          - fsl,imx6sx-usb
> +          - fsl,imx6ul-usb
> +          - fsl,imx7d-usb
> +          - fsl,imx7ulp-usb
> +          - lsi,zevio-usb
> +          - qcom,ci-hdrc
> +          - chipidea,usb2
> +          - xlnx,zynq-usb-2.20a
> +          - nvidia,tegra20-udc
> +          - nvidia,tegra30-udc
> +          - nvidia,tegra114-udc
> +          - nvidia,tegra124-udc
> +      - items:
> +          - const: fsl,imx6q-usb
> +          - const: fsl,imx27-usb
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  phy_type:
> +    $ref: /schemas/types.yaml#/definitions/string
> +    description: The type of the PHY connected to the core. Without this property the PORTSC
> +      register won't be touched.
> +    enum:
> +      - utmi
> +      - utmi_wide
> +      - ulpi
> +      - serial
> +      - hsic
> +
> +  dr_mode:
> +    $ref: /schemas/types.yaml#/definitions/string
> +    description: dual-role mode of the interface
> +    enum:
> +      - host
> +      - peripheral
> +      - otg
> +    default:
> +      const: otg
> +
> +  clocks:
> +    items:
> +      - description: reference to the USB clock

From the report, i.MX needs 3 clocks.

> +
> +  resets:
> +    items:
> +      - description: reference to the USB reset
> +
> +  reset-names:
> +    items:
> +      - const: usb
> +
> +  phys:
> +    items:
> +      - description: reference to the USB PHY
> +
> +  phy-names:
> +    items:
> +      - const: usb-phy
> +
> +  vbus-supply:
> +    description: reference to the VBUS regulator
> +
> +  maximum-speed:
> +    description: limit the maximum connection speed to "full-speed".
> +
> +  tpl-support:
> +    description: TPL (Targeted Peripheral List) feature for targeted hosts
> +
> +  itc-setting:
> +    description: Interrupt threshold control register control, the setting should be aligned with
> +      ITC bits at register USBCMD.
> +
> +  ahb-burst-config:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: This vendor-dependent property is used to change the AHB burst configuration and
> +      should be aligned with AHBBRST at SBUSCFG. See the ChipIdea specification for the details on
> +      each of those values. If this property does not exist, the reset value will be used.
> +    minimum: 0
> +    maximum: 7
> +
> +  tx-burst-size-dword:
> +    description: This vendor-dependent property is used to configure the TX burst size (in 32-bit
> +      words). The value represents the maximum length of a burst while moving data from system
> +      memory to the USB bus. This property takes effect only if the "ahb-burst-config" property is
> +      set to 0. If this property is missing the reset default of the hardware implementation will
> +      be used.
> +
> +  rx-burst-size-dword:
> +    description: This vendor-dependent property is used to configure the RX burst size (in 32-bit
> +      words). This value represents the maximum length of a burst while moving data from the USB
> +      bus to system memory. This property takes effect only if the "ahb-burst-config" property is
> +      set to 0. If this property is missing the reset default of the hardware implementation will
> +      be used.
> +
> +  extcon:
> +    description: A list of phandles to external connector devices. The first phandle should point
> +      to the external connector which provides "USB" cable events. The second should point to the
> +      external connector device that provide "USB-HOST" cable events. If one of the external
> +      connector devices is not required, an empty phandle (0) should be specified.
> +
> +  phy-clkgate-delay-us:
> +    description: The delay time (in microseconds) between putting the PHY into low power mode and
> +      gating the PHY clock.
> +
> +  non-zero-ttctrl-ttha:
> +    description: |
> +      After setting this property, the value of register ttctrl.ttha will be 0x7f; if not, the
> +      value will be 0x0 (the default). The value for this property needs to be chosen very
> +      carefully after consulting with your IC engineer.
> +
> +      On most ChipIdea platforms, the "usage_tt" flag at RTL is 0, so this property only affects
> +      siTD.
> +
> +      If this property is not set, the maximum packet size is 1023 bytes, and if the total packet
> +      size for previous transactions is more than 256 bytes, no further transactions can be
> +      accepted within the frame. The use case is single transaction, but higher frame rate.
> +
> +      If this property is set, the maximum packet size is limited to 188 bytes and more
> +      transactions than in the above case can be handled. Transactions will be accepted as long as
> +      188 bytes or more of space are left within a frame. Software needs to make sure it does not
> +      send more than 90% maximum_periodic_data_per_frame. The use case is higher amount of
> +      transactions at the cost of a lower frame rate.
> +
> +  mux-controls:
> +    description: The mux control for toggling host/device output of this controller. It's expected
> +      that a mux state of 0 indicates device mode and a mux state of 1 indicates host mode.
> +
> +  mux-control-names:
> +    const: usb_switch
> +
> +  pinctrl-names:
> +    description: In case of HSIC-mode, "idle" and "active" pin modes are mandatory. In this case,
> +      the "idle" state needs to pull down the data and strobe pin and the "active" state needs to
> +      pull up the strobe pin.
> +    minItems: 1
> +    maxItems: 5
> +    items:
> +      enum:
> +        - default
> +        - host
> +        - device
> +        - idle # mandatory for HSIC
> +        - active # mandatory for HSIC
> +
> +  # i.MX specific properties
> +  fsl,usbmisc:
> +    $ref: /schemas/types.yaml#/definitions/phandle-array
> +    description: phandle to non-core register device, with one argument that indicate USB
> +      controller index.
> +
> +  disable-over-current:
> +    $ref: /schemas/types.yaml#/definitions/flag
> +    description: disable over current detect
> +
> +  over-current-active-low:
> +    $ref: /schemas/types.yaml#/definitions/flag
> +    description: Over-current signal polarity is active low. It's recommended to specify the
> +      over-current polarity.
> +
> +  over-current-active-high:
> +    $ref: /schemas/types.yaml#/definitions/flag
> +    description: Over-current signal polarity is active high. It's recommended to specify the
> +      over-current polarity.
> +
> +  power-active-high:
> +    $ref: /schemas/types.yaml#/definitions/flag
> +    description: power signal polarity is active high
> +
> +  external-vbus-divider:
> +    $ref: /schemas/types.yaml#/definitions/flag
> +    description: enables off-chip resistor divider for Vbus
> +
> +  samsung,picophy-pre-emp-curr-control:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: HS Transmitter Pre-Emphasis Current Control. This signal controls the amount of
> +      current sourced to the USB_OTG*_DP and USB_OTG*_DN pins after a J-to-K or K-to-J transition.
> +      Refer to the TXPREEMPAMPTUNE0 bits of register USBNC_n_PHY_CFG1 in the documentation for
> +      more details.
> +    minimum: 0
> +    maximum: 3
> +    default: 1
> +
> +  samsung,picophy-dc-vol-level-adjust:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: HS DC Voltage Level Adjustment. Adjust the high-speed transmitter DC level
> +      voltage. Refer to the TXVREFTUNE0 bits of register USBNC_n_PHY_CFG1 in the documentation for
> +      more details.
> +    minimum: 0
> +    maximum: 0xf
> +    default: 3
> +
> +  # NVIDIA Tegra specific properties
> +  nvidia,needs-double-reset:
> +    $ref: /schemas/types.yaml#/definitions/flag
> +    description: Specifies a workaround for the USB1 port that needs to be reset twice internally
> +      some Tegra devices.
> +
> +  # deprecated properties
> +  usb-phy:
> +    $ref: /schemas/types.yaml#/definitions/phandle
> +    description: phandle for the PHY device. Use "phys" instead.
> +    deprecated: true
> +
> +  fsl,usbphy:
> +    $ref: /schemas/types.yaml#/definitions/phandle
> +    description: phandle of usb phy that connects to the port. Use "phys" instead.
> +    deprecated: true
> +
> +  nvidia,phy:
> +    $ref: /schemas/types.yaml#/definitions/phandle
> +    description: phandle for the PHY device. Use "phys" instead.
> +    deprecated: true
> +

> +  # USB bus
> +  "#address-cells":
> +    const: 1
> +
> +  "#size-cells":
> +    const: 0

Covered by common schema (I think).

> +
> +patternProperties:
> +  "^pinctrl-[0-9]+$": true
> +
> +additionalProperties:
> +  $ref: usb-device.yaml

This is wrong as usb.device.yaml applies to child nodes.

> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +
> +dependencies:
> +  mux-control-names: [ mux-controls ]
> +
> +examples:
> +  - |
> +    #include <dt-bindings/clock/berlin2.h>
> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> +    usb@f7ed0000 {
> +      compatible = "chipidea,usb2";
> +      reg = <0xf7ed0000 0x10000>;
> +      interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
> +      clocks = <&chip CLKID_USB0>;
> +      phys = <&usb_phy0>;
> +      phy-names = "usb-phy";
> +      vbus-supply = <&reg_usb0_vbus>;
> +      itc-setting = <0x4>; /* 4 micro-frames */
> +      /* Incremental burst of unspecified length */
> +      ahb-burst-config = <0x0>;
> +      tx-burst-size-dword = <0x10>; /* 64 bytes */
> +      rx-burst-size-dword = <0x10>;
> +      extcon = <0>, <&usb_id>;
> +      phy-clkgate-delay-us = <400>;
> +      mux-controls = <&usb_switch>;
> +      mux-control-names = "usb_switch";
> +    };
> +
> +  # HSIC
> +  - |
> +    #include <dt-bindings/clock/imx6qdl-clock.h>
> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> +    usb@2184400 {
> +      compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
> +      reg = <0x02184400 0x200>;
> +      interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
> +      clocks = <&clks IMX6QDL_CLK_USBOH3>;
> +      fsl,usbphy = <&usbphynop1>;
> +      fsl,usbmisc = <&usbmisc 2>;
> +      phy_type = "hsic";
> +      dr_mode = "host";
> +      ahb-burst-config = <0x0>;
> +      tx-burst-size-dword = <0x10>;
> +      rx-burst-size-dword = <0x10>;
> +      pinctrl-names = "idle", "active";
> +      pinctrl-0 = <&pinctrl_usbh2_idle>;
> +      pinctrl-1 = <&pinctrl_usbh2_active>;
> +      #address-cells = <1>;
> +      #size-cells = <0>;
> +
> +      usbnet: smsc@1 {
> +        compatible = "usb424,9730";
> +        reg = <1>;
> +      };
> +    };

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/4] dt-bindings: usb: tegra: Convert to json-schema
  2021-12-09 16:53 ` [PATCH 2/4] dt-bindings: usb: tegra: " Thierry Reding
  2021-12-09 20:55   ` Rob Herring
@ 2021-12-15 19:27   ` Rob Herring
  1 sibling, 0 replies; 12+ messages in thread
From: Rob Herring @ 2021-12-15 19:27 UTC (permalink / raw)
  To: Thierry Reding
  Cc: linux-tegra, Peter Chen, Rob Herring, linux-usb, devicetree,
	JC Kuo, Nagarjuna Kristam, Greg Kroah-Hartman

On Thu, 09 Dec 2021 17:53:37 +0100, Thierry Reding wrote:
> From: Thierry Reding <treding@nvidia.com>
> 
> Convert the old plain-text device tree bindings for the USB EHCI
> controller found on NVIDIA Tegra SoCs to the json-schema format.
> 
> Signed-off-by: Thierry Reding <treding@nvidia.com>
> 
> ---
> Changes in v2:
> - include usb-hcd.yaml and usb-drd.yaml
> - drop redundant phy_type property
> 
>  .../bindings/clock/nvidia,tegra124-car.yaml   |   5 +
>  .../bindings/clock/nvidia,tegra20-car.yaml    |   5 +
>  .../bindings/usb/nvidia,tegra20-ehci.txt      |  23 ---
>  .../bindings/usb/nvidia,tegra20-ehci.yaml     | 156 ++++++++++++++++++
>  4 files changed, 166 insertions(+), 23 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt
>  create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.yaml
> 

Reviewed-by: Rob Herring <robh@kernel.org>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 3/4] dt-bindings: usb: tegra-xusb: Convert to json-schema
  2021-12-09 16:53 ` [PATCH 3/4] dt-bindings: usb: tegra-xusb: " Thierry Reding
  2021-12-09 20:55   ` Rob Herring
@ 2021-12-15 19:48   ` Rob Herring
  1 sibling, 0 replies; 12+ messages in thread
From: Rob Herring @ 2021-12-15 19:48 UTC (permalink / raw)
  To: Thierry Reding
  Cc: Greg Kroah-Hartman, Peter Chen, Nagarjuna Kristam, JC Kuo,
	devicetree, linux-tegra, linux-usb

On Thu, Dec 09, 2021 at 05:53:38PM +0100, Thierry Reding wrote:
> From: Thierry Reding <treding@nvidia.com>
> 
> Convert the Tegra XUSB controller bindings from the free-form text
> format to json-schema.

Seems like the dtbs_check warnings need to be addressed.

> 
> Signed-off-by: Thierry Reding <treding@nvidia.com>
> ---
>  .../bindings/usb/nvidia,tegra124-xusb.txt     | 132 -----------
>  .../bindings/usb/nvidia,tegra124-xusb.yaml    | 201 +++++++++++++++++
>  .../bindings/usb/nvidia,tegra186-xusb.yaml    | 182 +++++++++++++++
>  .../bindings/usb/nvidia,tegra194-xusb.yaml    | 188 ++++++++++++++++
>  .../bindings/usb/nvidia,tegra210-xusb.yaml    | 210 ++++++++++++++++++
>  5 files changed, 781 insertions(+), 132 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.txt
>  create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.yaml
>  create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra186-xusb.yaml
>  create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra194-xusb.yaml
>  create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra210-xusb.yaml


> diff --git a/Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.yaml b/Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.yaml
> new file mode 100644
> index 000000000000..0b636a3b918b
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.yaml
> @@ -0,0 +1,201 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/usb/nvidia,tegra124-xusb.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: NVIDIA Tegra124 xHCI controller
> +
> +maintainers:
> +  - Thierry Reding <thierry.reding@gmail.com>
> +  - Jon Hunter <jonathanh@nvidia.com>
> +
> +description: The Tegra xHCI controller supports both USB2 and USB3 interfaces exposed by the Tegra
> +  XUSB pad controller.
> +
> +properties:
> +  # required
> +  compatible:
> +    oneOf:
> +      - description: NVIDIA Tegra124
> +        const: nvidia,tegra124-xusb
> +
> +      - description: NVIDIA Tegra132
> +        items:
> +          - const: nvidia,tegra132-xusb
> +          - const: nvidia,tegra124-xusb
> +
> +  reg:
> +    items:
> +      - description: base and length of the xHCI host registers
> +      - description: base and length of the XUSB FPCI registers
> +      - description: base and length of the XUSB IPFS registers
> +
> +  reg-names:
> +    items:
> +      - const: hcd
> +      - const: fpci
> +      - const: ipfs
> +
> +  interrupts:
> +    items:
> +      - description: xHCI host interrupt
> +      - description: mailbox interrupt
> +
> +  clocks:
> +    items:
> +      - description: XUSB host clock
> +      - description: XUSB host source clock
> +      - description: XUSB Falcon source clock
> +      - description: XUSB SuperSpeed clock
> +      - description: XUSB SuperSpeed clock divider
> +      - description: XUSB SuperSpeed source clock
> +      - description: XUSB HighSpeed clock source
> +      - description: XUSB FullSpeed clock source
> +      - description: USB PLL
> +      - description: reference clock
> +      - description: I/O PLL
> +
> +  clock-names:
> +    items:
> +      - const: xusb_host
> +      - const: xusb_host_src
> +      - const: xusb_falcon_src
> +      - const: xusb_ss
> +      - const: xusb_ss_div2
> +      - const: xusb_ss_src
> +      - const: xusb_hs_src
> +      - const: xusb_fs_src
> +      - const: pll_u_480m
> +      - const: clk_m
> +      - const: pll_e
> +
> +  resets:
> +    items:
> +      - description: reset for the XUSB host controller
> +      - description: reset for the SuperSpeed logic
> +      - description: shared reset for xusb_{ss,hs,fs,falcon,host}_src.
> +
> +  reset-names:
> +    items:
> +      - const: xusb_host
> +      - const: xusb_ss
> +      - const: xusb_src
> +
> +  nvidia,xusb-padctl:
> +    $ref: /schemas/types.yaml#/definitions/phandle
> +    description: phandle to the XUSB pad controller that is used to configure
> +      the USB pads used by the XHCI controller
> +
> +  # optional
> +  phys:
> +    description: Must contain an entry for each entry in phy-names. See
> +      ../phy/phy-bindings.txt for details.

Drop generic descriptions.

> +
> +  phy-names:
> +    description: Should include an entry for each PHY used by the controller.
> +    contains:
> +      anyOf:
> +        - const: usb2-0
> +        - const: usb2-1
> +        - const: usb2-2
> +        - const: hsic-0
> +        - const: hsic-1
> +        - const: usb3-0
> +        - const: usb3-1

Can you at least do:

minItems: 1
maxItems: ??
items:
  enum:
    - the list above...

> +
> +  avddio-pex-supply:
> +    description: PCIe/USB3 analog logic power supply. Must supply 1.05 V.
> +
> +  dvddio-pex-supply:
> +    description: PCIe/USB3 digital logic power supply. Must supply 1.05 V.
> +
> +  avdd-usb-supply:
> +    description: USB controller power supply. Must supply 3.3 V.
> +
> +  avdd-pll-utmip-supply:
> +    description: UTMI PLL power supply. Must supply 1.8 V.
> +
> +  avdd-pll-erefe-supply:
> +    description: PLLE reference PLL power supply. Must supply 1.05 V.
> +
> +  avdd-usb-ss-pll-supply:
> +    description: PCIe/USB3 PLL power supply. Must supply 1.05 V.
> +
> +  hvdd-usb-ss-supply:
> +    description: High-voltage PCIe/USB3 power supply. Must supply 3.3 V.
> +
> +  hvdd-usb-ss-pll-e-supply:
> +    description: High-voltage PLLE power supply. Must supply 3.3 V.
> +
> +allOf:
> +  - $ref: usb-xhci.yaml
> +
> +unevaluatedProperties: false
> +
> +required:
> +  - compatible
> +  - reg
> +  - reg-names
> +  - interrupts
> +  - clocks
> +  - clock-names
> +  - resets
> +  - reset-names
> +  - nvidia,xusb-padctl
> +  - phys
> +  - phy-names
> +  - avddio-pex-supply
> +  - dvddio-pex-supply
> +  - avdd-usb-supply
> +  - hvdd-usb-ss-supply
> +
> +examples:
> +  - |
> +    #include <dt-bindings/clock/tegra124-car.h>
> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> +    usb@70090000 {
> +        compatible = "nvidia,tegra124-xusb";
> +        reg = <0x70090000 0x8000>,
> +              <0x70098000 0x1000>,
> +              <0x70099000 0x1000>;
> +        reg-names = "hcd", "fpci", "ipfs";
> +
> +        interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
> +                     <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
> +
> +        clocks = <&tegra_car TEGRA124_CLK_XUSB_HOST>,
> +                 <&tegra_car TEGRA124_CLK_XUSB_HOST_SRC>,
> +                 <&tegra_car TEGRA124_CLK_XUSB_FALCON_SRC>,
> +                 <&tegra_car TEGRA124_CLK_XUSB_SS>,
> +                 <&tegra_car TEGRA124_CLK_XUSB_SS_DIV2>,
> +                 <&tegra_car TEGRA124_CLK_XUSB_SS_SRC>,
> +                 <&tegra_car TEGRA124_CLK_XUSB_HS_SRC>,
> +                 <&tegra_car TEGRA124_CLK_XUSB_FS_SRC>,
> +                 <&tegra_car TEGRA124_CLK_PLL_U_480M>,
> +                 <&tegra_car TEGRA124_CLK_CLK_M>,
> +                 <&tegra_car TEGRA124_CLK_PLL_E>;
> +        clock-names = "xusb_host", "xusb_host_src", "xusb_falcon_src",
> +                      "xusb_ss", "xusb_ss_div2", "xusb_ss_src",
> +                      "xusb_hs_src", "xusb_fs_src", "pll_u_480m",
> +                      "clk_m", "pll_e";
> +        resets = <&tegra_car 89>, <&tegra_car 156>, <&tegra_car 143>;
> +        reset-names = "xusb_host", "xusb_ss", "xusb_src";
> +
> +        nvidia,xusb-padctl = <&padctl>;
> +
> +        phys = <&{/padctl@0,7009f000/pads/usb2/lanes/usb2-1}>, /* mini-PCIe USB */
> +               <&{/padctl@0,7009f000/pads/usb2/lanes/usb2-2}>, /* USB A */
> +               <&{/padctl@0,7009f000/pads/pcie/lanes/pcie-0}>; /* USB A */
> +        phy-names = "usb2-1", "usb2-2", "usb3-0";
> +
> +        avddio-pex-supply = <&vdd_1v05_run>;
> +        dvddio-pex-supply = <&vdd_1v05_run>;
> +        avdd-usb-supply = <&vdd_3v3_lp0>;
> +        avdd-pll-utmip-supply = <&vddio_1v8>;
> +        avdd-pll-erefe-supply = <&avdd_1v05_run>;
> +        avdd-usb-ss-pll-supply = <&vdd_1v05_run>;
> +        hvdd-usb-ss-supply = <&vdd_3v3_lp0>;
> +        hvdd-usb-ss-pll-e-supply = <&vdd_3v3_lp0>;
> +    };
> diff --git a/Documentation/devicetree/bindings/usb/nvidia,tegra186-xusb.yaml b/Documentation/devicetree/bindings/usb/nvidia,tegra186-xusb.yaml
> new file mode 100644
> index 000000000000..4d896ac2afe5
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/usb/nvidia,tegra186-xusb.yaml
> @@ -0,0 +1,182 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/usb/nvidia,tegra186-xusb.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: NVIDIA Tegra186 xHCI controller
> +
> +maintainers:
> +  - Thierry Reding <thierry.reding@gmail.com>
> +  - Jon Hunter <jonathanh@nvidia.com>
> +
> +description: The Tegra xHCI controller supports both USB2 and USB3 interfaces exposed by the Tegra
> +  XUSB pad controller.
> +

Needs a reference to usb-xhci.yaml.

> +properties:
> +  compatible:
> +    const: nvidia,tegra186-xusb
> +
> +  reg:
> +    items:
> +      - description: base and length of the xHCI host registers
> +      - description: base and length of the XUSB FPCI registers
> +
> +  reg-names:
> +    items:
> +      - const: hcd
> +      - const: fpci
> +
> +  interrupts:
> +    items:
> +      - description: xHCI host interrupt
> +      - description: mailbox interrupt
> +
> +  clocks:
> +    items:
> +      - description: XUSB host clock
> +      - description: XUSB Falcon source clock
> +      - description: XUSB SuperSpeed clock
> +      - description: XUSB SuperSpeed source clock
> +      - description: XUSB HighSpeed clock source
> +      - description: XUSB FullSpeed clock source
> +      - description: USB PLL
> +      - description: reference clock
> +      - description: I/O PLL
> +
> +  clock-names:
> +    items:
> +      - const: xusb_host
> +      - const: xusb_falcon_src
> +      - const: xusb_ss
> +      - const: xusb_ss_src
> +      - const: xusb_hs_src
> +      - const: xusb_fs_src
> +      - const: pll_u_480m
> +      - const: clk_m
> +      - const: pll_e
> +
> +  interconnects:
> +    items:
> +      - description: read client
> +      - description: write client
> +
> +  interconnect-names:
> +    items:
> +      - const: dma-mem # read
> +      - const: write
> +
> +  iommus:
> +    maxItems: 1
> +
> +  nvidia,xusb-padctl:
> +    $ref: /schemas/types.yaml#/definitions/phandle
> +    description: phandle to the XUSB pad controller that is used to configure the USB pads used by
> +      the XHCI controller
> +
> +  phys:
> +    minItems: 1
> +    maxItems: 7
> +
> +  phy-names:
> +    contains:
> +      anyOf:
> +        - const: usb2-0
> +        - const: usb2-1
> +        - const: usb2-2
> +        - const: hsic-0
> +        - const: usb3-0
> +        - const: usb3-1
> +        - const: usb3-2
> +
> +  power-domains:
> +    description: A list of PM domain specifiers that reference each power-domain used by the xHCI
> +      controller. This list must comprise of a specifier for the XUSBA and XUSBC power-domains.
> +      See ../power/power_domain.txt and ../arm/tegra/nvidia,tegra20-pmc.txt for details.
> +    items:
> +      - description: XUSBC power domain
> +      - description: XUSBA power domain
> +
> +  power-domain-names:
> +    description: A list of names that represent each of the specifiers in the 'power-domains'
> +      property. See ../power/power_domain.txt for details.
> +    items:
> +      - const: xusb_host
> +      - const: xusb_ss
> +
> +  dvddio-pex-supply:
> +    description: PCIe/USB3 analog logic power supply. Must supply 1.05 V.
> +
> +  hvddio-pex-supply:
> +    description: High-voltage PCIe/USB3 power supply. Must supply 1.8 V.
> +
> +  avdd-usb-supply:
> +    description: USB controller power supply. Must supply 3.3 V.
> +
> +  avdd-pll-utmip-supply:
> +    description: UTMI PLL power supply. Must supply 1.8 V.
> +
> +  avdd-pll-uerefe-supply:
> +    description: PLLE reference PLL power supply. Must supply 1.05 V.
> +
> +  dvdd-usb-ss-pll-supply:
> +    description: PCIe/USB3 PLL power supply. Must supply 1.05 V.
> +
> +  hvdd-usb-ss-pll-e-supply:
> +    description: High-voltage PLLE power supply. Must supply 1.8 V.
> +
> +  # USB bus
> +  "#address-cells":
> +    const: 1
> +
> +  "#size-cells":
> +    const: 0
> +
> +additionalProperties:
> +  description: USB device nodes
> +  type: object
> +
> +examples:
> +  - |
> +    #include <dt-bindings/clock/tegra186-clock.h>
> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> +    #include <dt-bindings/memory/tegra186-mc.h>
> +    #include <dt-bindings/power/tegra186-powergate.h>
> +    #include <dt-bindings/reset/tegra186-reset.h>
> +
> +    usb@3530000 {
> +        compatible = "nvidia,tegra186-xusb";
> +        reg = <0x03530000 0x8000>,
> +              <0x03538000 0x1000>;
> +        reg-names = "hcd", "fpci";
> +        interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
> +                     <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
> +        clocks = <&bpmp TEGRA186_CLK_XUSB_HOST>,
> +                 <&bpmp TEGRA186_CLK_XUSB_FALCON>,
> +                 <&bpmp TEGRA186_CLK_XUSB_SS>,
> +                 <&bpmp TEGRA186_CLK_XUSB_CORE_SS>,
> +                 <&bpmp TEGRA186_CLK_CLK_M>,
> +                 <&bpmp TEGRA186_CLK_XUSB_FS>,
> +                 <&bpmp TEGRA186_CLK_PLLU>,
> +                 <&bpmp TEGRA186_CLK_CLK_M>,
> +                 <&bpmp TEGRA186_CLK_PLLE>;
> +        clock-names = "xusb_host", "xusb_falcon_src", "xusb_ss",
> +                      "xusb_ss_src", "xusb_hs_src", "xusb_fs_src",
> +                      "pll_u_480m", "clk_m", "pll_e";
> +        power-domains = <&bpmp TEGRA186_POWER_DOMAIN_XUSBC>,
> +                        <&bpmp TEGRA186_POWER_DOMAIN_XUSBA>;
> +        power-domain-names = "xusb_host", "xusb_ss";
> +        interconnects = <&mc TEGRA186_MEMORY_CLIENT_XUSB_HOSTR &emc>,
> +                        <&mc TEGRA186_MEMORY_CLIENT_XUSB_HOSTW &emc>;
> +        interconnect-names = "dma-mem", "write";
> +        iommus = <&smmu TEGRA186_SID_XUSB_HOST>;
> +        nvidia,xusb-padctl = <&padctl>;
> +
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        phys = <&{/padctl@3520000/pads/usb2/lanes/usb2-0}>,
> +               <&{/padctl@3520000/pads/usb2/lanes/usb2-1}>,
> +               <&{/padctl@3520000/pads/usb3/lanes/usb3-0}>;
> +        phy-names = "usb2-0", "usb2-1", "usb3-0";
> +    };

Similar comments on the rest.

Rob

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/4] dt-bindings: usb: chipidea: Convert to json-schema
  2021-12-15 19:25 ` Rob Herring
@ 2021-12-16 16:12   ` Thierry Reding
  0 siblings, 0 replies; 12+ messages in thread
From: Thierry Reding @ 2021-12-16 16:12 UTC (permalink / raw)
  To: Rob Herring
  Cc: Greg Kroah-Hartman, Peter Chen, Nagarjuna Kristam, JC Kuo,
	devicetree, linux-tegra, linux-usb

[-- Attachment #1: Type: text/plain, Size: 3825 bytes --]

On Wed, Dec 15, 2021 at 01:25:08PM -0600, Rob Herring wrote:
> On Thu, Dec 09, 2021 at 05:53:36PM +0100, Thierry Reding wrote:
> > From: Thierry Reding <treding@nvidia.com>
> > 
> > Convert the ChipIdea USB2 bindings from the free-form text format to
> > json-schema.
> > 
> > Signed-off-by: Thierry Reding <treding@nvidia.com>
> > ---
> >  .../bindings/usb/chipidea,usb2.yaml           | 310 ++++++++++++++++++
> >  .../devicetree/bindings/usb/ci-hdrc-usb2.txt  | 158 ---------
> >  2 files changed, 310 insertions(+), 158 deletions(-)
> >  create mode 100644 Documentation/devicetree/bindings/usb/chipidea,usb2.yaml
> >  delete mode 100644 Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt
> > 
> > diff --git a/Documentation/devicetree/bindings/usb/chipidea,usb2.yaml b/Documentation/devicetree/bindings/usb/chipidea,usb2.yaml
> > new file mode 100644
> > index 000000000000..0e36259f23ba
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/usb/chipidea,usb2.yaml
> > @@ -0,0 +1,310 @@
> > +# SPDX-License-Identifier: GPL-2.0-only
> > +%YAML 1.2
> > +---
> > +$id: "http://devicetree.org/schemas/usb/chipidea,usb2.yaml#"
> > +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> > +
> > +title: USB2 ChipIdea USB controller for ci13xxx
> > +
> > +maintainers:
> > +  - Peter Chen <peter.chen@freescale.com>
> 
> This should have a reference to usb-drd.yaml I think.
> 
> > +
> > +properties:
> > +  compatible:
> > +    oneOf:
> > +      - enum:
> > +          - fsl,imx23-usb
> > +          - fsl,imx27-usb
> > +          - fsl,imx28-usb
> > +          - fsl,imx6q-usb
> > +          - fsl,imx6sl-usb
> > +          - fsl,imx6sx-usb
> > +          - fsl,imx6ul-usb
> > +          - fsl,imx7d-usb
> > +          - fsl,imx7ulp-usb
> > +          - lsi,zevio-usb
> > +          - qcom,ci-hdrc
> > +          - chipidea,usb2
> > +          - xlnx,zynq-usb-2.20a
> > +          - nvidia,tegra20-udc
> > +          - nvidia,tegra30-udc
> > +          - nvidia,tegra114-udc
> > +          - nvidia,tegra124-udc
> > +      - items:
> > +          - const: fsl,imx6q-usb
> > +          - const: fsl,imx27-usb
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  interrupts:
> > +    maxItems: 1
> > +
> > +  phy_type:
> > +    $ref: /schemas/types.yaml#/definitions/string
> > +    description: The type of the PHY connected to the core. Without this property the PORTSC
> > +      register won't be touched.
> > +    enum:
> > +      - utmi
> > +      - utmi_wide
> > +      - ulpi
> > +      - serial
> > +      - hsic
> > +
> > +  dr_mode:
> > +    $ref: /schemas/types.yaml#/definitions/string
> > +    description: dual-role mode of the interface
> > +    enum:
> > +      - host
> > +      - peripheral
> > +      - otg
> > +    default:
> > +      const: otg
> > +
> > +  clocks:
> > +    items:
> > +      - description: reference to the USB clock
> 
> From the report, i.MX needs 3 clocks.

Okay, I'll look into that.

> > +  # USB bus
> > +  "#address-cells":
> > +    const: 1
> > +
> > +  "#size-cells":
> > +    const: 0
> 
> Covered by common schema (I think).

Yeah, so this can be both used in peripheral mode and host mode, so it
probably needs usb-hcd.yaml and usb-drd.yaml, and then #address-cells
and #size-cells will get pulled in.

> 
> > +
> > +patternProperties:
> > +  "^pinctrl-[0-9]+$": true
> > +
> > +additionalProperties:
> > +  $ref: usb-device.yaml
> 
> This is wrong as usb.device.yaml applies to child nodes.

Originally the idea behind this was that any additionalProperties would
have to be child nodes that represent hard-wired USB devices. Given the
above and that I'm now including usb-hcd.yaml here, this is taken care
of automatically.

Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2021-12-16 16:12 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-09 16:53 [PATCH 1/4] dt-bindings: usb: chipidea: Convert to json-schema Thierry Reding
2021-12-09 16:53 ` [PATCH 2/4] dt-bindings: usb: tegra: " Thierry Reding
2021-12-09 20:55   ` Rob Herring
2021-12-15 19:27   ` Rob Herring
2021-12-09 16:53 ` [PATCH 3/4] dt-bindings: usb: tegra-xusb: " Thierry Reding
2021-12-09 20:55   ` Rob Herring
2021-12-15 19:48   ` Rob Herring
2021-12-09 16:53 ` [PATCH 4/4] dt-bindings: usb: tegra-xudc: Document interconnects and iommus properties Thierry Reding
2021-12-09 17:14   ` Thierry Reding
2021-12-09 20:55 ` [PATCH 1/4] dt-bindings: usb: chipidea: Convert to json-schema Rob Herring
2021-12-15 19:25 ` Rob Herring
2021-12-16 16:12   ` Thierry Reding

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).