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


Quelle  sdm630-sony-xperia-nile.dtsi   Sprache: unbekannt

 
// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2020, Konrad Dybcio <konrad.dybcio@somainline.org>
 * Copyright (c) 2020, AngeloGioacchino Del Regno
 *                     <angelogioacchino.delregno@somainline.org>
 */

#include "pm660.dtsi"
#include "pm660l.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/input/gpio-keys.h>
#include <dt-bindings/leds/common.h>

/ {
 /* required for bootloader to select correct board */
 qcom,msm-id = <318 0>;
 qcom,board-id = <8 1>;
 qcom,pmic-id = <0x1001b 0x101011a 0x00 0x00 0x1001b 0x201011a 0x00 0x00>;

 /* This part enables graphical output via bootloader-enabled display */
 chosen {
  bootargs = "earlycon=tty0 console=tty0";

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

  stdout-path = "framebuffer0";

  framebuffer0: framebuffer@9d400000 {
   compatible = "simple-framebuffer";
   reg = <0 0x9d400000 0 (1920 * 1080 * 4)>;
   width = <1080>;
   height = <1920>;
   stride = <(1080 * 4)>;
   format = "a8r8g8b8";
   status = "okay";
  };
 };

 board_vbat: vbat-regulator {
  compatible = "regulator-fixed";
  regulator-name = "VBAT";

  regulator-min-microvolt = <4000000>;
  regulator-max-microvolt = <4000000>;
  regulator-always-on;
  regulator-boot-on;
 };

 vph_pwr: vph-pwr-regulator {
  compatible = "regulator-fixed";
  regulator-name = "vph_pwr";

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

 cam_vdig_imx300_219_vreg: cam-vdig-imx300-219-regulator {
  compatible = "regulator-fixed";
  regulator-name = "cam_vdig_imx300_219_vreg";
  startup-delay-us = <0>;
  enable-active-high;
  gpio = <&tlmm 52 GPIO_ACTIVE_HIGH>;
  pinctrl-names = "default";
  pinctrl-0 = <&cam_vdig_default>;
 };

 cam_vana_front_vreg: cam-vana-front-regulator {
  compatible = "regulator-fixed";
  regulator-name = "cam_vana_front_vreg";
  startup-delay-us = <0>;
  enable-active-high;
  gpio = <&tlmm 51 GPIO_ACTIVE_HIGH>;
  pinctrl-names = "default";
  pinctrl-0 = <&imx219_vana_default>;
 };

 cam_vana_rear_vreg: cam-vana-rear-regulator {
  compatible = "regulator-fixed";
  regulator-name = "cam_vana_rear_vreg";
  startup-delay-us = <0>;
  enable-active-high;
  gpio = <&tlmm 50 GPIO_ACTIVE_HIGH>;
  regulator-always-on;
  pinctrl-names = "default";
  pinctrl-0 = <&imx300_vana_default>;
 };

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

  key-camera-focus {
   label = "Camera Focus";
   gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
   linux,input-type = <1>;
   linux,code = <KEY_CAMERA_FOCUS>;
   debounce-interval = <15>;
  };

  key-camera-snapshot {
   label = "Camera Snapshot";
   gpios = <&tlmm 113 GPIO_ACTIVE_LOW>;
   linux,input-type = <1>;
   linux,code = <KEY_CAMERA>;
   debounce-interval = <15>;
  };

  key-vol-down {
   label = "Volume Down";
   gpios = <&pm660l_gpios 7 GPIO_ACTIVE_LOW>;
   linux,input-type = <1>;
   linux,code = <KEY_VOLUMEDOWN>;
   wakeup-source;
   debounce-interval = <15>;
  };
 };

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

  ramoops@ffc00000 {
   compatible = "ramoops";
   reg = <0x0 0xffc00000 0x0 0x100000>;
   record-size = <0x10000>;
   console-size = <0x60000>;
   ftrace-size = <0x10000>;
   pmsg-size = <0x20000>;
   ecc-size = <16>;
   status = "okay";
  };

  debug@ffb00000 {
   reg = <0x00 0xffb00000 0x00 0x100000>;
   no-map;
  };

  cont_splash_mem: splash@9d400000 {
   reg = <0 0x9d400000 0 (1920 * 1080 * 4)>;
   no-map;
  };
 };

 /*
  * Until we hook up type-c detection, we
  * have to stick with this. But it works.
  */
 extcon_usb: extcon-usb {
  compatible = "linux,extcon-usb-gpio";
  id-gpios = <&tlmm 58 GPIO_ACTIVE_HIGH>;
 };
};

&adsp_pil {
 firmware-name = "qcom/sdm630/Sony/nile/adsp.mbn";
};

&blsp_i2c1 {
 status = "okay";

 touchscreen: synaptics-rmi4-i2c@70 {
  compatible = "syna,rmi4-i2c";
  reg = <0x70>;
  #address-cells = <1>;
  #size-cells = <0>;
  interrupts-extended = <&tlmm 45 0x2008>;

  pinctrl-names = "default";
  pinctrl-0 = <&ts_int_active &ts_lcd_id_active>;

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

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

  rmi4-f11@11 {
   reg = <0x11>;
   syna,sensor-type = <1>;
  };
 };
};

&blsp_i2c2 {
 status = "okay";

 /* SMB1351 charger */
};

/* I2C3, 4, 5, 7 and 8 are disabled on this board. */

&blsp_i2c6 {
 status = "okay";

 /* NXP NFC */
};

&blsp1_uart2 {
 status = "okay";

 /* MSM serial console */
};

&blsp2_uart1 {
 status = "okay";

 /* HCI Bluetooth */
};

&pm660l_lpg {
 qcom,power-source = <1>;

 status = "okay";

 multi-led {
  color = <LED_COLOR_ID_RGB>;
  function = LED_FUNCTION_STATUS;

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

  led@1 {
   reg = <1>;
   color = <LED_COLOR_ID_BLUE>;
  };

  led@2 {
   reg = <2>;
   color = <LED_COLOR_ID_GREEN>;
  };

  led@3 {
   reg = <3>;
   color = <LED_COLOR_ID_RED>;
  };
 };
};

&pm660l_wled {
 status = "okay";

 qcom,switching-freq = <800>;
 qcom,ovp-millivolt = <29600>;
 qcom,current-boost-limit = <970>;
 qcom,current-limit-microamp = <17500>;
 qcom,num-strings = <2>;
};

&pon_pwrkey {
 status = "okay";
};

&pon_resin {
 status = "okay";

 linux,code = <KEY_VOLUMEUP>;
};

&qhee_code {
 reg = <0x00 0x85800000 0x00 0x3700000>;
};

&qusb2phy0 {
 status = "okay";

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

&rpm_requests {
 regulators-0 {
  compatible = "qcom,rpm-pm660l-regulators";

  vdd_s1-supply = <&vph_pwr>;
  vdd_s2-supply = <&vph_pwr>;
  vdd_s3_s4-supply = <&vph_pwr>;
  vdd_s5-supply = <&vph_pwr>;
  vdd_s6-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>;

  vreg_s1b_1p125: s1 {
   regulator-min-microvolt = <1125000>;
   regulator-max-microvolt = <1125000>;
   regulator-enable-ramp-delay = <200>;
   regulator-ramp-delay = <0>;
  };

  vreg_s2b_1p05: s2 {
   regulator-min-microvolt = <1050000>;
   regulator-max-microvolt = <1050000>;
   regulator-enable-ramp-delay = <200>;
   regulator-ramp-delay = <0>;
  };

  /*
   * At least on Nile's configuration, S3B/S4B (VDD_CX) and
   * S5B (VDD_MX) are managed only through RPM Power Domains.
   * Trying to set a voltage on the main supply will create
   * havoc and freeze the SoC.
   * In any case, reference voltages for these regulators are:
   * S3B/S4B: 0.870V
   * S5B: 0.915V
   */

  /* LDOs */
  vreg_l1b_0p925: l1 {
   regulator-min-microvolt = <920000>;
   regulator-max-microvolt = <928000>;
   regulator-enable-ramp-delay = <250>;
   regulator-ramp-delay = <0>;
   regulator-allow-set-load;
  };

  vreg_l2b_2p95: l2 {
   /*
    * This regulator supports 1.648 - 3.104V on this board
    * but we set a max voltage of anything less than 2.7V
    * to satisfy a condition in sdhci.c that will disable
    * 3.3V SDHCI signaling, which happens to be not really
    * supported on the Xperia Nile/Ganges platform.
    */
   regulator-min-microvolt = <1648000>;
   regulator-max-microvolt = <2696000>;
   regulator-enable-ramp-delay = <250>;
   regulator-ramp-delay = <0>;
   regulator-allow-set-load;
  };

  vreg_l3b_3p0: l3 {
   regulator-min-microvolt = <2800000>;
   regulator-max-microvolt = <2800000>;
   regulator-enable-ramp-delay = <250>;
   regulator-ramp-delay = <0>;
   regulator-min-microamp = <200>;
   regulator-max-microamp = <600000>;
   regulator-system-load = <100000>;
   regulator-allow-set-load;
  };

  vreg_l4b_2p95: l4 {
   regulator-min-microvolt = <2944000>;
   regulator-max-microvolt = <2952000>;
   regulator-enable-ramp-delay = <250>;
   regulator-ramp-delay = <0>;

   regulator-min-microamp = <200>;
   regulator-max-microamp = <600000>;
   regulator-system-load = <570000>;
   regulator-allow-set-load;
  };

  /*
   * Downstream specifies a range of 1721-3600mV,
   * but the only assigned consumers are SDHCI2 VMMC
   * and Coresight QPDI that both request pinned 2.95V.
   * Tighten the range to 1.8-3.328 (closest to 3.3) to
   * make the mmc driver happy.
   */
  vreg_l5b_2p95: l5 {
   regulator-min-microvolt = <1800000>;
   regulator-max-microvolt = <3328000>;
   regulator-enable-ramp-delay = <250>;
   regulator-ramp-delay = <0>;
   regulator-allow-set-load;
   regulator-system-load = <800000>;
  };

  vreg_l6b_3p3: l6 {
   regulator-min-microvolt = <1704000>;
   regulator-max-microvolt = <3312000>;
   regulator-enable-ramp-delay = <250>;
   regulator-ramp-delay = <0>;
  };

  vreg_l7b_3p125: l7 {
   regulator-min-microvolt = <2704000>;
   regulator-max-microvolt = <3128000>;
   regulator-enable-ramp-delay = <250>;
   regulator-ramp-delay = <0>;
  };

  vreg_l8b_3p3: l8 {
   regulator-min-microvolt = <2800000>;
   regulator-max-microvolt = <3400000>;
   regulator-enable-ramp-delay = <250>;
   regulator-ramp-delay = <0>;
  };

  /* L9B (870mV) is currently unused */
  /* L10B (915mV) is currently unused */

  vreg_bob: bob {
   regulator-min-microvolt = <3304000>;
   regulator-max-microvolt = <3624000>;
   regulator-enable-ramp-delay = <500>;
   regulator-ramp-delay = <0>;
  };
 };

 regulators-1 {
  compatible = "qcom,rpm-pm660-regulators";

  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_s5a_1p35>;
  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: s4 {
   regulator-min-microvolt = <2040000>;
   regulator-max-microvolt = <2040000>;
   regulator-enable-ramp-delay = <200>;
   regulator-ramp-delay = <0>;
   regulator-always-on;
  };

  vreg_s5a_1p35: s5 {
   regulator-min-microvolt = <1224000>;
   regulator-max-microvolt = <1350000>;
   regulator-enable-ramp-delay = <200>;
   regulator-ramp-delay = <0>;
  };

  vreg_s6a_0p87: s6 {
   regulator-min-microvolt = <504000>;
   regulator-max-microvolt = <992000>;
   regulator-enable-ramp-delay = <150>;
   regulator-ramp-delay = <0>;
  };

  /* LDOs */
  vreg_l1a_1p225: l1 {
   regulator-min-microvolt = <1226000>;
   regulator-max-microvolt = <1250000>;
   regulator-enable-ramp-delay = <250>;
   regulator-ramp-delay = <0>;
   regulator-allow-set-load;
  };

  vreg_l2a_1p0: l2 {
   regulator-min-microvolt = <944000>;
   regulator-max-microvolt = <1008000>;
   regulator-enable-ramp-delay = <250>;
   regulator-ramp-delay = <0>;
  };

  vreg_l3a_1p0: l3 {
   regulator-min-microvolt = <944000>;
   regulator-max-microvolt = <1008000>;
   regulator-enable-ramp-delay = <250>;
   regulator-ramp-delay = <0>;
  };

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

  vreg_l6a_1p3: l6 {
   regulator-min-microvolt = <1304000>;
   regulator-max-microvolt = <1368000>;
   regulator-allow-set-load;
   regulator-enable-ramp-delay = <250>;
   regulator-ramp-delay = <0>;
  };

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

  vreg_l8a_1p8: l8 {
   regulator-min-microvolt = <1800000>;
   regulator-max-microvolt = <1800000>;
   regulator-enable-ramp-delay = <250>;
   regulator-ramp-delay = <0>;
   regulator-system-load = <325000>;
   regulator-allow-set-load;
  };

  vreg_l9a_1p8: l9 {
   regulator-min-microvolt = <1804000>;
   regulator-max-microvolt = <1896000>;
   regulator-enable-ramp-delay = <250>;
   regulator-ramp-delay = <0>;
   regulator-allow-set-load;
  };

  vreg_l10a_1p8: l10 {
   regulator-min-microvolt = <1800000>;
   regulator-max-microvolt = <1944000>;
   regulator-enable-ramp-delay = <250>;
   regulator-ramp-delay = <0>;
   regulator-allow-set-load;
  };

  vreg_l11a_1p8: l11 {
   regulator-min-microvolt = <1784000>;
   regulator-max-microvolt = <1944000>;
   regulator-enable-ramp-delay = <250>;
   regulator-ramp-delay = <0>;
  };

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

  /* This gives power to the LPDDR4: never turn it off! */
  vreg_l13a_1p8: l13 {
   regulator-min-microvolt = <1800000>;
   regulator-max-microvolt = <1944000>;
   regulator-enable-ramp-delay = <250>;
   regulator-ramp-delay = <0>;
   regulator-boot-on;
   regulator-always-on;
  };

  vreg_l14a_1p8: l14 {
   regulator-min-microvolt = <1710000>;
   regulator-max-microvolt = <1904000>;
   regulator-enable-ramp-delay = <250>;
   regulator-ramp-delay = <0>;
  };

  vreg_l15a_1p8: l15 {
   regulator-min-microvolt = <1648000>;
   regulator-max-microvolt = <2952000>;
   regulator-enable-ramp-delay = <250>;
   regulator-ramp-delay = <0>;
  };

  /* L16A (2.70V) is unused */

  vreg_l17a_1p8: l17 {
   regulator-min-microvolt = <1648000>;
   regulator-max-microvolt = <2952000>;
   regulator-enable-ramp-delay = <250>;
   regulator-ramp-delay = <0>;
  };

  vreg_l18a_1v8: l18 {
   regulator-min-microvolt = <1800000>;
   regulator-max-microvolt = <1800000>;
   regulator-enable-ramp-delay = <250>;
   regulator-ramp-delay = <10>;
   regulator-min-microamp = <200>;
   regulator-max-microamp = <50000>;
   regulator-system-load = <10000>;
   regulator-allow-set-load;
  };

  vreg_l19a_3p3: l19 {
   regulator-min-microvolt = <3312000>;
   regulator-max-microvolt = <3400000>;
   regulator-enable-ramp-delay = <250>;
   regulator-ramp-delay = <0>;
   regulator-allow-set-load;
  };
 };
};

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

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

&sdhc_1 {
 status = "okay";
 supports-cqe;

 /* SoMC Nile platform's eMMC doesn't support HS200 mode */
 mmc-ddr-1_8v;
 mmc-hs400-1_8v;
 mmc-hs400-enhanced-strobe;

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

&sdhc_2 {
 status = "okay";

 vmmc-supply = <&vreg_l5b_2p95>;
 vqmmc-supply = <&vreg_l2b_2p95>;
};

&tlmm {
 gpio-reserved-ranges = <8 4>;

 ts_int_active: ts-int-active-state {
  pins = "gpio45";
  function = "gpio";
  drive-strength = <8>;
  bias-pull-up;
 };

 ts_lcd_id_active: ts-lcd-id-active-state {
  pins = "gpio56";
  function = "gpio";
  drive-strength = <8>;
  bias-disable;
 };

 gpio_keys_default: gpio-keys-default-state {
  pins = "gpio64", "gpio113";
  function = "gpio";
  drive-strength = <2>;
  bias-pull-up;
 };

 imx300_vana_default: imx300-vana-default-state {
  pins = "gpio50";
  function = "gpio";
  bias-disable;
  drive-strength = <2>;
 };

 imx219_vana_default: imx219-vana-default-state {
  pins = "gpio51";
  function = "gpio";
  bias-disable;
  drive-strength = <2>;
 };

 cam_vdig_default: cam-vdig-default-state {
  pins = "gpio52";
  function = "gpio";
  bias-disable;
  drive-strength = <2>;
 };
};

&usb3 {
 qcom,select-utmi-as-pipe-clk;

 status = "okay";
};

&usb3_dwc3 {
 maximum-speed = "high-speed";
 phys = <&qusb2phy0>;
 phy-names = "usb2-phy";

 dr_mode = "peripheral";
 extcon = <&extcon_usb>;
};

[ Dauer der Verarbeitung: 0.18 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


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