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

regulator: Unsupport 88pm8607 A0 and A1

Remove the support 88PM8607 A0/A1 stepping. There's some register
definition changes in B0 stepping. It can make software more efficient.

Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>

authored by

Haojian Zhuang and committed by
Samuel Ortiz
34a4b239 866a98ae

+77 -213
+77 -213
drivers/regulator/88pm8607.c
··· 48 48 static int pm8607_list_voltage(struct regulator_dev *rdev, unsigned index) 49 49 { 50 50 struct pm8607_regulator_info *info = rdev_get_drvdata(rdev); 51 - uint8_t chip_id = info->chip->chip_version; 52 51 int ret = -EINVAL; 53 52 54 53 switch (info->desc.id) { ··· 89 90 case PM8607_ID_LDO2: 90 91 case PM8607_ID_LDO3: 91 92 case PM8607_ID_LDO9: 92 - switch (chip_id) { 93 - case PM8607_CHIP_A0: 94 - case PM8607_CHIP_A1: 95 - ret = (index < 3) ? (index * 50000 + 1800000) : 96 - ((index < 8) ? (index * 50000 + 2550000) : 97 - -EINVAL); 98 - break; 99 - case PM8607_CHIP_B0: 100 - ret = (index < 3) ? (index * 50000 + 1800000) : 101 - ((index < 7) ? (index * 50000 + 2550000) : 102 - 3300000); 103 - break; 104 - } 93 + ret = (index < 3) ? (index * 50000 + 1800000) : 94 + ((index < 7) ? (index * 50000 + 2550000) : 95 + 3300000); 105 96 break; 106 97 case PM8607_ID_LDO4: 107 - switch (chip_id) { 108 - case PM8607_CHIP_A0: 109 - case PM8607_CHIP_A1: 110 - ret = (index < 3) ? (index * 50000 + 1800000) : 111 - ((index < 8) ? (index * 50000 + 2550000) : 112 - -EINVAL); 113 - break; 114 - case PM8607_CHIP_B0: 115 - ret = (index < 3) ? (index * 50000 + 1800000) : 116 - ((index < 6) ? (index * 50000 + 2550000) : 117 - ((index == 6) ? 2900000 : 3300000)); 118 - break; 119 - } 98 + ret = (index < 3) ? (index * 50000 + 1800000) : 99 + ((index < 6) ? (index * 50000 + 2550000) : 100 + ((index == 6) ? 2900000 : 3300000)); 120 101 break; 121 102 case PM8607_ID_LDO6: 122 - switch (chip_id) { 123 - case PM8607_CHIP_A0: 124 - case PM8607_CHIP_A1: 125 - ret = (index < 3) ? (index * 50000 + 1800000) : 126 - ((index < 8) ? (index * 50000 + 2450000) : 127 - -EINVAL); 128 - break; 129 - case PM8607_CHIP_B0: 130 - ret = (index < 2) ? (index * 50000 + 1800000) : 131 - ((index < 7) ? (index * 50000 + 2500000) : 132 - 3300000); 133 - break; 134 - } 103 + ret = (index < 2) ? (index * 50000 + 1800000) : 104 + ((index < 7) ? (index * 50000 + 2500000) : 105 + 3300000); 135 106 break; 136 107 case PM8607_ID_LDO10: 137 - switch (chip_id) { 138 - case PM8607_CHIP_A0: 139 - case PM8607_CHIP_A1: 140 - ret = (index < 3) ? (index * 50000 + 1800000) : 141 - ((index < 8) ? (index * 50000 + 2550000) : 142 - 1200000); 143 - break; 144 - case PM8607_CHIP_B0: 145 - ret = (index < 3) ? (index * 50000 + 1800000) : 146 - ((index < 7) ? (index * 50000 + 2550000) : 147 - ((index == 7) ? 3300000 : 1200000)); 148 - break; 149 - } 108 + ret = (index < 3) ? (index * 50000 + 1800000) : 109 + ((index < 7) ? (index * 50000 + 2550000) : 110 + ((index == 7) ? 3300000 : 1200000)); 150 111 break; 151 112 case PM8607_ID_LDO14: 152 - switch (chip_id) { 153 - case PM8607_CHIP_A0: 154 - case PM8607_CHIP_A1: 155 - ret = (index < 3) ? (index * 50000 + 1800000) : 156 - ((index < 8) ? (index * 50000 + 2550000) : 157 - -EINVAL); 158 - break; 159 - case PM8607_CHIP_B0: 160 - ret = (index < 2) ? (index * 50000 + 1800000) : 161 - ((index < 7) ? (index * 50000 + 2600000) : 162 - 3300000); 163 - break; 164 - } 113 + ret = (index < 2) ? (index * 50000 + 1800000) : 114 + ((index < 7) ? (index * 50000 + 2600000) : 115 + 3300000); 165 116 break; 166 117 } 167 118 return ret; ··· 120 171 static int choose_voltage(struct regulator_dev *rdev, int min_uV, int max_uV) 121 172 { 122 173 struct pm8607_regulator_info *info = rdev_get_drvdata(rdev); 123 - uint8_t chip_id = info->chip->chip_version; 124 174 int val = -ENOENT; 125 175 int ret; 126 176 ··· 204 256 case PM8607_ID_LDO2: 205 257 case PM8607_ID_LDO3: 206 258 case PM8607_ID_LDO9: 207 - switch (chip_id) { 208 - case PM8607_CHIP_A0: 209 - case PM8607_CHIP_A1: 210 - if (min_uV < 2700000) /* 1800mV ~ 1900mV / 50mV */ 211 - if (min_uV <= 1800000) 212 - val = 0; 213 - else if (min_uV <= 1900000) 214 - val = (min_uV - 1750001) / 50000; 215 - else 216 - val = 3; /* 2700mV */ 217 - else { /* 2700mV ~ 2900mV / 50mV */ 218 - if (min_uV <= 2900000) { 219 - val = (min_uV - 2650001) / 50000; 220 - val += 3; 221 - } else 222 - val = -EINVAL; 223 - } 224 - break; 225 - case PM8607_CHIP_B0: 226 - if (min_uV < 2700000) { /* 1800mV ~ 1900mV / 50mV */ 227 - if (min_uV <= 1800000) 228 - val = 0; 229 - else if (min_uV <= 1900000) 230 - val = (min_uV - 1750001) / 50000; 231 - else 232 - val = 3; /* 2700mV */ 233 - } else { /* 2700mV ~ 2850mV / 50mV */ 234 - if (min_uV <= 2850000) { 235 - val = (min_uV - 2650001) / 50000; 236 - val += 3; 237 - } else if (min_uV <= 3300000) 238 - val = 7; 239 - else 240 - val = -EINVAL; 241 - } 242 - break; 259 + if (min_uV < 2700000) { /* 1800mV ~ 1900mV / 50mV */ 260 + if (min_uV <= 1800000) 261 + val = 0; 262 + else if (min_uV <= 1900000) 263 + val = (min_uV - 1750001) / 50000; 264 + else 265 + val = 3; /* 2700mV */ 266 + } else { /* 2700mV ~ 2850mV / 50mV */ 267 + if (min_uV <= 2850000) { 268 + val = (min_uV - 2650001) / 50000; 269 + val += 3; 270 + } else if (min_uV <= 3300000) 271 + val = 7; 272 + else 273 + val = -EINVAL; 243 274 } 244 275 break; 245 276 case PM8607_ID_LDO4: 246 - switch (chip_id) { 247 - case PM8607_CHIP_A0: 248 - case PM8607_CHIP_A1: 249 - if (min_uV < 2700000) /* 1800mV ~ 1900mV / 50mV */ 250 - if (min_uV <= 1800000) 251 - val = 0; 252 - else if (min_uV <= 1900000) 253 - val = (min_uV - 1750001) / 50000; 254 - else 255 - val = 3; /* 2700mV */ 256 - else { /* 2700mV ~ 2900mV / 50mV */ 257 - if (min_uV <= 2900000) { 258 - val = (min_uV - 2650001) / 50000; 259 - val += 3; 260 - } else 261 - val = -EINVAL; 262 - } 263 - break; 264 - case PM8607_CHIP_B0: 265 - if (min_uV < 2700000) { /* 1800mV ~ 1900mV / 50mV */ 266 - if (min_uV <= 1800000) 267 - val = 0; 268 - else if (min_uV <= 1900000) 269 - val = (min_uV - 1750001) / 50000; 270 - else 271 - val = 3; /* 2700mV */ 272 - } else { /* 2700mV ~ 2800mV / 50mV */ 273 - if (min_uV <= 2850000) { 274 - val = (min_uV - 2650001) / 50000; 275 - val += 3; 276 - } else if (min_uV <= 2900000) 277 - val = 6; 278 - else if (min_uV <= 3300000) 279 - val = 7; 280 - else 281 - val = -EINVAL; 282 - } 283 - break; 277 + if (min_uV < 2700000) { /* 1800mV ~ 1900mV / 50mV */ 278 + if (min_uV <= 1800000) 279 + val = 0; 280 + else if (min_uV <= 1900000) 281 + val = (min_uV - 1750001) / 50000; 282 + else 283 + val = 3; /* 2700mV */ 284 + } else { /* 2700mV ~ 2800mV / 50mV */ 285 + if (min_uV <= 2850000) { 286 + val = (min_uV - 2650001) / 50000; 287 + val += 3; 288 + } else if (min_uV <= 2900000) 289 + val = 6; 290 + else if (min_uV <= 3300000) 291 + val = 7; 292 + else 293 + val = -EINVAL; 284 294 } 285 295 break; 286 296 case PM8607_ID_LDO6: 287 - switch (chip_id) { 288 - case PM8607_CHIP_A0: 289 - case PM8607_CHIP_A1: 290 - if (min_uV < 2600000) { /* 1800mV ~ 1900mV / 50mV */ 291 - if (min_uV <= 1800000) 292 - val = 0; 293 - else if (min_uV <= 1900000) 294 - val = (min_uV - 1750001) / 50000; 295 - else 296 - val = 3; /* 2600mV */ 297 - } else { /* 2600mV ~ 2800mV / 50mV */ 298 - if (min_uV <= 2800000) { 299 - val = (min_uV - 2550001) / 50000; 300 - val += 3; 301 - } else 302 - val = -EINVAL; 303 - } 304 - break; 305 - case PM8607_CHIP_B0: 306 - if (min_uV < 2600000) { /* 1800mV ~ 1850mV / 50mV */ 307 - if (min_uV <= 1800000) 308 - val = 0; 309 - else if (min_uV <= 1850000) 310 - val = (min_uV - 1750001) / 50000; 311 - else 312 - val = 2; /* 2600mV */ 313 - } else { /* 2600mV ~ 2800mV / 50mV */ 314 - if (min_uV <= 2800000) { 315 - val = (min_uV - 2550001) / 50000; 316 - val += 2; 317 - } else if (min_uV <= 3300000) 318 - val = 7; 319 - else 320 - val = -EINVAL; 321 - } 322 - break; 297 + if (min_uV < 2600000) { /* 1800mV ~ 1850mV / 50mV */ 298 + if (min_uV <= 1800000) 299 + val = 0; 300 + else if (min_uV <= 1850000) 301 + val = (min_uV - 1750001) / 50000; 302 + else 303 + val = 2; /* 2600mV */ 304 + } else { /* 2600mV ~ 2800mV / 50mV */ 305 + if (min_uV <= 2800000) { 306 + val = (min_uV - 2550001) / 50000; 307 + val += 2; 308 + } else if (min_uV <= 3300000) 309 + val = 7; 310 + else 311 + val = -EINVAL; 323 312 } 324 313 break; 325 314 case PM8607_ID_LDO14: 326 - switch (chip_id) { 327 - case PM8607_CHIP_A0: 328 - case PM8607_CHIP_A1: 329 - if (min_uV < 2700000) { /* 1800mV ~ 1900mV / 50mV */ 330 - if (min_uV <= 1800000) 331 - val = 0; 332 - else if (min_uV <= 1900000) 333 - val = (min_uV - 1750001) / 50000; 334 - else 335 - val = 3; /* 2700mV */ 336 - } else { /* 2700mV ~ 2900mV / 50mV */ 337 - if (min_uV <= 2900000) { 338 - val = (min_uV - 2650001) / 50000; 339 - val += 3; 340 - } else 341 - val = -EINVAL; 342 - } 343 - break; 344 - case PM8607_CHIP_B0: 345 - if (min_uV < 2700000) { /* 1800mV ~ 1850mV / 50mV */ 346 - if (min_uV <= 1800000) 347 - val = 0; 348 - else if (min_uV <= 1850000) 349 - val = (min_uV - 1750001) / 50000; 350 - else 351 - val = 2; /* 2700mV */ 352 - } else { /* 2700mV ~ 2900mV / 50mV */ 353 - if (min_uV <= 2900000) { 354 - val = (min_uV - 2650001) / 50000; 355 - val += 2; 356 - } else if (min_uV <= 3300000) 357 - val = 7; 358 - else 359 - val = -EINVAL; 360 - } 361 - break; 315 + if (min_uV < 2700000) { /* 1800mV ~ 1850mV / 50mV */ 316 + if (min_uV <= 1800000) 317 + val = 0; 318 + else if (min_uV <= 1850000) 319 + val = (min_uV - 1750001) / 50000; 320 + else 321 + val = 2; /* 2700mV */ 322 + } else { /* 2700mV ~ 2900mV / 50mV */ 323 + if (min_uV <= 2900000) { 324 + val = (min_uV - 2650001) / 50000; 325 + val += 2; 326 + } else if (min_uV <= 3300000) 327 + val = 7; 328 + else 329 + val = -EINVAL; 362 330 } 363 331 break; 364 332 }