#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"
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";
};
};
&acpm_ipc {
- pmic {
+ pmic-1 {
compatible = "samsung,s2mpg10-pmic";
interrupts-extended = <&gpa0 6 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
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>;
};
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 */
};
};
};
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>;
+ };
+
key_power: key-power-pins {
samsung,pins = "gpa10-1";
samsung,pin-function = <GS101_PIN_FUNC_EINT>;