Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  sdm670-google-sargo.dts   Sprache: unbekannt

 
Spracherkennung für: .dts vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

// SPDX-License-Identifier: GPL-2.0
/*
 * Device tree for Google Pixel 3a, adapted from google-blueline device tree,
 * xiaomi-lavender device tree, and oneplus-common device tree.
 *
 * Copyright (c) 2022, Richard Acayan. All rights reserved.
 */

/dts-v1/;

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include <dt-bindings/power/qcom-rpmpd.h>
#include "sdm670.dtsi"
#include "pm660.dtsi"
#include "pm660l.dtsi"

/delete-node/ &mpss_region;
/delete-node/ &venus_mem;
/delete-node/ &wlan_msa_mem;
/delete-node/ &cdsp_mem;
/delete-node/ &mba_region;
/delete-node/ &adsp_mem;
/delete-node/ &ipa_fw_mem;
/delete-node/ &ipa_gsi_mem;
/delete-node/ &gpu_mem;

/ {
 model = "Google Pixel 3a";
 compatible = "google,sargo", "qcom,sdm670";

 aliases { };

 chosen {
  stdout-path = "serial0:115200n8";

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

  framebuffer@9c000000 {
   compatible = "simple-framebuffer";
   reg = <0 0x9c000000 0 (1080 * 2220 * 4)>;
   width = <1080>;
   height = <2220>;
   stride = <(1080 * 4)>;
   format = "a8r8g8b8";
  };
 };

 gpio-keys {
  compatible = "gpio-keys";
  autorepeat;

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

  key-vol-up {
   label = "Volume Up";
   linux,code = <KEY_VOLUMEUP>;
   gpios = <&pm660l_gpios 7 GPIO_ACTIVE_LOW>;
  };
 };

 reserved-memory {
  #address-cells = <2>;
  #size-cells = <2>;

  mpss_region: mpss@8b000000 {
   reg = <0 0x8b000000 0 0x9800000>;
   no-map;
  };

  venus_mem: venus@94800000 {
   reg = <0 0x94800000 0 0x500000>;
   no-map;
  };

  wlan_msa_mem: wlan-msa@94d00000 {
   reg = <0 0x94d00000 0 0x100000>;
   no-map;
  };

  cdsp_mem: cdsp@94e00000 {
   reg = <0 0x94e00000 0 0x800000>;
   no-map;
  };

  mba_region: mba@95600000 {
   reg = <0 0x95600000 0 0x200000>;
   no-map;
  };

  adsp_mem: adsp@95800000 {
   reg = <0 0x95800000 0 0x2200000>;
   no-map;
  };

  ipa_fw_mem: ipa-fw@97a00000 {
   reg = <0 0x97a00000 0 0x10000>;
   no-map;
  };

  ipa_gsi_mem: ipa-gsi@97a10000 {
   reg = <0 0x97a10000 0 0x5000>;
   no-map;
  };

  gpu_mem: gpu@97a15000 {
   reg = <0 0x97a15000 0 0x2000>;
   no-map;
  };

  framebuffer-region@9c000000 {
   reg = <0 0x9c000000 0 0x2400000>;
   no-map;
  };

  /* Also includes ramoops regions */
  debug_info_mem: debug-info@a1800000 {
   reg = <0 0xa1800000 0 0x411000>;
   no-map;
  };
 };

 /*
  * The touchscreen regulator seems to be controlled somehow by a gpio.
  * Model it as a fixed regulator and keep it on. Without schematics we
  * don't know how this is actually wired up...
  */
 ts_1p8_supply: ts-1p8-regulator {
  compatible = "regulator-fixed";
  regulator-name = "ts_1p8_supply";

  regulator-min-microvolt = <1800000>;
  regulator-max-microvolt = <1800000>;

  gpio = <&pm660_gpios 12 GPIO_ACTIVE_HIGH>;
  enable-active-high;
 };

 vph_pwr: vph-pwr-regulator {
  compatible = "regulator-fixed";
  regulator-name = "vph_pwr";
  regulator-min-microvolt = <3312000>;
  regulator-max-microvolt = <3312000>;

  regulator-always-on;
  regulator-boot-on;
 };

 /*
  * Supply map from xiaomi-lavender specifies this as the supply for
  * ldob1, ldob9, ldob10, ldoa2, and ldoa3, while downstream specifies
  * this as a power domain. Set this as a fixed regulator with the same
  * voltage as lavender until display is needed to avoid unneccessarily
  * using a deprecated binding (regulator-fixed-domain).
  */
 vreg_s2b_1p05: vreg-s2b-regulator {
  compatible = "regulator-fixed";
  regulator-name = "vreg_s2b";
  regulator-min-microvolt = <1050000>;
  regulator-max-microvolt = <1050000>;
 };
};

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

  vdd-s1-supply = <&vph_pwr>;
  vdd-s2-supply = <&vph_pwr>;
  vdd-s3-supply = <&vph_pwr>;
  vdd-s4-supply = <&vph_pwr>;
  vdd-s5-supply = <&vph_pwr>;
  vdd-s6-supply = <&vph_pwr>;

  vdd-l1-l6-l7-supply = <&vreg_s6a_0p87>;
  vdd-l2-l3-supply = <&vreg_s2b_1p05>;
  vdd-l5-supply = <&vreg_s2b_1p05>;
  vdd-l8-l9-l10-l11-l12-l13-l14-supply = <&vreg_s4a_2p04>;
  vdd-l15-l16-l17-l18-l19-supply = <&vreg_bob>;

  /*
   * S1A (FTAPC0), S2A (FTAPC1), S3A (HFAPC1) are managed
   * by the Core Power Reduction hardened (CPRh) and the
   * Operating State Manager (OSM) HW automatically.
   */

  vreg_s4a_2p04: smps4 {
   regulator-min-microvolt = <1808000>;
   regulator-max-microvolt = <2040000>;
   regulator-enable-ramp-delay = <200>;
  };

  vreg_s6a_0p87: smps6 {
   regulator-min-microvolt = <1224000>;
   regulator-max-microvolt = <1352000>;
   regulator-enable-ramp-delay = <150>;
  };

  /* LDOs */
  vreg_l1a_1p225: ldo1 {
   regulator-min-microvolt = <1200000>;
   regulator-max-microvolt = <1250000>;
   regulator-enable-ramp-delay = <250>;
  };

  vreg_l2a_1p0: ldo2 {
   regulator-min-microvolt = <1000000>;
   regulator-max-microvolt = <1000000>;
   regulator-enable-ramp-delay = <250>;
  };

  vreg_l3a_1p0: ldo3 {
   regulator-min-microvolt = <1000000>;
   regulator-max-microvolt = <1000000>;
   regulator-enable-ramp-delay = <250>;
  };

  vreg_l5a_0p848: ldo5 {
   regulator-min-microvolt = <800000>;
   regulator-max-microvolt = <800000>;
   regulator-enable-ramp-delay = <250>;
  };

  vreg_l6a_1p3: ldo6 {
   regulator-min-microvolt = <1248000>;
   regulator-max-microvolt = <1304000>;
   regulator-enable-ramp-delay = <250>;
  };

  vreg_l7a_1p2: ldo7 {
   regulator-min-microvolt = <1200000>;
   regulator-max-microvolt = <1200000>;
   regulator-enable-ramp-delay = <250>;
  };

  vreg_l8a_1p8: ldo8 {
   regulator-min-microvolt = <1800000>;
   regulator-max-microvolt = <1800000>;
   regulator-enable-ramp-delay = <250>;
   regulator-always-on;
  };

  vreg_l9a_1p8: ldo9 {
   regulator-min-microvolt = <1800000>;
   regulator-max-microvolt = <1800000>;
   regulator-enable-ramp-delay = <250>;
  };

  vreg_l10a_1p8: ldo10 {
   regulator-min-microvolt = <1800000>;
   regulator-max-microvolt = <1800000>;
   regulator-enable-ramp-delay = <250>;
  };

  vreg_l11a_1p8: ldo11 {
   regulator-min-microvolt = <1800000>;
   regulator-max-microvolt = <1800000>;
   regulator-enable-ramp-delay = <250>;
  };

  vreg_l12a_1p8: ldo12 {
   regulator-min-microvolt = <1800000>;
   regulator-max-microvolt = <1800000>;
   regulator-enable-ramp-delay = <250>;
  };

  vreg_l13a_1p8: ldo13 {
   regulator-min-microvolt = <1800000>;
   regulator-max-microvolt = <1800000>;
   regulator-enable-ramp-delay = <250>;
  };

  vreg_l14a_1p8: ldo14 {
   regulator-min-microvolt = <1800000>;
   regulator-max-microvolt = <1800000>;
   regulator-enable-ramp-delay = <250>;
  };

  vreg_l15a_1p8: ldo15 {
   regulator-min-microvolt = <1800000>;
   regulator-max-microvolt = <2950000>;
   regulator-enable-ramp-delay = <250>;
  };

  vreg_l16a_2p7: ldo16 {
   regulator-min-microvolt = <2696000>;
   regulator-max-microvolt = <2696000>;
   regulator-enable-ramp-delay = <250>;
  };

  vreg_l17a_1p8: ldo17 {
   regulator-min-microvolt = <1800000>;
   regulator-max-microvolt = <2950000>;
   regulator-enable-ramp-delay = <250>;
  };

  vreg_l19a_3p3: ldo19 {
   regulator-min-microvolt = <3000000>;
   regulator-max-microvolt = <3312000>;
   regulator-enable-ramp-delay = <250>;
  };
 };

 regulators-1 {
  compatible = "qcom,pm660l-rpmh-regulators";
  qcom,pmic-id = "b";

  vdd-s1-supply = <&vph_pwr>;
  vdd-s2-supply = <&vph_pwr>;
  vdd-s3-s4-supply = <&vph_pwr>;
  vdd-s5-supply = <&vph_pwr>;

  vdd-l1-l9-l10-supply = <&vreg_s2b_1p05>;
  vdd-l2-supply = <&vreg_bob>;
  vdd-l3-l5-l7-l8-supply = <&vreg_bob>;
  vdd-l4-l6-supply = <&vreg_bob>;
  vdd-bob-supply = <&vph_pwr>;

  /* LDOs */
  vreg_l1b_0p925: ldo1 {
   regulator-min-microvolt = <880000>;
   regulator-max-microvolt = <900000>;
   regulator-enable-ramp-delay = <250>;
  };

  vreg_l2b_2p95: ldo2 {
   regulator-min-microvolt = <1800000>;
   regulator-max-microvolt = <2960000>;
   regulator-enable-ramp-delay = <250>;
  };

  vreg_l3b_3p0: ldo3 {
   regulator-min-microvolt = <2850000>;
   regulator-max-microvolt = <3008000>;
   regulator-enable-ramp-delay = <250>;
  };

  vreg_l4b_2p95: ldo4 {
   regulator-min-microvolt = <2960000>;
   regulator-max-microvolt = <2960000>;
   regulator-enable-ramp-delay = <250>;
  };

  vreg_l5b_2p95: ldo5 {
   regulator-min-microvolt = <2960000>;
   regulator-max-microvolt = <2960000>;
   regulator-enable-ramp-delay = <250>;
  };

  vreg_l6b_3p3: ldo6 {
   regulator-min-microvolt = <3008000>;
   regulator-max-microvolt = <3300000>;
   regulator-enable-ramp-delay = <250>;
  };

  vreg_l7b_3p125: ldo7 {
   regulator-min-microvolt = <3088000>;
   regulator-max-microvolt = <3100000>;
   regulator-enable-ramp-delay = <250>;
  };

  vreg_l8b_3p3: ldo8 {
   regulator-min-microvolt = <3300000>;
   regulator-max-microvolt = <3312000>;
   regulator-enable-ramp-delay = <250>;
  };

  /*
   * Downstream specifies a fixed voltage of 3.312 V, but the
   * PMIC4 BOB ranges don't support that. Widen the range a
   * little to avoid adding a new BOB regulator type.
   */
  vreg_bob: bob {
   regulator-min-microvolt = <3296000>;
   regulator-max-microvolt = <3328000>;
   regulator-enable-ramp-delay = <500>;
  };
 };
};

&gcc {
 protected-clocks = <GCC_QSPI_CORE_CLK>,
      <GCC_QSPI_CORE_CLK_SRC>,
      <GCC_QSPI_CNOC_PERIPH_AHB_CLK>;
};

&gpi_dma1 {
 status = "okay";
};

&gpu {
 status = "okay";

 zap-shader {
  memory-region = <&gpu_mem>;
  firmware-name = "qcom/sdm670/sargo/a615_zap.mbn";
 };
};

&i2c9 {
 clock-frequency = <100000>;
 status = "okay";

 synaptics-rmi4-i2c@20 {
  compatible = "syna,rmi4-i2c";
  reg = <0x20>;
  interrupts-extended = <&tlmm 125 IRQ_TYPE_EDGE_FALLING>;

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

  vio-supply = <&ts_1p8_supply>;

  syna,reset-delay-ms = <200>;
  syna,startup-delay-ms = <200>;

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

  rmi4-f01@1 {
   reg = <0x01>;
   syna,nosleep-mode = <1>;
  };

  rmi4-f12@12 {
   reg = <0x12>;
   touchscreen-x-mm = <62>;
   touchscreen-y-mm = <127>;
   syna,sensor-type = <1>;
  };
 };
};

&mdss {
 status = "okay";
};

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

 panel@0 {
  compatible = "samsung,s6e3fa7-ams559nk06";
  reg = <0>;

  reset-gpios = <&tlmm 75 GPIO_ACTIVE_LOW>;

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

  power-supply = <&vreg_l6b_3p3>;

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

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

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

&mdss_mdp {
 status = "okay";
};

&pm660l_flash {
 status = "okay";

 led-0 {
  function = LED_FUNCTION_FLASH;
  color = <LED_COLOR_ID_WHITE>;
  led-sources = <1>, <2>;
  led-max-microamp = <500000>;
  flash-max-microamp = <1500000>;
  flash-max-timeout-us = <1280000>;
 };
};

&pm660l_gpios {
 vol_up_pin: vol-up-state {
  pins = "gpio7";
  function = "normal";
  qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
  input-enable;
  bias-pull-up;
 };
};

&pon_pwrkey {
 status = "okay";
};

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

&qupv3_id_1 {
 status = "okay";
};

&sdhc_1 {
 supports-cqe;
 mmc-hs200-1_8v;
 mmc-hs400-1_8v;
 mmc-ddr-1_8v;

 qcom,ddr-config = <0xc3040873>;

 vmmc-supply = <&vreg_l4b_2p95>;
 vqmmc-supply = <&vreg_l8a_1p8>;

 status = "okay";
};

&tlmm {
 gpio-reserved-ranges = <0 4>, <81 4>;

 panel_default: panel-default-state {
  te-pins {
   pins = "gpio10";
   function = "mdp_vsync";
   drive-strength = <2>;
   bias-pull-down;
  };

  reset-pins {
   pins = "gpio75";
   function = "gpio";
   drive-strength = <8>;
   bias-disable;
  };

  mode-pins {
   pins = "gpio76";
   function = "gpio";
   drive-strength = <8>;
   bias-disable;
  };
 };

 touchscreen_default: ts-default-state {
  ts-reset-pins {
   pins = "gpio99";
   function = "gpio";
   drive-strength = <2>;
   bias-pull-up;
   output-high;
  };

  ts-irq-pins {
   pins = "gpio125";
   function = "gpio";
   drive-strength = <2>;
   bias-disable;
  };

  ts-switch-pins {
   pins = "gpio135";
   function = "gpio";
   drive-strength = <2>;
   bias-disable;
   output-low;
  };
 };
};

&usb_1_hsphy {
 vdd-supply = <&vreg_l1b_0p925>;
 vdda-pll-supply = <&vreg_l10a_1p8>;
 vdda-phy-dpdm-supply = <&vreg_l7b_3p125>;

 status = "okay";
};

&usb_1 {
 qcom,select-utmi-as-pipe-clk;
 status = "okay";
};

&usb_1_dwc3 {
 /* Only peripheral works for now */
 dr_mode = "peripheral";

 /* Do not assume that sdm670.dtsi will never support USB 3.0 */
 phys = <&usb_1_hsphy>;
 phy-names = "usb2-phy";
 maximum-speed = "high-speed";
};

[ Dauer der Verarbeitung: 0.32 Sekunden  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge