blob: 2ee0461fa1b99fa54076d0c42479d5663326a27a [file] [log] [blame]
Pavankumar Kondetieaea7fe2011-10-27 14:46:45 +05301MSM SoC HSUSB controllers
2
3OTG:
4
5Required properties :
6- compatible : should be "qcom,hsusb-otg"
7- regs : offset and length of the register set in the memory map
8- interrupts: IRQ line
Jack Pham3f4459e2012-09-28 15:55:16 -07009- interrupt-names: OTG interrupt name(s) referenced in interrupts above
10 HSUSB OTG expects "core_irq" and optionally "async_irq".
Pavankumar Kondetieaea7fe2011-10-27 14:46:45 +053011- qcom,hsusb-otg-phy-type: PHY type can be one of
12 1 - Chipidea 45nm PHY
13 2 - Synopsis 28nm PHY
14- qcom,hsusb-otg-mode: Operational mode. Can be one of
15 1 - Peripheral only mode
16 2 - Host only mode
17 3 - OTG mode
18 Based on the mode, OTG driver registers platform devices for
19 gadget and host.
20- qcom,hsusb-otg-control: OTG control (VBUS and ID notifications)
21 can be one of
22 1 - PHY control
23 2 - PMIC control
24 3 - User control (via debugfs)
25
26Optional properties :
Manu Gautam0ddbd922012-09-21 17:17:38 +053027- qcom,hsusb-otg-disable-reset: If present then core is RESET only during
28 init, otherwise core is RESET for every cable disconnect as well
29- qcom,hsusb-otg-pnoc-errata-fix: If present then workaround for PNOC
30 performance issue is applied which requires changing the mem-type
31 attribute via VMIDMT.
Pavankumar Kondetieaea7fe2011-10-27 14:46:45 +053032- qcom,hsusb-otg-default-mode: The default USB mode after boot-up.
33 Applicable only when OTG is controlled by user. Can be one of
34 0 - None. Low power mode
35 1 - Peripheral
36 2 - Host
37- qcom,hsusb-otg-phy-init-seq: PHY configuration sequence. val, reg pairs
38 terminate with -1
39- qcom,hsusb-otg-power-budget: VBUS power budget in mA
40 0 will be treated as 500mA
41- qcom,hsusb-otg-pclk-src-name: The source of pclk
42- qcom,hsusb-otg-pmic-id-irq: ID, routed to PMIC IRQ number
Manu Gautam2e8ac102012-08-31 11:41:16 -070043- Refer to "Documentation/devicetree/bindings/arm/msm/msm_bus.txt" for
44 below optional properties:
45 - qcom,msm_bus,name
46 - qcom,msm_bus,num_cases
47 - qcom,msm_bus,active_only
48 - qcom,msm_bus,num_paths
49 - qcom,msm_bus,vectors
Ido Shayevitza7114b92013-01-13 13:34:47 +020050- qcom,hsusb-otg-lpm-on-dev-suspend: If present then USB enter to
51 low power mode upon receiving bus suspend.
Ido Shayevitz26193352013-01-21 23:16:54 +020052- qcom,hsusb-otg-clk-always-on-workaround: If present then USB core clocks
53 remain active upon receiving bus suspend and USB cable is connected.
54 Used for allowing USB to respond for remote wakup.
Pavankumar Kondetieaea7fe2011-10-27 14:46:45 +053055
56Example HSUSB OTG controller device node :
David Brown225abee2012-02-09 22:28:50 -080057 usb@f9690000 {
Pavankumar Kondetieaea7fe2011-10-27 14:46:45 +053058 compatible = "qcom,hsusb-otg";
David Brown225abee2012-02-09 22:28:50 -080059 reg = <0xf9690000 0x400>;
Pavankumar Kondetieaea7fe2011-10-27 14:46:45 +053060 interrupts = <134>;
Jack Pham3f4459e2012-09-28 15:55:16 -070061 interrupt-names = "core_irq";
Pavankumar Kondetieaea7fe2011-10-27 14:46:45 +053062
63 qcom,hsusb-otg-phy-type = <2>;
64 qcom,hsusb-otg-mode = <1>;
65 qcom,hsusb-otg-otg-control = <1>;
Manu Gautambd53fba2012-07-31 16:13:06 +053066 qcom,hsusb-otg-disable-reset;
Manu Gautam0ddbd922012-09-21 17:17:38 +053067 qcom,hsusb-otg-pnoc-errata-fix;
Pavankumar Kondetieaea7fe2011-10-27 14:46:45 +053068 qcom,hsusb-otg-default-mode = <2>;
David Brown225abee2012-02-09 22:28:50 -080069 qcom,hsusb-otg-phy-init-seq = <0x01 0x90 0xffffffff>;
Pavankumar Kondetieaea7fe2011-10-27 14:46:45 +053070 qcom,hsusb-otg-power-budget = <500>;
71 qcom,hsusb-otg-pclk-src-name = "dfab_usb_clk";
72 qcom,hsusb-otg-pmic-id-irq = <47>
Ido Shayevitza7114b92013-01-13 13:34:47 +020073 qcom,hsusb-otg-lpm-on-dev-suspend;
Ido Shayevitz26193352013-01-21 23:16:54 +020074 qcom,hsusb-otg-clk-always-on-workaround;
Manu Gautam2e8ac102012-08-31 11:41:16 -070075
76 qcom,msm_bus,name = "usb2";
77 qcom,msm_bus,num_cases = <2>;
78 qcom,msm_bus,active_only = <0>;
79 qcom,msm_bus,num_paths = <1>;
80 qcom,msm_bus,vectors =
81 <87 512 0 0>,
82 <87 512 60000000 960000000>;
Pavankumar Kondetieaea7fe2011-10-27 14:46:45 +053083 };
Shimrit Malichi255b5342012-08-02 21:01:43 +030084
Manu Gautam43c61a12012-08-22 17:09:37 -070085ANDROID USB:
86
87Required properties:
88- compatible: should be "qcom,android-usb"
89
90Optional properties :
Vijayavardhan Vennapusa8ceade82012-11-01 15:11:21 +053091- reg : offset and length of memory region that is used by device to
Manu Gautam43c61a12012-08-22 17:09:37 -070092 update USB PID and serial numbers used by bootloader in DLOAD mode.
Vijayavardhan Vennapusa8ceade82012-11-01 15:11:21 +053093- qcom,android-usb-swfi-latency : value to be used by device to vote
94 for DMA latency in microsecs.
Manu Gautam43c61a12012-08-22 17:09:37 -070095
96Example Android USB device node :
97 android_usb@fc42b0c8 {
98 compatible = "qcom,android-usb";
99 reg = <0xfc42b0c8 0xc8>;
Vijayavardhan Vennapusa8ceade82012-11-01 15:11:21 +0530100 qcom,android-usb-swfi-latency = <1>;
Manu Gautam43c61a12012-08-22 17:09:37 -0700101 };
102
103
Shimrit Malichi255b5342012-08-02 21:01:43 +0300104BAM:
105
106Required properties:
107- compatible: should be "qcom,usb-bam-msm"
Manu Gautam6afd5872012-07-25 09:16:55 +0530108- reg : pairs of physical base addresses and region sizes
109 of all the memory mapped BAM devices present
Jack Phamd61ff562012-11-21 19:25:53 +0200110- reg-names : Register region name(s), in 1-1 correspondence with the
111 registers in 'reg'. This list should contain at least as many names
112 as the number of unique values given in both 'usb-active-bam' and
113 all the subnodes' 'usb-bam-type' properties.
114
115 If SSUSB_BAM is used, "ssusb" should be present.
116 If HSUSB_BAM is used, "hsusb" should be present.
117 If HSIC_BAM is used, "hsic" should be present.
118
119 If a QSCRATCH RAM1 register is designated for providing USB3
120 private memory to use as a BAM FIFO, specify "qscratch_ram1_reg".
Manu Gautam6afd5872012-07-25 09:16:55 +0530121- interrupts: IRQ lines for BAM devices
Jack Phamd61ff562012-11-21 19:25:53 +0200122- interrupt-names: BAM interrupt name(s), in 1-1 correspondence with
123 'interrupts' above.
124
125 If SSUSB_BAM is used, "ssusb" should be present.
126 If HSUSB_BAM is used, "hsusb" should be present.
127 If HSIC_BAM is used, "hsic" should be present.
Shimrit Malichi255b5342012-08-02 21:01:43 +0300128- qcom,usb-active-bam: active BAM type. Can be one of
Manu Gautam6afd5872012-07-25 09:16:55 +0530129 0 - SSUSB_BAM
130 1 - HSUSB_BAM
131 2 - HSIC_BAM
Shimrit Malichi255b5342012-08-02 21:01:43 +0300132- qcom,usb-total-bam-num: total number of BAMs that are supported
133- qcom,usb-bam-num-pipes: max number of pipes that can be used
134- qcom,usb-base-address: physical base address of the BAM
135
136A number of USB BAM pipe parameters are represented as sub-nodes:
137
138Subnode Required:
Manu Gautam6afd5872012-07-25 09:16:55 +0530139- label: a string describing the pipe's direction and BAM instance under use
Shimrit Malichi255b5342012-08-02 21:01:43 +0300140- qcom,usb-bam-type: BAM type. Can be one of
Manu Gautam6afd5872012-07-25 09:16:55 +0530141 0 - SSUSB_BAM
142 1 - HSUSB_BAM
143 2 - HSIC_BAM
144- qcom,usb-bam-mem-type: Type of memory used by this PIPE. Can be one of
145 0 - Uses SPS's dedicated pipe memory
146 1 - USB's private memory residing @ 'qcom,usb-base-address'
147 2 - System RAM allocated by driver
Shimrit Malichi255b5342012-08-02 21:01:43 +0300148- qcom,src-bam-physical-address: source BAM physical address
149- qcom,src-bam-pipe-index: source BAM pipe index
150- qcom,dst-bam-physical-address: destination BAM physical address
151- qcom,dst-bam-pipe-index: destination BAM pipe index
152- qcom,data-fifo-offset: data fifo offset address
153- qcom,data-fifo-size: data fifo size
154- qcom,descriptor-fifo-offset: descriptor fifo offset address
155- qcom,descriptor-fifo-size: descriptor fifo size
156
Manu Gautam355270a2012-12-21 16:52:50 +0530157Optional Properties for Subnode:
158- qcom,reset-bam-on-connect: If present then BAM is RESET before connecting
159 pipe. This may be required if BAM peripheral is also reset before connect.
160
Manu Gautamd21e2282012-08-23 13:38:50 -0700161Optional properties :
162- qcom,ignore-core-reset-ack: If present then BAM ignores ACK from USB core
163 while performing PIPE RESET
164
Shimrit Malichi255b5342012-08-02 21:01:43 +0300165Example USB BAM controller device node:
166
167 qcom,usbbam@f9304000 {
168 compatible = "qcom,usb-bam-msm";
Manu Gautam6afd5872012-07-25 09:16:55 +0530169 reg = <0xf9304000 0x5000>,
Manu Gautam4658d892012-08-20 18:24:52 -0700170 <0xf9a44000 0x11000>,
171 <0xf92f880c 0x4>;
172 reg-names = "ssusb", "hsusb", "qscratch_ram1_reg";
Manu Gautam6afd5872012-07-25 09:16:55 +0530173 interrupts = <0 132 0 0 135 0>;
174 interrupt-names = "ssusb", "hsusb";
Shimrit Malichi255b5342012-08-02 21:01:43 +0300175 qcom,usb-active-bam = <0>;
Manu Gautam6afd5872012-07-25 09:16:55 +0530176 qcom,usb-total-bam-num = <2>;
Shimrit Malichi255b5342012-08-02 21:01:43 +0300177 qcom,usb-bam-num-pipes = <16>;
178 qcom,usb-base-address = <0xf9200000>;
Manu Gautamd21e2282012-08-23 13:38:50 -0700179 qcom,ignore-core-reset-ack;
Shimrit Malichi255b5342012-08-02 21:01:43 +0300180
181 qcom,pipe1 {
182 label = "usb-to-peri-qdss-dwc3";
183 qcom,usb-bam-type = <0>;
Manu Gautam6afd5872012-07-25 09:16:55 +0530184 qcom,usb-bam-mem-type = <1>;
Shimrit Malichi255b5342012-08-02 21:01:43 +0300185 qcom,src-bam-physical-address = <0>;
186 qcom,src-bam-pipe-index = <0>;
187 qcom,dst-bam-physical-address = <0>;
188 qcom,dst-bam-pipe-index = <0>;
189 qcom,data-fifo-offset = <0>;
190 qcom,data-fifo-size = <0>;
191 qcom,descriptor-fifo-offset = <0>;
192 qcom,descriptor-fifo-size = <0>;
193 };
194
195 qcom,pipe2 {
196 label = "peri-to-usb-qdss-dwc3";
197 qcom,usb-bam-type = <0>;
Manu Gautam6afd5872012-07-25 09:16:55 +0530198 qcom,usb-bam-mem-type = <1>;
Shimrit Malichi255b5342012-08-02 21:01:43 +0300199 qcom,src-bam-physical-address = <0xfc37C000>;
200 qcom,src-bam-pipe-index = <0>;
201 qcom,dst-bam-physical-address = <0xf9304000>;
202 qcom,dst-bam-pipe-index = <2>;
203 qcom,data-fifo-offset = <0xf0000>;
204 qcom,data-fifo-size = <0x4000>;
205 qcom,descriptor-fifo-offset = <0xf4000>;
206 qcom,descriptor-fifo-size = <0x1400>;
Manu Gautam355270a2012-12-21 16:52:50 +0530207 qcom,reset-bam-on-connect;
Shimrit Malichi255b5342012-08-02 21:01:43 +0300208 };
Manu Gautam6afd5872012-07-25 09:16:55 +0530209
210 qcom,pipe3 {
211 label = "usb-to-peri-qdss-hsusb";
212 qcom,usb-bam-type = <1>;
Manu Gautam4658d892012-08-20 18:24:52 -0700213 qcom,usb-bam-mem-type = <1>;
Manu Gautam6afd5872012-07-25 09:16:55 +0530214 qcom,src-bam-physical-address = <0>;
215 qcom,src-bam-pipe-index = <0>;
216 qcom,dst-bam-physical-address = <0>;
217 qcom,dst-bam-pipe-index = <0>;
218 qcom,data-fifo-offset = <0>;
219 qcom,data-fifo-size = <0>;
220 qcom,descriptor-fifo-offset = <0>;
221 qcom,descriptor-fifo-size = <0>;
222 };
223
224 qcom,pipe4 {
225 label = "peri-to-usb-qdss-hsusb";
226 qcom,usb-bam-type = <1>;
Manu Gautam4658d892012-08-20 18:24:52 -0700227 qcom,usb-bam-mem-type = <1>;
Manu Gautam6afd5872012-07-25 09:16:55 +0530228 qcom,src-bam-physical-address = <0xfc37c000>;
229 qcom,src-bam-pipe-index = <0>;
230 qcom,dst-bam-physical-address = <0xf9a44000>;
231 qcom,dst-bam-pipe-index = <2>;
Manu Gautam4658d892012-08-20 18:24:52 -0700232 qcom,data-fifo-offset = <0xf4000>;
233 qcom,data-fifo-size = <0x1000>;
234 qcom,descriptor-fifo-offset = <0xf5000>;
235 qcom,descriptor-fifo-size = <0x400>;
Manu Gautam6afd5872012-07-25 09:16:55 +0530236 };
Shimrit Malichi255b5342012-08-02 21:01:43 +0300237 };