The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/src/arm64/qcom/msm8994-msft-lumia-octagon.dtsi

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 // SPDX-License-Identifier: BSD-3-Clause
    2 /*
    3  * Common Board Device Tree for
    4  * Microsoft Mobile MSM8994 Octagon Platforms
    5  *
    6  * Copyright (c) 2020, Konrad Dybcio
    7  * Copyright (c) 2020, Gustave Monce <gustave.monce@outlook.com>
    8  */
    9 
   10 #include "pm8994.dtsi"
   11 #include "pmi8994.dtsi"
   12 #include <dt-bindings/gpio/gpio.h>
   13 #include <dt-bindings/input/gpio-keys.h>
   14 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
   15 
   16 /*
   17  * Delete all generic (msm8994.dtsi) reserved
   18  * memory mappings which are different in this device.
   19  */
   20 /delete-node/ &adsp_mem;
   21 /delete-node/ &audio_mem;
   22 /delete-node/ &cont_splash_mem;
   23 /delete-node/ &mba_mem;
   24 /delete-node/ &mpss_mem;
   25 /delete-node/ &peripheral_region;
   26 /delete-node/ &rmtfs_mem;
   27 /delete-node/ &smem_mem;
   28 
   29 / {
   30         /*
   31          * Most Lumia 950/XL users use GRUB to load their kernels,
   32          * hence there is no need for msm-id and friends.
   33          */
   34 
   35         /*
   36          * This enables graphical output via bootloader-enabled display.
   37          * acpi=no is required due to WP platforms having ACPI support, but
   38          * only for Windows-based OSes.
   39          */
   40         chosen {
   41                 bootargs = "earlycon=efifb console=efifb acpi=no";
   42 
   43                 #address-cells = <2>;
   44                 #size-cells = <2>;
   45                 ranges;
   46         };
   47 
   48         clocks {
   49                 compatible = "simple-bus";
   50 
   51                 divclk4: divclk4 {
   52                         compatible = "fixed-clock";
   53                         #clock-cells = <0>;
   54 
   55                         clock-frequency = <32768>;
   56                         clock-output-names = "divclk4";
   57 
   58                         pinctrl-names = "default";
   59                         pinctrl-0 = <&divclk4_pin_a>;
   60                 };
   61         };
   62 
   63         gpio-keys {
   64                 compatible = "gpio-keys";
   65                 autorepeat;
   66 
   67                 volup-key {
   68                         label = "Volume Up";
   69                         gpios = <&pm8994_gpios 3 GPIO_ACTIVE_LOW>;
   70                         linux,input-type = <1>;
   71                         linux,code = <KEY_VOLUMEUP>;
   72                         wakeup-source;
   73                         debounce-interval = <15>;
   74                 };
   75 
   76                 camsnap-key {
   77                         label = "Camera Snapshot";
   78                         gpios = <&pm8994_gpios 4 GPIO_ACTIVE_LOW>;
   79                         linux,input-type = <1>;
   80                         linux,code = <KEY_CAMERA>;
   81                         wakeup-source;
   82                         debounce-interval = <15>;
   83                 };
   84 
   85                 camfocus-key {
   86                         label = "Camera Focus";
   87                         gpios = <&pm8994_gpios 5 GPIO_ACTIVE_LOW>;
   88                         linux,input-type = <1>;
   89                         linux,code = <KEY_VOLUMEUP>;
   90                         wakeup-source;
   91                         debounce-interval = <15>;
   92                 };
   93         };
   94 
   95         gpio-hall-sensor {
   96                 compatible = "gpio-keys";
   97 
   98                 pinctrl-names = "default";
   99                 pinctrl-0 = <&hall_front_default &hall_back_default>;
  100 
  101                 label = "GPIO Hall Effect Sensor";
  102 
  103                 event-hall-front-sensor {
  104                         label = "Hall Effect Front Sensor";
  105                         gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>;
  106                         linux,input-type = <EV_SW>;
  107                         linux,code = <SW_LID>;
  108                         linux,can-disable;
  109                 };
  110 
  111                 event-hall-back-sensor {
  112                         label = "Hall Effect Back Sensor";
  113                         gpios = <&tlmm 75 GPIO_ACTIVE_HIGH>;
  114                         linux,input-type = <EV_SW>;
  115                         linux,code = <SW_MACHINE_COVER>;
  116                         linux,can-disable;
  117                 };
  118         };
  119 
  120         reserved-memory {
  121                 /*
  122                  * This device being a WP platform has a very different
  123                  * memory layout than other Android based devices.
  124                  * This memory layout is directly copied from the original
  125                  * device UEFI firmware, and adapted based on observations
  126                  * using JTAG for the Qualcomm Peripheral Image regions.
  127                  */
  128 
  129                 uefi_mem: memory@200000 {
  130                         reg = <0 0x200000 0 0x100000>;
  131                         no-map;
  132                 };
  133 
  134                 mppark_mem: memory@300000 {
  135                         reg = <0 0x300000 0 0x80000>;
  136                         no-map;
  137                 };
  138 
  139                 fbpt_mem: memory@380000 {
  140                         reg = <0 0x380000 0 0x1000>;
  141                         no-map;
  142                 };
  143 
  144                 dbg2_mem: memory@381000 {
  145                         reg = <0 0x381000 0 0x4000>;
  146                         no-map;
  147                 };
  148 
  149                 capsule_mem: memory@385000 {
  150                         reg = <0 0x385000 0 0x1000>;
  151                         no-map;
  152                 };
  153 
  154                 tpmctrl_mem: memory@386000 {
  155                         reg = <0 0x386000 0 0x3000>;
  156                         no-map;
  157                 };
  158 
  159                 uefiinfo_mem: memory@389000 {
  160                         reg = <0 0x389000 0 0x1000>;
  161                         no-map;
  162                 };
  163 
  164                 reset_mem: memory@389000 {
  165                         reg = <0 0x389000 0 0x1000>;
  166                         no-map;
  167                 };
  168 
  169                 resuncached_mem: memory@38e000 {
  170                         reg = <0 0x38e000 0 0x72000>;
  171                         no-map;
  172                 };
  173 
  174                 disp_mem: memory@400000 {
  175                         reg = <0 0x400000 0 0x800000>;
  176                         no-map;
  177                 };
  178 
  179                 uefistack_mem: memory@c00000 {
  180                         reg = <0 0xc00000 0 0x40000>;
  181                         no-map;
  182                 };
  183 
  184                 cpuvect_mem: memory@c40000 {
  185                         reg = <0 0xc40000 0 0x10000>;
  186                         no-map;
  187                 };
  188 
  189                 rescached_mem: memory@400000 {
  190                         reg = <0 0xc50000 0 0xb0000>;
  191                         no-map;
  192                 };
  193 
  194                 tzapps_mem: memory@6500000 {
  195                         reg = <0 0x6500000 0 0x500000>;
  196                         no-map;
  197                 };
  198 
  199                 smem_mem: memory@6a00000 {
  200                         reg = <0 0x6a00000 0 0x200000>;
  201                         no-map;
  202                 };
  203 
  204                 hyp_mem: memory@6c00000 {
  205                         reg = <0 0x6c00000 0 0x100000>;
  206                         no-map;
  207                 };
  208 
  209                 tz_mem: memory@6d00000 {
  210                         reg = <0 0x6d00000 0 0x160000>;
  211                         no-map;
  212                 };
  213 
  214                 rfsa_adsp_mem: memory@6e60000 {
  215                         reg = <0 0x6e60000 0 0x10000>;
  216                         no-map;
  217                 };
  218 
  219                 rfsa_mpss_mem: memory@6e70000 {
  220                         compatible = "qcom,rmtfs-mem";
  221                         reg = <0 0x6e70000 0 0x10000>;
  222                         no-map;
  223 
  224                         qcom,client-id = <1>;
  225                 };
  226 
  227                 /*
  228                  * Value obtained from the device original ACPI DSDT table
  229                  * MPSS_EFS / SBL
  230                  */
  231                 mba_mem: memory@6e80000 {
  232                         reg = <0 0x6e80000 0 0x180000>;
  233                         no-map;
  234                 };
  235 
  236                 /*
  237                  * Peripheral Image loader region begin!
  238                  * The region reserved for pil is 0x7000000-0xef00000
  239                  */
  240 
  241                 mpss_mem: memory@7000000 {
  242                         reg = <0 0x7000000 0 0x5a00000>;
  243                         no-map;
  244                 };
  245 
  246                 adsp_mem: memory@ca00000 {
  247                         reg = <0 0xca00000 0 0x1800000>;
  248                         no-map;
  249                 };
  250 
  251                 venus_mem: memory@e200000 {
  252                         reg = <0 0xe200000 0 0x500000>;
  253                         no-map;
  254                 };
  255 
  256                 pil_metadata_mem: memory@e700000 {
  257                         reg = <0 0xe700000 0 0x4000>;
  258                         no-map;
  259                 };
  260 
  261                 memory@e704000 {
  262                         reg = <0 0xe704000 0 0x7fc000>;
  263                         no-map;
  264                 };
  265                 /* Peripheral Image loader region end */
  266 
  267                 cnss_mem: memory@ef00000 {
  268                         reg = <0 0xef00000 0 0x300000>;
  269                         no-map;
  270                 };
  271         };
  272 };
  273 
  274 &blsp1_i2c1 {
  275         status = "okay";
  276 
  277         rmi4-i2c-dev@4b {
  278                 compatible = "syna,rmi4-i2c";
  279                 reg = <0x4b>;
  280                 #address-cells = <1>;
  281                 #size-cells = <0>;
  282 
  283                 interrupt-parent = <&tlmm>;
  284                 interrupts = <77 IRQ_TYPE_EDGE_FALLING>;
  285 
  286                 rmi4-f01@1 {
  287                         reg = <0x01>;
  288                         syna,nosleep-mode = <1>;
  289                 };
  290 
  291                 rmi4-f12@12 {
  292                         reg = <0x12>;
  293                         syna,sensor-type = <1>;
  294                         syna,clip-x-low = <0>;
  295                         syna,clip-x-high = <1440>;
  296                         syna,clip-y-low = <0>;
  297                         syna,clip-y-high = <2560>;
  298                 };
  299         };
  300 };
  301 
  302 &blsp1_i2c2 {
  303         status = "okay";
  304 
  305         /*
  306          * This device uses the Texas Instruments TAS2553, however the TAS2552 driver
  307          * seems to work here. In the future a proper driver might need to
  308          * be written for this device.
  309          */
  310         tas2553: tas2553@40 {
  311                 compatible = "ti,tas2552";
  312                 reg = <0x40>;
  313 
  314                 vbat-supply = <&vph_pwr>;
  315                 iovdd-supply = <&vreg_s4a_1p8>;
  316                 avdd-supply = <&vreg_s4a_1p8>;
  317 
  318                 enable-gpio = <&pm8994_gpios 12 GPIO_ACTIVE_HIGH>;
  319         };
  320 };
  321 
  322 &blsp1_i2c5 {
  323         status = "okay";
  324 
  325         ak09912: magnetometer@c {
  326                 compatible = "asahi-kasei,ak09912";
  327                 reg = <0xc>;
  328 
  329                 interrupt-parent = <&tlmm>;
  330                 interrupts = <26 IRQ_TYPE_EDGE_RISING>;
  331 
  332                 vdd-supply = <&vreg_l18a_2p85>;
  333                 vid-supply = <&vreg_lvs2a_1p8>;
  334         };
  335 
  336         zpa2326: barometer@5c {
  337                 compatible = "murata,zpa2326";
  338                 reg = <0x5c>;
  339 
  340                 interrupt-parent = <&tlmm>;
  341                 interrupts = <74 IRQ_TYPE_EDGE_RISING>;
  342 
  343                 vdd-supply = <&vreg_lvs2a_1p8>;
  344         };
  345 
  346         mpu6050: accelerometer@68 {
  347                 compatible = "invensense,mpu6500";
  348                 reg = <0x68>;
  349 
  350                 interrupt-parent = <&tlmm>;
  351                 interrupts = <64 IRQ_TYPE_EDGE_RISING>;
  352 
  353                 vdd-supply = <&vreg_lvs2a_1p8>;
  354                 vddio-supply = <&vreg_lvs2a_1p8>;
  355         };
  356 };
  357 
  358 &blsp1_i2c6 {
  359         status = "okay";
  360 
  361         pn547: pn547@28 {
  362                 compatible = "nxp,pn544-i2c";
  363 
  364                 reg = <0x28>;
  365 
  366                 interrupt-parent = <&tlmm>;
  367                 interrupts = <29 IRQ_TYPE_EDGE_RISING>;
  368 
  369                 enable-gpios = <&tlmm 30 GPIO_ACTIVE_HIGH>;
  370                 firmware-gpios = <&tlmm 94 GPIO_ACTIVE_HIGH>;
  371         };
  372 };
  373 
  374 &blsp1_uart2 {
  375         status = "okay";
  376 };
  377 
  378 &blsp2_i2c1 {
  379         status = "okay";
  380 
  381         sideinteraction: ad7147_captouch@2c {
  382                 compatible = "ad,ad7147_captouch";
  383                 reg = <0x2c>;
  384 
  385                 pinctrl-names = "default", "sleep";
  386                 pinctrl-0 = <&grip_default>;
  387                 pinctrl-1 = <&grip_sleep>;
  388 
  389                 interrupts = <&tlmm 96 IRQ_TYPE_EDGE_FALLING>;
  390 
  391                 button_num = <8>;
  392                 touchpad_num = <0>;
  393                 wheel_num = <0>;
  394                 slider_num = <0>;
  395 
  396                 vcc-supply = <&vreg_l18a_2p85>;
  397         };
  398 
  399         /*
  400          * The QPDS-T900/QPDS-T930 is a customized part built for Nokia
  401          * by Avago. It is very similar to the Avago APDS-9930 with some
  402          * minor differences. In the future a proper driver might need to
  403          * be written for this device. For now this works fine.
  404          */
  405         qpdst900: qpdst900@39 {
  406                 compatible = "avago,apds9930";
  407                 reg = <0x39>;
  408 
  409                 interrupt-parent = <&tlmm>;
  410                 interrupts = <40 IRQ_TYPE_EDGE_FALLING>;
  411         };
  412 };
  413 
  414 &blsp2_i2c5 {
  415         status = "okay";
  416 
  417         fm_radio: si4705@11 {
  418                 compatible = "silabs,si470x";
  419                 reg = <0x11>;
  420 
  421                 interrupt-parent = <&tlmm>;
  422                 interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
  423                 reset-gpios = <&tlmm 93 GPIO_ACTIVE_HIGH>;
  424         };
  425 
  426         vreg_lpddr_1p1: fan53526a@6c {
  427                 compatible = "fcs,fan53526";
  428                 reg = <0x6c>;
  429 
  430                 regulator-min-microvolt = <1100000>;
  431                 regulator-max-microvolt = <1100000>;
  432                 vin-supply = <&vph_pwr>;
  433                 fcs,suspend-voltage-selector = <1>;
  434                 regulator-always-on; /* Turning off DDR power doesn't sound good. */
  435         };
  436 
  437         /* ANX7816 HDMI bridge (needs MDSS HDMI) */
  438 };
  439 
  440 &blsp2_spi4 {
  441         status = "okay";
  442 
  443         /*
  444          * This device is a Lattice UC120 USB-C PD PHY.
  445          * It is actually a Lattice iCE40 FPGA pre-programmed by
  446          * the device firmware with a specific bitstream
  447          * enabling USB Type C PHY functionality.
  448          * Communication is done via a proprietary protocol over SPI.
  449          *
  450          * TODO: Once a proper driver is available, replace this.
  451          */
  452         uc120: ice5lp2k@0 {
  453                 compatible = "lattice,ice40-fpga-mgr";
  454                 reg = <0>;
  455                 spi-max-frequency = <5000000>;
  456                 cdone-gpios = <&tlmm 95 GPIO_ACTIVE_HIGH>;
  457                 reset-gpios = <&pmi8994_gpios 4 GPIO_ACTIVE_LOW>;
  458         };
  459 };
  460 
  461 &blsp2_uart2 {
  462         status = "okay";
  463 
  464         qca6174_bt: bluetooth {
  465                 compatible = "qcom,qca6174-bt";
  466 
  467                 enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;
  468                 clocks = <&divclk4>;
  469         };
  470 };
  471 
  472 &pm8994_gpios {
  473         bt_en_gpios: bt-en-gpios-state {
  474                 pinconf {
  475                         pins = "gpio19";
  476                         function = PMIC_GPIO_FUNC_NORMAL;
  477                         output-low;
  478                         power-source = <PM8994_GPIO_S4>;
  479                         qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
  480                         bias-pull-down;
  481                 };
  482         };
  483 
  484         divclk4_pin_a: divclk4-state {
  485                 pinconf {
  486                         pins = "gpio18";
  487                         function = PMIC_GPIO_FUNC_FUNC2;
  488                         power-source = <PM8994_GPIO_S4>;
  489                         bias-disable;
  490                 };
  491         };
  492 };
  493 
  494 &pm8994_pon {
  495         pwrkey {
  496                 compatible = "qcom,pm8941-pwrkey";
  497                 interrupts = <0 8 0 IRQ_TYPE_EDGE_BOTH>;
  498                 debounce = <15625>;
  499                 linux,code = <KEY_POWER>;
  500         };
  501 
  502         volwnkey {
  503                 compatible = "qcom,pm8941-resin";
  504                 interrupts = <0 8 1 IRQ_TYPE_EDGE_BOTH>;
  505                 debounce = <15625>;
  506                 linux,code = <KEY_VOLUMEDOWN>;
  507         };
  508 };
  509 
  510 &pmi8994_gpios {
  511         pinctrl-0 = <&hd3ss460_pol &hd3ss460_amsel &hd3ss460_en>;
  512         pinctrl-names = "default";
  513 
  514         /*
  515          * This device uses a TI HD3SS460 Type-C MUX
  516          * As this device has no driver currently,
  517          * the configuration for USB Face Up is set-up here.
  518          *
  519          * TODO: remove once a driver is available
  520          * TODO: add VBUS GPIO 5
  521          */
  522         hd3ss460_pol: pol-low-state {
  523                 pins = "gpio8";
  524                 function = PMIC_GPIO_FUNC_NORMAL;
  525                 qcom,drive-strength = <3>;
  526                 bias-pull-down;
  527         };
  528 
  529         hd3ss460_amsel: amsel-high-state {
  530                 pins = "gpio9";
  531                 function = PMIC_GPIO_FUNC_NORMAL;
  532                 qcom,drive-strength = <1>;
  533                 bias-pull-up;
  534         };
  535 
  536         hd3ss460_en: en-high-state {
  537                 pins = "gpio10";
  538                 function = PMIC_GPIO_FUNC_NORMAL;
  539                 qcom,drive-strength = <1>;
  540                 bias-pull-up;
  541         };
  542 };
  543 
  544 &pmi8994_spmi_regulators {
  545         vdd_gfx: s2@1700 {
  546                 reg = <0x1700 0x100>;
  547                 regulator-min-microvolt = <980000>;
  548                 regulator-max-microvolt = <980000>;
  549         };
  550 };
  551 
  552 &rpm_requests {
  553         /* These values were taken from the original firmware ACPI tables */
  554         pm8994_regulators: pm8994-regulators {
  555                 compatible = "qcom,rpm-pm8994-regulators";
  556 
  557                 vdd_s1-supply = <&vph_pwr>;
  558                 vdd_s2-supply = <&vph_pwr>;
  559                 vdd_s3-supply = <&vph_pwr>;
  560                 vdd_s4-supply = <&vph_pwr>;
  561                 vdd_s5-supply = <&vph_pwr>;
  562                 vdd_s6-supply = <&vph_pwr>;
  563                 vdd_s7-supply = <&vph_pwr>;
  564                 vdd_s8-supply = <&vph_pwr>;
  565                 vdd_s9-supply = <&vph_pwr>;
  566                 vdd_s10-supply = <&vph_pwr>;
  567                 vdd_s11-supply = <&vph_pwr>;
  568                 vdd_s12-supply = <&vph_pwr>;
  569                 vdd_l1-supply = <&vreg_s1b_1p0>;
  570                 vdd_l2_l26_l28-supply = <&vreg_s3a_1p3>;
  571                 vdd_l3_l11-supply = <&vreg_s3a_1p3>;
  572                 vdd_l4_l27_l31-supply = <&vreg_s3a_1p3>;
  573                 vdd_l5_l7-supply = <&vreg_s5a_2p15>;
  574                 vdd_l6_l12_l32-supply = <&vreg_s5a_2p15>;
  575                 vdd_l8_l16_l30-supply = <&vph_pwr>;
  576                 vdd_l9_l10_l18_l22-supply = <&vph_pwr_bbyp>;
  577                 vdd_l13_l19_l23_l24-supply = <&vph_pwr_bbyp>;
  578                 vdd_l14_l15-supply = <&vreg_s5a_2p15>;
  579                 vdd_l17_l29-supply = <&vph_pwr_bbyp>;
  580                 vdd_l20_l21-supply = <&vph_pwr_bbyp>;
  581                 vdd_l25-supply = <&vreg_s5a_2p15>;
  582                 vdd_lvs1_2-supply = <&vreg_s4a_1p8>;
  583 
  584                 /* S1, S2, S6 and S12 are managed by RPMPD */
  585 
  586                 vreg_s3a_1p3: s3 {
  587                         regulator-min-microvolt = <1300000>;
  588                         regulator-max-microvolt = <1300000>;
  589                         regulator-allow-set-load;
  590                         regulator-system-load = <300000>;
  591                 };
  592 
  593                 vreg_s4a_1p8: s4 {
  594                         regulator-min-microvolt = <1800000>;
  595                         regulator-max-microvolt = <1800000>;
  596                         regulator-allow-set-load;
  597                         regulator-always-on;
  598                         regulator-system-load = <325000>;
  599                 };
  600 
  601                 vreg_s5a_2p15: s5 {
  602                         regulator-min-microvolt = <2150000>;
  603                         regulator-max-microvolt = <2150000>;
  604                         regulator-allow-set-load;
  605                         regulator-system-load = <325000>;
  606                 };
  607 
  608                 vreg_s7a_1p0: s7 {
  609                         regulator-min-microvolt = <1000000>;
  610                         regulator-max-microvolt = <1000000>;
  611                 };
  612 
  613                 /*
  614                  * S8 - SPMI-managed VDD_APC0
  615                  * S9, S10 and S11 (the main one) - SPMI-managed VDD_APC1
  616                  */
  617 
  618                 vreg_l1a_1p0: l1 {
  619                         regulator-min-microvolt = <1000000>;
  620                         regulator-max-microvolt = <1000000>;
  621                 };
  622 
  623                 vreg_l2a_1p25: l2 {
  624                         regulator-min-microvolt = <1250000>;
  625                         regulator-max-microvolt = <1250000>;
  626                         regulator-allow-set-load;
  627                         regulator-system-load = <4160>;
  628                 };
  629 
  630                 vreg_l3a_1p2: l3 {
  631                         regulator-min-microvolt = <1200000>;
  632                         regulator-max-microvolt = <1200000>;
  633                         regulator-always-on;
  634                         regulator-allow-set-load;
  635                         regulator-system-load = <80000>;
  636                 };
  637 
  638                 vreg_l4a_1p225: l4 {
  639                         regulator-min-microvolt = <1225000>;
  640                         regulator-max-microvolt = <1225000>;
  641                 };
  642 
  643                 /* L5 is inaccessible from RPM */
  644 
  645                 vreg_l6a_1p8: l6 {
  646                         regulator-min-microvolt = <1800000>;
  647                         regulator-max-microvolt = <1800000>;
  648                         regulator-allow-set-load;
  649                         regulator-system-load = <1000>;
  650                 };
  651 
  652                 /* L7 is inaccessible from RPM */
  653 
  654                 vreg_l8a_1p8: l8 {
  655                         regulator-min-microvolt = <1800000>;
  656                         regulator-max-microvolt = <1800000>;
  657                 };
  658 
  659                 vreg_l9a_1p8: l9 {
  660                         regulator-min-microvolt = <1800000>;
  661                         regulator-max-microvolt = <1800000>;
  662                 };
  663 
  664                 vreg_l10a_1p8: l10 {
  665                         regulator-min-microvolt = <1800000>;
  666                         regulator-max-microvolt = <1800000>;
  667                 };
  668 
  669                 vreg_l11a_1p2: l11 {
  670                         regulator-min-microvolt = <1200000>;
  671                         regulator-max-microvolt = <1200000>;
  672                         regulator-always-on;
  673                         regulator-allow-set-load;
  674                         regulator-system-load = <35000>;
  675                 };
  676 
  677                 vreg_l12a_1p8: l12 {
  678                         regulator-min-microvolt = <1800000>;
  679                         regulator-max-microvolt = <1800000>;
  680                         regulator-always-on;
  681                         regulator-allow-set-load;
  682                         regulator-system-load = <50000>;
  683                 };
  684 
  685                 vreg_l13a_2p95: l13 {
  686                         regulator-min-microvolt = <1850000>;
  687                         regulator-max-microvolt = <2950000>;
  688                         regulator-always-on;
  689                         regulator-allow-set-load;
  690                         regulator-system-load = <22000>;
  691                 };
  692 
  693                 vreg_l14a_1p8: l14 {
  694                         regulator-min-microvolt = <1800000>;
  695                         regulator-max-microvolt = <1800000>;
  696                         regulator-always-on;
  697                         regulator-allow-set-load;
  698                         regulator-system-load = <52000>;
  699                 };
  700 
  701                 vreg_l15a_1p8: l15 {
  702                         regulator-min-microvolt = <1800000>;
  703                         regulator-max-microvolt = <1800000>;
  704                 };
  705 
  706                 vreg_l16a_2p7: l16 {
  707                         regulator-min-microvolt = <2700000>;
  708                         regulator-max-microvolt = <2700000>;
  709                 };
  710 
  711                 vreg_l17a_2p7: l17 {
  712                         regulator-min-microvolt = <2800000>;
  713                         regulator-max-microvolt = <2800000>;
  714                         regulator-always-on;
  715                         regulator-allow-set-load;
  716                         regulator-system-load = <300000>;
  717                 };
  718 
  719                 vreg_l18a_2p85: l18 {
  720                         regulator-min-microvolt = <2850000>;
  721                         regulator-max-microvolt = <2850000>;
  722                         regulator-always-on;
  723                         regulator-allow-set-load;
  724                         regulator-system-load = <600000>;
  725                 };
  726 
  727                 vreg_l19a_3p3: l19 {
  728                         regulator-min-microvolt = <3300000>;
  729                         regulator-max-microvolt = <3300000>;
  730                         regulator-always-on;
  731                         regulator-allow-set-load;
  732                         regulator-system-load = <500000>;
  733                 };
  734 
  735                 vreg_l20a_2p95: l20 {
  736                         regulator-min-microvolt = <2950000>;
  737                         regulator-max-microvolt = <2950000>;
  738                         regulator-always-on;
  739                         regulator-boot-on;
  740                         regulator-allow-set-load;
  741                         regulator-system-load = <570000>;
  742                 };
  743 
  744                 vreg_l21a_2p95: l21 {
  745                         regulator-min-microvolt = <2950000>;
  746                         regulator-max-microvolt = <2950000>;
  747                         regulator-always-on;
  748                         regulator-allow-set-load;
  749                         regulator-system-load = <800000>;
  750                 };
  751 
  752                 vreg_l22a_3p0: l22 {
  753                         regulator-min-microvolt = <3000000>;
  754                         regulator-max-microvolt = <3000000>;
  755                         regulator-always-on;
  756                         regulator-allow-set-load;
  757                         regulator-system-load = <150000>;
  758                 };
  759 
  760                 vreg_l23a_2p8: l23 {
  761                         regulator-min-microvolt = <2850000>;
  762                         regulator-max-microvolt = <2850000>;
  763                         regulator-always-on;
  764                         regulator-allow-set-load;
  765                         regulator-system-load = <80000>;
  766                 };
  767 
  768                 vreg_l24a_3p075: l24 {
  769                         regulator-min-microvolt = <3075000>;
  770                         regulator-max-microvolt = <3150000>;
  771                         regulator-allow-set-load;
  772                         regulator-system-load = <5800>;
  773                 };
  774 
  775                 vreg_l25a_1p1: l25 {
  776                         regulator-min-microvolt = <1150000>;
  777                         regulator-max-microvolt = <1150000>;
  778                         regulator-always-on;
  779                         regulator-allow-set-load;
  780                         regulator-system-load = <80000>;
  781                 };
  782 
  783                 vreg_l26a_1p0: l26 {
  784                         regulator-min-microvolt = <1000000>;
  785                         regulator-max-microvolt = <1000000>;
  786                 };
  787 
  788                 vreg_l27a_1p05: l27 {
  789                         regulator-min-microvolt = <1000000>;
  790                         regulator-max-microvolt = <1000000>;
  791                         regulator-always-on;
  792                         regulator-allow-set-load;
  793                         regulator-system-load = <500000>;
  794                 };
  795 
  796                 vreg_l28a_1p0: l28 {
  797                         regulator-min-microvolt = <1000000>;
  798                         regulator-max-microvolt = <1000000>;
  799                         regulator-always-on;
  800                         regulator-allow-set-load;
  801                         regulator-system-load = <26000>;
  802                 };
  803 
  804                 vreg_l29a_2p8: l29 {
  805                         regulator-min-microvolt = <2850000>;
  806                         regulator-max-microvolt = <2850000>;
  807                         regulator-always-on;
  808                         regulator-allow-set-load;
  809                         regulator-system-load = <80000>;
  810                 };
  811 
  812                 vreg_l30a_1p8: l30 {
  813                         regulator-min-microvolt = <1800000>;
  814                         regulator-max-microvolt = <1800000>;
  815                         regulator-always-on;
  816                         regulator-allow-set-load;
  817                         regulator-system-load = <2500>;
  818                 };
  819 
  820                 vreg_l31a_1p2: l31 {
  821                         regulator-min-microvolt = <1200000>;
  822                         regulator-max-microvolt = <1200000>;
  823                         regulator-always-on;
  824                         regulator-allow-set-load;
  825                         regulator-system-load = <600000>;
  826                 };
  827 
  828                 vreg_l32a_1p8: l32 {
  829                         regulator-min-microvolt = <1800000>;
  830                         regulator-max-microvolt = <1800000>;
  831                 };
  832 
  833                 vreg_lvs1a_1p8: lvs1 { };
  834 
  835                 vreg_lvs2a_1p8: lvs2 { };
  836         };
  837 
  838         pmi8994_regulators: pmi8994-regulators {
  839                 compatible = "qcom,rpm-pmi8994-regulators";
  840 
  841                 vdd_s1-supply = <&vph_pwr>;
  842                 vdd_bst_byp-supply = <&vph_pwr>;
  843 
  844                 vreg_s1b_1p0: s1 {
  845                         regulator-min-microvolt = <1025000>;
  846                         regulator-max-microvolt = <1025000>;
  847                 };
  848 
  849                 /* S2 & S3 - VDD_GFX */
  850 
  851                 vph_pwr_bbyp: boost-bypass {
  852                         regulator-min-microvolt = <3300000>;
  853                         regulator-max-microvolt = <3300000>;
  854                 };
  855         };
  856 };
  857 
  858 &sdhc1 {
  859         status = "okay";
  860 
  861         /*
  862          * This device is shipped with HS400 capabable eMMCs
  863          * However various brands have been used in various product batches,
  864          * including a Samsung eMMC (BGND3R) which features a quirk with HS400.
  865          * Set the speed to HS200 as a safety measure.
  866          */
  867         mmc-hs200-1_8v;
  868 };
  869 
  870 &sdhc2 {
  871         status = "okay";
  872 
  873         pinctrl-names = "default", "sleep";
  874         pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>;
  875         pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>;
  876 
  877         vmmc-supply = <&vreg_l21a_2p95>;
  878         vqmmc-supply = <&vreg_l13a_2p95>;
  879 
  880         cd-gpios = <&pm8994_gpios 8 GPIO_ACTIVE_LOW>;
  881 };
  882 
  883 &tlmm {
  884         grip_default: grip-default {
  885                 pins = "gpio39";
  886                 function = "gpio";
  887                 drive-strength = <6>;
  888                 bias-pull-down;
  889         };
  890 
  891         grip_sleep: grip-sleep {
  892                 pins = "gpio39";
  893                 function = "gpio";
  894                 drive-strength = <2>;
  895                 bias-pull-down;
  896         };
  897 
  898         hall_front_default: hall-front-default {
  899                 pins = "gpio42";
  900                 function = "gpio";
  901                 drive-strength = <2>;
  902                 bias-disable;
  903         };
  904 
  905         hall_back_default: hall-back-default {
  906                 pins = "gpio75";
  907                 function = "gpio";
  908                 drive-strength = <2>;
  909                 bias-disable;
  910         };
  911 };

Cache object: 6a22a3490ded8636052aad0cfdd2540c


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.