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

Merge tag 'qcom-arm64-for-5.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/dt

Qualcomm ARM64 DT additional updates for 5.9

For SC7180 this adds the necessary properties for blowing fuses in
qfprom, Coresight fixes, GPU interconnect votes and specifies max speed
for USB controller.

SM8150 and SM8250 gains Adreno SMMU, the graphics management unit and
the GPU nodes, to enable headless GPU usage.

SDM845 gains tracing support for deep idle, GPU bus bandwidth scaling
and DB845c gains the LT9611 HDMI bridge wired up.

MSM8994 gains SMD RPM and SCM support and a new dts for the Sony Xperia
Z5.

MSM8992 is refactored and modernized and gets support for SCM, SPMI,
BLSP2 UART and I2C nodes, PMU, RPM clock controller, PSCI and proper CPU
definitions. Support for the Xiaomi Libra and Microsoft Lumia 950 are
added.

* tag 'qcom-arm64-for-5.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (31 commits)
arm64: dts: qcom: Add Microsoft Lumia 950 (Talkman) device tree
arm64: dts: qcom: Add Xiaomi Libra (Mi 4C) device tree
arm64: dts: qcom: msm8992: Add RPMCC node
arm64: dts: qcom: msm8992: Add PSCI support.
arm64: dts: qcom: msm8992: Add PMU node
arm64: dts: qcom: msm8992: Add BLSP2_UART2 and I2C nodes
arm64: dts: qcom: msm8992: Add SPMI PMIC arbiter device
arm64: dts: qcom: msm8992: Add a SCM node
arm64: dts: qcom: msm8992: Add a proper CPU map
arm64: dts: qcom: bullhead: Move UART pinctrl to SoC
arm64: dts: qcom: bullhead: Add qcom,msm-id
arm64: dts: qcom: msm8992: Fix SDHCI1
arm64: dts: qcom: msm8992: Modernize the DTS style
arm64: dts: qcom: Add support for Sony Xperia Z5 (SoMC Sumire-RoW)
arm64: dts: qcom: Move msm8994-smd-rpm contents to lg-bullhead.
arm64: dts: qcom: msm8994: Add support for SMD RPM
arm64: dts: qcom: msm8992: Add a label to rpm-requests
arm64: dts: qcom: msm8994: Add SCM node
arm64: dts: qcom: sdm845-db845c: Add hdmi bridge nodes
arm64: dts: qcom: add sm8250 GPU nodes
...

Link: https://lore.kernel.org/r/20200730052003.649940-1-bjorn.andersson@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

+1823 -504
+3
arch/arm64/boot/dts/qcom/Makefile
··· 9 9 dtb-$(CONFIG_ARCH_QCOM) += msm8916-samsung-a3u-eur.dtb 10 10 dtb-$(CONFIG_ARCH_QCOM) += msm8916-samsung-a5u-eur.dtb 11 11 dtb-$(CONFIG_ARCH_QCOM) += msm8992-bullhead-rev-101.dtb 12 + dtb-$(CONFIG_ARCH_QCOM) += msm8992-msft-lumia-talkman.dtb 13 + dtb-$(CONFIG_ARCH_QCOM) += msm8992-xiaomi-libra.dtb 12 14 dtb-$(CONFIG_ARCH_QCOM) += msm8994-angler-rev-101.dtb 15 + dtb-$(CONFIG_ARCH_QCOM) += msm8994-sony-xperia-kitakami-sumire.dtb 13 16 dtb-$(CONFIG_ARCH_QCOM) += msm8996-mtp.dtb 14 17 dtb-$(CONFIG_ARCH_QCOM) += msm8998-asus-novago-tp370ql.dtb 15 18 dtb-$(CONFIG_ARCH_QCOM) += msm8998-hp-envy-x2.dtb
+235 -10
arch/arm64/boot/dts/qcom/msm8992-bullhead-rev-101.dts
··· 11 11 model = "LG Nexus 5X"; 12 12 compatible = "lg,bullhead", "qcom,msm8992"; 13 13 /* required for bootloader to select correct board */ 14 + qcom,msm-id = <251 0>, <252 0>; 14 15 qcom,board-id = <0xb64 0>; 15 16 qcom,pmic-id = <0x10009 0x1000A 0x0 0x0>; 16 17 ··· 21 20 22 21 chosen { 23 22 stdout-path = "serial0:115200n8"; 24 - }; 25 - 26 - soc { 27 - serial@f991e000 { 28 - status = "okay"; 29 - pinctrl-names = "default", "sleep"; 30 - pinctrl-0 = <&blsp1_uart2_default>; 31 - pinctrl-1 = <&blsp1_uart2_sleep>; 32 - }; 33 23 }; 34 24 35 25 reserved-memory { ··· 39 47 }; 40 48 }; 41 49 42 - #include "msm8994-smd-rpm.dtsi" 50 + &blsp1_uart2 { 51 + status = "okay"; 52 + }; 53 + 54 + &rpm_requests { 55 + pm8994-regulators { 56 + compatible = "qcom,rpm-pm8994-regulators"; 57 + 58 + vdd_l1-supply = <&pm8994_s1>; 59 + vdd_l2_26_28-supply = <&pm8994_s3>; 60 + vdd_l3_11-supply = <&pm8994_s3>; 61 + vdd_l4_27_31-supply = <&pm8994_s3>; 62 + vdd_l5_7-supply = <&pm8994_s3>; 63 + vdd_l6_12_32-supply = <&pm8994_s5>; 64 + vdd_l8_16_30-supply = <&vreg_vph_pwr>; 65 + vdd_l9_10_18_22-supply = <&vreg_vph_pwr>; 66 + vdd_l13_19_23_24-supply = <&vreg_vph_pwr>; 67 + vdd_l14_15-supply = <&pm8994_s5>; 68 + vdd_l17_29-supply = <&vreg_vph_pwr>; 69 + vdd_l20_21-supply = <&vreg_vph_pwr>; 70 + vdd_l25-supply = <&pm8994_s5>; 71 + vdd_lvs1_2 = <&pm8994_s4>; 72 + 73 + pm8994_s1: s1 { 74 + regulator-min-microvolt = <800000>; 75 + regulator-max-microvolt = <800000>; 76 + }; 77 + 78 + pm8994_s2: s2 { 79 + /* TODO */ 80 + }; 81 + 82 + pm8994_s3: s3 { 83 + regulator-min-microvolt = <1300000>; 84 + regulator-max-microvolt = <1300000>; 85 + }; 86 + 87 + pm8994_s4: s4 { 88 + regulator-min-microvolt = <1800000>; 89 + regulator-max-microvolt = <1800000>; 90 + regulator-allow-set-load; 91 + regulator-system-load = <325000>; 92 + }; 93 + 94 + pm8994_s5: s5 { 95 + regulator-min-microvolt = <2150000>; 96 + regulator-max-microvolt = <2150000>; 97 + }; 98 + 99 + pm8994_s7: s7 { 100 + regulator-min-microvolt = <1000000>; 101 + regulator-max-microvolt = <1000000>; 102 + }; 103 + 104 + pm8994_l1: l1 { 105 + regulator-min-microvolt = <1000000>; 106 + regulator-max-microvolt = <1000000>; 107 + }; 108 + 109 + pm8994_l2: l2 { 110 + regulator-min-microvolt = <1250000>; 111 + regulator-max-microvolt = <1250000>; 112 + }; 113 + 114 + pm8994_l3: l3 { 115 + regulator-min-microvolt = <1200000>; 116 + regulator-max-microvolt = <1200000>; 117 + }; 118 + 119 + pm8994_l4: l4 { 120 + regulator-min-microvolt = <1225000>; 121 + regulator-max-microvolt = <1225000>; 122 + }; 123 + 124 + pm8994_l5: l5 { 125 + /* TODO */ 126 + }; 127 + 128 + pm8994_l6: l6 { 129 + regulator-min-microvolt = <1800000>; 130 + regulator-max-microvolt = <1800000>; 131 + }; 132 + 133 + pm8994_l7: l7 { 134 + /* TODO */ 135 + }; 136 + 137 + pm8994_l8: l8 { 138 + regulator-min-microvolt = <1800000>; 139 + regulator-max-microvolt = <1800000>; 140 + }; 141 + 142 + pm8994_l9: l9 { 143 + regulator-min-microvolt = <1800000>; 144 + regulator-max-microvolt = <1800000>; 145 + }; 146 + 147 + pm8994_l10: l10 { 148 + regulator-min-microvolt = <1800000>; 149 + regulator-max-microvolt = <1800000>; 150 + }; 151 + 152 + pm8994_l11: l11 { 153 + regulator-min-microvolt = <1200000>; 154 + regulator-max-microvolt = <1200000>; 155 + }; 156 + 157 + pm8994_l12: l12 { 158 + regulator-min-microvolt = <1800000>; 159 + regulator-max-microvolt = <1800000>; 160 + }; 161 + 162 + pm8994_l13: l13 { 163 + regulator-min-microvolt = <1800000>; 164 + regulator-max-microvolt = <2950000>; 165 + }; 166 + 167 + pm8994_l14: l14 { 168 + regulator-min-microvolt = <1200000>; 169 + regulator-max-microvolt = <1200000>; 170 + }; 171 + 172 + pm8994_l15: l15 { 173 + regulator-min-microvolt = <1800000>; 174 + regulator-max-microvolt = <1800000>; 175 + }; 176 + 177 + pm8994_l16: l16 { 178 + regulator-min-microvolt = <2700000>; 179 + regulator-max-microvolt = <2700000>; 180 + }; 181 + 182 + pm8994_l17: l17 { 183 + regulator-min-microvolt = <2700000>; 184 + regulator-max-microvolt = <2700000>; 185 + }; 186 + 187 + pm8994_l18: l18 { 188 + regulator-min-microvolt = <3000000>; 189 + regulator-max-microvolt = <3000000>; 190 + }; 191 + 192 + pm8994_l19: l19 { 193 + regulator-min-microvolt = <1800000>; 194 + regulator-max-microvolt = <1800000>; 195 + }; 196 + 197 + pm8994_l20: l20 { 198 + regulator-min-microvolt = <2950000>; 199 + regulator-max-microvolt = <2950000>; 200 + regulator-always-on; 201 + regulator-boot-on; 202 + regulator-allow-set-load; 203 + regulator-system-load = <570000>; 204 + }; 205 + 206 + pm8994_l21: l21 { 207 + regulator-min-microvolt = <1800000>; 208 + regulator-max-microvolt = <1800000>; 209 + regulator-always-on; 210 + }; 211 + 212 + pm8994_l22: l22 { 213 + regulator-min-microvolt = <3100000>; 214 + regulator-max-microvolt = <3100000>; 215 + }; 216 + 217 + pm8994_l23: l23 { 218 + regulator-min-microvolt = <2800000>; 219 + regulator-max-microvolt = <2800000>; 220 + }; 221 + 222 + pm8994_l24: l24 { 223 + regulator-min-microvolt = <3075000>; 224 + regulator-max-microvolt = <3150000>; 225 + }; 226 + 227 + pm8994_l25: l25 { 228 + regulator-min-microvolt = <1800000>; 229 + regulator-max-microvolt = <1800000>; 230 + }; 231 + 232 + pm8994_l26: l26 { 233 + /* TODO: value from downstream 234 + regulator-min-microvolt = <987500>; 235 + fails to apply */ 236 + }; 237 + 238 + pm8994_l27: l27 { 239 + regulator-min-microvolt = <1050000>; 240 + regulator-max-microvolt = <1050000>; 241 + }; 242 + 243 + pm8994_l28: l28 { 244 + regulator-min-microvolt = <1000000>; 245 + regulator-max-microvolt = <1000000>; 246 + }; 247 + 248 + pm8994_l29: l29 { 249 + /* TODO: Unsupported voltage range. 250 + regulator-min-microvolt = <2800000>; 251 + regulator-max-microvolt = <2800000>; 252 + qcom,init-voltage = <2800000>; 253 + */ 254 + }; 255 + 256 + pm8994_l30: l30 { 257 + /* TODO: get this verified 258 + regulator-min-microvolt = <1800000>; 259 + regulator-max-microvolt = <1800000>; 260 + qcom,init-voltage = <1800000>; 261 + */ 262 + }; 263 + 264 + pm8994_l31: l31 { 265 + regulator-min-microvolt = <1262500>; 266 + regulator-max-microvolt = <1262500>; 267 + }; 268 + 269 + pm8994_l32: l32 { 270 + /* TODO: get this verified 271 + regulator-min-microvolt = <1800000>; 272 + regulator-max-microvolt = <1800000>; 273 + qcom,init-voltage = <1800000>; 274 + */ 275 + }; 276 + }; 277 + }; 278 + 279 + &sdhc_1 { 280 + status = "okay"; 281 + 282 + mmc-hs400-1_8v; 283 + };
+39
arch/arm64/boot/dts/qcom/msm8992-msft-lumia-talkman.dts
··· 1 + // SPDX-License-Identifier: BSD-3-Clause 2 + /* 3 + * Copyright (c) 2020, Konrad Dybcio 4 + */ 5 + 6 + /dts-v1/; 7 + 8 + #include "msm8992.dtsi" 9 + #include "pm8994.dtsi" 10 + #include "pmi8994.dtsi" 11 + #include <dt-bindings/gpio/gpio.h> 12 + #include <dt-bindings/input/gpio-keys.h> 13 + 14 + / { 15 + model = "Microsoft Lumia 950"; 16 + compatible = "microsoft,talkman", "qcom,msm8992"; 17 + 18 + /* Most Lumia 950 users use GRUB to load their kernels, 19 + * hence there is no need for msm-id and friends. 20 + */ 21 + 22 + /* This enables graphical output via bootloader-enabled display. 23 + * acpi=no is required due to WP platforms having ACPI support, but 24 + * only for Windows-based OSes. 25 + */ 26 + chosen { 27 + bootargs = "earlycon=efifb console=efifb acpi=no"; 28 + 29 + #address-cells = <2>; 30 + #size-cells = <2>; 31 + ranges; 32 + }; 33 + }; 34 + 35 + &sdhc_1 { 36 + status = "okay"; 37 + 38 + mmc-hs200-1_8v; 39 + };
-90
arch/arm64/boot/dts/qcom/msm8992-pins.dtsi
··· 1 - // SPDX-License-Identifier: GPL-2.0-only 2 - /* 3 - * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved. 4 - */ 5 - 6 - &msmgpio { 7 - blsp1_uart2_default: blsp1_uart2_default { 8 - pinmux { 9 - function = "blsp_uart2"; 10 - pins = "gpio4", "gpio5"; 11 - }; 12 - pinconf { 13 - pins = "gpio4", "gpio5"; 14 - drive-strength = <16>; 15 - bias-disable; 16 - }; 17 - }; 18 - 19 - blsp1_uart2_sleep: blsp1_uart2_sleep { 20 - pinmux { 21 - function = "gpio"; 22 - pins = "gpio4", "gpio5"; 23 - }; 24 - pinconf { 25 - pins = "gpio4", "gpio5"; 26 - drive-strength = <2>; 27 - bias-pull-down; 28 - }; 29 - }; 30 - 31 - /* 0-3 for sdc1 4-6 for sdc2 */ 32 - /* Order of pins */ 33 - /* SDC1: CLK -> 0, CMD -> 1, DATA -> 2, RCLK -> 3 */ 34 - /* SDC2: CLK -> 4, CMD -> 5, DATA -> 6 */ 35 - sdc1_clk_on: clk-on { 36 - pinconf { 37 - pins = "sdc1_clk"; 38 - bias-disable = <0>; /* No pull */ 39 - drive-strength = <16>; /* 16mA */ 40 - }; 41 - }; 42 - 43 - sdc1_clk_off: clk-off { 44 - pinconf { 45 - pins = "sdc1_clk"; 46 - bias-disable = <0>; /* No pull */ 47 - drive-strength = <2>; /* 2mA */ 48 - }; 49 - }; 50 - 51 - sdc1_cmd_on: cmd-on { 52 - pinconf { 53 - pins = "sdc1_cmd"; 54 - bias-pull-up; 55 - drive-strength = <8>; 56 - }; 57 - }; 58 - 59 - sdc1_cmd_off: cmd-off { 60 - pinconf { 61 - pins = "sdc1_cmd"; 62 - bias-pull-up = <0x3>; /* same as 3.10 ?? */ 63 - drive-strength = <2>; /* 2mA */ 64 - }; 65 - }; 66 - 67 - sdc1_data_on: data-on { 68 - pinconf { 69 - pins = "sdc1_data"; 70 - bias-pull-up; 71 - drive-strength = <8>; /* 8mA */ 72 - }; 73 - }; 74 - 75 - sdc1_data_off: data-off { 76 - pinconf { 77 - pins = "sdc1_data"; 78 - bias-pull-up; 79 - drive-strength = <2>; 80 - }; 81 - }; 82 - 83 - sdc1_rclk_on: rclk-on { 84 - bias-pull-down; /* pull down */ 85 - }; 86 - 87 - sdc1_rclk_off: rclk-off { 88 - bias-pull-down; /* pull down */ 89 - }; 90 - };
+364
arch/arm64/boot/dts/qcom/msm8992-xiaomi-libra.dts
··· 1 + // SPDX-License-Identifier: BSD-3-Clause 2 + /* 3 + * Copyright (c) 2020, Konrad Dybcio 4 + */ 5 + 6 + /dts-v1/; 7 + 8 + #include "msm8992.dtsi" 9 + #include "pm8994.dtsi" 10 + #include "pmi8994.dtsi" 11 + #include <dt-bindings/gpio/gpio.h> 12 + #include <dt-bindings/input/gpio-keys.h> 13 + 14 + / { 15 + model = "Xiaomi Mi 4C"; 16 + compatible = "xiaomi,libra", "qcom,msm8992"; 17 + /* required for bootloader to select correct board */ 18 + qcom,msm-id = <251 0 252 0>; 19 + qcom,pmic-id = <65545 65546 0 0>; 20 + qcom,board-id = <12 0>; 21 + 22 + /* This enables graphical output via bootloader-enabled display */ 23 + chosen { 24 + bootargs = "earlycon=tty0 console=tty0"; 25 + 26 + #address-cells = <2>; 27 + #size-cells = <2>; 28 + ranges; 29 + 30 + framebuffer0: framebuffer@3404000 { 31 + status= "okay"; 32 + compatible = "simple-framebuffer"; 33 + reg = <0 0x3404000 0 (1080 * 1920 * 3)>; 34 + width = <1080>; 35 + height = <1920>; 36 + stride = <(1080 * 3)>; 37 + format = "r8g8b8"; 38 + }; 39 + }; 40 + 41 + gpio_keys { 42 + compatible = "gpio-keys"; 43 + input-name = "gpio-keys"; 44 + #address-cells = <1>; 45 + #size-cells = <0>; 46 + autorepeat; 47 + 48 + button@0 { 49 + label = "Volume Up"; 50 + gpios = <&pm8994_gpios 3 GPIO_ACTIVE_LOW>; 51 + linux,input-type = <1>; 52 + linux,code = <KEY_VOLUMEUP>; 53 + wakeup-source; 54 + debounce-interval = <15>; 55 + }; 56 + }; 57 + 58 + reserved-memory { 59 + #address-cells = <2>; 60 + #size-cells = <2>; 61 + ranges; 62 + 63 + /* This is for getting crash logs using Android downstream kernels */ 64 + ramoops@dfc00000 { 65 + compatible = "ramoops"; 66 + reg = <0x0 0xdfc00000 0x0 0x40000>; 67 + console-size = <0x10000>; 68 + record-size = <0x10000>; 69 + ftrace-size = <0x10000>; 70 + pmsg-size = <0x20000>; 71 + }; 72 + 73 + continuous_splash: framebuffer@3401000{ 74 + reg = <0x0 0x3401000 0x0 0x2200000>; 75 + no-map; 76 + }; 77 + 78 + dfps_data_mem: dfps_data_mem@3400000 { 79 + reg = <0x0 0x3400000 0x0 0x1000>; 80 + no-map; 81 + }; 82 + 83 + peripheral_region: peripheral_region@7400000 { 84 + reg = <0x0 0x7400000 0x0 0x1c00000>; 85 + no-map; 86 + }; 87 + 88 + modem_region: modem_region@9000000 { 89 + reg = <0x0 0x9000000 0x0 0x5a00000>; 90 + no-map; 91 + }; 92 + 93 + tzapp: modem_region@ea00000 { 94 + reg = <0x0 0xea00000 0x0 0x1900000>; 95 + no-map; 96 + }; 97 + }; 98 + }; 99 + 100 + &blsp_i2c2 { 101 + status = "okay"; 102 + 103 + /* Atmel or Synaptics touchscreen */ 104 + }; 105 + 106 + &blsp_i2c5 { 107 + status = "okay"; 108 + 109 + /* Silabs si4705 FM transmitter */ 110 + }; 111 + 112 + &blsp_i2c6 { 113 + status = "okay"; 114 + 115 + /* NCI NFC, 116 + * TI USB320 Type-C controller, 117 + * Pericom 30216a USB (de)mux switch 118 + */ 119 + }; 120 + 121 + &blsp_i2c7 { 122 + status = "okay"; 123 + 124 + /* cm36686 proximity and ambient light sensor */ 125 + }; 126 + 127 + &blsp_i2c13 { 128 + status = "okay"; 129 + 130 + /* ST lsm6db0 gyro/accelerometer */ 131 + }; 132 + 133 + &blsp2_uart2 { 134 + status = "okay"; 135 + }; 136 + 137 + &rpm_requests { 138 + pm8994-regulators { 139 + compatible = "qcom,rpm-pm8994-regulators"; 140 + 141 + vdd_l1-supply = <&pm8994_s7>; 142 + vdd_l2_26_28-supply = <&pm8994_s3>; 143 + vdd_l3_11-supply = <&pm8994_s3>; 144 + vdd_l4_27_31-supply = <&pm8994_s3>; 145 + vdd_l5_7-supply = <&pm8994_s3>; 146 + vdd_l6_12_32-supply = <&pm8994_s5>; 147 + vdd_l8_16_30-supply = <&vreg_vph_pwr>; 148 + vdd_l9_10_18_22-supply = <&vreg_vph_pwr>; 149 + vdd_l13_19_23_24-supply = <&vreg_vph_pwr>; 150 + vdd_l14_15-supply = <&pm8994_s5>; 151 + vdd_l17_29-supply = <&vreg_vph_pwr>; 152 + vdd_l20_21-supply = <&vreg_vph_pwr>; 153 + vdd_l25-supply = <&pm8994_s5>; 154 + vdd_lvs1_2 = <&pm8994_s4>; 155 + 156 + pm8994_s1: s1 { 157 + /* unused */ 158 + status = "disabled"; 159 + }; 160 + 161 + pm8994_s2: s2 { 162 + /* unused */ 163 + status = "disabled"; 164 + }; 165 + 166 + pm8994_s3: s3 { 167 + regulator-min-microvolt = <1300000>; 168 + regulator-max-microvolt = <1300000>; 169 + }; 170 + 171 + pm8994_s4: s4 { 172 + regulator-min-microvolt = <1800000>; 173 + regulator-max-microvolt = <1800000>; 174 + regulator-allow-set-load; 175 + regulator-always-on; 176 + regulator-system-load = <325000>; 177 + }; 178 + 179 + pm8994_s5: s5 { 180 + regulator-min-microvolt = <2150000>; 181 + regulator-max-microvolt = <2150000>; 182 + }; 183 + 184 + pm8994_s7: s7 { 185 + regulator-min-microvolt = <1000000>; 186 + regulator-max-microvolt = <1000000>; 187 + }; 188 + 189 + pm8994_l1: l1 { 190 + regulator-min-microvolt = <1000000>; 191 + regulator-max-microvolt = <1000000>; 192 + }; 193 + 194 + pm8994_l2: l2 { 195 + regulator-min-microvolt = <1250000>; 196 + regulator-max-microvolt = <1250000>; 197 + }; 198 + 199 + pm8994_l3: l3 { 200 + regulator-min-microvolt = <1200000>; 201 + regulator-max-microvolt = <1200000>; 202 + }; 203 + 204 + pm8994_l4: l4 { 205 + regulator-min-microvolt = <1225000>; 206 + regulator-max-microvolt = <1225000>; 207 + }; 208 + 209 + pm8994_l5: l5 { 210 + /* unused */ 211 + status = "disabled"; 212 + }; 213 + 214 + pm8994_l6: l6 { 215 + regulator-min-microvolt = <1800000>; 216 + regulator-max-microvolt = <1800000>; 217 + }; 218 + 219 + pm8994_l7: l7 { 220 + /* unused */ 221 + status = "disabled"; 222 + }; 223 + 224 + pm8994_l8: l8 { 225 + regulator-min-microvolt = <1800000>; 226 + regulator-max-microvolt = <1800000>; 227 + }; 228 + 229 + pm8994_l9: l9 { 230 + regulator-min-microvolt = <1800000>; 231 + regulator-max-microvolt = <1800000>; 232 + }; 233 + 234 + pm8994_l10: l10 { 235 + regulator-min-microvolt = <1800000>; 236 + regulator-max-microvolt = <1800000>; 237 + }; 238 + 239 + pm8994_l11: l11 { 240 + regulator-min-microvolt = <1200000>; 241 + regulator-max-microvolt = <1200000>; 242 + }; 243 + 244 + pm8994_l12: l12 { 245 + regulator-min-microvolt = <1800000>; 246 + regulator-max-microvolt = <1800000>; 247 + }; 248 + 249 + pm8994_l13: l13 { 250 + regulator-min-microvolt = <1800000>; 251 + regulator-max-microvolt = <2950000>; 252 + }; 253 + 254 + pm8994_l14: l14 { 255 + regulator-min-microvolt = <1800000>; 256 + regulator-max-microvolt = <1800000>; 257 + }; 258 + 259 + pm8994_l15: l15 { 260 + regulator-min-microvolt = <1800000>; 261 + regulator-max-microvolt = <1800000>; 262 + }; 263 + 264 + pm8994_l16: l16 { 265 + regulator-min-microvolt = <2700000>; 266 + regulator-max-microvolt = <2700000>; 267 + }; 268 + 269 + pm8994_l17: l17 { 270 + regulator-min-microvolt = <2700000>; 271 + regulator-max-microvolt = <2700000>; 272 + }; 273 + 274 + pm8994_l18: l18 { 275 + regulator-min-microvolt = <2850000>; 276 + regulator-max-microvolt = <2850000>; 277 + regulator-always-on; 278 + }; 279 + 280 + pm8994_l19: l19 { 281 + regulator-min-microvolt = <2800000>; 282 + regulator-max-microvolt = <2800000>; 283 + }; 284 + 285 + pm8994_l20: l20 { 286 + regulator-min-microvolt = <2950000>; 287 + regulator-max-microvolt = <2950000>; 288 + regulator-always-on; 289 + regulator-boot-on; 290 + regulator-allow-set-load; 291 + regulator-system-load = <570000>; 292 + }; 293 + 294 + pm8994_l21: l21 { 295 + regulator-min-microvolt = <2950000>; 296 + regulator-max-microvolt = <2950000>; 297 + regulator-always-on; 298 + }; 299 + 300 + pm8994_l22: l22 { 301 + regulator-min-microvolt = <3000000>; 302 + regulator-max-microvolt = <3000000>; 303 + }; 304 + 305 + pm8994_l23: l23 { 306 + regulator-min-microvolt = <2800000>; 307 + regulator-max-microvolt = <2800000>; 308 + }; 309 + 310 + pm8994_l24: l24 { 311 + regulator-min-microvolt = <3075000>; 312 + regulator-max-microvolt = <3150000>; 313 + }; 314 + 315 + pm8994_l25: l25 { 316 + regulator-min-microvolt = <1000000>; 317 + regulator-max-microvolt = <1000000>; 318 + }; 319 + 320 + pm8994_l26: l26 { 321 + regulator-min-microvolt = <987500>; 322 + regulator-max-microvolt = <987500>; 323 + 324 + }; 325 + 326 + pm8994_l27: l27 { 327 + regulator-min-microvolt = <1050000>; 328 + regulator-max-microvolt = <1050000>; 329 + }; 330 + 331 + pm8994_l28: l28 { 332 + regulator-min-microvolt = <1000000>; 333 + regulator-max-microvolt = <1000000>; 334 + }; 335 + 336 + pm8994_l29: l29 { 337 + regulator-min-microvolt = <2800000>; 338 + regulator-max-microvolt = <2800000>; 339 + }; 340 + 341 + pm8994_l30: l30 { 342 + regulator-min-microvolt = <1800000>; 343 + regulator-max-microvolt = <1800000>; 344 + }; 345 + 346 + pm8994_l31: l31 { 347 + regulator-min-microvolt = <1262500>; 348 + regulator-max-microvolt = <1262500>; 349 + }; 350 + 351 + pm8994_l32: l32 { 352 + regulator-min-microvolt = <1800000>; 353 + regulator-max-microvolt = <1800000>; 354 + }; 355 + }; 356 + }; 357 + 358 + &sdhc_1 { 359 + status = "okay"; 360 + 361 + mmc-hs400-1_8v; 362 + vmmc-supply = <&pm8994_l20>; 363 + vqmmc-supply = <&pm8994_s4>; 364 + };
+438 -134
arch/arm64/boot/dts/qcom/msm8992.dtsi
··· 6 6 #include <dt-bindings/clock/qcom,gcc-msm8994.h> 7 7 8 8 / { 9 - model = "Qualcomm Technologies, Inc. MSM 8992"; 10 - compatible = "qcom,msm8992"; 11 - // msm-id needed by bootloader for selecting correct blob 12 - qcom,msm-id = <251 0>, <252 0>; 13 9 interrupt-parent = <&intc>; 14 10 15 11 #address-cells = <2>; ··· 16 20 cpus { 17 21 #address-cells = <2>; 18 22 #size-cells = <0>; 19 - cpu-map { 20 - cluster0 { 21 - core0 { 22 - cpu = <&CPU0>; 23 - }; 24 - }; 25 - }; 26 23 27 24 CPU0: cpu@0 { 28 25 device_type = "cpu"; 29 26 compatible = "arm,cortex-a53"; 30 27 reg = <0x0 0x0>; 31 28 next-level-cache = <&L2_0>; 29 + enable-method = "psci"; 32 30 L2_0: l2-cache { 33 31 compatible = "cache"; 34 32 cache-level = <2>; 35 33 }; 36 34 }; 35 + 36 + CPU1: cpu@1 { 37 + device_type = "cpu"; 38 + compatible = "arm,cortex-a53"; 39 + reg = <0x0 0x1>; 40 + next-level-cache = <&L2_0>; 41 + enable-method = "psci"; 42 + }; 43 + 44 + CPU2: cpu@2 { 45 + device_type = "cpu"; 46 + compatible = "arm,cortex-a53"; 47 + reg = <0x0 0x2>; 48 + next-level-cache = <&L2_0>; 49 + enable-method = "psci"; 50 + }; 51 + 52 + CPU3: cpu@3 { 53 + device_type = "cpu"; 54 + compatible = "arm,cortex-a53"; 55 + reg = <0x0 0x3>; 56 + next-level-cache = <&L2_0>; 57 + enable-method = "psci"; 58 + }; 59 + 60 + CPU4: cpu@100 { 61 + device_type = "cpu"; 62 + compatible = "arm,cortex-a57"; 63 + reg = <0x0 0x100>; 64 + next-level-cache = <&L2_1>; 65 + enable-method = "psci"; 66 + L2_1: l2-cache { 67 + compatible = "cache"; 68 + cache-level = <2>; 69 + }; 70 + }; 71 + 72 + CPU5: cpu@101 { 73 + device_type = "cpu"; 74 + compatible = "arm,cortex-a57"; 75 + reg = <0x0 0x101>; 76 + next-level-cache = <&L2_1>; 77 + enable-method = "psci"; 78 + }; 79 + 80 + cpu-map { 81 + cluster0 { 82 + core0 { 83 + cpu = <&CPU0>; 84 + }; 85 + 86 + core1 { 87 + cpu = <&CPU1>; 88 + }; 89 + 90 + core2 { 91 + cpu = <&CPU2>; 92 + }; 93 + 94 + core3 { 95 + cpu = <&CPU3>; 96 + }; 97 + }; 98 + 99 + cluster1 { 100 + core0 { 101 + cpu = <&CPU4>; 102 + }; 103 + 104 + core1 { 105 + cpu = <&CPU5>; 106 + }; 107 + }; 108 + }; 37 109 }; 38 110 39 - timer { 40 - compatible = "arm,armv8-timer"; 41 - interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 42 - <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 43 - <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 44 - <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 111 + clocks { 112 + xo_board: xo_board { 113 + compatible = "fixed-clock"; 114 + #clock-cells = <0>; 115 + clock-frequency = <19200000>; 116 + }; 117 + 118 + sleep_clk: sleep_clk { 119 + compatible = "fixed-clock"; 120 + #clock-cells = <0>; 121 + clock-frequency = <32768>; 122 + }; 45 123 }; 46 124 47 - xo_board: xo_board { 48 - compatible = "fixed-clock"; 49 - #clock-cells = <0>; 50 - clock-frequency = <19200000>; 125 + firmware { 126 + scm { 127 + compatible = "qcom,scm-msm8994", "qcom,scm"; 128 + }; 51 129 }; 52 130 53 - sleep_clk: sleep_clk { 54 - compatible = "fixed-clock"; 55 - #clock-cells = <0>; 56 - clock-frequency = <32768>; 131 + memory { 132 + device_type = "memory"; 133 + /* We expect the bootloader to fill in the reg */ 134 + reg = <0 0 0 0>; 57 135 }; 58 136 59 - vreg_vph_pwr: vreg-vph-pwr { 60 - compatible = "regulator-fixed"; 61 - status = "okay"; 62 - regulator-name = "vph-pwr"; 137 + pmu { 138 + compatible = "arm,cortex-a53-pmu"; 139 + interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4)| IRQ_TYPE_LEVEL_HIGH)>; 140 + }; 63 141 64 - regulator-min-microvolt = <3600000>; 65 - regulator-max-microvolt = <3600000>; 142 + psci { 143 + compatible = "arm,psci-0.2"; 144 + method = "hvc"; 145 + }; 66 146 67 - regulator-always-on; 147 + reserved-memory { 148 + #address-cells = <2>; 149 + #size-cells = <2>; 150 + ranges; 151 + 152 + smem_region: smem@6a00000 { 153 + reg = <0x0 0x6a00000 0x0 0x200000>; 154 + no-map; 155 + }; 68 156 }; 69 157 70 158 sfpb_mutex: hwmutex { ··· 178 98 <0xf9002000 0x1000>; 179 99 }; 180 100 181 - apcs: syscon@f900d000 { 182 - compatible = "syscon"; 101 + apcs: mailbox@f900d000 { 102 + compatible = "qcom,msm8994-apcs-kpss-global", "syscon"; 183 103 reg = <0xf900d000 0x2000>; 104 + #mbox-cells = <1>; 184 105 }; 185 106 186 107 timer@f9020000 { ··· 242 161 }; 243 162 }; 244 163 245 - restart@fc4ab000 { 246 - compatible = "qcom,pshold"; 247 - reg = <0xfc4ab000 0x4>; 248 - }; 249 - 250 - msmgpio: pinctrl@fd510000 { 251 - compatible = "qcom,msm8994-pinctrl"; 252 - reg = <0xfd510000 0x4000>; 253 - interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; 254 - gpio-controller; 255 - gpio-ranges = <&msmgpio 0 0 146>; 256 - #gpio-cells = <2>; 257 - interrupt-controller; 258 - #interrupt-cells = <2>; 259 - }; 260 - 261 - blsp1_uart2: serial@f991e000 { 262 - compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 263 - reg = <0xf991e000 0x1000>; 264 - interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_LOW>; 265 - status = "disabled"; 266 - clock-names = "core", "iface"; 267 - clocks = <&clock_gcc GCC_BLSP1_UART2_APPS_CLK>, 268 - <&clock_gcc GCC_BLSP1_AHB_CLK>; 269 - }; 270 - 271 - clock_gcc: clock-controller@fc400000 { 272 - compatible = "qcom,gcc-msm8994"; 273 - #clock-cells = <1>; 274 - #reset-cells = <1>; 275 - #power-domain-cells = <1>; 276 - reg = <0xfc400000 0x2000>; 277 - }; 278 - 279 - sdhci1: mmc@f9824900 { 164 + sdhc_1: sdhci@f9824900 { 280 165 compatible = "qcom,sdhci-msm-v4"; 281 166 reg = <0xf9824900 0x1a0>, <0xf9824000 0x800>; 282 167 reg-names = "hc_mem", "core_mem"; 283 168 284 - interrupts = <GIC_SPI 123 IRQ_TYPE_NONE>, 285 - <GIC_SPI 138 IRQ_TYPE_NONE>; 169 + interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, 170 + <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>; 286 171 interrupt-names = "hc_irq", "pwr_irq"; 287 172 288 - clocks = <&clock_gcc GCC_SDCC1_APPS_CLK>, 289 - <&clock_gcc GCC_SDCC1_AHB_CLK>; 290 - clock-names = "core", "iface"; 173 + clocks = <&gcc GCC_SDCC1_APPS_CLK>, 174 + <&gcc GCC_SDCC1_AHB_CLK>, 175 + <&xo_board>; 176 + clock-names = "core", "iface", "xo"; 291 177 292 178 pinctrl-names = "default", "sleep"; 293 179 pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on ··· 264 216 265 217 regulator-always-on; 266 218 bus-width = <8>; 267 - mmc-hs400-1_8v; 268 - status = "okay"; 219 + non-removable; 220 + 221 + status = "disabled"; 222 + }; 223 + 224 + blsp1_uart2: serial@f991e000 { 225 + compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 226 + reg = <0xf991e000 0x1000>; 227 + interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_LOW>; 228 + clock-names = "core", "iface"; 229 + clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, 230 + <&gcc GCC_BLSP1_AHB_CLK>; 231 + pinctrl-names = "default", "sleep"; 232 + pinctrl-0 = <&blsp1_uart2_default>; 233 + pinctrl-1 = <&blsp1_uart2_sleep>; 234 + status = "disabled"; 235 + }; 236 + 237 + blsp_i2c2: i2c@f9924000 { 238 + compatible = "qcom,i2c-qup-v2.2.1"; 239 + reg = <0xf9924000 0x500>; 240 + interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 241 + clocks = <&gcc GCC_BLSP1_AHB_CLK>, 242 + <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>; 243 + clock-names = "iface", "core"; 244 + clock-frequency = <400000>; 245 + pinctrl-names = "default", "sleep"; 246 + pinctrl-0 = <&i2c2_default>; 247 + pinctrl-1 = <&i2c2_sleep>; 248 + #address-cells = <1>; 249 + #size-cells = <0>; 250 + status = "disabled"; 251 + }; 252 + 253 + /* Somebody was very creative with their numbering scheme downstream... */ 254 + 255 + blsp_i2c13: i2c@f9927000 { 256 + compatible = "qcom,i2c-qup-v2.2.1"; 257 + reg = <0xf9927000 0x500>; 258 + interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; 259 + clocks = <&gcc GCC_BLSP1_AHB_CLK>, 260 + <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>; 261 + clock-names = "iface", "core"; 262 + clock-frequency = <400000>; 263 + pinctrl-names = "default", "sleep"; 264 + pinctrl-0 = <&i2c13_default>; 265 + pinctrl-1 = <&i2c13_sleep>; 266 + #address-cells = <1>; 267 + #size-cells = <0>; 268 + status = "disabled"; 269 + }; 270 + 271 + blsp_i2c6: i2c@f9928000 { 272 + compatible = "qcom,i2c-qup-v2.2.1"; 273 + reg = <0xf9928000 0x500>; 274 + interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 275 + clocks = <&gcc GCC_BLSP1_AHB_CLK>, 276 + <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>; 277 + clock-names = "iface", "core"; 278 + clock-frequency = <400000>; 279 + pinctrl-names = "default", "sleep"; 280 + pinctrl-0 = <&i2c6_default>; 281 + pinctrl-1 = <&i2c6_sleep>; 282 + #address-cells = <1>; 283 + #size-cells = <0>; 284 + status = "disabled"; 285 + }; 286 + 287 + blsp2_uart2: serial@f995e000 { 288 + compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 289 + reg = <0xf995e000 0x1000>; 290 + interrupt = <GIC_SPI 146 IRQ_TYPE_LEVEL_LOW>; 291 + clock-names = "core", "iface"; 292 + clocks = <&gcc GCC_BLSP2_UART2_APPS_CLK>, 293 + <&gcc GCC_BLSP2_AHB_CLK>; 294 + pinctrl-names = "default", "sleep"; 295 + pinctrl-0 = <&blsp2_uart2_default>; 296 + pinctrl-1 = <&blsp2_uart2_sleep>; 297 + status = "disabled"; 298 + }; 299 + 300 + blsp_i2c7: i2c@f9963000 { 301 + compatible = "qcom,i2c-qup-v2.2.1"; 302 + reg = <0xf9963000 0x500>; 303 + interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; 304 + clocks = <&gcc GCC_BLSP2_AHB_CLK>, 305 + <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>; 306 + clock-names = "iface", "core"; 307 + clock-frequency = <400000>; 308 + pinctrl-names = "default", "sleep"; 309 + pinctrl-0 = <&i2c7_default>; 310 + pinctrl-1 = <&i2c7_sleep>; 311 + #address-cells = <1>; 312 + #size-cells = <0>; 313 + status = "disabled"; 314 + }; 315 + 316 + blsp_i2c5: i2c@f9967000 { 317 + compatible = "qcom,i2c-qup-v2.2.1"; 318 + reg = <0xf9967000 0x500>; 319 + interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; 320 + clocks = <&gcc GCC_BLSP2_AHB_CLK>, 321 + <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>; 322 + clock-names = "iface", "core"; 323 + clock-frequency = <100000>; 324 + pinctrl-names = "default", "sleep"; 325 + pinctrl-0 = <&i2c5_default>; 326 + pinctrl-1 = <&i2c5_sleep>; 327 + #address-cells = <1>; 328 + #size-cells = <0>; 329 + status = "disabled"; 330 + }; 331 + 332 + gcc: clock-controller@fc400000 { 333 + compatible = "qcom,gcc-msm8994"; 334 + #clock-cells = <1>; 335 + #reset-cells = <1>; 336 + #power-domain-cells = <1>; 337 + reg = <0xfc400000 0x2000>; 269 338 }; 270 339 271 340 rpm_msg_ram: memory@fc428000 { 272 341 compatible = "qcom,rpm-msg-ram"; 273 342 reg = <0xfc428000 0x4000>; 343 + }; 344 + 345 + restart@fc4ab000 { 346 + compatible = "qcom,pshold"; 347 + reg = <0xfc4ab000 0x4>; 348 + }; 349 + 350 + spmi_bus: spmi@fc4c0000 { 351 + compatible = "qcom,spmi-pmic-arb"; 352 + reg = <0xfc4cf000 0x1000>, 353 + <0xfc4cb000 0x1000>, 354 + <0xfc4ca000 0x1000>; 355 + reg-names = "core", "intr", "cnfg"; 356 + interrupt-names = "periph_irq"; 357 + interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; 358 + qcom,ee = <0>; 359 + qcom,channel = <0>; 360 + #address-cells = <2>; 361 + #size-cells = <0>; 362 + interrupt-controller; 363 + #interrupt-cells = <4>; 274 364 }; 275 365 276 366 sfpb_mutex_regs: syscon@fd484000 { ··· 417 231 compatible = "syscon"; 418 232 reg = <0xfd484000 0x400>; 419 233 }; 420 - }; 421 234 422 - memory { 423 - device_type = "memory"; 424 - reg = <0 0 0 0>; // bootloader will update 425 - }; 235 + tlmm: pinctrl@fd510000 { 236 + compatible = "qcom,msm8994-pinctrl"; 237 + reg = <0xfd510000 0x4000>; 238 + interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; 239 + gpio-controller; 240 + gpio-ranges = <&tlmm 0 0 146>; 241 + #gpio-cells = <2>; 242 + interrupt-controller; 243 + #interrupt-cells = <2>; 426 244 427 - reserved-memory { 428 - #address-cells = <2>; 429 - #size-cells = <2>; 430 - ranges; 245 + blsp1_uart2_default: blsp1-uart2-default { 246 + function = "blsp_uart2"; 247 + pins = "gpio4", "gpio5"; 248 + drive-strength = <16>; 249 + bias-disable; 250 + }; 431 251 432 - smem_region: smem@6a00000 { 433 - reg = <0x0 0x6a00000 0x0 0x200000>; 434 - no-map; 252 + blsp1_uart2_sleep: blsp1-uart2-sleep { 253 + function = "gpio"; 254 + pins = "gpio4", "gpio5"; 255 + drive-strength = <2>; 256 + bias-pull-down; 257 + }; 258 + 259 + blsp2_uart2_default: blsp2-uart2-default { 260 + function = "blsp_uart8"; 261 + pins = "gpio45", "gpio46", "gpio47", "gpio48"; 262 + drive-strength = <16>; 263 + bias-disable; 264 + }; 265 + 266 + blsp2_uart2_sleep: blsp2-uart2-sleep { 267 + function = "gpio"; 268 + pins = "gpio45", "gpio46", "gpio47", "gpio48"; 269 + drive-strength = <2>; 270 + bias-pull-down; 271 + }; 272 + 273 + sdc1_clk_on: clk-on { 274 + pins = "sdc1_clk"; 275 + bias-disable; 276 + drive-strength = <6>; 277 + }; 278 + 279 + sdc1_clk_off: clk-off { 280 + pins = "sdc1_clk"; 281 + bias-disable; 282 + drive-strength = <2>; 283 + }; 284 + 285 + sdc1_cmd_on: cmd-on { 286 + pins = "sdc1_cmd"; 287 + bias-pull-up; 288 + drive-strength = <6>; 289 + }; 290 + 291 + sdc1_cmd_off: cmd-off { 292 + pins = "sdc1_cmd"; 293 + bias-pull-up; 294 + drive-strength = <2>; 295 + }; 296 + 297 + sdc1_data_on: data-on { 298 + pins = "sdc1_data"; 299 + bias-pull-up; 300 + drive-strength = <6>; 301 + }; 302 + 303 + sdc1_data_off: data-off { 304 + pins = "sdc1_data"; 305 + bias-pull-up; 306 + drive-strength = <2>; 307 + }; 308 + 309 + sdc1_rclk_on: rclk-on { 310 + pins = "sdc1_rclk"; 311 + bias-pull-down; 312 + }; 313 + 314 + sdc1_rclk_off: rclk-off { 315 + pins = "sdc1_rclk"; 316 + bias-pull-down; 317 + }; 318 + 319 + i2c2_default: i2c2-default { 320 + function = "blsp_i2c2"; 321 + pins = "gpio6", "gpio7"; 322 + drive-strength = <2>; 323 + bias-disable; 324 + }; 325 + 326 + i2c2_sleep: i2c2-sleep { 327 + function = "gpio"; 328 + pins = "gpio6", "gpio7"; 329 + drive-strength = <2>; 330 + bias-disable; 331 + }; 332 + 333 + i2c5_default: i2c5-default { 334 + /* Don't be fooled! Nobody knows the reason why though... */ 335 + function = "blsp_i2c11"; 336 + pins = "gpio83", "gpio84"; 337 + drive-strength = <2>; 338 + bias-disable; 339 + }; 340 + 341 + i2c5_sleep: i2c5-sleep { 342 + function = "gpio"; 343 + pins = "gpio83", "gpio84"; 344 + drive-strength = <2>; 345 + bias-disable; 346 + }; 347 + 348 + i2c6_default: i2c6-default { 349 + function = "blsp_i2c6"; 350 + pins = "gpio28", "gpio27"; 351 + drive-strength = <2>; 352 + bias-disable; 353 + }; 354 + 355 + i2c6_sleep: i2c6-sleep { 356 + function = "gpio"; 357 + pins = "gpio28", "gpio27"; 358 + drive-strength = <2>; 359 + bias-disable; 360 + }; 361 + 362 + i2c7_default: i2c7-default { 363 + function = "blsp_i2c7"; 364 + pins = "gpio43", "gpio44"; 365 + drive-strength = <2>; 366 + bias-disable; 367 + }; 368 + 369 + i2c7_sleep: i2c7-sleep { 370 + function = "gpio"; 371 + pins = "gpio43", "gpio44"; 372 + drive-strength = <2>; 373 + bias-disable; 374 + }; 375 + 376 + i2c13_default: i2c13-default { 377 + /* Not a typo either. */ 378 + function = "blsp_i2c5"; 379 + pins = "gpio23", "gpio24"; 380 + drive-strength = <2>; 381 + bias-disable; 382 + }; 383 + 384 + i2c13_sleep: i2c13-sleep { 385 + function = "gpio"; 386 + pins = "gpio23", "gpio24"; 387 + drive-strength = <2>; 388 + bias-disable; 389 + }; 435 390 }; 436 391 }; 437 392 ··· 585 258 qcom,local-pid = <0>; 586 259 qcom,remote-pid = <6>; 587 260 588 - rpm-requests { 261 + rpm_requests: rpm-requests { 589 262 compatible = "qcom,rpm-msm8994"; 590 263 qcom,smd-channels = "rpm_requests"; 591 264 592 - pm8994-regulators { 593 - compatible = "qcom,rpm-pm8994-regulators"; 594 - 595 - pm8994_s1: s1 {}; 596 - pm8994_s2: s2 {}; 597 - pm8994_s3: s3 {}; 598 - pm8994_s4: s4 {}; 599 - pm8994_s5: s5 {}; 600 - pm8994_s6: s6 {}; 601 - pm8994_s7: s7 {}; 602 - 603 - pm8994_l1: l1 {}; 604 - pm8994_l2: l2 {}; 605 - pm8994_l3: l3 {}; 606 - pm8994_l4: l4 {}; 607 - pm8994_l6: l6 {}; 608 - pm8994_l8: l8 {}; 609 - pm8994_l9: l9 {}; 610 - pm8994_l10: l10 {}; 611 - pm8994_l11: l11 {}; 612 - pm8994_l12: l12 {}; 613 - pm8994_l13: l13 {}; 614 - pm8994_l14: l14 {}; 615 - pm8994_l15: l15 {}; 616 - pm8994_l16: l16 {}; 617 - pm8994_l17: l17 {}; 618 - pm8994_l18: l18 {}; 619 - pm8994_l19: l19 {}; 620 - pm8994_l20: l20 {}; 621 - pm8994_l21: l21 {}; 622 - pm8994_l22: l22 {}; 623 - pm8994_l23: l23 {}; 624 - pm8994_l24: l24 {}; 625 - pm8994_l25: l25 {}; 626 - pm8994_l26: l26 {}; 627 - pm8994_l27: l27 {}; 628 - pm8994_l28: l28 {}; 629 - pm8994_l29: l29 {}; 630 - pm8994_l30: l30 {}; 631 - pm8994_l31: l31 {}; 632 - pm8994_l32: l32 {}; 633 - 634 - pm8994_lvs1: lvs1 {}; 635 - pm8994_lvs2: lvs2 {}; 265 + rpmcc: rpmcc { 266 + compatible = "qcom,rpmcc-msm8992"; 267 + #clock-cells = <1>; 636 268 }; 637 269 }; 638 270 }; 639 271 }; 272 + 273 + timer { 274 + compatible = "arm,armv8-timer"; 275 + interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 276 + <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 277 + <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 278 + <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 279 + }; 280 + 281 + vreg_vph_pwr: vreg-vph-pwr { 282 + compatible = "regulator-fixed"; 283 + status = "okay"; 284 + regulator-name = "vph-pwr"; 285 + 286 + regulator-min-microvolt = <3600000>; 287 + regulator-max-microvolt = <3600000>; 288 + 289 + regulator-always-on; 290 + }; 640 291 }; 641 292 642 - #include "msm8992-pins.dtsi"
-268
arch/arm64/boot/dts/qcom/msm8994-smd-rpm.dtsi
··· 1 - // SPDX-License-Identifier: GPL-2.0-only 2 - /* Copyright (c) 2015, LGE Inc. All rights reserved. 3 - * Copyright (c) 2016, The Linux Foundation. All rights reserved. 4 - */ 5 - 6 - &smd_rpm { 7 - rpm { 8 - rpm_requests { 9 - pm8994-regulators { 10 - 11 - vdd_l1-supply = <&pm8994_s1>; 12 - vdd_l2_26_28-supply = <&pm8994_s3>; 13 - vdd_l3_11-supply = <&pm8994_s3>; 14 - vdd_l4_27_31-supply = <&pm8994_s3>; 15 - vdd_l5_7-supply = <&pm8994_s3>; 16 - vdd_l6_12_32-supply = <&pm8994_s5>; 17 - vdd_l8_16_30-supply = <&vreg_vph_pwr>; 18 - vdd_l9_10_18_22-supply = <&vreg_vph_pwr>; 19 - vdd_l13_19_23_24-supply = <&vreg_vph_pwr>; 20 - vdd_l14_15-supply = <&pm8994_s5>; 21 - vdd_l17_29-supply = <&vreg_vph_pwr>; 22 - vdd_l20_21-supply = <&vreg_vph_pwr>; 23 - vdd_l25-supply = <&pm8994_s5>; 24 - vdd_lvs1_2 = <&pm8994_s4>; 25 - 26 - s1 { 27 - regulator-min-microvolt = <800000>; 28 - regulator-max-microvolt = <800000>; 29 - }; 30 - 31 - s2 { 32 - /* TODO */ 33 - }; 34 - 35 - s3 { 36 - regulator-min-microvolt = <1300000>; 37 - regulator-max-microvolt = <1300000>; 38 - }; 39 - 40 - s4 { 41 - regulator-min-microvolt = <1800000>; 42 - regulator-max-microvolt = <1800000>; 43 - regulator-allow-set-load; 44 - regulator-system-load = <325000>; 45 - }; 46 - 47 - s5 { 48 - regulator-min-microvolt = <2150000>; 49 - regulator-max-microvolt = <2150000>; 50 - }; 51 - 52 - s7 { 53 - regulator-min-microvolt = <1000000>; 54 - regulator-max-microvolt = <1000000>; 55 - }; 56 - 57 - l1 { 58 - regulator-min-microvolt = <1000000>; 59 - regulator-max-microvolt = <1000000>; 60 - }; 61 - 62 - l2 { 63 - regulator-min-microvolt = <1250000>; 64 - regulator-max-microvolt = <1250000>; 65 - }; 66 - 67 - l3 { 68 - regulator-min-microvolt = <1200000>; 69 - regulator-max-microvolt = <1200000>; 70 - }; 71 - 72 - l4 { 73 - regulator-min-microvolt = <1225000>; 74 - regulator-max-microvolt = <1225000>; 75 - }; 76 - 77 - l5 { 78 - /* TODO */ 79 - }; 80 - 81 - l6 { 82 - regulator-min-microvolt = <1800000>; 83 - regulator-max-microvolt = <1800000>; 84 - }; 85 - 86 - l7 { 87 - /* TODO */ 88 - }; 89 - 90 - l8 { 91 - regulator-min-microvolt = <1800000>; 92 - regulator-max-microvolt = <1800000>; 93 - }; 94 - 95 - l9 { 96 - regulator-min-microvolt = <1800000>; 97 - regulator-max-microvolt = <1800000>; 98 - }; 99 - 100 - l10 { 101 - regulator-min-microvolt = <1800000>; 102 - regulator-max-microvolt = <1800000>; 103 - qcom,init-voltage = <1800000>; 104 - }; 105 - 106 - l11 { 107 - regulator-min-microvolt = <1200000>; 108 - regulator-max-microvolt = <1200000>; 109 - qcom,init-voltage = <1200000>; 110 - }; 111 - 112 - l12 { 113 - regulator-min-microvolt = <1800000>; 114 - regulator-max-microvolt = <1800000>; 115 - qcom,init-voltage = <1800000>; 116 - proxy-supply = <&pm8994_l12>; 117 - qcom,proxy-consumer-enable; 118 - qcom,proxy-consumer-current = <10000>; 119 - status = "okay"; 120 - }; 121 - 122 - l13 { 123 - regulator-min-microvolt = <1800000>; 124 - regulator-max-microvolt = <2950000>; 125 - qcom,init-voltage = <2950000>; 126 - status = "okay"; 127 - }; 128 - 129 - l14 { 130 - regulator-min-microvolt = <1200000>; 131 - regulator-max-microvolt = <1200000>; 132 - qcom,init-voltage = <1200000>; 133 - proxy-supply = <&pm8994_l14>; 134 - qcom,proxy-consumer-enable; 135 - qcom,proxy-consumer-current = <10000>; 136 - status = "okay"; 137 - }; 138 - 139 - l15 { 140 - regulator-min-microvolt = <1800000>; 141 - regulator-max-microvolt = <1800000>; 142 - qcom,init-voltage = <1800000>; 143 - status = "okay"; 144 - }; 145 - 146 - l16 { 147 - regulator-min-microvolt = <2700000>; 148 - regulator-max-microvolt = <2700000>; 149 - qcom,init-voltage = <2700000>; 150 - status = "okay"; 151 - }; 152 - 153 - l17 { 154 - regulator-min-microvolt = <2700000>; 155 - regulator-max-microvolt = <2700000>; 156 - qcom,init-voltage = <2700000>; 157 - status = "okay"; 158 - }; 159 - 160 - l18 { 161 - regulator-min-microvolt = <3000000>; 162 - regulator-max-microvolt = <3000000>; 163 - regulator-always-on; 164 - qcom,init-voltage = <3000000>; 165 - qcom,init-ldo-mode = <1>; 166 - }; 167 - 168 - l19 { 169 - regulator-min-microvolt = <1800000>; 170 - regulator-max-microvolt = <1800000>; 171 - qcom,init-voltage = <1800000>; 172 - status = "okay"; 173 - }; 174 - 175 - l20 { 176 - regulator-min-microvolt = <2950000>; 177 - regulator-max-microvolt = <2950000>; 178 - regulator-always-on; 179 - regulator-boot-on; 180 - regulator-allow-set-load; 181 - regulator-system-load = <570000>; 182 - }; 183 - 184 - l21 { 185 - regulator-min-microvolt = <1800000>; 186 - regulator-max-microvolt = <1800000>; 187 - regulator-always-on; 188 - qcom,init-voltage = <1800000>; 189 - }; 190 - 191 - l22 { 192 - regulator-min-microvolt = <3100000>; 193 - regulator-max-microvolt = <3100000>; 194 - qcom,init-voltage = <3100000>; 195 - }; 196 - 197 - l23 { 198 - regulator-min-microvolt = <2800000>; 199 - regulator-max-microvolt = <2800000>; 200 - qcom,init-voltage = <2800000>; 201 - }; 202 - 203 - l24 { 204 - regulator-min-microvolt = <3075000>; 205 - regulator-max-microvolt = <3150000>; 206 - qcom,init-voltage = <3075000>; 207 - }; 208 - 209 - l25 { 210 - regulator-min-microvolt = <1800000>; 211 - regulator-max-microvolt = <1800000>; 212 - qcom,init-voltage = <1800000>; 213 - }; 214 - 215 - l26 { 216 - /* TODO: value from downstream 217 - regulator-min-microvolt = <987500>; 218 - fails to apply */ 219 - }; 220 - 221 - l27 { 222 - regulator-min-microvolt = <1050000>; 223 - regulator-max-microvolt = <1050000>; 224 - qcom,init-voltage = <1050000>; 225 - }; 226 - 227 - l28 { 228 - regulator-min-microvolt = <1000000>; 229 - regulator-max-microvolt = <1000000>; 230 - qcom,init-voltage = <1000000>; 231 - proxy-supply = <&pm8994_l28>; 232 - qcom,proxy-consumer-enable; 233 - qcom,proxy-consumer-current = <10000>; 234 - }; 235 - 236 - l29 { 237 - /* TODO: Unsupported voltage range. 238 - regulator-min-microvolt = <2800000>; 239 - regulator-max-microvolt = <2800000>; 240 - qcom,init-voltage = <2800000>; 241 - */ 242 - }; 243 - 244 - l30 { 245 - /* TODO: get this verified 246 - regulator-min-microvolt = <1800000>; 247 - regulator-max-microvolt = <1800000>; 248 - qcom,init-voltage = <1800000>; 249 - */ 250 - }; 251 - 252 - l31 { 253 - regulator-min-microvolt = <1262500>; 254 - regulator-max-microvolt = <1262500>; 255 - qcom,init-voltage = <1262500>; 256 - }; 257 - 258 - l32 { 259 - /* TODO: get this verified 260 - regulator-min-microvolt = <1800000>; 261 - regulator-max-microvolt = <1800000>; 262 - qcom,init-voltage = <1800000>; 263 - */ 264 - }; 265 - }; 266 - }; 267 - }; 268 - };
+13
arch/arm64/boot/dts/qcom/msm8994-sony-xperia-kitakami-sumire.dts
··· 1 + // SPDX-License-Identifier: BSD-3-Clause 2 + /* 3 + * Copyright (c) 2020, Konrad Dybcio 4 + */ 5 + 6 + /dts-v1/; 7 + 8 + #include "msm8994-sony-xperia-kitakami.dtsi" 9 + 10 + / { 11 + model = "Sony Xperia Z5"; 12 + compatible = "sony,sumire-row", "qcom,msm8994"; 13 + };
+235
arch/arm64/boot/dts/qcom/msm8994-sony-xperia-kitakami.dtsi
··· 1 + // SPDX-License-Identifier: BSD-3-Clause 2 + /* 3 + * Copyright (c) 2020, Konrad Dybcio 4 + */ 5 + 6 + #include "msm8994.dtsi" 7 + #include "pm8994.dtsi" 8 + #include "pmi8994.dtsi" 9 + #include <dt-bindings/gpio/gpio.h> 10 + #include <dt-bindings/input/gpio-keys.h> 11 + 12 + / { 13 + /* required for bootloader to select correct board */ 14 + qcom,msm-id = <0xcf 0x20001>; 15 + qcom,pmic-id = <0x10009 0x1000a 0x00 0x00>; 16 + qcom,board-id = <8 0>; 17 + 18 + /* Kitakami firmware doesn't support PSCI */ 19 + /delete-node/ psci; 20 + 21 + gpio_keys { 22 + compatible = "gpio-keys"; 23 + input-name = "gpio-keys"; 24 + #address-cells = <1>; 25 + #size-cells = <0>; 26 + autorepeat; 27 + 28 + button@0 { 29 + label = "Volume Down"; 30 + gpios = <&pm8994_gpios 2 GPIO_ACTIVE_LOW>; 31 + linux,input-type = <1>; 32 + linux,code = <KEY_VOLUMEDOWN>; 33 + wakeup-source; 34 + debounce-interval = <15>; 35 + }; 36 + 37 + button@1 { 38 + label = "Volume Up"; 39 + gpios = <&pm8994_gpios 3 GPIO_ACTIVE_LOW>; 40 + linux,input-type = <1>; 41 + linux,code = <KEY_VOLUMEUP>; 42 + wakeup-source; 43 + debounce-interval = <15>; 44 + }; 45 + 46 + button@2 { 47 + label = "Camera Snapshot"; 48 + gpios = <&pm8994_gpios 4 GPIO_ACTIVE_LOW>; 49 + linux,input-type = <1>; 50 + linux,code = <KEY_CAMERA>; 51 + wakeup-source; 52 + debounce-interval = <15>; 53 + }; 54 + 55 + button@3 { 56 + label = "Camera Focus"; 57 + gpios = <&pm8994_gpios 5 GPIO_ACTIVE_LOW>; 58 + linux,input-type = <1>; 59 + linux,code = <KEY_VOLUMEUP>; 60 + wakeup-source; 61 + debounce-interval = <15>; 62 + }; 63 + }; 64 + 65 + reserved-memory { 66 + #address-cells = <2>; 67 + #size-cells = <2>; 68 + ranges; 69 + 70 + /* This is for getting crash logs using Android downstream kernels */ 71 + ramoops@1fe00000 { 72 + compatible = "ramoops"; 73 + reg = <0x0 0x1fe00000 0x0 0x200000>; 74 + console-size = <0x100000>; 75 + record-size = <0x10000>; 76 + ftrace-size = <0x10000>; 77 + pmsg-size = <0x80000>; 78 + }; 79 + 80 + continuous_splash: framebuffer@3401000{ 81 + reg = <0x0 0x3401000 0x0 0x2200000>; 82 + no-map; 83 + }; 84 + 85 + dfps_data_mem: dfps_data_mem@3400000 { 86 + reg = <0x0 0x3400000 0x0 0x1000>; 87 + no-map; 88 + }; 89 + 90 + peripheral_region: peripheral_region@7400000 { 91 + reg = <0x0 0x7400000 0x0 0x1c00000>; 92 + no-map; 93 + }; 94 + 95 + modem_region: modem_region@9000000 { 96 + reg = <0x0 0x9000000 0x0 0x5a00000>; 97 + no-map; 98 + }; 99 + 100 + tzapp: modem_region@ea00000 { 101 + reg = <0x0 0xea00000 0x0 0x1900000>; 102 + no-map; 103 + }; 104 + 105 + fb_region: fb_region@40000000 { 106 + reg = <0x00 0x40000000 0x00 0x1000000>; 107 + no-map; 108 + }; 109 + }; 110 + }; 111 + 112 + &blsp_spi0 { 113 + status = "okay"; 114 + 115 + /* FPC fingerprint reader */ 116 + }; 117 + 118 + /* I2C1 is disabled on this board */ 119 + 120 + &blsp_i2c2 { 121 + status = "okay"; 122 + 123 + /* NXP NFC */ 124 + }; 125 + 126 + &blsp_i2c4 { 127 + status = "okay"; 128 + 129 + /* Empty but active */ 130 + }; 131 + 132 + &blsp_i2c5 { 133 + status = "okay"; 134 + 135 + /* SMB1357 charger and sii8620 HDMI/MHL bridge */ 136 + }; 137 + 138 + &blsp_i2c6 { 139 + status = "okay"; 140 + 141 + /* Synaptics touchscreen */ 142 + }; 143 + 144 + &blsp1_uart2 { 145 + status = "okay"; 146 + }; 147 + 148 + &blsp2_uart2 { 149 + status = "okay"; 150 + }; 151 + 152 + &rpm_requests { 153 + pm8994_regulators: pm8994-regulators { 154 + compatible = "qcom,rpm-pm8994-regulators"; 155 + vdd_l1-supply = <&pm8994_s1>; 156 + vdd_l2_26_28-supply = <&pm8994_s3>; 157 + vdd_l3_11-supply = <&pm8994_s3>; 158 + vdd_l4_27_31-supply = <&pm8994_s3>; 159 + vdd_l5_7-supply = <&pm8994_s3>; 160 + vdd_l6_12_32-supply = <&pm8994_s5>; 161 + vdd_l8_16_30-supply = <&vreg_vph_pwr>; 162 + vdd_l9_10_18_22-supply = <&vreg_vph_pwr>; 163 + vdd_l13_19_23_24-supply = <&vreg_vph_pwr>; 164 + vdd_l14_15-supply = <&pm8994_s5>; 165 + vdd_l17_29-supply = <&vreg_vph_pwr>; 166 + vdd_l20_21-supply = <&vreg_vph_pwr>; 167 + vdd_l25-supply = <&pm8994_s5>; 168 + vdd_lvs1_2 = <&pm8994_s4>; 169 + 170 + pm8994_s1: s1 {}; 171 + pm8994_s2: s2 {}; 172 + pm8994_s3: s3 {}; 173 + pm8994_s4: s4 {}; 174 + pm8994_s5: s5 {}; 175 + pm8994_s6: s6 {}; 176 + pm8994_s7: s7 {}; 177 + 178 + pm8994_l1: l1 {}; 179 + pm8994_l2: l2 {}; 180 + pm8994_l3: l3 {}; 181 + pm8994_l4: l4 {}; 182 + pm8994_l6: l6 {}; 183 + pm8994_l8: l8 {}; 184 + pm8994_l9: l9 {}; 185 + pm8994_l10: l10 {}; 186 + pm8994_l11: l11 {}; 187 + pm8994_l12: l12 {}; 188 + pm8994_l13: l13 {}; 189 + pm8994_l14: l14 {}; 190 + pm8994_l15: l15 {}; 191 + pm8994_l16: l16 {}; 192 + pm8994_l17: l17 {}; 193 + pm8994_l18: l18 {}; 194 + pm8994_l19: l19 {}; 195 + pm8994_l20: l20 {}; 196 + pm8994_l21: l21 {}; 197 + pm8994_l22: l22 {}; 198 + pm8994_l23: l23 {}; 199 + pm8994_l24: l24 {}; 200 + pm8994_l25: l25 {}; 201 + pm8994_l26: l26 {}; 202 + pm8994_l27: l27 {}; 203 + pm8994_l28: l28 {}; 204 + pm8994_l29: l29 {}; 205 + pm8994_l30: l30 {}; 206 + pm8994_l31: l31 {}; 207 + pm8994_l32: l32 {}; 208 + 209 + pm8994_lvs1: lvs1 {}; 210 + pm8994_lvs2: lvs2 {}; 211 + }; 212 + 213 + pmi8994_regulators: pmi8994-regulators { 214 + compatible = "qcom,rpm-pmi8994-regulators"; 215 + 216 + pmi8994_s1: s1 {}; 217 + pmi8994_s2: s2 {}; 218 + pmi8994_s3: s3 {}; 219 + pmi8994_bby: boost-bypass {}; 220 + }; 221 + }; 222 + 223 + &sdhc1 { 224 + status = "okay"; 225 + 226 + /* Downstream pushes 2.95V to the sdhci device, 227 + * but upstream driver REALLY wants to make vmmc 1.8v 228 + * cause of the hs400-1_8v mode. MMC works fine without 229 + * that regulator, so let's not use it for now. 230 + * vqmmc is also disabled cause driver stll complains. 231 + * 232 + * vmmc-supply = <&pm8994_l20>; 233 + * vqmmc-supply = <&pm8994_s4>; 234 + */ 235 + };
+49
arch/arm64/boot/dts/qcom/msm8994.dtsi
··· 142 142 }; 143 143 }; 144 144 145 + firmware { 146 + scm { 147 + compatible = "qcom,scm-msm8994", "qcom,scm"; 148 + }; 149 + }; 150 + 145 151 memory { 146 152 device_type = "memory"; 147 153 /* We expect the bootloader to fill in the reg */ ··· 175 169 }; 176 170 }; 177 171 172 + smd { 173 + compatible = "qcom,smd"; 174 + rpm { 175 + interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>; 176 + qcom,ipc = <&apcs 8 0>; 177 + qcom,smd-edge = <15>; 178 + qcom,local-pid = <0>; 179 + qcom,remote-pid = <6>; 180 + 181 + rpm_requests: rpm-requests { 182 + compatible = "qcom,rpm-msm8994"; 183 + qcom,smd-channels = "rpm_requests"; 184 + 185 + rpmcc: rpmcc { 186 + compatible = "qcom,rpmcc-msm8994"; 187 + #clock-cells = <1>; 188 + }; 189 + }; 190 + }; 191 + }; 192 + 178 193 smem { 179 194 compatible = "qcom,smem"; 180 195 memory-region = <&smem_mem>; 196 + qcom,rpm-msg-ram = <&rpm_msg_ram>; 181 197 hwlocks = <&tcsr_mutex 3>; 182 198 }; 183 199 ··· 216 188 #interrupt-cells = <3>; 217 189 reg = <0xf9000000 0x1000>, 218 190 <0xf9002000 0x1000>; 191 + }; 192 + 193 + apcs: mailbox@f900d000 { 194 + compatible = "qcom,msm8994-apcs-kpss-global", "syscon"; 195 + reg = <0xf900d000 0x2000>; 196 + #mbox-cells = <1>; 219 197 }; 220 198 221 199 timer@f9020000 { ··· 477 443 reg = <0xfc400000 0x2000>; 478 444 }; 479 445 446 + rpm_msg_ram: memory@fc428000 { 447 + compatible = "qcom,rpm-msg-ram"; 448 + reg = <0xfc428000 0x4000>; 449 + }; 450 + 480 451 restart@fc4ab000 { 481 452 compatible = "qcom,pshold"; 482 453 reg = <0xfc4ab000 0x4>; ··· 698 659 <GIC_PPI 3 0xff08>, 699 660 <GIC_PPI 4 0xff08>, 700 661 <GIC_PPI 1 0xff08>; 662 + }; 663 + 664 + vreg_vph_pwr: vreg-vph-pwr { 665 + compatible = "regulator-fixed"; 666 + regulator-name = "vph-pwr"; 667 + 668 + regulator-min-microvolt = <3600000>; 669 + regulator-max-microvolt = <3600000>; 670 + 671 + regulator-always-on; 701 672 }; 702 673 }; 703 674
+4
arch/arm64/boot/dts/qcom/sc7180-idp.dts
··· 288 288 }; 289 289 }; 290 290 291 + &qfprom { 292 + vcc-supply = <&vreg_l11a_1p8>; 293 + }; 294 + 291 295 &qspi { 292 296 status = "okay"; 293 297 pinctrl-names = "default";
+29 -2
arch/arm64/boot/dts/qcom/sc7180.dtsi
··· 658 658 #power-domain-cells = <1>; 659 659 }; 660 660 661 - qfprom@784000 { 661 + qfprom: efuse@784000 { 662 662 compatible = "qcom,qfprom"; 663 - reg = <0 0x00784000 0 0x8ff>; 663 + reg = <0 0x00784000 0 0x8ff>, 664 + <0 0x00780000 0 0x7a0>, 665 + <0 0x00782000 0 0x100>, 666 + <0 0x00786000 0 0x1fff>; 667 + 668 + clocks = <&gcc GCC_SEC_CTRL_CLK_SRC>; 669 + clock-names = "core"; 664 670 #address-cells = <1>; 665 671 #size-cells = <1>; 666 672 ··· 1886 1880 operating-points-v2 = <&gpu_opp_table>; 1887 1881 qcom,gmu = <&gmu>; 1888 1882 1883 + interconnects = <&gem_noc MASTER_GFX3D &mc_virt SLAVE_EBI1>; 1884 + interconnect-names = "gfx-mem"; 1885 + 1889 1886 gpu_opp_table: opp-table { 1890 1887 compatible = "operating-points-v2"; 1891 1888 1892 1889 opp-800000000 { 1893 1890 opp-hz = /bits/ 64 <800000000>; 1894 1891 opp-level = <RPMH_REGULATOR_LEVEL_TURBO>; 1892 + opp-peak-kBps = <8532000>; 1895 1893 }; 1896 1894 1897 1895 opp-650000000 { 1898 1896 opp-hz = /bits/ 64 <650000000>; 1899 1897 opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>; 1898 + opp-peak-kBps = <7216000>; 1900 1899 }; 1901 1900 1902 1901 opp-565000000 { 1903 1902 opp-hz = /bits/ 64 <565000000>; 1904 1903 opp-level = <RPMH_REGULATOR_LEVEL_NOM>; 1904 + opp-peak-kBps = <5412000>; 1905 1905 }; 1906 1906 1907 1907 opp-430000000 { 1908 1908 opp-hz = /bits/ 64 <430000000>; 1909 1909 opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>; 1910 + opp-peak-kBps = <5412000>; 1910 1911 }; 1911 1912 1912 1913 opp-355000000 { 1913 1914 opp-hz = /bits/ 64 <355000000>; 1914 1915 opp-level = <RPMH_REGULATOR_LEVEL_SVS>; 1916 + opp-peak-kBps = <3072000>; 1915 1917 }; 1916 1918 1917 1919 opp-267000000 { 1918 1920 opp-hz = /bits/ 64 <267000000>; 1919 1921 opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>; 1922 + opp-peak-kBps = <3072000>; 1920 1923 }; 1921 1924 1922 1925 opp-180000000 { 1923 1926 opp-hz = /bits/ 64 <180000000>; 1924 1927 opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>; 1928 + opp-peak-kBps = <1804000>; 1925 1929 }; 1926 1930 }; 1927 1931 }; ··· 2137 2121 etr@6048000 { 2138 2122 compatible = "arm,coresight-tmc", "arm,primecell"; 2139 2123 reg = <0 0x06048000 0 0x1000>; 2124 + iommus = <&apps_smmu 0x04a0 0x20>; 2140 2125 2141 2126 clocks = <&aoss_qmp>; 2142 2127 clock-names = "apb_pclk"; ··· 2210 2193 2211 2194 clocks = <&aoss_qmp>; 2212 2195 clock-names = "apb_pclk"; 2196 + qcom,replicator-loses-context; 2213 2197 2214 2198 out-ports { 2215 2199 port { ··· 2238 2220 clocks = <&aoss_qmp>; 2239 2221 clock-names = "apb_pclk"; 2240 2222 arm,coresight-loses-context-with-cpu; 2223 + qcom,skip-power-up; 2241 2224 2242 2225 out-ports { 2243 2226 port { ··· 2258 2239 clocks = <&aoss_qmp>; 2259 2240 clock-names = "apb_pclk"; 2260 2241 arm,coresight-loses-context-with-cpu; 2242 + qcom,skip-power-up; 2261 2243 2262 2244 out-ports { 2263 2245 port { ··· 2278 2258 clocks = <&aoss_qmp>; 2279 2259 clock-names = "apb_pclk"; 2280 2260 arm,coresight-loses-context-with-cpu; 2261 + qcom,skip-power-up; 2281 2262 2282 2263 out-ports { 2283 2264 port { ··· 2298 2277 clocks = <&aoss_qmp>; 2299 2278 clock-names = "apb_pclk"; 2300 2279 arm,coresight-loses-context-with-cpu; 2280 + qcom,skip-power-up; 2301 2281 2302 2282 out-ports { 2303 2283 port { ··· 2318 2296 clocks = <&aoss_qmp>; 2319 2297 clock-names = "apb_pclk"; 2320 2298 arm,coresight-loses-context-with-cpu; 2299 + qcom,skip-power-up; 2321 2300 2322 2301 out-ports { 2323 2302 port { ··· 2338 2315 clocks = <&aoss_qmp>; 2339 2316 clock-names = "apb_pclk"; 2340 2317 arm,coresight-loses-context-with-cpu; 2318 + qcom,skip-power-up; 2341 2319 2342 2320 out-ports { 2343 2321 port { ··· 2358 2334 clocks = <&aoss_qmp>; 2359 2335 clock-names = "apb_pclk"; 2360 2336 arm,coresight-loses-context-with-cpu; 2337 + qcom,skip-power-up; 2361 2338 2362 2339 out-ports { 2363 2340 port { ··· 2378 2353 clocks = <&aoss_qmp>; 2379 2354 clock-names = "apb_pclk"; 2380 2355 arm,coresight-loses-context-with-cpu; 2356 + qcom,skip-power-up; 2381 2357 2382 2358 out-ports { 2383 2359 port { ··· 2682 2656 snps,dis_enblslpm_quirk; 2683 2657 phys = <&usb_1_hsphy>, <&usb_1_ssphy>; 2684 2658 phy-names = "usb2-phy", "usb3-phy"; 2659 + maximum-speed = "super-speed"; 2685 2660 }; 2686 2661 }; 2687 2662
+118
arch/arm64/boot/dts/qcom/sdm845-db845c.dts
··· 74 74 }; 75 75 }; 76 76 77 + hdmi-out { 78 + compatible = "hdmi-connector"; 79 + type = "a"; 80 + 81 + port { 82 + hdmi_con: endpoint { 83 + remote-endpoint = <&lt9611_out>; 84 + }; 85 + }; 86 + }; 87 + 77 88 lt9611_1v8: lt9611-vdd18-regulator { 78 89 compatible = "regulator-fixed"; 79 90 regulator-name = "LT9611_1V8"; ··· 393 382 firmware-name = "qcom/sdm845/cdsp.mdt"; 394 383 }; 395 384 385 + &dsi0 { 386 + status = "okay"; 387 + vdda-supply = <&vreg_l26a_1p2>; 388 + 389 + ports { 390 + port@1 { 391 + endpoint { 392 + remote-endpoint = <&lt9611_a>; 393 + data-lanes = <0 1 2 3>; 394 + }; 395 + }; 396 + }; 397 + }; 398 + 399 + &dsi0_phy { 400 + status = "okay"; 401 + vdds-supply = <&vreg_l1a_0p875>; 402 + }; 403 + 396 404 &gcc { 397 405 protected-clocks = <GCC_QSPI_CORE_CLK>, 398 406 <GCC_QSPI_CORE_CLK_SRC>, ··· 425 395 }; 426 396 }; 427 397 398 + &i2c10 { 399 + status = "okay"; 400 + clock-frequency = <400000>; 401 + 402 + lt9611_codec: hdmi-bridge@3b { 403 + compatible = "lontium,lt9611"; 404 + reg = <0x3b>; 405 + #sound-dai-cells = <1>; 406 + 407 + interrupts-extended = <&tlmm 84 IRQ_TYPE_EDGE_FALLING>; 408 + 409 + reset-gpios = <&tlmm 128 GPIO_ACTIVE_HIGH>; 410 + 411 + vdd-supply = <&lt9611_1v8>; 412 + vcc-supply = <&lt9611_3v3>; 413 + 414 + pinctrl-names = "default"; 415 + pinctrl-0 = <&lt9611_irq_pin>, <&dsi_sw_sel>; 416 + 417 + ports { 418 + #address-cells = <1>; 419 + #size-cells = <0>; 420 + 421 + port@0 { 422 + reg = <0>; 423 + 424 + lt9611_out: endpoint { 425 + remote-endpoint = <&hdmi_con>; 426 + }; 427 + }; 428 + 429 + port@1 { 430 + reg = <1>; 431 + 432 + lt9611_a: endpoint { 433 + remote-endpoint = <&dsi0_out>; 434 + }; 435 + }; 436 + }; 437 + }; 438 + }; 439 + 428 440 &i2c11 { 429 441 /* On Low speed expansion */ 430 442 label = "LS-I2C1"; ··· 476 404 &i2c14 { 477 405 /* On Low speed expansion */ 478 406 label = "LS-I2C0"; 407 + status = "okay"; 408 + }; 409 + 410 + &mdss { 411 + status = "okay"; 412 + }; 413 + 414 + &mdss_mdp { 479 415 status = "okay"; 480 416 }; 481 417 ··· 692 612 }; 693 613 }; 694 614 615 + hdmi-dai-link { 616 + link-name = "HDMI Playback"; 617 + cpu { 618 + sound-dai = <&q6afedai QUATERNARY_MI2S_RX>; 619 + }; 620 + 621 + platform { 622 + sound-dai = <&q6routing>; 623 + }; 624 + 625 + codec { 626 + sound-dai = <&lt9611_codec 0>; 627 + }; 628 + }; 629 + 695 630 slim-dai-link { 696 631 link-name = "SLIM Playback"; 697 632 cpu { ··· 779 684 drive-strength = <16>; 780 685 bias-disable; 781 686 }; 687 + }; 688 + 689 + dsi_sw_sel: dsi-sw-sel { 690 + pins = "gpio120"; 691 + function = "gpio"; 692 + 693 + drive-strength = <2>; 694 + bias-disable; 695 + output-high; 696 + }; 697 + 698 + lt9611_irq_pin: lt9611-irq { 699 + pins = "gpio84"; 700 + function = "gpio"; 701 + bias-disable; 782 702 }; 783 703 784 704 pcie0_default_state: pcie0-default { ··· 1050 940 pinmux { 1051 941 pins = "gpio41", "gpio42", "gpio43", "gpio44"; 1052 942 function = "qup3"; 943 + }; 944 + }; 945 + 946 + &qup_i2c10_default { 947 + pinconf { 948 + pins = "gpio55", "gpio56"; 949 + drive-strength = <2>; 950 + bias-disable; 1053 951 }; 1054 952 }; 1055 953
+18
arch/arm64/boot/dts/qcom/sdm845.dtsi
··· 3016 3016 3017 3017 clocks = <&aoss_qmp>; 3018 3018 clock-names = "apb_pclk"; 3019 + arm,coresight-loses-context-with-cpu; 3019 3020 3020 3021 out-ports { 3021 3022 port { ··· 3036 3035 3037 3036 clocks = <&aoss_qmp>; 3038 3037 clock-names = "apb_pclk"; 3038 + arm,coresight-loses-context-with-cpu; 3039 3039 3040 3040 out-ports { 3041 3041 port { ··· 3056 3054 3057 3055 clocks = <&aoss_qmp>; 3058 3056 clock-names = "apb_pclk"; 3057 + arm,coresight-loses-context-with-cpu; 3059 3058 3060 3059 out-ports { 3061 3060 port { ··· 3076 3073 3077 3074 clocks = <&aoss_qmp>; 3078 3075 clock-names = "apb_pclk"; 3076 + arm,coresight-loses-context-with-cpu; 3079 3077 3080 3078 out-ports { 3081 3079 port { ··· 3096 3092 3097 3093 clocks = <&aoss_qmp>; 3098 3094 clock-names = "apb_pclk"; 3095 + arm,coresight-loses-context-with-cpu; 3099 3096 3100 3097 out-ports { 3101 3098 port { ··· 3116 3111 3117 3112 clocks = <&aoss_qmp>; 3118 3113 clock-names = "apb_pclk"; 3114 + arm,coresight-loses-context-with-cpu; 3119 3115 3120 3116 out-ports { 3121 3117 port { ··· 3136 3130 3137 3131 clocks = <&aoss_qmp>; 3138 3132 clock-names = "apb_pclk"; 3133 + arm,coresight-loses-context-with-cpu; 3139 3134 3140 3135 out-ports { 3141 3136 port { ··· 3156 3149 3157 3150 clocks = <&aoss_qmp>; 3158 3151 clock-names = "apb_pclk"; 3152 + arm,coresight-loses-context-with-cpu; 3159 3153 3160 3154 out-ports { 3161 3155 port { ··· 4007 3999 4008 4000 qcom,gmu = <&gmu>; 4009 4001 4002 + interconnects = <&mem_noc MASTER_GFX3D &mem_noc SLAVE_EBI1>; 4003 + interconnect-names = "gfx-mem"; 4004 + 4010 4005 gpu_opp_table: opp-table { 4011 4006 compatible = "operating-points-v2"; 4012 4007 4013 4008 opp-710000000 { 4014 4009 opp-hz = /bits/ 64 <710000000>; 4015 4010 opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>; 4011 + opp-peak-kBps = <7216000>; 4016 4012 }; 4017 4013 4018 4014 opp-675000000 { 4019 4015 opp-hz = /bits/ 64 <675000000>; 4020 4016 opp-level = <RPMH_REGULATOR_LEVEL_TURBO>; 4017 + opp-peak-kBps = <7216000>; 4021 4018 }; 4022 4019 4023 4020 opp-596000000 { 4024 4021 opp-hz = /bits/ 64 <596000000>; 4025 4022 opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>; 4023 + opp-peak-kBps = <6220000>; 4026 4024 }; 4027 4025 4028 4026 opp-520000000 { 4029 4027 opp-hz = /bits/ 64 <520000000>; 4030 4028 opp-level = <RPMH_REGULATOR_LEVEL_NOM>; 4029 + opp-peak-kBps = <6220000>; 4031 4030 }; 4032 4031 4033 4032 opp-414000000 { 4034 4033 opp-hz = /bits/ 64 <414000000>; 4035 4034 opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>; 4035 + opp-peak-kBps = <4068000>; 4036 4036 }; 4037 4037 4038 4038 opp-342000000 { 4039 4039 opp-hz = /bits/ 64 <342000000>; 4040 4040 opp-level = <RPMH_REGULATOR_LEVEL_SVS>; 4041 + opp-peak-kBps = <2724000>; 4041 4042 }; 4042 4043 4043 4044 opp-257000000 { 4044 4045 opp-hz = /bits/ 64 <257000000>; 4045 4046 opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>; 4047 + opp-peak-kBps = <1648000>; 4046 4048 }; 4047 4049 }; 4048 4050 };
+135
arch/arm64/boot/dts/qcom/sm8150.dtsi
··· 547 547 }; 548 548 }; 549 549 550 + gpu: gpu@2c00000 { 551 + /* 552 + * note: the amd,imageon compatible makes it possible 553 + * to use the drm/msm driver without the display node, 554 + * make sure to remove it when display node is added 555 + */ 556 + compatible = "qcom,adreno-640.1", 557 + "qcom,adreno", 558 + "amd,imageon"; 559 + #stream-id-cells = <16>; 560 + 561 + reg = <0 0x02c00000 0 0x40000>; 562 + reg-names = "kgsl_3d0_reg_memory"; 563 + 564 + interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>; 565 + 566 + iommus = <&adreno_smmu 0 0x401>; 567 + 568 + operating-points-v2 = <&gpu_opp_table>; 569 + 570 + qcom,gmu = <&gmu>; 571 + 572 + zap-shader { 573 + memory-region = <&gpu_mem>; 574 + }; 575 + 576 + /* note: downstream checks gpu binning for 675 Mhz */ 577 + gpu_opp_table: opp-table { 578 + compatible = "operating-points-v2"; 579 + 580 + opp-675000000 { 581 + opp-hz = /bits/ 64 <675000000>; 582 + opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>; 583 + }; 584 + 585 + opp-585000000 { 586 + opp-hz = /bits/ 64 <585000000>; 587 + opp-level = <RPMH_REGULATOR_LEVEL_NOM>; 588 + }; 589 + 590 + opp-499200000 { 591 + opp-hz = /bits/ 64 <499200000>; 592 + opp-level = <RPMH_REGULATOR_LEVEL_SVS_L2>; 593 + }; 594 + 595 + opp-427000000 { 596 + opp-hz = /bits/ 64 <427000000>; 597 + opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>; 598 + }; 599 + 600 + opp-345000000 { 601 + opp-hz = /bits/ 64 <345000000>; 602 + opp-level = <RPMH_REGULATOR_LEVEL_SVS>; 603 + }; 604 + 605 + opp-257000000 { 606 + opp-hz = /bits/ 64 <257000000>; 607 + opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>; 608 + }; 609 + }; 610 + }; 611 + 612 + gmu: gmu@2c6a000 { 613 + compatible="qcom,adreno-gmu-640.1", "qcom,adreno-gmu"; 614 + 615 + reg = <0 0x02c6a000 0 0x30000>, 616 + <0 0x0b290000 0 0x10000>, 617 + <0 0x0b490000 0 0x10000>; 618 + reg-names = "gmu", "gmu_pdc", "gmu_pdc_seq"; 619 + 620 + interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>, 621 + <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>; 622 + interrupt-names = "hfi", "gmu"; 623 + 624 + clocks = <&gpucc 0>, 625 + <&gpucc 3>, 626 + <&gpucc 6>, 627 + <&gcc GCC_DDRSS_GPU_AXI_CLK>, 628 + <&gcc GCC_GPU_MEMNOC_GFX_CLK>; 629 + clock-names = "ahb", "gmu", "cxo", "axi", "memnoc"; 630 + 631 + power-domains = <&gpucc 0>, 632 + <&gpucc 1>; 633 + power-domain-names = "cx", "gx"; 634 + 635 + iommus = <&adreno_smmu 5 0x400>; 636 + 637 + operating-points-v2 = <&gmu_opp_table>; 638 + 639 + gmu_opp_table: opp-table { 640 + compatible = "operating-points-v2"; 641 + 642 + opp-200000000 { 643 + opp-hz = /bits/ 64 <200000000>; 644 + opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>; 645 + }; 646 + }; 647 + }; 648 + 649 + gpucc: clock-controller@2c90000 { 650 + compatible = "qcom,sm8150-gpucc"; 651 + reg = <0 0x02c90000 0 0x9000>; 652 + clocks = <&rpmhcc RPMH_CXO_CLK>, 653 + <&gcc GCC_GPU_GPLL0_CLK_SRC>, 654 + <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>; 655 + clock-names = "bi_tcxo", 656 + "gcc_gpu_gpll0_clk_src", 657 + "gcc_gpu_gpll0_div_clk_src"; 658 + #clock-cells = <1>; 659 + #reset-cells = <1>; 660 + #power-domain-cells = <1>; 661 + }; 662 + 663 + adreno_smmu: iommu@2ca0000 { 664 + compatible = "qcom,sm8150-smmu-500", "arm,mmu-500"; 665 + reg = <0 0x02ca0000 0 0x10000>; 666 + #iommu-cells = <2>; 667 + #global-interrupts = <1>; 668 + interrupts = <GIC_SPI 674 IRQ_TYPE_LEVEL_HIGH>, 669 + <GIC_SPI 681 IRQ_TYPE_LEVEL_HIGH>, 670 + <GIC_SPI 682 IRQ_TYPE_LEVEL_HIGH>, 671 + <GIC_SPI 683 IRQ_TYPE_LEVEL_HIGH>, 672 + <GIC_SPI 684 IRQ_TYPE_LEVEL_HIGH>, 673 + <GIC_SPI 685 IRQ_TYPE_LEVEL_HIGH>, 674 + <GIC_SPI 686 IRQ_TYPE_LEVEL_HIGH>, 675 + <GIC_SPI 687 IRQ_TYPE_LEVEL_HIGH>, 676 + <GIC_SPI 688 IRQ_TYPE_LEVEL_HIGH>; 677 + clocks = <&gpucc 0>, 678 + <&gcc GCC_GPU_MEMNOC_GFX_CLK>, 679 + <&gcc GCC_GPU_SNOC_DVM_GFX_CLK>; 680 + clock-names = "ahb", "bus", "iface"; 681 + 682 + power-domains = <&gpucc 0>; 683 + }; 684 + 550 685 tlmm: pinctrl@3100000 { 551 686 compatible = "qcom,sm8150-pinctrl"; 552 687 reg = <0x0 0x03100000 0x0 0x300000>,
+142
arch/arm64/boot/dts/qcom/sm8250.dtsi
··· 1047 1047 #hwlock-cells = <1>; 1048 1048 }; 1049 1049 1050 + gpu: gpu@3d00000 { 1051 + /* 1052 + * note: the amd,imageon compatible makes it possible 1053 + * to use the drm/msm driver without the display node, 1054 + * make sure to remove it when display node is added 1055 + */ 1056 + compatible = "qcom,adreno-650.2", 1057 + "qcom,adreno", 1058 + "amd,imageon"; 1059 + #stream-id-cells = <16>; 1060 + 1061 + reg = <0 0x03d00000 0 0x40000>; 1062 + reg-names = "kgsl_3d0_reg_memory"; 1063 + 1064 + interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>; 1065 + 1066 + iommus = <&adreno_smmu 0 0x401>; 1067 + 1068 + operating-points-v2 = <&gpu_opp_table>; 1069 + 1070 + qcom,gmu = <&gmu>; 1071 + 1072 + zap-shader { 1073 + memory-region = <&gpu_mem>; 1074 + }; 1075 + 1076 + /* note: downstream checks gpu binning for 670 Mhz */ 1077 + gpu_opp_table: opp-table { 1078 + compatible = "operating-points-v2"; 1079 + 1080 + opp-670000000 { 1081 + opp-hz = /bits/ 64 <670000000>; 1082 + opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>; 1083 + }; 1084 + 1085 + opp-587000000 { 1086 + opp-hz = /bits/ 64 <587000000>; 1087 + opp-level = <RPMH_REGULATOR_LEVEL_NOM>; 1088 + }; 1089 + 1090 + opp-525000000 { 1091 + opp-hz = /bits/ 64 <525000000>; 1092 + opp-level = <RPMH_REGULATOR_LEVEL_SVS_L2>; 1093 + }; 1094 + 1095 + opp-490000000 { 1096 + opp-hz = /bits/ 64 <490000000>; 1097 + opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>; 1098 + }; 1099 + 1100 + opp-441600000 { 1101 + opp-hz = /bits/ 64 <441600000>; 1102 + opp-level = <RPMH_REGULATOR_LEVEL_SVS_L0>; 1103 + }; 1104 + 1105 + opp-400000000 { 1106 + opp-hz = /bits/ 64 <400000000>; 1107 + opp-level = <RPMH_REGULATOR_LEVEL_SVS>; 1108 + }; 1109 + 1110 + opp-305000000 { 1111 + opp-hz = /bits/ 64 <305000000>; 1112 + opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>; 1113 + }; 1114 + }; 1115 + }; 1116 + 1117 + gmu: gmu@3d6a000 { 1118 + compatible="qcom,adreno-gmu-650.2", "qcom,adreno-gmu"; 1119 + 1120 + reg = <0 0x03d6a000 0 0x30000>, 1121 + <0 0x3de0000 0 0x10000>, 1122 + <0 0xb290000 0 0x10000>, 1123 + <0 0xb490000 0 0x10000>; 1124 + reg-names = "gmu", "rscc", "gmu_pdc", "gmu_pdc_seq"; 1125 + 1126 + interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>, 1127 + <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>; 1128 + interrupt-names = "hfi", "gmu"; 1129 + 1130 + clocks = <&gpucc 0>, 1131 + <&gpucc 3>, 1132 + <&gpucc 6>, 1133 + <&gcc GCC_DDRSS_GPU_AXI_CLK>, 1134 + <&gcc GCC_GPU_MEMNOC_GFX_CLK>; 1135 + clock-names = "ahb", "gmu", "cxo", "axi", "memnoc"; 1136 + 1137 + power-domains = <&gpucc 0>, 1138 + <&gpucc 1>; 1139 + power-domain-names = "cx", "gx"; 1140 + 1141 + iommus = <&adreno_smmu 5 0x400>; 1142 + 1143 + operating-points-v2 = <&gmu_opp_table>; 1144 + 1145 + gmu_opp_table: opp-table { 1146 + compatible = "operating-points-v2"; 1147 + 1148 + opp-200000000 { 1149 + opp-hz = /bits/ 64 <200000000>; 1150 + opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>; 1151 + }; 1152 + }; 1153 + }; 1154 + 1155 + gpucc: clock-controller@3d90000 { 1156 + compatible = "qcom,sm8250-gpucc"; 1157 + reg = <0 0x03d90000 0 0x9000>; 1158 + clocks = <&rpmhcc RPMH_CXO_CLK>, 1159 + <&gcc GCC_GPU_GPLL0_CLK_SRC>, 1160 + <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>; 1161 + clock-names = "bi_tcxo", 1162 + "gcc_gpu_gpll0_clk_src", 1163 + "gcc_gpu_gpll0_div_clk_src"; 1164 + #clock-cells = <1>; 1165 + #reset-cells = <1>; 1166 + #power-domain-cells = <1>; 1167 + }; 1168 + 1169 + adreno_smmu: iommu@3da0000 { 1170 + compatible = "qcom,sm8250-smmu-500", "arm,mmu-500"; 1171 + reg = <0 0x03da0000 0 0x10000>; 1172 + #iommu-cells = <2>; 1173 + #global-interrupts = <2>; 1174 + interrupts = <GIC_SPI 672 IRQ_TYPE_LEVEL_HIGH>, 1175 + <GIC_SPI 673 IRQ_TYPE_LEVEL_HIGH>, 1176 + <GIC_SPI 678 IRQ_TYPE_LEVEL_HIGH>, 1177 + <GIC_SPI 679 IRQ_TYPE_LEVEL_HIGH>, 1178 + <GIC_SPI 680 IRQ_TYPE_LEVEL_HIGH>, 1179 + <GIC_SPI 681 IRQ_TYPE_LEVEL_HIGH>, 1180 + <GIC_SPI 682 IRQ_TYPE_LEVEL_HIGH>, 1181 + <GIC_SPI 683 IRQ_TYPE_LEVEL_HIGH>, 1182 + <GIC_SPI 684 IRQ_TYPE_LEVEL_HIGH>, 1183 + <GIC_SPI 685 IRQ_TYPE_LEVEL_HIGH>; 1184 + clocks = <&gpucc 0>, 1185 + <&gcc GCC_GPU_MEMNOC_GFX_CLK>, 1186 + <&gcc GCC_GPU_SNOC_DVM_GFX_CLK>; 1187 + clock-names = "ahb", "bus", "iface"; 1188 + 1189 + power-domains = <&gpucc 0>; 1190 + }; 1191 + 1050 1192 slpi: remoteproc@5c00000 { 1051 1193 compatible = "qcom,sm8250-slpi-pas"; 1052 1194 reg = <0 0x05c00000 0 0x4000>;
+1
include/dt-bindings/power/qcom-rpmpd.h
··· 55 55 #define RPMH_REGULATOR_LEVEL_MIN_SVS 48 56 56 #define RPMH_REGULATOR_LEVEL_LOW_SVS 64 57 57 #define RPMH_REGULATOR_LEVEL_SVS 128 58 + #define RPMH_REGULATOR_LEVEL_SVS_L0 144 58 59 #define RPMH_REGULATOR_LEVEL_SVS_L1 192 59 60 #define RPMH_REGULATOR_LEVEL_SVS_L2 224 60 61 #define RPMH_REGULATOR_LEVEL_NOM 256