~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm/boot/dts/qcom/qcom-apq8060-dragonboard.dts

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 // SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
  2 #include <dt-bindings/input/input.h>
  3 #include <dt-bindings/gpio/gpio.h>
  4 #include <dt-bindings/leds/common.h>
  5 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
  6 #include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
  7 #include "qcom-msm8660.dtsi"
  8 #include "pm8058.dtsi"
  9 
 10 / {
 11         model = "Qualcomm APQ8060 Dragonboard";
 12         compatible = "qcom,apq8060-dragonboard", "qcom,msm8660";
 13 
 14         aliases {
 15                 serial0 = &gsbi12_serial;
 16         };
 17 
 18         chosen {
 19                 stdout-path = "serial0:115200n8";
 20         };
 21 
 22         /* Main power of the board: 3.7V */
 23         vph: regulator-fixed {
 24                 compatible = "regulator-fixed";
 25                 regulator-min-microvolt = <3700000>;
 26                 regulator-max-microvolt = <3700000>;
 27                 regulator-name = "VPH";
 28                 regulator-always-on;
 29                 regulator-boot-on;
 30         };
 31 
 32         /* GPIO controlled ethernet power regulator */
 33         dragon_veth: xc622a331mrg {
 34                 compatible = "regulator-fixed";
 35                 regulator-name = "XC6222A331MR-G";
 36                 regulator-min-microvolt = <3300000>;
 37                 regulator-max-microvolt = <3300000>;
 38                 vin-supply = <&vph>;
 39                 gpio = <&pm8058_gpio 40 GPIO_ACTIVE_HIGH>;
 40                 enable-active-high;
 41                 pinctrl-names = "default";
 42                 pinctrl-0 = <&dragon_veth_gpios>;
 43                 regulator-always-on;
 44         };
 45 
 46         /* VDDvario fixed regulator */
 47         dragon_vario: nds332p {
 48                 compatible = "regulator-fixed";
 49                 regulator-name = "NDS332P";
 50                 regulator-min-microvolt = <1800000>;
 51                 regulator-max-microvolt = <1800000>;
 52                 vin-supply = <&pm8058_s3>;
 53         };
 54 
 55         /* This is a levelshifter for SDCC5 */
 56         dragon_vio_txb: txb0104rgyr {
 57                 compatible = "regulator-fixed";
 58                 regulator-name = "Dragon SDCC levelshifter";
 59                 vin-supply = <&pm8058_l14>;
 60                 regulator-always-on;
 61         };
 62 
 63         /*
 64          * Capella CM3605 light and proximity sensor mounted directly
 65          * on the sensor board.
 66          */
 67         cm3605 {
 68                 compatible = "capella,cm3605";
 69                 vdd-supply = <&pm8058_l14>; // 2.85V
 70                 aset-gpios = <&pm8058_gpio 35 GPIO_ACTIVE_LOW>;
 71                 capella,aset-resistance-ohms = <100000>;
 72                 /* Trig on both edges - getting close or far away */
 73                 interrupts-extended = <&pm8058_gpio 34 IRQ_TYPE_EDGE_BOTH>;
 74                 /* MPP05 analog input to the XOADC */
 75                 io-channels = <&pm8058_xoadc 0x00 0x05>;
 76                 io-channel-names = "aout";
 77                 pinctrl-names = "default";
 78                 pinctrl-0 = <&dragon_cm3605_gpios>, <&dragon_cm3605_mpps>;
 79         };
 80 };
 81 
 82 &ebi2 {
 83         /* The EBI2 will instantiate first, then populate its children */
 84         pinctrl-names = "default";
 85         pinctrl-0 = <&dragon_ebi2_pins>;
 86         status = "okay";
 87 
 88         /*
 89          * An on-board SMSC LAN9221 chip for "debug ethernet",
 90          * which is actually just an ordinary ethernet on the
 91          * EBI2. This has a 25MHz chrystal next to it, so no
 92          * clocking is needed.
 93          */
 94         ethernet@2,0 {
 95                 compatible = "smsc,lan9221", "smsc,lan9115";
 96                 reg = <2 0x0 0x100>;
 97                 /*
 98                  * The second interrupt is the PME interrupt
 99                  * for network wakeup, connected to the TLMM.
100                  */
101                 interrupts-extended = <&pm8058_gpio 7 IRQ_TYPE_EDGE_FALLING>,
102                                     <&tlmm 29 IRQ_TYPE_EDGE_RISING>;
103                 reset-gpios = <&tlmm 30 GPIO_ACTIVE_LOW>;
104                 vdd33a-supply = <&dragon_veth>;
105                 vddvario-supply = <&dragon_vario>;
106                 pinctrl-names = "default";
107                 pinctrl-0 = <&dragon_ethernet_gpios>;
108                 phy-mode = "mii";
109                 reg-io-width = <2>;
110                 smsc,force-external-phy;
111                 smsc,irq-push-pull;
112 
113                 /*
114                  * SLOW chipselect config
115                  * Delay 9 cycles (140ns@64MHz) between SMSC
116                  * LAN9221 Ethernet controller reads and writes
117                  * on CS2.
118                  */
119                 qcom,xmem-recovery-cycles = <0>;
120                 qcom,xmem-write-hold-cycles = <3>;
121                 qcom,xmem-write-delta-cycles = <31>;
122                 qcom,xmem-read-delta-cycles = <28>;
123                 qcom,xmem-write-wait-cycles = <9>;
124                 qcom,xmem-read-wait-cycles = <9>;
125         };
126 };
127 
128 &gsbi3 {
129         qcom,mode = <GSBI_PROT_I2C>;
130         status = "okay";
131 };
132 
133 &gsbi3_i2c {
134         pinctrl-names = "default";
135         pinctrl-0 = <&dragon_gsbi3_i2c_pins>;
136         status = "okay";
137 
138         touchscreen@24 {
139                 compatible = "cypress,cy8ctma340";
140                 reg = <0x24>;
141                 /* Certainly we can do at least 400 kHz */
142                 clock-frequency = <400000>;
143                 /* IRQ on GPIO61 called /CTP_INT */
144                 interrupt-parent = <&tlmm>;
145                 interrupts = <61 IRQ_TYPE_EDGE_FALLING>;
146                 /*
147                  * The I2C bus is using a PCA9306 level translator from L16A
148                  * to L2B so these two voltages are needed and L16A is
149                  * kind of the IO voltage, however L16Aisn't really fed to
150                  * the TMA340, which relies entirely on L2B (PM8901 L2).
151                  */
152                 vcpin-supply = <&pm8058_l16>;
153                 vdd-supply = <&pm8901_l2>;
154                 /* GPIO58, called WAKE_CTP */
155                 reset-gpios = <&tlmm 58 GPIO_ACTIVE_LOW>;
156                 touchscreen-size-x = <480>;
157                 touchscreen-size-y = <800>;
158                 active-interval-ms = <0>;
159                 touch-timeout-ms = <255>;
160                 lowpower-interval-ms = <10>;
161                 bootloader-key = /bits/ 8 <0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07>;
162                 pinctrl-names = "default";
163                 pinctrl-0 = <&dragon_tma340_gpios>;
164         };
165 };
166 
167 &gsbi8 {
168         qcom,mode = <GSBI_PROT_I2C>;
169         status = "okay";
170 };
171 
172 &gsbi8_i2c {
173         pinctrl-names = "default";
174         pinctrl-0 = <&dragon_gsbi8_i2c_pins>;
175         status = "okay";
176 
177         eeprom@52 {
178                 /* A 16KiB Platform ID EEPROM on the CPU carrier board */
179                 compatible = "atmel,24c128";
180                 reg = <0x52>;
181                 vcc-supply = <&pm8058_s3>;
182                 pagesize = <64>;
183         };
184         wm8903: wm8903@1a {
185                 /* This Woolfson Micro device has an unrouted interrupt line */
186                 compatible = "wlf,wm8903";
187                 reg = <0x1a>;
188 
189                 AVDD-supply = <&pm8058_l16>;
190                 CPVDD-supply = <&pm8058_l16>;
191                 DBVDD-supply = <&pm8058_s3>;
192                 DCVDD-supply = <&pm8058_l0>;
193 
194                 gpio-controller;
195                 #gpio-cells = <2>;
196 
197                 micdet-cfg = <0>;
198                 micdet-delay = <100>;
199                 gpio-cfg = <0xffffffff 0xffffffff 0 0xffffffff 0xffffffff>;
200         };
201 };
202 
203 &gsbi12 {
204         qcom,mode = <GSBI_PROT_I2C_UART>;
205         status = "okay";
206 };
207 
208 &gsbi12_serial {
209         pinctrl-names = "default";
210         pinctrl-0 = <&dragon_gsbi12_serial_pins>;
211         status = "okay";
212 };
213 
214 &gsbi12_i2c {
215         pinctrl-names = "default";
216         pinctrl-0 = <&dragon_gsbi12_i2c_pins>;
217         status = "okay";
218 
219         ak8975@c {
220                 compatible = "asahi-kasei,ak8975";
221                 reg = <0x0c>;
222                 interrupt-parent = <&pm8058_gpio>;
223                 interrupts = <33 IRQ_TYPE_EDGE_RISING>;
224                 pinctrl-names = "default";
225                 pinctrl-0 = <&dragon_ak8975_gpios>;
226                 vid-supply = <&pm8058_lvs0>; // 1.8V
227                 vdd-supply = <&pm8058_l14>; // 2.85V
228         };
229         bmp085@77 {
230                 compatible = "bosch,bmp085";
231                 reg = <0x77>;
232                 interrupt-parent = <&pm8058_gpio>;
233                 interrupts = <16 IRQ_TYPE_EDGE_RISING>;
234                 reset-gpios = <&tlmm 86 GPIO_ACTIVE_LOW>;
235                 pinctrl-names = "default";
236                 pinctrl-0 = <&dragon_bmp085_gpios>;
237                 vddd-supply = <&pm8058_lvs0>; // 1.8V
238                 vdda-supply = <&pm8058_l14>; // 2.85V
239         };
240         mpu3050@68 {
241                 compatible = "invensense,mpu3050";
242                 reg = <0x68>;
243                 /*
244                  * GPIO17 is pulled high by a 10k
245                  * resistor to VLOGIC so needs to be
246                  * active low/falling edge.
247                  */
248                 interrupts-extended = <&pm8058_gpio 17 IRQ_TYPE_EDGE_FALLING>;
249                 pinctrl-names = "default";
250                 pinctrl-0 = <&dragon_mpu3050_gpios>;
251                 vlogic-supply = <&pm8058_lvs0>; // 1.8V
252                 vdd-supply = <&pm8058_l14>; // 2.85V
253 
254                 /*
255                  * The MPU-3050 acts as a hub for the
256                  * accelerometer.
257                  */
258                 i2c-gate {
259                         #address-cells = <1>;
260                         #size-cells = <0>;
261 
262                         kxsd9@18 {
263                                 compatible = "kionix,kxsd9";
264                                 reg = <0x18>;
265                                 interrupt-parent = <&tlmm>;
266                                 interrupts = <57 IRQ_TYPE_EDGE_FALLING>;
267                                 pinctrl-names = "default";
268                                 pinctrl-0 = <&dragon_kxsd9_gpios>;
269                                 iovdd-supply = <&pm8058_lvs0>; // 1.8V
270                                 vdd-supply = <&pm8058_l14>; // 2.85V
271                         };
272                 };
273         };
274 };
275 
276 &pm8058 {
277         interrupts-extended = <&tlmm 88 IRQ_TYPE_LEVEL_LOW>;
278 };
279 
280 &pm8058_gpio {
281         dragon_ethernet_gpios: ethernet-state {
282                 pinconf {
283                         pins = "gpio7";
284                         function = "normal";
285                         input-enable;
286                         bias-disable;
287                         power-source = <PM8058_GPIO_S3>;
288                 };
289         };
290         dragon_bmp085_gpios: bmp085-state {
291                 pinconf {
292                         pins = "gpio16";
293                         function = "normal";
294                         input-enable;
295                         bias-disable;
296                         power-source = <PM8058_GPIO_S3>;
297                 };
298         };
299         dragon_mpu3050_gpios: mpu3050-state {
300                 pinconf {
301                         pins = "gpio17";
302                         function = "normal";
303                         input-enable;
304                         bias-disable;
305                         power-source = <PM8058_GPIO_S3>;
306                 };
307         };
308         dragon_sdcc3_gpios: sdcc3-state {
309                 pinconf {
310                         pins = "gpio22";
311                         function = "normal";
312                         input-enable;
313                         bias-disable;
314                         power-source = <PM8058_GPIO_S3>;
315                 };
316         };
317         dragon_sdcc5_gpios: sdcc5-state {
318                 pinconf {
319                         pins = "gpio26";
320                         function = "normal";
321                         input-enable;
322                         bias-pull-up;
323                         qcom,pull-up-strength = <PMIC_GPIO_PULL_UP_30>;
324                         power-source = <PM8058_GPIO_S3>;
325                 };
326         };
327         dragon_ak8975_gpios: ak8975-state {
328                 pinconf {
329                         pins = "gpio33";
330                         function = "normal";
331                         input-enable;
332                         bias-disable;
333                         power-source = <PM8058_GPIO_S3>;
334                 };
335         };
336         dragon_cm3605_gpios: cm3605-state {
337                 /* Pin 34 connected to the proxy IRQ */
338                 gpio34-pins {
339                         pins = "gpio34";
340                         function = "normal";
341                         input-enable;
342                         bias-disable;
343                         power-source = <PM8058_GPIO_S3>;
344                 };
345                 /* Pin 35 connected to ASET */
346                 gpio35-pins {
347                         pins = "gpio35";
348                         function = "normal";
349                         output-high;
350                         bias-disable;
351                         power-source = <PM8058_GPIO_S3>;
352                 };
353         };
354         dragon_veth_gpios: veth-state {
355                 pinconf {
356                         pins = "gpio40";
357                         function = "normal";
358                         bias-disable;
359                         drive-push-pull;
360                 };
361         };
362 };
363 
364 &pm8058_keypad {
365         linux,keymap = <
366                 MATRIX_KEY(0, 0, KEY_MENU)
367                 MATRIX_KEY(0, 2, KEY_1)
368                 MATRIX_KEY(0, 3, KEY_4)
369                 MATRIX_KEY(0, 4, KEY_7)
370                 MATRIX_KEY(1, 0, KEY_UP)
371                 MATRIX_KEY(1, 1, KEY_LEFT)
372                 MATRIX_KEY(1, 2, KEY_DOWN)
373                 MATRIX_KEY(1, 3, KEY_5)
374                 MATRIX_KEY(1, 3, KEY_8)
375                 MATRIX_KEY(2, 0, KEY_HOME)
376                 MATRIX_KEY(2, 1, KEY_REPLY)
377                 MATRIX_KEY(2, 2, KEY_2)
378                 MATRIX_KEY(2, 3, KEY_6)
379                 MATRIX_KEY(3, 0, KEY_VOLUMEUP)
380                 MATRIX_KEY(3, 1, KEY_RIGHT)
381                 MATRIX_KEY(3, 2, KEY_3)
382                 MATRIX_KEY(3, 3, KEY_9)
383                 MATRIX_KEY(3, 4, KEY_SWITCHVIDEOMODE)
384                 MATRIX_KEY(4, 0, KEY_VOLUMEDOWN)
385                 MATRIX_KEY(4, 1, KEY_BACK)
386                 MATRIX_KEY(4, 2, KEY_CAMERA)
387                 MATRIX_KEY(4, 3, KEY_KBDILLUMTOGGLE)
388         >;
389         keypad,num-rows = <6>;
390         keypad,num-columns = <5>;
391 };
392 
393 &pm8058_led48 {
394         /*
395          * The keypad LED @0x48 is routed to
396          * the sensor board where it is
397          * connected to an infrared LED
398          * SFH4650 (60mW, @850nm) next to the
399          * ambient light and proximity sensor
400          * Capella Microsystems CM3605.
401          */
402         label = "pm8058:infrared:proximitysensor";
403         default-state = "off";
404         linux,default-trigger = "cm3605";
405         status = "okay";
406 };
407 
408 &pm8058_led131 {
409         label = "pm8058:red";
410         color = <LED_COLOR_ID_RED>;
411         default-state = "off";
412         status = "okay";
413 };
414 
415 &pm8058_led132 {
416         /*
417          * This is actually green too on my
418          * board, but documented as yellow.
419          */
420         label = "pm8058:yellow";
421         color = <LED_COLOR_ID_YELLOW>;
422         default-state = "off";
423         linux,default-trigger = "mmc0";
424         status = "okay";
425 };
426 
427 &pm8058_led133 {
428         label = "pm8058:green";
429         function = LED_FUNCTION_HEARTBEAT;
430         color = <LED_COLOR_ID_GREEN>;
431         default-state = "on";
432         linux,default-trigger = "heartbeat";
433         status = "okay";
434 };
435 
436 &pm8058_mpps {
437         dragon_cm3605_mpps: cm3605-mpps-state {
438                 pins = "mpp5";
439                 function = "analog";
440                 input-enable;
441                 bias-high-impedance;
442                 /* Let's use channel 5 */
443                 qcom,amux-route = <PMIC_MPP_AMUX_ROUTE_CH5>;
444                 power-source = <PM8058_GPIO_S3>;
445         };
446 };
447 
448 &rpm {
449         /*
450          * Set up of the PMIC RPM regulators for this board
451          * PM8901 supplies "preliminary regulators" whatever
452          * that means
453          */
454         regulators-0 {
455                 compatible = "qcom,rpm-pm8901-regulators";
456 
457                 vdd_l0-supply = <&pm8901_s4>;
458                 vdd_l1-supply = <&vph>;
459                 vdd_l2-supply = <&vph>;
460                 vdd_l3-supply = <&vph>;
461                 vdd_l4-supply = <&vph>;
462                 vdd_l5-supply = <&vph>;
463                 vdd_l6-supply = <&vph>;
464                 /* vdd_s0-supply, vdd_s1-supply: SAW regulators */
465                 vdd_s2-supply = <&vph>;
466                 vdd_s3-supply = <&vph>;
467                 vdd_s4-supply = <&vph>;
468                 lvs0_in-supply = <&pm8058_s3>;
469                 lvs1_in-supply = <&pm8901_s4>;
470                 lvs2_in-supply = <&pm8058_l0>;
471                 lvs3_in-supply = <&pm8058_s2>;
472                 mvs_in-supply = <&pm8058_s3>;
473 
474                 pm8901_l0: l0 {
475                         regulator-min-microvolt = <1200000>;
476                         regulator-max-microvolt = <1200000>;
477                         bias-pull-down;
478                 };
479 
480                 pm8901_l1: l1 {
481                         regulator-min-microvolt = <3300000>;
482                         regulator-max-microvolt = <3300000>;
483                         bias-pull-down;
484                 };
485 
486                 pm8901_l2: l2 {
487                         /* TMA340 requires strictly 3.3V */
488                         regulator-min-microvolt = <3300000>;
489                         regulator-max-microvolt = <3300000>;
490                         bias-pull-down;
491                 };
492 
493                 pm8901_l3: l3 {
494                         regulator-min-microvolt = <3300000>;
495                         regulator-max-microvolt = <3300000>;
496                         bias-pull-down;
497                 };
498 
499                 pm8901_l4: l4 {
500                         regulator-min-microvolt = <2600000>;
501                         regulator-max-microvolt = <2600000>;
502                         bias-pull-down;
503                 };
504 
505                 pm8901_l5: l5 {
506                         regulator-min-microvolt = <2850000>;
507                         regulator-max-microvolt = <2850000>;
508                         bias-pull-down;
509                 };
510 
511                 pm8901_l6: l6 {
512                         regulator-min-microvolt = <2200000>;
513                         regulator-max-microvolt = <2200000>;
514                         bias-pull-down;
515                 };
516 
517                 /* s0 and s1 are SAW regulators controlled over SPM */
518                 pm8901_s2: s2 {
519                         regulator-min-microvolt = <1300000>;
520                         regulator-max-microvolt = <1300000>;
521                         qcom,switch-mode-frequency = <1600000>;
522                         bias-pull-down;
523                 };
524                 pm8901_s3: s3 {
525                         regulator-min-microvolt = <1100000>;
526                         regulator-max-microvolt = <1100000>;
527                         qcom,switch-mode-frequency = <1600000>;
528                         bias-pull-down;
529                 };
530                 pm8901_s4: s4 {
531                         regulator-min-microvolt = <1225000>;
532                         regulator-max-microvolt = <1225000>;
533                         qcom,switch-mode-frequency = <1600000>;
534                         bias-pull-down;
535                 };
536 
537                 /* LVS0 thru 3 and mvs are just switches */
538                 pm8901_lvs0: lvs0 {
539                         regulator-always-on;
540                 };
541 
542                 pm8901_lvs1: lvs1 { };
543 
544                 pm8901_lvs2: lvs2 { };
545 
546                 pm8901_lvs3: lvs3 { };
547 
548                 pm8901_mvs: mvs { };
549         };
550 
551         regulators-1 {
552                 compatible = "qcom,rpm-pm8058-regulators";
553 
554                 vdd_l0_l1_lvs-supply = <&pm8058_s3>;
555                 vdd_l2_l11_l12-supply = <&vph>;
556                 vdd_l3_l4_l5-supply = <&vph>;
557                 vdd_l6_l7-supply = <&vph>;
558                 vdd_l8-supply = <&vph>;
559                 vdd_l9-supply = <&vph>;
560                 vdd_l10-supply = <&vph>;
561                 vdd_l13_l16-supply = <&pm8058_s4>;
562                 vdd_l14_l15-supply = <&vph>;
563                 vdd_l17_l18-supply = <&vph>;
564                 vdd_l19_l20-supply = <&vph>;
565                 vdd_l21-supply = <&pm8058_s3>;
566                 vdd_l22-supply = <&pm8058_s3>;
567                 vdd_l23_l24_l25-supply = <&pm8058_s3>;
568                 vdd_s0-supply = <&vph>;
569                 vdd_s1-supply = <&vph>;
570                 vdd_s2-supply = <&vph>;
571                 vdd_s3-supply = <&vph>;
572                 vdd_s4-supply = <&vph>;
573                 vdd_ncp-supply = <&vph>;
574 
575                 pm8058_l0: l0 {
576                         regulator-min-microvolt = <1200000>;
577                         regulator-max-microvolt = <1200000>;
578                         bias-pull-down;
579                 };
580 
581                 pm8058_l1: l1 {
582                         regulator-min-microvolt = <1200000>;
583                         regulator-max-microvolt = <1200000>;
584                         bias-pull-down;
585                 };
586 
587                 pm8058_l2: l2 {
588                         regulator-min-microvolt = <1800000>;
589                         regulator-max-microvolt = <2600000>;
590                         bias-pull-down;
591                 };
592 
593                 pm8058_l3: l3 {
594                         regulator-min-microvolt = <1800000>;
595                         regulator-max-microvolt = <1800000>;
596                         bias-pull-down;
597                 };
598 
599                 pm8058_l4: l4 {
600                         regulator-min-microvolt = <2850000>;
601                         regulator-max-microvolt = <2850000>;
602                         bias-pull-down;
603                 };
604 
605                 pm8058_l5: l5 {
606                         regulator-min-microvolt = <2850000>;
607                         regulator-max-microvolt = <2850000>;
608                         bias-pull-down;
609                 };
610 
611                 pm8058_l6: l6 {
612                         regulator-min-microvolt = <3000000>;
613                         regulator-max-microvolt = <3600000>;
614                         bias-pull-down;
615                 };
616 
617                 pm8058_l7: l7 {
618                         regulator-min-microvolt = <1800000>;
619                         regulator-max-microvolt = <1800000>;
620                         bias-pull-down;
621                 };
622 
623                 pm8058_l8: l8 {
624                         regulator-min-microvolt = <2900000>;
625                         regulator-max-microvolt = <3050000>;
626                         bias-pull-down;
627                 };
628 
629                 pm8058_l9: l9 {
630                         regulator-min-microvolt = <1800000>;
631                         regulator-max-microvolt = <1800000>;
632                         bias-pull-down;
633                 };
634 
635                 pm8058_l10: l10 {
636                         regulator-min-microvolt = <2600000>;
637                         regulator-max-microvolt = <2600000>;
638                         bias-pull-down;
639                 };
640 
641                 pm8058_l11: l11 {
642                         regulator-min-microvolt = <1500000>;
643                         regulator-max-microvolt = <1500000>;
644                         bias-pull-down;
645                 };
646 
647                 pm8058_l12: l12 {
648                         regulator-min-microvolt = <2900000>;
649                         regulator-max-microvolt = <2900000>;
650                         bias-pull-down;
651                 };
652 
653                 pm8058_l13: l13 {
654                         regulator-min-microvolt = <2050000>;
655                         regulator-max-microvolt = <2050000>;
656                         bias-pull-down;
657                 };
658 
659                 pm8058_l14: l14 {
660                         regulator-min-microvolt = <2850000>;
661                         regulator-max-microvolt = <2850000>;
662                 };
663 
664                 pm8058_l15: l15 {
665                         regulator-min-microvolt = <2850000>;
666                         regulator-max-microvolt = <2850000>;
667                         bias-pull-down;
668                 };
669 
670                 pm8058_l16: l16 {
671                         regulator-min-microvolt = <1800000>;
672                         regulator-max-microvolt = <1800000>;
673                         bias-pull-down;
674                         regulator-always-on;
675                 };
676 
677                 pm8058_l17: l17 {
678                         // 1.5V according to schematic
679                         regulator-min-microvolt = <2600000>;
680                         regulator-max-microvolt = <2600000>;
681                         bias-pull-down;
682                 };
683 
684                 pm8058_l18: l18 {
685                         regulator-min-microvolt = <2200000>;
686                         regulator-max-microvolt = <2200000>;
687                         bias-pull-down;
688                 };
689 
690                 pm8058_l19: l19 {
691                         regulator-min-microvolt = <2500000>;
692                         regulator-max-microvolt = <2500000>;
693                         bias-pull-down;
694                 };
695 
696                 pm8058_l20: l20 {
697                         regulator-min-microvolt = <1800000>;
698                         regulator-max-microvolt = <1800000>;
699                         bias-pull-down;
700                 };
701 
702                 pm8058_l21: l21 {
703                         // 1.1 V according to schematic
704                         regulator-min-microvolt = <1200000>;
705                         regulator-max-microvolt = <1200000>;
706                         bias-pull-down;
707                         regulator-always-on;
708                 };
709 
710                 pm8058_l22: l22 {
711                         // 1.2 V according to schematic
712                         regulator-min-microvolt = <1150000>;
713                         regulator-max-microvolt = <1150000>;
714                         bias-pull-down;
715                 };
716 
717                 pm8058_l23: l23 {
718                         // Unused
719                         regulator-min-microvolt = <1200000>;
720                         regulator-max-microvolt = <1200000>;
721                         bias-pull-down;
722                 };
723 
724                 pm8058_l24: l24 {
725                         // Unused
726                         regulator-min-microvolt = <1200000>;
727                         regulator-max-microvolt = <1200000>;
728                         bias-pull-down;
729                 };
730 
731                 pm8058_l25: l25 {
732                         regulator-min-microvolt = <1200000>;
733                         regulator-max-microvolt = <1200000>;
734                         bias-pull-down;
735                 };
736 
737                 pm8058_s0: s0 {
738                         // regulator-min-microvolt = <500000>;
739                         // regulator-max-microvolt = <1325000>;
740                         regulator-min-microvolt = <1100000>;
741                         regulator-max-microvolt = <1100000>;
742                         qcom,switch-mode-frequency = <1600000>;
743                         bias-pull-down;
744                 };
745 
746                 pm8058_s1: s1 {
747                         // regulator-min-microvolt = <500000>;
748                         // regulator-max-microvolt = <1250000>;
749                         regulator-min-microvolt = <1100000>;
750                         regulator-max-microvolt = <1100000>;
751                         qcom,switch-mode-frequency = <1600000>;
752                         bias-pull-down;
753                 };
754 
755                 pm8058_s2: s2 {
756                         // 1.3 V according to schematic
757                         regulator-min-microvolt = <1200000>;
758                         regulator-max-microvolt = <1400000>;
759                         qcom,switch-mode-frequency = <1600000>;
760                         bias-pull-down;
761                 };
762 
763                 pm8058_s3: s3 {
764                         regulator-min-microvolt = <1800000>;
765                         regulator-max-microvolt = <1800000>;
766                         qcom,switch-mode-frequency = <1600000>;
767                         regulator-always-on;
768                         bias-pull-down;
769                 };
770 
771                 pm8058_s4: s4 {
772                         regulator-min-microvolt = <2200000>;
773                         regulator-max-microvolt = <2200000>;
774                         qcom,switch-mode-frequency = <1600000>;
775                         regulator-always-on;
776                         bias-pull-down;
777                 };
778 
779                 /* LVS0 and LVS1 are just switches */
780                 pm8058_lvs0: lvs0 {
781                         bias-pull-down;
782                 };
783 
784                 pm8058_lvs1: lvs1 {
785                         bias-pull-down;
786                 };
787 
788                 pm8058_ncp: ncp {
789                         regulator-min-microvolt = <1800000>;
790                         regulator-max-microvolt = <1800000>;
791                         qcom,switch-mode-frequency = <1600000>;
792                 };
793         };
794 };
795 
796 /* Internal 3.69 GiB eMMC */
797 &sdcc1 {
798         pinctrl-names = "default";
799         pinctrl-0 = <&dragon_sdcc1_pins>;
800         vmmc-supply = <&pm8901_l5>;
801         vqmmc-supply = <&pm8901_lvs0>;
802         status = "okay";
803 };
804 
805 /* External micro SD card, directly connected, pulled up to 2.85 V */
806 &sdcc3 {
807         /* Enable SSBI GPIO 22 as input, use for card detect */
808         pinctrl-names = "default";
809         pinctrl-0 = <&dragon_sdcc3_pins>, <&dragon_sdcc3_gpios>;
810         cd-gpios = <&pm8058_gpio 22 GPIO_ACTIVE_LOW>;
811         wp-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
812         vmmc-supply = <&pm8058_l14>;
813         status = "okay";
814 };
815 
816 /*
817  * Second external micro SD card, using two TXB104RGYR levelshifters
818  * to lift from 1.8 V to 2.85 V
819  */
820 &sdcc5 {
821         /* Enable SSBI GPIO 26 as input, use for card detect */
822         pinctrl-names = "default";
823         pinctrl-0 = <&dragon_sdcc5_pins>, <&dragon_sdcc5_gpios>;
824         cd-gpios = <&pm8058_gpio 26 GPIO_ACTIVE_LOW>;
825         wp-gpios = <&tlmm 106 GPIO_ACTIVE_HIGH>;
826         vmmc-supply = <&pm8058_l14>;
827         vqmmc-supply = <&dragon_vio_txb>;
828         status = "okay";
829 };
830 
831 &tlmm {
832         /* eMMC pins, all 8 data lines connected */
833         dragon_sdcc1_pins: sdcc1-state {
834                 clk-pins {
835                         pins = "gpio167"; /* SDC1 CLK */
836                         function = "sdc1";
837                         drive-strength = <16>;
838                         bias-disable;
839                 };
840                 cmd-pins {
841                         pins = "gpio168"; /* SDC1 CMD */
842                         function = "sdc1";
843                         drive-strength = <10>;
844                         bias-pull-up;
845                 };
846                 data-pins {
847                         /* SDC1 D0 to D7 */
848                         pins = "gpio159", "gpio160", "gpio161", "gpio162",
849                              "gpio163", "gpio164", "gpio165", "gpio166";
850                         function = "sdc1";
851                         drive-strength = <10>;
852                         bias-pull-up;
853                 };
854         };
855 
856         /*
857          * The SDCC3 pins are hardcoded (non-muxable) but need some pin
858          * configuration.
859          */
860         dragon_sdcc3_pins: sdcc3-state {
861                 clk-pins {
862                         pins = "sdc3_clk";
863                         drive-strength = <8>;
864                         bias-disable;
865                 };
866                 cmd-pins {
867                         pins = "sdc3_cmd";
868                         drive-strength = <8>;
869                         bias-pull-up;
870                 };
871                 data-pins {
872                         pins = "sdc3_data";
873                         drive-strength = <8>;
874                         bias-pull-up;
875                 };
876         };
877 
878         /* Second SD card slot pins */
879         dragon_sdcc5_pins: sdcc5-state {
880                 clk-pins {
881                         pins = "gpio97"; /* SDC5 CLK */
882                         function = "sdc5";
883                         drive-strength = <16>;
884                         bias-disable;
885                 };
886                 cmd-pins {
887                         pins = "gpio95"; /* SDC5 CMD */
888                         function = "sdc5";
889                         drive-strength = <10>;
890                         bias-pull-up;
891                 };
892                 data-pins {
893                         /* SDC5 D0 to D3 */
894                         pins = "gpio96", "gpio98", "gpio99", "gpio100";
895                         function = "sdc5";
896                         drive-strength = <10>;
897                         bias-pull-up;
898                 };
899         };
900 
901         dragon_gsbi3_i2c_pins: gsbi3-i2c-state {
902                 pins = "gpio43", "gpio44";
903                 function = "gsbi3";
904                 drive-strength = <8>;
905                 /* These have external pull-up 2.2kOhm to 1.8V */
906                 bias-disable;
907         };
908 
909         dragon_gsbi8_i2c_pins: gsbi8-i2c-state {
910                 pins = "gpio64", "gpio65";
911                 function = "gsbi8";
912                 drive-strength = <16>;
913                 /* These have external pull-up 2.2kOhm to 1.8V */
914                 bias-disable;
915         };
916 
917         dragon_gsbi12_i2c_pins: gsbi12-i2c-state {
918                 pins = "gpio115", "gpio116";
919                 function = "gsbi12";
920                 drive-strength = <16>;
921                 /* These have external pull-up 4.7kOhm to 1.8V */
922                 bias-disable;
923         };
924 
925         /* Primary serial port uart 0 pins */
926         dragon_gsbi12_serial_pins: gsbi12-serial-state {
927                 tx-pins {
928                         pins = "gpio117";
929                         function = "gsbi12";
930                         drive-strength = <8>;
931                         bias-disable;
932                 };
933                 rx-pins {
934                         pins = "gpio118";
935                         function = "gsbi12";
936                         drive-strength = <2>;
937                         bias-pull-up;
938                 };
939         };
940 
941         dragon_ebi2_pins: ebi2-state {
942                 /*
943                  * Pins used by EBI2 on the Dragonboard, actually only
944                  * CS2 is used by a real peripheral. CS0 is just
945                  * routed to a test point.
946                  */
947                 mux0-pins {
948                         pins =
949                             /* "gpio39", CS1A_N this is not good to mux */
950                             "gpio40", /* CS2A_N */
951                             "gpio134"; /* CS0_N testpoint TP29 */
952                         function = "ebi2cs";
953                 };
954                 mux1-pins {
955                         pins =
956                             /* EBI2_ADDR_7 downto EBI2_ADDR_0 address bus */
957                             "gpio123", "gpio124", "gpio125", "gpio126",
958                             "gpio127", "gpio128", "gpio129", "gpio130",
959                             /* EBI2_DATA_15 downto EBI2_DATA_0 data bus */
960                             "gpio135", "gpio136", "gpio137", "gpio138",
961                             "gpio139", "gpio140", "gpio141", "gpio142",
962                             "gpio143", "gpio144", "gpio145", "gpio146",
963                             "gpio147", "gpio148", "gpio149", "gpio150",
964                             "gpio151", /* EBI2_OE_N */
965                             "gpio153", /* EBI2_ADV */
966                             "gpio157"; /* EBI2_WE_N */
967                         function = "ebi2";
968                 };
969         };
970 
971         /* Interrupt line for the KXSD9 accelerometer */
972         dragon_kxsd9_gpios: kxsd9-state {
973                 pins = "gpio57"; /* IRQ line */
974                 function = "gpio";
975                 bias-pull-up;
976         };
977 
978         dragon_tma340_gpios: tma340-state {
979                 reset-pins {
980                         /* RESET line, TS_ATTN, WAKE_CTP */
981                         pins = "gpio58";
982                         function = "gpio";
983                         drive-strength = <6>;
984                         bias-disable;
985                 };
986                 irq-pins {
987                         pins = "gpio61"; /* IRQ line */
988                         function = "gpio";
989                         drive-strength = <2>;
990                         bias-pull-up;
991                 };
992         };
993 };
994 
995 &pm8058_xoadc {
996         /* Reference voltage 2.2 V */
997         xoadc-ref-supply = <&pm8058_l18>;
998 
999         /* Board-specific channels */
1000         adc-channel@5 {
1001                 /* Connected to AOUT of ALS sensor */
1002                 reg = <0x00 0x05>;
1003         };
1004 
1005         adc-channel@6 {
1006                 /* Connected to test point TP43 */
1007                 reg = <0x00 0x06>;
1008         };
1009 
1010         adc-channel@7 {
1011                 /* Connected to battery thermistor */
1012                 reg = <0x00 0x07>;
1013         };
1014 
1015         adc-channel@8 {
1016                 /* Connected to battery ID detector */
1017                 reg = <0x00 0x08>;
1018         };
1019 
1020         adc-channel@9 {
1021                 /* Connected to XO thermistor */
1022                 reg = <0x00 0x09>;
1023         };
1024 };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php