xref: /linux/arch/arm64/boot/dts/qcom/sm8250-samsung-common.dtsi (revision 4f38da1f027ea2c9f01bb71daa7a299c191b6940)
1*194c7636SEric Gonçalves// SPDX-License-Identifier: GPL-2.0-only
2*194c7636SEric Gonçalves
3*194c7636SEric Gonçalves/dts-v1/;
4*194c7636SEric Gonçalves
5*194c7636SEric Gonçalves#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
6*194c7636SEric Gonçalves#include "sm8250.dtsi"
7*194c7636SEric Gonçalves#include "pm8150.dtsi"
8*194c7636SEric Gonçalves
9*194c7636SEric Gonçalves/ {
10*194c7636SEric Gonçalves	chosen {
11*194c7636SEric Gonçalves		#address-cells = <2>;
12*194c7636SEric Gonçalves		#size-cells = <2>;
13*194c7636SEric Gonçalves		ranges;
14*194c7636SEric Gonçalves
15*194c7636SEric Gonçalves		framebuffer: framebuffer@9c000000 {
16*194c7636SEric Gonçalves			compatible = "simple-framebuffer";
17*194c7636SEric Gonçalves			reg = <0x0 0x9c000000 0x0 0x2300000>;
18*194c7636SEric Gonçalves			width = <1080>;
19*194c7636SEric Gonçalves			height = <2400>;
20*194c7636SEric Gonçalves			stride = <(1080 * 4)>;
21*194c7636SEric Gonçalves			format = "a8r8g8b8";
22*194c7636SEric Gonçalves		};
23*194c7636SEric Gonçalves	};
24*194c7636SEric Gonçalves
25*194c7636SEric Gonçalves	gpio_keys: gpio-keys {
26*194c7636SEric Gonçalves		compatible = "gpio-keys";
27*194c7636SEric Gonçalves
28*194c7636SEric Gonçalves		pinctrl-names = "default";
29*194c7636SEric Gonçalves		pinctrl-0 = <&vol_up_n>;
30*194c7636SEric Gonçalves
31*194c7636SEric Gonçalves		key-vol-up {
32*194c7636SEric Gonçalves			label = "Volume Up";
33*194c7636SEric Gonçalves			gpios = <&pm8150_gpios 3 GPIO_ACTIVE_LOW>;
34*194c7636SEric Gonçalves			linux,code = <KEY_VOLUMEUP>;
35*194c7636SEric Gonçalves			debounce-interval = <15>;
36*194c7636SEric Gonçalves			linux,can-disable;
37*194c7636SEric Gonçalves			wakeup-source;
38*194c7636SEric Gonçalves		};
39*194c7636SEric Gonçalves	};
40*194c7636SEric Gonçalves
41*194c7636SEric Gonçalves	reserved-memory {
42*194c7636SEric Gonçalves		cont_splash_mem: memory@9c000000 {
43*194c7636SEric Gonçalves			reg = <0x0 0x9c000000 0x0 0x2300000>;
44*194c7636SEric Gonçalves			no-map;
45*194c7636SEric Gonçalves		};
46*194c7636SEric Gonçalves
47*194c7636SEric Gonçalves		ramoops@9fa00000 {
48*194c7636SEric Gonçalves			compatible = "ramoops";
49*194c7636SEric Gonçalves			reg = <0x0 0x9fa00000 0x0 0x100000>;
50*194c7636SEric Gonçalves			record-size = <0x4000>;
51*194c7636SEric Gonçalves			console-size = <0x40000>;
52*194c7636SEric Gonçalves			ftrace-size = <0x40000>;
53*194c7636SEric Gonçalves			pmsg-size = <0x40000>;
54*194c7636SEric Gonçalves			no-map;
55*194c7636SEric Gonçalves		};
56*194c7636SEric Gonçalves	};
57*194c7636SEric Gonçalves
58*194c7636SEric Gonçalves	vph_pwr: vph-pwr-regulator {
59*194c7636SEric Gonçalves		compatible = "regulator-fixed";
60*194c7636SEric Gonçalves		regulator-name = "vph_pwr";
61*194c7636SEric Gonçalves		regulator-min-microvolt = <3700000>;
62*194c7636SEric Gonçalves		regulator-max-microvolt = <3700000>;
63*194c7636SEric Gonçalves	};
64*194c7636SEric Gonçalves};
65*194c7636SEric Gonçalves
66*194c7636SEric Gonçalves&apps_rsc {
67*194c7636SEric Gonçalves	regulators-0 {
68*194c7636SEric Gonçalves		compatible = "qcom,pm8150-rpmh-regulators";
69*194c7636SEric Gonçalves		qcom,pmic-id = "a";
70*194c7636SEric Gonçalves
71*194c7636SEric Gonçalves		vdd-s1-supply = <&vph_pwr>;
72*194c7636SEric Gonçalves		vdd-s2-supply = <&vph_pwr>;
73*194c7636SEric Gonçalves		vdd-s3-supply = <&vph_pwr>;
74*194c7636SEric Gonçalves		vdd-s4-supply = <&vph_pwr>;
75*194c7636SEric Gonçalves		vdd-s5-supply = <&vph_pwr>;
76*194c7636SEric Gonçalves		vdd-s6-supply = <&vph_pwr>;
77*194c7636SEric Gonçalves		vdd-s7-supply = <&vph_pwr>;
78*194c7636SEric Gonçalves		vdd-s8-supply = <&vph_pwr>;
79*194c7636SEric Gonçalves		vdd-s9-supply = <&vph_pwr>;
80*194c7636SEric Gonçalves		vdd-s10-supply = <&vph_pwr>;
81*194c7636SEric Gonçalves
82*194c7636SEric Gonçalves		vreg_s4a_1p8: smps4 {
83*194c7636SEric Gonçalves			regulator-name = "vreg_s4a_1p8";
84*194c7636SEric Gonçalves			regulator-min-microvolt = <1800000>;
85*194c7636SEric Gonçalves			regulator-max-microvolt = <1920000>;
86*194c7636SEric Gonçalves			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
87*194c7636SEric Gonçalves			regulator-allow-set-load;
88*194c7636SEric Gonçalves			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
89*194c7636SEric Gonçalves						   RPMH_REGULATOR_MODE_HPM>;
90*194c7636SEric Gonçalves		};
91*194c7636SEric Gonçalves
92*194c7636SEric Gonçalves		vreg_l2a_3p1: ldo2 {
93*194c7636SEric Gonçalves			regulator-name = "vreg_l2a_3p1";
94*194c7636SEric Gonçalves			regulator-min-microvolt = <3072000>;
95*194c7636SEric Gonçalves			regulator-max-microvolt = <3072000>;
96*194c7636SEric Gonçalves			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
97*194c7636SEric Gonçalves		};
98*194c7636SEric Gonçalves
99*194c7636SEric Gonçalves		vreg_l5a_0p88: ldo5 {
100*194c7636SEric Gonçalves			regulator-name = "vreg_l5a_0p88";
101*194c7636SEric Gonçalves			regulator-min-microvolt = <880000>;
102*194c7636SEric Gonçalves			regulator-max-microvolt = <880000>;
103*194c7636SEric Gonçalves			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
104*194c7636SEric Gonçalves		};
105*194c7636SEric Gonçalves
106*194c7636SEric Gonçalves		vreg_l6a_1p2: ldo6 {
107*194c7636SEric Gonçalves			regulator-name = "vreg_l6a_1p2";
108*194c7636SEric Gonçalves			regulator-min-microvolt = <1200000>;
109*194c7636SEric Gonçalves			regulator-max-microvolt = <1200000>;
110*194c7636SEric Gonçalves			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
111*194c7636SEric Gonçalves			regulator-allow-set-load;
112*194c7636SEric Gonçalves			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
113*194c7636SEric Gonçalves						   RPMH_REGULATOR_MODE_HPM>;
114*194c7636SEric Gonçalves		};
115*194c7636SEric Gonçalves
116*194c7636SEric Gonçalves		vreg_l9a_1p2: ldo9 {
117*194c7636SEric Gonçalves			regulator-name = "vreg_l9a_1p2";
118*194c7636SEric Gonçalves			regulator-min-microvolt = <1200000>;
119*194c7636SEric Gonçalves			regulator-max-microvolt = <1200000>;
120*194c7636SEric Gonçalves			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
121*194c7636SEric Gonçalves		};
122*194c7636SEric Gonçalves
123*194c7636SEric Gonçalves		vreg_l12a_1p8: ldo12 {
124*194c7636SEric Gonçalves			regulator-name = "vreg_l12a_1p8";
125*194c7636SEric Gonçalves			regulator-min-microvolt = <1800000>;
126*194c7636SEric Gonçalves			regulator-max-microvolt = <1800000>;
127*194c7636SEric Gonçalves			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
128*194c7636SEric Gonçalves		};
129*194c7636SEric Gonçalves
130*194c7636SEric Gonçalves		vreg_l17a_3p0: ldo17 {
131*194c7636SEric Gonçalves			regulator-name = "vreg_l17a_3p0";
132*194c7636SEric Gonçalves			regulator-min-microvolt = <2496000>;
133*194c7636SEric Gonçalves			regulator-max-microvolt = <3008000>;
134*194c7636SEric Gonçalves			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
135*194c7636SEric Gonçalves			regulator-allow-set-load;
136*194c7636SEric Gonçalves			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
137*194c7636SEric Gonçalves						   RPMH_REGULATOR_MODE_HPM>;
138*194c7636SEric Gonçalves		};
139*194c7636SEric Gonçalves	};
140*194c7636SEric Gonçalves};
141*194c7636SEric Gonçalves
142*194c7636SEric Gonçalves&pm8150_gpios {
143*194c7636SEric Gonçalves	vol_up_n: vol-up-n-state {
144*194c7636SEric Gonçalves		pins = "gpio3";
145*194c7636SEric Gonçalves		function = "normal";
146*194c7636SEric Gonçalves		power-source = <0>;
147*194c7636SEric Gonçalves		input-enable;
148*194c7636SEric Gonçalves		bias-pull-up;
149*194c7636SEric Gonçalves	};
150*194c7636SEric Gonçalves};
151*194c7636SEric Gonçalves
152*194c7636SEric Gonçalves&pon_pwrkey {
153*194c7636SEric Gonçalves	status = "okay";
154*194c7636SEric Gonçalves};
155*194c7636SEric Gonçalves
156*194c7636SEric Gonçalves&pon_resin {
157*194c7636SEric Gonçalves	linux,code = <KEY_VOLUMEDOWN>;
158*194c7636SEric Gonçalves	status = "okay";
159*194c7636SEric Gonçalves};
160*194c7636SEric Gonçalves
161*194c7636SEric Gonçalves&tlmm {
162*194c7636SEric Gonçalves	gpio-reserved-ranges = <40 4>; /* I2C (Unused) */
163*194c7636SEric Gonçalves};
164*194c7636SEric Gonçalves
165*194c7636SEric Gonçalves&usb_1 {
166*194c7636SEric Gonçalves	/* Limit to USB 2.0 for now */
167*194c7636SEric Gonçalves	qcom,select-utmi-as-pipe-clk;
168*194c7636SEric Gonçalves
169*194c7636SEric Gonçalves	status = "okay";
170*194c7636SEric Gonçalves};
171*194c7636SEric Gonçalves
172*194c7636SEric Gonçalves&usb_1_dwc3 {
173*194c7636SEric Gonçalves	dr_mode = "peripheral";
174*194c7636SEric Gonçalves	maximum-speed = "high-speed";
175*194c7636SEric Gonçalves	/* Remove USB3 phy */
176*194c7636SEric Gonçalves	phys = <&usb_1_hsphy>;
177*194c7636SEric Gonçalves	phy-names = "usb2-phy";
178*194c7636SEric Gonçalves};
179*194c7636SEric Gonçalves
180*194c7636SEric Gonçalves&usb_1_hsphy {
181*194c7636SEric Gonçalves	vdda-pll-supply = <&vreg_l5a_0p88>;
182*194c7636SEric Gonçalves	vdda18-supply = <&vreg_l12a_1p8>;
183*194c7636SEric Gonçalves	vdda33-supply = <&vreg_l2a_3p1>;
184*194c7636SEric Gonçalves
185*194c7636SEric Gonçalves	status = "okay";
186*194c7636SEric Gonçalves};
187*194c7636SEric Gonçalves
188*194c7636SEric Gonçalves&ufs_mem_hc {
189*194c7636SEric Gonçalves	vcc-supply = <&vreg_l17a_3p0>;
190*194c7636SEric Gonçalves	vcc-max-microamp = <800000>;
191*194c7636SEric Gonçalves	vccq-supply = <&vreg_l6a_1p2>;
192*194c7636SEric Gonçalves	vccq-max-microamp = <800000>;
193*194c7636SEric Gonçalves	vccq2-supply = <&vreg_s4a_1p8>;
194*194c7636SEric Gonçalves	vccq2-max-microamp = <800000>;
195*194c7636SEric Gonçalves
196*194c7636SEric Gonçalves	status = "okay";
197*194c7636SEric Gonçalves};
198*194c7636SEric Gonçalves
199*194c7636SEric Gonçalves&ufs_mem_phy {
200*194c7636SEric Gonçalves	vdda-phy-supply = <&vreg_l5a_0p88>;
201*194c7636SEric Gonçalves	vdda-pll-supply = <&vreg_l9a_1p2>;
202*194c7636SEric Gonçalves
203*194c7636SEric Gonçalves	status = "okay";
204*194c7636SEric Gonçalves};
205