Commit 89b5a5a6 authored by Frank Li's avatar Frank Li Committed by Greg Kroah-Hartman
Browse files

dt-bindings: usb: Convert fsl-usb to yaml



Convert fsl-usb binding doc to yaml format.

Additional change:
- Remove port0 and port1 from required list.
- Use common usb-drd.yaml for dr_mode property
- Keep two difference examples.
- Add interrupts to required property list.
- Remove #address-cells and #size-cells in example.
- Use predefined irq type macro.

Signed-off-by: default avatarFrank Li <Frank.Li@nxp.com>
Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20240627144815.4014179-1-Frank.Li@nxp.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 6cbb7fc9
Loading
Loading
Loading
Loading
+95 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/usb/fsl,usb2.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Freescale SOC USB controllers

maintainers:
  - Frank Li <Frank.Li@nxp.com>

description: |
  The device node for a USB controller that is part of a Freescale
  SOC is as described in the document "Open Firmware Recommended
  Practice: Universal Serial Bus" with the following modifications
  and additions.

properties:
  compatible:
    oneOf:
      - enum:
          - fsl-usb2-mph
          - fsl-usb2-dr
      - items:
          - enum:
              - fsl-usb2-dr-v2.2
              - fsl-usb2-dr-v2.5
          - const: fsl-usb2-dr

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  phy_type:
    $ref: /schemas/types.yaml#/definitions/string
    enum: [ulpi, serial, utmi, utmi_wide]

  port0:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Indicates port0 is connected for fsl-usb2-mph compatible controllers.

  port1:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Indicates port1 is connected for "fsl-usb2-mph" compatible controllers.

  fsl,invert-drvvbus:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      for MPC5121 USB0 only. Indicates the
      port power polarity of internal PHY signal DRVVBUS is inverted.

  fsl,invert-pwr-fault:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      for MPC5121 USB0 only. Indicates
      the PWR_FAULT signal polarity is inverted.

required:
  - compatible
  - reg
  - interrupts
  - phy_type

allOf:
  - $ref: usb-drd.yaml#

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>

    usb@22000 {
        compatible = "fsl-usb2-mph";
        reg = <22000 1000>;
        interrupts = <27 IRQ_TYPE_EDGE_RISING>;
        phy_type = "ulpi";
        port0;
        port1;
    };

  - |
    #include <dt-bindings/interrupt-controller/irq.h>

    usb@23000 {
        compatible = "fsl-usb2-dr";
        reg = <23000 1000>;
        interrupts = <26 IRQ_TYPE_EDGE_RISING>;
        dr_mode = "otg";
        phy_type = "ulpi";
    };
+0 −81
Original line number Diff line number Diff line
Freescale SOC USB controllers

The device node for a USB controller that is part of a Freescale
SOC is as described in the document "Open Firmware Recommended
Practice : Universal Serial Bus" with the following modifications
and additions :

Required properties :
 - compatible : Should be "fsl-usb2-mph" for multi port host USB
   controllers, or "fsl-usb2-dr" for dual role USB controllers
   or "fsl,mpc5121-usb2-dr" for dual role USB controllers of MPC5121.
   Wherever applicable, the IP version of the USB controller should
   also be mentioned (for eg. fsl-usb2-dr-v2.2 for bsc9132).
 - phy_type : For multi port host USB controllers, should be one of
   "ulpi", or "serial". For dual role USB controllers, should be
   one of "ulpi", "utmi", "utmi_wide", or "serial".
 - reg : Offset and length of the register set for the device
 - port0 : boolean; if defined, indicates port0 is connected for
   fsl-usb2-mph compatible controllers.  Either this property or
   "port1" (or both) must be defined for "fsl-usb2-mph" compatible
   controllers.
 - port1 : boolean; if defined, indicates port1 is connected for
   fsl-usb2-mph compatible controllers.  Either this property or
   "port0" (or both) must be defined for "fsl-usb2-mph" compatible
   controllers.
 - dr_mode : indicates the working mode for "fsl-usb2-dr" compatible
   controllers.  Can be "host", "peripheral", or "otg".  Default to
   "host" if not defined for backward compatibility.

Recommended properties :
 - interrupts : <a b> where a is the interrupt number and b is a
   field that represents an encoding of the sense and level
   information for the interrupt.  This should be encoded based on
   the information in section 2) depending on the type of interrupt
   controller you have.

Optional properties :
 - fsl,invert-drvvbus : boolean; for MPC5121 USB0 only. Indicates the
   port power polarity of internal PHY signal DRVVBUS is inverted.
 - fsl,invert-pwr-fault : boolean; for MPC5121 USB0 only. Indicates
   the PWR_FAULT signal polarity is inverted.

Example multi port host USB controller device node :
	usb@22000 {
		compatible = "fsl-usb2-mph";
		reg = <22000 1000>;
		#address-cells = <1>;
		#size-cells = <0>;
		interrupt-parent = <700>;
		interrupts = <27 1>;
		phy_type = "ulpi";
		port0;
		port1;
	};

Example dual role USB controller device node :
	usb@23000 {
		compatible = "fsl-usb2-dr";
		reg = <23000 1000>;
		#address-cells = <1>;
		#size-cells = <0>;
		interrupt-parent = <700>;
		interrupts = <26 1>;
		dr_mode = "otg";
		phy = "ulpi";
	};

Example dual role USB controller device node for MPC5121ADS:

	usb@4000 {
		compatible = "fsl,mpc5121-usb2-dr";
		reg = <0x4000 0x1000>;
		#address-cells = <1>;
		#size-cells = <0>;
		interrupt-parent = < &ipic >;
		interrupts = <44 0x8>;
		dr_mode = "otg";
		phy_type = "utmi_wide";
		fsl,invert-drvvbus;
		fsl,invert-pwr-fault;
	};