Back to home page

OSCL-LXR

 
 

    


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 };