Skip to content

Commit 8f28472

Browse files
committed
Merge tag 'usb-4.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
Pull USB updates from Greg KH: "Here is the big USB patchset for 4.12-rc1. Lots of good stuff here, after many many many attempts, the kernel finally has a working typeC interface, many thanks to Heikki and Guenter and others who have taken the time to get this merged. It wasn't an easy path for them at all. There's also a staging driver that uses this new api, which is why it's coming in through this tree. Along with that, there's the usual huge number of changes for gadget drivers, xhci, and other stuff. Johan also finally refactored pretty much every driver that was looking at USB endpoints to do it in a common way, which will help prevent any "badly-formed" devices from causing problems in drivers. That too wasn't a simple task. All of these have been in linux-next for a while with no reported issues" * tag 'usb-4.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (263 commits) staging: typec: Fairchild FUSB302 Type-c chip driver staging: typec: Type-C Port Controller Interface driver (tcpci) staging: typec: USB Type-C Port Manager (tcpm) usb: host: xhci: remove #ifdef around PM functions usb: musb: don't mark of_dev_auxdata as initdata usb: misc: legousbtower: Fix buffers on stack USB: Revert "cdc-wdm: fix "out-of-sync" due to missing notifications" usb: Make sure usb/phy/of gets built-in USB: storage: e-mail update in drivers/usb/storage/unusual_devs.h usb: host: xhci: print correct command ring address usb: host: xhci: delete sp_dma_buffers for scratchpad usb: host: xhci: using correct specification chapter reference for DCBAAP xhci: switch to pci_alloc_irq_vectors usb: host: xhci-plat: set resume_quirk() for R-Car controllers usb: host: xhci-plat: add resume_quirk() usb: host: xhci-plat: enable clk in resume timing usb: host: plat: Enable xHCI plat runtime PM USB: serial: ftdi_sio: add device ID for Microsemi/Arrow SF2PLUS Dev Kit USB: serial: constify static arrays usb: fix some references for /proc/bus/usb ...
2 parents 4ac4d58 + c034a43 commit 8f28472

File tree

230 files changed

+15570
-3809
lines changed

Some content is hidden

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

230 files changed

+15570
-3809
lines changed
+276
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,276 @@
1+
USB Type-C port devices (eg. /sys/class/typec/port0/)
2+
3+
What: /sys/class/typec/<port>/data_role
4+
Date: April 2017
5+
Contact: Heikki Krogerus <[email protected]>
6+
Description:
7+
The supported USB data roles. This attribute can be used for
8+
requesting data role swapping on the port. Swapping is supported
9+
as synchronous operation, so write(2) to the attribute will not
10+
return until the operation has finished. The attribute is
11+
notified about role changes so that poll(2) on the attribute
12+
wakes up. Change on the role will also generate uevent
13+
KOBJ_CHANGE on the port. The current role is show in brackets,
14+
for example "[host] device" when DRP port is in host mode.
15+
16+
Valid values: host, device
17+
18+
What: /sys/class/typec/<port>/power_role
19+
Date: April 2017
20+
Contact: Heikki Krogerus <[email protected]>
21+
Description:
22+
The supported power roles. This attribute can be used to request
23+
power role swap on the port when the port supports USB Power
24+
Delivery. Swapping is supported as synchronous operation, so
25+
write(2) to the attribute will not return until the operation
26+
has finished. The attribute is notified about role changes so
27+
that poll(2) on the attribute wakes up. Change on the role will
28+
also generate uevent KOBJ_CHANGE. The current role is show in
29+
brackets, for example "[source] sink" when in source mode.
30+
31+
Valid values: source, sink
32+
33+
What: /sys/class/typec/<port>/vconn_source
34+
Date: April 2017
35+
Contact: Heikki Krogerus <[email protected]>
36+
Description:
37+
Shows is the port VCONN Source. This attribute can be used to
38+
request VCONN swap to change the VCONN Source during connection
39+
when both the port and the partner support USB Power Delivery.
40+
Swapping is supported as synchronous operation, so write(2) to
41+
the attribute will not return until the operation has finished.
42+
The attribute is notified about VCONN source changes so that
43+
poll(2) on the attribute wakes up. Change on VCONN source also
44+
generates uevent KOBJ_CHANGE.
45+
46+
Valid values:
47+
- "no" when the port is not the VCONN Source
48+
- "yes" when the port is the VCONN Source
49+
50+
What: /sys/class/typec/<port>/power_operation_mode
51+
Date: April 2017
52+
Contact: Heikki Krogerus <[email protected]>
53+
Description:
54+
Shows the current power operational mode the port is in. The
55+
power operation mode means current level for VBUS. In case USB
56+
Power Delivery communication is used for negotiating the levels,
57+
power operation mode should show "usb_power_delivery".
58+
59+
Valid values:
60+
- default
61+
- 1.5A
62+
- 3.0A
63+
- usb_power_delivery
64+
65+
What: /sys/class/typec/<port>/preferred_role
66+
Date: April 2017
67+
Contact: Heikki Krogerus <[email protected]>
68+
Description:
69+
The user space can notify the driver about the preferred role.
70+
It should be handled as enabling of Try.SRC or Try.SNK, as
71+
defined in USB Type-C specification, in the port drivers. By
72+
default the preferred role should come from the platform.
73+
74+
Valid values: source, sink, none (to remove preference)
75+
76+
What: /sys/class/typec/<port>/supported_accessory_modes
77+
Date: April 2017
78+
Contact: Heikki Krogerus <[email protected]>
79+
Description:
80+
Space separated list of accessory modes, defined in the USB
81+
Type-C specification, the port supports.
82+
83+
What: /sys/class/typec/<port>/usb_power_delivery_revision
84+
Date: April 2017
85+
Contact: Heikki Krogerus <[email protected]>
86+
Description:
87+
Revision number of the supported USB Power Delivery
88+
specification, or 0 when USB Power Delivery is not supported.
89+
90+
What: /sys/class/typec/<port>/usb_typec_revision
91+
Date: April 2017
92+
Contact: Heikki Krogerus <[email protected]>
93+
Description:
94+
Revision number of the supported USB Type-C specification.
95+
96+
97+
USB Type-C partner devices (eg. /sys/class/typec/port0-partner/)
98+
99+
What: /sys/class/typec/<port>-partner/accessory_mode
100+
Date: April 2017
101+
Contact: Heikki Krogerus <[email protected]>
102+
Description:
103+
Shows the Accessory Mode name when the partner is an Accessory.
104+
The Accessory Modes are defined in USB Type-C Specification.
105+
106+
What: /sys/class/typec/<port>-partner/supports_usb_power_delivery
107+
Date: April 2017
108+
Contact: Heikki Krogerus <[email protected]>
109+
Description:
110+
Shows if the partner supports USB Power Delivery communication:
111+
Valid values: yes, no
112+
113+
What: /sys/class/typec/<port>-partner>/identity/
114+
Date: April 2017
115+
Contact: Heikki Krogerus <[email protected]>
116+
Description:
117+
This directory appears only if the port device driver is capable
118+
of showing the result of Discover Identity USB power delivery
119+
command. That will not always be possible even when USB power
120+
delivery is supported, for example when USB power delivery
121+
communication for the port is mostly handled in firmware. If the
122+
directory exists, it will have an attribute file for every VDO
123+
in Discover Identity command result.
124+
125+
What: /sys/class/typec/<port>-partner/identity/id_header
126+
Date: April 2017
127+
Contact: Heikki Krogerus <[email protected]>
128+
Description:
129+
ID Header VDO part of Discover Identity command result. The
130+
value will show 0 until Discover Identity command result becomes
131+
available. The value can be polled.
132+
133+
What: /sys/class/typec/<port>-partner/identity/cert_stat
134+
Date: April 2017
135+
Contact: Heikki Krogerus <[email protected]>
136+
Description:
137+
Cert Stat VDO part of Discover Identity command result. The
138+
value will show 0 until Discover Identity command result becomes
139+
available. The value can be polled.
140+
141+
What: /sys/class/typec/<port>-partner/identity/product
142+
Date: April 2017
143+
Contact: Heikki Krogerus <[email protected]>
144+
Description:
145+
Product VDO part of Discover Identity command result. The value
146+
will show 0 until Discover Identity command result becomes
147+
available. The value can be polled.
148+
149+
150+
USB Type-C cable devices (eg. /sys/class/typec/port0-cable/)
151+
152+
Note: Electronically Marked Cables will have a device also for one cable plug
153+
(eg. /sys/class/typec/port0-plug0). If the cable is active and has also SOP
154+
Double Prime controller (USB Power Deliver specification ch. 2.4) it will have
155+
second device also for the other plug. Both plugs may have alternate modes as
156+
described in USB Type-C and USB Power Delivery specifications.
157+
158+
What: /sys/class/typec/<port>-cable/type
159+
Date: April 2017
160+
Contact: Heikki Krogerus <[email protected]>
161+
Description:
162+
Shows if the cable is active.
163+
Valid values: active, passive
164+
165+
What: /sys/class/typec/<port>-cable/plug_type
166+
Date: April 2017
167+
Contact: Heikki Krogerus <[email protected]>
168+
Description:
169+
Shows type of the plug on the cable:
170+
- type-a - Standard A
171+
- type-b - Standard B
172+
- type-c
173+
- captive
174+
175+
What: /sys/class/typec/<port>-cable/identity/
176+
Date: April 2017
177+
Contact: Heikki Krogerus <[email protected]>
178+
Description:
179+
This directory appears only if the port device driver is capable
180+
of showing the result of Discover Identity USB power delivery
181+
command. That will not always be possible even when USB power
182+
delivery is supported. If the directory exists, it will have an
183+
attribute for every VDO returned by Discover Identity command.
184+
185+
What: /sys/class/typec/<port>-cable/identity/id_header
186+
Date: April 2017
187+
Contact: Heikki Krogerus <[email protected]>
188+
Description:
189+
ID Header VDO part of Discover Identity command result. The
190+
value will show 0 until Discover Identity command result becomes
191+
available. The value can be polled.
192+
193+
What: /sys/class/typec/<port>-cable/identity/cert_stat
194+
Date: April 2017
195+
Contact: Heikki Krogerus <[email protected]>
196+
Description:
197+
Cert Stat VDO part of Discover Identity command result. The
198+
value will show 0 until Discover Identity command result becomes
199+
available. The value can be polled.
200+
201+
What: /sys/class/typec/<port>-cable/identity/product
202+
Date: April 2017
203+
Contact: Heikki Krogerus <[email protected]>
204+
Description:
205+
Product VDO part of Discover Identity command result. The value
206+
will show 0 until Discover Identity command result becomes
207+
available. The value can be polled.
208+
209+
210+
Alternate Mode devices.
211+
212+
The alternate modes will have Standard or Vendor ID (SVID) assigned by USB-IF.
213+
The ports, partners and cable plugs can have alternate modes. A supported SVID
214+
will consist of a set of modes. Every SVID a port/partner/plug supports will
215+
have a device created for it, and every supported mode for a supported SVID will
216+
have its own directory under that device. Below <dev> refers to the device for
217+
the alternate mode.
218+
219+
What: /sys/class/typec/<port|partner|cable>/<dev>/svid
220+
Date: April 2017
221+
Contact: Heikki Krogerus <[email protected]>
222+
Description:
223+
The SVID (Standard or Vendor ID) assigned by USB-IF for this
224+
alternate mode.
225+
226+
What: /sys/class/typec/<port|partner|cable>/<dev>/mode<index>/
227+
Date: April 2017
228+
Contact: Heikki Krogerus <[email protected]>
229+
Description:
230+
Every supported mode will have its own directory. The name of
231+
a mode will be "mode<index>" (for example mode1), where <index>
232+
is the actual index to the mode VDO returned by Discover Modes
233+
USB power delivery command.
234+
235+
What: /sys/class/typec/<port|partner|cable>/<dev>/mode<index>/description
236+
Date: April 2017
237+
Contact: Heikki Krogerus <[email protected]>
238+
Description:
239+
Shows description of the mode. The description is optional for
240+
the drivers, just like with the Billboard Devices.
241+
242+
What: /sys/class/typec/<port|partner|cable>/<dev>/mode<index>/vdo
243+
Date: April 2017
244+
Contact: Heikki Krogerus <[email protected]>
245+
Description:
246+
Shows the VDO in hexadecimal returned by Discover Modes command
247+
for this mode.
248+
249+
What: /sys/class/typec/<port|partner|cable>/<dev>/mode<index>/active
250+
Date: April 2017
251+
Contact: Heikki Krogerus <[email protected]>
252+
Description:
253+
Shows if the mode is active or not. The attribute can be used
254+
for entering/exiting the mode with partners and cable plugs, and
255+
with the port alternate modes it can be used for disabling
256+
support for specific alternate modes. Entering/exiting modes is
257+
supported as synchronous operation so write(2) to the attribute
258+
does not return until the enter/exit mode operation has
259+
finished. The attribute is notified when the mode is
260+
entered/exited so poll(2) on the attribute wakes up.
261+
Entering/exiting a mode will also generate uevent KOBJ_CHANGE.
262+
263+
Valid values: yes, no
264+
265+
What: /sys/class/typec/<port>/<dev>/mode<index>/supported_roles
266+
Date: April 2017
267+
Contact: Heikki Krogerus <[email protected]>
268+
Description:
269+
Space separated list of the supported roles.
270+
271+
This attribute is available for the devices describing the
272+
alternate modes a port supports, and it will not be exposed with
273+
the devices presenting the alternate modes the partners or cable
274+
plugs support.
275+
276+
Valid values: source, sink
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
What: /sys/bus/platform/devices/ci_hdrc.0/role
2+
Date: Mar 2017
3+
Contact: Peter Chen <[email protected]>
4+
Description:
5+
It returns string "gadget" or "host" when read it, it indicates
6+
current controller role.
7+
8+
It will do role switch when write "gadget" or "host" to it.
9+
Only controller at dual-role configuration supports writing.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
What: /sys/devices/platform/<renesas_usb3's name>/role
2+
Date: March 2017
3+
KernelVersion: 4.13
4+
Contact: Yoshihiro Shimoda <[email protected]>
5+
Description:
6+
This file can be read and write.
7+
The file can show/change the drd mode of usb.
8+
9+
Write the following string to change the mode:
10+
"host" - switching mode from peripheral to host.
11+
"peripheral" - switching mode from host to peripheral.
12+
13+
Read the file, then it shows the following strings:
14+
"host" - The mode is host now.
15+
"peripheral" - The mode is peripheral now.

0 commit comments

Comments
 (0)