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


Quelle  msm8916-huawei-g7.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-only
/*
 * Copyright (C) 2021 Stephan Gerhold
 */

/dts-v1/;

#include "msm8916-pm8916.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/sound/apq8016-lpass.h>

/*
 * Note: The original firmware from Huawei can only boot 32-bit kernels.
 * To boot this device tree using arm64 it is necessary to flash 64-bit TZ/HYP
 * firmware (e.g. taken from the DragonBoard 410c).
 * See https://wiki.postmarketos.org/wiki/Huawei_Ascend_G7_(huawei-g7)
 * for suggested installation instructions.
 */

/ {
 model = "Huawei Ascend G7";
 compatible = "huawei,g7", "qcom,msm8916";
 chassis-type = "handset";

 aliases {
  mmc0 = &sdhc_1; /* eMMC */
  mmc1 = &sdhc_2; /* SD card */
  serial0 = &blsp_uart2;
 };

 chosen {
  stdout-path = "serial0";
 };

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

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

  label = "GPIO Buttons";

  button-volume-up {
   label = "Volume Up";
   gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
   linux,code = <KEY_VOLUMEUP>;
  };
 };

 leds {
  compatible = "gpio-leds";

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

  led-0 {
   gpios = <&tlmm 8 GPIO_ACTIVE_HIGH>;
   color = <LED_COLOR_ID_RED>;
   default-state = "off";
   function = LED_FUNCTION_INDICATOR;
  };

  led-1 {
   gpios = <&tlmm 9 GPIO_ACTIVE_HIGH>;
   color = <LED_COLOR_ID_GREEN>;
   default-state = "off";
   function = LED_FUNCTION_INDICATOR;
  };

  led-2 {
   gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;
   color = <LED_COLOR_ID_BLUE>;
   default-state = "off";
   function = LED_FUNCTION_INDICATOR;
  };
 };

 usb_id: usb-id {
  compatible = "linux,extcon-usb-gpio";
  id-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
  pinctrl-names = "default";
  pinctrl-0 = <&usb_id_default>;
 };
};

&blsp_i2c2 {
 status = "okay";

 magnetometer@c {
  compatible = "asahi-kasei,ak09911";
  reg = <0x0c>;

  vdd-supply = <&pm8916_l17>;
  vid-supply = <&pm8916_l6>;

  reset-gpios = <&tlmm 36 GPIO_ACTIVE_LOW>;

  pinctrl-names = "default";
  pinctrl-0 = <&mag_reset_default>;
 };

 accelerometer@1e {
  compatible = "kionix,kx023-1025";
  reg = <0x1e>;

  interrupt-parent = <&tlmm>;
  interrupts = <115 IRQ_TYPE_EDGE_RISING>;

  vdd-supply = <&pm8916_l17>;
  vddio-supply = <&pm8916_l6>;

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

  mount-matrix = "-1", "0", "0",
    "0", "1", "0",
    "0", "0", "1";
 };

 proximity@39 {
  compatible = "avago,apds9930";
  reg = <0x39>;

  interrupt-parent = <&tlmm>;
  interrupts = <113 IRQ_TYPE_EDGE_FALLING>;

  vdd-supply = <&pm8916_l17>;
  vddio-supply = <&pm8916_l6>;

  led-max-microamp = <100000>;
  amstaos,proximity-diodes = <1>;

  pinctrl-names = "default";
  pinctrl-0 = <&prox_irq_default>;
 };

 regulator@3e {
  compatible = "ti,tps65132";
  reg = <0x3e>;

  pinctrl-names = "default";
  pinctrl-0 = <®_lcd_en_default>;

  reg_lcd_pos: outp {
   regulator-name = "outp";
   regulator-min-microvolt = <5400000>;
   regulator-max-microvolt = <5400000>;
   enable-gpios = <&tlmm 97 GPIO_ACTIVE_HIGH>;
   regulator-active-discharge = <1>;
  };

  reg_lcd_neg: outn {
   regulator-name = "outn";
   regulator-min-microvolt = <5400000>;
   regulator-max-microvolt = <5400000>;
   enable-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;
   regulator-active-discharge = <1>;
  };
 };
};

&blsp_i2c5 {
 status = "okay";

 rmi4@70 {
  compatible = "syna,rmi4-i2c";
  reg = <0x70>;
  #address-cells = <1>;
  #size-cells = <0>;

  interrupt-parent = <&tlmm>;
  interrupts = <13 IRQ_TYPE_EDGE_FALLING>;

  vdd-supply = <&pm8916_l17>;
  vio-supply = <&pm8916_l16>;

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

  syna,startup-delay-ms = <100>;

  rmi4-f01@1 {
   reg = <0x1>;
   syna,nosleep-mode = <1>; /* Allow sleeping */
  };

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

&blsp_i2c6 {
 status = "okay";

 nfc@28 {
  compatible = "nxp,pn547", "nxp,nxp-nci-i2c";
  reg = <0x28>;

  interrupt-parent = <&tlmm>;
  interrupts = <21 IRQ_TYPE_EDGE_RISING>;

  enable-gpios = <&tlmm 20 GPIO_ACTIVE_HIGH>;
  firmware-gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>;

  pinctrl-names = "default";
  pinctrl-0 = <&nfc_default>;
 };
};

&blsp_uart2 {
 status = "okay";
 pinctrl-0 = <&blsp_uart2_console_default>;
 pinctrl-1 = <&blsp_uart2_console_sleep>;
 pinctrl-names = "default", "sleep";
};

&lpass {
 status = "okay";
};

&lpass_codec {
 status = "okay";
};

&pm8916_codec {
 status = "okay";
 qcom,micbias-lvl = <2800>;
 qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
 qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
 qcom,hphl-jack-type-normally-open;
};

&pm8916_l8 {
 regulator-min-microvolt = <2950000>;
 regulator-max-microvolt = <2950000>;
};

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

&pm8916_rpm_regulators {
 pm8916_l16: l16 {
  regulator-min-microvolt = <1800000>;
  regulator-max-microvolt = <1800000>;
 };

 pm8916_l17: l17 {
  regulator-min-microvolt = <2850000>;
  regulator-max-microvolt = <2850000>;
 };
};

&pm8916_vib {
 status = "okay";
};

&sdhc_1 {
 status = "okay";
};

&sdhc_2 {
 status = "okay";

 pinctrl-names = "default", "sleep";
 pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
 pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;

 /*
  * The Huawei device tree sets cd-gpios = <&tlmm 38 GPIO_ACTIVE_HIGH>.
  * However, gpio38 does not change its state when inserting/removing the
  * SD card, it's just low all the time. The Huawei kernel seems to use
  * polling for SD card detection instead.
  *
  * However, looking closer at the GPIO debug output it turns out that
  * gpio56 switches its state when inserting/removing the SD card.
  * It behaves just like gpio38 normally does. Usually GPIO56 is used as
  * "UIM2_PRESENT", i.e. to check if a second SIM card is inserted.
  * Maybe Huawei decided to replace the second SIM card slot with the
  * SD card slot and forgot to re-route to gpio38.
  */
 cd-gpios = <&tlmm 56 GPIO_ACTIVE_LOW>;
};

&sound {
 status = "okay";

 model = "msm8916";
 audio-routing =
  "AMIC1", "MIC BIAS External1",
  "AMIC2", "MIC BIAS External2",
  "AMIC3", "MIC BIAS External1";

 pinctrl-names = "default", "sleep";
 pinctrl-0 = <&cdc_pdm_default>;
 pinctrl-1 = <&cdc_pdm_sleep>;

 primary-dai-link {
  link-name = "WCD";
  cpu {
   sound-dai = <&lpass MI2S_PRIMARY>;
  };
  codec {
   sound-dai = <&lpass_codec 0>, <&pm8916_codec 0>;
  };
 };

 tertiary-dai-link {
  link-name = "WCD-Capture";
  cpu {
   sound-dai = <&lpass MI2S_TERTIARY>;
  };
  codec {
   sound-dai = <&lpass_codec 1>, <&pm8916_codec 1>;
  };
 };
};

&usb {
 status = "okay";
 extcon = <&usb_id>, <&usb_id>;
};

&usb_hs_phy {
 extcon = <&usb_id>;
};

&venus {
 status = "okay";
};

&venus_mem {
 status = "okay";
};

&wcnss {
 status = "okay";
};

&wcnss_iris {
 compatible = "qcom,wcn3620";
};

&wcnss_mem {
 status = "okay";
};

&tlmm {
 accel_irq_default: accel-irq-default-state {
  pins = "gpio115";
  function = "gpio";

  drive-strength = <2>;
  bias-disable;
 };

 gpio_keys_default: gpio-keys-default-state {
  pins = "gpio107";
  function = "gpio";

  drive-strength = <2>;
  bias-pull-up;
 };

 gpio_leds_default: gpio-leds-default-state {
  pins = "gpio8", "gpio9", "gpio10";
  function = "gpio";

  drive-strength = <2>;
  bias-disable;
 };

 nfc_default: nfc-default-state {
  pins = "gpio2", "gpio20", "gpio21";
  function = "gpio";

  drive-strength = <2>;
  bias-disable;
 };

 mag_reset_default: mag-reset-default-state {
  pins = "gpio36";
  function = "gpio";

  drive-strength = <2>;
  bias-disable;
 };

 prox_irq_default: prox-irq-default-state {
  pins = "gpio113";
  function = "gpio";

  drive-strength = <2>;
  bias-disable;
 };

 reg_lcd_en_default: reg-lcd-en-default-state {
  pins = "gpio32", "gpio97";
  function = "gpio";

  drive-strength = <2>;
  bias-disable;
 };

 sdc2_cd_default: sdc2-cd-default-state {
  pins = "gpio56";
  function = "gpio";

  drive-strength = <2>;
  bias-disable;
 };

 ts_irq_default: ts-irq-default-state {
  pins = "gpio13";
  function = "gpio";

  drive-strength = <2>;
  bias-disable;
 };

 usb_id_default: usb-id-default-state {
  pins = "gpio117";
  function = "gpio";

  drive-strength = <8>;
  bias-pull-up;
 };
};

[ Dauer der Verarbeitung: 0.30 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