Skip to content

Commit ac9053d

Browse files
committed
Merge tag 'usb-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
Pull USB/PHY updates from Greg KH: "Here is the big set of USB and PHY driver patches for 4.17-rc1. Lots of USB typeC work happened this round, with code moving from the staging directory into the "real" part of the kernel, as well as new infrastructure being added to be able to handle the different types of "roles" that typeC requires. There is also the normal huge set of USB gadget controller and driver updates, along with XHCI changes, and a raft of other tiny fixes all over the USB tree. And the PHY driver updates are merged in here as well as they interacted with the USB drivers in some places. All of these have been in linux-next for a while with no reported issues" * tag 'usb-4.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (250 commits) Revert "USB: serial: ftdi_sio: add Id for Physik Instrumente E-870" usb: musb: gadget: misplaced out of bounds check usb: chipidea: imx: Fix ULPI on imx53 usb: chipidea: imx: Cleanup ci_hdrc_imx_platform_flag usb: chipidea: usbmisc: small clean up usb: chipidea: usbmisc: evdo can be set e/o reset usb: chipidea: usbmisc: evdo is only specific to OTG port USB: serial: ftdi_sio: add Id for Physik Instrumente E-870 usb: dwc3: gadget: never call ->complete() from ->ep_queue() usb: gadget: udc: core: update usb_ep_queue() documentation usb: host: Remove the deprecated ATH79 USB host config options usb: roles: Fix return value check in intel_xhci_usb_probe() USB: gadget: f_midi: fixing a possible double-free in f_midi usb: core: Add USB_QUIRK_DELAY_CTRL_MSG to usbcore quirks usb: core: Copy parameter string correctly and remove superfluous null check USB: announce bcdDevice as well as idVendor, idProduct. USB:fix USB3 devices behind USB3 hubs not resuming at hibernate thaw usb: hub: Reduce warning to notice on power loss USB: serial: ftdi_sio: add support for Harman FirmwareHubEmulator USB: serial: cp210x: add ELDAT Easywave RX09 id ...
2 parents f9ca6a5 + 5267c5e commit ac9053d

File tree

203 files changed

+9264
-3082
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

203 files changed

+9264
-3082
lines changed

Documentation/ABI/testing/sysfs-bus-usb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,16 @@ Description:
189189
The file will read "hotplug", "wired" and "not used" if the
190190
information is available, and "unknown" otherwise.
191191

192+
What: /sys/bus/usb/devices/.../(hub interface)/portX/over_current_count
193+
Date: February 2018
194+
Contact: Richard Leitner <[email protected]>
195+
Description:
196+
Most hubs are able to detect over-current situations on their
197+
ports and report them to the kernel. This attribute is to expose
198+
the number of over-current situation occurred on a specific port
199+
to user space. This file will contain an unsigned 32 bit value
200+
which wraps to 0 after its maximum is reached.
201+
192202
What: /sys/bus/usb/devices/.../(hub interface)/portX/usb3_lpm_permit
193203
Date: November 2015
194204
Contact: Lu Baolu <[email protected]>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
What: /sys/class/usb_role/
2+
Date: Jan 2018
3+
Contact: Heikki Krogerus <[email protected]>
4+
Description:
5+
Place in sysfs for USB Role Switches. USB Role Switch is a
6+
device that can select the data role (host or device) for USB
7+
port.
8+
9+
What: /sys/class/usb_role/<switch>/role
10+
Date: Jan 2018
11+
Contact: Heikki Krogerus <[email protected]>
12+
Description:
13+
The current role of the switch. This attribute can be used for
14+
requesting role swapping with non-USB Type-C ports. With USB
15+
Type-C ports, the ABI defined for USB Type-C connector class
16+
must be used.
17+
18+
Valid values:
19+
- none
20+
- host
21+
- device

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4392,6 +4392,64 @@
43924392

43934393
usbcore.nousb [USB] Disable the USB subsystem
43944394

4395+
usbcore.quirks=
4396+
[USB] A list of quirk entries to augment the built-in
4397+
usb core quirk list. List entries are separated by
4398+
commas. Each entry has the form
4399+
VendorID:ProductID:Flags. The IDs are 4-digit hex
4400+
numbers and Flags is a set of letters. Each letter
4401+
will change the built-in quirk; setting it if it is
4402+
clear and clearing it if it is set. The letters have
4403+
the following meanings:
4404+
a = USB_QUIRK_STRING_FETCH_255 (string
4405+
descriptors must not be fetched using
4406+
a 255-byte read);
4407+
b = USB_QUIRK_RESET_RESUME (device can't resume
4408+
correctly so reset it instead);
4409+
c = USB_QUIRK_NO_SET_INTF (device can't handle
4410+
Set-Interface requests);
4411+
d = USB_QUIRK_CONFIG_INTF_STRINGS (device can't
4412+
handle its Configuration or Interface
4413+
strings);
4414+
e = USB_QUIRK_RESET (device can't be reset
4415+
(e.g morph devices), don't use reset);
4416+
f = USB_QUIRK_HONOR_BNUMINTERFACES (device has
4417+
more interface descriptions than the
4418+
bNumInterfaces count, and can't handle
4419+
talking to these interfaces);
4420+
g = USB_QUIRK_DELAY_INIT (device needs a pause
4421+
during initialization, after we read
4422+
the device descriptor);
4423+
h = USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL (For
4424+
high speed and super speed interrupt
4425+
endpoints, the USB 2.0 and USB 3.0 spec
4426+
require the interval in microframes (1
4427+
microframe = 125 microseconds) to be
4428+
calculated as interval = 2 ^
4429+
(bInterval-1).
4430+
Devices with this quirk report their
4431+
bInterval as the result of this
4432+
calculation instead of the exponent
4433+
variable used in the calculation);
4434+
i = USB_QUIRK_DEVICE_QUALIFIER (device can't
4435+
handle device_qualifier descriptor
4436+
requests);
4437+
j = USB_QUIRK_IGNORE_REMOTE_WAKEUP (device
4438+
generates spurious wakeup, ignore
4439+
remote wakeup capability);
4440+
k = USB_QUIRK_NO_LPM (device can't handle Link
4441+
Power Management);
4442+
l = USB_QUIRK_LINEAR_FRAME_INTR_BINTERVAL
4443+
(Device reports its bInterval as linear
4444+
frames instead of the USB 2.0
4445+
calculation);
4446+
m = USB_QUIRK_DISCONNECT_SUSPEND (Device needs
4447+
to be disconnected before suspend to
4448+
prevent spurious wakeup);
4449+
n = USB_QUIRK_DELAY_CTRL_MSG (Device needs a
4450+
pause after every control message);
4451+
Example: quirks=0781:5580:bk,0a5c:5834:gij
4452+
43954453
usbhid.mousepoll=
43964454
[USBHID] The interval which mice are to be polled at.
43974455

Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,29 @@ Example:
7474
reboot-offset = <0x4>;
7575
};
7676

77+
-----------------------------------------------------------------------
78+
Hisilicon Hi3798CV200 Peripheral Controller
79+
80+
The Hi3798CV200 Peripheral Controller controls peripherals, queries
81+
their status, and configures some functions of peripherals.
82+
83+
Required properties:
84+
- compatible: Should contain "hisilicon,hi3798cv200-perictrl", "syscon"
85+
and "simple-mfd".
86+
- reg: Register address and size of Peripheral Controller.
87+
- #address-cells: Should be 1.
88+
- #size-cells: Should be 1.
89+
90+
Examples:
91+
92+
perictrl: peripheral-controller@8a20000 {
93+
compatible = "hisilicon,hi3798cv200-perictrl", "syscon",
94+
"simple-mfd";
95+
reg = <0x8a20000 0x1000>;
96+
#address-cells = <1>;
97+
#size-cells = <1>;
98+
};
99+
77100
-----------------------------------------------------------------------
78101
Hisilicon Hi6220 system controller
79102

Documentation/devicetree/bindings/phy/meson-gxl-usb2-phy.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ Required properties:
66
- #phys-cells: must be 0 (see phy-bindings.txt in this directory)
77

88
Optional properties:
9+
- clocks: a phandle to the clock of this PHY
10+
- clock-names: must be "phy"
11+
- resets: a phandle to the reset line of this PHY
12+
- reset-names: must be "phy"
913
- phy-supply: see phy-bindings.txt in this directory
1014

1115

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
* Amlogic Meson GXL and GXM USB3 PHY and OTG detection binding
2+
3+
Required properties:
4+
- compatible: Should be "amlogic,meson-gxl-usb3-phy"
5+
- #phys-cells: must be 0 (see phy-bindings.txt in this directory)
6+
- reg: The base address and length of the registers
7+
- interrupts: the interrupt specifier for the OTG detection
8+
- clocks: phandles to the clocks for
9+
- the USB3 PHY
10+
- and peripheral mode/OTG detection
11+
- clock-names: must contain "phy" and "peripheral"
12+
- resets: phandle to the reset lines for:
13+
- the USB3 PHY and
14+
- peripheral mode/OTG detection
15+
- reset-names: must contain "phy" and "peripheral"
16+
17+
Optional properties:
18+
- phy-supply: see phy-bindings.txt in this directory
19+
20+
21+
Example:
22+
usb3_phy0: phy@78080 {
23+
compatible = "amlogic,meson-gxl-usb3-phy";
24+
#phy-cells = <0>;
25+
reg = <0x0 0x78080 0x0 0x20>;
26+
interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
27+
clocks = <&clkc CLKID_USB_OTG>, <&clkc_AO CLKID_AO_CEC_32K>;
28+
clock-names = "phy", "peripheral";
29+
resets = <&reset RESET_USB_OTG>, <&reset RESET_USB_OTG>;
30+
reset-names = "phy", "peripheral";
31+
};
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
HiSilicon STB PCIE/SATA/USB3 PHY
2+
3+
Required properties:
4+
- compatible: Should be "hisilicon,hi3798cv200-combphy"
5+
- reg: Should be the address space for COMBPHY configuration and state
6+
registers in peripheral controller, e.g. PERI_COMBPHY0_CFG and
7+
PERI_COMBPHY0_STATE for COMBPHY0 Hi3798CV200 SoC.
8+
- #phy-cells: Should be 1. The cell number is used to select the phy mode
9+
as defined in <dt-bindings/phy/phy.h>.
10+
- clocks: The phandle to clock provider and clock specifier pair.
11+
- resets: The phandle to reset controller and reset specifier pair.
12+
13+
Refer to phy/phy-bindings.txt for the generic PHY binding properties.
14+
15+
Optional properties:
16+
- hisilicon,fixed-mode: If the phy device doesn't support mode select
17+
but a fixed mode setting, the property should be present to specify
18+
the particular mode.
19+
- hisilicon,mode-select-bits: If the phy device support mode select,
20+
this property should be present to specify the register bits in
21+
peripheral controller, as a 3 integers tuple:
22+
<register_offset bit_shift bit_mask>.
23+
24+
Notes:
25+
- Between hisilicon,fixed-mode and hisilicon,mode-select-bits, one and only
26+
one of them should be present.
27+
- The device node should be a child of peripheral controller that contains
28+
COMBPHY configuration/state and PERI_CTRL register used to select PHY mode.
29+
Refer to arm/hisilicon/hisilicon.txt for the parent peripheral controller
30+
bindings.
31+
32+
Examples:
33+
34+
perictrl: peripheral-controller@8a20000 {
35+
compatible = "hisilicon,hi3798cv200-perictrl", "syscon",
36+
"simple-mfd";
37+
reg = <0x8a20000 0x1000>;
38+
#address-cells = <1>;
39+
#size-cells = <1>;
40+
ranges = <0x0 0x8a20000 0x1000>;
41+
42+
combphy0: phy@850 {
43+
compatible = "hisilicon,hi3798cv200-combphy";
44+
reg = <0x850 0x8>;
45+
#phy-cells = <1>;
46+
clocks = <&crg HISTB_COMBPHY0_CLK>;
47+
resets = <&crg 0x188 4>;
48+
hisilicon,fixed-mode = <PHY_TYPE_USB3>;
49+
};
50+
51+
combphy1: phy@858 {
52+
compatible = "hisilicon,hi3798cv200-combphy";
53+
reg = <0x858 0x8>;
54+
#phy-cells = <1>;
55+
clocks = <&crg HISTB_COMBPHY1_CLK>;
56+
resets = <&crg 0x188 12>;
57+
hisilicon,mode-select-bits = <0x0008 11 (0x3 << 11)>;
58+
};
59+
};
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
Device tree bindings for HiSilicon INNO USB2 PHY
2+
3+
Required properties:
4+
- compatible: Should be one of the following strings:
5+
"hisilicon,inno-usb2-phy",
6+
"hisilicon,hi3798cv200-usb2-phy".
7+
- reg: Should be the address space for PHY configuration register in peripheral
8+
controller, e.g. PERI_USB0 for USB 2.0 PHY01 on Hi3798CV200 SoC.
9+
- clocks: The phandle and clock specifier pair for INNO USB2 PHY device
10+
reference clock.
11+
- resets: The phandle and reset specifier pair for INNO USB2 PHY device reset
12+
signal.
13+
- #address-cells: Must be 1.
14+
- #size-cells: Must be 0.
15+
16+
The INNO USB2 PHY device should be a child node of peripheral controller that
17+
contains the PHY configuration register, and each device suppports up to 2 PHY
18+
ports which are represented as child nodes of INNO USB2 PHY device.
19+
20+
Required properties for PHY port node:
21+
- reg: The PHY port instance number.
22+
- #phy-cells: Defined by generic PHY bindings. Must be 0.
23+
- resets: The phandle and reset specifier pair for PHY port reset signal.
24+
25+
Refer to phy/phy-bindings.txt for the generic PHY binding properties
26+
27+
Example:
28+
29+
perictrl: peripheral-controller@8a20000 {
30+
compatible = "hisilicon,hi3798cv200-perictrl", "simple-mfd";
31+
reg = <0x8a20000 0x1000>;
32+
#address-cells = <1>;
33+
#size-cells = <1>;
34+
ranges = <0x0 0x8a20000 0x1000>;
35+
36+
usb2_phy1: usb2-phy@120 {
37+
compatible = "hisilicon,hi3798cv200-usb2-phy";
38+
reg = <0x120 0x4>;
39+
clocks = <&crg HISTB_USB2_PHY1_REF_CLK>;
40+
resets = <&crg 0xbc 4>;
41+
#address-cells = <1>;
42+
#size-cells = <0>;
43+
44+
usb2_phy1_port0: phy@0 {
45+
reg = <0>;
46+
#phy-cells = <0>;
47+
resets = <&crg 0xbc 8>;
48+
};
49+
50+
usb2_phy1_port1: phy@1 {
51+
reg = <1>;
52+
#phy-cells = <0>;
53+
resets = <&crg 0xbc 9>;
54+
};
55+
};
56+
57+
usb2_phy2: usb2-phy@124 {
58+
compatible = "hisilicon,hi3798cv200-usb2-phy";
59+
reg = <0x124 0x4>;
60+
clocks = <&crg HISTB_USB2_PHY2_REF_CLK>;
61+
resets = <&crg 0xbc 6>;
62+
#address-cells = <1>;
63+
#size-cells = <0>;
64+
65+
usb2_phy2_port0: phy@0 {
66+
reg = <0>;
67+
#phy-cells = <0>;
68+
resets = <&crg 0xbc 10>;
69+
};
70+
};
71+
};
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
Device tree binding documentation for Motorola Mapphone MDM6600 USB PHY
2+
3+
Required properties:
4+
- compatible Must be "motorola,mapphone-mdm6600"
5+
- enable-gpios GPIO to enable the USB PHY
6+
- power-gpios GPIO to power on the device
7+
- reset-gpios GPIO to reset the device
8+
- motorola,mode-gpios Two GPIOs to configure MDM6600 USB start-up mode for
9+
normal mode versus USB flashing mode
10+
- motorola,cmd-gpios Three GPIOs to control the power state of the MDM6600
11+
- motorola,status-gpios Three GPIOs to read the power state of the MDM6600
12+
13+
Example:
14+
15+
usb-phy {
16+
compatible = "motorola,mapphone-mdm6600";
17+
enable-gpios = <&gpio3 31 GPIO_ACTIVE_LOW>;
18+
power-gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>;
19+
reset-gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>;
20+
motorola,mode-gpios = <&gpio5 20 GPIO_ACTIVE_HIGH>,
21+
<&gpio5 21 GPIO_ACTIVE_HIGH>;
22+
motorola,cmd-gpios = <&gpio4 7 GPIO_ACTIVE_HIGH>,
23+
<&gpio4 8 GPIO_ACTIVE_HIGH>,
24+
<&gpio5 14 GPIO_ACTIVE_HIGH>;
25+
motorola,status-gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>,
26+
<&gpio2 21 GPIO_ACTIVE_HIGH>,
27+
<&gpio2 23 GPIO_ACTIVE_HIGH>;
28+
#phy-cells = <0>;
29+
};

Documentation/devicetree/bindings/phy/phy-mtk-tphy.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ Optional properties (controller (parent) node):
2727
- reg : offset and length of register shared by multiple ports,
2828
exclude port's private register. It is needed on mt2701
2929
and mt8173, but not on mt2712.
30+
- mediatek,src-ref-clk-mhz : frequency of reference clock for slew rate
31+
calibrate
32+
- mediatek,src-coef : coefficient for slew rate calibrate, depends on
33+
SoC process
3034

3135
Required properties (port (child) node):
3236
- reg : address and length of the register set for the port.

0 commit comments

Comments
 (0)