1 // SPDX-License-Identifier: BSD-3-Clause 1 // SPDX-License-Identifier: BSD-3-Clause 2 /* 2 /* 3 * Copyright (c) 2022-2024 Jianhua Lu <lujianhu !! 3 * Copyright (c) 2022, 2023 Jianhua Lu <lujianhua000@gmail.com> 4 */ 4 */ 5 5 6 #include <dt-bindings/arm/qcom,ids.h> 6 #include <dt-bindings/arm/qcom,ids.h> 7 #include <dt-bindings/phy/phy.h> 7 #include <dt-bindings/phy/phy.h> 8 #include <dt-bindings/regulator/qcom,rpmh-regu 8 #include <dt-bindings/regulator/qcom,rpmh-regulator.h> 9 #include <dt-bindings/usb/pd.h> << 10 #include "sm8250.dtsi" 9 #include "sm8250.dtsi" 11 #include "pm8150.dtsi" 10 #include "pm8150.dtsi" 12 #include "pm8150b.dtsi" 11 #include "pm8150b.dtsi" 13 #include "pm8150l.dtsi" 12 #include "pm8150l.dtsi" 14 #include "pm8009.dtsi" 13 #include "pm8009.dtsi" 15 14 16 /* 15 /* 17 * Delete following upstream (sm8250.dtsi) res 16 * Delete following upstream (sm8250.dtsi) reserved 18 * memory mappings which are different on this 17 * memory mappings which are different on this device. 19 */ 18 */ 20 /delete-node/ &adsp_mem; 19 /delete-node/ &adsp_mem; 21 /delete-node/ &cdsp_secure_heap; 20 /delete-node/ &cdsp_secure_heap; 22 /delete-node/ &slpi_mem; 21 /delete-node/ &slpi_mem; 23 /delete-node/ &spss_mem; 22 /delete-node/ &spss_mem; 24 /delete-node/ &xbl_aop_mem; 23 /delete-node/ &xbl_aop_mem; 25 24 26 / { 25 / { 27 chassis-type = "tablet"; !! 26 classis-type = "tablet"; 28 27 29 /* required for bootloader to select c 28 /* required for bootloader to select correct board */ 30 qcom,msm-id = <QCOM_ID_SM8250 0x20001> 29 qcom,msm-id = <QCOM_ID_SM8250 0x20001>; /* SM8250 v2.1 */ 31 qcom,board-id = <0x10008 0>; 30 qcom,board-id = <0x10008 0>; 32 31 33 chosen { 32 chosen { 34 #address-cells = <2>; 33 #address-cells = <2>; 35 #size-cells = <2>; 34 #size-cells = <2>; 36 ranges; 35 ranges; 37 36 38 framebuffer: framebuffer@9c000 37 framebuffer: framebuffer@9c000000 { 39 compatible = "simple-f 38 compatible = "simple-framebuffer"; 40 reg = <0x0 0x9c000000 39 reg = <0x0 0x9c000000 0x0 0x2300000>; 41 width = <1600>; 40 width = <1600>; 42 height = <2560>; 41 height = <2560>; 43 stride = <(1600 * 4)>; 42 stride = <(1600 * 4)>; 44 format = "a8r8g8b8"; 43 format = "a8r8g8b8"; 45 }; 44 }; 46 }; 45 }; 47 46 48 battery_l: battery-l { 47 battery_l: battery-l { 49 compatible = "simple-battery"; 48 compatible = "simple-battery"; 50 voltage-min-design-microvolt = 49 voltage-min-design-microvolt = <3870000>; 51 energy-full-design-microwatt-h 50 energy-full-design-microwatt-hours = <16600000>; 52 charge-full-design-microamp-ho 51 charge-full-design-microamp-hours = <4300000>; 53 }; 52 }; 54 53 55 battery_r: battery-r { 54 battery_r: battery-r { 56 compatible = "simple-battery"; 55 compatible = "simple-battery"; 57 voltage-min-design-microvolt = 56 voltage-min-design-microvolt = <3870000>; 58 energy-full-design-microwatt-h 57 energy-full-design-microwatt-hours = <16600000>; 59 charge-full-design-microamp-ho 58 charge-full-design-microamp-hours = <4300000>; 60 }; 59 }; 61 60 62 bl_vddpos_5p5: bl-vddpos-regulator { 61 bl_vddpos_5p5: bl-vddpos-regulator { 63 compatible = "regulator-fixed" 62 compatible = "regulator-fixed"; 64 regulator-name = "bl_vddpos_5p 63 regulator-name = "bl_vddpos_5p5"; 65 regulator-min-microvolt = <550 64 regulator-min-microvolt = <5500000>; 66 regulator-max-microvolt = <550 65 regulator-max-microvolt = <5500000>; 67 regulator-enable-ramp-delay = 66 regulator-enable-ramp-delay = <233>; 68 gpio = <&tlmm 130 GPIO_ACTIVE_ 67 gpio = <&tlmm 130 GPIO_ACTIVE_HIGH>; 69 enable-active-high; 68 enable-active-high; 70 regulator-boot-on; 69 regulator-boot-on; 71 }; 70 }; 72 71 73 bl_vddneg_5p5: bl-vddneg-regulator { 72 bl_vddneg_5p5: bl-vddneg-regulator { 74 compatible = "regulator-fixed" 73 compatible = "regulator-fixed"; 75 regulator-name = "bl_vddneg_5p 74 regulator-name = "bl_vddneg_5p5"; 76 regulator-min-microvolt = <550 75 regulator-min-microvolt = <5500000>; 77 regulator-max-microvolt = <550 76 regulator-max-microvolt = <5500000>; 78 regulator-enable-ramp-delay = 77 regulator-enable-ramp-delay = <233>; 79 gpio = <&tlmm 131 GPIO_ACTIVE_ 78 gpio = <&tlmm 131 GPIO_ACTIVE_HIGH>; 80 enable-active-high; 79 enable-active-high; 81 regulator-boot-on; 80 regulator-boot-on; 82 }; 81 }; 83 82 84 gpio_keys: gpio-keys { 83 gpio_keys: gpio-keys { 85 compatible = "gpio-keys"; 84 compatible = "gpio-keys"; 86 85 87 pinctrl-names = "default"; 86 pinctrl-names = "default"; 88 pinctrl-0 = <&vol_up_n>; 87 pinctrl-0 = <&vol_up_n>; 89 88 90 key-vol-up { 89 key-vol-up { 91 label = "Volume Up"; 90 label = "Volume Up"; 92 gpios = <&pm8150_gpios 91 gpios = <&pm8150_gpios 6 GPIO_ACTIVE_LOW>; 93 linux,code = <KEY_VOLU 92 linux,code = <KEY_VOLUMEUP>; 94 debounce-interval = <1 93 debounce-interval = <15>; 95 linux,can-disable; 94 linux,can-disable; 96 wakeup-source; 95 wakeup-source; 97 }; 96 }; 98 }; 97 }; 99 98 100 vph_pwr: vph-pwr-regulator { 99 vph_pwr: vph-pwr-regulator { 101 compatible = "regulator-fixed" 100 compatible = "regulator-fixed"; 102 regulator-name = "vph_pwr"; 101 regulator-name = "vph_pwr"; 103 regulator-min-microvolt = <370 102 regulator-min-microvolt = <3700000>; 104 regulator-max-microvolt = <370 103 regulator-max-microvolt = <3700000>; 105 }; 104 }; 106 105 107 /* S6c is really ebi.lvl but it's ther 106 /* S6c is really ebi.lvl but it's there for supply map completeness sake. */ 108 vreg_s6c_0p88: smpc6-regulator { 107 vreg_s6c_0p88: smpc6-regulator { 109 compatible = "regulator-fixed" 108 compatible = "regulator-fixed"; 110 regulator-name = "vreg_s6c_0p8 109 regulator-name = "vreg_s6c_0p88"; 111 regulator-min-microvolt = <880 110 regulator-min-microvolt = <880000>; 112 regulator-max-microvolt = <880 111 regulator-max-microvolt = <880000>; 113 regulator-always-on; 112 regulator-always-on; 114 vin-supply = <&vph_pwr>; 113 vin-supply = <&vph_pwr>; 115 }; 114 }; 116 115 117 reserved-memory { 116 reserved-memory { 118 xbl_aop_mem: xbl-aop@80600000 !! 117 xbl_aop_mem: xbl-aop@80700000 { 119 reg = <0x0 0x80600000 118 reg = <0x0 0x80600000 0x0 0x260000>; 120 no-map; 119 no-map; 121 }; 120 }; 122 121 123 slpi_mem: slpi@88c00000 { 122 slpi_mem: slpi@88c00000 { 124 reg = <0x0 0x88c00000 123 reg = <0x0 0x88c00000 0x0 0x2f00000>; 125 no-map; 124 no-map; 126 }; 125 }; 127 126 128 adsp_mem: adsp@8bb00000 { 127 adsp_mem: adsp@8bb00000 { 129 reg = <0x0 0x8bb00000 128 reg = <0x0 0x8bb00000 0x0 0x2500000>; 130 no-map; 129 no-map; 131 }; 130 }; 132 131 133 spss_mem: spss@8e000000 { 132 spss_mem: spss@8e000000 { 134 reg = <0x0 0x8e000000 133 reg = <0x0 0x8e000000 0x0 0x100000>; 135 no-map; 134 no-map; 136 }; 135 }; 137 136 138 cdsp_secure_heap: cdsp-secure- 137 cdsp_secure_heap: cdsp-secure-heap@8e100000 { 139 reg = <0x0 0x8e100000 138 reg = <0x0 0x8e100000 0x0 0x4600000>; 140 no-map; 139 no-map; 141 }; 140 }; 142 141 143 cont_splash_mem: cont-splash@9 142 cont_splash_mem: cont-splash@9c000000 { 144 reg = <0x0 0x9c000000 143 reg = <0x0 0x9c000000 0x0 0x2300000>; 145 no-map; 144 no-map; 146 }; 145 }; 147 146 148 ramoops@b0000000 { 147 ramoops@b0000000 { 149 compatible = "ramoops" 148 compatible = "ramoops"; 150 reg = <0x0 0xb0000000 149 reg = <0x0 0xb0000000 0x0 0x400000>; 151 record-size = <0x1000> 150 record-size = <0x1000>; 152 console-size = <0x2000 151 console-size = <0x200000>; 153 ecc-size = <16>; 152 ecc-size = <16>; 154 no-map; 153 no-map; 155 }; 154 }; 156 }; 155 }; 157 }; 156 }; 158 157 159 &adsp { 158 &adsp { 160 firmware-name = "qcom/sm8250/xiaomi/el 159 firmware-name = "qcom/sm8250/xiaomi/elish/adsp.mbn"; 161 status = "okay"; 160 status = "okay"; 162 }; 161 }; 163 162 164 &apps_rsc { 163 &apps_rsc { 165 regulators-0 { 164 regulators-0 { 166 compatible = "qcom,pm8150-rpmh 165 compatible = "qcom,pm8150-rpmh-regulators"; 167 qcom,pmic-id = "a"; 166 qcom,pmic-id = "a"; 168 167 169 vdd-s1-supply = <&vph_pwr>; 168 vdd-s1-supply = <&vph_pwr>; 170 vdd-s2-supply = <&vph_pwr>; 169 vdd-s2-supply = <&vph_pwr>; 171 vdd-s3-supply = <&vph_pwr>; 170 vdd-s3-supply = <&vph_pwr>; 172 vdd-s4-supply = <&vph_pwr>; 171 vdd-s4-supply = <&vph_pwr>; 173 vdd-s5-supply = <&vph_pwr>; 172 vdd-s5-supply = <&vph_pwr>; 174 vdd-s6-supply = <&vph_pwr>; 173 vdd-s6-supply = <&vph_pwr>; 175 vdd-s7-supply = <&vph_pwr>; 174 vdd-s7-supply = <&vph_pwr>; 176 vdd-s8-supply = <&vph_pwr>; 175 vdd-s8-supply = <&vph_pwr>; 177 vdd-s9-supply = <&vph_pwr>; 176 vdd-s9-supply = <&vph_pwr>; 178 vdd-s10-supply = <&vph_pwr>; 177 vdd-s10-supply = <&vph_pwr>; 179 vdd-l1-l8-l11-supply = <&vreg_ 178 vdd-l1-l8-l11-supply = <&vreg_s6c_0p88>; 180 vdd-l2-l10-supply = <&vreg_bob 179 vdd-l2-l10-supply = <&vreg_bob>; 181 vdd-l3-l4-l5-l18-supply = <&vr 180 vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p95>; 182 vdd-l6-l9-supply = <&vreg_s8c_ 181 vdd-l6-l9-supply = <&vreg_s8c_1p35>; 183 vdd-l7-l12-l14-l15-supply = <& 182 vdd-l7-l12-l14-l15-supply = <&vreg_s5a_1p9>; 184 vdd-l13-l16-l17-supply = <&vre 183 vdd-l13-l16-l17-supply = <&vreg_bob>; 185 184 186 /* (S1+S2+S3) - cx.lvl (ARC) * 185 /* (S1+S2+S3) - cx.lvl (ARC) */ 187 186 188 vreg_s4a_1p8: smps4 { 187 vreg_s4a_1p8: smps4 { 189 regulator-name = "vreg 188 regulator-name = "vreg_s4a_1p8"; 190 regulator-min-microvol 189 regulator-min-microvolt = <1800000>; 191 regulator-max-microvol 190 regulator-max-microvolt = <1920000>; 192 regulator-initial-mode 191 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 193 regulator-allow-set-lo 192 regulator-allow-set-load; 194 regulator-allowed-mode 193 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 195 194 RPMH_REGULATOR_MODE_HPM>; 196 }; 195 }; 197 196 198 vreg_s5a_1p9: smps5 { 197 vreg_s5a_1p9: smps5 { 199 regulator-name = "vreg 198 regulator-name = "vreg_s5a_1p9"; 200 regulator-min-microvol 199 regulator-min-microvolt = <1900000>; 201 regulator-max-microvol 200 regulator-max-microvolt = <2040000>; 202 regulator-initial-mode 201 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 203 }; 202 }; 204 203 205 vreg_s6a_0p95: smps6 { 204 vreg_s6a_0p95: smps6 { 206 regulator-name = "vreg 205 regulator-name = "vreg_s6a_0p95"; 207 regulator-min-microvol 206 regulator-min-microvolt = <950000>; 208 regulator-max-microvol 207 regulator-max-microvolt = <1128000>; 209 regulator-initial-mode 208 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 210 }; 209 }; 211 210 212 vreg_l2a_3p1: ldo2 { 211 vreg_l2a_3p1: ldo2 { 213 regulator-name = "vreg 212 regulator-name = "vreg_l2a_3p1"; 214 regulator-min-microvol 213 regulator-min-microvolt = <3072000>; 215 regulator-max-microvol 214 regulator-max-microvolt = <3072000>; 216 regulator-initial-mode 215 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 217 }; 216 }; 218 217 219 vreg_l3a_0p9: ldo3 { 218 vreg_l3a_0p9: ldo3 { 220 regulator-name = "vreg 219 regulator-name = "vreg_l3a_0p9"; 221 regulator-min-microvol 220 regulator-min-microvolt = <928000>; 222 regulator-max-microvol 221 regulator-max-microvolt = <932000>; 223 regulator-initial-mode 222 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 224 }; 223 }; 225 224 226 /* L4 - lmx.lvl (ARC) */ 225 /* L4 - lmx.lvl (ARC) */ 227 226 228 vreg_l5a_0p88: ldo5 { 227 vreg_l5a_0p88: ldo5 { 229 regulator-name = "vreg 228 regulator-name = "vreg_l5a_0p88"; 230 regulator-min-microvol 229 regulator-min-microvolt = <880000>; 231 regulator-max-microvol 230 regulator-max-microvolt = <880000>; 232 regulator-initial-mode 231 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 233 }; 232 }; 234 233 235 vreg_l6a_1p2: ldo6 { 234 vreg_l6a_1p2: ldo6 { 236 regulator-name = "vreg 235 regulator-name = "vreg_l6a_1p2"; 237 regulator-min-microvol 236 regulator-min-microvolt = <1200000>; 238 regulator-max-microvol 237 regulator-max-microvolt = <1200000>; 239 regulator-initial-mode 238 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 240 regulator-allow-set-lo 239 regulator-allow-set-load; 241 regulator-allowed-mode 240 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 242 241 RPMH_REGULATOR_MODE_HPM>; 243 }; 242 }; 244 243 245 /* L7 is unused. */ 244 /* L7 is unused. */ 246 245 247 vreg_l9a_1p2: ldo9 { 246 vreg_l9a_1p2: ldo9 { 248 regulator-name = "vreg 247 regulator-name = "vreg_l9a_1p2"; 249 regulator-min-microvol 248 regulator-min-microvolt = <1200000>; 250 regulator-max-microvol 249 regulator-max-microvolt = <1200000>; 251 regulator-initial-mode 250 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 252 }; 251 }; 253 252 254 /* L10 is unused, L11 - lcx.lv 253 /* L10 is unused, L11 - lcx.lvl (ARC) */ 255 254 256 vreg_l12a_1p8: ldo12 { 255 vreg_l12a_1p8: ldo12 { 257 regulator-name = "vreg 256 regulator-name = "vreg_l12a_1p8"; 258 regulator-min-microvol 257 regulator-min-microvolt = <1800000>; 259 regulator-max-microvol 258 regulator-max-microvolt = <1800000>; 260 regulator-initial-mode 259 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 261 }; 260 }; 262 261 263 /* L13 is unused. */ 262 /* L13 is unused. */ 264 263 265 vreg_l14a_1p88: ldo14 { 264 vreg_l14a_1p88: ldo14 { 266 regulator-name = "vreg 265 regulator-name = "vreg_l14a_1p88"; 267 regulator-min-microvol 266 regulator-min-microvolt = <1880000>; 268 regulator-max-microvol 267 regulator-max-microvolt = <1880000>; 269 regulator-initial-mode 268 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 270 }; 269 }; 271 270 272 /* L15 & L16 are unused. */ 271 /* L15 & L16 are unused. */ 273 272 274 vreg_l17a_3p0: ldo17 { 273 vreg_l17a_3p0: ldo17 { 275 regulator-name = "vreg 274 regulator-name = "vreg_l17a_3p0"; 276 regulator-min-microvol 275 regulator-min-microvolt = <2496000>; 277 regulator-max-microvol 276 regulator-max-microvolt = <3008000>; 278 regulator-initial-mode 277 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 279 regulator-allow-set-lo 278 regulator-allow-set-load; 280 regulator-allowed-mode 279 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 281 280 RPMH_REGULATOR_MODE_HPM>; 282 }; 281 }; 283 282 284 vreg_l18a_0p9: ldo18 { 283 vreg_l18a_0p9: ldo18 { 285 regulator-name = "vreg 284 regulator-name = "vreg_l18a_0p9"; 286 regulator-min-microvol 285 regulator-min-microvolt = <800000>; 287 regulator-max-microvol 286 regulator-max-microvolt = <920000>; 288 regulator-initial-mode 287 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 289 }; 288 }; 290 }; 289 }; 291 290 292 /* 291 /* 293 * Remaining regulators that are not y 292 * Remaining regulators that are not yet supported: 294 * OLEDB: 4925000-8100000 293 * OLEDB: 4925000-8100000 295 * ab: 4600000-6100000 294 * ab: 4600000-6100000 296 * ibb: 800000-5400000 295 * ibb: 800000-5400000 297 */ 296 */ 298 regulators-1 { 297 regulators-1 { 299 compatible = "qcom,pm8150l-rpm 298 compatible = "qcom,pm8150l-rpmh-regulators"; 300 qcom,pmic-id = "c"; 299 qcom,pmic-id = "c"; 301 300 302 vdd-s1-supply = <&vph_pwr>; 301 vdd-s1-supply = <&vph_pwr>; 303 vdd-s2-supply = <&vph_pwr>; 302 vdd-s2-supply = <&vph_pwr>; 304 vdd-s3-supply = <&vph_pwr>; 303 vdd-s3-supply = <&vph_pwr>; 305 vdd-s4-supply = <&vph_pwr>; 304 vdd-s4-supply = <&vph_pwr>; 306 vdd-s5-supply = <&vph_pwr>; 305 vdd-s5-supply = <&vph_pwr>; 307 vdd-s6-supply = <&vph_pwr>; 306 vdd-s6-supply = <&vph_pwr>; 308 vdd-s7-supply = <&vph_pwr>; 307 vdd-s7-supply = <&vph_pwr>; 309 vdd-s8-supply = <&vph_pwr>; 308 vdd-s8-supply = <&vph_pwr>; 310 vdd-l1-l8-supply = <&vreg_s4a_ 309 vdd-l1-l8-supply = <&vreg_s4a_1p8>; 311 vdd-l2-l3-supply = <&vreg_s8c_ 310 vdd-l2-l3-supply = <&vreg_s8c_1p35>; 312 vdd-l4-l5-l6-supply = <&vreg_b 311 vdd-l4-l5-l6-supply = <&vreg_bob>; 313 vdd-l7-l11-supply = <&vreg_bob 312 vdd-l7-l11-supply = <&vreg_bob>; 314 vdd-l9-l10-supply = <&vreg_bob 313 vdd-l9-l10-supply = <&vreg_bob>; 315 vdd-bob-supply = <&vph_pwr>; 314 vdd-bob-supply = <&vph_pwr>; 316 315 317 vreg_bob: bob { 316 vreg_bob: bob { 318 regulator-name = "vreg 317 regulator-name = "vreg_bob"; 319 regulator-min-microvol 318 regulator-min-microvolt = <3350000>; 320 regulator-max-microvol 319 regulator-max-microvolt = <3960000>; 321 regulator-initial-mode 320 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>; 322 }; 321 }; 323 322 324 /* 323 /* 325 * S1-S6 are ARCs: 324 * S1-S6 are ARCs: 326 * (S1+S2) - gfx.lvl, 325 * (S1+S2) - gfx.lvl, 327 * S3 - mx.lvl, 326 * S3 - mx.lvl, 328 * (S4+S5) - mmcx.lvl, 327 * (S4+S5) - mmcx.lvl, 329 * S6 - ebi.lvl 328 * S6 - ebi.lvl 330 */ 329 */ 331 330 332 vreg_s7c_0p35: smps7 { 331 vreg_s7c_0p35: smps7 { 333 regulator-name = "vreg 332 regulator-name = "vreg_s7c_0p35"; 334 regulator-min-microvol 333 regulator-min-microvolt = <348000>; 335 regulator-max-microvol 334 regulator-max-microvolt = <1000000>; 336 regulator-initial-mode 335 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 337 }; 336 }; 338 337 339 vreg_s8c_1p35: smps8 { 338 vreg_s8c_1p35: smps8 { 340 regulator-name = "vreg 339 regulator-name = "vreg_s8c_1p35"; 341 regulator-min-microvol 340 regulator-min-microvolt = <1350000>; 342 regulator-max-microvol 341 regulator-max-microvolt = <1400000>; 343 regulator-initial-mode 342 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 344 }; 343 }; 345 344 346 vreg_l1c_1p8: ldo1 { 345 vreg_l1c_1p8: ldo1 { 347 regulator-name = "vreg 346 regulator-name = "vreg_l1c_1p8"; 348 regulator-min-microvol 347 regulator-min-microvolt = <1800000>; 349 regulator-max-microvol 348 regulator-max-microvolt = <1800000>; 350 regulator-initial-mode 349 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 351 }; 350 }; 352 351 353 /* L2-4 are unused. */ 352 /* L2-4 are unused. */ 354 353 355 vreg_l5c_1p8: ldo5 { 354 vreg_l5c_1p8: ldo5 { 356 regulator-name = "vreg 355 regulator-name = "vreg_l5c_1p8"; 357 regulator-min-microvol 356 regulator-min-microvolt = <1800000>; 358 regulator-max-microvol 357 regulator-max-microvolt = <2800000>; 359 regulator-initial-mode 358 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 360 }; 359 }; 361 360 362 vreg_l6c_2p9: ldo6 { 361 vreg_l6c_2p9: ldo6 { 363 regulator-name = "vreg 362 regulator-name = "vreg_l6c_2p9"; 364 regulator-min-microvol 363 regulator-min-microvolt = <1800000>; 365 regulator-max-microvol 364 regulator-max-microvolt = <2960000>; 366 regulator-initial-mode 365 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 367 regulator-allow-set-lo 366 regulator-allow-set-load; 368 regulator-allowed-mode 367 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 369 368 RPMH_REGULATOR_MODE_HPM>; 370 }; 369 }; 371 370 372 vreg_l7c_2p85: ldo7 { 371 vreg_l7c_2p85: ldo7 { 373 regulator-name = "vreg 372 regulator-name = "vreg_l7c_2p85"; 374 regulator-min-microvol 373 regulator-min-microvolt = <2856000>; 375 regulator-max-microvol 374 regulator-max-microvolt = <3104000>; 376 regulator-initial-mode 375 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 377 }; 376 }; 378 377 379 vreg_l8c_1p8: ldo8 { 378 vreg_l8c_1p8: ldo8 { 380 regulator-name = "vreg 379 regulator-name = "vreg_l8c_1p8"; 381 regulator-min-microvol 380 regulator-min-microvolt = <1800000>; 382 regulator-max-microvol 381 regulator-max-microvolt = <1800000>; 383 regulator-initial-mode 382 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 384 }; 383 }; 385 384 386 vreg_l9c_2p9: ldo9 { 385 vreg_l9c_2p9: ldo9 { 387 regulator-name = "vreg 386 regulator-name = "vreg_l9c_2p9"; 388 regulator-min-microvol 387 regulator-min-microvolt = <2704000>; 389 regulator-max-microvol 388 regulator-max-microvolt = <2960000>; 390 regulator-initial-mode 389 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 391 regulator-allow-set-lo 390 regulator-allow-set-load; 392 regulator-allowed-mode 391 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 393 392 RPMH_REGULATOR_MODE_HPM>; 394 }; 393 }; 395 394 396 vreg_l10c_3p3: ldo10 { 395 vreg_l10c_3p3: ldo10 { 397 regulator-name = "vreg 396 regulator-name = "vreg_l10c_3p3"; 398 regulator-min-microvol 397 regulator-min-microvolt = <3296000>; 399 regulator-max-microvol 398 regulator-max-microvolt = <3296000>; 400 regulator-initial-mode 399 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 401 }; 400 }; 402 401 403 vreg_l11c_3p0: ldo11 { 402 vreg_l11c_3p0: ldo11 { 404 regulator-name = "vreg 403 regulator-name = "vreg_l11c_3p0"; 405 regulator-min-microvol 404 regulator-min-microvolt = <3000000>; 406 regulator-max-microvol 405 regulator-max-microvolt = <3000000>; 407 regulator-initial-mode 406 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 408 }; 407 }; 409 }; 408 }; 410 409 411 regulators-2 { 410 regulators-2 { 412 compatible = "qcom,pm8009-rpmh 411 compatible = "qcom,pm8009-rpmh-regulators"; 413 qcom,pmic-id = "f"; 412 qcom,pmic-id = "f"; 414 413 415 vdd-s1-supply = <&vph_pwr>; 414 vdd-s1-supply = <&vph_pwr>; 416 vdd-s2-supply = <&vreg_bob>; 415 vdd-s2-supply = <&vreg_bob>; 417 vdd-l2-supply = <&vreg_s8c_1p3 416 vdd-l2-supply = <&vreg_s8c_1p35>; 418 vdd-l5-l6-supply = <&vreg_bob> 417 vdd-l5-l6-supply = <&vreg_bob>; 419 vdd-l7-supply = <&vreg_s4a_1p8 418 vdd-l7-supply = <&vreg_s4a_1p8>; 420 419 421 vreg_s1f_1p2: smps1 { 420 vreg_s1f_1p2: smps1 { 422 regulator-name = "vreg 421 regulator-name = "vreg_s1f_1p2"; 423 regulator-min-microvol 422 regulator-min-microvolt = <1200000>; 424 regulator-max-microvol 423 regulator-max-microvolt = <1200000>; 425 regulator-initial-mode 424 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 426 }; 425 }; 427 426 428 vreg_s2f_0p5: smps2 { 427 vreg_s2f_0p5: smps2 { 429 regulator-name = "vreg 428 regulator-name = "vreg_s2f_0p5"; 430 regulator-min-microvol 429 regulator-min-microvolt = <512000>; 431 regulator-max-microvol 430 regulator-max-microvolt = <1100000>; 432 regulator-initial-mode 431 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 433 }; 432 }; 434 433 435 /* L1 is unused. */ 434 /* L1 is unused. */ 436 435 437 vreg_l2f_1p3: ldo2 { 436 vreg_l2f_1p3: ldo2 { 438 regulator-name = "vreg 437 regulator-name = "vreg_l2f_1p3"; 439 regulator-min-microvol 438 regulator-min-microvolt = <1304000>; 440 regulator-max-microvol 439 regulator-max-microvolt = <1304000>; 441 regulator-initial-mode 440 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 442 }; 441 }; 443 442 444 /* L3 & L4 are unused. */ 443 /* L3 & L4 are unused. */ 445 444 446 vreg_l5f_2p8: ldo5 { 445 vreg_l5f_2p8: ldo5 { 447 regulator-name = "vreg 446 regulator-name = "vreg_l5f_2p85"; 448 regulator-min-microvol 447 regulator-min-microvolt = <2800000>; 449 regulator-max-microvol 448 regulator-max-microvolt = <2800000>; 450 regulator-initial-mode 449 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 451 }; 450 }; 452 451 453 vreg_l6f_2p8: ldo6 { 452 vreg_l6f_2p8: ldo6 { 454 regulator-name = "vreg 453 regulator-name = "vreg_l6f_2p8"; 455 regulator-min-microvol 454 regulator-min-microvolt = <2800000>; 456 regulator-max-microvol 455 regulator-max-microvolt = <2800000>; 457 regulator-initial-mode 456 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 458 }; 457 }; 459 458 460 vreg_l7f_1p8: ldo7 { 459 vreg_l7f_1p8: ldo7 { 461 regulator-name = "vreg 460 regulator-name = "vreg_l7f_1p8"; 462 regulator-min-microvol 461 regulator-min-microvolt = <1800000>; 463 regulator-max-microvol 462 regulator-max-microvolt = <1800000>; 464 regulator-initial-mode 463 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 465 }; 464 }; 466 }; 465 }; 467 }; 466 }; 468 467 469 &cdsp { 468 &cdsp { 470 firmware-name = "qcom/sm8250/xiaomi/el 469 firmware-name = "qcom/sm8250/xiaomi/elish/cdsp.mbn"; 471 status = "okay"; 470 status = "okay"; 472 }; 471 }; 473 472 474 &gmu { 473 &gmu { 475 status = "okay"; 474 status = "okay"; 476 }; 475 }; 477 476 478 &gpi_dma0 { 477 &gpi_dma0 { 479 status = "okay"; 478 status = "okay"; 480 }; 479 }; 481 480 482 &gpi_dma1 { 481 &gpi_dma1 { 483 status = "okay"; 482 status = "okay"; 484 }; 483 }; 485 484 486 &gpi_dma2 { 485 &gpi_dma2 { 487 status = "okay"; 486 status = "okay"; 488 }; 487 }; 489 488 490 &gpu { 489 &gpu { 491 status = "okay"; 490 status = "okay"; 492 491 493 zap-shader { 492 zap-shader { 494 memory-region = <&gpu_mem>; 493 memory-region = <&gpu_mem>; 495 firmware-name = "qcom/sm8250/x 494 firmware-name = "qcom/sm8250/xiaomi/elish/a650_zap.mbn"; 496 }; 495 }; 497 }; 496 }; 498 497 499 &i2c0 { 498 &i2c0 { 500 clock-frequency = <400000>; 499 clock-frequency = <400000>; 501 status = "okay"; 500 status = "okay"; 502 501 503 fuel-gauge@55 { 502 fuel-gauge@55 { 504 compatible = "ti,bq27z561"; 503 compatible = "ti,bq27z561"; 505 reg = <0x55>; 504 reg = <0x55>; 506 monitored-battery = <&battery_ 505 monitored-battery = <&battery_r>; 507 }; 506 }; 508 }; 507 }; 509 508 510 &i2c11 { 509 &i2c11 { 511 clock-frequency = <400000>; 510 clock-frequency = <400000>; 512 status = "okay"; 511 status = "okay"; 513 512 514 backlight: backlight@11 { 513 backlight: backlight@11 { 515 compatible = "kinetic,ktz8866" 514 compatible = "kinetic,ktz8866"; 516 reg = <0x11>; 515 reg = <0x11>; 517 vddpos-supply = <&bl_vddpos_5p 516 vddpos-supply = <&bl_vddpos_5p5>; 518 vddneg-supply = <&bl_vddneg_5p 517 vddneg-supply = <&bl_vddneg_5p5>; 519 enable-gpios = <&tlmm 139 GPIO 518 enable-gpios = <&tlmm 139 GPIO_ACTIVE_HIGH>; 520 current-num-sinks = <5>; 519 current-num-sinks = <5>; 521 kinetic,current-ramp-delay-ms 520 kinetic,current-ramp-delay-ms = <128>; 522 kinetic,led-enable-ramp-delay- 521 kinetic,led-enable-ramp-delay-ms = <1>; 523 kinetic,enable-lcd-bias; 522 kinetic,enable-lcd-bias; 524 }; 523 }; 525 }; 524 }; 526 525 527 &i2c13 { 526 &i2c13 { 528 clock-frequency = <400000>; 527 clock-frequency = <400000>; 529 status = "okay"; 528 status = "okay"; 530 529 531 fuel-gauge@55 { 530 fuel-gauge@55 { 532 compatible = "ti,bq27z561"; 531 compatible = "ti,bq27z561"; 533 reg = <0x55>; 532 reg = <0x55>; 534 monitored-battery = <&battery_ 533 monitored-battery = <&battery_l>; 535 }; 534 }; 536 }; 535 }; 537 536 538 &mdss { 537 &mdss { 539 status = "okay"; 538 status = "okay"; 540 }; 539 }; 541 540 542 &mdss_dsi0 { 541 &mdss_dsi0 { 543 vdda-supply = <&vreg_l9a_1p2>; 542 vdda-supply = <&vreg_l9a_1p2>; 544 qcom,dual-dsi-mode; 543 qcom,dual-dsi-mode; 545 qcom,sync-dual-dsi; 544 qcom,sync-dual-dsi; 546 qcom,master-dsi; 545 qcom,master-dsi; 547 status = "okay"; 546 status = "okay"; 548 547 549 display_panel: panel@0 { 548 display_panel: panel@0 { 550 reg = <0>; 549 reg = <0>; 551 vddio-supply = <&vreg_l14a_1p8 550 vddio-supply = <&vreg_l14a_1p88>; 552 reset-gpios = <&tlmm 75 GPIO_A 551 reset-gpios = <&tlmm 75 GPIO_ACTIVE_LOW>; 553 backlight = <&backlight>; 552 backlight = <&backlight>; 554 rotation = <90>; << 555 553 556 status = "disabled"; 554 status = "disabled"; 557 555 558 ports { 556 ports { 559 #address-cells = <1>; 557 #address-cells = <1>; 560 #size-cells = <0>; 558 #size-cells = <0>; 561 559 562 port@0 { 560 port@0 { 563 reg = <0>; 561 reg = <0>; 564 562 565 panel_in_0: en 563 panel_in_0: endpoint { 566 remote 564 remote-endpoint = <&mdss_dsi0_out>; 567 }; 565 }; 568 }; 566 }; 569 567 570 port@1 { 568 port@1 { 571 reg = <1>; 569 reg = <1>; 572 570 573 panel_in_1: en 571 panel_in_1: endpoint { 574 remote 572 remote-endpoint = <&mdss_dsi1_out>; 575 }; 573 }; 576 }; 574 }; 577 }; 575 }; 578 }; 576 }; 579 }; 577 }; 580 578 581 &mdss_dsi0_out { 579 &mdss_dsi0_out { 582 data-lanes = <0 1 2>; 580 data-lanes = <0 1 2>; 583 remote-endpoint = <&panel_in_0>; 581 remote-endpoint = <&panel_in_0>; 584 }; 582 }; 585 583 586 &mdss_dsi0_phy { 584 &mdss_dsi0_phy { 587 vdds-supply = <&vreg_l5a_0p88>; 585 vdds-supply = <&vreg_l5a_0p88>; 588 phy-type = <PHY_TYPE_CPHY>; 586 phy-type = <PHY_TYPE_CPHY>; 589 status = "okay"; 587 status = "okay"; 590 }; 588 }; 591 589 592 &mdss_dsi1 { 590 &mdss_dsi1 { 593 vdda-supply = <&vreg_l9a_1p2>; 591 vdda-supply = <&vreg_l9a_1p2>; 594 qcom,dual-dsi-mode; 592 qcom,dual-dsi-mode; 595 qcom,sync-dual-dsi; 593 qcom,sync-dual-dsi; 596 /* DSI1 is slave, so use DSI0 clocks * 594 /* DSI1 is slave, so use DSI0 clocks */ 597 assigned-clock-parents = <&mdss_dsi0_p 595 assigned-clock-parents = <&mdss_dsi0_phy 0>, <&mdss_dsi0_phy 1>; 598 status = "okay"; 596 status = "okay"; 599 }; 597 }; 600 598 601 &mdss_dsi1_out { 599 &mdss_dsi1_out { 602 data-lanes = <0 1 2>; 600 data-lanes = <0 1 2>; 603 remote-endpoint = <&panel_in_1>; 601 remote-endpoint = <&panel_in_1>; 604 }; 602 }; 605 603 606 &mdss_dsi1_phy { 604 &mdss_dsi1_phy { 607 vdds-supply = <&vreg_l5a_0p88>; 605 vdds-supply = <&vreg_l5a_0p88>; 608 phy-type = <PHY_TYPE_CPHY>; 606 phy-type = <PHY_TYPE_CPHY>; 609 status = "okay"; 607 status = "okay"; 610 }; 608 }; 611 609 612 &pcie0 { 610 &pcie0 { 613 status = "okay"; 611 status = "okay"; 614 }; 612 }; 615 613 616 &pcie0_phy { 614 &pcie0_phy { 617 vdda-phy-supply = <&vreg_l5a_0p88>; 615 vdda-phy-supply = <&vreg_l5a_0p88>; 618 vdda-pll-supply = <&vreg_l9a_1p2>; 616 vdda-pll-supply = <&vreg_l9a_1p2>; 619 status = "okay"; 617 status = "okay"; 620 }; 618 }; 621 619 622 &pm8150_gpios { 620 &pm8150_gpios { 623 vol_up_n: vol-up-n-state { 621 vol_up_n: vol-up-n-state { 624 pins = "gpio6"; 622 pins = "gpio6"; 625 function = "normal"; 623 function = "normal"; 626 power-source = <1>; 624 power-source = <1>; 627 input-enable; 625 input-enable; 628 bias-pull-up; 626 bias-pull-up; 629 }; 627 }; 630 }; 628 }; 631 629 632 &pm8150b_typec { << 633 vdd-pdphy-supply = <&vreg_l2a_3p1>; << 634 status = "okay"; << 635 << 636 connector { << 637 compatible = "usb-c-connector" << 638 << 639 op-sink-microwatt = <10000000> << 640 power-role = "dual"; << 641 data-role = "dual"; << 642 self-powered; << 643 << 644 source-pdos = <PDO_FIXED(5000, << 645 PDO_F << 646 PDO_F << 647 PDO_F << 648 << 649 sink-pdos = <PDO_FIXED(5000, 3 << 650 PDO_FIX << 651 PDO_FIX << 652 PDO_FIX << 653 PDO_VAR << 654 << 655 ports { << 656 #address-cells = <1>; << 657 #size-cells = <0>; << 658 << 659 port@0 { << 660 reg = <0>; << 661 << 662 pm8150b_hs_in: << 663 remote << 664 }; << 665 }; << 666 }; << 667 }; << 668 }; << 669 << 670 &pm8150b_vbus { << 671 regulator-min-microamp = <500000>; << 672 regulator-max-microamp = <3000000>; << 673 status = "okay"; << 674 }; << 675 << 676 &pon_pwrkey { 630 &pon_pwrkey { 677 status = "okay"; 631 status = "okay"; 678 }; 632 }; 679 633 680 &pon_resin { 634 &pon_resin { 681 linux,code = <KEY_VOLUMEDOWN>; 635 linux,code = <KEY_VOLUMEDOWN>; 682 status = "okay"; 636 status = "okay"; 683 }; 637 }; 684 638 685 &qupv3_id_0 { 639 &qupv3_id_0 { 686 status = "okay"; 640 status = "okay"; 687 }; 641 }; 688 642 689 &qupv3_id_1 { 643 &qupv3_id_1 { 690 status = "okay"; 644 status = "okay"; 691 }; 645 }; 692 646 693 &qupv3_id_2 { 647 &qupv3_id_2 { 694 status = "okay"; 648 status = "okay"; 695 }; 649 }; 696 650 697 &slpi { 651 &slpi { 698 firmware-name = "qcom/sm8250/xiaomi/el 652 firmware-name = "qcom/sm8250/xiaomi/elish/slpi.mbn"; 699 status = "okay"; 653 status = "okay"; 700 }; 654 }; 701 655 702 &tlmm { 656 &tlmm { 703 gpio-reserved-ranges = <40 4>; 657 gpio-reserved-ranges = <40 4>; 704 }; 658 }; 705 659 706 &usb_1 { 660 &usb_1 { 707 /* USB 2.0 only */ 661 /* USB 2.0 only */ 708 qcom,select-utmi-as-pipe-clk; 662 qcom,select-utmi-as-pipe-clk; 709 status = "okay"; 663 status = "okay"; 710 }; 664 }; 711 665 712 &usb_1_dwc3 { 666 &usb_1_dwc3 { 713 dr_mode = "otg"; !! 667 dr_mode = "peripheral"; 714 maximum-speed = "high-speed"; 668 maximum-speed = "high-speed"; 715 /* Remove USB3 phy */ 669 /* Remove USB3 phy */ 716 phys = <&usb_1_hsphy>; 670 phys = <&usb_1_hsphy>; 717 phy-names = "usb2-phy"; 671 phy-names = "usb2-phy"; 718 usb-role-switch; << 719 }; 672 }; 720 673 721 &usb_1_hsphy { 674 &usb_1_hsphy { 722 vdda-pll-supply = <&vreg_l5a_0p88>; 675 vdda-pll-supply = <&vreg_l5a_0p88>; 723 vdda18-supply = <&vreg_l12a_1p8>; 676 vdda18-supply = <&vreg_l12a_1p8>; 724 vdda33-supply = <&vreg_l2a_3p1>; 677 vdda33-supply = <&vreg_l2a_3p1>; 725 status = "okay"; 678 status = "okay"; 726 }; << 727 << 728 &usb_1_dwc3_hs_out { << 729 remote-endpoint = <&pm8150b_hs_in>; << 730 }; 679 }; 731 680 732 &ufs_mem_hc { 681 &ufs_mem_hc { 733 vcc-supply = <&vreg_l17a_3p0>; 682 vcc-supply = <&vreg_l17a_3p0>; 734 vcc-max-microamp = <800000>; 683 vcc-max-microamp = <800000>; 735 vccq-supply = <&vreg_l6a_1p2>; 684 vccq-supply = <&vreg_l6a_1p2>; 736 vccq-max-microamp = <800000>; 685 vccq-max-microamp = <800000>; 737 vccq2-supply = <&vreg_s4a_1p8>; 686 vccq2-supply = <&vreg_s4a_1p8>; 738 vccq2-max-microamp = <800000>; 687 vccq2-max-microamp = <800000>; 739 status = "okay"; 688 status = "okay"; 740 }; 689 }; 741 690 742 &ufs_mem_phy { 691 &ufs_mem_phy { 743 vdda-phy-supply = <&vreg_l5a_0p88>; 692 vdda-phy-supply = <&vreg_l5a_0p88>; 744 vdda-pll-supply = <&vreg_l9a_1p2>; 693 vdda-pll-supply = <&vreg_l9a_1p2>; 745 status = "okay"; 694 status = "okay"; 746 }; 695 }; 747 696 748 &venus { 697 &venus { 749 firmware-name = "qcom/sm8250/xiaomi/el 698 firmware-name = "qcom/sm8250/xiaomi/elish/venus.mbn"; 750 status = "okay"; 699 status = "okay"; 751 }; 700 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.