arm64: dts: qcom: sm8450: add initial device tree for Samsung Galaxy S22

Adds new device support for the Samsung Galaxy S22 (SM-S901E) phone

Working features:
- simple-framebuffer
- side buttons
- storage
- usb

Signed-off-by: Eric Gonçalves <ghatto404@gmail.com>
Link: https://lore.kernel.org/r/20250615204438.1130213-2-ghatto404@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
This commit is contained in:
Eric Gonçalves
2025-06-15 20:44:38 +00:00
committed by Bjorn Andersson
parent ebfe5797ac
commit 46952305d2

View File

@@ -0,0 +1,364 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2025, Eric Gonçalves <ghatto404@gmail.com>
*/
/dts-v1/;
#include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include "sm8450.dtsi"
#include "pm8350.dtsi"
#include "pm8350b.dtsi"
#include "pm8350c.dtsi"
#include "pm8450.dtsi"
#include "pmk8350.dtsi"
#include "pmr735a.dtsi"
/delete-node/ &xbl_ramdump_mem;
/delete-node/ &xbl_sc_mem;
/delete-node/ &adsp_mem;
/delete-node/ &rmtfs_mem;
/delete-node/ &mte_mem;
/delete-node/ &trusted_apps_mem;
/delete-node/ &trusted_apps_ext_mem;
/ {
chassis-type = "handset";
model = "Samsung Galaxy S22 (SM-S901E)";
compatible = "samsung,r0q", "qcom,sm8450";
chosen {
#address-cells = <2>;
#size-cells = <2>;
ranges;
bootargs = "clk_ignore_unused pd_ignore_unused";
linux,initrd-start = <0x00 0xb6915000>;
linux,initrd-end = <0x00 0xb7fff22c>;
stdout-path = "serial0:115200n8";
framebuffer: framebuffer@b8000000 {
compatible = "simple-framebuffer";
reg = <0x0 0xb8000000 0x0 0x2b00000>;
width = <1080>;
height = <2340>;
stride = <(1080 * 4)>;
format = "a8r8g8b8";
};
};
gpio-keys {
compatible = "gpio-keys";
autorepeat;
pinctrl-0 = <&vol_up_n>;
pinctrl-names = "default";
key-vol-up {
label = "Volume Up";
linux,code = <KEY_VOLUMEUP>;
gpios = <&pm8350_gpios 6 GPIO_ACTIVE_LOW>;
debounce-interval = <15>;
};
};
memory {
ddr_device_type = <0x08>;
device_type = "memory";
reg = <0x00 0x80000000 0x00 0x6a000000 0x00 0xf1c00000 0x00 0xe400000 0x08 0x00 0x00 0x3ab00000 0x08 0x40000000 0x01 0x40000000 0x08 0x3b100000 0x00 0x1e00000>;
};
reserved-memory {
xbl_ramdump_mem: memory@a6b80000 {
reg = <0x0 0xa7d00000 0x0 0x300000>;
no-map;
};
xbl_sc_mem: memory@a6e00000 {
reg = <0x0 0xa6e00000 0x0 0x40000>;
no-map;
};
adsp_mem: memory@9fd00000 {
reg = <0x0 0x84500000 0x0 0x3b00000>;
no-map;
};
rmtfs_mem: memory@fe200000 {
compatible = "qcom,rmtfs-mem";
reg = <0x0 0xfe200000 0x0 0x280000>;
reg-names = "rmtfs";
qcom,client-id = <1>;
no-map;
qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
};
splash_region@b8000000 {
reg = <0x0 0xb8000000 0x0 0x2b00000>;
no-map;
};
};
vph_pwr: vph-pwr-regulator {
compatible = "regulator-fixed";
regulator-name = "vph_pwr";
regulator-min-microvolt = <3700000>;
regulator-max-microvolt = <3700000>;
regulator-always-on;
regulator-boot-on;
};
};
&tlmm {
gpio-reserved-ranges = <36 4>, <50 1>, <93 1>;
dsi_default: dsi-default-state {
pins = "gpio6";
function = "gpio";
drive-strength = <8>;
bias-disable;
};
dsi_suspend: dsi-suspend-state {
pins = "gpio6";
function = "gpio";
drive-strength = <2>;
bias-pull-down;
};
};
&apps_rsc {
regulators-0 {
compatible = "qcom,pm8350-rpmh-regulators";
qcom,pmic-id = "b";
vdd-s1-supply = <&vph_pwr>;
vdd-s2-supply = <&vph_pwr>;
vdd-s3-supply = <&vph_pwr>;
vdd-s4-supply = <&vph_pwr>;
vdd-s5-supply = <&vph_pwr>;
vdd-s6-supply = <&vph_pwr>;
vdd-s7-supply = <&vph_pwr>;
vdd-s8-supply = <&vph_pwr>;
vdd-s9-supply = <&vph_pwr>;
vdd-s10-supply = <&vph_pwr>;
vdd-s11-supply = <&vph_pwr>;
vdd-s12-supply = <&vph_pwr>;
vdd-l1-l4-supply = <&vreg_s11b_0p95>;
vdd-l2-l7-supply = <&vreg_bob>;
vdd-l3-l5-supply = <&vreg_bob>;
vdd-l6-l9-l10-supply = <&vreg_s12b_1p25>;
vdd-l8-supply = <&vreg_s2h_0p95>;
vreg_s11b_0p95: smps11 {
regulator-name = "vreg_s11b_0p95";
regulator-min-microvolt = <848000>;
regulator-max-microvolt = <1104000>;
};
vreg_s12b_1p25: smps12 {
regulator-name = "vreg_s12b_1p25";
regulator-min-microvolt = <1224000>;
regulator-max-microvolt = <1400000>;
};
vreg_l1b_0p91: ldo1 {
regulator-name = "vreg_l1b_0p91";
regulator-min-microvolt = <912000>;
regulator-max-microvolt = <920000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l2b_3p07: ldo2 {
regulator-name = "vreg_l2b_3p07";
regulator-min-microvolt = <3072000>;
regulator-max-microvolt = <3072000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l5b_0p88: ldo5 {
regulator-name = "vreg_l5b_0p88";
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <888000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6b_1p2: ldo6 {
regulator-name = "vreg_l6b_1p2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7b_2p5: ldo7 {
regulator-name = "vreg_l7b_2p5";
regulator-min-microvolt = <2504000>;
regulator-max-microvolt = <2504000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l9b_1p2: ldo9 {
regulator-name = "vreg_l9b_1p2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
regulators-1 {
compatible = "qcom,pm8350c-rpmh-regulators";
qcom,pmic-id = "c";
vdd-s1-supply = <&vph_pwr>;
vdd-s2-supply = <&vph_pwr>;
vdd-s3-supply = <&vph_pwr>;
vdd-s4-supply = <&vph_pwr>;
vdd-s5-supply = <&vph_pwr>;
vdd-s6-supply = <&vph_pwr>;
vdd-s7-supply = <&vph_pwr>;
vdd-s8-supply = <&vph_pwr>;
vdd-s9-supply = <&vph_pwr>;
vdd-s10-supply = <&vph_pwr>;
vdd-l1-l12-supply = <&vreg_bob>;
vdd-l2-l8-supply = <&vreg_bob>;
vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob>;
vdd-l6-l9-l11-supply = <&vreg_bob>;
vdd-bob-supply = <&vph_pwr>;
vreg_s1c_1p86: smps1 {
regulator-name = "vreg_s1c_1p86";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2024000>;
};
vreg_bob: bob {
regulator-name = "vreg_bob";
regulator-min-microvolt = <3008000>;
regulator-max-microvolt = <3960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
};
vreg_l1c_1p8: ldo1 {
regulator-name = "vreg_l1c_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
regulators-2 {
compatible = "qcom,pm8450-rpmh-regulators";
qcom,pmic-id = "h";
vdd-s1-supply = <&vph_pwr>;
vdd-s2-supply = <&vph_pwr>;
vdd-s3-supply = <&vph_pwr>;
vdd-s4-supply = <&vph_pwr>;
vdd-s5-supply = <&vph_pwr>;
vdd-s6-supply = <&vph_pwr>;
vdd-l2-supply = <&vreg_bob>;
vdd-l3-supply = <&vreg_bob>;
vdd-l4-supply = <&vreg_bob>;
vreg_s2h_0p95: smps2 {
regulator-name = "vreg_s2h_0p95";
regulator-min-microvolt = <848000>;
regulator-max-microvolt = <1104000>;
};
};
regulators-3 {
compatible = "qcom,pmr735a-rpmh-regulators";
qcom,pmic-id = "e";
vdd-s1-supply = <&vph_pwr>;
vdd-s2-supply = <&vph_pwr>;
vdd-s3-supply = <&vph_pwr>;
vdd-l1-l2-supply = <&vreg_s2e_0p85>;
vdd-l3-supply = <&vreg_s1e_1p25>;
vdd-l4-supply = <&vreg_s1c_1p86>;
vdd-l5-l6-supply = <&vreg_s1c_1p86>;
vdd-l7-bob-supply = <&vreg_bob>;
vreg_s1e_1p25: smps1 {
regulator-name = "vreg_s1e_1p25";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1296000>;
};
vreg_s2e_0p85: smps2 {
regulator-name = "vreg_s2e_0p85";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1040000>;
};
};
};
&pm8350_gpios {
vol_up_n: vol-up-n-state {
pins = "gpio6";
function = "normal";
power-source = <1>;
input-enable;
};
};
&pon_pwrkey {
status = "okay";
};
&pon_resin {
status = "okay";
linux,code = <KEY_VOLUMEDOWN>;
};
&usb_1 {
qcom,select-utmi-as-pipe-clk;
status = "okay";
};
&usb_1_dwc3 {
dr_mode = "peripheral";
maximum-speed = "high-speed";
phys = <&usb_1_hsphy>;
phy-names = "usb2-phy";
};
&usb_1_hsphy {
status = "okay";
vdda-pll-supply = <&vreg_l5b_0p88>;
vdda18-supply = <&vreg_l1c_1p8>;
vdda33-supply = <&vreg_l2b_3p07>;
};
&ufs_mem_hc {
reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>;
vcc-supply = <&vreg_l7b_2p5>;
vcc-max-microamp = <1100000>;
vccq-supply = <&vreg_l9b_1p2>;
vccq-max-microamp = <1200000>;
vccq2-supply = <&vreg_l9b_1p2>;
vccq2-max-microamp = <1200000>;
vdd-hba-supply = <&vreg_l9b_1p2>;
status = "okay";
};
&ufs_mem_phy {
status = "okay";
vdda-phy-supply = <&vreg_l5b_0p88>;
vdda-pll-supply = <&vreg_l6b_1p2>;
};