projects/linux·commit 04d17331

Merge tag 'usb-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb

04d17331 · Linus Torvalds <[email protected]> · 2024-07-19 15:37:48 -07:00

Pull USB / Thunderbolt updates from Greg KH:
 "Here is the big set of USB and Thunderbolt changes for 6.11-rc1.

  Nothing earth-shattering in here, just constant forward progress in
  adding support for new hardware and better debugging functionalities
  for thunderbolt devices and the subsystem. Included in here are:

   - thunderbolt debugging update and driver additions

   - xhci driver updates

   - typec driver updates

   - kselftest device driver changes (acked by the relevant maintainers,
     depended on other changes in this tree.)

   - cdns3 driver updates

   - gadget driver updates

   - MODULE_DESCRIPTION() additions

   - dwc3 driver updates and fixes

  All of these have been in linux-next for a while with no reported
  issues"

* tag 'usb-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (112 commits)
  kselftest: devices: Add test to detect device error logs
  kselftest: Move ksft helper module to common directory
  kselftest: devices: Move discoverable devices test to subdirectory
  usb: gadget: f_uac2: fix non-newline-terminated function name
  USB: uas: Implement the new shutdown callback
  USB: core: add 'shutdown' callback to usb_driver
  usb: typec: Drop explicit initialization of struct i2c_device_id::driver_data to 0
  usb: dwc3: enable CCI support for AMD-xilinx DWC3 controller
  usb: dwc2: add support for other Lantiq SoCs
  usb: gadget: Use u16 types for 16-bit fields
  usb: gadget: midi2: Fix incorrect default MIDI2 protocol setup
  usb: dwc3: core: Check all ports when set phy suspend
  usb: typec: tcpci: add support to set connector orientation
  dt-bindings: usb: Convert fsl-usb to yaml
  usb: typec: ucsi: reorder operations in ucsi_run_command()
  usb: typec: ucsi: extract common code for command handling
  usb: typec: ucsi: inline ucsi_read_message_in
  usb: typec: ucsi: rework command execution functions
  usb: typec: ucsi: split read operation
  usb: typec: ucsi: simplify command sending API
  ...
Commit
04d17331ca33744e1426fdeee7ba5e975c4b2239
Parents
aba9753c · b7274930

Merge commit. Changes below are compared with the first parent: aba9753c.

Changes

127 files changed · +2553 −1197

FileStatusAddDelContent
Documentation/ABI/testing/sysfs-bus-pci-drivers-xhci_hcdmodified+10−0View file
Documentation/admin-guide/kernel-parameters.txtmodified+3−0View file
Documentation/devicetree/bindings/usb/cdns,usb3.yamlmodified+12−3View file
Documentation/devicetree/bindings/usb/dwc2.yamlmodified+1−1View file
Documentation/devicetree/bindings/usb/fsl,usb2.yamladded+95−0View file
Documentation/devicetree/bindings/usb/fsl-usb.txtdeleted+0−81View before deletion
Documentation/devicetree/bindings/usb/genesys,gl850g.yamlmodified+55−5View file
Documentation/devicetree/bindings/usb/gpio-sbu-mux.yamlmodified+7−1View file
Documentation/devicetree/bindings/usb/microchip,mpfs-musb.yamlmodified+7−0View file
Documentation/devicetree/bindings/usb/qcom,dwc3.yamlmodified+29−0View file
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsimodified+24−12View file
drivers/phy/ti/phy-da8xx-usb.cmodified+49−0View file
drivers/thunderbolt/Kconfigmodified+11−6View file
drivers/thunderbolt/debugfs.cmodified+484−164View file
drivers/thunderbolt/retimer.cmodified+32−21View file
drivers/thunderbolt/sb_regs.hmodified+9−9View file
drivers/thunderbolt/tb.hmodified+35−10View file
drivers/thunderbolt/usb4.cmodified+98−85View file
drivers/usb/cdns3/cdns3-ti.cmodified+14−1View file
drivers/usb/cdns3/core.hmodified+1−0View file
drivers/usb/cdns3/drd.cmodified+9−1View file
drivers/usb/cdns3/drd.hmodified+3−0View file
drivers/usb/chipidea/ci_hdrc_imx.cmodified+9−10View file
drivers/usb/chipidea/ci_hdrc_msm.cmodified+1−0View file
drivers/usb/chipidea/ci_hdrc_tegra.cmodified+4−5View file
drivers/usb/class/usbtmc.cmodified+1−0View file
drivers/usb/common/common.cmodified+1−0View file
drivers/usb/common/usb-otg-fsm.cmodified+1−0View file
drivers/usb/core/driver.cmodified+14−0View file
drivers/usb/core/usb.cmodified+1−0View file
drivers/usb/dwc2/gadget.cmodified+2−2View file
drivers/usb/dwc2/params.cmodified+25−5View file
drivers/usb/dwc3/core.cmodified+54−12View file
drivers/usb/dwc3/core.hmodified+8−0View file
drivers/usb/dwc3/dwc3-xilinx.cmodified+29−0View file
drivers/usb/dwc3/host.cmodified+3−1View file
drivers/usb/gadget/composite.cmodified+1−0View file
drivers/usb/gadget/function/f_acm.cmodified+1−0View file
drivers/usb/gadget/function/f_ecm.cmodified+1−0View file
drivers/usb/gadget/function/f_eem.cmodified+1−0View file
drivers/usb/gadget/function/f_fs.cmodified+1−0View file
drivers/usb/gadget/function/f_hid.cmodified+1−0View file
drivers/usb/gadget/function/f_loopback.cmodified+1−0View file
drivers/usb/gadget/function/f_mass_storage.cmodified+1−0View file
drivers/usb/gadget/function/f_midi.cmodified+1−0View file
drivers/usb/gadget/function/f_midi2.cmodified+12−8View file
drivers/usb/gadget/function/f_ncm.cmodified+1−0View file
drivers/usb/gadget/function/f_obex.cmodified+1−0View file
drivers/usb/gadget/function/f_phonet.cmodified+1−0View file
drivers/usb/gadget/function/f_printer.cmodified+1−0View file
drivers/usb/gadget/function/f_rndis.cmodified+1−0View file
drivers/usb/gadget/function/f_serial.cmodified+1−0View file
drivers/usb/gadget/function/f_sourcesink.cmodified+1−0View file
drivers/usb/gadget/function/f_subset.cmodified+1−0View file
drivers/usb/gadget/function/f_tcm.cmodified+1−0View file
drivers/usb/gadget/function/f_uac1.cmodified+1−0View file
drivers/usb/gadget/function/f_uac1_legacy.cmodified+1−0View file
drivers/usb/gadget/function/f_uac2.cmodified+5−1View file
drivers/usb/gadget/function/f_uvc.cmodified+1−0View file
drivers/usb/gadget/function/storage_common.cmodified+1−0View file
drivers/usb/gadget/function/u_ether.cmodified+1−0View file
drivers/usb/gadget/function/u_serial.cmodified+1−0View file
drivers/usb/gadget/legacy/dbgp.cmodified+1−0View file
drivers/usb/gadget/legacy/gmidi.cmodified+1−0View file
drivers/usb/gadget/legacy/zero.cmodified+1−0View file
drivers/usb/gadget/udc/aspeed_udc.cmodified+2−0View file
drivers/usb/host/ohci-exynos.cmodified+1−0View file
drivers/usb/host/oxu210hp-hcd.cmodified+0−25View file
drivers/usb/host/xhci-dbgcap.cmodified+38−0View file
drivers/usb/host/xhci-dbgcap.hmodified+1−1View file
drivers/usb/host/xhci-mem.cmodified+19−21View file
drivers/usb/host/xhci-pci-renesas.cmodified+1−0View file
drivers/usb/host/xhci-pci.cmodified+3−1View file
drivers/usb/host/xhci-plat.cmodified+3−0View file
drivers/usb/host/xhci-ring.cmodified+123−183View file
drivers/usb/host/xhci-trace.hmodified+4−1View file
drivers/usb/host/xhci.hmodified+21−22View file
drivers/usb/misc/ezusb.cmodified+1−0View file
drivers/usb/misc/isight_firmware.cmodified+1−0View file
drivers/usb/misc/onboard_usb_dev.cmodified+7−4View file
drivers/usb/misc/usb251xb.cmodified+9−9View file
drivers/usb/misc/usb3503.cmodified+1−1View file
drivers/usb/misc/usb4604.cmodified+1−1View file
drivers/usb/misc/yurex.cmodified+1−0View file
drivers/usb/mon/mon_main.cmodified+1−0View file
drivers/usb/musb/da8xx.cmodified+12−8View file
drivers/usb/musb/mpfs.cmodified+2−0View file
drivers/usb/phy/phy-am335x-control.cmodified+1−0View file
drivers/usb/phy/phy-am335x.cmodified+1−0View file
drivers/usb/storage/uas.cmodified+4−3View file
drivers/usb/storage/usb.cmodified+97−4View file
drivers/usb/typec/altmodes/displayport.cmodified+1−1View file
drivers/usb/typec/anx7411.cmodified+1−1View file
drivers/usb/typec/class.cmodified+17−1View file
drivers/usb/typec/mux/gpio-sbu-mux.cmodified+5−1View file
drivers/usb/typec/mux/nb7vpq904m.cmodified+62−35View file
drivers/usb/typec/mux/ptn36502.cmodified+30−3View file
drivers/usb/typec/tcpm/fusb302.cmodified+2−2View file
drivers/usb/typec/tcpm/tcpci.cmodified+45−1View file
drivers/usb/typec/tcpm/tcpci_maxim_core.cmodified+1−1View file
drivers/usb/typec/tcpm/tcpm.cmodified+31−6View file
drivers/usb/typec/tipd/core.cmodified+12−21View file
drivers/usb/typec/ucsi/Kconfigmodified+9−0View file
drivers/usb/typec/ucsi/Makefilemodified+1−0View file
drivers/usb/typec/ucsi/displayport.cmodified+1−1View file
drivers/usb/typec/ucsi/psy.cmodified+32−0View file
drivers/usb/typec/ucsi/ucsi.cmodified+181−103View file
drivers/usb/typec/ucsi/ucsi.hmodified+48−24View file
drivers/usb/typec/ucsi/ucsi_acpi.cmodified+63−64View file
drivers/usb/typec/ucsi/ucsi_ccg.cmodified+45−60View file
drivers/usb/typec/ucsi/ucsi_glink.cmodified+23−51View file
drivers/usb/typec/ucsi/ucsi_stm32g0.cmodified+29−54View file
drivers/usb/typec/ucsi/ucsi_yoga_c630.cadded+164−0View file
drivers/usb/usbip/stub_rx.cmodified+50−27View file
include/linux/usb.hmodified+3−0View file
include/linux/usb/gadget.hmodified+5−5View file
include/linux/usb/tcpci.hmodified+8−0View file
include/linux/usb/typec.hmodified+3−0View file
tools/testing/selftests/Makefilemodified+3−1View file
tools/testing/selftests/devices/Makefiledeleted+0−4View before deletion
tools/testing/selftests/devices/error_logs/Makefileadded+3−0View file
tools/testing/selftests/devices/error_logs/test_device_error_logs.pyadded+85−0View file
tools/testing/selftests/devices/probe/Makefileadded+4−0View file
tools/testing/selftests/devices/boards/Dell Inc.,XPS 13 9300.yaml → tools/testing/selftests/devices/probe/boards/Dell Inc.,XPS 13 9300.yamlrenamed+0−0View file
tools/testing/selftests/devices/boards/google,spherion.yaml → tools/testing/selftests/devices/probe/boards/google,spherion.yamlrenamed+4−0View file
tools/testing/selftests/devices/test_discoverable_devices.py → tools/testing/selftests/devices/probe/test_discoverable_devices.pyrenamed+42−2View file
tools/testing/selftests/devices/ksft.py → tools/testing/selftests/kselftest/ksft.pyrenamed+0−0View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/ABI/testing/sysfs-bus-pci-drivers-xhci_hcd

View file
diff --git a/Documentation/ABI/testing/sysfs-bus-pci-drivers-xhci_hcd b/Documentation/ABI/testing/sysfs-bus-pci-drivers-xhci_hcd
index 5a775b8..fc82aa4 100644
--- a/Documentation/ABI/testing/sysfs-bus-pci-drivers-xhci_hcd
+++ b/Documentation/ABI/testing/sysfs-bus-pci-drivers-xhci_hcd
@@ -75,3 +75,13 @@ Description:
The default value is 1 (GNU Remote Debug command).
Other permissible value is 0 which is for vendor defined debug
target.
+
+What: /sys/bus/pci/drivers/xhci_hcd/.../dbc_poll_interval_ms
+Date: February 2024
+Contact: Mathias Nyman <[email protected]>
+Description:
+ This attribute adjust the polling interval used to check for
+ DbC events. Unit is milliseconds. Accepted values range from 0
+ up to 5000. The default value is 64 ms.
+ This polling interval is used while DbC is enabled but has no
+ active data transfers.

Documentation/admin-guide/kernel-parameters.txt

View file
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 6a597e9..0e06d0b 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -7041,6 +7041,9 @@
usb-storage.delay_use=
[UMS] The delay in seconds before a new device is
scanned for Logical Units (default 1).
+ Optionally the delay in milliseconds if the value has
+ suffix with "ms".
+ Example: delay_use=2567ms
usb-storage.quirks=
[UMS] A list of quirks entries to supplement or

Documentation/devicetree/bindings/usb/cdns,usb3.yaml

View file
diff --git a/Documentation/devicetree/bindings/usb/cdns,usb3.yaml b/Documentation/devicetree/bindings/usb/cdns,usb3.yaml
index 69a93a0..f454ddd 100644
--- a/Documentation/devicetree/bindings/usb/cdns,usb3.yaml
+++ b/Documentation/devicetree/bindings/usb/cdns,usb3.yaml
@@ -42,8 +42,11 @@ properties:
- const: otg
- const: wakeup
- dr_mode:
- enum: [host, otg, peripheral]
+ port:
+ $ref: /schemas/graph.yaml#/properties/port
+ description:
+ This port is used with the 'usb-role-switch' property to connect the
+ cdns3 to type C connector.
maximum-speed:
enum: [super-speed, high-speed, full-speed]
@@ -70,6 +73,9 @@ properties:
description: Enable resetting of PHY if Rx fail is detected
type: boolean
+dependencies:
+ port: [ usb-role-switch ]
+
required:
- compatible
- reg
@@ -77,7 +83,10 @@ required:
- interrupts
- interrupt-names
-additionalProperties: false
+allOf:
+ - $ref: usb-drd.yaml#
+
+unevaluatedProperties: false
examples:
- |

Documentation/devicetree/bindings/usb/dwc2.yaml

View file
diff --git a/Documentation/devicetree/bindings/usb/dwc2.yaml b/Documentation/devicetree/bindings/usb/dwc2.yaml
index 4f36a22..a5f2e34 100644
--- a/Documentation/devicetree/bindings/usb/dwc2.yaml
+++ b/Documentation/devicetree/bindings/usb/dwc2.yaml
@@ -188,7 +188,7 @@ required:
- clocks
- clock-names
-additionalProperties: false
+unevaluatedProperties: false
examples:
- |

Documentation/devicetree/bindings/usb/fsl,usb2.yaml

View file
diff --git a/Documentation/devicetree/bindings/usb/fsl,usb2.yaml b/Documentation/devicetree/bindings/usb/fsl,usb2.yaml
new file mode 100644
index 0000000..caedf11
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/fsl,usb2.yaml
@@ -0,0 +1,95 @@
+# 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 <[email protected]>
+
+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";
+ };

Documentation/devicetree/bindings/usb/fsl-usb.txt

View before deletion
diff --git a/Documentation/devicetree/bindings/usb/fsl-usb.txt b/Documentation/devicetree/bindings/usb/fsl-usb.txt
deleted file mode 100644
index 0b08b00..0000000
--- a/Documentation/devicetree/bindings/usb/fsl-usb.txt
+++ /dev/null
@@ -1,81 +0,0 @@
-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;
- };

Documentation/devicetree/bindings/usb/genesys,gl850g.yaml

View file
diff --git a/Documentation/devicetree/bindings/usb/genesys,gl850g.yaml b/Documentation/devicetree/bindings/usb/genesys,gl850g.yaml
index 37cf524..fc83336 100644
--- a/Documentation/devicetree/bindings/usb/genesys,gl850g.yaml
+++ b/Documentation/devicetree/bindings/usb/genesys,gl850g.yaml
@@ -9,9 +9,6 @@ title: Genesys Logic USB hub controller
maintainers:
- Icenowy Zheng <[email protected]>
-allOf:
- - $ref: usb-device.yaml#
-
properties:
compatible:
enum:
@@ -27,17 +24,44 @@ properties:
vdd-supply:
description:
- the regulator that provides 3.3V core power to the hub.
+ The regulator that provides 3.3V or 5.0V core power to the hub.
peer-hub:
$ref: /schemas/types.yaml#/definitions/phandle
description:
- phandle to the peer hub on the controller.
+ For onboard hub controllers that support USB 3.x and USB 2.0 hubs
+ with shared resets and power supplies, this property is used to identify
+ the hubs with which these are shared.
required:
- compatible
- reg
+allOf:
+ - $ref: usb-device.yaml#
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - usb5e3,608
+ then:
+ properties:
+ peer-hub: false
+ vdd-supply: false
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - usb5e3,610
+ - usb5e3,620
+ then:
+ properties:
+ peer-hub: true
+ vdd-supply: true
+
additionalProperties: false
examples:
@@ -54,3 +78,29 @@ examples:
reset-gpios = <&pio 7 2 GPIO_ACTIVE_LOW>;
};
};
+
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ usb {
+ dr_mode = "host";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* 2.0 hub on port 1 */
+ hub_2_0: hub@1 {
+ compatible = "usb5e3,610";
+ reg = <1>;
+ peer-hub = <&hub_3_0>;
+ reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
+ vdd-supply = <&vcc_5v>;
+ };
+
+ /* 3.1 hub on port 4 */
+ hub_3_0: hub@2 {
+ compatible = "usb5e3,620";
+ reg = <2>;
+ peer-hub = <&hub_2_0>;
+ reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
+ vdd-supply = <&vcc_5v>;
+ };
+ };

Documentation/devicetree/bindings/usb/gpio-sbu-mux.yaml

View file
diff --git a/Documentation/devicetree/bindings/usb/gpio-sbu-mux.yaml b/Documentation/devicetree/bindings/usb/gpio-sbu-mux.yaml
index 88e1607..8a5f837 100644
--- a/Documentation/devicetree/bindings/usb/gpio-sbu-mux.yaml
+++ b/Documentation/devicetree/bindings/usb/gpio-sbu-mux.yaml
@@ -22,6 +22,7 @@ properties:
- nxp,cbdtu02043
- onnn,fsusb43l10x
- pericom,pi3usb102
+ - ti,tmuxhs4212
- const: gpio-sbu-mux
enable-gpios:
@@ -44,13 +45,18 @@ properties:
required:
- compatible
- - enable-gpios
- select-gpios
- orientation-switch
- port
allOf:
- $ref: usb-switch.yaml#
+ - if:
+ required:
+ - mode-switch
+ then:
+ required:
+ - enable-gpios
additionalProperties: false

Documentation/devicetree/bindings/usb/microchip,mpfs-musb.yaml

View file
diff --git a/Documentation/devicetree/bindings/usb/microchip,mpfs-musb.yaml b/Documentation/devicetree/bindings/usb/microchip,mpfs-musb.yaml
index c5e9ce2..27b909d 100644
--- a/Documentation/devicetree/bindings/usb/microchip,mpfs-musb.yaml
+++ b/Documentation/devicetree/bindings/usb/microchip,mpfs-musb.yaml
@@ -34,6 +34,13 @@ properties:
clocks:
maxItems: 1
+ microchip,ext-vbus-drv:
+ description:
+ Some ULPI USB PHYs do not support an internal VBUS supply and driving
+ the CPEN pin requires the configuration of the UPLI_USE__EXTVBUS
+ bit in ULPI_BUSCONTROL.
+ $ref: /schemas/types.yaml#/definitions/flag
+
required:
- compatible
- reg

Documentation/devicetree/bindings/usb/qcom,dwc3.yaml

View file
diff --git a/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml b/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml
index cf633d4..efde47a 100644
--- a/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml
+++ b/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml
@@ -30,6 +30,8 @@ properties:
- qcom,sa8775p-dwc3
- qcom,sc7180-dwc3
- qcom,sc7280-dwc3
+ - qcom,sc8180x-dwc3
+ - qcom,sc8180x-dwc3-mp
- qcom,sc8280xp-dwc3
- qcom,sc8280xp-dwc3-mp
- qcom,sdm660-dwc3
@@ -334,6 +336,8 @@ allOf:
contains:
enum:
- qcom,qcm2290-dwc3
+ - qcom,sc8180x-dwc3
+ - qcom,sc8180x-dwc3-mp
- qcom,sm6115-dwc3
- qcom,sm6125-dwc3
- qcom,sm8150-dwc3
@@ -448,6 +452,7 @@ allOf:
- qcom,sa8775p-dwc3
- qcom,sc7180-dwc3
- qcom,sc7280-dwc3
+ - qcom,sc8180x-dwc3
- qcom,sc8280xp-dwc3
- qcom,sdm670-dwc3
- qcom,sdm845-dwc3
@@ -480,6 +485,30 @@ allOf:
compatible:
contains:
enum:
+ - qcom,sc8180x-dwc3-mp
+ then:
+ properties:
+ interrupts:
+ minItems: 10
+ maxItems: 10
+ interrupt-names:
+ items:
+ - const: pwr_event_1
+ - const: pwr_event_2
+ - const: hs_phy_1
+ - const: hs_phy_2
+ - const: dp_hs_phy_1
+ - const: dm_hs_phy_1
+ - const: dp_hs_phy_2
+ - const: dm_hs_phy_2
+ - const: ss_phy_1
+ - const: ss_phy_2
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
- qcom,sc8280xp-dwc3-mp
then:
properties:

arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi

View file
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
index d80dd9a..86eb811 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
@@ -31,6 +31,30 @@
enable-active-high;
};
+ /* USB hub supports both USB 2.0 and USB 3.0 root hub */
+ usb-hub {
+ dr_mode = "host";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* 2.0 hub on port 1 */
+ hub_2_0: hub@1 {
+ compatible = "usb5e3,610";
+ reg = <1>;
+ peer-hub = <&hub_3_0>;
+ vdd-supply = <&usb_pwr_en>;
+ };
+
+ /* 3.0 hub on port 4 */
+ hub_3_0: hub@2 {
+ compatible = "usb5e3,620";
+ reg = <2>;
+ peer-hub = <&hub_2_0>;
+ reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
+ vdd-supply = <&vcc_5v>;
+ };
+ };
+
sound {
compatible = "amlogic,axg-sound-card";
model = "ODROID-N2";
@@ -234,18 +258,6 @@
"PIN_3", /* GPIOX_17 */
"PIN_5", /* GPIOX_18 */
"PIN_36"; /* GPIOX_19 */
- /*
- * WARNING: The USB Hub on the Odroid-N2 needs a reset signal
- * to be turned high in order to be detected by the USB Controller
- * This signal should be handled by a USB specific power sequence
- * in order to reset the Hub when USB bus is powered down.
- */
- usb-hub-hog {
- gpio-hog;
- gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>;
- output-high;
- line-name = "usb-hub-reset";
- };
};
&i2c3 {

drivers/phy/ti/phy-da8xx-usb.c

View file
diff --git a/drivers/phy/ti/phy-da8xx-usb.c b/drivers/phy/ti/phy-da8xx-usb.c
index 0fe577f..68aa595 100644
--- a/drivers/phy/ti/phy-da8xx-usb.c
+++ b/drivers/phy/ti/phy-da8xx-usb.c
@@ -14,11 +14,13 @@
#include <linux/phy/phy.h>
#include <linux/platform_data/phy-da8xx-usb.h>
#include <linux/platform_device.h>
+#include <linux/pm_runtime.h>
#include <linux/regmap.h>
#define PHY_INIT_BITS (CFGCHIP2_SESENDEN | CFGCHIP2_VBDTCTEN)
struct da8xx_usb_phy {
+ struct device *dev;
struct phy_provider *phy_provider;
struct phy *usb11_phy;
struct phy *usb20_phy;
@@ -39,6 +41,12 @@ static int da8xx_usb11_phy_power_on(struct phy *phy)
regmap_write_bits(d_phy->regmap, CFGCHIP(2), CFGCHIP2_USB1SUSPENDM,
CFGCHIP2_USB1SUSPENDM);
+ /*
+ * USB1.1 can used USB2.0 output clock as reference clock so this is here to prevent USB2.0
+ * from shutting PHY's power when USB1.1 might use it
+ */
+ pm_runtime_get_sync(d_phy->dev);
+
return 0;
}
@@ -49,6 +57,7 @@ static int da8xx_usb11_phy_power_off(struct phy *phy)
regmap_write_bits(d_phy->regmap, CFGCHIP(2), CFGCHIP2_USB1SUSPENDM, 0);
clk_disable_unprepare(d_phy->usb11_clk);
+ pm_runtime_put_sync(d_phy->dev);
return 0;
}
@@ -118,6 +127,35 @@ static const struct phy_ops da8xx_usb20_phy_ops = {
.owner = THIS_MODULE,
};
+static int __maybe_unused da8xx_runtime_suspend(struct device *dev)
+{
+ struct da8xx_usb_phy *d_phy = dev_get_drvdata(dev);
+
+ dev_dbg(dev, "Suspending ...\n");
+
+ regmap_set_bits(d_phy->regmap, CFGCHIP(2), CFGCHIP2_PHYPWRDN | CFGCHIP2_OTGPWRDN);
+
+ return 0;
+}
+
+static int __maybe_unused da8xx_runtime_resume(struct device *dev)
+{
+ u32 mask = CFGCHIP2_RESET | CFGCHIP2_PHYPWRDN | CFGCHIP2_OTGPWRDN | CFGCHIP2_PHY_PLLON;
+ struct da8xx_usb_phy *d_phy = dev_get_drvdata(dev);
+ u32 pll_status;
+
+ regmap_update_bits(d_phy->regmap, CFGCHIP(2), mask, CFGCHIP2_PHY_PLLON);
+
+ dev_dbg(dev, "Resuming ...\n");
+
+ return regmap_read_poll_timeout(d_phy->regmap, CFGCHIP(2), pll_status,
+ pll_status & CFGCHIP2_PHYCLKGD, 1000, 500000);
+}
+
+static const struct dev_pm_ops da8xx_usb_phy_pm_ops = {
+ SET_RUNTIME_PM_OPS(da8xx_runtime_suspend, da8xx_runtime_resume, NULL)
+};

This diff is incomplete. Download the complete patch.

drivers/thunderbolt/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/thunderbolt/debugfs.c

View file

This diff is incomplete. Download the complete patch.

drivers/thunderbolt/retimer.c

View file

This diff is incomplete. Download the complete patch.

drivers/thunderbolt/sb_regs.h

View file

This diff is incomplete. Download the complete patch.

drivers/thunderbolt/tb.h

View file

This diff is incomplete. Download the complete patch.

drivers/thunderbolt/usb4.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/cdns3/cdns3-ti.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/cdns3/core.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/cdns3/drd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/cdns3/drd.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/chipidea/ci_hdrc_imx.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/chipidea/ci_hdrc_msm.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/chipidea/ci_hdrc_tegra.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/class/usbtmc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/common/common.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/common/usb-otg-fsm.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/driver.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/usb.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/dwc2/gadget.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/dwc2/params.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/dwc3/core.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/dwc3/core.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/dwc3/dwc3-xilinx.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/dwc3/host.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/composite.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/f_acm.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/f_ecm.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/f_eem.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/f_fs.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/f_hid.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/f_loopback.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/f_mass_storage.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/f_midi.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/f_midi2.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/f_ncm.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/f_obex.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/f_phonet.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/f_printer.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/f_rndis.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/f_serial.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/f_sourcesink.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/f_subset.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/f_tcm.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/f_uac1.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/f_uac1_legacy.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/f_uac2.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/f_uvc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/storage_common.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/u_ether.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/function/u_serial.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/legacy/dbgp.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/legacy/gmidi.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/legacy/zero.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/udc/aspeed_udc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-exynos.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/oxu210hp-hcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/xhci-dbgcap.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/xhci-dbgcap.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/xhci-mem.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/xhci-pci-renesas.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/xhci-pci.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/xhci-plat.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/xhci-ring.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/xhci-trace.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/xhci.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/ezusb.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/isight_firmware.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/onboard_usb_dev.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/usb251xb.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/usb3503.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/usb4604.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/yurex.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/mon/mon_main.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/musb/da8xx.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/musb/mpfs.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/phy/phy-am335x-control.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/phy/phy-am335x.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/storage/uas.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/storage/usb.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/typec/altmodes/displayport.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/typec/anx7411.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/typec/class.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/typec/mux/gpio-sbu-mux.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/typec/mux/nb7vpq904m.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/typec/mux/ptn36502.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/typec/tcpm/fusb302.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/typec/tcpm/tcpci.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/typec/tcpm/tcpci_maxim_core.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/typec/tcpm/tcpm.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/typec/tipd/core.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/typec/ucsi/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/usb/typec/ucsi/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/usb/typec/ucsi/displayport.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/typec/ucsi/psy.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/typec/ucsi/ucsi.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/typec/ucsi/ucsi.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/typec/ucsi/ucsi_acpi.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/typec/ucsi/ucsi_ccg.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/typec/ucsi/ucsi_glink.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/typec/ucsi/ucsi_stm32g0.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/typec/ucsi/ucsi_yoga_c630.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/usbip/stub_rx.c

View file

This diff is incomplete. Download the complete patch.

include/linux/usb.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb/gadget.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb/tcpci.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb/typec.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/devices/Makefile

View before deletion

This diff is incomplete. Download the complete patch.

tools/testing/selftests/devices/error_logs/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/devices/error_logs/test_device_error_logs.py

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/devices/probe/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/devices/probe/boards/Dell Inc.,XPS 13 9300.yaml

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/devices/probe/boards/google,spherion.yaml

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/devices/probe/test_discoverable_devices.py

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/kselftest/ksft.py

View file

This diff is incomplete. Download the complete patch.