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


Quelle  rk3399-gru-chromebook.dtsi   Sprache: unbekannt

 
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Google Gru-Chromebook shared properties
 *
 * Copyright 2018 Google, Inc
 */

#include "rk3399-gru.dtsi"

/ {
 pp900_ap: regulator-pp900-ap {
  compatible = "regulator-fixed";
  regulator-name = "pp900_ap";

  /* EC turns on w/ pp900_ap_en; always on for AP */
  regulator-always-on;
  regulator-boot-on;
  regulator-min-microvolt = <900000>;
  regulator-max-microvolt = <900000>;

  vin-supply = <&ppvar_sys>;
 };

 /* EC turns on w/ pp900_usb_en */
 pp900_usb: regulator-pp900-ap {
 };

 /* EC turns on w/ pp900_pcie_en */
 pp900_pcie: regulator-pp900-ap {
 };

 pp3000: regulator-pp3000 {
  compatible = "regulator-fixed";
  regulator-name = "pp3000";
  pinctrl-names = "default";
  pinctrl-0 = <&pp3000_en>;

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

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

  vin-supply = <&ppvar_sys>;
 };

 ppvar_centerlogic_pwm: regulator-ppvar-centerlogic-pwm {
  compatible = "pwm-regulator";
  regulator-name = "ppvar_centerlogic_pwm";

  pwms = <&pwm3 0 3337 0>;
  pwm-supply = <&ppvar_sys>;
  pwm-dutycycle-range = <100 0>;
  pwm-dutycycle-unit = <100>;

  /* EC turns on w/ ppvar_centerlogic_en; always on for AP */
  regulator-always-on;
  regulator-boot-on;
  regulator-min-microvolt = <799434>;
  regulator-max-microvolt = <1049925>;
 };

 ppvar_centerlogic: ppvar-centerlogic {
  compatible = "vctrl-regulator";
  regulator-name = "ppvar_centerlogic";

  regulator-min-microvolt = <799434>;
  regulator-max-microvolt = <1049925>;

  ctrl-supply = <&ppvar_centerlogic_pwm>;
  ctrl-voltage-range = <799434 1049925>;

  regulator-settling-time-up-us = <378>;
  min-slew-down-rate = <225>;
  ovp-threshold-percent = <16>;
 };

 /* Schematics call this PPVAR even though it's fixed */
 ppvar_logic: regulator-ppvar-logic {
  compatible = "regulator-fixed";
  regulator-name = "ppvar_logic";

  /* EC turns on w/ ppvar_logic_en; always on for AP */
  regulator-always-on;
  regulator-boot-on;
  regulator-min-microvolt = <900000>;
  regulator-max-microvolt = <900000>;

  vin-supply = <&ppvar_sys>;
 };

 pp1800_audio: regulator-pp1800-audio {
  compatible = "regulator-fixed";
  regulator-name = "pp1800_audio";
  pinctrl-names = "default";
  pinctrl-0 = <&pp1800_audio_en>;

  enable-active-high;
  gpio = <&gpio0 2 GPIO_ACTIVE_HIGH>;

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

  vin-supply = <&pp1800>;
 };

 /* gpio is shared with pp3300_wifi_bt */
 pp1800_pcie: regulator-pp1800-pcie {
  compatible = "regulator-fixed";
  regulator-name = "pp1800_pcie";
  pinctrl-names = "default";
  pinctrl-0 = <&wlan_module_pd_l>;

  enable-active-high;
  gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>;

  /*
   * Need to wait 1ms + ramp-up time before we can power on WiFi.
   * This has been approximated as 8ms total.
   */
  regulator-enable-ramp-delay = <8000>;

  vin-supply = <&pp1800>;
 };

 /* Always on; plain and simple */
 pp3000_ap: pp3000_emmc: regulator-pp3000 {
 };

 pp1500_ap_io: regulator-pp1500-ap-io {
  compatible = "regulator-fixed";
  regulator-name = "pp1500_ap_io";
  pinctrl-names = "default";
  pinctrl-0 = <&pp1500_en>;

  enable-active-high;
  gpio = <&gpio0 10 GPIO_ACTIVE_HIGH>;

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

  vin-supply = <&pp1800>;
 };

 pp3300_disp: regulator-pp3300-disp {
  compatible = "regulator-fixed";
  regulator-name = "pp3300_disp";
  pinctrl-names = "default";
  pinctrl-0 = <&pp3300_disp_en>;

  enable-active-high;
  gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;

  startup-delay-us = <2000>;
  vin-supply = <&pp3300>;
 };

 /* EC turns on w/ pp3300_usb_en_l */
 pp3300_usb: regulator-pp3300 {
 };

 /* gpio is shared with pp1800_pcie and pinctrl is set there */
 pp3300_wifi_bt: regulator-pp3300-wifi-bt {
  compatible = "regulator-fixed";
  regulator-name = "pp3300_wifi_bt";

  enable-active-high;
  gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>;

  vin-supply = <&pp3300>;
 };

 /*
  * This is a bit of a hack. The WiFi module should be reset at least
  * 1ms after its regulators have ramped up (max rampup time is ~7ms).
  * With some stretching of the imagination, we can call the 1.8V
  * regulator a supply.
  */
 wlan_pd_n: regulator-wlan-pd-n {
  compatible = "regulator-fixed";
  regulator-name = "wlan_pd_n";
  pinctrl-names = "default";
  pinctrl-0 = <&wlan_module_reset_l>;

  enable-active-high;
  gpio = <&gpio1 11 GPIO_ACTIVE_HIGH>;

  vin-supply = <&pp1800_pcie>;
 };

 backlight: backlight {
  compatible = "pwm-backlight";
  enable-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
  power-supply = <&pp3300_disp>;
  pinctrl-names = "default";
  pinctrl-0 = <&bl_en>;
 };

 gpio_keys: gpio-keys {
  compatible = "gpio-keys";
  pinctrl-names = "default";
  pinctrl-0 = <&bt_host_wake_l>;

  wake_on_bt: key-wake-on-bt {
   label = "Wake-on-Bluetooth";
   gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
   linux,code = <KEY_WAKEUP>;
   wakeup-source;
  };
 };
};

&ppvar_bigcpu {
 min-slew-down-rate = <225>;
 ovp-threshold-percent = <16>;
};

&ppvar_litcpu {
 min-slew-down-rate = <225>;
 ovp-threshold-percent = <16>;
};

&ppvar_gpu {
 min-slew-down-rate = <225>;
 ovp-threshold-percent = <16>;
};

&cdn_dp {
 extcon = <&usbc_extcon0>, <&usbc_extcon1>;
};

&dmc {
 center-supply = <&ppvar_centerlogic>;
 rockchip,pd-idle-dis-freq-hz = <800000000>;
 rockchip,sr-idle-dis-freq-hz = <800000000>;
 rockchip,sr-mc-gate-idle-dis-freq-hz = <800000000>;
};

&edp {
 status = "okay";

 /*
  * eDP PHY/clk don't sync reliably at anything other than 24 MHz. Only
  * set this here, because rk3399-gru.dtsi ensures we can generate this
  * off GPLL=600MHz, whereas some other RK3399 boards may not.
  */
 assigned-clocks = <&cru PCLK_EDP>;
 assigned-clock-rates = <24000000>;
};

&edp_out {
 edp_out_panel: endpoint {
  remote-endpoint = <&panel_in_edp>;
 };
};

&gpio0 {
 gpio-line-names = /* GPIO0 A 0-7 */
     "AP_RTC_CLK_IN",
     "EC_AP_INT_L",
     "PP1800_AUDIO_EN",
     "BT_HOST_WAKE_L",
     "WLAN_MODULE_PD_L",
     "H1_INT_OD_L",
     "CENTERLOGIC_DVS_PWM",
     "",

     /* GPIO0 B 0-4 */
     "WIFI_HOST_WAKE_L",
     "PMUIO2_33_18_L",
     "PP1500_EN",
     "AP_EC_WARM_RESET_REQ",
     "PP3000_EN";
};

&gpio1 {
 gpio-line-names = /* GPIO1 A 0-7 */
     "",
     "",
     "SPK_PA_EN",
     "",
     "TRACKPAD_INT_L",
     "AP_EC_S3_S0_L",
     "AP_EC_OVERTEMP",
     "AP_SPI_FLASH_MISO",

     /* GPIO1 B 0-7 */
     "AP_SPI_FLASH_MOSI_R",
     "AP_SPI_FLASH_CLK_R",
     "AP_SPI_FLASH_CS_L_R",
     "WLAN_MODULE_RESET_L",
     "WIFI_DISABLE_L",
     "MIC_INT",
     "",
     "AP_I2C_DVS_SDA",

     /* GPIO1 C 0-7 */
     "AP_I2C_DVS_SCL",
     "AP_BL_EN",
     /*
      * AP_FLASH_WP is crossystem ABI. Schematics call it
      * AP_FW_WP or CPU1_FW_WP, depending on the variant.
      */
     "AP_FLASH_WP",
     "LITCPU_DVS_PWM",
     "AP_I2C_AUDIO_SDA",
     "AP_I2C_AUDIO_SCL",
     "",
     "HEADSET_INT_L";
};

&gpio2 {
 gpio-line-names = /* GPIO2 A 0-7 */
     "",
     "",
     "SD_IO_PWR_EN",
     "",
     "",
     "",
     "",
     "",

     /* GPIO2 B 0-7 */
     "",
     "",
     "",
     "",
     "",
     "",
     "",
     "",

     /* GPIO2 C 0-7 */
     "",
     "",
     "",
     "",
     "AP_SPI_EC_MISO",
     "AP_SPI_EC_MOSI",
     "AP_SPI_EC_CLK",
     "AP_SPI_EC_CS_L",

     /* GPIO2 D 0-4 */
     "BT_DEV_WAKE_L",
     "",
     "WIFI_PCIE_CLKREQ_L",
     "WIFI_PERST_L",
     "SD_PWR_3000_1800_L";
};

&gpio3 {
 gpio-line-names = /* GPIO3 A 0-7 */
     "",
     "",
     "",
     "",
     "AP_SPI_TPM_MISO",
     "AP_SPI_TPM_MOSI_R",
     "AP_SPI_TPM_CLK_R",
     "AP_SPI_TPM_CS_L_R",

     /* GPIO3 B 0-7 */
     "EC_IN_RW",
     "",
     "AP_I2C_TP_SDA",
     "AP_I2C_TP_SCL",
     "AP_I2C_TP_PU_EN",
     "TOUCH_INT_L",
     "",
     "",

     /* GPIO3 C 0-7 */
     "",
     "",
     "",
     "",
     "",
     "",
     "",
     "",

     /* GPIO3 D 0-7 */
     "I2S0_SCLK",
     "I2S0_LRCK_RX",
     "I2S0_LRCK_TX",
     "I2S0_SDI_0",
     "I2S0_SDI_1",
     "",
     "I2S0_SDO_1",
     "I2S0_SDO_0";
};

&gpio4 {
 gpio-line-names = /* GPIO4 A 0-7 */
     "I2S_MCLK",
     "AP_I2C_MIC_SDA",
     "AP_I2C_MIC_SCL",
     "",
     "",
     "",
     "",
     "",

     /* GPIO4 B 0-7 */
     "",
     "",
     "",
     "",
     "",
     "",
     "",
     "",

     /* GPIO4 C 0-7 */
     "AP_I2C_TS_SDA",
     "AP_I2C_TS_SCL",
     "GPU_DVS_PWM",
     "UART_DBG_TX_AP_RX",
     "UART_AP_TX_DBG_RX",
     "",
     "BIGCPU_DVS_PWM",
     "EDP_HPD_3V0",

     /* GPIO4 D 0-5 */
     "SD_CARD_DET_L",
     "USB_DP_HPD",
     "TOUCH_RESET_L",
     "PP3300_DISP_EN",
     "",
     "SD_SLOT_PWR_EN";
};

ap_i2c_mic: &i2c1 {
 status = "okay";

 clock-frequency = <400000>;

 /* These are relatively safe rise/fall times */
 i2c-scl-falling-time-ns = <50>;
 i2c-scl-rising-time-ns = <300>;

 headsetcodec: rt5514@57 {
  compatible = "realtek,rt5514";
  reg = <0x57>;
  realtek,dmic-init-delay-ms = <20>;
 };
};

ap_i2c_tp: &i2c5 {
 status = "okay";

 clock-frequency = <400000>;

 /* These are relatively safe rise/fall times */
 i2c-scl-falling-time-ns = <50>;
 i2c-scl-rising-time-ns = <300>;

 /*
  * Note strange pullup enable.  Apparently this avoids leakage but
  * still allows us to get nice 4.7K pullups for high speed i2c
  * transfers.  Basically we want the pullup on whenever the ap is
  * alive, so the "en" pin just gets set to output high.
  */
 pinctrl-0 = <&i2c5_xfer &ap_i2c_tp_pu_en>;
};

&cros_ec {
 cros_ec_pwm: pwm {
  compatible = "google,cros-ec-pwm";
  #pwm-cells = <1>;
 };

 usbc_extcon1: extcon1 {
  compatible = "google,extcon-usbc-cros-ec";
  google,usb-port-id = <1>;
 };
};

&sound {
 rockchip,codec = <&max98357a &headsetcodec
     &codec &wacky_spi_audio &cdn_dp>;
};

&spi2 {
 wacky_spi_audio: spi2@0 {
  compatible = "realtek,rt5514";
  reg = <0>;
  interrupt-parent = <&gpio1>;
  interrupts = <13 IRQ_TYPE_LEVEL_HIGH>;
  pinctrl-names = "default";
  pinctrl-0 = <&mic_int>;
  /* May run faster once verified. */
  spi-max-frequency = <10000000>;
  wakeup-source;
 };
};

&pci_rootport {
 mvl_wifi: wifi@0,0 {
  compatible = "pci1b4b,2b42";
  reg = <0x0000 0x0 0x0 0x0 0x0>;
  interrupt-parent = <&gpio0>;
  interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
  pinctrl-names = "default";
  pinctrl-0 = <&wlan_host_wake_l>;
  wakeup-source;
 };
};

&tcphy1 {
 status = "okay";
 extcon = <&usbc_extcon1>;
};

&u2phy1 {
 status = "okay";
};

&usb_host0_ehci {
 status = "okay";
};

&usb_host1_ehci {
 status = "okay";
};

&usb_host1_ohci {
 status = "okay";
};

&usbdrd3_1 {
 status = "okay";
 extcon = <&usbc_extcon1>;
};

&usbdrd_dwc3_1 {
 status = "okay";
 dr_mode = "host";
};

&pinctrl {
 discretes {
  pp1500_en: pp1500-en {
   rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO
      &pcfg_pull_none>;
  };

  pp1800_audio_en: pp1800-audio-en {
   rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO
      &pcfg_pull_down>;
  };

  pp3000_en: pp3000-en {
   rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO
      &pcfg_pull_none>;
  };

  pp3300_disp_en: pp3300-disp-en {
   rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO
      &pcfg_pull_none>;
  };

  wlan_module_pd_l: wlan-module-pd-l {
   rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO
      &pcfg_pull_down>;
  };
 };
};

&wifi {
 wifi_perst_l: wifi-perst-l {
  rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
 };

 wlan_host_wake_l: wlan-host-wake-l {
  /* Kevin has an external pull up, but Bob does not */
  rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
 };
};

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