Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/arch/arm64/boot/dts/qcom/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 23 kB image not shown  

Quelle  sm7225-fairphone-fp4.dts   Sprache: unbekannt

 
// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2021, Luca Weiss <luca@z3ntu.xyz>
 */

/dts-v1/;

/* PM7250B is configured to use SID2/3 */
#define PM7250B_SID 2
#define PM7250B_SID1 3

/* PMK8350 (in reality a PMK8003) is configured to use SID6 instead of 0 */
#define PMK8350_SID 6

#include <dt-bindings/firmware/qcom,scm.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include <dt-bindings/usb/pd.h>
#include "sm7225.dtsi"
#include "pm6150l.dtsi"
#include "pm6350.dtsi"
#include "pm7250b.dtsi"
#include "pmk8350.dtsi"

/ {
 model = "Fairphone 4";
 compatible = "fairphone,fp4", "qcom,sm7225";
 chassis-type = "handset";

 /* required for bootloader to select correct board */
 qcom,msm-id = <459 0x10000>;
 qcom,board-id = <8 32>;

 aliases {
  serial0 = &uart9;
  serial1 = &uart1;
 };

 chosen {
  #address-cells = <2>;
  #size-cells = <2>;
  ranges;

  stdout-path = "serial0:115200n8";

  framebuffer0: framebuffer@a000000 {
   compatible = "simple-framebuffer";
   reg = <0 0xa0000000 0 (2340 * 1080 * 4)>;
   width = <1080>;
   height = <2340>;
   stride = <(1080 * 4)>;
   format = "a8r8g8b8";
  };
 };

 gpio-keys {
  compatible = "gpio-keys";
  pinctrl-names = "default";
  pinctrl-0 = <&gpio_keys_pin>;

  key-volume-up {
   label = "volume_up";
   linux,code = <KEY_VOLUMEUP>;
   gpios = <&pm6350_gpios 2 GPIO_ACTIVE_LOW>;
  };
 };

 /* Dummy regulator until PM6150L has LCDB VSP/VSN support */
 lcdb_dummy: regulator-lcdb-dummy {
  compatible = "regulator-fixed";
  regulator-name = "lcdb_dummy";
  regulator-min-microvolt = <5500000>;
  regulator-max-microvolt = <5500000>;
 };

 reserved-memory {
  /*
   * The rmtfs memory region in downstream is 'dynamically allocated'
   * but given the same address every time. Hard code it as this address is
   * where the modem firmware expects it to be.
   */
  memory@efe01000 {
   compatible = "qcom,rmtfs-mem";
   reg = <0 0xefe01000 0 0x600000>;
   no-map;

   qcom,client-id = <1>;
   qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
  };
 };

 msm_therm_sensor: thermal-sensor-msm {
  compatible = "generic-adc-thermal";
  #thermal-sensor-cells = <0>;
  io-channels = <&pm6150l_adc ADC5_AMUX_THM2_100K_PU>;
  io-channel-names = "sensor-channel";
 };

 rear_cam_sensor: thermal-sensor-rear-cam {
  compatible = "generic-adc-thermal";
  #thermal-sensor-cells = <0>;
  io-channels = <&pm6150l_adc ADC5_GPIO2_100K_PU>;
  io-channel-names = "sensor-channel";
 };

 thermal-zones {
  chg-skin-thermal {
   thermal-sensors = <&pm7250b_adc_tm 0>;

   trips {
    active-config0 {
     temperature = <125000>;
     hysteresis = <1000>;
     type = "passive";
    };
   };
  };

  conn-thermal {
   thermal-sensors = <&pm7250b_adc_tm 1>;

   trips {
    active-config0 {
     temperature = <125000>;
     hysteresis = <1000>;
     type = "passive";
    };
   };
  };

  pa0-thermal {
   thermal-sensors = <&pm6150l_adc_tm 1>;

   trips {
    active-config0 {
     temperature = <125000>;
     hysteresis = <1000>;
     type = "passive";
    };
   };
  };

  pa1-thermal {
   thermal-sensors = <&pm6150l_adc_tm 0>;

   trips {
    active-config0 {
     temperature = <125000>;
     hysteresis = <1000>;
     type = "passive";
    };
   };
  };

  pm8008-thermal {
   polling-delay-passive = <100>;
   thermal-sensors = <&pm8008>;

   trips {
    trip0 {
     temperature = <95000>;
     hysteresis = <0>;
     type = "passive";
    };

    trip1 {
     temperature = <115000>;
     hysteresis = <0>;
     type = "critical";
    };
   };
  };

  quiet-thermal {
   thermal-sensors = <&pm6150l_adc_tm 3>;

   trips {
    active-config0 {
     temperature = <125000>;
     hysteresis = <1000>;
     type = "passive";
    };
   };
  };

  rear-cam-thermal {
   polling-delay-passive = <1000>;
   polling-delay = <5000>;
   thermal-sensors = <&rear_cam_sensor>;

   trips {
    active-config0 {
     temperature = <125000>;
     hysteresis = <1000>;
     type = "passive";
    };
   };
  };

  rfc-flash-thermal {
   thermal-sensors = <&pm6150l_adc_tm 2>;

   trips {
    active-config0 {
     temperature = <125000>;
     hysteresis = <1000>;
     type = "passive";
    };
   };
  };

  sdm-skin-thermal {
   polling-delay-passive = <1000>;
   polling-delay = <5000>;
   thermal-sensors = <&msm_therm_sensor>;

   trips {
    trip0 {
     temperature = <45000>;
     hysteresis = <0>;
     type = "passive";
    };

    trip1 {
     temperature = <55000>;
     hysteresis = <0>;
     type = "critical";
    };
   };
  };

  xo-thermal {
   thermal-sensors = <&pmk8350_adc_tm 0>;

   trips {
    active-config0 {
     temperature = <125000>;
     hysteresis = <1000>;
     type = "passive";
    };
   };
  };
 };
};

&adsp {
 firmware-name = "qcom/sm7225/fairphone4/adsp.mbn";
 status = "okay";
};

&apps_rsc {
 regulators-0 {
  compatible = "qcom,pm6350-rpmh-regulators";
  qcom,pmic-id = "a";

  vreg_s1a: smps1 {
   regulator-name = "vreg_s1a";
   regulator-min-microvolt = <1000000>;
   regulator-max-microvolt = <1200000>;
  };

  vreg_s2a: smps2 {
   regulator-name = "vreg_s2a";
   regulator-min-microvolt = <1503000>;
   regulator-max-microvolt = <2048000>;
  };

  vreg_l2a: ldo2 {
   regulator-name = "vreg_l2a";
   regulator-min-microvolt = <1503000>;
   regulator-max-microvolt = <1980000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l3a: ldo3 {
   regulator-name = "vreg_l3a";
   regulator-min-microvolt = <2700000>;
   regulator-max-microvolt = <3300000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l4a: ldo4 {
   regulator-name = "vreg_l4a";
   regulator-min-microvolt = <352000>;
   regulator-max-microvolt = <801000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l5a: ldo5 {
   regulator-name = "vreg_l5a";
   regulator-min-microvolt = <1503000>;
   regulator-max-microvolt = <1980000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l6a: ldo6 {
   regulator-name = "vreg_l6a";
   regulator-min-microvolt = <1710000>;
   regulator-max-microvolt = <3544000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l7a: ldo7 {
   regulator-name = "vreg_l7a";
   regulator-min-microvolt = <1620000>;
   regulator-max-microvolt = <1980000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l8a: ldo8 {
   regulator-name = "vreg_l8a";
   regulator-min-microvolt = <2800000>;
   regulator-max-microvolt = <2800000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l9a: ldo9 {
   regulator-name = "vreg_l9a";
   regulator-min-microvolt = <1650000>;
   regulator-max-microvolt = <3401000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l11a: ldo11 {
   regulator-name = "vreg_l11a";
   regulator-min-microvolt = <1800000>;
   regulator-max-microvolt = <2000000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l12a: ldo12 {
   regulator-name = "vreg_l12a";
   regulator-min-microvolt = <1620000>;
   regulator-max-microvolt = <1980000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l13a: ldo13 {
   regulator-name = "vreg_l13a";
   regulator-min-microvolt = <570000>;
   regulator-max-microvolt = <650000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l14a: ldo14 {
   regulator-name = "vreg_l14a";
   regulator-min-microvolt = <1700000>;
   regulator-max-microvolt = <1900000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l15a: ldo15 {
   regulator-name = "vreg_l15a";
   regulator-min-microvolt = <1100000>;
   regulator-max-microvolt = <1305000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l16a: ldo16 {
   regulator-name = "vreg_l16a";
   regulator-min-microvolt = <830000>;
   regulator-max-microvolt = <921000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l18a: ldo18 {
   regulator-name = "vreg_l18a";
   regulator-min-microvolt = <788000>;
   regulator-max-microvolt = <1049000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l19a: ldo19 {
   regulator-name = "vreg_l19a";
   regulator-min-microvolt = <1080000>;
   regulator-max-microvolt = <1305000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l20a: ldo20 {
   regulator-name = "vreg_l20a";
   regulator-min-microvolt = <530000>;
   regulator-max-microvolt = <801000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l21a: ldo21 {
   regulator-name = "vreg_l21a";
   regulator-min-microvolt = <751000>;
   regulator-max-microvolt = <825000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l22a: ldo22 {
   regulator-name = "vreg_l22a";
   regulator-min-microvolt = <1080000>;
   regulator-max-microvolt = <1305000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };
 };

 regulators-1 {
  compatible = "qcom,pm6150l-rpmh-regulators";
  qcom,pmic-id = "e";

  vreg_s8e: smps8 {
   regulator-name = "vreg_s8e";
   regulator-min-microvolt = <313000>;
   regulator-max-microvolt = <1395000>;
  };

  vreg_l1e: ldo1 {
   regulator-name = "vreg_l1e";
   regulator-min-microvolt = <1620000>;
   regulator-max-microvolt = <1980000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l2e: ldo2 {
   regulator-name = "vreg_l2e";
   regulator-min-microvolt = <1170000>;
   regulator-max-microvolt = <1305000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l3e: ldo3 {
   regulator-name = "vreg_l3e";
   regulator-min-microvolt = <1100000>;
   regulator-max-microvolt = <1299000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l4e: ldo4 {
   regulator-name = "vreg_l4e";
   regulator-min-microvolt = <1620000>;
   regulator-max-microvolt = <3300000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l5e: ldo5 {
   regulator-name = "vreg_l5e";
   regulator-min-microvolt = <1620000>;
   regulator-max-microvolt = <3300000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l6e: ldo6 {
   regulator-name = "vreg_l6e";
   regulator-min-microvolt = <1700000>;
   regulator-max-microvolt = <2950000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
   regulator-allow-set-load;
   regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
         RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l7e: ldo7 {
   regulator-name = "vreg_l7e";
   regulator-min-microvolt = <2700000>;
   regulator-max-microvolt = <3544000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l8e: ldo8 {
   regulator-name = "vreg_l8e";
   regulator-min-microvolt = <1620000>;
   regulator-max-microvolt = <2000000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l9e: ldo9 {
   regulator-name = "vreg_l9e";
   regulator-min-microvolt = <2700000>;
   regulator-max-microvolt = <2960000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
   regulator-allow-set-load;
   regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
         RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l10e: ldo10 {
   regulator-name = "vreg_l10e";
   regulator-min-microvolt = <3000000>;
   regulator-max-microvolt = <3401000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_l11e: ldo11 {
   regulator-name = "vreg_l11e";
   regulator-min-microvolt = <3000000>;
   regulator-max-microvolt = <3401000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
  };

  vreg_bob: bob {
   regulator-name = "vreg_bob";
   regulator-min-microvolt = <1620000>;
   regulator-max-microvolt = <5492000>;
   regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
   regulator-allow-bypass;
  };
 };
};

&cci0 {
 status = "okay";
};

&cci0_i2c0 {
 /* IMX582 @ 0x1a */
};

&cci0_i2c1 {
 /* IMX582 @ 0x1a */
};

&cci1 {
 status = "okay";
};

&cci1_i2c0 {
 /* IMX576 @ 0x10 */
};

&cdsp {
 firmware-name = "qcom/sm7225/fairphone4/cdsp.mbn";
 status = "okay";
};

&gpi_dma0 {
 status = "okay";
};

&gpi_dma1 {
 status = "okay";
};

&gpu {
 status = "okay";
};

&gpu_zap_shader {
 firmware-name = "qcom/sm7225/fairphone4/a615_zap.mbn";
};

&i2c0 {
 clock-frequency = <400000>;
 status = "okay";

 /* ST21NFCD NFC @ 8 */
 /* VL53L3 ToF @ 29 */
 /* AW88264A amplifier @ 34 */
 /* AW88264A amplifier @ 35 */
};

&i2c8 {
 clock-frequency = <400000>;
 status = "okay";

 /* HX83112A touchscreen @ 48 */
};

&i2c10 {
 clock-frequency = <400000>;
 status = "okay";

 pm8008: pmic@8 {
  compatible = "qcom,pm8008";
  reg = <0x8>;

  interrupts-extended = <&tlmm 59 IRQ_TYPE_EDGE_RISING>;
  reset-gpios = <&tlmm 58 GPIO_ACTIVE_LOW>;

  vdd-l1-l2-supply = <&vreg_s8e>;
  vdd-l3-l4-supply = <&vreg_bob>;
  vdd-l5-supply = <&vreg_bob>;
  vdd-l6-supply = <&vreg_s2a>;
  vdd-l7-supply = <&vreg_bob>;

  pinctrl-names = "default";
  pinctrl-0 = <&pm8008_default>;

  gpio-controller;
  #gpio-cells = <2>;
  gpio-ranges = <&pm8008 0 0 2>;

  interrupt-controller;
  #interrupt-cells = <2>;

  #thermal-sensor-cells = <0>;

  regulators {
   vreg_l1p: ldo1 {
    regulator-name = "vreg_l1p";
    regulator-min-microvolt = <528000>;
    regulator-max-microvolt = <1200000>;
   };

   vreg_l2p: ldo2 {
    regulator-name = "vreg_l2p";
    regulator-min-microvolt = <528000>;
    regulator-max-microvolt = <1200000>;
   };

   vreg_l3p: ldo3 {
    regulator-name = "vreg_l3p";
    regulator-min-microvolt = <1500000>;
    regulator-max-microvolt = <2800000>;
   };

   vreg_l4p: ldo4 {
    regulator-name = "vreg_l4p";
    regulator-min-microvolt = <1500000>;
    regulator-max-microvolt = <2904000>;
   };

   vreg_l5p: ldo5 {
    regulator-name = "vreg_l5p";
    regulator-min-microvolt = <1500000>;
    regulator-max-microvolt = <2900000>;
   };

   vreg_l6p: ldo6 {
    regulator-name = "vreg_l6p";
    regulator-min-microvolt = <1500000>;
    regulator-max-microvolt = <1800000>;
   };

   vreg_l7p: ldo7 {
    regulator-name = "vreg_l7p";
    regulator-min-microvolt = <1500000>;
    regulator-max-microvolt = <3140000>;
   };
  };
 };

 /* PX8618 @ 26 */
 /* SMB1395 PMIC @ 34 */
 /* awinic,aw8695 @ 5a */
};

&ipa {
 qcom,gsi-loader = "self";
 memory-region = <&pil_ipa_fw_mem>;
 firmware-name = "qcom/sm7225/fairphone4/ipa_fws.mbn";
 status = "okay";
};

&mdss {
 status = "okay";
};

&mdss_dsi0 {
 vdda-supply = <&vreg_l22a>;
 status = "okay";

 panel@0 {
  compatible = "djn,9a-3r063-1102b";
  reg = <0>;

  backlight = <&pm6150l_wled>;
  reset-gpios = <&pm6150l_gpios 9 GPIO_ACTIVE_LOW>;

  vdd1-supply = <&vreg_l1e>;
  vsn-supply = <&lcdb_dummy>;
  vsp-supply = <&lcdb_dummy>;

  port {
   panel_in: endpoint {
    remote-endpoint = <&mdss_dsi0_out>;
   };
  };
 };
};

&mdss_dsi0_out {
 data-lanes = <0 1 2 3>;
 remote-endpoint = <&panel_in>;
};

&mdss_dsi0_phy {
 vdds-supply = <&vreg_l18a>;
 status = "okay";
};

&mpss {
 firmware-name = "qcom/sm7225/fairphone4/modem.mbn";
 status = "okay";
};

&pm6150l_adc {
 pinctrl-0 = <&pm6150l_adc_default>;
 pinctrl-names = "default";

 channel@4d {
  reg = <ADC5_AMUX_THM1_100K_PU>;
  label = "pa_therm1";
  qcom,hw-settle-time = <200>;
  qcom,pre-scaling = <1 1>;
  qcom,ratiometric;
 };

 channel@4e {
  reg = <ADC5_AMUX_THM2_100K_PU>;
  label = "msm_therm";
  qcom,hw-settle-time = <200>;
  qcom,pre-scaling = <1 1>;
  qcom,ratiometric;
 };

 channel@4f {
  reg = <ADC5_AMUX_THM3_100K_PU>;
  label = "pa_therm0";
  qcom,hw-settle-time = <200>;
  qcom,pre-scaling = <1 1>;
  qcom,ratiometric;
 };

 channel@53 {
  reg = <ADC5_GPIO2_100K_PU>;
  label = "rear_cam_therm";
  qcom,hw-settle-time = <200>;
  qcom,pre-scaling = <1 1>;
  qcom,ratiometric;
 };

 channel@54 {
  reg = <ADC5_GPIO3_100K_PU>;
  label = "rear_cam_flash_therm";
  qcom,hw-settle-time = <200>;
  qcom,pre-scaling = <1 1>;
  qcom,ratiometric;
 };

 channel@55 {
  reg = <ADC5_GPIO4_100K_PU>;
  label = "quiet_therm";
  qcom,hw-settle-time = <200>;
  qcom,pre-scaling = <1 1>;
  qcom,ratiometric;
 };
};

&pm6150l_adc_tm {
 status = "okay";

 pa-therm1@0 {
  reg = <0>;
  io-channels = <&pm6150l_adc ADC5_AMUX_THM1_100K_PU>;
  qcom,hw-settle-time-us = <200>;
  qcom,ratiometric;
 };

 pa-therm0@1 {
  reg = <1>;
  io-channels = <&pm6150l_adc ADC5_AMUX_THM3_100K_PU>;
  qcom,hw-settle-time-us = <200>;
  qcom,ratiometric;
 };

 rear-cam-flash-therm@2 {
  reg = <2>;
  io-channels = <&pm6150l_adc ADC5_GPIO3_100K_PU>;
  qcom,hw-settle-time-us = <200>;
  qcom,ratiometric;
 };

 quiet-therm@3 {
  reg = <3>;
  io-channels = <&pm6150l_adc ADC5_GPIO4_100K_PU>;
  qcom,hw-settle-time-us = <200>;
  qcom,ratiometric;
 };
};

&pm6150l_flash {
 status = "okay";

 led-0 {
  function = LED_FUNCTION_FLASH;
  color = <LED_COLOR_ID_YELLOW>;
  led-sources = <1>;
  led-max-microamp = <180000>;
  flash-max-microamp = <1000000>;
  flash-max-timeout-us = <1280000>;
 };

 led-1 {
  function = LED_FUNCTION_FLASH;
  color = <LED_COLOR_ID_WHITE>;
  led-sources = <2>;
  led-max-microamp = <180000>;
  flash-max-microamp = <1000000>;
  flash-max-timeout-us = <1280000>;
 };
};

&pm6150l_gpios {
 pm6150l_adc_default: adc-default-state {
  pins = "gpio6", "gpio7", "gpio10";
  function = PMIC_GPIO_FUNC_NORMAL;
  bias-high-impedance;
 };
};

&pm6150l_wled {
 qcom,switching-freq = <800>;
 qcom,current-limit-microamp = <20000>;
 qcom,num-strings = <2>;

 status = "okay";
};

&pm6350_gpios {
 gpio_keys_pin: gpio-keys-state {
  pins = "gpio2";
  function = PMIC_GPIO_FUNC_NORMAL;
  bias-pull-up;
  input-enable;
  power-source = <0>;
 };
};

&pm6350_resin {
 linux,code = <KEY_VOLUMEDOWN>;
 status = "okay";
};

&pm7250b_adc {
 channel@4d {
  reg = <ADC5_AMUX_THM1_100K_PU>;
  qcom,ratiometric;
  qcom,hw-settle-time = <200>;
  qcom,pre-scaling = <1 1>;
  label = "charger_skin_therm";
 };

 channel@4f {
  reg = <ADC5_AMUX_THM3_100K_PU>;
  qcom,ratiometric;
  qcom,hw-settle-time = <200>;
  qcom,pre-scaling = <1 1>;
  label = "conn_therm";
 };
};

&pm7250b_adc_tm {
 status = "okay";

 charger-skin-therm@0 {
  reg = <0>;
  io-channels = <&pm7250b_adc ADC5_AMUX_THM1_100K_PU>;
  qcom,ratiometric;
  qcom,hw-settle-time-us = <200>;
 };

 conn-therm@1 {
  reg = <1>;
  io-channels = <&pm7250b_adc ADC5_AMUX_THM3_100K_PU>;
  qcom,ratiometric;
  qcom,hw-settle-time-us = <200>;
 };
};

&pm7250b_typec {
 vdd-pdphy-supply = <&vreg_l3a>;

 status = "okay";

 connector {
  compatible = "usb-c-connector";

  power-role = "dual";
  data-role = "dual";
  self-powered;

  /*
   * Disable USB Power Delivery for now, seems to need extra work
   * to support role switching while also letting the battery
   * charge still - without charger driver
   */
  typec-power-opmode = "default";
  pd-disable;

  ports {
   #address-cells = <1>;
   #size-cells = <0>;

   port@0 {
    reg = <0>;
    pm7250b_hs_in: endpoint {
     remote-endpoint = <&usb_1_dwc3_hs_out>;
    };
   };

   port@1 {
    reg = <1>;
    pm7250b_ss_in: endpoint {
     remote-endpoint = <&usb_1_qmpphy_out>;
    };
   };
  };
 };
};

&pm7250b_vbus {
 regulator-min-microamp = <500000>;
 regulator-max-microamp = <1500000>;
 status = "okay";
};

&pmk8350_adc_tm {
 status = "okay";

 xo-therm@0 {
  reg = <0>;
  io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
  qcom,hw-settle-time-us = <200>;
  qcom,ratiometric;
 };
};

&pmk8350_rtc {
 status = "okay";
};

&pmk8350_vadc {
 channel@644 {
  reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
  qcom,ratiometric;
  qcom,hw-settle-time = <200>;
  qcom,pre-scaling = <1 1>;
  label = "xo_therm";
 };
};

&qup_uart1_cts {
 /*
  * Configure a bias-bus-hold on CTS to lower power
  * usage when Bluetooth is turned off. Bus hold will
  * maintain a low power state regardless of whether
  * the Bluetooth module drives the pin in either
  * direction or leaves the pin fully unpowered.
  */
 bias-bus-hold;
};

&qup_uart1_rts {
 /* We'll drive RTS, so no pull */
 drive-strength = <2>;
 bias-disable;
};

&qup_uart1_rx {
 /*
  * Configure a pull-up on RX. This is needed to avoid
  * garbage data when the TX pin of the Bluetooth module is
  * in tri-state (module powered off or not driving the
  * signal yet).
  */
 bias-pull-up;
};

&qup_uart1_tx {
 /* We'll drive TX, so no pull */
 drive-strength = <2>;
 bias-disable;
};

&qupv3_id_0 {
 status = "okay";
};

&qupv3_id_1 {
 status = "okay";
};

&sdc2_off_state {
 sd-cd-pins {
  pins = "gpio94";
  function = "gpio";
  drive-strength = <2>;
  bias-disable;
 };
};

&sdc2_on_state {
 sd-cd-pins {
  pins = "gpio94";
  function = "gpio";
  drive-strength = <2>;
  bias-pull-up;
 };
};

&sdhc_2 {
 vmmc-supply = <&vreg_l9e>;
 vqmmc-supply = <&vreg_l6e>;

 cd-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>;

 status = "okay";
};

&tlmm {
 gpio-reserved-ranges = <13 4>, <56 2>;

 qup_uart1_sleep_cts: qup-uart1-sleep-cts-state {
  pins = "gpio61";
  function = "gpio";
  /*
   * Configure a bias-bus-hold on CTS to lower power
   * usage when Bluetooth is turned off. Bus hold will
   * maintain a low power state regardless of whether
   * the Bluetooth module drives the pin in either
   * direction or leaves the pin fully unpowered.
   */
  bias-bus-hold;
 };

 qup_uart1_sleep_rts: qup-uart1-sleep-rts-state {
  pins = "gpio62";
  function = "gpio";
  /*
   * Configure pull-down on RTS. As RTS is active low
   * signal, pull it low to indicate the BT SoC that it
   * can wakeup the system anytime from suspend state by
   * pulling RX low (by sending wakeup bytes).
   */
  bias-pull-down;
 };

 qup_uart1_sleep_rx: qup-uart1-sleep-rx-state {
  pins = "gpio64";
  function = "gpio";
  /*
   * Configure a pull-up on RX. This is needed to avoid
   * garbage data when the TX pin of the Bluetooth module
   * is floating which may cause spurious wakeups.
   */
  bias-pull-up;
 };

 qup_uart1_sleep_tx: qup-uart1-sleep-tx-state {
  pins = "gpio63";
  function = "gpio";
  /*
   * Configure pull-up on TX when it isn't actively driven
   * to prevent BT SoC from receiving garbage during sleep.
   */
  bias-pull-up;
 };

 pm8008_default: pm8008-default-state {
  int-pins {
   pins = "gpio59";
   function = "gpio";
   drive-strength = <2>;
   bias-pull-down;
  };

  reset-n-pins {
   pins = "gpio58";
   function = "gpio";
   drive-strength = <2>;
   bias-disable;
  };
 };
};

&uart1 {
 /delete-property/ interrupts;
 interrupts-extended = <&intc GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>,
         <&tlmm 64 IRQ_TYPE_EDGE_FALLING>;

 pinctrl-names = "default", "sleep";
 pinctrl-1 = <&qup_uart1_sleep_cts>, <&qup_uart1_sleep_rts>, <&qup_uart1_sleep_tx>, <&qup_uart1_sleep_rx>;

 status = "okay";

 bluetooth {
  compatible = "qcom,wcn3988-bt";

  vddio-supply = <&vreg_l11a>;
  vddxo-supply = <&vreg_l7a>;
  vddrf-supply = <&vreg_l2e>;
  vddch0-supply = <&vreg_l10e>;
  swctrl-gpios = <&tlmm 69 GPIO_ACTIVE_HIGH>;

  max-speed = <3200000>;
 };
};

&uart9 {
 status = "okay";
};

&ufs_mem_hc {
 reset-gpios = <&tlmm 156 GPIO_ACTIVE_LOW>;

 vcc-supply = <&vreg_l7e>;
 vcc-max-microamp = <800000>;
 vccq2-supply = <&vreg_l12a>;
 vccq2-max-microamp = <800000>;

 status = "okay";
};

&ufs_mem_phy {
 vdda-phy-supply = <&vreg_l18a>;
 vdda-pll-supply = <&vreg_l22a>;

 status = "okay";
};

&usb_1 {
 status = "okay";
};

&usb_1_dwc3 {
 maximum-speed = "super-speed";
 dr_mode = "otg";
};

&usb_1_dwc3_hs_out {
 remote-endpoint = <&pm7250b_hs_in>;
};

&usb_1_hsphy {
 vdd-supply = <&vreg_l18a>;
 vdda-pll-supply = <&vreg_l2a>;
 vdda-phy-dpdm-supply = <&vreg_l3a>;

 status = "okay";
};

&usb_1_qmpphy {
 vdda-phy-supply = <&vreg_l22a>;
 vdda-pll-supply = <&vreg_l16a>;

 status = "okay";
};

&usb_1_qmpphy_out {
 remote-endpoint = <&pm7250b_ss_in>;
};

&wifi {
 vdd-0.8-cx-mx-supply = <&vreg_l4a>;
 vdd-1.8-xo-supply = <&vreg_l7a>;
 vdd-1.3-rfa-supply = <&vreg_l2e>;
 vdd-3.3-ch0-supply = <&vreg_l10e>;
 vdd-3.3-ch1-supply = <&vreg_l11e>;

 status = "okay";
};

[ Dauer der Verarbeitung: 0.3 Sekunden  (vorverarbeitet)  ]