Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: BSD-3-Clause
0002 /*
0003  * Copyright (c) 2021, Luca Weiss <luca@z3ntu.xyz>
0004  */
0005 
0006 /dts-v1/;
0007 
0008 #include <dt-bindings/gpio/gpio.h>
0009 #include <dt-bindings/input/input.h>
0010 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
0011 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
0012 #include "sm7225.dtsi"
0013 #include "pm6150l.dtsi"
0014 #include "pm6350.dtsi"
0015 
0016 / {
0017         model = "Fairphone 4";
0018         compatible = "fairphone,fp4", "qcom,sm7225";
0019         chassis-type = "handset";
0020 
0021         /* required for bootloader to select correct board */
0022         qcom,msm-id = <434 0x10000>, <459 0x10000>;
0023         qcom,board-id = <8 32>;
0024 
0025         aliases {
0026                 serial0 = &uart9;
0027         };
0028 
0029         chosen {
0030                 #address-cells = <2>;
0031                 #size-cells = <2>;
0032                 ranges;
0033 
0034                 stdout-path = "serial0:115200n8";
0035 
0036                 framebuffer0: framebuffer@a000000 {
0037                         compatible = "simple-framebuffer";
0038                         reg = <0 0xa0000000 0 (2340 * 1080 * 4)>;
0039                         width = <1080>;
0040                         height = <2340>;
0041                         stride = <(1080 * 4)>;
0042                         format = "a8r8g8b8";
0043                 };
0044         };
0045 
0046         gpio-keys {
0047                 compatible = "gpio-keys";
0048                 pinctrl-names = "default";
0049                 pinctrl-0 = <&gpio_keys_pin>;
0050 
0051                 key-volume-up {
0052                         label = "volume_up";
0053                         linux,code = <KEY_VOLUMEUP>;
0054                         gpios = <&pm6350_gpios 2 GPIO_ACTIVE_LOW>;
0055                 };
0056         };
0057 
0058         reserved-memory {
0059                 /*
0060                  * The rmtfs memory region in downstream is 'dynamically allocated'
0061                  * but given the same address every time. Hard code it as this address is
0062                  * where the modem firmware expects it to be.
0063                  */
0064                 memory@efe01000 {
0065                         compatible = "qcom,rmtfs-mem";
0066                         reg = <0 0xefe01000 0 0x600000>;
0067                         no-map;
0068 
0069                         qcom,client-id = <1>;
0070                         qcom,vmid = <15>;
0071                 };
0072         };
0073 };
0074 
0075 &adsp {
0076         status = "okay";
0077         firmware-name = "qcom/sm7225/fairphone4/adsp.mdt";
0078 };
0079 
0080 &apps_rsc {
0081         pm6350-rpmh-regulators {
0082                 compatible = "qcom,pm6350-rpmh-regulators";
0083                 qcom,pmic-id = "a";
0084 
0085                 vreg_s1a: smps1 {
0086                         regulator-min-microvolt = <1000000>;
0087                         regulator-max-microvolt = <1200000>;
0088                 };
0089 
0090                 vreg_s2a: smps2 {
0091                         regulator-min-microvolt = <1503000>;
0092                         regulator-max-microvolt = <2048000>;
0093                 };
0094 
0095                 vreg_l2a: ldo2 {
0096                         regulator-min-microvolt = <1503000>;
0097                         regulator-max-microvolt = <1980000>;
0098                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0099                 };
0100 
0101                 vreg_l3a: ldo3 {
0102                         regulator-min-microvolt = <2700000>;
0103                         regulator-max-microvolt = <3300000>;
0104                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0105                 };
0106 
0107                 vreg_l4a: ldo4 {
0108                         regulator-min-microvolt = <352000>;
0109                         regulator-max-microvolt = <801000>;
0110                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0111                 };
0112 
0113                 vreg_l5a: ldo5 {
0114                         regulator-min-microvolt = <1503000>;
0115                         regulator-max-microvolt = <1980000>;
0116                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0117                 };
0118 
0119                 vreg_l6a: ldo6 {
0120                         regulator-min-microvolt = <1710000>;
0121                         regulator-max-microvolt = <3544000>;
0122                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0123                 };
0124 
0125                 vreg_l7a: ldo7 {
0126                         regulator-min-microvolt = <1620000>;
0127                         regulator-max-microvolt = <1980000>;
0128                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0129                 };
0130 
0131                 vreg_l8a: ldo8 {
0132                         regulator-min-microvolt = <2800000>;
0133                         regulator-max-microvolt = <2800000>;
0134                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0135                 };
0136 
0137                 vreg_l9a: ldo9 {
0138                         regulator-min-microvolt = <1650000>;
0139                         regulator-max-microvolt = <3401000>;
0140                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0141                 };
0142 
0143                 vreg_l11a: ldo11 {
0144                         regulator-min-microvolt = <1800000>;
0145                         regulator-max-microvolt = <2000000>;
0146                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0147                 };
0148 
0149                 vreg_l12a: ldo12 {
0150                         regulator-min-microvolt = <1620000>;
0151                         regulator-max-microvolt = <1980000>;
0152                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0153                 };
0154 
0155                 vreg_l13a: ldo13 {
0156                         regulator-min-microvolt = <570000>;
0157                         regulator-max-microvolt = <650000>;
0158                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0159                 };
0160 
0161                 vreg_l14a: ldo14 {
0162                         regulator-min-microvolt = <1700000>;
0163                         regulator-max-microvolt = <1900000>;
0164                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0165                 };
0166 
0167                 vreg_l15a: ldo15 {
0168                         regulator-min-microvolt = <1100000>;
0169                         regulator-max-microvolt = <1305000>;
0170                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0171                 };
0172 
0173                 vreg_l16a: ldo16 {
0174                         regulator-min-microvolt = <830000>;
0175                         regulator-max-microvolt = <921000>;
0176                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0177                 };
0178 
0179                 vreg_l18a: ldo18 {
0180                         regulator-min-microvolt = <788000>;
0181                         regulator-max-microvolt = <1049000>;
0182                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0183                 };
0184 
0185                 vreg_l19a: ldo19 {
0186                         regulator-min-microvolt = <1080000>;
0187                         regulator-max-microvolt = <1305000>;
0188                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0189                 };
0190 
0191                 vreg_l20a: ldo20 {
0192                         regulator-min-microvolt = <530000>;
0193                         regulator-max-microvolt = <801000>;
0194                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0195                 };
0196 
0197                 vreg_l21a: ldo21 {
0198                         regulator-min-microvolt = <751000>;
0199                         regulator-max-microvolt = <825000>;
0200                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0201                 };
0202 
0203                 vreg_l22a: ldo22 {
0204                         regulator-min-microvolt = <1080000>;
0205                         regulator-max-microvolt = <1305000>;
0206                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0207                 };
0208         };
0209 
0210         pm6150l-rpmh-regulators {
0211                 compatible = "qcom,pm6150l-rpmh-regulators";
0212                 qcom,pmic-id = "e";
0213 
0214                 vreg_s8e: smps8 {
0215                         regulator-min-microvolt = <313000>;
0216                         regulator-max-microvolt = <1395000>;
0217                 };
0218 
0219                 vreg_l1e: ldo1 {
0220                         regulator-min-microvolt = <1620000>;
0221                         regulator-max-microvolt = <1980000>;
0222                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0223                 };
0224 
0225                 vreg_l2e: ldo2 {
0226                         regulator-min-microvolt = <1170000>;
0227                         regulator-max-microvolt = <1305000>;
0228                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0229                 };
0230 
0231                 vreg_l3e: ldo3 {
0232                         regulator-min-microvolt = <1100000>;
0233                         regulator-max-microvolt = <1299000>;
0234                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0235                 };
0236 
0237                 vreg_l4e: ldo4 {
0238                         regulator-min-microvolt = <1620000>;
0239                         regulator-max-microvolt = <3300000>;
0240                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0241                 };
0242 
0243                 vreg_l5e: ldo5 {
0244                         regulator-min-microvolt = <1620000>;
0245                         regulator-max-microvolt = <3300000>;
0246                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0247                 };
0248 
0249                 vreg_l6e: ldo6 {
0250                         regulator-min-microvolt = <1700000>;
0251                         regulator-max-microvolt = <3544000>;
0252                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0253                 };
0254 
0255                 vreg_l7e: ldo7 {
0256                         regulator-min-microvolt = <2700000>;
0257                         regulator-max-microvolt = <3544000>;
0258                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0259                 };
0260 
0261                 vreg_l8e: ldo8 {
0262                         regulator-min-microvolt = <1620000>;
0263                         regulator-max-microvolt = <2000000>;
0264                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0265                 };
0266 
0267                 vreg_l9e: ldo9 {
0268                         regulator-min-microvolt = <2700000>;
0269                         regulator-max-microvolt = <3544000>;
0270                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0271                 };
0272 
0273                 vreg_l10e: ldo10 {
0274                         regulator-min-microvolt = <3000000>;
0275                         regulator-max-microvolt = <3401000>;
0276                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0277                 };
0278 
0279                 vreg_l11e: ldo11 {
0280                         regulator-min-microvolt = <3000000>;
0281                         regulator-max-microvolt = <3401000>;
0282                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0283                 };
0284 
0285                 vreg_bob: bob {
0286                         regulator-min-microvolt = <1620000>;
0287                         regulator-max-microvolt = <5492000>;
0288                         regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
0289                         regulator-allow-bypass;
0290                 };
0291         };
0292 };
0293 
0294 &cdsp {
0295         status = "okay";
0296         firmware-name = "qcom/sm7225/fairphone4/cdsp.mdt";
0297 };
0298 
0299 &i2c10 {
0300         status = "okay";
0301         clock-frequency = <400000>;
0302 
0303         haptics@5a {
0304                 compatible = "awinic,aw8695";
0305                 reg = <0x5a>;
0306                 interrupts-extended = <&tlmm 85 IRQ_TYPE_EDGE_FALLING>;
0307                 reset-gpios = <&tlmm 90 GPIO_ACTIVE_HIGH>;
0308 
0309                 awinic,f0-preset = <2350>;
0310                 awinic,f0-coefficient = <260>;
0311                 awinic,f0-calibration-percent = <7>;
0312                 awinic,drive-level = <125>;
0313 
0314                 awinic,f0-detection-play-time = <5>;
0315                 awinic,f0-detection-wait-time = <3>;
0316                 awinic,f0-detection-repeat = <2>;
0317                 awinic,f0-detection-trace = <15>;
0318 
0319                 awinic,boost-debug = /bits/ 8 <0x30 0xeb 0xd4>;
0320                 awinic,tset = /bits/ 8 <0x12>;
0321                 awinic,r-spare = /bits/ 8 <0x68>;
0322 
0323                 awinic,bemf-upper-threshold = <4104>;
0324                 awinic,bemf-lower-threshold = <1016>;
0325         };
0326 };
0327 
0328 &mpss {
0329         status = "okay";
0330         firmware-name = "qcom/sm7225/fairphone4/modem.mdt";
0331 };
0332 
0333 &pm6150l_wled {
0334         status = "okay";
0335 
0336         qcom,switching-freq = <800>;
0337         qcom,current-limit-microamp = <20000>;
0338         qcom,num-strings = <2>;
0339 };
0340 
0341 &pm6350_gpios {
0342         gpio_keys_pin: gpio-keys-state {
0343                 pins = "gpio2";
0344                 function = PMIC_GPIO_FUNC_NORMAL;
0345                 bias-pull-up;
0346                 input-enable;
0347                 power-source = <0>;
0348         };
0349 };
0350 
0351 &pm6350_resin {
0352         status = "okay";
0353         linux,code = <KEY_VOLUMEDOWN>;
0354 };
0355 
0356 &qupv3_id_1 {
0357         status = "okay";
0358 };
0359 
0360 &tlmm {
0361         gpio-reserved-ranges = <13 4>, <56 2>;
0362 };
0363 
0364 &uart9 {
0365         status = "okay";
0366 };
0367 
0368 &ufs_mem_hc {
0369         status = "okay";
0370 
0371         reset-gpios = <&tlmm 156 GPIO_ACTIVE_LOW>;
0372 
0373         vcc-supply = <&vreg_l7e>;
0374         vcc-max-microamp = <800000>;
0375         vccq2-supply = <&vreg_l12a>;
0376         vccq2-max-microamp = <800000>;
0377 };
0378 
0379 &ufs_mem_phy {
0380         status = "okay";
0381 
0382         vdda-phy-supply = <&vreg_l18a>;
0383         vdda-pll-supply = <&vreg_l22a>;
0384 };
0385 
0386 &usb_1 {
0387         status = "okay";
0388 };
0389 
0390 &usb_1_dwc3 {
0391         maximum-speed = "super-speed";
0392         dr_mode = "peripheral";
0393 };
0394 
0395 &usb_1_hsphy {
0396         status = "okay";
0397 
0398         vdd-supply = <&vreg_l18a>;
0399         vdda-pll-supply = <&vreg_l2a>;
0400         vdda-phy-dpdm-supply = <&vreg_l3a>;
0401 };
0402 
0403 &usb_1_qmpphy {
0404         status = "okay";
0405 
0406         vdda-phy-supply = <&vreg_l22a>;
0407         vdda-pll-supply = <&vreg_l16a>;
0408 };
0409 
0410 &wifi {
0411         status = "okay";
0412 
0413         vdd-0.8-cx-mx-supply = <&vreg_l4a>;
0414         vdd-1.8-xo-supply = <&vreg_l7a>;
0415         vdd-1.3-rfa-supply = <&vreg_l2e>;
0416         vdd-3.3-ch0-supply = <&vreg_l10e>;
0417         vdd-3.3-ch1-supply = <&vreg_l11e>;
0418 };