1// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 2/* 3 * Copyright (c) 2022 Linaro Limited 4 */ 5 6/dts-v1/; 7 8#include "sm6115.dtsi" 9#include "pm6125.dtsi" 10 11/ { 12 model = "Lenovo Tab P11"; 13 compatible = "lenovo,j606f", "qcom,sm6115p", "qcom,sm6115"; 14 chassis-type = "tablet"; 15 16 /* required for bootloader to select correct board */ 17 qcom,msm-id = <445 0x10000>, <420 0x10000>; 18 qcom,board-id = <34 3>; 19 20 aliases { 21 mmc0 = &sdhc_2; 22 }; 23 24 chosen { 25 #address-cells = <2>; 26 #size-cells = <2>; 27 ranges; 28 29 framebuffer0: framebuffer@5c000000 { 30 compatible = "simple-framebuffer"; 31 reg = <0 0x5c000000 0 (2000 * 1200 * 4)>; 32 width = <1200>; 33 height = <2000>; 34 stride = <(1200 * 4)>; 35 format = "a8r8g8b8"; 36 clocks = <&gcc GCC_DISP_HF_AXI_CLK>; 37 }; 38 }; 39 40 gpio-keys { 41 compatible = "gpio-keys"; 42 43 pinctrl-names = "default"; 44 pinctrl-0 = <&vol_up_n>; 45 46 key-volume-up { 47 label = "Volume Up"; 48 linux,code = <KEY_VOLUMEUP>; 49 gpios = <&pm6125_gpios 5 GPIO_ACTIVE_LOW>; 50 debounce-interval = <15>; 51 linux,can-disable; 52 wakeup-source; 53 }; 54 }; 55 56 reserved-memory { 57 ramoops@ffc00000 { 58 compatible = "ramoops"; 59 reg = <0x0 0xffc00000 0x0 0x100000>; 60 record-size = <0x1000>; 61 console-size = <0x40000>; 62 ftrace-size = <0x20000>; 63 ecc-size = <16>; 64 }; 65 }; 66}; 67 68&dispcc { 69 /* HACK: disable until a panel driver is ready to retain simplefb */ 70 status = "disabled"; 71}; 72 73&pm6125_gpios { 74 vol_up_n: vol-up-n-state { 75 pins = "gpio5"; 76 function = "normal"; 77 power-source = <0>; 78 bias-pull-up; 79 input-enable; 80 }; 81}; 82 83&pon_pwrkey { 84 status = "okay"; 85}; 86 87&pon_resin { 88 linux,code = <KEY_VOLUMEDOWN>; 89 status = "okay"; 90}; 91 92&remoteproc_adsp { 93 firmware-name = "qcom/sm6115/LENOVO/J606F/adsp.mbn"; 94 status = "okay"; 95}; 96 97&remoteproc_cdsp { 98 firmware-name = "qcom/sm6115/LENOVO/J606F/cdsp.mbn"; 99 status = "okay"; 100}; 101 102&remoteproc_mpss { 103 firmware-name = "qcom/sm6115/LENOVO/J606F/modem.mbn"; 104 status = "okay"; 105}; 106 107&rpm_requests { 108 regulators-0 { 109 compatible = "qcom,rpm-pm6125-regulators"; 110 111 pm6125_s6: s6 { 112 regulator-min-microvolt = <304000>; 113 regulator-max-microvolt = <1456000>; 114 }; 115 116 pm6125_s7: s7 { 117 regulator-min-microvolt = <1280000>; 118 regulator-max-microvolt = <2080000>; 119 }; 120 121 pm6125_s8: s8 { 122 regulator-min-microvolt = <1064000>; 123 regulator-max-microvolt = <1304000>; 124 }; 125 126 pm6125_l1: l1 { 127 regulator-min-microvolt = <952000>; 128 regulator-max-microvolt = <1152000>; 129 }; 130 131 pm6125_l4: l4 { 132 regulator-min-microvolt = <488000>; 133 regulator-max-microvolt = <1000000>; 134 }; 135 136 pm6125_l5: l5 { 137 regulator-min-microvolt = <1648000>; 138 /* 3.056V capped to 2.96V for SDHCI */ 139 regulator-max-microvolt = <2960000>; 140 regulator-allow-set-load; 141 /* Broken hw, this one can't be turned off or SDHCI will break! */ 142 regulator-always-on; 143 }; 144 145 pm6125_l6: l6 { 146 regulator-min-microvolt = <576000>; 147 regulator-max-microvolt = <656000>; 148 }; 149 150 pm6125_l7: l7 { 151 /* 1.2V-1.304V fixed at 1.256V for SDHCI bias */ 152 regulator-min-microvolt = <1256000>; 153 regulator-max-microvolt = <1256000>; 154 /* 155 * TODO: SDHCI seems to also work with this one turned off, however 156 * there exists a possibility that it may not work with some very 157 * specific SDCard types, perhaps validating this against a wide 158 * range of models could rule that out, saving some power would 159 * certainly be nice.. 160 */ 161 regulator-always-on; 162 }; 163 164 pm6125_l8: l8 { 165 regulator-min-microvolt = <400000>; 166 regulator-max-microvolt = <728000>; 167 }; 168 169 pm6125_l9: l9 { 170 regulator-min-microvolt = <1800000>; 171 regulator-max-microvolt = <2000000>; 172 }; 173 174 pm6125_l10: l10 { 175 regulator-min-microvolt = <1704000>; 176 regulator-max-microvolt = <1904000>; 177 }; 178 179 pm6125_l11: l11 { 180 regulator-min-microvolt = <1704000>; 181 regulator-max-microvolt = <1952000>; 182 }; 183 184 pm6125_l12: l12 { 185 regulator-min-microvolt = <1624000>; 186 regulator-max-microvolt = <1984000>; 187 }; 188 189 pm6125_l13: l13 { 190 regulator-min-microvolt = <1504000>; 191 regulator-max-microvolt = <1952000>; 192 }; 193 194 pm6125_l14: l14 { 195 regulator-min-microvolt = <1704000>; 196 regulator-max-microvolt = <1904000>; 197 }; 198 199 pm6125_l15: l15 { 200 regulator-min-microvolt = <2920000>; 201 regulator-max-microvolt = <3232000>; 202 }; 203 204 pm6125_l16: l16 { 205 regulator-min-microvolt = <1704000>; 206 regulator-max-microvolt = <1904000>; 207 }; 208 209 pm6125_l17: l17 { 210 regulator-min-microvolt = <1152000>; 211 regulator-max-microvolt = <1384000>; 212 }; 213 214 pm6125_l18: l18 { 215 regulator-min-microvolt = <1104000>; 216 regulator-max-microvolt = <1312000>; 217 }; 218 219 pm6125_l19: l19 { 220 regulator-min-microvolt = <1624000>; 221 regulator-max-microvolt = <3304000>; 222 }; 223 224 pm6125_l20: l20 { 225 regulator-min-microvolt = <1624000>; 226 regulator-max-microvolt = <3304000>; 227 }; 228 229 pm6125_l21: l21 { 230 regulator-min-microvolt = <2400000>; 231 regulator-max-microvolt = <3600000>; 232 }; 233 234 pm6125_l22: l22 { 235 regulator-min-microvolt = <2952000>; 236 /* 3.304V capped to 2.96V for SDHCI */ 237 regulator-max-microvolt = <2960000>; 238 regulator-allow-set-load; 239 /* Broken hw, this one can't be turned off or SDHCI will break! */ 240 regulator-always-on; 241 }; 242 243 pm6125_l23: l23 { 244 regulator-min-microvolt = <3200000>; 245 regulator-max-microvolt = <3400000>; 246 }; 247 248 pm6125_l24: l24 { 249 regulator-min-microvolt = <2704000>; 250 regulator-max-microvolt = <3600000>; 251 }; 252 }; 253}; 254 255&sdhc_2 { 256 cd-gpios = <&tlmm 88 GPIO_ACTIVE_HIGH>; 257 pinctrl-names = "default", "sleep"; 258 pinctrl-0 = <&sdc2_state_on &sdc2_gate_pin>; 259 pinctrl-1 = <&sdc2_state_off>; 260 vmmc-supply = <&pm6125_l22>; 261 vqmmc-supply = <&pm6125_l5>; 262 no-sdio; 263 no-mmc; 264 status = "okay"; 265}; 266 267&sleep_clk { 268 clock-frequency = <32764>; 269}; 270 271&tlmm { 272 gpio-reserved-ranges = <14 4>; 273 274 /* 275 * This is a wholly undocumented pin (other than a single vague "pwr-gpios" reference) 276 * that needs to be toggled for the SD Card slot to work properly.. 277 */ 278 sdc2_gate_pin: sdc2-gate-state { 279 pins = "gpio45"; 280 function = "gpio"; 281 drive-strength = <2>; 282 bias-pull-up; 283 output-high; 284 }; 285}; 286 287&ufs_mem_hc { 288 vcc-supply = <&pm6125_l24>; 289 vcc-max-microamp = <600000>; 290 vccq2-supply = <&pm6125_l11>; 291 vccq2-max-microamp = <600000>; 292 status = "okay"; 293}; 294 295&ufs_mem_phy { 296 vdda-phy-supply = <&pm6125_l4>; 297 vdda-pll-supply = <&pm6125_l12>; 298 vddp-ref-clk-supply = <&pm6125_l18>; 299 status = "okay"; 300}; 301 302&usb { 303 status = "okay"; 304}; 305 306&usb_dwc3 { 307 maximum-speed = "high-speed"; 308 dr_mode = "peripheral"; 309 310 phys = <&usb_hsphy>; 311 phy-names = "usb2-phy"; 312}; 313 314&usb_hsphy { 315 vdd-supply = <&pm6125_l4>; 316 vdda-pll-supply = <&pm6125_l12>; 317 vdda-phy-dpdm-supply = <&pm6125_l15>; 318 status = "okay"; 319}; 320 321&wifi { 322 vdd-0.8-cx-mx-supply = <&pm6125_l8>; 323 vdd-1.8-xo-supply = <&pm6125_l16>; 324 vdd-1.3-rfa-supply = <&pm6125_l17>; 325 vdd-3.3-ch0-supply = <&pm6125_l23>; 326 qcom,ath10k-calibration-variant = "Lenovo_P11"; 327 status = "okay"; 328}; 329 330&xo_board { 331 clock-frequency = <19200000>; 332}; 333