Commit ca681aa4 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge tag 'usb-for-v5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-next



Felipe writes:

USB: changes for v5.8 merge window

Rather busy cycle. We have a total 99 non-merge commits going into v5.8
merge window. The majority of the changes are in dwc3 this around (31.7%
of all changes). It's composed mostly Thinh's recent updates to get dwc3
to behave correctly with stream transfers. We have also have Roger's for
Keystone platforms and Neil's updates for the meson glue layer.

Apart from those, we have the usual set of non-critical fixes, new
device IDs, spelling fixes all over the place.

Signed-off-by: default avatarFelipe Balbi <balbi@kernel.org>

* tag 'usb-for-v5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb: (99 commits)
  usb: dwc3: keystone: Turn on USB3 PHY before controller
  dt-bindings: usb: ti,keystone-dwc3.yaml: Add USB3.0 PHY property
  dt-bindings: usb: convert keystone-usb.txt to YAML
  usb: dwc3: gadget: Check for prepared TRBs
  usb: gadget: Fix issue with config_ep_by_speed function
  usb: cdns3: ep0: delete the redundant status stage
  usb: dwc2: Update Core Reset programming flow.
  usb: gadget: fsl: Fix a wrong judgment in fsl_udc_probe()
  usb: gadget: fix potential double-free in m66592_probe.
  usb: cdns3: Fix runtime PM imbalance on error
  usb: gadget: lpc32xx_udc: don't dereference ep pointer before null check
  usb: dwc3: Increase timeout for CmdAct cleared by device controller
  USB: dummy-hcd: use configurable endpoint naming scheme
  usb: cdns3: gadget: assign interrupt number to USB gadget structure
  usb: gadget: core: sync interrupt before unbind the udc
  arm64: dts: qcom: sc7180: Add interconnect properties for USB
  arm64: dts: qcom: sdm845: Add interconnect properties for USB
  dt-bindings: usb: qcom,dwc3: Introduce interconnect properties for Qualcomm DWC3 driver
  ARM: dts: at91: Remove the USB EP child node
  dt-bindings: usb: atmel: Mark EP child node as deprecated
  ...
parents 14f3a5cc 1c11e74e
Loading
Loading
Loading
Loading
+0 −31
Original line number Diff line number Diff line
* Amlogic Meson GXL and GXM USB3 PHY and OTG detection binding

Required properties:
- compatible:	Should be "amlogic,meson-gxl-usb3-phy"
- #phys-cells:	must be 0 (see phy-bindings.txt in this directory)
- reg:		The base address and length of the registers
- interrupts:	the interrupt specifier for the OTG detection
- clocks:	phandles to the clocks for
		- the USB3 PHY
		- and peripheral mode/OTG detection
- clock-names:	must contain "phy" and "peripheral"
- resets:	phandle to the reset lines for:
		- the USB3 PHY and
		- peripheral mode/OTG detection
- reset-names:	must contain "phy" and "peripheral"

Optional properties:
- phy-supply:	see phy-bindings.txt in this directory


Example:
	usb3_phy0: phy@78080 {
		compatible = "amlogic,meson-gxl-usb3-phy";
		#phy-cells = <0>;
		reg = <0x0 0x78080 0x0 0x20>;
		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&clkc CLKID_USB_OTG>, <&clkc_AO CLKID_AO_CEC_32K>;
		clock-names = "phy", "peripheral";
		resets = <&reset RESET_USB_OTG>, <&reset RESET_USB_OTG>;
		reset-names = "phy", "peripheral";
	};
+0 −42
Original line number Diff line number Diff line
Amlogic Meson GX DWC3 USB SoC controller

Required properties:
- compatible:	depending on the SoC this should contain one of:
			* amlogic,meson-axg-dwc3
			* amlogic,meson-gxl-dwc3
- clocks:	a handle for the "USB general" clock
- clock-names:	must be "usb_general"
- resets:	a handle for the shared "USB OTG" reset line
- reset-names:	must be "usb_otg"

Required child node:
A child node must exist to represent the core DWC3 IP block. The name of
the node is not important. The content of the node is defined in dwc3.txt.

PHY documentation is provided in the following places:
- Documentation/devicetree/bindings/phy/meson-gxl-usb2-phy.txt
- Documentation/devicetree/bindings/phy/meson-gxl-usb3-phy.txt

Example device nodes:
		usb0: usb@ff500000 {
			compatible = "amlogic,meson-axg-dwc3";
			#address-cells = <2>;
			#size-cells = <2>;
			ranges;

			clocks = <&clkc CLKID_USB>;
			clock-names = "usb_general";
			resets = <&reset RESET_USB_OTG>;
			reset-names = "usb_otg";

			dwc3: dwc3@ff500000 {
				compatible = "snps,dwc3";
				reg = <0x0 0xff500000 0x0 0x100000>;
				interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
				dr_mode = "host";
				maximum-speed = "high-speed";
				snps,dis_u2_susphy_quirk;
				phys = <&usb3_phy>, <&usb2_phy0>;
				phy-names = "usb2-phy", "usb3-phy";
			};
		};
+69 −4
Original line number Diff line number Diff line
@@ -25,9 +25,13 @@ description: |
  The Amlogic A1 embeds a DWC3 USB IP Core configured for USB2 in
  host-only mode.

  The Amlogic GXL & GXM SoCs doesn't embed an USB3 PHY.

properties:
  compatible:
    enum:
      - amlogic,meson-gxl-usb-ctrl
      - amlogic,meson-gxm-usb-ctrl
      - amlogic,meson-g12a-usb-ctrl
      - amlogic,meson-a1-usb-ctrl

@@ -41,6 +45,11 @@ properties:

  clocks:
    minItems: 1
    maxItems: 3

  clock-names:
    minItems: 1
    maxItems: 3

  resets:
    minItems: 1
@@ -52,10 +61,8 @@ properties:
    maxItems: 1

  phy-names:
    items:
      - const: usb2-phy0 # USB2 PHY0 if USBHOST_A port is used
      - const: usb2-phy1 # USB2 PHY1 if USBOTG_B port is used
      - const: usb3-phy0 # USB3 PHY if USB3_0 is used
    minItems: 1
    maxItems: 3

  phys:
    minItems: 1
@@ -89,6 +96,61 @@ required:
  - dr_mode

allOf:
  - if:
      properties:
        compatible:
          enum:
            - amlogic,meson-g12a-usb-ctrl

    then:
      properties:
        phy-names:
          items:
            - const: usb2-phy0 # USB2 PHY0 if USBHOST_A port is used
            - const: usb2-phy1 # USB2 PHY1 if USBOTG_B port is used
            - const: usb3-phy0 # USB3 PHY if USB3_0 is used
  - if:
      properties:
        compatible:
          enum:
            - amlogic,meson-gxl-usb-ctrl

    then:
      properties:
        clocks:
          minItems: 2
        clock-names:
          items:
            - const: usb_ctrl
            - const: ddr
        phy-names:
          items:
            - const: usb2-phy0 # USB2 PHY0 if USBHOST_A port is used
            - const: usb2-phy1 # USB2 PHY1 if USBOTG_B port is used
      required:
        - clock-names
  - if:
      properties:
        compatible:
          enum:
            - amlogic,meson-gxm-usb-ctrl

    then:
      properties:
        clocks:
          minItems: 2
        clock-names:
          items:
            - const: usb_ctrl
            - const: ddr
        phy-names:
          items:
            - const: usb2-phy0 # USB2 PHY0 if USBHOST_A port is used
            - const: usb2-phy1 # USB2 PHY1 if USBOTG_B port is used
            - const: usb2-phy2 # USB2 PHY2 if USBOTG_C port is used

      required:
        - clock-names
  - if:
      properties:
        compatible:
@@ -97,6 +159,9 @@ allOf:

    then:
      properties:
        phy-names:
          items:
            - const: usb2-phy1 # USB2 PHY1 if USBOTG_B port is used
        clocks:
          minItems: 3
        clock-names:
+68 −0
Original line number Diff line number Diff line
@@ -52,6 +52,59 @@ properties:
        minimum: 1
        maximum: 21

  vhub-vendor-id:
    description: vhub Vendor ID
    allOf:
      - $ref: /schemas/types.yaml#/definitions/uint32
      - maximum: 65535

  vhub-product-id:
    description: vhub Product ID
    allOf:
      - $ref: /schemas/types.yaml#/definitions/uint32
      - maximum: 65535

  vhub-device-revision:
    description: vhub Device Revision in binary-coded decimal
    allOf:
      - $ref: /schemas/types.yaml#/definitions/uint32
      - maximum: 65535

  vhub-strings:
    type: object

    properties:
      '#address-cells':
        const: 1

      '#size-cells':
        const: 0

    patternProperties:
      '^string@[0-9a-f]+$':
        type: object
        description: string descriptors of the specific language

        properties:
          reg:
            maxItems: 1
            description: 16-bit Language Identifier defined by USB-IF

          manufacturer:
            description: vhub manufacturer
            allOf:
              - $ref: /schemas/types.yaml#/definitions/string

          product:
            description: vhub product name
            allOf:
              - $ref: /schemas/types.yaml#/definitions/string

          serial-number:
            description: vhub device serial number
            allOf:
              - $ref: /schemas/types.yaml#/definitions/string

required:
  - compatible
  - reg
@@ -74,4 +127,19 @@ examples:
            aspeed,vhub-generic-endpoints = <15>;
            pinctrl-names = "default";
            pinctrl-0 = <&pinctrl_usb2ad_default>;

            vhub-vendor-id = <0x1d6b>;
            vhub-product-id = <0x0107>;
            vhub-device-revision = <0x0100>;
            vhub-strings {
                #address-cells = <1>;
                #size-cells = <0>;

                string@0409 {
                        reg = <0x0409>;
                        manufacturer = "ASPEED";
                        product = "USB Virtual Hub";
                        serial-number = "0000";
                };
            };
    };
+3 −53
Original line number Diff line number Diff line
@@ -88,13 +88,15 @@ Required properties:
 - clock-names: Should contain two strings
		"pclk" for the peripheral clock
		"hclk" for the host clock

Deprecated property:
 - ep childnode: To specify the number of endpoints and their properties.

Optional properties:
 - atmel,vbus-gpio: If present, specifies a gpio that allows to detect whether
   vbus is present (USB is connected).

Required child node properties:
Deprecated child node properties:
 - name: Name of the endpoint.
 - reg: Num of the endpoint.
 - atmel,fifo-size: Size of the fifo.
@@ -112,56 +114,4 @@ usb2: gadget@fff78000 {
	clocks = <&utmi>, <&udphs_clk>;
	clock-names = "hclk", "pclk";
	atmel,vbus-gpio = <&pioB 19 0>;

	ep@0 {
		reg = <0>;
		atmel,fifo-size = <64>;
		atmel,nb-banks = <1>;
	};

	ep@1 {
		reg = <1>;
		atmel,fifo-size = <1024>;
		atmel,nb-banks = <2>;
		atmel,can-dma;
		atmel,can-isoc;
	};

	ep@2 {
		reg = <2>;
		atmel,fifo-size = <1024>;
		atmel,nb-banks = <2>;
		atmel,can-dma;
		atmel,can-isoc;
	};

	ep@3 {
		reg = <3>;
		atmel,fifo-size = <1024>;
		atmel,nb-banks = <3>;
		atmel,can-dma;
	};

	ep@4 {
		reg = <4>;
		atmel,fifo-size = <1024>;
		atmel,nb-banks = <3>;
		atmel,can-dma;
	};

	ep@5 {
		reg = <5>;
		atmel,fifo-size = <1024>;
		atmel,nb-banks = <3>;
		atmel,can-dma;
		atmel,can-isoc;
	};

	ep@6 {
		reg = <6>;
		atmel,fifo-size = <1024>;
		atmel,nb-banks = <3>;
		atmel,can-dma;
		atmel,can-isoc;
	};
};
Loading