summaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-04-05 18:18:00 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-04-05 18:18:00 -0400
commit64dc9e2e7320f079b97c46b106133b58b8e18d40 (patch)
treeab010dc1337d44e29c2b32b7f11788620a91fe4f /Documentation
parent01a60e76b6392547ad3dca3ac05b9c886fa5da45 (diff)
parent9b192de60b5a584ee4ed967fb6758773c75e4643 (diff)
Merge tag 'usb-for-v3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-next
Felipe writes: usb: patches for v3.10 merge window Here is the big Gadget & PHY pull request. Many of us have been really busy lately getting multiple drivers to a better position. Since this pull request is so large, I will divide it in sections so it's easier to grasp what's included. - cleanups: . UDC drivers no longer touch gadget->dev, that's now udc-core responsibility . Many more UDC drivers converted to usb_gadget_map/unmap_request() . UDC drivers no longer initialize DMA-related fields from gadget's device structure . UDC drivers don't touch gadget.dev.driver directly . UDC drivers don't assign gadget.dev.release directly . Removal of some unused DMA_ADDR_INVALID . Introduction of CONFIG_USB_PHY . All phy drivers have been moved to drivers/usb/phy and renamed to a common naming scheme . Fix PHY layer so it never returns a NULL pointer, also fix all callers to avoid using IS_ERR_OR_NULL() . Sparse fixes all over the place . drivers/usb/otg/ has been deleted . Marvel drivers (mv_udc, ehci-mv, mv_otg and mv_u3d) improved clock usage - new features: . UDC core now provides a generic way for tracking and reporting UDC's state (not attached, resuming, suspended, addressed, default, etc) . twl4030-usb learned that it shouldn't be enabled during init . Full DT support for DWC3 has been implemented . ab8500-usb learned about pinctrl framework . nop PHY learned about DeviceTree and regulators . DWC3 learned about suspend/resume . DWC3 can now be compiled in host-only and gadget-only (as well as DRD) configurations . UVC now enables streaming endpoint based on negotiated speed . isp1301 now implements the PHY API properly . configfs-based interface for gadget drivers which will lead to the removal of all code which just combines functions together to build functional gadget drivers. . f_serial and f_obex were converted to new configfs interface while maintaining old interface around. - non-critical fixes: . UVC gadget driver got fixes for Endpoint usage and stream calculation . ab8500-usb fixed unbalanced clock and regulator API usage . twl4030-usb got a fix for when OMAP3 is booted with cable connected . fusb300_udc got a fix for DMA usage . UVC got fixes for two assertions of the USB Video Class Compliance specification revision 1.1 . build warning issues caused by recent addition of __must_check to regulator API These are all changes which deserve a mention, all other changes are related to these one or minor spelling fixes and other similar tasks. Signed-of-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/devicetree/bindings/usb/omap-usb.txt40
-rw-r--r--Documentation/devicetree/bindings/usb/samsung-usbphy.txt76
-rw-r--r--Documentation/devicetree/bindings/usb/usb-nop-xceiv.txt34
3 files changed, 137 insertions, 13 deletions
diff --git a/Documentation/devicetree/bindings/usb/omap-usb.txt b/Documentation/devicetree/bindings/usb/omap-usb.txt
index 1ef0ce71f8fa..662f0f1d2315 100644
--- a/Documentation/devicetree/bindings/usb/omap-usb.txt
+++ b/Documentation/devicetree/bindings/usb/omap-usb.txt
@@ -8,10 +8,10 @@ OMAP MUSB GLUE
8 and disconnect. 8 and disconnect.
9 - multipoint : Should be "1" indicating the musb controller supports 9 - multipoint : Should be "1" indicating the musb controller supports
10 multipoint. This is a MUSB configuration-specific setting. 10 multipoint. This is a MUSB configuration-specific setting.
11 - num_eps : Specifies the number of endpoints. This is also a 11 - num-eps : Specifies the number of endpoints. This is also a
12 MUSB configuration-specific setting. Should be set to "16" 12 MUSB configuration-specific setting. Should be set to "16"
13 - ram_bits : Specifies the ram address size. Should be set to "12" 13 - ram-bits : Specifies the ram address size. Should be set to "12"
14 - interface_type : This is a board specific setting to describe the type of 14 - interface-type : This is a board specific setting to describe the type of
15 interface between the controller and the phy. It should be "0" or "1" 15 interface between the controller and the phy. It should be "0" or "1"
16 specifying ULPI and UTMI respectively. 16 specifying ULPI and UTMI respectively.
17 - mode : Should be "3" to represent OTG. "1" signifies HOST and "2" 17 - mode : Should be "3" to represent OTG. "1" signifies HOST and "2"
@@ -29,18 +29,46 @@ usb_otg_hs: usb_otg_hs@4a0ab000 {
29 ti,hwmods = "usb_otg_hs"; 29 ti,hwmods = "usb_otg_hs";
30 ti,has-mailbox; 30 ti,has-mailbox;
31 multipoint = <1>; 31 multipoint = <1>;
32 num_eps = <16>; 32 num-eps = <16>;
33 ram_bits = <12>; 33 ram-bits = <12>;
34 ctrl-module = <&omap_control_usb>; 34 ctrl-module = <&omap_control_usb>;
35}; 35};
36 36
37Board specific device node entry 37Board specific device node entry
38&usb_otg_hs { 38&usb_otg_hs {
39 interface_type = <1>; 39 interface-type = <1>;
40 mode = <3>; 40 mode = <3>;
41 power = <50>; 41 power = <50>;
42}; 42};
43 43
44OMAP DWC3 GLUE
45 - compatible : Should be "ti,dwc3"
46 - ti,hwmods : Should be "usb_otg_ss"
47 - reg : Address and length of the register set for the device.
48 - interrupts : The irq number of this device that is used to interrupt the
49 MPU
50 - #address-cells, #size-cells : Must be present if the device has sub-nodes
51 - utmi-mode : controls the source of UTMI/PIPE status for VBUS and OTG ID.
52 It should be set to "1" for HW mode and "2" for SW mode.
53 - ranges: the child address space are mapped 1:1 onto the parent address space
54
55Sub-nodes:
56The dwc3 core should be added as subnode to omap dwc3 glue.
57- dwc3 :
58 The binding details of dwc3 can be found in:
59 Documentation/devicetree/bindings/usb/dwc3.txt
60
61omap_dwc3 {
62 compatible = "ti,dwc3";
63 ti,hwmods = "usb_otg_ss";
64 reg = <0x4a020000 0x1ff>;
65 interrupts = <0 93 4>;
66 #address-cells = <1>;
67 #size-cells = <1>;
68 utmi-mode = <2>;
69 ranges;
70};
71
44OMAP CONTROL USB 72OMAP CONTROL USB
45 73
46Required properties: 74Required properties:
diff --git a/Documentation/devicetree/bindings/usb/samsung-usbphy.txt b/Documentation/devicetree/bindings/usb/samsung-usbphy.txt
index 033194934f64..f575302e5173 100644
--- a/Documentation/devicetree/bindings/usb/samsung-usbphy.txt
+++ b/Documentation/devicetree/bindings/usb/samsung-usbphy.txt
@@ -1,20 +1,25 @@
1* Samsung's usb phy transceiver 1SAMSUNG USB-PHY controllers
2 2
3The Samsung's phy transceiver is used for controlling usb phy for 3** Samsung's usb 2.0 phy transceiver
4s3c-hsotg as well as ehci-s5p and ohci-exynos usb controllers 4
5across Samsung SOCs. 5The Samsung's usb 2.0 phy transceiver is used for controlling
6usb 2.0 phy for s3c-hsotg as well as ehci-s5p and ohci-exynos
7usb controllers across Samsung SOCs.
6TODO: Adding the PHY binding with controller(s) according to the under 8TODO: Adding the PHY binding with controller(s) according to the under
7developement generic PHY driver. 9developement generic PHY driver.
8 10
9Required properties: 11Required properties:
10 12
11Exynos4210: 13Exynos4210:
12- compatible : should be "samsung,exynos4210-usbphy" 14- compatible : should be "samsung,exynos4210-usb2phy"
13- reg : base physical address of the phy registers and length of memory mapped 15- reg : base physical address of the phy registers and length of memory mapped
14 region. 16 region.
17- clocks: Clock IDs array as required by the controller.
18- clock-names: names of clock correseponding IDs clock property as requested
19 by the controller driver.
15 20
16Exynos5250: 21Exynos5250:
17- compatible : should be "samsung,exynos5250-usbphy" 22- compatible : should be "samsung,exynos5250-usb2phy"
18- reg : base physical address of the phy registers and length of memory mapped 23- reg : base physical address of the phy registers and length of memory mapped
19 region. 24 region.
20 25
@@ -44,12 +49,69 @@ Example:
44 usbphy@125B0000 { 49 usbphy@125B0000 {
45 #address-cells = <1>; 50 #address-cells = <1>;
46 #size-cells = <1>; 51 #size-cells = <1>;
47 compatible = "samsung,exynos4210-usbphy"; 52 compatible = "samsung,exynos4210-usb2phy";
48 reg = <0x125B0000 0x100>; 53 reg = <0x125B0000 0x100>;
49 ranges; 54 ranges;
50 55
56 clocks = <&clock 2>, <&clock 305>;
57 clock-names = "xusbxti", "otg";
58
51 usbphy-sys { 59 usbphy-sys {
52 /* USB device and host PHY_CONTROL registers */ 60 /* USB device and host PHY_CONTROL registers */
53 reg = <0x10020704 0x8>; 61 reg = <0x10020704 0x8>;
54 }; 62 };
55 }; 63 };
64
65
66** Samsung's usb 3.0 phy transceiver
67
68Starting exynso5250, Samsung's SoC have usb 3.0 phy transceiver
69which is used for controlling usb 3.0 phy for dwc3-exynos usb 3.0
70controllers across Samsung SOCs.
71
72Required properties:
73
74Exynos5250:
75- compatible : should be "samsung,exynos5250-usb3phy"
76- reg : base physical address of the phy registers and length of memory mapped
77 region.
78- clocks: Clock IDs array as required by the controller.
79- clock-names: names of clocks correseponding to IDs in the clock property
80 as requested by the controller driver.
81
82Optional properties:
83- #address-cells: should be '1' when usbphy node has a child node with 'reg'
84 property.
85- #size-cells: should be '1' when usbphy node has a child node with 'reg'
86 property.
87- ranges: allows valid translation between child's address space and parent's
88 address space.
89
90- The child node 'usbphy-sys' to the node 'usbphy' is for the system controller
91 interface for usb-phy. It should provide the following information required by
92 usb-phy controller to control phy.
93 - reg : base physical address of PHY_CONTROL registers.
94 The size of this register is the total sum of size of all PHY_CONTROL
95 registers that the SoC has. For example, the size will be
96 '0x4' in case we have only one PHY_CONTROL register (e.g.
97 OTHERS register in S3C64XX or USB_PHY_CONTROL register in S5PV210)
98 and, '0x8' in case we have two PHY_CONTROL registers (e.g.
99 USBDEVICE_PHY_CONTROL and USBHOST_PHY_CONTROL registers in exynos4x).
100 and so on.
101
102Example:
103 usbphy@12100000 {
104 compatible = "samsung,exynos5250-usb3phy";
105 reg = <0x12100000 0x100>;
106 #address-cells = <1>;
107 #size-cells = <1>;
108 ranges;
109
110 clocks = <&clock 1>, <&clock 286>;
111 clock-names = "ext_xtal", "usbdrd30";
112
113 usbphy-sys {
114 /* USB device and host PHY_CONTROL registers */
115 reg = <0x10040704 0x8>;
116 };
117 };
diff --git a/Documentation/devicetree/bindings/usb/usb-nop-xceiv.txt b/Documentation/devicetree/bindings/usb/usb-nop-xceiv.txt
new file mode 100644
index 000000000000..d7e272671c7e
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/usb-nop-xceiv.txt
@@ -0,0 +1,34 @@
1USB NOP PHY
2
3Required properties:
4- compatible: should be usb-nop-xceiv
5
6Optional properties:
7- clocks: phandle to the PHY clock. Use as per Documentation/devicetree
8 /bindings/clock/clock-bindings.txt
9 This property is required if clock-frequency is specified.
10
11- clock-names: Should be "main_clk"
12
13- clock-frequency: the clock frequency (in Hz) that the PHY clock must
14 be configured to.
15
16- vcc-supply: phandle to the regulator that provides RESET to the PHY.
17
18- reset-supply: phandle to the regulator that provides power to the PHY.
19
20Example:
21
22 hsusb1_phy {
23 compatible = "usb-nop-xceiv";
24 clock-frequency = <19200000>;
25 clocks = <&osc 0>;
26 clock-names = "main_clk";
27 vcc-supply = <&hsusb1_vcc_regulator>;
28 reset-supply = <&hsusb1_reset_regulator>;
29 };
30
31hsusb1_phy is a NOP USB PHY device that gets its clock from an oscillator
32and expects that clock to be configured to 19.2MHz by the NOP PHY driver.
33hsusb1_vcc_regulator provides power to the PHY and hsusb1_reset_regulator
34controls RESET.