Commit 0cee54c8 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull USB / Thunderbolt updates from Greg KH:
 "Here is the big USB and thunderbolt pull request for 5.11-rc1.

  Nothing major in here, just the grind of constant development to
  support new hardware and fix old issues:

   - thunderbolt updates for new USB4 hardware

   - cdns3 major driver updates

   - lots of typec updates and additions as more hardware is available

   - usb serial driver updates and fixes

   - other tiny USB driver updates

  All have been in linux-next with no reported issues"

* tag 'usb-5.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (172 commits)
  usb: phy: convert comma to semicolon
  usb: ucsi: convert comma to semicolon
  usb: typec: tcpm: convert comma to semicolon
  usb: typec: tcpm: Update vbus_vsafe0v on init
  usb: typec: tcpci: Enable bleed discharge when auto discharge is enabled
  usb: typec: Add class for plug alt mode device
  USB: typec: tcpci: Add Bleed discharge to POWER_CONTROL definition
  USB: typec: tcpm: Add a 30ms room for tPSSourceOn in PR_SWAP
  USB: typec: tcpm: Fix PR_SWAP error handling
  USB: typec: tcpm: Hard Reset after not receiving a Request
  USB: gadget: f_fs: remove likely/unlikely
  usb: gadget: f_fs: Re-use SS descriptors for SuperSpeedPlus
  USB: gadget: f_midi: setup SuperSpeed Plus descriptors
  USB: gadget: f_acm: add support for SuperSpeed Plus
  USB: gadget: f_rndis: fix bitrate for SuperSpeed and above
  usb: typec: intel_pmc_mux: Configure cable generation value for USB4
  MAINTAINERS: Add myself as a reviewer for CADENCE USB3 DRD IP DRIVER
  usb: chipidea: ci_hdrc_imx: Use of_device_get_match_data()
  usb: chipidea: usbmisc_imx: Use of_device_get_match_data()
  usb: cdns3: fix NULL pointer dereference on no platform data
  ...
parents c367caf1 a256e240
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
What:		/sys/bus/thunderbolt/devices/<xdomain>/rx_speed
Date:		Feb 2021
KernelVersion:	5.11
Contact:	Isaac Hazan <isaac.hazan@intel.com>
Description:	This attribute reports the XDomain RX speed per lane.
		All RX lanes run at the same speed.

What:		/sys/bus/thunderbolt/devices/<xdomain>/rx_lanes
Date:		Feb 2021
KernelVersion:	5.11
Contact:	Isaac Hazan <isaac.hazan@intel.com>
Description:	This attribute reports the number of RX lanes the XDomain
		is using simultaneously through its upstream port.

What:		/sys/bus/thunderbolt/devices/<xdomain>/tx_speed
Date:		Feb 2021
KernelVersion:	5.11
Contact:	Isaac Hazan <isaac.hazan@intel.com>
Description:	This attribute reports the XDomain TX speed per lane.
		All TX lanes run at the same speed.

What:		/sys/bus/thunderbolt/devices/<xdomain>/tx_lanes
Date:		Feb 2021
KernelVersion:	5.11
Contact:	Isaac Hazan <isaac.hazan@intel.com>
Description:	This attribute reports number of TX lanes the XDomain
		is using simultaneously through its upstream port.

What: /sys/bus/thunderbolt/devices/.../domainX/boot_acl
Date:		Jun 2018
KernelVersion:	4.17
+108 −34
Original line number Diff line number Diff line
@@ -139,6 +139,49 @@ Description:
		Shows if the partner supports USB Power Delivery communication:
		Valid values: yes, no

What:		/sys/class/typec/<port>-partner/number_of_alternate_modes
Date:		November 2020
Contact:	Prashant Malani <pmalani@chromium.org>
Description:
		Shows the number of alternate modes which are advertised by the partner
		during Power Delivery discovery. This file remains hidden until a value
		greater than or equal to 0 is set by Type C port driver.

What:		/sys/class/typec/<port>-partner/type
Date:		December 2020
Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
Description:	USB Power Delivery Specification defines a set of product types
		for the partner devices. This file will show the product type of
		the partner if it is known. Dual-role capable partners will have
		both UFP and DFP product types defined, but only one that
		matches the current role will be active at the time. If the
		product type of the partner is not visible to the device driver,
		this file will not exist.

		When the partner product type is detected, or changed with role
		swap, uvevent is also raised that contains PRODUCT_TYPE=<product
		type> (for example PRODUCT_TYPE=hub).

		Valid values:

		UFP / device role
		======================  ==========================
		undefined		-
		hub			PDUSB Hub
		peripheral		PDUSB Peripheral
		psd			Power Bank
		ama			Alternate Mode Adapter
		======================  ==========================

		DFP / host role
		======================  ==========================
		undefined		-
		hub			PDUSB Hub
		host			PDUSB Host
		power_brick		Power Brick
		amc			Alternate Mode Controller
		======================  ==========================

What:		/sys/class/typec/<port>-partner>/identity/
Date:		April 2017
Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
@@ -151,31 +194,6 @@ Description:
		directory exists, it will have an attribute file for every VDO
		in Discover Identity command result.

What:		/sys/class/typec/<port>-partner/identity/id_header
Date:		April 2017
Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
Description:
		ID Header VDO part of Discover Identity command result. The
		value will show 0 until Discover Identity command result becomes
		available. The value can be polled.

What:		/sys/class/typec/<port>-partner/identity/cert_stat
Date:		April 2017
Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
Description:
		Cert Stat VDO part of Discover Identity command result. The
		value will show 0 until Discover Identity command result becomes
		available. The value can be polled.

What:		/sys/class/typec/<port>-partner/identity/product
Date:		April 2017
Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
Description:
		Product VDO part of Discover Identity command result. The value
		will show 0 until Discover Identity command result becomes
		available. The value can be polled.


USB Type-C cable devices (eg. /sys/class/typec/port0-cable/)

Note: Electronically Marked Cables will have a device also for one cable plug
@@ -187,9 +205,21 @@ described in USB Type-C and USB Power Delivery specifications.
What:		/sys/class/typec/<port>-cable/type
Date:		April 2017
Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
Description:
		Shows if the cable is active.
		Valid values: active, passive
Description:	USB Power Delivery Specification defines a set of product types
		for the cables. This file will show the product type of the
		cable if it is known. If the product type of the cable is not
		visible to the device driver, this file will not exist.

		When the cable product type is detected, uvevent is also raised
		with PRODUCT_TYPE showing the product type of the cable.

		Valid values:

		======================  ==========================
		undefined		-
		active			Active Cable
		passive			Passive Cable
		======================  ==========================

What:		/sys/class/typec/<port>-cable/plug_type
Date:		April 2017
@@ -202,17 +232,37 @@ Description:
		- type-c
		- captive

What:		/sys/class/typec/<port>-cable/identity/
What:		/sys/class/typec/<port>-<plug>/number_of_alternate_modes
Date:		November 2020
Contact:	Prashant Malani <pmalani@chromium.org>
Description:
		Shows the number of alternate modes which are advertised by the plug
		associated with a particular cable during Power Delivery discovery.
		This file remains hidden until a value greater than or equal to 0
		is set by Type C port driver.


USB Type-C partner/cable Power Delivery Identity objects

NOTE: The following attributes will be applicable to both
partner (e.g /sys/class/typec/port0-partner/) and
cable (e.g /sys/class/typec/port0-cable/) devices. Consequently, the example file
paths below are prefixed with "/sys/class/typec/<port>-{partner|cable}/" to
reflect this.

What:		/sys/class/typec/<port>-{partner|cable}/identity/
Date:		April 2017
Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
Description:
		This directory appears only if the port device driver is capable
		of showing the result of Discover Identity USB power delivery
		command. That will not always be possible even when USB power
		delivery is supported. If the directory exists, it will have an
		attribute for every VDO returned by Discover Identity command.
		delivery is supported, for example when USB power delivery
		communication for the port is mostly handled in firmware. If the
		directory exists, it will have an attribute file for every VDO
		in Discover Identity command result.

What:		/sys/class/typec/<port>-cable/identity/id_header
What:		/sys/class/typec/<port>-{partner|cable}/identity/id_header
Date:		April 2017
Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
Description:
@@ -220,7 +270,7 @@ Description:
		value will show 0 until Discover Identity command result becomes
		available. The value can be polled.

What:		/sys/class/typec/<port>-cable/identity/cert_stat
What:		/sys/class/typec/<port>-{partner|cable}/identity/cert_stat
Date:		April 2017
Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
Description:
@@ -228,7 +278,7 @@ Description:
		value will show 0 until Discover Identity command result becomes
		available. The value can be polled.

What:		/sys/class/typec/<port>-cable/identity/product
What:		/sys/class/typec/<port>-{partner|cable}/identity/product
Date:		April 2017
Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
Description:
@@ -236,6 +286,30 @@ Description:
		will show 0 until Discover Identity command result becomes
		available. The value can be polled.

What:		/sys/class/typec/<port>-{partner|cable}/identity/product_type_vdo1
Date:		October 2020
Contact:	Prashant Malani <pmalani@chromium.org>
Description:
		1st Product Type VDO of Discover Identity command result.
		The value will show 0 until Discover Identity command result becomes
		available and a valid Product Type VDO is returned.

What:		/sys/class/typec/<port>-{partner|cable}/identity/product_type_vdo2
Date:		October 2020
Contact:	Prashant Malani <pmalani@chromium.org>
Description:
		2nd Product Type VDO of Discover Identity command result.
		The value will show 0 until Discover Identity command result becomes
		available and a valid Product Type VDO is returned.

What:		/sys/class/typec/<port>-{partner|cable}/identity/product_type_vdo3
Date:		October 2020
Contact:	Prashant Malani <pmalani@chromium.org>
Description:
		3rd Product Type VDO of Discover Identity command result.
		The value will show 0 until Discover Identity command result becomes
		available and a valid Product Type VDO is returned.


USB Type-C port alternate mode devices.

+1 −0
Original line number Diff line number Diff line
@@ -5665,6 +5665,7 @@
					device);
				j = NO_REPORT_LUNS (don't use report luns
					command, uas only);
				k = NO_SAME (do not use WRITE_SAME, uas only)
				l = NOT_LOCKABLE (don't try to lock and
					unlock ejectable media, not on uas);
				m = MAX_SECTORS_64 (don't transfer more
+19 −0
Original line number Diff line number Diff line
@@ -147,6 +147,25 @@ properties:
    required:
      - port@0

  new-source-frs-typec-current:
    description: Initial current capability of the new source when vSafe5V
      is applied during PD3.0 Fast Role Swap. "Table 6-14 Fixed Supply PDO - Sink"
      of "USB Power Delivery Specification Revision 3.0, Version 1.2" provides the
      different power levels and "6.4.1.3.1.6 Fast Role Swap USB Type-C Current"
      provides a detailed description of the field. The sink PDO from current source
      reflects the current source's(i.e. transmitter of the FRS signal) power
      requirement during fr swap. The current sink (i.e. receiver of the FRS signal),
      a.k.a new source, should check if it will be able to satisfy the current source's,
      new sink's, requirement during frswap before enabling the frs signal reception.
      This property refers to maximum current capability that the current sink can
      satisfy. During FRS, VBUS voltage is at 5V, as the partners are in implicit
      contract, hence, the power level is only a function of the current capability.
      "1" refers to default USB power level as described by "Table 6-14 Fixed Supply PDO - Sink".
      "2" refers to 1.5A@5V.
      "3" refers to 3.0A@5V.
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [1, 2, 3]

required:
  - compatible

+70 −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/brcm,usb-pinmap.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom USB pin map Controller Device Tree Bindings

maintainers:
  - Al Cooper <alcooperx@gmail.com>

properties:
  compatible:
    items:
      - const: brcm,usb-pinmap

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1
    description: Interrupt for signals mirrored to out-gpios.

  in-gpios:
    description: Array of one or two GPIO pins used for input signals.

  brcm,in-functions:
    $ref: /schemas/types.yaml#/definitions/string-array
    description: Array of input signal names, one per gpio in in-gpios.

  brcm,in-masks:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    description: Array of enable and mask pairs, one per gpio in-gpios.

  out-gpios:
    description: Array of one GPIO pin used for output signals.

  brcm,out-functions:
    $ref: /schemas/types.yaml#/definitions/string-array
    description: Array of output signal names, one per gpio in out-gpios.

  brcm,out-masks:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    description: Array of enable, value, changed and clear masks, one
      per gpio in out-gpios.

required:
  - compatible
  - reg

additionalProperties: false

dependencies:
  in-gpios: [ interrupts ]

examples:
  - |
    usb_pinmap: usb-pinmap@22000d0 {
        compatible = "brcm,usb-pinmap";
        reg = <0x22000d0 0x4>;
        in-gpios = <&gpio 18 0>, <&gpio 19 0>;
        brcm,in-functions = "VBUS", "PWRFLT";
        brcm,in-masks = <0x8000 0x40000 0x10000 0x80000>;
        out-gpios = <&gpio 20 0>;
        brcm,out-functions = "PWRON";
        brcm,out-masks = <0x20000 0x800000 0x400000 0x200000>;
        interrupts = <0x0 0xb2 0x4>;
    };

...
Loading