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


Quelle  msm8939-samsung-a7.dts   Sprache: unbekannt

 
// SPDX-License-Identifier: GPL-2.0-only

/dts-v1/;

#include "msm8939-pm8916.dtsi"
#include "msm8916-modem-qdsp6.dtsi"

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/sound/apq8016-lpass.h>

/ {
 model = "Samsung Galaxy A7 (2015)";
 compatible = "samsung,a7", "qcom,msm8939";
 chassis-type = "handset";

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

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

 reserved-memory {
  /* Additional memory used by Samsung firmware modifications */
  tz-apps@85500000 {
   reg = <0x0 0x85500000 0x0 0xb00000>;
   no-map;
  };
 };

 battery: battery {
  compatible = "simple-battery";
  charge-term-current-microamp = <150000>;
  constant-charge-current-max-microamp = <1500000>;
  constant-charge-voltage-max-microvolt = <4300000>;
  precharge-current-microamp = <450000>;
  precharge-upper-limit-microvolt = <3500000>;
 };

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

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

  label = "GPIO Hall Effect Sensor";

  event-hall-sensor {
   label = "Hall Effect Sensor";
   gpios = <&tlmm 52 GPIO_ACTIVE_LOW>;
   linux,input-type = <EV_SW>;
   linux,code = <SW_LID>;
   linux,can-disable;
  };
 };

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

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

  label = "GPIO Buttons";

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

  button-home {
   label = "Home";
   gpios = <&tlmm 109 GPIO_ACTIVE_LOW>;
   linux,code = <KEY_HOMEPAGE>;
  };
 };

 i2c-fg {
  compatible = "i2c-gpio";
  sda-gpios = <&tlmm 106 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
  scl-gpios = <&tlmm 105 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;

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

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

  fuel-gauge@35 {
   compatible = "richtek,rt5033-battery";
   reg = <0x35>;

   interrupt-parent = <&tlmm>;
   interrupts = <121 IRQ_TYPE_EDGE_BOTH>;

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

   power-supplies = <&charger>;
  };
 };

 i2c-nfc {
  compatible = "i2c-gpio";
  sda-gpios = <&tlmm 0 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
  scl-gpios = <&tlmm 1 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;

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

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

  nfc@2b {
   compatible = "nxp,pn547", "nxp,nxp-nci-i2c";
   reg = <0x2b>;

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

   enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;
   firmware-gpios = <&tlmm 49 GPIO_ACTIVE_HIGH>;

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

 i2c-sensor {
  compatible = "i2c-gpio";
  sda-gpios = <&tlmm 84 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
  scl-gpios = <&tlmm 85 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;

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

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

  accelerometer: accelerometer@10 {
   compatible = "bosch,bmc150_accel";
   reg = <0x10>;
   interrupt-parent = <&tlmm>;
   interrupts = <115 IRQ_TYPE_EDGE_RISING>;

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

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

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

  magnetometer@12 {
   compatible = "bosch,bmc150_magn";
   reg = <0x12>;

   vdd-supply = <&pm8916_l17>;
   vddio-supply = <&pm8916_l5>;
  };
 };

 i2c-tkey {
  compatible = "i2c-gpio";
  sda-gpios = <&tlmm 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
  scl-gpios = <&tlmm 17 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;

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

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

  touchkey@20 {
   /* Note: Actually an ABOV MCU that implements same interface */
   compatible = "coreriver,tc360-touchkey";
   reg = <0x20>;

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

   vcc-supply = <®_touch_key>;
   vdd-supply = <®_keyled>;
   vddio-supply = <&pm8916_l6>;

   linux,keycodes = <KEY_APPSELECT KEY_BACK>;

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

 pwm_vibrator: pwm {
  compatible = "clk-pwm";
  #pwm-cells = <2>;

  clocks = <&gcc GCC_GP2_CLK>;

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

 reg_keyled: regulator-keyled {
  compatible = "regulator-fixed";
  regulator-name = "keyled";
  regulator-min-microvolt = <3300000>;
  regulator-max-microvolt = <3300000>;

  /* NOTE: On some variants e.g. SM-A700FD it's GPIO 91 */
  gpio = <&tlmm 100 GPIO_ACTIVE_HIGH>;
  enable-active-high;

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

 reg_touch_key: regulator-touch-key {
  compatible = "regulator-fixed";
  regulator-name = "touch_key";
  regulator-min-microvolt = <2800000>;
  regulator-max-microvolt = <2800000>;

  gpio = <&tlmm 56 GPIO_ACTIVE_HIGH>;
  enable-active-high;

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

 reg_tsp_vdd: regulator-tsp-vdd {
  compatible = "regulator-fixed";
  regulator-name = "tsp_vdd";
  regulator-min-microvolt = <1800000>;
  regulator-max-microvolt = <1800000>;
  vin-supply = <&pm8916_s4>;

  gpio = <&tlmm 8 GPIO_ACTIVE_HIGH>;
  enable-active-high;

  pinctrl-0 = <®_tsp_io_en_default>;
  pinctrl-names = "default";
 };

 reg_vdd_tsp: regulator-vdd-tsp {
  compatible = "regulator-fixed";
  regulator-name = "vdd_tsp";
  regulator-min-microvolt = <3300000>;
  regulator-max-microvolt = <3300000>;

  gpio = <&tlmm 73 GPIO_ACTIVE_HIGH>;
  enable-active-high;

  pinctrl-0 = <®_tsp_en_default>;
  pinctrl-names = "default";
 };

 reg_vibrator: regulator-vibrator {
  compatible = "regulator-fixed";
  regulator-name = "motor_en";
  regulator-min-microvolt = <3000000>;
  regulator-max-microvolt = <3000000>;

  gpio = <&tlmm 86 GPIO_ACTIVE_HIGH>;
  enable-active-high;

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

 vibrator {
  compatible = "pwm-vibrator";

  pwms = <&pwm_vibrator 0 100000>;
  pwm-names = "enable";

  vcc-supply = <®_vibrator>;
 };
};

&blsp_i2c1 {
 status = "okay";

 muic: extcon@25 {
  compatible = "siliconmitus,sm5502-muic";
  reg = <0x25>;

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

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

  usb_con: connector {
   compatible = "usb-b-connector";
   label = "micro-USB";
   type = "micro";
  };
 };
};

&blsp_i2c2 {
 status = "okay";

 speaker_codec: audio-codec@34 {
  compatible = "nxp,tfa9895";
  reg = <0x34>;
  vddd-supply = <&pm8916_l5>;
  sound-name-prefix = "Speaker";
  #sound-dai-cells = <0>;
 };
};

&blsp_i2c5 {
 status = "okay";

 touchscreen@24 {
  compatible = "cypress,tt21000";

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

  vdd-supply = <®_vdd_tsp>;
  vddio-supply = <®_tsp_vdd>;

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

&blsp_i2c6 {
 status = "okay";

 pmic@34 {
  compatible = "richtek,rt5033";
  reg = <0x34>;

  interrupts-extended = <&tlmm 62 IRQ_TYPE_EDGE_FALLING>;

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

  regulators {
   rt5033_reg_safe_ldo: SAFE_LDO {
    regulator-min-microvolt = <4900000>;
    regulator-max-microvolt = <4900000>;
    regulator-always-on;
   };

   /*
    * Needed for camera, but not used yet.
    * Define empty nodes to allow disabling the unused
    * regulators.
    */
   LDO {};
   BUCK {};
  };

  charger: charger {
   compatible = "richtek,rt5033-charger";
   monitored-battery = <&battery>;
   richtek,usb-connector = <&usb_con>;
  };
 };
};

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

/*
 * For some reason the speaker amplifier is connected to the second SD line
 * (MI2S_2_D1) instead of the first (MI2S_2_D0). This must be configured in the
 * device tree, otherwise audio will seemingly play fine on the wrong SD line
 * but the speaker stays silent.
 *
 * When routing audio via QDSP6 (the default) the &lpass node is reserved and
 * the definitions from &q6afedai are used. When the modem is disabled audio can
 * be alternatively routed directly to the LPASS hardware with reduced latency.
 * The definitions for &lpass are here for completeness to simplify changing the
 * setup with minor changes to the DT (either manually or with DT overlays).
 */
&lpass {
 dai-link@3 {
  reg = <MI2S_QUATERNARY>;
  qcom,playback-sd-lines = <1>;
 };
};

&mpss_mem {
 reg = <0x0 0x86800000 0x0 0x5800000>;
};

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

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

&q6afedai {
 dai@22 {
  reg = <QUATERNARY_MI2S_RX>;
  qcom,sd-lines = <1>;
 };
};

&sdhc_1 {
 status = "okay";
};

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

 cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;

 status = "okay";
};

&sound {
 model = "samsung-a2015";
 audio-routing =
  "AMIC1", "MIC BIAS External1",
  "AMIC2", "MIC BIAS Internal2",
  "AMIC3", "MIC BIAS External1";

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

 sound_link_backend2: backend2-dai-link {
  link-name = "Quaternary MI2S";

  cpu {
   sound-dai = <&q6afedai QUATERNARY_MI2S_RX>;
  };
  platform {
   sound-dai = <&q6routing>;
  };
  codec {
   sound-dai = <&speaker_codec>;
  };
 };
};

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

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

&wcnss {
 status = "okay";
};

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

&wcnss_mem {
 status = "okay";
};

&tlmm {
 accel_int_default: accel-int-default-state {
  pins = "gpio115";
  function = "gpio";
  drive-strength = <2>;
  bias-disable;
 };

 fg_alert_default: fg-alert-default-state {
  pins = "gpio121";
  function = "gpio";
  drive-strength = <2>;
  bias-disable;
 };

 fg_i2c_default: fg-i2c-default-state {
  pins = "gpio105", "gpio106";
  function = "gpio";
  drive-strength = <2>;
  bias-disable;
 };

 gpio_hall_sensor_default: gpio-hall-sensor-default-state {
  pins = "gpio52";
  function = "gpio";
  drive-strength = <2>;
  bias-disable;
 };

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

 motor_en_default: motor-en-default-state {
  pins = "gpio86";
  function = "gpio";
  drive-strength = <2>;
  bias-disable;
 };

 motor_pwm_default: motor-pwm-default-state {
  pins = "gpio50";
  function = "gcc_gp2_clk_a";
 };

 muic_int_default: muic-int-default-state {
  pins = "gpio12";
  function = "gpio";
  drive-strength = <2>;
  bias-disable;
 };

 nfc_default: nfc-default-state {
  irq-pins {
   pins = "gpio21";
   function = "gpio";
   drive-strength = <2>;
   bias-pull-down;
  };

  nfc-pins {
   pins = "gpio49", "gpio116";
   function = "gpio";
   drive-strength = <2>;
   bias-disable;
  };
 };

 nfc_i2c_default: nfc-i2c-default-state {
  pins = "gpio0", "gpio1";
  function = "gpio";
  drive-strength = <2>;
  bias-disable;
 };

 pmic_int_default: pmic-int-default-state {
  pins = "gpio62";
  function = "gpio";
  drive-strength = <2>;
  bias-disable;
 };

 reg_tsp_en_default: reg-tsp-en-default-state {
  pins = "gpio73";
  function = "gpio";
  drive-strength = <2>;
  bias-disable;
 };

 reg_tsp_io_en_default: reg-tsp-io-en-default-state {
  pins = "gpio8";
  function = "gpio";
  drive-strength = <2>;
  bias-disable;
 };

 sdc2_cd_default: sdc2-cd-default-state {
  pins = "gpio38";
  function = "gpio";
  drive-strength = <2>;
  bias-disable;
 };

 sensor_i2c_default: sensor-i2c-default-state {
  pins = "gpio84", "gpio85";
  function = "gpio";
  drive-strength = <2>;
  bias-disable;
 };

 tkey_default: tkey-default-state {
  pins = "gpio20";
  function = "gpio";
  drive-strength = <2>;
  bias-disable;
 };

 tkey_en_default: tkey-en-default-state {
  pins = "gpio56";
  function = "gpio";
  drive-strength = <2>;
  bias-disable;
 };

 tkey_i2c_default: tkey-i2c-default-state {
  pins = "gpio16", "gpio17";
  function = "gpio";
  drive-strength = <2>;
  bias-disable;
 };

 tkey_led_en_default: tkey-led-en-default-state {
  pins = "gpio100";
  function = "gpio";
  drive-strength = <2>;
  bias-disable;
 };

 tsp_int_default: tsp-int-default-state {
  pins = "gpio13";
  function = "gpio";
  drive-strength = <2>;
  bias-disable;
 };
};

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