-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'usb-for-v3.18' of git://git.kernel.org/pub/scm/linux/kerne…
…l/git/balbi/usb into usb-next Felipe writes: usb: changes for v3.18 merge window Quite big pull request this time. Audio and UVC gadgets can now be used with our configfs-based binding. We have three PHY drivers being removed because a new one has been added using new PHY framework. Gadget framework got a new ->reset callback preparing for some other changes to come on next merge window. A few new drivers came in as well; among those we have a new UDC driver from Xilinx and two new glue layers for DWC3 (ST and Qualcomm). DWC3 also learned about tracepoints which will help debugging quite a bit. Other than that, a big series of non-critical fixes and cleanups. All patches have been on linux-next for quite a bit of time and I boot tested these changes on platforms I have access to and work with mainline. Signed-of-by: Felipe Balbi <balbi@ti.com>
- Loading branch information
Showing
87 changed files
with
5,998 additions
and
2,565 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
What: /config/usb-gadget/gadget/functions/uac1.name | ||
Date: Sep 2014 | ||
KernelVersion: 3.18 | ||
Description: | ||
The attributes: | ||
|
||
audio_buf_size - audio buffer size | ||
fn_cap - capture pcm device file name | ||
fn_cntl - control device file name | ||
fn_play - playback pcm device file name | ||
req_buf_size - ISO OUT endpoint request buffer size | ||
req_count - ISO OUT endpoint request count |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
What: /config/usb-gadget/gadget/functions/uac2.name | ||
Date: Sep 2014 | ||
KernelVersion: 3.18 | ||
Description: | ||
The attributes: | ||
|
||
c_chmask - capture channel mask | ||
c_srate - capture sampling rate | ||
c_ssize - capture sample size (bytes) | ||
p_chmask - playback channel mask | ||
p_srate - playback sampling rate | ||
p_ssize - playback sample size (bytes) |
39 changes: 39 additions & 0 deletions
39
Documentation/devicetree/bindings/phy/qcom-dwc3-usb-phy.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
Qualcomm DWC3 HS AND SS PHY CONTROLLER | ||
-------------------------------------- | ||
|
||
DWC3 PHY nodes are defined to describe on-chip Synopsis Physical layer | ||
controllers. Each DWC3 PHY controller should have its own node. | ||
|
||
Required properties: | ||
- compatible: should contain one of the following: | ||
- "qcom,dwc3-hs-usb-phy" for High Speed Synopsis PHY controller | ||
- "qcom,dwc3-ss-usb-phy" for Super Speed Synopsis PHY controller | ||
- reg: offset and length of the DWC3 PHY controller register set | ||
- #phy-cells: must be zero | ||
- clocks: a list of phandles and clock-specifier pairs, one for each entry in | ||
clock-names. | ||
- clock-names: Should contain "ref" for the PHY reference clock | ||
|
||
Optional clocks: | ||
"xo" External reference clock | ||
|
||
Example: | ||
phy@100f8800 { | ||
compatible = "qcom,dwc3-hs-usb-phy"; | ||
reg = <0x100f8800 0x30>; | ||
clocks = <&gcc USB30_0_UTMI_CLK>; | ||
clock-names = "ref"; | ||
#phy-cells = <0>; | ||
|
||
status = "ok"; | ||
}; | ||
|
||
phy@100f8830 { | ||
compatible = "qcom,dwc3-ss-usb-phy"; | ||
reg = <0x100f8830 0x30>; | ||
clocks = <&gcc USB30_0_MASTER_CLK>; | ||
clock-names = "ref"; | ||
#phy-cells = <0>; | ||
|
||
status = "ok"; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
ST DWC3 glue logic | ||
|
||
This file documents the parameters for the dwc3-st driver. | ||
This driver controls the glue logic used to configure the dwc3 core on | ||
STiH407 based platforms. | ||
|
||
Required properties: | ||
- compatible : must be "st,stih407-dwc3" | ||
- reg : glue logic base address and USB syscfg ctrl register offset | ||
- reg-names : should be "reg-glue" and "syscfg-reg" | ||
- st,syscon : should be phandle to system configuration node which | ||
encompasses the glue registers | ||
- resets : list of phandle and reset specifier pairs. There should be two entries, one | ||
for the powerdown and softreset lines of the usb3 IP | ||
- reset-names : list of reset signal names. Names should be "powerdown" and "softreset" | ||
See: Documentation/devicetree/bindings/reset/st,sti-powerdown.txt | ||
See: Documentation/devicetree/bindings/reset/reset.txt | ||
|
||
- #address-cells, #size-cells : should be '1' if the device has sub-nodes | ||
with 'reg' property | ||
|
||
- pinctl-names : A pinctrl state named "default" must be defined | ||
See: Documentation/devicetree/bindings/pinctrl/pinctrl-binding.txt | ||
|
||
- pinctrl-0 : Pin control group | ||
See: Documentation/devicetree/bindings/pinctrl/pinctrl-binding.txt | ||
|
||
- ranges : allows valid 1:1 translation between child's address space and | ||
parent's address space | ||
|
||
Sub-nodes: | ||
The dwc3 core should be added as subnode to ST DWC3 glue as shown in the | ||
example below. The DT binding details of dwc3 can be found in: | ||
Documentation/devicetree/bindings/usb/dwc3.txt | ||
|
||
NB: The dr_mode property described in [1] is NOT optional for this driver, as the default value | ||
is "otg", which isn't supported by this SoC. Valid dr_mode values for dwc3-st are either "host" | ||
or "device". | ||
|
||
[1] Documentation/devicetree/bindings/usb/generic.txt | ||
|
||
Example: | ||
|
||
st_dwc3: dwc3@8f94000 { | ||
status = "disabled"; | ||
compatible = "st,stih407-dwc3"; | ||
reg = <0x08f94000 0x1000>, <0x110 0x4>; | ||
reg-names = "reg-glue", "syscfg-reg"; | ||
st,syscfg = <&syscfg_core>; | ||
resets = <&powerdown STIH407_USB3_POWERDOWN>, | ||
<&softreset STIH407_MIPHY2_SOFTRESET>; | ||
reset-names = "powerdown", | ||
"softreset"; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&pinctrl_usb3>; | ||
ranges; | ||
|
||
dwc3: dwc3@9900000 { | ||
compatible = "snps,dwc3"; | ||
reg = <0x09900000 0x100000>; | ||
interrupts = <GIC_SPI 155 IRQ_TYPE_NONE>; | ||
dr_mode = "host"; | ||
phys-names = "usb2-phy", "usb3-phy"; | ||
phys = <&usb2_picophy2>, <&phy_port2 MIPHY_TYPE_USB>; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
Qualcomm SuperSpeed DWC3 USB SoC controller | ||
|
||
Required properties: | ||
- compatible: should contain "qcom,dwc3" | ||
- clocks: A list of phandle + clock-specifier pairs for the | ||
clocks listed in clock-names | ||
- clock-names: Should contain the following: | ||
"core" Master/Core clock, have to be >= 125 MHz for SS | ||
operation and >= 60MHz for HS operation | ||
|
||
Optional clocks: | ||
"iface" System bus AXI clock. Not present on all platforms | ||
"sleep" Sleep clock, used when USB3 core goes into low | ||
power mode (U3). | ||
|
||
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/qcom,dwc3-usb-phy.txt | ||
|
||
Example device nodes: | ||
|
||
hs_phy: phy@100f8800 { | ||
compatible = "qcom,dwc3-hs-usb-phy"; | ||
reg = <0x100f8800 0x30>; | ||
clocks = <&gcc USB30_0_UTMI_CLK>; | ||
clock-names = "ref"; | ||
#phy-cells = <0>; | ||
|
||
status = "ok"; | ||
}; | ||
|
||
ss_phy: phy@100f8830 { | ||
compatible = "qcom,dwc3-ss-usb-phy"; | ||
reg = <0x100f8830 0x30>; | ||
clocks = <&gcc USB30_0_MASTER_CLK>; | ||
clock-names = "ref"; | ||
#phy-cells = <0>; | ||
|
||
status = "ok"; | ||
}; | ||
|
||
usb3_0: usb30@0 { | ||
compatible = "qcom,dwc3"; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
clocks = <&gcc USB30_0_MASTER_CLK>; | ||
clock-names = "core"; | ||
|
||
ranges; | ||
|
||
status = "ok"; | ||
|
||
dwc3@10000000 { | ||
compatible = "snps,dwc3"; | ||
reg = <0x10000000 0xcd00>; | ||
interrupts = <0 205 0x4>; | ||
phys = <&hs_phy>, <&ss_phy>; | ||
phy-names = "usb2-phy", "usb3-phy"; | ||
tx-fifo-resize; | ||
dr_mode = "host"; | ||
}; | ||
}; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
Renesas Electronics USBHS driver | ||
|
||
Required properties: | ||
- compatible: Must contain one of the following: | ||
- "renesas,usbhs-r8a7790" | ||
- "renesas,usbhs-r8a7791" | ||
- reg: Base address and length of the register for the USBHS | ||
- interrupts: Interrupt specifier for the USBHS | ||
- clocks: A list of phandle + clock specifier pairs | ||
|
||
Optional properties: | ||
- renesas,buswait: Integer to use BUSWAIT register | ||
- renesas,enable-gpio: A gpio specifier to check GPIO determining if USB | ||
function should be enabled | ||
- phys: phandle + phy specifier pair | ||
- phy-names: must be "usb" | ||
|
||
Example: | ||
usbhs: usb@e6590000 { | ||
compatible = "renesas,usbhs-r8a7790"; | ||
reg = <0 0xe6590000 0 0x100>; | ||
interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>; | ||
clocks = <&mstp7_clks R8A7790_CLK_HSUSB>; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
Xilinx USB2 device controller | ||
|
||
Required properties: | ||
- compatible : Should be "xlnx,usb2-device-4.00.a" | ||
- reg : Physical base address and size of the USB2 | ||
device registers map. | ||
- interrupts : Should contain single irq line of USB2 device | ||
controller | ||
- xlnx,has-builtin-dma : if DMA is included | ||
|
||
Example: | ||
axi-usb2-device@42e00000 { | ||
compatible = "xlnx,usb2-device-4.00.a"; | ||
interrupts = <0x0 0x39 0x1>; | ||
reg = <0x42e00000 0x10000>; | ||
xlnx,has-builtin-dma; | ||
}; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
/** | ||
* debug.c - DesignWare USB3 DRD Controller Debug/Trace Support | ||
* | ||
* Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com | ||
* | ||
* Author: Felipe Balbi <balbi@ti.com> | ||
* | ||
* This program is free software: you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2 of | ||
* the License as published by the Free Software Foundation. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
*/ | ||
|
||
#include "debug.h" | ||
|
||
void dwc3_trace(void (*trace)(struct va_format *), const char *fmt, ...) | ||
{ | ||
struct va_format vaf; | ||
va_list args; | ||
|
||
va_start(args, fmt); | ||
vaf.fmt = fmt; | ||
vaf.va = &args; | ||
|
||
trace(&vaf); | ||
|
||
va_end(args); | ||
} |
Oops, something went wrong.