924 lines
22 KiB
Devicetree
924 lines
22 KiB
Devicetree
// 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/regulator/samsung,s2mpg10-regulator.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>;
|
|
vci-supply = <&s2mpg10_ldo22m>;
|
|
vddi-supply = <&s2mpg11_bucka>;
|
|
/* 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-1 {
|
|
compatible = "samsung,s2mpg10-pmic";
|
|
interrupts-extended = <&gpa0 6 IRQ_TYPE_LEVEL_LOW>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pmic_int>;
|
|
system-power-controller;
|
|
wakeup-source;
|
|
|
|
vinl1m-supply = <&s2mpg11_buck3s>;
|
|
vinl2m-supply = <&s2mpg11_buck3s>;
|
|
vinl3m-supply = <&s2mpg10_buck8m>;
|
|
vinl4m-supply = <&s2mpg10_buck9m>;
|
|
vinl5m-supply = <&s2mpg10_buck9m>;
|
|
vinl6m-supply = <&s2mpg10_buck9m>;
|
|
vinl7m-supply = <&s2mpg11_buck6s>;
|
|
vinl8m-supply = <&s2mpg11_buck6s>;
|
|
vinl9m-supply = <&s2mpg11_buck7s>;
|
|
vinl10m-supply = <&s2mpg11_buck7s>;
|
|
vinl11m-supply = <&s2mpg11_buck7s>;
|
|
vinl12m-supply = <&s2mpg11_bucka>;
|
|
vinl13m-supply = <&s2mpg11_bucka>;
|
|
vinl14m-supply = <&s2mpg11_buckboost>;
|
|
vinl15m-supply = <&s2mpg11_buckboost>;
|
|
|
|
clocks {
|
|
compatible = "samsung,s2mpg10-clk";
|
|
#clock-cells = <1>;
|
|
clock-output-names = "rtc32k_ap", "peri32k1",
|
|
"peri32k2";
|
|
};
|
|
|
|
regulators {
|
|
buck1m {
|
|
regulator-name = "vdd_mif";
|
|
regulator-min-microvolt = <450000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-ramp-delay = <6250>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG10_EXTCTRL_PWREN_MIF>;
|
|
};
|
|
|
|
buck2m {
|
|
regulator-name = "vdd_cpucl2";
|
|
regulator-min-microvolt = <450000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-ramp-delay = <12500>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG10_EXTCTRL_CPUCL2_EN2>;
|
|
};
|
|
|
|
buck3m {
|
|
regulator-name = "vdd_cpucl1";
|
|
regulator-min-microvolt = <450000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-ramp-delay = <12500>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG10_EXTCTRL_CPUCL1_EN2>;
|
|
};
|
|
|
|
buck4m {
|
|
regulator-name = "vdd_cpucl0";
|
|
regulator-min-microvolt = <450000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-ramp-delay = <12500>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG10_EXTCTRL_PWREN>;
|
|
};
|
|
|
|
buck5m {
|
|
regulator-name = "vdd_int";
|
|
regulator-min-microvolt = <450000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-ramp-delay = <12500>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG10_EXTCTRL_PWREN_MIF>;
|
|
};
|
|
|
|
buck6m {
|
|
regulator-name = "vdd_cpucl2_m";
|
|
regulator-min-microvolt = <450000>;
|
|
regulator-max-microvolt = <1350000>;
|
|
regulator-ramp-delay = <12500>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG10_EXTCTRL_CPUCL2_EN2>;
|
|
};
|
|
|
|
buck7m {
|
|
/* GPU */
|
|
regulator-name = "vdd_int_m";
|
|
regulator-min-microvolt = <450000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-ramp-delay = <6250>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG10_EXTCTRL_PWREN_MIF>;
|
|
};
|
|
|
|
s2mpg10_buck8m: buck8m {
|
|
regulator-name = "lldo2";
|
|
regulator-min-microvolt = <450000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-ramp-delay = <6250>;
|
|
};
|
|
|
|
s2mpg10_buck9m: buck9m {
|
|
regulator-name = "lldo3";
|
|
regulator-min-microvolt = <450000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-ramp-delay = <6250>;
|
|
};
|
|
|
|
buck10m {
|
|
regulator-name = "vdd_tpu";
|
|
regulator-min-microvolt = <450000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-ramp-delay = <12500>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG10_EXTCTRL_TPU_EN>;
|
|
};
|
|
|
|
ldo1m {
|
|
/* ALIVE, AOC PLL */
|
|
regulator-name = "vdd_l1m_alive";
|
|
regulator-min-microvolt = <700000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-ramp-delay = <6250>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
ldo2m {
|
|
/* lots, DDR */
|
|
regulator-name = "vdd_l2m_alive";
|
|
regulator-min-microvolt = <1600000>;
|
|
regulator-max-microvolt = <1950000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
ldo3m {
|
|
/* AVDD: MIPI CSI & DSI, PLL: CPUCL SHARED TPU UFS */
|
|
regulator-name = "ldo3m";
|
|
regulator-min-microvolt = <725000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG10_EXTCTRL_PWREN_MIF>;
|
|
};
|
|
|
|
ldo4m {
|
|
/* AVDD: MIPI CSI & DSI, UFS, OTP, TS_SUB, TS_TOP, XOTP */
|
|
regulator-name = "ldo4m";
|
|
regulator-min-microvolt = <1600000>;
|
|
regulator-max-microvolt = <1950000>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG10_EXTCTRL_PWREN_MIF>;
|
|
};
|
|
|
|
ldo5m {
|
|
/* VDD: ADD, AVDD: TCXO & TCXO_FAR */
|
|
regulator-name = "avdd075_tcxo";
|
|
regulator-min-microvolt = <725000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG10_EXTCTRL_TCXO_ON>;
|
|
};
|
|
|
|
ldo6m {
|
|
/* PLL CPUCL & MIFx, UFS clk, MIPI DSI */
|
|
regulator-name = "vdd_pll";
|
|
regulator-min-microvolt = <725000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG10_EXTCTRL_PWREN_MIF>;
|
|
};
|
|
|
|
ldo7m {
|
|
/* IO (HSI (USB)) */
|
|
regulator-name = "vdd_hsi";
|
|
regulator-min-microvolt = <450000>;
|
|
regulator-max-microvolt = <950000>;
|
|
regulator-ramp-delay = <6250>;
|
|
/*
|
|
* TODO: link to HSI power domain, without this,
|
|
* Linux hangs during USB access.
|
|
*/
|
|
regulator-always-on;
|
|
};
|
|
|
|
ldo8m {
|
|
regulator-name = "vdd085_usb";
|
|
regulator-min-microvolt = <725000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
ldo9m {
|
|
regulator-name = "vdd18_usb";
|
|
regulator-min-microvolt = <1600000>;
|
|
regulator-max-microvolt = <1950000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
ldo10m {
|
|
regulator-name = "vdd33_usb";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <3350000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
ldo11m {
|
|
regulator-name = "vdd_cpucl1_m";
|
|
regulator-min-microvolt = <700000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-ramp-delay = <6250>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG10_EXTCTRL_CPUCL1_EN2>;
|
|
};
|
|
|
|
ldo12m {
|
|
regulator-name = "vdd_cpucl0_m";
|
|
regulator-min-microvolt = <700000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-ramp-delay = <6250>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG10_EXTCTRL_PWREN>;
|
|
};
|
|
|
|
ldo13m {
|
|
regulator-name = "vdd_tpu_m";
|
|
regulator-min-microvolt = <450000>;
|
|
regulator-max-microvolt = <950000>;
|
|
regulator-ramp-delay = <12500>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG10_EXTCTRL_TPU_EN>;
|
|
};
|
|
|
|
/* ldo14m is board specific */
|
|
|
|
ldo15m {
|
|
regulator-name = "vdd_slc_m";
|
|
regulator-min-microvolt = <450000>;
|
|
regulator-max-microvolt = <950000>;
|
|
regulator-ramp-delay = <12500>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
ldo16m {
|
|
regulator-name = "vdd085_pcie0";
|
|
regulator-min-microvolt = <725000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
};
|
|
|
|
ldo17m {
|
|
regulator-name = "vdd085_pcie1";
|
|
regulator-min-microvolt = <725000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
};
|
|
|
|
ldo18m {
|
|
regulator-name = "vdd18_pcie0";
|
|
regulator-min-microvolt = <1600000>;
|
|
regulator-max-microvolt = <1950000>;
|
|
};
|
|
|
|
ldo19m {
|
|
regulator-name = "vdd18_pcie1";
|
|
regulator-min-microvolt = <1600000>;
|
|
regulator-max-microvolt = <1950000>;
|
|
};
|
|
|
|
ldo20m {
|
|
/* DMIC, memory power */
|
|
regulator-name = "vddq_aoc_pdm";
|
|
regulator-min-microvolt = <1600000>;
|
|
regulator-max-microvolt = <1950000>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG10_EXTCTRL_LDO20M_EN2>;
|
|
};
|
|
|
|
ldo21m {
|
|
/* Dauntless */
|
|
regulator-name = "vdd_dtls";
|
|
regulator-min-microvolt = <2500000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
s2mpg10_ldo22m: ldo22m {
|
|
/* display */
|
|
regulator-name = "vci_disp";
|
|
regulator-min-microvolt = <3025000>;
|
|
regulator-max-microvolt = <3025000>;
|
|
};
|
|
|
|
/* ldo23m & ldo24m are unused */
|
|
|
|
ldo25m {
|
|
/* touch */
|
|
regulator-name = "dvdd_tsp";
|
|
regulator-min-microvolt = <1600000>;
|
|
regulator-max-microvolt = <1950000>;
|
|
};
|
|
|
|
ldo26m {
|
|
/* touch */
|
|
regulator-name = "avdd_ts";
|
|
regulator-min-microvolt = <2500000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
};
|
|
|
|
ldo27m {
|
|
/* under-display fingerprint scanner */
|
|
regulator-name = "avdd_udfps";
|
|
regulator-min-microvolt = <2500000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
};
|
|
|
|
/*
|
|
*ldo28m .. ldo30m are unused, ldo31m is board specific
|
|
*/
|
|
};
|
|
};
|
|
|
|
pmic-2 {
|
|
compatible = "samsung,s2mpg11-pmic";
|
|
interrupts-extended = <&gpa0 7 IRQ_TYPE_LEVEL_LOW>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&sub_pmic_int>;
|
|
wakeup-source;
|
|
|
|
vinl1s-supply = <&s2mpg10_buck8m>;
|
|
vinl2s-supply = <&s2mpg11_buck6s>;
|
|
vinl3s-supply = <&s2mpg11_buck7s>;
|
|
vinl4s-supply = <&s2mpg11_buck7s>;
|
|
vinl5s-supply = <&s2mpg11_buckboost>;
|
|
vinl6s-supply = <&s2mpg11_buckboost>;
|
|
vinbd-supply = <&s2mpg11_buckboost>;
|
|
|
|
regulators {
|
|
buck1s {
|
|
/* multimedia */
|
|
regulator-name = "vdd_cam";
|
|
regulator-min-microvolt = <450000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-ramp-delay = <12500>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG11_EXTCTRL_PWREN_MIF>;
|
|
};
|
|
|
|
buck2s {
|
|
regulator-name = "vdd_g3d";
|
|
regulator-min-microvolt = <450000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-ramp-delay = <12500>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG11_EXTCTRL_G3D_EN>;
|
|
};
|
|
|
|
s2mpg11_buck3s: buck3s {
|
|
regulator-name = "lldo1";
|
|
regulator-min-microvolt = <450000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-ramp-delay = <6250>;
|
|
};
|
|
|
|
buck4s {
|
|
/* DDR */
|
|
regulator-name = "vdd2h_mem";
|
|
regulator-min-microvolt = <450000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-ramp-delay = <6250>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
buck5s {
|
|
/* DDR */
|
|
regulator-name = "vddq_mem";
|
|
regulator-min-microvolt = <400000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-ramp-delay = <6250>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG11_EXTCTRL_PWREN_MIF>;
|
|
};
|
|
|
|
s2mpg11_buck6s: buck6s {
|
|
regulator-name = "lldo4";
|
|
regulator-min-microvolt = <1000000>;
|
|
regulator-max-microvolt = <1500000>;
|
|
regulator-ramp-delay = <6250>;
|
|
};
|
|
|
|
s2mpg11_buck7s: buck7s {
|
|
regulator-name = "mldo";
|
|
regulator-min-microvolt = <1500000>;
|
|
regulator-max-microvolt = <2200000>;
|
|
regulator-ramp-delay = <6250>;
|
|
};
|
|
|
|
buck8s {
|
|
regulator-name = "vdd_g3d_l2";
|
|
regulator-min-microvolt = <450000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-ramp-delay = <12500>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG11_EXTCTRL_G3D_EN>;
|
|
};
|
|
|
|
buck9s {
|
|
regulator-name = "vdd_aoc";
|
|
regulator-min-microvolt = <450000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-ramp-delay = <12500>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
buck10s {
|
|
/* DDR */
|
|
regulator-name = "vdd2l_mem";
|
|
regulator-min-microvolt = <450000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-ramp-delay = <6250>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
buckd {
|
|
regulator-name = "vcc_ufs";
|
|
regulator-min-microvolt = <2400000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-ramp-delay = <6250>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG11_EXTCTRL_UFS_EN>;
|
|
};
|
|
|
|
s2mpg11_bucka: bucka {
|
|
/* lots, IO */
|
|
regulator-name = "bucka";
|
|
regulator-min-microvolt = <1700000>;
|
|
regulator-max-microvolt = <2100000>;
|
|
regulator-ramp-delay = <6250>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
s2mpg11_buckboost: buckboost {
|
|
regulator-name = "buckboost";
|
|
regulator-min-microvolt = <3000000>;
|
|
regulator-max-microvolt = <3600000>;
|
|
};
|
|
|
|
ldo1s {
|
|
regulator-name = "vdd_g3d_m";
|
|
regulator-min-microvolt = <450000>;
|
|
regulator-max-microvolt = <950000>;
|
|
regulator-ramp-delay = <6250>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG11_EXTCTRL_G3D_EN>;
|
|
};
|
|
|
|
ldo2s {
|
|
regulator-name = "vdd_aoc_ret";
|
|
regulator-min-microvolt = <450000>;
|
|
regulator-max-microvolt = <950000>;
|
|
regulator-ramp-delay = <12500>;
|
|
regulator-always-on;
|
|
};
|
|
|
|
/* ldo3s & ldo5s are unused, ldo4s is board specific */
|
|
|
|
ldo6s {
|
|
/* sensors */
|
|
regulator-name = "vdd_prox";
|
|
regulator-min-microvolt = <2500000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
};
|
|
|
|
ldo7s {
|
|
/* sensors */
|
|
regulator-name = "vdd_sensors";
|
|
regulator-min-microvolt = <1600000>;
|
|
regulator-max-microvolt = <1950000>;
|
|
};
|
|
|
|
ldo8s {
|
|
regulator-name = "vccq_ufs";
|
|
regulator-min-microvolt = <1130400>;
|
|
regulator-max-microvolt = <1281200>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG11_EXTCTRL_UFS_EN>;
|
|
};
|
|
|
|
ldo9s {
|
|
regulator-name = "vdd_gnss";
|
|
regulator-min-microvolt = <725000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
};
|
|
|
|
ldo10s {
|
|
regulator-name = "vdd_gnss_rf";
|
|
regulator-min-microvolt = <1600000>;
|
|
regulator-max-microvolt = <1950000>;
|
|
};
|
|
|
|
ldo11s {
|
|
regulator-name = "vdd_gnss_aux";
|
|
regulator-min-microvolt = <1600000>;
|
|
regulator-max-microvolt = <1950000>;
|
|
};
|
|
|
|
/* ldo12s is unused */
|
|
|
|
ldo13s {
|
|
regulator-name = "vddq_mmc";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <3350000>;
|
|
regulator-always-on;
|
|
samsung,ext-control = <S2MPG11_EXTCTRL_LDO13S_EN>;
|
|
};
|
|
|
|
/* ldo14s is board specific, ldo15s is unused */
|
|
};
|
|
};
|
|
};
|
|
|
|
&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>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
fuel-gauge@36 {
|
|
compatible = "maxim,max77759-fg";
|
|
reg = <0x36>;
|
|
|
|
pinctrl-0 = <&if_pmic_fg_int>;
|
|
pinctrl-names = "default";
|
|
interrupts-extended = <&gpa9 3 IRQ_TYPE_LEVEL_LOW>;
|
|
|
|
shunt-resistor-micro-ohms = <5000>;
|
|
};
|
|
|
|
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>;
|
|
};
|
|
|
|
sub_pmic_int: sub-pmic-int-pins {
|
|
samsung,pins = "gpa0-7";
|
|
samsung,pin-function = <GS101_PIN_FUNC_EINT>;
|
|
samsung,pin-pud = <GS101_PIN_PULL_NONE>;
|
|
};
|
|
|
|
if_pmic_fg_int: if-pmic-fg-int-pins {
|
|
samsung,pins = "gpa9-3";
|
|
samsung,pin-function = <GS101_PIN_FUNC_EINT>;
|
|
samsung,pin-pud = <GS101_PIN_PULL_UP>;
|
|
samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
|
|
};
|
|
|
|
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";
|
|
};
|