e0b2ce2910e0aeef770230ac727effc79236dc39
[firefly-linux-kernel-4.4.55.git] / arch / arm / boot / dts / qcom-msm8660.dtsi
1 /dts-v1/;
2
3 /include/ "skeleton.dtsi"
4
5 #include <dt-bindings/interrupt-controller/arm-gic.h>
6 #include <dt-bindings/clock/qcom,gcc-msm8660.h>
7 #include <dt-bindings/soc/qcom,gsbi.h>
8
9 / {
10         model = "Qualcomm MSM8660";
11         compatible = "qcom,msm8660";
12         interrupt-parent = <&intc>;
13
14         cpus {
15                 #address-cells = <1>;
16                 #size-cells = <0>;
17
18                 cpu@0 {
19                         compatible = "qcom,scorpion";
20                         enable-method = "qcom,gcc-msm8660";
21                         device_type = "cpu";
22                         reg = <0>;
23                         next-level-cache = <&L2>;
24                 };
25
26                 cpu@1 {
27                         compatible = "qcom,scorpion";
28                         enable-method = "qcom,gcc-msm8660";
29                         device_type = "cpu";
30                         reg = <1>;
31                         next-level-cache = <&L2>;
32                 };
33
34                 L2: l2-cache {
35                         compatible = "cache";
36                         cache-level = <2>;
37                 };
38         };
39
40         cpu-pmu {
41                 compatible = "qcom,scorpion-mp-pmu";
42                 interrupts = <1 9 0x304>;
43         };
44
45         soc: soc {
46                 #address-cells = <1>;
47                 #size-cells = <1>;
48                 ranges;
49                 compatible = "simple-bus";
50
51                 intc: interrupt-controller@2080000 {
52                         compatible = "qcom,msm-8660-qgic";
53                         interrupt-controller;
54                         #interrupt-cells = <3>;
55                         reg = < 0x02080000 0x1000 >,
56                               < 0x02081000 0x1000 >;
57                 };
58
59                 timer@2000000 {
60                         compatible = "qcom,scss-timer", "qcom,msm-timer";
61                         interrupts = <1 0 0x301>,
62                                      <1 1 0x301>,
63                                      <1 2 0x301>;
64                         reg = <0x02000000 0x100>;
65                         clock-frequency = <27000000>,
66                                           <32768>;
67                         cpu-offset = <0x40000>;
68                 };
69
70                 msmgpio: gpio@800000 {
71                         compatible = "qcom,msm-gpio";
72                         reg = <0x00800000 0x4000>;
73                         gpio-controller;
74                         #gpio-cells = <2>;
75                         ngpio = <173>;
76                         interrupts = <0 16 0x4>;
77                         interrupt-controller;
78                         #interrupt-cells = <2>;
79                 };
80
81                 gcc: clock-controller@900000 {
82                         compatible = "qcom,gcc-msm8660";
83                         #clock-cells = <1>;
84                         #reset-cells = <1>;
85                         reg = <0x900000 0x4000>;
86                 };
87
88                 gsbi12: gsbi@19c00000 {
89                         compatible = "qcom,gsbi-v1.0.0";
90                         cell-index = <12>;
91                         reg = <0x19c00000 0x100>;
92                         clocks = <&gcc GSBI12_H_CLK>;
93                         clock-names = "iface";
94                         #address-cells = <1>;
95                         #size-cells = <1>;
96                         ranges;
97
98                         syscon-tcsr = <&tcsr>;
99
100                         serial@19c40000 {
101                                 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
102                                 reg = <0x19c40000 0x1000>,
103                                       <0x19c00000 0x1000>;
104                                 interrupts = <0 195 0x0>;
105                                 clocks = <&gcc GSBI12_UART_CLK>, <&gcc GSBI12_H_CLK>;
106                                 clock-names = "core", "iface";
107                                 status = "disabled";
108                         };
109                 };
110
111                 qcom,ssbi@500000 {
112                         compatible = "qcom,ssbi";
113                         reg = <0x500000 0x1000>;
114                         qcom,controller-type = "pmic-arbiter";
115
116                         pmicintc: pmic@0 {
117                                 compatible = "qcom,pm8058";
118                                 interrupt-parent = <&msmgpio>;
119                                 interrupts = <88 8>;
120                                 #interrupt-cells = <2>;
121                                 interrupt-controller;
122                                 #address-cells = <1>;
123                                 #size-cells = <0>;
124
125                                 pwrkey@1c {
126                                         compatible = "qcom,pm8058-pwrkey";
127                                         reg = <0x1c>;
128                                         interrupt-parent = <&pmicintc>;
129                                         interrupts = <50 1>, <51 1>;
130                                         debounce = <15625>;
131                                         pull-up;
132                                 };
133
134                                 keypad@148 {
135                                         compatible = "qcom,pm8058-keypad";
136                                         reg = <0x148>;
137                                         interrupt-parent = <&pmicintc>;
138                                         interrupts = <74 1>, <75 1>;
139                                         debounce = <15>;
140                                         scan-delay = <32>;
141                                         row-hold = <91500>;
142                                 };
143
144                                 rtc@11d {
145                                         compatible = "qcom,pm8058-rtc";
146                                         interrupt-parent = <&pmicintc>;
147                                         interrupts = <39 1>;
148                                         reg = <0x11d>;
149                                         allow-set-time;
150                                 };
151
152                                 vibrator@4a {
153                                         compatible = "qcom,pm8058-vib";
154                                         reg = <0x4a>;
155                                 };
156                         };
157                 };
158
159                 /* Temporary fixed regulator */
160                 vsdcc_fixed: vsdcc-regulator {
161                         compatible = "regulator-fixed";
162                         regulator-name = "SDCC Power";
163                         regulator-min-microvolt = <2700000>;
164                         regulator-max-microvolt = <2700000>;
165                         regulator-always-on;
166                 };
167
168                 amba {
169                         compatible = "arm,amba-bus";
170                         #address-cells = <1>;
171                         #size-cells = <1>;
172                         ranges;
173                         sdcc1: sdcc@12400000 {
174                                 status          = "disabled";
175                                 compatible      = "arm,pl18x", "arm,primecell";
176                                 arm,primecell-periphid = <0x00051180>;
177                                 reg             = <0x12400000 0x8000>;
178                                 interrupts      = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
179                                 interrupt-names = "cmd_irq";
180                                 clocks          = <&gcc SDC1_CLK>, <&gcc SDC1_H_CLK>;
181                                 clock-names     = "mclk", "apb_pclk";
182                                 bus-width       = <8>;
183                                 max-frequency   = <48000000>;
184                                 non-removable;
185                                 cap-sd-highspeed;
186                                 cap-mmc-highspeed;
187                                 vmmc-supply = <&vsdcc_fixed>;
188                         };
189
190                         sdcc3: sdcc@12180000 {
191                                 compatible      = "arm,pl18x", "arm,primecell";
192                                 arm,primecell-periphid = <0x00051180>;
193                                 status          = "disabled";
194                                 reg             = <0x12180000 0x8000>;
195                                 interrupts      = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
196                                 interrupt-names = "cmd_irq";
197                                 clocks          = <&gcc SDC3_CLK>, <&gcc SDC3_H_CLK>;
198                                 clock-names     = "mclk", "apb_pclk";
199                                 bus-width       = <4>;
200                                 cap-sd-highspeed;
201                                 cap-mmc-highspeed;
202                                 max-frequency   = <48000000>;
203                                 no-1-8-v;
204                                 vmmc-supply = <&vsdcc_fixed>;
205                         };
206                 };
207
208                 tcsr: syscon@1a400000 {
209                         compatible = "qcom,tcsr-msm8660", "syscon";
210                         reg = <0x1a400000 0x100>;
211                 };
212         };
213
214 };