0001 // SPDX-License-Identifier: BSD-3-Clause
0002 /*
0003 * Copyright (c) 2021, The Linux Foundation. All rights reserved.
0004 * Copyright (c) 2022, Linaro Limited
0005 */
0006
0007 /dts-v1/;
0008
0009 #include <dt-bindings/gpio/gpio.h>
0010 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
0011
0012 #include "sc8280xp.dtsi"
0013 #include "sc8280xp-pmics.dtsi"
0014
0015 / {
0016 model = "Lenovo ThinkPad X13s";
0017 compatible = "lenovo,thinkpad-x13s", "qcom,sc8280xp";
0018
0019 backlight {
0020 compatible = "pwm-backlight";
0021 pwms = <&pmc8280c_lpg 3 1000000>;
0022 enable-gpios = <&pmc8280_1_gpios 8 GPIO_ACTIVE_HIGH>;
0023 power-supply = <&vreg_edp_bl>;
0024
0025 pinctrl-names = "default";
0026 pinctrl-0 = <&edp_bl_en>, <&edp_bl_pwm>;
0027 };
0028
0029 vreg_edp_bl: regulator-edp-bl {
0030 compatible = "regulator-fixed";
0031
0032 regulator-name = "VBL9";
0033 regulator-min-microvolt = <3600000>;
0034 regulator-max-microvolt = <3600000>;
0035
0036 gpio = <&pmc8280_1_gpios 9 GPIO_ACTIVE_HIGH>;
0037 enable-active-high;
0038
0039 pinctrl-names = "default";
0040 pinctrl-0 = <&edp_bl_reg_en>;
0041
0042 regulator-boot-on;
0043 };
0044
0045 vreg_misc_3p3: regulator-misc-3p3 {
0046 compatible = "regulator-fixed";
0047
0048 regulator-name = "VCC3B";
0049 regulator-min-microvolt = <3300000>;
0050 regulator-max-microvolt = <3300000>;
0051
0052 gpio = <&pmc8280_1_gpios 1 GPIO_ACTIVE_HIGH>;
0053 enable-active-high;
0054
0055 pinctrl-names = "default";
0056 pinctrl-0 = <&misc_3p3_reg_en>;
0057
0058 regulator-boot-on;
0059 regulator-always-on;
0060 };
0061 };
0062
0063 &apps_rsc {
0064 pmc8280-1-rpmh-regulators {
0065 compatible = "qcom,pm8350-rpmh-regulators";
0066 qcom,pmic-id = "b";
0067
0068 vdd-l3-l5-supply = <&vreg_s11b>;
0069
0070 vreg_s11b: smps11 {
0071 regulator-name = "vreg_s11b";
0072 regulator-min-microvolt = <1272000>;
0073 regulator-max-microvolt = <1272000>;
0074 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0075 };
0076
0077 vreg_l3b: ldo3 {
0078 regulator-name = "vreg_l3b";
0079 regulator-min-microvolt = <1200000>;
0080 regulator-max-microvolt = <1200000>;
0081 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0082 regulator-allow-set-load;
0083 regulator-boot-on;
0084 };
0085
0086 vreg_l4b: ldo4 {
0087 regulator-name = "vreg_l4b";
0088 regulator-min-microvolt = <912000>;
0089 regulator-max-microvolt = <912000>;
0090 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0091 regulator-allow-set-load;
0092 };
0093
0094 vreg_l6b: ldo6 {
0095 regulator-name = "vreg_l6b";
0096 regulator-min-microvolt = <880000>;
0097 regulator-max-microvolt = <880000>;
0098 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0099 regulator-allow-set-load;
0100 regulator-boot-on;
0101 regulator-always-on; // FIXME: VDD_A_EDP_0_0P9
0102 };
0103 };
0104
0105 pmc8280c-rpmh-regulators {
0106 compatible = "qcom,pm8350c-rpmh-regulators";
0107 qcom,pmic-id = "c";
0108
0109 vreg_l1c: ldo1 {
0110 regulator-name = "vreg_l1c";
0111 regulator-min-microvolt = <1800000>;
0112 regulator-max-microvolt = <1800000>;
0113 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0114 regulator-allow-set-load;
0115 };
0116
0117 vreg_l12c: ldo12 {
0118 regulator-name = "vreg_l12c";
0119 regulator-min-microvolt = <1800000>;
0120 regulator-max-microvolt = <1800000>;
0121 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0122 regulator-allow-set-load;
0123 };
0124
0125 vreg_l13c: ldo13 {
0126 regulator-name = "vreg_l13c";
0127 regulator-min-microvolt = <3072000>;
0128 regulator-max-microvolt = <3072000>;
0129 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0130 regulator-allow-set-load;
0131 };
0132 };
0133
0134 pmc8280-2-rpmh-regulators {
0135 compatible = "qcom,pm8350-rpmh-regulators";
0136 qcom,pmic-id = "d";
0137
0138 vdd-l1-l4-supply = <&vreg_s11b>;
0139
0140 vreg_l3d: ldo3 {
0141 regulator-name = "vreg_l3d";
0142 regulator-min-microvolt = <1200000>;
0143 regulator-max-microvolt = <1200000>;
0144 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0145 regulator-allow-set-load;
0146 };
0147
0148 vreg_l4d: ldo4 {
0149 regulator-name = "vreg_l4d";
0150 regulator-min-microvolt = <1200000>;
0151 regulator-max-microvolt = <1200000>;
0152 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0153 regulator-allow-set-load;
0154 };
0155
0156 vreg_l7d: ldo7 {
0157 regulator-name = "vreg_l7d";
0158 regulator-min-microvolt = <3072000>;
0159 regulator-max-microvolt = <3072000>;
0160 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0161 regulator-allow-set-load;
0162 };
0163
0164 vreg_l9d: ldo9 {
0165 regulator-name = "vreg_l9d";
0166 regulator-min-microvolt = <912000>;
0167 regulator-max-microvolt = <912000>;
0168 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0169 regulator-allow-set-load;
0170 };
0171 };
0172 };
0173
0174 &pmc8280c_lpg {
0175 status = "okay";
0176 };
0177
0178 &pmk8280_pon_pwrkey {
0179 status = "okay";
0180 };
0181
0182 &qup0 {
0183 status = "okay";
0184 };
0185
0186 &qup0_i2c4 {
0187 clock-frequency = <400000>;
0188
0189 pinctrl-names = "default";
0190 pinctrl-0 = <&qup0_i2c4_default>, <&ts0_default>;
0191
0192 status = "okay";
0193
0194 /* FIXME: verify */
0195 touchscreen@10 {
0196 compatible = "hid-over-i2c";
0197 reg = <0x10>;
0198 hid-descr-addr = <0x1>;
0199 interrupts-extended = <&tlmm 175 IRQ_TYPE_LEVEL_LOW>;
0200 vdd-supply = <&vreg_misc_3p3>;
0201 };
0202 };
0203
0204 &qup1 {
0205 status = "okay";
0206 };
0207
0208 &qup2 {
0209 status = "okay";
0210 };
0211
0212 &qup2_i2c5 {
0213 clock-frequency = <400000>;
0214
0215 pinctrl-names = "default";
0216 pinctrl-0 = <&qup2_i2c5_default>, <&kybd_default>, <&tpad_default>;
0217
0218 status = "okay";
0219
0220 touchpad@2c {
0221 compatible = "hid-over-i2c";
0222 reg = <0x2c>;
0223 hid-descr-addr = <0x20>;
0224 interrupts-extended = <&tlmm 182 IRQ_TYPE_LEVEL_LOW>;
0225 vdd-supply = <&vreg_misc_3p3>;
0226 };
0227
0228 keyboard@68 {
0229 compatible = "hid-over-i2c";
0230 reg = <0x68>;
0231 hid-descr-addr = <0x1>;
0232 interrupts-extended = <&tlmm 104 IRQ_TYPE_LEVEL_LOW>;
0233 vdd-supply = <&vreg_misc_3p3>;
0234 };
0235 };
0236
0237 &remoteproc_adsp {
0238 firmware-name = "qcom/sc8280xp/LENOVO/21BX/qcadsp8280.mbn";
0239
0240 status = "okay";
0241 };
0242
0243 &remoteproc_nsp0 {
0244 firmware-name = "qcom/sc8280xp/LENOVO/21BX/qccdsp8280.mbn";
0245
0246 status = "okay";
0247 };
0248
0249 &usb_0 {
0250 status = "okay";
0251 };
0252
0253 &usb_0_dwc3 {
0254 /* TODO: Define USB-C connector properly */
0255 dr_mode = "host";
0256 };
0257
0258 &usb_0_hsphy {
0259 vdda-pll-supply = <&vreg_l9d>;
0260 vdda18-supply = <&vreg_l1c>;
0261 vdda33-supply = <&vreg_l7d>;
0262
0263 status = "okay";
0264 };
0265
0266 &usb_0_qmpphy {
0267 vdda-phy-supply = <&vreg_l9d>;
0268 vdda-pll-supply = <&vreg_l4d>;
0269
0270 status = "okay";
0271 };
0272
0273 &usb_1 {
0274 status = "okay";
0275 };
0276
0277 &usb_1_dwc3 {
0278 /* TODO: Define USB-C connector properly */
0279 dr_mode = "host";
0280 };
0281
0282 &usb_1_hsphy {
0283 vdda-pll-supply = <&vreg_l4b>;
0284 vdda18-supply = <&vreg_l1c>;
0285 vdda33-supply = <&vreg_l13c>;
0286
0287 status = "okay";
0288 };
0289
0290 &usb_1_qmpphy {
0291 vdda-phy-supply = <&vreg_l4b>;
0292 vdda-pll-supply = <&vreg_l3b>;
0293
0294 status = "okay";
0295 };
0296
0297 &xo_board_clk {
0298 clock-frequency = <38400000>;
0299 };
0300
0301 /* PINCTRL */
0302
0303 &pmc8280_1_gpios {
0304 edp_bl_en: edp-bl-en-state {
0305 pins = "gpio8";
0306 function = "normal";
0307 };
0308
0309 edp_bl_reg_en: edp-bl-reg-en-state {
0310 pins = "gpio9";
0311 function = "normal";
0312 };
0313
0314 misc_3p3_reg_en: misc-3p3-reg-en-state {
0315 pins = "gpio1";
0316 function = "normal";
0317 };
0318 };
0319
0320 &pmc8280c_gpios {
0321 edp_bl_pwm: edp-bl-pwm-state {
0322 pins = "gpio8";
0323 function = "func1";
0324 };
0325 };
0326
0327 &tlmm {
0328 gpio-reserved-ranges = <70 2>, <74 6>, <83 4>, <125 2>, <128 2>, <154 7>;
0329
0330 kybd_default: kybd-default-state {
0331 disable {
0332 pins = "gpio102";
0333 function = "gpio";
0334 output-low;
0335 };
0336
0337 int-n {
0338 pins = "gpio104";
0339 function = "gpio";
0340 bias-disable;
0341 };
0342
0343 reset {
0344 pins = "gpio105";
0345 function = "gpio";
0346 bias-disable;
0347 };
0348 };
0349
0350 qup0_i2c4_default: qup0-i2c4-default-state {
0351 pins = "gpio171", "gpio172";
0352 function = "qup4";
0353 bias-disable;
0354 drive-strength = <16>;
0355 };
0356
0357 qup2_i2c5_default: qup2-i2c5-default-state {
0358 pins = "gpio81", "gpio82";
0359 function = "qup21";
0360 bias-disable;
0361 drive-strength = <16>;
0362 };
0363
0364 tpad_default: tpad-default-state {
0365 int-n {
0366 pins = "gpio182";
0367 function = "gpio";
0368 bias-disable;
0369 };
0370 };
0371
0372 ts0_default: ts0-default-state {
0373 int-n {
0374 pins = "gpio175";
0375 function = "gpio";
0376 bias-pull-up;
0377 };
0378
0379 reset-n {
0380 pins = "gpio99";
0381 function = "gpio";
0382 output-high;
0383 drive-strength = <16>;
0384 };
0385 };
0386 };