Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: qcom: msm8974: Add Sony Xperia Z1 Compact

This patch adds a DTS file for Sony Xperia Z1 Compact with support for
regulators, serial UART, eMMC/SD-card, USB, charger, backlight,
coincell and buttons.

Work based on arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts.

Signed-off-by: Attila Szöllősi <ata2001@airmail.cc>
Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>

authored by

Attila Szöllősi and committed by
Andy Gross
5567f9dd 90ce6265

+437
+1
arch/arm/boot/dts/Makefile
··· 766 766 qcom-msm8974-fairphone-fp2.dtb \ 767 767 qcom-msm8974-lge-nexus5-hammerhead.dtb \ 768 768 qcom-msm8974-samsung-klte.dtb \ 769 + qcom-msm8974-sony-xperia-amami.dtb \ 769 770 qcom-msm8974-sony-xperia-castor.dtb \ 770 771 qcom-msm8974-sony-xperia-honami.dtb \ 771 772 qcom-mdm9615-wp8548-mangoh-green.dtb
+436
arch/arm/boot/dts/qcom-msm8974-sony-xperia-amami.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + #include "qcom-msm8974.dtsi" 3 + #include "qcom-pm8841.dtsi" 4 + #include "qcom-pm8941.dtsi" 5 + #include <dt-bindings/gpio/gpio.h> 6 + #include <dt-bindings/input/input.h> 7 + #include <dt-bindings/pinctrl/qcom,pmic-gpio.h> 8 + 9 + / { 10 + model = "Sony Xperia Z1 Compact"; 11 + compatible = "sony,xperia-amami", "qcom,msm8974"; 12 + 13 + aliases { 14 + serial0 = &blsp1_uart2; 15 + }; 16 + 17 + chosen { 18 + stdout-path = "serial0:115200n8"; 19 + }; 20 + 21 + gpio-keys { 22 + compatible = "gpio-keys"; 23 + input-name = "gpio-keys"; 24 + 25 + pinctrl-names = "default"; 26 + pinctrl-0 = <&gpio_keys_pin_a>; 27 + 28 + volume-down { 29 + label = "volume_down"; 30 + gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>; 31 + linux,input-type = <1>; 32 + linux,code = <KEY_VOLUMEDOWN>; 33 + }; 34 + 35 + camera-snapshot { 36 + label = "camera_snapshot"; 37 + gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>; 38 + linux,input-type = <1>; 39 + linux,code = <KEY_CAMERA>; 40 + }; 41 + 42 + camera-focus { 43 + label = "camera_focus"; 44 + gpios = <&pm8941_gpios 4 GPIO_ACTIVE_LOW>; 45 + linux,input-type = <1>; 46 + linux,code = <KEY_CAMERA_FOCUS>; 47 + }; 48 + 49 + volume-up { 50 + label = "volume_up"; 51 + gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>; 52 + linux,input-type = <1>; 53 + linux,code = <KEY_VOLUMEUP>; 54 + }; 55 + }; 56 + 57 + memory@0 { 58 + reg = <0 0x40000000>, <0x40000000 0x40000000>; 59 + device_type = "memory"; 60 + }; 61 + 62 + smd { 63 + rpm { 64 + rpm_requests { 65 + pm8841-regulators { 66 + s1 { 67 + regulator-min-microvolt = <675000>; 68 + regulator-max-microvolt = <1050000>; 69 + }; 70 + 71 + s2 { 72 + regulator-min-microvolt = <500000>; 73 + regulator-max-microvolt = <1050000>; 74 + }; 75 + 76 + s3 { 77 + regulator-min-microvolt = <500000>; 78 + regulator-max-microvolt = <1050000>; 79 + }; 80 + 81 + s4 { 82 + regulator-min-microvolt = <500000>; 83 + regulator-max-microvolt = <1050000>; 84 + }; 85 + }; 86 + 87 + pm8941-regulators { 88 + vdd_l1_l3-supply = <&pm8941_s1>; 89 + vdd_l2_lvs1_2_3-supply = <&pm8941_s3>; 90 + vdd_l4_l11-supply = <&pm8941_s1>; 91 + vdd_l5_l7-supply = <&pm8941_s2>; 92 + vdd_l6_l12_l14_l15-supply = <&pm8941_s2>; 93 + vdd_l9_l10_l17_l22-supply = <&vreg_boost>; 94 + vdd_l13_l20_l23_l24-supply = <&vreg_boost>; 95 + vdd_l21-supply = <&vreg_boost>; 96 + 97 + s1 { 98 + regulator-min-microvolt = <1300000>; 99 + regulator-max-microvolt = <1300000>; 100 + regulator-always-on; 101 + regulator-boot-on; 102 + }; 103 + 104 + s2 { 105 + regulator-min-microvolt = <2150000>; 106 + regulator-max-microvolt = <2150000>; 107 + regulator-boot-on; 108 + }; 109 + 110 + s3 { 111 + regulator-min-microvolt = <1800000>; 112 + regulator-max-microvolt = <1800000>; 113 + regulator-always-on; 114 + regulator-boot-on; 115 + }; 116 + 117 + s4 { 118 + regulator-min-microvolt = <5000000>; 119 + regulator-max-microvolt = <5000000>; 120 + }; 121 + 122 + l1 { 123 + regulator-min-microvolt = <1225000>; 124 + regulator-max-microvolt = <1225000>; 125 + 126 + regulator-always-on; 127 + regulator-boot-on; 128 + }; 129 + 130 + l2 { 131 + regulator-min-microvolt = <1200000>; 132 + regulator-max-microvolt = <1200000>; 133 + }; 134 + 135 + l3 { 136 + regulator-min-microvolt = <1200000>; 137 + regulator-max-microvolt = <1200000>; 138 + }; 139 + 140 + l4 { 141 + regulator-min-microvolt = <1225000>; 142 + regulator-max-microvolt = <1225000>; 143 + }; 144 + 145 + l5 { 146 + regulator-min-microvolt = <1800000>; 147 + regulator-max-microvolt = <1800000>; 148 + }; 149 + 150 + l6 { 151 + regulator-min-microvolt = <1800000>; 152 + regulator-max-microvolt = <1800000>; 153 + 154 + regulator-boot-on; 155 + }; 156 + 157 + l7 { 158 + regulator-min-microvolt = <1800000>; 159 + regulator-max-microvolt = <1800000>; 160 + 161 + regulator-boot-on; 162 + }; 163 + 164 + l8 { 165 + regulator-min-microvolt = <1800000>; 166 + regulator-max-microvolt = <1800000>; 167 + }; 168 + 169 + l9 { 170 + regulator-min-microvolt = <1800000>; 171 + regulator-max-microvolt = <2950000>; 172 + }; 173 + 174 + l11 { 175 + regulator-min-microvolt = <1300000>; 176 + regulator-max-microvolt = <1350000>; 177 + }; 178 + 179 + l12 { 180 + regulator-min-microvolt = <1800000>; 181 + regulator-max-microvolt = <1800000>; 182 + 183 + regulator-always-on; 184 + regulator-boot-on; 185 + }; 186 + 187 + l13 { 188 + regulator-min-microvolt = <1800000>; 189 + regulator-max-microvolt = <2950000>; 190 + 191 + regulator-boot-on; 192 + }; 193 + 194 + l14 { 195 + regulator-min-microvolt = <1800000>; 196 + regulator-max-microvolt = <1800000>; 197 + }; 198 + 199 + l15 { 200 + regulator-min-microvolt = <2050000>; 201 + regulator-max-microvolt = <2050000>; 202 + }; 203 + 204 + l16 { 205 + regulator-min-microvolt = <2700000>; 206 + regulator-max-microvolt = <2700000>; 207 + }; 208 + 209 + l17 { 210 + regulator-min-microvolt = <2700000>; 211 + regulator-max-microvolt = <2700000>; 212 + }; 213 + 214 + l18 { 215 + regulator-min-microvolt = <2850000>; 216 + regulator-max-microvolt = <2850000>; 217 + }; 218 + 219 + l19 { 220 + regulator-min-microvolt = <3300000>; 221 + regulator-max-microvolt = <3300000>; 222 + }; 223 + 224 + l20 { 225 + regulator-min-microvolt = <2950000>; 226 + regulator-max-microvolt = <2950000>; 227 + 228 + regulator-allow-set-load; 229 + regulator-boot-on; 230 + regulator-system-load = <200000>; 231 + }; 232 + 233 + l21 { 234 + regulator-min-microvolt = <2950000>; 235 + regulator-max-microvolt = <2950000>; 236 + 237 + regulator-boot-on; 238 + }; 239 + 240 + l22 { 241 + regulator-min-microvolt = <3000000>; 242 + regulator-max-microvolt = <3000000>; 243 + }; 244 + 245 + l23 { 246 + regulator-min-microvolt = <2800000>; 247 + regulator-max-microvolt = <2800000>; 248 + }; 249 + 250 + l24 { 251 + regulator-min-microvolt = <3075000>; 252 + regulator-max-microvolt = <3075000>; 253 + 254 + regulator-boot-on; 255 + }; 256 + }; 257 + }; 258 + }; 259 + }; 260 + }; 261 + 262 + &soc { 263 + sdhci@f9824900 { 264 + status = "ok"; 265 + 266 + vmmc-supply = <&pm8941_l20>; 267 + vqmmc-supply = <&pm8941_s3>; 268 + 269 + bus-width = <8>; 270 + non-removable; 271 + 272 + pinctrl-names = "default"; 273 + pinctrl-0 = <&sdhc1_pin_a>; 274 + }; 275 + 276 + sdhci@f98a4900 { 277 + status = "ok"; 278 + 279 + bus-width = <4>; 280 + 281 + vmmc-supply = <&pm8941_l21>; 282 + vqmmc-supply = <&pm8941_l13>; 283 + 284 + cd-gpios = <&msmgpio 62 GPIO_ACTIVE_LOW>; 285 + 286 + pinctrl-names = "default"; 287 + pinctrl-0 = <&sdhc2_pin_a>, <&sdhc2_cd_pin_a>; 288 + }; 289 + 290 + serial@f991e000 { 291 + status = "ok"; 292 + 293 + pinctrl-names = "default"; 294 + pinctrl-0 = <&blsp1_uart2_pin_a>; 295 + }; 296 + 297 + 298 + pinctrl@fd510000 { 299 + blsp1_uart2_pin_a: blsp1-uart2-pin-active { 300 + rx { 301 + pins = "gpio5"; 302 + function = "blsp_uart2"; 303 + 304 + drive-strength = <2>; 305 + bias-pull-up; 306 + }; 307 + 308 + tx { 309 + pins = "gpio4"; 310 + function = "blsp_uart2"; 311 + 312 + drive-strength = <4>; 313 + bias-disable; 314 + }; 315 + }; 316 + 317 + i2c2_pins: i2c2 { 318 + mux { 319 + pins = "gpio6", "gpio7"; 320 + function = "blsp_i2c2"; 321 + 322 + drive-strength = <2>; 323 + bias-disable; 324 + }; 325 + }; 326 + 327 + sdhc1_pin_a: sdhc1-pin-active { 328 + clk { 329 + pins = "sdc1_clk"; 330 + drive-strength = <16>; 331 + bias-disable; 332 + }; 333 + 334 + cmd-data { 335 + pins = "sdc1_cmd", "sdc1_data"; 336 + drive-strength = <10>; 337 + bias-pull-up; 338 + }; 339 + }; 340 + 341 + sdhc2_cd_pin_a: sdhc2-cd-pin-active { 342 + pins = "gpio62"; 343 + function = "gpio"; 344 + 345 + drive-strength = <2>; 346 + bias-disable; 347 + }; 348 + 349 + sdhc2_pin_a: sdhc2-pin-active { 350 + clk { 351 + pins = "sdc2_clk"; 352 + drive-strength = <10>; 353 + bias-disable; 354 + }; 355 + 356 + cmd-data { 357 + pins = "sdc2_cmd", "sdc2_data"; 358 + drive-strength = <6>; 359 + bias-pull-up; 360 + }; 361 + }; 362 + }; 363 + 364 + dma-controller@f9944000 { 365 + qcom,controlled-remotely; 366 + }; 367 + 368 + usb@f9a55000 { 369 + status = "ok"; 370 + 371 + phys = <&usb_hs1_phy>; 372 + phy-select = <&tcsr 0xb000 0>; 373 + extcon = <&smbb>, <&usb_id>; 374 + vbus-supply = <&chg_otg>; 375 + 376 + hnp-disable; 377 + srp-disable; 378 + adp-disable; 379 + 380 + ulpi { 381 + phy@a { 382 + status = "ok"; 383 + 384 + v1p8-supply = <&pm8941_l6>; 385 + v3p3-supply = <&pm8941_l24>; 386 + 387 + extcon = <&smbb>; 388 + qcom,init-seq = /bits/ 8 <0x1 0x64>; 389 + }; 390 + }; 391 + }; 392 + }; 393 + 394 + &spmi_bus { 395 + pm8941@0 { 396 + charger@1000 { 397 + qcom,fast-charge-safe-current = <1300000>; 398 + qcom,fast-charge-current-limit = <1300000>; 399 + qcom,dc-current-limit = <1300000>; 400 + qcom,fast-charge-safe-voltage = <4400000>; 401 + qcom,fast-charge-high-threshold-voltage = <4350000>; 402 + qcom,fast-charge-low-threshold-voltage = <3400000>; 403 + qcom,auto-recharge-threshold-voltage = <4200000>; 404 + qcom,minimum-input-voltage = <4300000>; 405 + }; 406 + 407 + gpios@c000 { 408 + gpio_keys_pin_a: gpio-keys-active { 409 + pins = "gpio2", "gpio3", "gpio4", "gpio5"; 410 + function = "normal"; 411 + 412 + bias-pull-up; 413 + power-source = <PM8941_GPIO_S3>; 414 + }; 415 + }; 416 + 417 + coincell@2800 { 418 + status = "ok"; 419 + qcom,rset-ohms = <2100>; 420 + qcom,vset-millivolts = <3000>; 421 + }; 422 + }; 423 + 424 + pm8941@1 { 425 + wled@d800 { 426 + status = "ok"; 427 + 428 + qcom,cs-out; 429 + qcom,current-limit = <20>; 430 + qcom,current-boost-limit = <805>; 431 + qcom,switching-freq = <1600>; 432 + qcom,ovp = <29>; 433 + qcom,num-strings = <2>; 434 + }; 435 + }; 436 + };