Swetha Chikkaboraiah | 5916226 | 2018-03-12 11:25:36 +0530 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (c) 2015-2018, The Linux Foundation. All rights reserved. |
| 3 | * |
| 4 | * This program is free software; you can redistribute it and/or modify |
| 5 | * it under the terms of the GNU General Public License version 2 and |
| 6 | * only version 2 as published by the Free Software Foundation. |
| 7 | * |
| 8 | * This program is distributed in the hope that it will be useful, |
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 11 | * GNU General Public License for more details. |
| 12 | */ |
| 13 | |
| 14 | #include "msm8937-regulator.dtsi" |
| 15 | |
| 16 | &soc { |
| 17 | /* delete the CPR and MEM ACC nodes of msm8937 */ |
| 18 | /delete-node/ regulator@b018000; |
| 19 | /delete-node/ regulator@01946004; |
| 20 | |
| 21 | mem_acc_vreg_corner: regulator@01946004 { |
| 22 | compatible = "qcom,mem-acc-regulator"; |
| 23 | reg = <0xa4000 0x1000>; |
| 24 | reg-names = "efuse_addr"; |
| 25 | regulator-name = "mem_acc_corner"; |
| 26 | regulator-min-microvolt = <1>; |
| 27 | regulator-max-microvolt = <3>; |
| 28 | |
| 29 | qcom,acc-reg-addr-list = |
| 30 | <0x01942138 0x01942130 0x01942120 0x01942124>; |
| 31 | |
| 32 | qcom,acc-init-reg-config = <1 0xff>, <2 0x5555>; |
| 33 | |
| 34 | qcom,num-acc-corners = <3>; |
| 35 | qcom,boot-acc-corner = <2>; |
| 36 | qcom,corner1-reg-config = |
| 37 | /* SVS+ => SVS+ */ |
| 38 | <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>, |
| 39 | <(-1) (-1)>, |
| 40 | /* SVS+ => NOM */ |
| 41 | < 3 0x1041041>, < 4 0x1041>, <(-1) (-1)>, |
| 42 | <(-1) (-1)>, |
| 43 | /* SVS+ => TURBO/NOM+ */ |
| 44 | < 3 0x1041041>, < 4 0x1041>, < 3 0x0>, |
| 45 | < 4 0x0>; |
| 46 | |
| 47 | qcom,corner2-reg-config = |
| 48 | /* NOM => SVS+ */ |
| 49 | < 3 0x30c30c3>, < 4 0x30c3>, |
| 50 | /* NOM => NOM */ |
| 51 | <(-1) (-1)>, <(-1) (-1)>, |
| 52 | /* NOM => TURBO/NOM+ */ |
| 53 | < 3 0x0>, < 4 0x0>; |
| 54 | |
| 55 | qcom,corner3-reg-config = |
| 56 | /* TURBO/NOM+ => SVS+ */ |
| 57 | < 3 0x1041041>, < 4 0x1041>, < 3 0x30c30c3>, |
| 58 | < 4 0x30c3>, |
| 59 | /* TURBO/NOM+ => NOM */ |
| 60 | < 3 0x1041041>, < 4 0x1041>, <(-1) (-1)>, |
| 61 | <(-1) (-1)>, |
| 62 | /* TURBO/NOM+ => TURBO/NOM+ */ |
| 63 | <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>, |
| 64 | <(-1) (-1)>; |
| 65 | |
| 66 | qcom,override-acc-fuse-sel = <71 17 3 0>; |
| 67 | qcom,override-fuse-version-map = <1>, |
| 68 | <2>, |
| 69 | <3>, |
| 70 | <4>; |
| 71 | qcom,override-corner1-addr-val-map = |
| 72 | /* 1st fuse version tuple matched */ |
| 73 | /* SVS+ => SVS+ */ |
| 74 | <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>, |
| 75 | <(-1) (-1)>, |
| 76 | /* SVS+ => NOM */ |
| 77 | < 3 0x1041041>, < 4 0x1041>, <(-1) (-1)>, |
| 78 | <(-1) (-1)>, |
| 79 | /* SVS+ => TURBO/NOM+ */ |
| 80 | < 3 0x1041041>, < 4 0x1041>, < 3 0x1>, |
| 81 | < 4 0x0>, |
| 82 | |
| 83 | /* 2nd fuse version tuple matched */ |
| 84 | /* SVS+ => SVS+ */ |
| 85 | <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>, |
| 86 | <(-1) (-1)>, |
| 87 | /* SVS+ => NOM */ |
| 88 | < 3 0x1041041>, < 4 0x1041>, <(-1) (-1)>, |
| 89 | <(-1) (-1)>, |
| 90 | /* SVS+ => TURBO/NOM+ */ |
| 91 | < 3 0x1041041>, < 4 0x1041>, < 3 0x3>, |
| 92 | < 4 0x0>, |
| 93 | |
| 94 | /* 3rd fuse version tuple matched */ |
| 95 | /* SVS+ => SVS+ */ |
| 96 | <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>, |
| 97 | <(-1) (-1)>, |
| 98 | /* SVS+ => NOM */ |
| 99 | < 3 0x1041043>, < 4 0x1041>, <(-1) (-1)>, |
| 100 | <(-1) (-1)>, |
| 101 | /* SVS+ => TURBO/NOM+ */ |
| 102 | < 3 0x1041041>, < 4 0x1041>, < 3 0x0>, |
| 103 | < 4 0x0>, |
| 104 | |
| 105 | /* 4th fuse version tuple matched */ |
| 106 | /* SVS+ => SVS+ */ |
| 107 | <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>, |
| 108 | <(-1) (-1)>, |
| 109 | /* SVS+ => NOM */ |
| 110 | < 3 0x1041043>, < 4 0x1041>, <(-1) (-1)>, |
| 111 | <(-1) (-1)>, |
| 112 | /* SVS+ => TURBO/NOM+ */ |
| 113 | < 3 0x1041041>, < 4 0x1041>, < 3 0x1>, |
| 114 | < 4 0x0>; |
| 115 | |
| 116 | qcom,override-corner2-addr-val-map = |
| 117 | /* 1st fuse version tuple matched */ |
| 118 | /* NOM => SVS+ */ |
| 119 | < 3 0x30c30c3>, < 4 0x30c3>, |
| 120 | /* NOM => NOM */ |
| 121 | <(-1) (-1)>, <(-1) (-1)>, |
| 122 | /* NOM => TURBO/NOM+ */ |
| 123 | < 3 0x1>, < 4 0x0>, |
| 124 | |
| 125 | /* 2nd fuse version tuple matched */ |
| 126 | /* NOM => SVS+ */ |
| 127 | < 3 0x30c30c3>, < 4 0x30c3>, |
| 128 | /* NOM => NOM */ |
| 129 | <(-1) (-1)>, <(-1) (-1)>, |
| 130 | /* NOM => TURBO/NOM+ */ |
| 131 | < 3 0x3>, < 4 0x0>, |
| 132 | |
| 133 | /* 3rd fuse version tuple matched */ |
| 134 | /* NOM => SVS+ */ |
| 135 | < 3 0x30c30c3>, < 4 0x30c3>, |
| 136 | /* NOM => NOM */ |
| 137 | <(-1) (-1)>, <(-1) (-1)>, |
| 138 | /* NOM => TURBO/NOM+ */ |
| 139 | < 3 0x0>, < 4 0x0>, |
| 140 | |
| 141 | /* 4th fuse version tuple matched */ |
| 142 | /* NOM => SVS+ */ |
| 143 | < 3 0x30c30c3>, < 4 0x30c3>, |
| 144 | /* NOM => NOM */ |
| 145 | <(-1) (-1)>, <(-1) (-1)>, |
| 146 | /* NOM => TURBO/NOM+ */ |
| 147 | < 3 0x1>, < 4 0x0>; |
| 148 | |
| 149 | qcom,override-corner3-addr-val-map = |
| 150 | /* 1st fuse version tuple matched */ |
| 151 | /* TURBO/NOM+ => SVS+ */ |
| 152 | < 3 0x1041041>, < 4 0x1041>, < 3 0x30c30c3>, |
| 153 | < 4 0x30c3>, |
| 154 | /* TURBO/NOM+ => NOM */ |
| 155 | < 3 0x1041041>, < 4 0x1041>, <(-1) (-1)>, |
| 156 | <(-1) (-1)>, |
| 157 | /* TURBO/NOM+ => TURBO/NOM+ */ |
| 158 | <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>, |
| 159 | <(-1) (-1)>, |
| 160 | |
| 161 | /* 2nd fuse version tuple matched */ |
| 162 | /* TURBO/NOM+ => SVS+ */ |
| 163 | < 3 0x1041041>, < 4 0x1041>, < 3 0x30c30c3>, |
| 164 | < 4 0x30c3>, |
| 165 | /* TURBO/NOM+ => NOM */ |
| 166 | < 3 0x1041041>, < 4 0x1041>, <(-1) (-1)>, |
| 167 | <(-1) (-1)>, |
| 168 | /* TURBO/NOM+ => TURBO/NOM+ */ |
| 169 | <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>, |
| 170 | <(-1) (-1)>, |
| 171 | |
| 172 | /* 3rd fuse version tuple matched */ |
| 173 | /* TURBO/NOM+ => SVS+ */ |
| 174 | < 3 0x1041041>, < 4 0x1041>, < 3 0x30c30c3>, |
| 175 | < 4 0x30c3>, |
| 176 | /* TURBO/NOM+ => NOM */ |
| 177 | < 3 0x1041043>, < 4 0x1041>, <(-1) (-1)>, |
| 178 | <(-1) (-1)>, |
| 179 | /* TURBO/NOM+ => TURBO/NOM+ */ |
| 180 | <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>, |
| 181 | <(-1) (-1)>, |
| 182 | |
| 183 | /* 4th fuse version tuple matched */ |
| 184 | /* TURBO/NOM+ => SVS+ */ |
| 185 | < 3 0x1041041>, < 4 0x1041>, < 3 0x30c30c3>, |
| 186 | < 4 0x30c3>, |
| 187 | /* TURBO/NOM+ => NOM */ |
| 188 | < 3 0x1041043>, < 4 0x1041>, <(-1) (-1)>, |
| 189 | <(-1) (-1)>, |
| 190 | /* TURBO/NOM+ => TURBO/NOM+ */ |
| 191 | <(-1) (-1)>, <(-1) (-1)>, <(-1) (-1)>, |
| 192 | <(-1) (-1)>; |
| 193 | }; |
| 194 | |
| 195 | apc_vreg_corner: regulator@b018000 { |
| 196 | compatible = "qcom,cpr-regulator"; |
| 197 | reg = <0xb018000 0x1000>, <0xb011064 4>, <0xa4000 0x1000>; |
| 198 | reg-names = "rbcpr", "rbcpr_clk", "efuse_addr"; |
| 199 | interrupts = <0 15 0>; |
| 200 | regulator-name = "apc_corner"; |
| 201 | regulator-min-microvolt = <1>; |
| 202 | regulator-max-microvolt = <5>; |
| 203 | |
| 204 | qcom,cpr-fuse-corners = <3>; |
| 205 | qcom,cpr-voltage-ceiling = <1155000 1225000 1350000>; |
| 206 | qcom,cpr-voltage-floor = <1050000 1050000 1090000>; |
| 207 | vdd-apc-supply = <&pm8937_s5>; |
| 208 | |
| 209 | mem-acc-supply = <&mem_acc_vreg_corner>; |
| 210 | |
| 211 | qcom,cpr-ref-clk = <19200>; |
| 212 | qcom,cpr-timer-delay = <5000>; |
| 213 | qcom,cpr-timer-cons-up = <0>; |
| 214 | qcom,cpr-timer-cons-down = <2>; |
| 215 | qcom,cpr-irq-line = <0>; |
| 216 | qcom,cpr-step-quotient = <16>; |
| 217 | qcom,cpr-up-threshold = <2>; |
| 218 | qcom,cpr-down-threshold = <4>; |
| 219 | qcom,cpr-idle-clocks = <15>; |
| 220 | qcom,cpr-gcnt-time = <1>; |
| 221 | qcom,vdd-apc-step-up-limit = <1>; |
| 222 | qcom,vdd-apc-step-down-limit = <1>; |
| 223 | qcom,cpr-apc-volt-step = <5000>; |
| 224 | |
| 225 | qcom,cpr-fuse-row = <67 0>; |
| 226 | qcom,cpr-fuse-target-quot = <42 24 6>; |
| 227 | qcom,cpr-fuse-ro-sel = <60 57 54>; |
| 228 | qcom,cpr-init-voltage-ref = <1155000 1225000 1350000>; |
| 229 | qcom,cpr-fuse-init-voltage = |
| 230 | <67 36 6 0>, |
| 231 | <67 18 6 0>, |
| 232 | <67 0 6 0>; |
| 233 | qcom,cpr-fuse-quot-offset = |
| 234 | <71 26 6 0>, |
| 235 | <71 20 6 0>, |
| 236 | <70 54 7 0>; |
| 237 | qcom,cpr-fuse-quot-offset-scale = <5 5 5>; |
| 238 | qcom,cpr-init-voltage-step = <10000>; |
| 239 | qcom,cpr-corner-map = <1 2 3 3 3>; |
| 240 | qcom,cpr-corner-frequency-map = |
| 241 | <1 960000000>, |
| 242 | <2 1094400000>, |
| 243 | <3 1248000000>, |
| 244 | <4 1401000000>, |
| 245 | <5 1497600000>; |
| 246 | qcom,speed-bin-fuse-sel = <37 34 3 0>; |
| 247 | qcom,cpr-speed-bin-max-corners = |
| 248 | <0 (-1) 1 2 4>, |
| 249 | <1 (-1) 1 2 5>; |
| 250 | qcom,cpr-quot-adjust-scaling-factor-max = <0 1400 1400>; |
| 251 | qcom,cpr-voltage-scaling-factor-max = <0 2000 2000>; |
| 252 | qcom,cpr-scaled-init-voltage-as-ceiling; |
| 253 | qcom,cpr-fuse-revision = <69 39 3 0>; |
| 254 | qcom,pvs-version-fuse-sel = <37 40 3 0>; /* foundry */ |
| 255 | qcom,cpr-fuse-version-map = |
| 256 | < 1 0 3 (-1) (-1) (-1)>, |
| 257 | < 1 5 3 (-1) (-1) (-1)>, |
| 258 | <(-1) 0 1 (-1) (-1) (-1)>, |
| 259 | <(-1) 0 2 (-1) (-1) (-1)>, |
| 260 | <(-1) 5 1 (-1) (-1) (-1)>, |
| 261 | <(-1) 5 2 (-1) (-1) (-1)>, |
| 262 | <(-1) (-1) (-1) (-1) (-1) (-1)>; |
| 263 | qcom,cpr-quotient-adjustment = |
| 264 | <50 40 50>, |
| 265 | <0 0 40>, |
| 266 | <50 40 100>, |
| 267 | <50 40 50>, |
| 268 | <0 0 100>, |
| 269 | <0 0 50>, |
| 270 | <0 0 0>; |
| 271 | qcom,cpr-init-voltage-adjustment = |
| 272 | <30000 5000 10000>, |
| 273 | <0 0 0>, |
| 274 | <30000 5000 35000>, |
| 275 | <30000 5000 10000>, |
| 276 | <0 0 20000>, |
| 277 | <0 0 0>, |
| 278 | <0 0 0>; |
| 279 | qcom,cpr-enable; |
| 280 | }; |
| 281 | |
| 282 | eldo2_pm8937: eldo2 { |
| 283 | compatible = "regulator-fixed"; |
| 284 | regulator-name = "eldo2_pm8937"; |
| 285 | startup-delay-us = <0>; |
| 286 | enable-active-high; |
| 287 | gpio = <&pm8937_gpios 7 0>; |
| 288 | regulator-always-on; |
| 289 | }; |
| 290 | }; |