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


Quelle  apq8016-schneider-hmibsc.dts   Sprache: unbekannt

 
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2015, The Linux Foundation. All rights reserved.
 * Copyright (c) 2024, Linaro Ltd.
 */

/dts-v1/;

#include "msm8916-pm8916.dtsi"
#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/pinctrl/qcom,pmic-mpp.h>
#include <dt-bindings/sound/apq8016-lpass.h>

/ {
 model = "Schneider Electric HMIBSC Board";
 compatible = "schneider,apq8016-hmibsc", "qcom,apq8016";

 aliases {
  i2c1 = &blsp_i2c6;
  i2c3 = &blsp_i2c4;
  i2c4 = &blsp_i2c3;
  mmc0 = &sdhc_1; /* eMMC */
  mmc1 = &sdhc_2; /* SD card */
  serial0 = &blsp_uart1;
  serial1 = &blsp_uart2;
  spi0 = &blsp_spi5;
  usid0 = &pm8916_0;
 };

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

 hdmi-out {
  compatible = "hdmi-connector";
  type = "a";

  port {
   hdmi_con: endpoint {
    remote-endpoint = <&adv7533_out>;
   };
  };
 };

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

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

 leds {
  compatible = "gpio-leds";
  pinctrl-0 = <&pm8916_mpps_leds>;
  pinctrl-names = "default";

  led-1 {
   function = LED_FUNCTION_WLAN;
   color = <LED_COLOR_ID_YELLOW>;
   gpios = <&pm8916_mpps 2 GPIO_ACTIVE_HIGH>;
   linux,default-trigger = "phy0tx";
   default-state = "off";
  };

  led-2 {
   function = LED_FUNCTION_BLUETOOTH;
   color = <LED_COLOR_ID_BLUE>;
   gpios = <&pm8916_mpps 3 GPIO_ACTIVE_HIGH>;
   linux,default-trigger = "bluetooth-power";
   default-state = "off";
  };
 };

 memory@80000000 {
  reg = <0 0x80000000 0 0x40000000>;
 };

 reserved-memory {
  ramoops@bff00000 {
   compatible = "ramoops";
   reg = <0x0 0xbff00000 0x0 0x100000>;
   record-size = <0x20000>;
   console-size = <0x20000>;
   ftrace-size = <0x20000>;
   ecc-size = <16>;
  };
 };

 usb-hub {
  compatible = "smsc,usb3503";
  reset-gpios = <&pm8916_gpios 1 GPIO_ACTIVE_LOW>;
  initial-mode = <1>;
 };

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

&blsp_i2c3 {
 status = "okay";

 eeprom@50 {
  compatible = "atmel,24c32";
  reg = <0x50>;
 };
};

&blsp_i2c4 {
 status = "okay";

 adv_bridge: bridge@39 {
  compatible = "adi,adv7533";
  reg = <0x39>;
  interrupts-extended = <&tlmm 31 IRQ_TYPE_EDGE_FALLING>;

  adi,dsi-lanes = <4>;
  clocks = <&rpmcc RPM_SMD_BB_CLK2>;
  clock-names = "cec";
  pd-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;

  avdd-supply = <&pm8916_l6>;
  a2vdd-supply = <&pm8916_l6>;
  dvdd-supply = <&pm8916_l6>;
  pvdd-supply = <&pm8916_l6>;
  v1p2-supply = <&pm8916_l6>;
  v3p3-supply = <&pm8916_l17>;

  pinctrl-0 = <&adv7533_int_active &adv7533_switch_active>;
  pinctrl-1 = <&adv7533_int_suspend &adv7533_switch_suspend>;
  pinctrl-names = "default","sleep";
  #sound-dai-cells = <0>;

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

   port@0 {
    reg = <0>;
    adv7533_in: endpoint {
     remote-endpoint = <&mdss_dsi0_out>;
    };
   };

   port@1 {
    reg = <1>;
    adv7533_out: endpoint {
     remote-endpoint = <&hdmi_con>;
    };
   };
  };
 };
};

&blsp_i2c6 {
 status = "okay";

 rtc@30 {
  compatible = "sii,s35390a";
  reg = <0x30>;
 };

 eeprom@50 {
  compatible = "atmel,24c256";
  reg = <0x50>;
 };
};

&blsp_spi5 {
 cs-gpios = <&tlmm 18 GPIO_ACTIVE_LOW>;
 status = "okay";

 tpm@0 {
  compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
  reg = <0>;
  spi-max-frequency = <500000>;
 };
};

&blsp_uart1 {
 pinctrl-0 = <&blsp_uart1_default>;
 pinctrl-1 = <&blsp_uart1_sleep>;
 pinctrl-names = "default", "sleep";
 label = "UART0";
 status = "okay";
};

&blsp_uart2 {
 pinctrl-0 = <&blsp_uart2_default>;
 pinctrl-1 = <&blsp_uart2_sleep>;
 pinctrl-names = "default", "sleep";
 label = "UART1";
 status = "okay";
};

&lpass {
 status = "okay";
};

&mdss {
 status = "okay";
};

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

&pm8916_codec {
 qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
 qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
 status = "okay";
};

&pm8916_gpios {
 gpio-line-names =
  "USB_HUB_RESET_N_PM",
  "USB_SW_SEL_PM",
  "NC",
  "NC";

 usb_hub_reset_pm: usb-hub-reset-pm-state {
  pins = "gpio1";
  function = PMIC_GPIO_FUNC_NORMAL;
  input-disable;
  output-high;
 };

 usb_hub_reset_pm_device: usb-hub-reset-pm-device-state {
  pins = "gpio1";
  function = PMIC_GPIO_FUNC_NORMAL;
  input-disable;
  output-low;
 };

 usb_sw_sel_pm: usb-sw-sel-pm-state {
  pins = "gpio2";
  function = PMIC_GPIO_FUNC_NORMAL;
  power-source = <PM8916_GPIO_VPH>;
  input-disable;
  output-high;
 };

 usb_sw_sel_pm_device: usb-sw-sel-pm-device-state {
  pins = "gpio2";
  function = PMIC_GPIO_FUNC_NORMAL;
  power-source = <PM8916_GPIO_VPH>;
  input-disable;
  output-low;
 };
};

&pm8916_mpps {
 gpio-line-names =
  "NC",
  "WLAN_LED_CTRL",
  "BT_LED_CTRL",
  "NC";

 pm8916_mpps_leds: pm8916-mpps-state {
  pins = "mpp2", "mpp3";
  function = "digital";
  output-low;
 };
};

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

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

&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 {
 pinctrl-0 = <&cdc_pdm_default &sec_mi2s_default>;
 pinctrl-1 = <&cdc_pdm_sleep &sec_mi2s_sleep>;
 pinctrl-names = "default", "sleep";
 model = "HMIBSC";
 audio-routing =
  "AMIC2", "MIC BIAS Internal2",
  "AMIC3", "MIC BIAS External1";
 status = "okay";

 quaternary-dai-link {
  link-name = "ADV7533";
  cpu {
   sound-dai = <&lpass MI2S_QUATERNARY>;
  };
  codec {
   sound-dai = <&adv_bridge 0>;
  };
 };

 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>;
  };
 };
};

&tlmm {
 pinctrl-0 = <&uart1_mux0_rs232_high &uart1_mux1_rs232_low>;
 pinctrl-names = "default";

 adv7533_int_active: adv533-int-active-state {
  pins = "gpio31";
  function = "gpio";
  drive-strength = <16>;
  bias-disable;
 };

 adv7533_int_suspend: adv7533-int-suspend-state {
  pins = "gpio31";
  function = "gpio";
  drive-strength = <2>;
  bias-disable;
 };

 adv7533_switch_active: adv7533-switch-active-state {
  pins = "gpio32";
  function = "gpio";
  drive-strength = <16>;
  bias-disable;
 };

 adv7533_switch_suspend: adv7533-switch-suspend-state {
  pins = "gpio32";
  function = "gpio";
  drive-strength = <2>;
  bias-disable;
 };

 blsp_uart1_default: blsp-uart1-default-state {
  /* TX, RX, CTS_N, RTS_N */
  pins = "gpio0", "gpio1", "gpio2", "gpio3";
  function = "blsp_uart1";
  drive-strength = <16>;
  bias-disable;
  bootph-all;
 };

 blsp_uart1_sleep: blsp-uart1-sleep-state {
  pins = "gpio0", "gpio1", "gpio2", "gpio3";
  function = "gpio";
  drive-strength = <2>;
  bias-pull-down;
 };

 blsp_uart2_default: blsp-uart2-default-state {
  /* TX, RX */
  pins = "gpio4", "gpio5";
  function = "blsp_uart2";
  drive-strength = <16>;
  bias-disable;
 };

 blsp_uart2_sleep: blsp-uart2-sleep-state {
  pins = "gpio4", "gpio5";
  function = "gpio";
  drive-strength = <2>;
  bias-pull-down;
 };

 msm_key_volp_n_default: msm-key-volp-n-default-state {
  pins = "gpio107";
  function = "gpio";
  drive-strength = <8>;
  bias-pull-up;
 };

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

 /*
  * UART1 being the debug console supports various modes of
  * operation (RS-232/485/422) controlled via GPIOs configured
  * mux as follows:
  *
  *   gpio100    gpio99    UART mode
  *   0          0         loopback
  *   0          1         RS-232
  *   1          0         RS-485
  *   1          1         RS-422
  *
  * The default mode configured here is RS-232 mode.
  */
 uart1_mux0_rs232_high: uart1-mux0-rs232-state {
  bootph-all;
  pins = "gpio99";
  function = "gpio";
  drive-strength = <16>;
  bias-disable;
  output-high;
 };

 uart1_mux1_rs232_low: uart1-mux1-rs232-state {
  bootph-all;
  pins = "gpio100";
  function = "gpio";
  drive-strength = <16>;
  bias-disable;
  output-low;
 };

 usb_id_default: usb-id-default-state {
  pins = "gpio110";
  function = "gpio";
  drive-strength = <8>;
  bias-pull-up;
 };
};

&usb {
 extcon = <&usb_id>, <&usb_id>;
 pinctrl-0 = <&usb_sw_sel_pm &usb_hub_reset_pm>;
 pinctrl-1 = <&usb_sw_sel_pm_device &usb_hub_reset_pm_device>;
 pinctrl-names = "default", "device";
 status = "okay";
};

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

&wcnss {
 firmware-name = "qcom/apq8016/wcnss.mbn";
 status = "okay";
};

&wcnss_ctrl {
 firmware-name = "qcom/apq8016/WCNSS_qcom_wlan_nv_sbc.bin";
};

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

&wcnss_mem {
 status = "okay";
};

/* PINCTRL - additions to nodes defined in msm8916.dtsi */

/*
 * 2mA drive strength is not enough when connecting multiple
 * I2C devices with different pull up resistors.
 */
&blsp_i2c4_default {
 drive-strength = <16>;
};

&blsp_i2c6_default {
 drive-strength = <16>;
};

/* Enable CoreSight */
&cti0 { status = "okay"; };
&cti1 { status = "okay"; };
&cti12 { status = "okay"; };
&cti13 { status = "okay"; };
&cti14 { status = "okay"; };
&cti15 { status = "okay"; };
&debug0 { status = "okay"; };
&debug1 { status = "okay"; };
&debug2 { status = "okay"; };
&debug3 { status = "okay"; };
&etf { status = "okay"; };
&etm0 { status = "okay"; };
&etm1 { status = "okay"; };
&etm2 { status = "okay"; };
&etm3 { status = "okay"; };
&etr { status = "okay"; };
&funnel0 { status = "okay"; };
&funnel1 { status = "okay"; };
&replicator { status = "okay"; };
&stm { status = "okay"; };
&tpiu { status = "okay"; };

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