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/sm7225-fairphone-fp4.dts

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  * Copyright (c) 2021, Luca Weiss <luca@z3ntu.xyz>
    4  */
    5 
    6 /dts-v1/;
    7 
    8 #include <dt-bindings/gpio/gpio.h>
    9 #include <dt-bindings/input/input.h>
   10 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
   11 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
   12 #include "sm7225.dtsi"
   13 #include "pm6150l.dtsi"
   14 #include "pm6350.dtsi"
   15 
   16 / {
   17         model = "Fairphone 4";
   18         compatible = "fairphone,fp4", "qcom,sm7225";
   19         chassis-type = "handset";
   20 
   21         /* required for bootloader to select correct board */
   22         qcom,msm-id = <434 0x10000>, <459 0x10000>;
   23         qcom,board-id = <8 32>;
   24 
   25         aliases {
   26                 serial0 = &uart9;
   27         };
   28 
   29         chosen {
   30                 #address-cells = <2>;
   31                 #size-cells = <2>;
   32                 ranges;
   33 
   34                 stdout-path = "serial0:115200n8";
   35 
   36                 framebuffer0: framebuffer@a000000 {
   37                         compatible = "simple-framebuffer";
   38                         reg = <0 0xa0000000 0 (2340 * 1080 * 4)>;
   39                         width = <1080>;
   40                         height = <2340>;
   41                         stride = <(1080 * 4)>;
   42                         format = "a8r8g8b8";
   43                 };
   44         };
   45 
   46         gpio-keys {
   47                 compatible = "gpio-keys";
   48                 pinctrl-names = "default";
   49                 pinctrl-0 = <&gpio_keys_pin>;
   50 
   51                 key-volume-up {
   52                         label = "volume_up";
   53                         linux,code = <KEY_VOLUMEUP>;
   54                         gpios = <&pm6350_gpios 2 GPIO_ACTIVE_LOW>;
   55                 };
   56         };
   57 
   58         reserved-memory {
   59                 /*
   60                  * The rmtfs memory region in downstream is 'dynamically allocated'
   61                  * but given the same address every time. Hard code it as this address is
   62                  * where the modem firmware expects it to be.
   63                  */
   64                 memory@efe01000 {
   65                         compatible = "qcom,rmtfs-mem";
   66                         reg = <0 0xefe01000 0 0x600000>;
   67                         no-map;
   68 
   69                         qcom,client-id = <1>;
   70                         qcom,vmid = <15>;
   71                 };
   72         };
   73 };
   74 
   75 &adsp {
   76         status = "okay";
   77         firmware-name = "qcom/sm7225/fairphone4/adsp.mdt";
   78 };
   79 
   80 &apps_rsc {
   81         pm6350-rpmh-regulators {
   82                 compatible = "qcom,pm6350-rpmh-regulators";
   83                 qcom,pmic-id = "a";
   84 
   85                 vreg_s1a: smps1 {
   86                         regulator-min-microvolt = <1000000>;
   87                         regulator-max-microvolt = <1200000>;
   88                 };
   89 
   90                 vreg_s2a: smps2 {
   91                         regulator-min-microvolt = <1503000>;
   92                         regulator-max-microvolt = <2048000>;
   93                 };
   94 
   95                 vreg_l2a: ldo2 {
   96                         regulator-min-microvolt = <1503000>;
   97                         regulator-max-microvolt = <1980000>;
   98                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
   99                 };
  100 
  101                 vreg_l3a: ldo3 {
  102                         regulator-min-microvolt = <2700000>;
  103                         regulator-max-microvolt = <3300000>;
  104                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  105                 };
  106 
  107                 vreg_l4a: ldo4 {
  108                         regulator-min-microvolt = <352000>;
  109                         regulator-max-microvolt = <801000>;
  110                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  111                 };
  112 
  113                 vreg_l5a: ldo5 {
  114                         regulator-min-microvolt = <1503000>;
  115                         regulator-max-microvolt = <1980000>;
  116                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  117                 };
  118 
  119                 vreg_l6a: ldo6 {
  120                         regulator-min-microvolt = <1710000>;
  121                         regulator-max-microvolt = <3544000>;
  122                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  123                 };
  124 
  125                 vreg_l7a: ldo7 {
  126                         regulator-min-microvolt = <1620000>;
  127                         regulator-max-microvolt = <1980000>;
  128                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  129                 };
  130 
  131                 vreg_l8a: ldo8 {
  132                         regulator-min-microvolt = <2800000>;
  133                         regulator-max-microvolt = <2800000>;
  134                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  135                 };
  136 
  137                 vreg_l9a: ldo9 {
  138                         regulator-min-microvolt = <1650000>;
  139                         regulator-max-microvolt = <3401000>;
  140                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  141                 };
  142 
  143                 vreg_l11a: ldo11 {
  144                         regulator-min-microvolt = <1800000>;
  145                         regulator-max-microvolt = <2000000>;
  146                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  147                 };
  148 
  149                 vreg_l12a: ldo12 {
  150                         regulator-min-microvolt = <1620000>;
  151                         regulator-max-microvolt = <1980000>;
  152                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  153                 };
  154 
  155                 vreg_l13a: ldo13 {
  156                         regulator-min-microvolt = <570000>;
  157                         regulator-max-microvolt = <650000>;
  158                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  159                 };
  160 
  161                 vreg_l14a: ldo14 {
  162                         regulator-min-microvolt = <1700000>;
  163                         regulator-max-microvolt = <1900000>;
  164                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  165                 };
  166 
  167                 vreg_l15a: ldo15 {
  168                         regulator-min-microvolt = <1100000>;
  169                         regulator-max-microvolt = <1305000>;
  170                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  171                 };
  172 
  173                 vreg_l16a: ldo16 {
  174                         regulator-min-microvolt = <830000>;
  175                         regulator-max-microvolt = <921000>;
  176                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  177                 };
  178 
  179                 vreg_l18a: ldo18 {
  180                         regulator-min-microvolt = <788000>;
  181                         regulator-max-microvolt = <1049000>;
  182                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  183                 };
  184 
  185                 vreg_l19a: ldo19 {
  186                         regulator-min-microvolt = <1080000>;
  187                         regulator-max-microvolt = <1305000>;
  188                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  189                 };
  190 
  191                 vreg_l20a: ldo20 {
  192                         regulator-min-microvolt = <530000>;
  193                         regulator-max-microvolt = <801000>;
  194                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  195                 };
  196 
  197                 vreg_l21a: ldo21 {
  198                         regulator-min-microvolt = <751000>;
  199                         regulator-max-microvolt = <825000>;
  200                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  201                 };
  202 
  203                 vreg_l22a: ldo22 {
  204                         regulator-min-microvolt = <1080000>;
  205                         regulator-max-microvolt = <1305000>;
  206                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  207                 };
  208         };
  209 
  210         pm6150l-rpmh-regulators {
  211                 compatible = "qcom,pm6150l-rpmh-regulators";
  212                 qcom,pmic-id = "e";
  213 
  214                 vreg_s8e: smps8 {
  215                         regulator-min-microvolt = <313000>;
  216                         regulator-max-microvolt = <1395000>;
  217                 };
  218 
  219                 vreg_l1e: ldo1 {
  220                         regulator-min-microvolt = <1620000>;
  221                         regulator-max-microvolt = <1980000>;
  222                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  223                 };
  224 
  225                 vreg_l2e: ldo2 {
  226                         regulator-min-microvolt = <1170000>;
  227                         regulator-max-microvolt = <1305000>;
  228                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  229                 };
  230 
  231                 vreg_l3e: ldo3 {
  232                         regulator-min-microvolt = <1100000>;
  233                         regulator-max-microvolt = <1299000>;
  234                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  235                 };
  236 
  237                 vreg_l4e: ldo4 {
  238                         regulator-min-microvolt = <1620000>;
  239                         regulator-max-microvolt = <3300000>;
  240                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  241                 };
  242 
  243                 vreg_l5e: ldo5 {
  244                         regulator-min-microvolt = <1620000>;
  245                         regulator-max-microvolt = <3300000>;
  246                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  247                 };
  248 
  249                 vreg_l6e: ldo6 {
  250                         regulator-min-microvolt = <1700000>;
  251                         regulator-max-microvolt = <3544000>;
  252                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  253                 };
  254 
  255                 vreg_l7e: ldo7 {
  256                         regulator-min-microvolt = <2700000>;
  257                         regulator-max-microvolt = <3544000>;
  258                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  259                 };
  260 
  261                 vreg_l8e: ldo8 {
  262                         regulator-min-microvolt = <1620000>;
  263                         regulator-max-microvolt = <2000000>;
  264                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  265                 };
  266 
  267                 vreg_l9e: ldo9 {
  268                         regulator-min-microvolt = <2700000>;
  269                         regulator-max-microvolt = <3544000>;
  270                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  271                 };
  272 
  273                 vreg_l10e: ldo10 {
  274                         regulator-min-microvolt = <3000000>;
  275                         regulator-max-microvolt = <3401000>;
  276                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  277                 };
  278 
  279                 vreg_l11e: ldo11 {
  280                         regulator-min-microvolt = <3000000>;
  281                         regulator-max-microvolt = <3401000>;
  282                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  283                 };
  284 
  285                 vreg_bob: bob {
  286                         regulator-min-microvolt = <1620000>;
  287                         regulator-max-microvolt = <5492000>;
  288                         regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
  289                         regulator-allow-bypass;
  290                 };
  291         };
  292 };
  293 
  294 &cdsp {
  295         status = "okay";
  296         firmware-name = "qcom/sm7225/fairphone4/cdsp.mdt";
  297 };
  298 
  299 &i2c10 {
  300         status = "okay";
  301         clock-frequency = <400000>;
  302 
  303         haptics@5a {
  304                 compatible = "awinic,aw8695";
  305                 reg = <0x5a>;
  306                 interrupts-extended = <&tlmm 85 IRQ_TYPE_EDGE_FALLING>;
  307                 reset-gpios = <&tlmm 90 GPIO_ACTIVE_HIGH>;
  308 
  309                 awinic,f0-preset = <2350>;
  310                 awinic,f0-coefficient = <260>;
  311                 awinic,f0-calibration-percent = <7>;
  312                 awinic,drive-level = <125>;
  313 
  314                 awinic,f0-detection-play-time = <5>;
  315                 awinic,f0-detection-wait-time = <3>;
  316                 awinic,f0-detection-repeat = <2>;
  317                 awinic,f0-detection-trace = <15>;
  318 
  319                 awinic,boost-debug = /bits/ 8 <0x30 0xeb 0xd4>;
  320                 awinic,tset = /bits/ 8 <0x12>;
  321                 awinic,r-spare = /bits/ 8 <0x68>;
  322 
  323                 awinic,bemf-upper-threshold = <4104>;
  324                 awinic,bemf-lower-threshold = <1016>;
  325         };
  326 };
  327 
  328 &mpss {
  329         status = "okay";
  330         firmware-name = "qcom/sm7225/fairphone4/modem.mdt";
  331 };
  332 
  333 &pm6150l_wled {
  334         status = "okay";
  335 
  336         qcom,switching-freq = <800>;
  337         qcom,current-limit-microamp = <20000>;
  338         qcom,num-strings = <2>;
  339 };
  340 
  341 &pm6350_gpios {
  342         gpio_keys_pin: gpio-keys-state {
  343                 pins = "gpio2";
  344                 function = PMIC_GPIO_FUNC_NORMAL;
  345                 bias-pull-up;
  346                 input-enable;
  347                 power-source = <0>;
  348         };
  349 };
  350 
  351 &pm6350_resin {
  352         status = "okay";
  353         linux,code = <KEY_VOLUMEDOWN>;
  354 };
  355 
  356 &qupv3_id_1 {
  357         status = "okay";
  358 };
  359 
  360 &tlmm {
  361         gpio-reserved-ranges = <13 4>, <56 2>;
  362 };
  363 
  364 &uart9 {
  365         status = "okay";
  366 };
  367 
  368 &ufs_mem_hc {
  369         status = "okay";
  370 
  371         reset-gpios = <&tlmm 156 GPIO_ACTIVE_LOW>;
  372 
  373         vcc-supply = <&vreg_l7e>;
  374         vcc-max-microamp = <800000>;
  375         vccq2-supply = <&vreg_l12a>;
  376         vccq2-max-microamp = <800000>;
  377 };
  378 
  379 &ufs_mem_phy {
  380         status = "okay";
  381 
  382         vdda-phy-supply = <&vreg_l18a>;
  383         vdda-pll-supply = <&vreg_l22a>;
  384 };
  385 
  386 &usb_1 {
  387         status = "okay";
  388 };
  389 
  390 &usb_1_dwc3 {
  391         maximum-speed = "super-speed";
  392         dr_mode = "peripheral";
  393 };
  394 
  395 &usb_1_hsphy {
  396         status = "okay";
  397 
  398         vdd-supply = <&vreg_l18a>;
  399         vdda-pll-supply = <&vreg_l2a>;
  400         vdda-phy-dpdm-supply = <&vreg_l3a>;
  401 };
  402 
  403 &usb_1_qmpphy {
  404         status = "okay";
  405 
  406         vdda-phy-supply = <&vreg_l22a>;
  407         vdda-pll-supply = <&vreg_l16a>;
  408 };
  409 
  410 &wifi {
  411         status = "okay";
  412 
  413         vdd-0.8-cx-mx-supply = <&vreg_l4a>;
  414         vdd-1.8-xo-supply = <&vreg_l7a>;
  415         vdd-1.3-rfa-supply = <&vreg_l2e>;
  416         vdd-3.3-ch0-supply = <&vreg_l10e>;
  417         vdd-3.3-ch1-supply = <&vreg_l11e>;
  418 };

Cache object: dbc0b627abee1b57094a58f23ba44b18


[ 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.