Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/arch/arm64/boot/dts/exynos/google/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 8 kB image not shown  

Quelle  gs101-pixel-common.dtsi   Sprache: unbekannt

 
Spracherkennung für: .dtsi vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Device Tree nodes common for all GS101-based Pixel
 *
 * Copyright 2021-2023 Google LLC
 * Copyright 2023 Linaro Ltd - <peter.griffin@linaro.org>
 */

/dts-v1/;

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/usb/pd.h>
#include "gs101-pinctrl.h"
#include "gs101.dtsi"

/ {
 aliases {
  serial0 = &serial_0;
 };

 chosen {
  /* Bootloader expects bootargs specified otherwise it crashes */
  bootargs = "";
  stdout-path = &serial_0;

  /* Use display framebuffer as setup by bootloader */
  framebuffer0: framebuffer-0 {
   compatible = "simple-framebuffer";
   memory-region = <&cont_splash_mem>;
   /* format properties to be added by actual board */
   status = "disabled";
  };
 };

 gpio-keys {
  compatible = "gpio-keys";
  pinctrl-0 = <&key_voldown>, <&key_volup>, <&key_power>;
  pinctrl-names = "default";

  button-vol-down {
   label = "KEY_VOLUMEDOWN";
   linux,code = <KEY_VOLUMEDOWN>;
   gpios = <&gpa7 3 GPIO_ACTIVE_LOW>;
   wakeup-source;
  };

  button-vol-up {
   label = "KEY_VOLUMEUP";
   linux,code = <KEY_VOLUMEUP>;
   gpios = <&gpa8 1 GPIO_ACTIVE_LOW>;
   wakeup-source;
  };

  button-power {
   label = "KEY_POWER";
   linux,code = <KEY_POWER>;
   gpios = <&gpa10 1 GPIO_ACTIVE_LOW>;
   wakeup-source;
  };
 };

 reboot-mode {
  compatible = "nvmem-reboot-mode";
  nvmem-cells = <&nvmem_reboot_mode>;
  nvmem-cell-names = "reboot-mode";
  mode-bootloader = <0x800000fc>;
  mode-charge = <0x8000000a>;
  mode-dm-verity-device-corrupted = <0x80000050>;
  mode-fastboot = <0x800000fa>;
  mode-reboot-ab-update = <0x80000052>;
  mode-recovery = <0x800000ff>;
  mode-rescue = <0x800000f9>;
  mode-shutdown-thermal = <0x80000051>;
  mode-shutdown-thermal-battery = <0x80000051>;
 };

 /* TODO: Remove this once PMIC is implemented  */
 reg_placeholder: regulator-0 {
  compatible = "regulator-fixed";
  regulator-name = "placeholder_reg";
 };

 /* TODO: Remove this once S2MPG11 slave PMIC is implemented  */
 ufs_0_fixed_vcc_reg: regulator-1 {
  compatible = "regulator-fixed";
  regulator-name = "ufs-vcc";
  gpio = <&gpp0 1 GPIO_ACTIVE_HIGH>;
  regulator-boot-on;
  enable-active-high;
 };

 reserved-memory {
  cont_splash_mem: splash@fac00000 {
   /* size to be updated by actual board */
   reg = <0x0 0xfac00000 0x0>;
   no-map;
   status = "disabled";
  };
 };
};

&acpm_ipc {
 pmic {
  compatible = "samsung,s2mpg10-pmic";
  interrupts-extended = <&gpa0 6 IRQ_TYPE_LEVEL_LOW>;
  pinctrl-names = "default";
  pinctrl-0 = <&pmic_int>;
  system-power-controller;
  wakeup-source;

  regulators {
  };
 };
};

&ext_24_5m {
 clock-frequency = <24576000>;
};

&ext_200m {
 clock-frequency = <200000000>;
};

&hsi2c_8 {
 status = "okay";

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

&hsi2c_12 {
 status = "okay";
 /* TODO: add the devices once drivers exist */

 usb-typec@25 {
  compatible = "maxim,max77759-tcpci", "maxim,max33359";
  reg = <0x25>;
  interrupts-extended = <&gpa8 2 IRQ_TYPE_LEVEL_LOW>;
  pinctrl-0 = <&typec_int>;
  pinctrl-names = "default";

  connector {
   compatible = "usb-c-connector";
   label = "USB-C";
   data-role = "dual";
   power-role = "dual";
   self-powered;
   try-power-role = "sink";
   op-sink-microwatt = <2600000>;
   slow-charger-loop;
   /*
    * max77759 operating in reverse boost mode (0xA) can
    * source up to 1.5A while extboost can only do ~1A.
    * Since extboost is the primary path, advertise 900mA.
    */
   source-pdos = <PDO_FIXED(5000, 900,
       (PDO_FIXED_SUSPEND
        | PDO_FIXED_USB_COMM
        | PDO_FIXED_DATA_SWAP
        | PDO_FIXED_DUAL_ROLE))>;
   sink-pdos = <PDO_FIXED(5000, 3000,
            (PDO_FIXED_DATA_SWAP
      | PDO_FIXED_USB_COMM
      | PDO_FIXED_HIGHER_CAP
      | PDO_FIXED_DUAL_ROLE))
         PDO_FIXED(9000, 2200, 0)
         PDO_PPS_APDO(5000, 11000, 3000)>;
   sink-vdos = <VDO_IDH(1, 1, IDH_PTYPE_PERIPH, 0,
          IDH_PTYPE_DFP_HOST, 2, 0x18d1)
         VDO_CERT(0x0)
         VDO_PRODUCT(0x4ee1, 0x0)
         VDO_UFP(UFP_VDO_VER1_2,
          (DEV_USB2_CAPABLE
           | DEV_USB3_CAPABLE),
          UFP_RECEPTACLE, 0,
          AMA_VCONN_NOT_REQ, 0,
          UFP_ALTMODE_NOT_SUPP,
          UFP_USB32_GEN1)
         /* padding */ 0
         VDO_DFP(DFP_VDO_VER1_1,
          (HOST_USB2_CAPABLE
           | HOST_USB3_CAPABLE),
          DFP_RECEPTACLE, 0)>;
   sink-vdos-v1 = <VDO_IDH(1, 1, IDH_PTYPE_PERIPH, 0,
      0, 0, 0x18d1)
     VDO_CERT(0x0)
     VDO_PRODUCT(0x4ee1, 0x0)>;
   /*
    * Until bootloader is updated to set those two when
    * console is enabled, we disable PD here.
    */
   pd-disable;
   typec-power-opmode = "default";

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

    port@0 {
     reg = <0>;

     usbc0_orien_sw: endpoint {
      remote-endpoint = <&usbdrd31_phy_orien_switch>;
     };
    };

    port@1 {
     reg = <1>;

     usbc0_role_sw: endpoint {
      remote-endpoint = <&usbdrd31_dwc3_role_switch>;
     };
    };
   };
  };
 };

 pmic@66 {
  compatible = "maxim,max77759";
  reg = <0x66>;

  pinctrl-0 = <&if_pmic_int>;
  pinctrl-names = "default";
  interrupts-extended = <&gpa8 3 IRQ_TYPE_LEVEL_LOW>;

  interrupt-controller;
  #interrupt-cells = <2>;

  gpio {
   compatible = "maxim,max77759-gpio";

   gpio-controller;
   #gpio-cells = <2>;
   /*
    * "Human-readable name [SIGNAL_LABEL]" where the
    * latter comes from the schematic
    */
   gpio-line-names = "OTG boost [OTG_BOOST_EN]",
       "max20339 IRQ [MW_OVP_INT_L]";

   interrupt-controller;
   #interrupt-cells = <2>;
  };

  nvmem-0 {
   compatible = "maxim,max77759-nvmem";

   nvmem-layout {
    compatible = "fixed-layout";
    #address-cells = <1>;
    #size-cells = <1>;

    nvmem_reboot_mode: reboot-mode@0 {
     reg = <0x0 0x4>;
    };

    boot-reason@4 {
     reg = <0x4 0x4>;
    };

    shutdown-user-flag@8 {
     reg = <0x8 0x1>;
    };

    rsoc@a {
     reg = <0xa 0x2>;
    };
   };
  };
 };
};

&pinctrl_far_alive {
 key_voldown: key-voldown-pins {
  samsung,pins = "gpa7-3";
  samsung,pin-function = <GS101_PIN_FUNC_EINT>;
  samsung,pin-pud = <GS101_PIN_PULL_NONE>;
  samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
 };

 key_volup: key-volup-pins {
  samsung,pins = "gpa8-1";
  samsung,pin-function = <GS101_PIN_FUNC_EINT>;
  samsung,pin-pud = <GS101_PIN_PULL_NONE>;
  samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
 };

 typec_int: typec-int-pins {
  samsung,pins = "gpa8-2";
  samsung,pin-function = <GS101_PIN_FUNC_EINT>;
  samsung,pin-pud = <GS101_PIN_PULL_UP>;
  samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
 };

 if_pmic_int: if-pmic-int-pins {
  samsung,pins = "gpa8-3";
  samsung,pin-function = <GS101_PIN_FUNC_EINT>;
  samsung,pin-pud = <GS101_PIN_PULL_UP>;
  samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
 };
};

&pinctrl_gpio_alive {
 pmic_int: pmic-int-pins {
  samsung,pins = "gpa0-6";
  samsung,pin-function = <GS101_PIN_FUNC_EINT>;
  samsung,pin-pud = <GS101_PIN_PULL_NONE>;
 };

 key_power: key-power-pins {
  samsung,pins = "gpa10-1";
  samsung,pin-function = <GS101_PIN_FUNC_EINT>;
  samsung,pin-pud = <GS101_PIN_PULL_NONE>;
  samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
 };
};

&serial_0 {
 status = "okay";
};

&ufs_0 {
 status = "okay";
 vcc-supply = <&ufs_0_fixed_vcc_reg>;
};

&ufs_0_phy {
 status = "okay";
};

&usbdrd31 {
 vdd10-supply = <®_placeholder>;
 vdd33-supply = <®_placeholder>;
 status = "okay";
};

&usbdrd31_dwc3 {
 dr_mode = "otg";
 usb-role-switch;
 role-switch-default-mode = "peripheral";
 maximum-speed = "super-speed-plus";
 status = "okay";

 port {
  usbdrd31_dwc3_role_switch: endpoint {
   remote-endpoint = <&usbc0_role_sw>;
  };
 };
};

&usbdrd31_phy {
 orientation-switch;
 /* TODO: Update these once PMIC is implemented */
 pll-supply = <®_placeholder>;
 dvdd-usb20-supply = <®_placeholder>;
 vddh-usb20-supply = <®_placeholder>;
 vdd33-usb20-supply = <®_placeholder>;
 vdda-usbdp-supply = <®_placeholder>;
 vddh-usbdp-supply = <®_placeholder>;
 status = "okay";

 port {
  usbdrd31_phy_orien_switch: endpoint {
   remote-endpoint = <&usbc0_orien_sw>;
  };
 };
};

&usi_uart {
 samsung,clkreq-on; /* needed for UART mode */
 status = "okay";
};

&usi8 {
 samsung,mode = <USI_MODE_I2C>;
 status = "okay";
};

&usi12 {
 samsung,mode = <USI_MODE_I2C>;
 status = "okay";
};

&watchdog_cl0 {
 timeout-sec = <30>;
 status = "okay";
};

[ Dauer der Verarbeitung: 0.30 Sekunden  ]