blob: 12fbfec353731e6a67b2f21f8c4694d67db5c8cb [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)
Manu Gautambd53fba2012-07-31 16:13:06 +053025- qcom,hsusb-otg-disable-reset: It present then core is RESET only during
26 init, otherwise core is RESET for every cable disconnect as well
Pavankumar Kondetieaea7fe2011-10-27 14:46:45 +053027
28Optional properties :
29- qcom,hsusb-otg-default-mode: The default USB mode after boot-up.
30 Applicable only when OTG is controlled by user. Can be one of
31 0 - None. Low power mode
32 1 - Peripheral
33 2 - Host
34- qcom,hsusb-otg-phy-init-seq: PHY configuration sequence. val, reg pairs
35 terminate with -1
36- qcom,hsusb-otg-power-budget: VBUS power budget in mA
37 0 will be treated as 500mA
38- qcom,hsusb-otg-pclk-src-name: The source of pclk
39- qcom,hsusb-otg-pmic-id-irq: ID, routed to PMIC IRQ number
Manu Gautam2e8ac102012-08-31 11:41:16 -070040- Refer to "Documentation/devicetree/bindings/arm/msm/msm_bus.txt" for
41 below optional properties:
42 - qcom,msm_bus,name
43 - qcom,msm_bus,num_cases
44 - qcom,msm_bus,active_only
45 - qcom,msm_bus,num_paths
46 - qcom,msm_bus,vectors
Pavankumar Kondetieaea7fe2011-10-27 14:46:45 +053047
48Example HSUSB OTG controller device node :
David Brown225abee2012-02-09 22:28:50 -080049 usb@f9690000 {
Pavankumar Kondetieaea7fe2011-10-27 14:46:45 +053050 compatible = "qcom,hsusb-otg";
David Brown225abee2012-02-09 22:28:50 -080051 reg = <0xf9690000 0x400>;
Pavankumar Kondetieaea7fe2011-10-27 14:46:45 +053052 interrupts = <134>;
Jack Pham3f4459e2012-09-28 15:55:16 -070053 interrupt-names = "core_irq";
Pavankumar Kondetieaea7fe2011-10-27 14:46:45 +053054
55 qcom,hsusb-otg-phy-type = <2>;
56 qcom,hsusb-otg-mode = <1>;
57 qcom,hsusb-otg-otg-control = <1>;
Manu Gautambd53fba2012-07-31 16:13:06 +053058 qcom,hsusb-otg-disable-reset;
Pavankumar Kondetieaea7fe2011-10-27 14:46:45 +053059 qcom,hsusb-otg-default-mode = <2>;
David Brown225abee2012-02-09 22:28:50 -080060 qcom,hsusb-otg-phy-init-seq = <0x01 0x90 0xffffffff>;
Pavankumar Kondetieaea7fe2011-10-27 14:46:45 +053061 qcom,hsusb-otg-power-budget = <500>;
62 qcom,hsusb-otg-pclk-src-name = "dfab_usb_clk";
63 qcom,hsusb-otg-pmic-id-irq = <47>
Manu Gautam2e8ac102012-08-31 11:41:16 -070064
65 qcom,msm_bus,name = "usb2";
66 qcom,msm_bus,num_cases = <2>;
67 qcom,msm_bus,active_only = <0>;
68 qcom,msm_bus,num_paths = <1>;
69 qcom,msm_bus,vectors =
70 <87 512 0 0>,
71 <87 512 60000000 960000000>;
Pavankumar Kondetieaea7fe2011-10-27 14:46:45 +053072 };
Shimrit Malichi255b5342012-08-02 21:01:43 +030073
Manu Gautam43c61a12012-08-22 17:09:37 -070074ANDROID USB:
75
76Required properties:
77- compatible: should be "qcom,android-usb"
78
79Optional properties :
80- reg : offset and length of memory region that is used by driver to
81 update USB PID and serial numbers used by bootloader in DLOAD mode.
82
83Example Android USB device node :
84 android_usb@fc42b0c8 {
85 compatible = "qcom,android-usb";
86 reg = <0xfc42b0c8 0xc8>;
87 };
88
89
Shimrit Malichi255b5342012-08-02 21:01:43 +030090BAM:
91
92Required properties:
93- compatible: should be "qcom,usb-bam-msm"
Manu Gautam6afd5872012-07-25 09:16:55 +053094- reg : pairs of physical base addresses and region sizes
95 of all the memory mapped BAM devices present
96- reg-names : Register region name(s) referenced in reg above
Manu Gautam4658d892012-08-20 18:24:52 -070097 SSUSB BAM expects "ssusb" and "hsusb" for HSSUB BAM.
98 Specify "qscratch_ram1_reg" to provide QSCRATCH's RAM1
99 register to control USB3 private memory for uses as BAM FIFOs.
Manu Gautam6afd5872012-07-25 09:16:55 +0530100- interrupts: IRQ lines for BAM devices
101- interrupt-names: BAM interrupt name(s) referenced in interrupts above
102 SSUSB BAM expects "ssusb" and "hsusb" for HSSUB BAM
Shimrit Malichi255b5342012-08-02 21:01:43 +0300103- qcom,usb-active-bam: active BAM type. Can be one of
Manu Gautam6afd5872012-07-25 09:16:55 +0530104 0 - SSUSB_BAM
105 1 - HSUSB_BAM
106 2 - HSIC_BAM
Shimrit Malichi255b5342012-08-02 21:01:43 +0300107- qcom,usb-total-bam-num: total number of BAMs that are supported
108- qcom,usb-bam-num-pipes: max number of pipes that can be used
109- qcom,usb-base-address: physical base address of the BAM
110
111A number of USB BAM pipe parameters are represented as sub-nodes:
112
113Subnode Required:
Manu Gautam6afd5872012-07-25 09:16:55 +0530114- label: a string describing the pipe's direction and BAM instance under use
Shimrit Malichi255b5342012-08-02 21:01:43 +0300115- qcom,usb-bam-type: BAM type. Can be one of
Manu Gautam6afd5872012-07-25 09:16:55 +0530116 0 - SSUSB_BAM
117 1 - HSUSB_BAM
118 2 - HSIC_BAM
119- qcom,usb-bam-mem-type: Type of memory used by this PIPE. Can be one of
120 0 - Uses SPS's dedicated pipe memory
121 1 - USB's private memory residing @ 'qcom,usb-base-address'
122 2 - System RAM allocated by driver
Shimrit Malichi255b5342012-08-02 21:01:43 +0300123- qcom,src-bam-physical-address: source BAM physical address
124- qcom,src-bam-pipe-index: source BAM pipe index
125- qcom,dst-bam-physical-address: destination BAM physical address
126- qcom,dst-bam-pipe-index: destination BAM pipe index
127- qcom,data-fifo-offset: data fifo offset address
128- qcom,data-fifo-size: data fifo size
129- qcom,descriptor-fifo-offset: descriptor fifo offset address
130- qcom,descriptor-fifo-size: descriptor fifo size
131
Manu Gautamd21e2282012-08-23 13:38:50 -0700132Optional properties :
133- qcom,ignore-core-reset-ack: If present then BAM ignores ACK from USB core
134 while performing PIPE RESET
135
Shimrit Malichi255b5342012-08-02 21:01:43 +0300136Example USB BAM controller device node:
137
138 qcom,usbbam@f9304000 {
139 compatible = "qcom,usb-bam-msm";
Manu Gautam6afd5872012-07-25 09:16:55 +0530140 reg = <0xf9304000 0x5000>,
Manu Gautam4658d892012-08-20 18:24:52 -0700141 <0xf9a44000 0x11000>,
142 <0xf92f880c 0x4>;
143 reg-names = "ssusb", "hsusb", "qscratch_ram1_reg";
Manu Gautam6afd5872012-07-25 09:16:55 +0530144 interrupts = <0 132 0 0 135 0>;
145 interrupt-names = "ssusb", "hsusb";
Shimrit Malichi255b5342012-08-02 21:01:43 +0300146 qcom,usb-active-bam = <0>;
Manu Gautam6afd5872012-07-25 09:16:55 +0530147 qcom,usb-total-bam-num = <2>;
Shimrit Malichi255b5342012-08-02 21:01:43 +0300148 qcom,usb-bam-num-pipes = <16>;
149 qcom,usb-base-address = <0xf9200000>;
Manu Gautamd21e2282012-08-23 13:38:50 -0700150 qcom,ignore-core-reset-ack;
Shimrit Malichi255b5342012-08-02 21:01:43 +0300151
152 qcom,pipe1 {
153 label = "usb-to-peri-qdss-dwc3";
154 qcom,usb-bam-type = <0>;
Manu Gautam6afd5872012-07-25 09:16:55 +0530155 qcom,usb-bam-mem-type = <1>;
Shimrit Malichi255b5342012-08-02 21:01:43 +0300156 qcom,src-bam-physical-address = <0>;
157 qcom,src-bam-pipe-index = <0>;
158 qcom,dst-bam-physical-address = <0>;
159 qcom,dst-bam-pipe-index = <0>;
160 qcom,data-fifo-offset = <0>;
161 qcom,data-fifo-size = <0>;
162 qcom,descriptor-fifo-offset = <0>;
163 qcom,descriptor-fifo-size = <0>;
164 };
165
166 qcom,pipe2 {
167 label = "peri-to-usb-qdss-dwc3";
168 qcom,usb-bam-type = <0>;
Manu Gautam6afd5872012-07-25 09:16:55 +0530169 qcom,usb-bam-mem-type = <1>;
Shimrit Malichi255b5342012-08-02 21:01:43 +0300170 qcom,src-bam-physical-address = <0xfc37C000>;
171 qcom,src-bam-pipe-index = <0>;
172 qcom,dst-bam-physical-address = <0xf9304000>;
173 qcom,dst-bam-pipe-index = <2>;
174 qcom,data-fifo-offset = <0xf0000>;
175 qcom,data-fifo-size = <0x4000>;
176 qcom,descriptor-fifo-offset = <0xf4000>;
177 qcom,descriptor-fifo-size = <0x1400>;
178 };
Manu Gautam6afd5872012-07-25 09:16:55 +0530179
180 qcom,pipe3 {
181 label = "usb-to-peri-qdss-hsusb";
182 qcom,usb-bam-type = <1>;
Manu Gautam4658d892012-08-20 18:24:52 -0700183 qcom,usb-bam-mem-type = <1>;
Manu Gautam6afd5872012-07-25 09:16:55 +0530184 qcom,src-bam-physical-address = <0>;
185 qcom,src-bam-pipe-index = <0>;
186 qcom,dst-bam-physical-address = <0>;
187 qcom,dst-bam-pipe-index = <0>;
188 qcom,data-fifo-offset = <0>;
189 qcom,data-fifo-size = <0>;
190 qcom,descriptor-fifo-offset = <0>;
191 qcom,descriptor-fifo-size = <0>;
192 };
193
194 qcom,pipe4 {
195 label = "peri-to-usb-qdss-hsusb";
196 qcom,usb-bam-type = <1>;
Manu Gautam4658d892012-08-20 18:24:52 -0700197 qcom,usb-bam-mem-type = <1>;
Manu Gautam6afd5872012-07-25 09:16:55 +0530198 qcom,src-bam-physical-address = <0xfc37c000>;
199 qcom,src-bam-pipe-index = <0>;
200 qcom,dst-bam-physical-address = <0xf9a44000>;
201 qcom,dst-bam-pipe-index = <2>;
Manu Gautam4658d892012-08-20 18:24:52 -0700202 qcom,data-fifo-offset = <0xf4000>;
203 qcom,data-fifo-size = <0x1000>;
204 qcom,descriptor-fifo-offset = <0xf5000>;
205 qcom,descriptor-fifo-size = <0x400>;
Manu Gautam6afd5872012-07-25 09:16:55 +0530206 };
Shimrit Malichi255b5342012-08-02 21:01:43 +0300207 };