blob: 43e87a80a1096d85c2edd3f7c59bf3e0ccf12819 [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
9- qcom,hsusb-otg-phy-type: PHY type can be one of
10 1 - Chipidea 45nm PHY
11 2 - Synopsis 28nm PHY
12- qcom,hsusb-otg-mode: Operational mode. Can be one of
13 1 - Peripheral only mode
14 2 - Host only mode
15 3 - OTG mode
16 Based on the mode, OTG driver registers platform devices for
17 gadget and host.
18- qcom,hsusb-otg-control: OTG control (VBUS and ID notifications)
19 can be one of
20 1 - PHY control
21 2 - PMIC control
22 3 - User control (via debugfs)
Manu Gautambd53fba2012-07-31 16:13:06 +053023- qcom,hsusb-otg-disable-reset: It present then core is RESET only during
24 init, otherwise core is RESET for every cable disconnect as well
Pavankumar Kondetieaea7fe2011-10-27 14:46:45 +053025
26Optional properties :
27- qcom,hsusb-otg-default-mode: The default USB mode after boot-up.
28 Applicable only when OTG is controlled by user. Can be one of
29 0 - None. Low power mode
30 1 - Peripheral
31 2 - Host
32- qcom,hsusb-otg-phy-init-seq: PHY configuration sequence. val, reg pairs
33 terminate with -1
34- qcom,hsusb-otg-power-budget: VBUS power budget in mA
35 0 will be treated as 500mA
36- qcom,hsusb-otg-pclk-src-name: The source of pclk
37- qcom,hsusb-otg-pmic-id-irq: ID, routed to PMIC IRQ number
38
39Example HSUSB OTG controller device node :
David Brown225abee2012-02-09 22:28:50 -080040 usb@f9690000 {
Pavankumar Kondetieaea7fe2011-10-27 14:46:45 +053041 compatible = "qcom,hsusb-otg";
David Brown225abee2012-02-09 22:28:50 -080042 reg = <0xf9690000 0x400>;
Pavankumar Kondetieaea7fe2011-10-27 14:46:45 +053043 interrupts = <134>;
44
45 qcom,hsusb-otg-phy-type = <2>;
46 qcom,hsusb-otg-mode = <1>;
47 qcom,hsusb-otg-otg-control = <1>;
Manu Gautambd53fba2012-07-31 16:13:06 +053048 qcom,hsusb-otg-disable-reset;
Pavankumar Kondetieaea7fe2011-10-27 14:46:45 +053049 qcom,hsusb-otg-default-mode = <2>;
David Brown225abee2012-02-09 22:28:50 -080050 qcom,hsusb-otg-phy-init-seq = <0x01 0x90 0xffffffff>;
Pavankumar Kondetieaea7fe2011-10-27 14:46:45 +053051 qcom,hsusb-otg-power-budget = <500>;
52 qcom,hsusb-otg-pclk-src-name = "dfab_usb_clk";
53 qcom,hsusb-otg-pmic-id-irq = <47>
54 };
Shimrit Malichi255b5342012-08-02 21:01:43 +030055
56BAM:
57
58Required properties:
59- compatible: should be "qcom,usb-bam-msm"
Manu Gautam6afd5872012-07-25 09:16:55 +053060- reg : pairs of physical base addresses and region sizes
61 of all the memory mapped BAM devices present
62- reg-names : Register region name(s) referenced in reg above
Manu Gautam4658d892012-08-20 18:24:52 -070063 SSUSB BAM expects "ssusb" and "hsusb" for HSSUB BAM.
64 Specify "qscratch_ram1_reg" to provide QSCRATCH's RAM1
65 register to control USB3 private memory for uses as BAM FIFOs.
Manu Gautam6afd5872012-07-25 09:16:55 +053066- interrupts: IRQ lines for BAM devices
67- interrupt-names: BAM interrupt name(s) referenced in interrupts above
68 SSUSB BAM expects "ssusb" and "hsusb" for HSSUB BAM
Shimrit Malichi255b5342012-08-02 21:01:43 +030069- qcom,usb-active-bam: active BAM type. Can be one of
Manu Gautam6afd5872012-07-25 09:16:55 +053070 0 - SSUSB_BAM
71 1 - HSUSB_BAM
72 2 - HSIC_BAM
Shimrit Malichi255b5342012-08-02 21:01:43 +030073- qcom,usb-total-bam-num: total number of BAMs that are supported
74- qcom,usb-bam-num-pipes: max number of pipes that can be used
75- qcom,usb-base-address: physical base address of the BAM
76
77A number of USB BAM pipe parameters are represented as sub-nodes:
78
79Subnode Required:
Manu Gautam6afd5872012-07-25 09:16:55 +053080- label: a string describing the pipe's direction and BAM instance under use
Shimrit Malichi255b5342012-08-02 21:01:43 +030081- qcom,usb-bam-type: BAM type. Can be one of
Manu Gautam6afd5872012-07-25 09:16:55 +053082 0 - SSUSB_BAM
83 1 - HSUSB_BAM
84 2 - HSIC_BAM
85- qcom,usb-bam-mem-type: Type of memory used by this PIPE. Can be one of
86 0 - Uses SPS's dedicated pipe memory
87 1 - USB's private memory residing @ 'qcom,usb-base-address'
88 2 - System RAM allocated by driver
Shimrit Malichi255b5342012-08-02 21:01:43 +030089- qcom,src-bam-physical-address: source BAM physical address
90- qcom,src-bam-pipe-index: source BAM pipe index
91- qcom,dst-bam-physical-address: destination BAM physical address
92- qcom,dst-bam-pipe-index: destination BAM pipe index
93- qcom,data-fifo-offset: data fifo offset address
94- qcom,data-fifo-size: data fifo size
95- qcom,descriptor-fifo-offset: descriptor fifo offset address
96- qcom,descriptor-fifo-size: descriptor fifo size
97
Manu Gautamd21e2282012-08-23 13:38:50 -070098Optional properties :
99- qcom,ignore-core-reset-ack: If present then BAM ignores ACK from USB core
100 while performing PIPE RESET
101
Shimrit Malichi255b5342012-08-02 21:01:43 +0300102Example USB BAM controller device node:
103
104 qcom,usbbam@f9304000 {
105 compatible = "qcom,usb-bam-msm";
Manu Gautam6afd5872012-07-25 09:16:55 +0530106 reg = <0xf9304000 0x5000>,
Manu Gautam4658d892012-08-20 18:24:52 -0700107 <0xf9a44000 0x11000>,
108 <0xf92f880c 0x4>;
109 reg-names = "ssusb", "hsusb", "qscratch_ram1_reg";
Manu Gautam6afd5872012-07-25 09:16:55 +0530110 interrupts = <0 132 0 0 135 0>;
111 interrupt-names = "ssusb", "hsusb";
Shimrit Malichi255b5342012-08-02 21:01:43 +0300112 qcom,usb-active-bam = <0>;
Manu Gautam6afd5872012-07-25 09:16:55 +0530113 qcom,usb-total-bam-num = <2>;
Shimrit Malichi255b5342012-08-02 21:01:43 +0300114 qcom,usb-bam-num-pipes = <16>;
115 qcom,usb-base-address = <0xf9200000>;
Manu Gautamd21e2282012-08-23 13:38:50 -0700116 qcom,ignore-core-reset-ack;
Shimrit Malichi255b5342012-08-02 21:01:43 +0300117
118 qcom,pipe1 {
119 label = "usb-to-peri-qdss-dwc3";
120 qcom,usb-bam-type = <0>;
Manu Gautam6afd5872012-07-25 09:16:55 +0530121 qcom,usb-bam-mem-type = <1>;
Shimrit Malichi255b5342012-08-02 21:01:43 +0300122 qcom,src-bam-physical-address = <0>;
123 qcom,src-bam-pipe-index = <0>;
124 qcom,dst-bam-physical-address = <0>;
125 qcom,dst-bam-pipe-index = <0>;
126 qcom,data-fifo-offset = <0>;
127 qcom,data-fifo-size = <0>;
128 qcom,descriptor-fifo-offset = <0>;
129 qcom,descriptor-fifo-size = <0>;
130 };
131
132 qcom,pipe2 {
133 label = "peri-to-usb-qdss-dwc3";
134 qcom,usb-bam-type = <0>;
Manu Gautam6afd5872012-07-25 09:16:55 +0530135 qcom,usb-bam-mem-type = <1>;
Shimrit Malichi255b5342012-08-02 21:01:43 +0300136 qcom,src-bam-physical-address = <0xfc37C000>;
137 qcom,src-bam-pipe-index = <0>;
138 qcom,dst-bam-physical-address = <0xf9304000>;
139 qcom,dst-bam-pipe-index = <2>;
140 qcom,data-fifo-offset = <0xf0000>;
141 qcom,data-fifo-size = <0x4000>;
142 qcom,descriptor-fifo-offset = <0xf4000>;
143 qcom,descriptor-fifo-size = <0x1400>;
144 };
Manu Gautam6afd5872012-07-25 09:16:55 +0530145
146 qcom,pipe3 {
147 label = "usb-to-peri-qdss-hsusb";
148 qcom,usb-bam-type = <1>;
Manu Gautam4658d892012-08-20 18:24:52 -0700149 qcom,usb-bam-mem-type = <1>;
Manu Gautam6afd5872012-07-25 09:16:55 +0530150 qcom,src-bam-physical-address = <0>;
151 qcom,src-bam-pipe-index = <0>;
152 qcom,dst-bam-physical-address = <0>;
153 qcom,dst-bam-pipe-index = <0>;
154 qcom,data-fifo-offset = <0>;
155 qcom,data-fifo-size = <0>;
156 qcom,descriptor-fifo-offset = <0>;
157 qcom,descriptor-fifo-size = <0>;
158 };
159
160 qcom,pipe4 {
161 label = "peri-to-usb-qdss-hsusb";
162 qcom,usb-bam-type = <1>;
Manu Gautam4658d892012-08-20 18:24:52 -0700163 qcom,usb-bam-mem-type = <1>;
Manu Gautam6afd5872012-07-25 09:16:55 +0530164 qcom,src-bam-physical-address = <0xfc37c000>;
165 qcom,src-bam-pipe-index = <0>;
166 qcom,dst-bam-physical-address = <0xf9a44000>;
167 qcom,dst-bam-pipe-index = <2>;
Manu Gautam4658d892012-08-20 18:24:52 -0700168 qcom,data-fifo-offset = <0xf4000>;
169 qcom,data-fifo-size = <0x1000>;
170 qcom,descriptor-fifo-offset = <0xf5000>;
171 qcom,descriptor-fifo-size = <0x400>;
Manu Gautam6afd5872012-07-25 09:16:55 +0530172 };
Shimrit Malichi255b5342012-08-02 21:01:43 +0300173 };