blob: ed842196746ae8bcfbeb2ddcd0daf3775eaec9a5 [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
63 SSUSB BAM expects "ssusb" and "hsusb" for HSSUB BAM
64- interrupts: IRQ lines for BAM devices
65- interrupt-names: BAM interrupt name(s) referenced in interrupts above
66 SSUSB BAM expects "ssusb" and "hsusb" for HSSUB BAM
Shimrit Malichi255b5342012-08-02 21:01:43 +030067- qcom,usb-active-bam: active BAM type. Can be one of
Manu Gautam6afd5872012-07-25 09:16:55 +053068 0 - SSUSB_BAM
69 1 - HSUSB_BAM
70 2 - HSIC_BAM
Shimrit Malichi255b5342012-08-02 21:01:43 +030071- qcom,usb-total-bam-num: total number of BAMs that are supported
72- qcom,usb-bam-num-pipes: max number of pipes that can be used
73- qcom,usb-base-address: physical base address of the BAM
74
75A number of USB BAM pipe parameters are represented as sub-nodes:
76
77Subnode Required:
Manu Gautam6afd5872012-07-25 09:16:55 +053078- label: a string describing the pipe's direction and BAM instance under use
Shimrit Malichi255b5342012-08-02 21:01:43 +030079- qcom,usb-bam-type: BAM type. Can be one of
Manu Gautam6afd5872012-07-25 09:16:55 +053080 0 - SSUSB_BAM
81 1 - HSUSB_BAM
82 2 - HSIC_BAM
83- qcom,usb-bam-mem-type: Type of memory used by this PIPE. Can be one of
84 0 - Uses SPS's dedicated pipe memory
85 1 - USB's private memory residing @ 'qcom,usb-base-address'
86 2 - System RAM allocated by driver
Shimrit Malichi255b5342012-08-02 21:01:43 +030087- qcom,src-bam-physical-address: source BAM physical address
88- qcom,src-bam-pipe-index: source BAM pipe index
89- qcom,dst-bam-physical-address: destination BAM physical address
90- qcom,dst-bam-pipe-index: destination BAM pipe index
91- qcom,data-fifo-offset: data fifo offset address
92- qcom,data-fifo-size: data fifo size
93- qcom,descriptor-fifo-offset: descriptor fifo offset address
94- qcom,descriptor-fifo-size: descriptor fifo size
95
96Example USB BAM controller device node:
97
98 qcom,usbbam@f9304000 {
99 compatible = "qcom,usb-bam-msm";
Manu Gautam6afd5872012-07-25 09:16:55 +0530100 reg = <0xf9304000 0x5000>,
101 <0xf9a44000 0x11000>;
102 reg-names = "ssusb", "hsusb";
103 interrupts = <0 132 0 0 135 0>;
104 interrupt-names = "ssusb", "hsusb";
Shimrit Malichi255b5342012-08-02 21:01:43 +0300105 qcom,usb-active-bam = <0>;
Manu Gautam6afd5872012-07-25 09:16:55 +0530106 qcom,usb-total-bam-num = <2>;
Shimrit Malichi255b5342012-08-02 21:01:43 +0300107 qcom,usb-bam-num-pipes = <16>;
108 qcom,usb-base-address = <0xf9200000>;
109
110 qcom,pipe1 {
111 label = "usb-to-peri-qdss-dwc3";
112 qcom,usb-bam-type = <0>;
Manu Gautam6afd5872012-07-25 09:16:55 +0530113 qcom,usb-bam-mem-type = <1>;
Shimrit Malichi255b5342012-08-02 21:01:43 +0300114 qcom,src-bam-physical-address = <0>;
115 qcom,src-bam-pipe-index = <0>;
116 qcom,dst-bam-physical-address = <0>;
117 qcom,dst-bam-pipe-index = <0>;
118 qcom,data-fifo-offset = <0>;
119 qcom,data-fifo-size = <0>;
120 qcom,descriptor-fifo-offset = <0>;
121 qcom,descriptor-fifo-size = <0>;
122 };
123
124 qcom,pipe2 {
125 label = "peri-to-usb-qdss-dwc3";
126 qcom,usb-bam-type = <0>;
Manu Gautam6afd5872012-07-25 09:16:55 +0530127 qcom,usb-bam-mem-type = <1>;
Shimrit Malichi255b5342012-08-02 21:01:43 +0300128 qcom,src-bam-physical-address = <0xfc37C000>;
129 qcom,src-bam-pipe-index = <0>;
130 qcom,dst-bam-physical-address = <0xf9304000>;
131 qcom,dst-bam-pipe-index = <2>;
132 qcom,data-fifo-offset = <0xf0000>;
133 qcom,data-fifo-size = <0x4000>;
134 qcom,descriptor-fifo-offset = <0xf4000>;
135 qcom,descriptor-fifo-size = <0x1400>;
136 };
Manu Gautam6afd5872012-07-25 09:16:55 +0530137
138 qcom,pipe3 {
139 label = "usb-to-peri-qdss-hsusb";
140 qcom,usb-bam-type = <1>;
141 qcom,usb-bam-mem-type = <2>;
142 qcom,src-bam-physical-address = <0>;
143 qcom,src-bam-pipe-index = <0>;
144 qcom,dst-bam-physical-address = <0>;
145 qcom,dst-bam-pipe-index = <0>;
146 qcom,data-fifo-offset = <0>;
147 qcom,data-fifo-size = <0>;
148 qcom,descriptor-fifo-offset = <0>;
149 qcom,descriptor-fifo-size = <0>;
150 };
151
152 qcom,pipe4 {
153 label = "peri-to-usb-qdss-hsusb";
154 qcom,usb-bam-type = <1>;
155 qcom,usb-bam-mem-type = <2>;
156 qcom,src-bam-physical-address = <0xfc37c000>;
157 qcom,src-bam-pipe-index = <0>;
158 qcom,dst-bam-physical-address = <0xf9a44000>;
159 qcom,dst-bam-pipe-index = <2>;
160 qcom,data-fifo-offset = <0>;
161 qcom,data-fifo-size = <0x4000>;
162 qcom,descriptor-fifo-offset = <0>;
163 qcom,descriptor-fifo-size = <0x1400>;
164 };
Shimrit Malichi255b5342012-08-02 21:01:43 +0300165 };