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

ARM: dts: Configure regulators for suspend on exynos Peach boards

The regulator core now has support to choose if a regulator
has to be enabled or disabled during system suspend and also
supports changing the regulator operating mode during runtime
and when the system enters into sleep mode.

To lower power during suspend, configure the regulators state
using the same configuration found in the ChromeOS 3.8 kernel

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Signed-off-by: Kukjin Kim <kgene@kernel.org>

authored by

Javier Martinez Canillas and committed by
Kukjin Kim
23c76dc6 ae845476

+162
+81
arch/arm/boot/dts/exynos5420-peach-pit.dts
··· 13 13 #include <dt-bindings/gpio/gpio.h> 14 14 #include <dt-bindings/interrupt-controller/irq.h> 15 15 #include <dt-bindings/clock/maxim,max77802.h> 16 + #include <dt-bindings/regulator/maxim,max77802.h> 16 17 #include "exynos5420.dtsi" 17 18 18 19 / { ··· 202 201 regulator-always-on; 203 202 regulator-boot-on; 204 203 regulator-ramp-delay = <12500>; 204 + regulator-state-mem { 205 + regulator-off-in-suspend; 206 + }; 205 207 }; 206 208 207 209 buck2_reg: BUCK2 { ··· 214 210 regulator-always-on; 215 211 regulator-boot-on; 216 212 regulator-ramp-delay = <12500>; 213 + regulator-state-mem { 214 + regulator-off-in-suspend; 215 + }; 217 216 }; 218 217 219 218 buck3_reg: BUCK3 { ··· 226 219 regulator-always-on; 227 220 regulator-boot-on; 228 221 regulator-ramp-delay = <12500>; 222 + regulator-state-mem { 223 + regulator-off-in-suspend; 224 + }; 229 225 }; 230 226 231 227 buck4_reg: BUCK4 { ··· 238 228 regulator-always-on; 239 229 regulator-boot-on; 240 230 regulator-ramp-delay = <12500>; 231 + regulator-state-mem { 232 + regulator-off-in-suspend; 233 + }; 241 234 }; 242 235 243 236 buck5_reg: BUCK5 { ··· 249 236 regulator-max-microvolt = <1200000>; 250 237 regulator-always-on; 251 238 regulator-boot-on; 239 + regulator-state-mem { 240 + regulator-off-in-suspend; 241 + }; 252 242 }; 253 243 254 244 buck6_reg: BUCK6 { ··· 261 245 regulator-always-on; 262 246 regulator-boot-on; 263 247 regulator-ramp-delay = <12500>; 248 + regulator-state-mem { 249 + regulator-off-in-suspend; 250 + }; 264 251 }; 265 252 266 253 buck7_reg: BUCK7 { ··· 272 253 regulator-max-microvolt = <1350000>; 273 254 regulator-always-on; 274 255 regulator-boot-on; 256 + regulator-state-mem { 257 + regulator-on-in-suspend; 258 + }; 275 259 }; 276 260 277 261 buck8_reg: BUCK8 { ··· 283 261 regulator-max-microvolt = <2850000>; 284 262 regulator-always-on; 285 263 regulator-boot-on; 264 + regulator-state-mem { 265 + regulator-off-in-suspend; 266 + }; 286 267 }; 287 268 288 269 buck9_reg: BUCK9 { ··· 294 269 regulator-max-microvolt = <2000000>; 295 270 regulator-always-on; 296 271 regulator-boot-on; 272 + regulator-state-mem { 273 + regulator-on-in-suspend; 274 + }; 297 275 }; 298 276 299 277 buck10_reg: BUCK10 { ··· 305 277 regulator-max-microvolt = <1800000>; 306 278 regulator-always-on; 307 279 regulator-boot-on; 280 + regulator-state-mem { 281 + regulator-on-in-suspend; 282 + }; 308 283 }; 309 284 310 285 ldo1_reg: LDO1 { ··· 315 284 regulator-min-microvolt = <1000000>; 316 285 regulator-max-microvolt = <1000000>; 317 286 regulator-always-on; 287 + regulator-state-mem { 288 + regulator-on-in-suspend; 289 + regulator-mode = <MAX77802_OPMODE_LP>; 290 + }; 318 291 }; 319 292 320 293 ldo2_reg: LDO2 { ··· 332 297 regulator-min-microvolt = <1800000>; 333 298 regulator-max-microvolt = <1800000>; 334 299 regulator-always-on; 300 + regulator-state-mem { 301 + regulator-on-in-suspend; 302 + regulator-mode = <MAX77802_OPMODE_LP>; 303 + }; 335 304 }; 336 305 337 306 vqmmc_sdcard: ldo4_reg: LDO4 { ··· 343 304 regulator-min-microvolt = <1800000>; 344 305 regulator-max-microvolt = <2800000>; 345 306 regulator-always-on; 307 + regulator-state-mem { 308 + regulator-off-in-suspend; 309 + }; 346 310 }; 347 311 348 312 ldo5_reg: LDO5 { ··· 353 311 regulator-min-microvolt = <1800000>; 354 312 regulator-max-microvolt = <1800000>; 355 313 regulator-always-on; 314 + regulator-state-mem { 315 + regulator-off-in-suspend; 316 + }; 356 317 }; 357 318 358 319 ldo6_reg: LDO6 { ··· 363 318 regulator-min-microvolt = <1800000>; 364 319 regulator-max-microvolt = <1800000>; 365 320 regulator-always-on; 321 + regulator-state-mem { 322 + regulator-off-in-suspend; 323 + }; 366 324 }; 367 325 368 326 ldo7_reg: LDO7 { ··· 379 331 regulator-min-microvolt = <1000000>; 380 332 regulator-max-microvolt = <1000000>; 381 333 regulator-always-on; 334 + regulator-state-mem { 335 + regulator-off-in-suspend; 336 + }; 382 337 }; 383 338 384 339 ldo9_reg: LDO9 { ··· 389 338 regulator-min-microvolt = <1800000>; 390 339 regulator-max-microvolt = <1800000>; 391 340 regulator-always-on; 341 + regulator-state-mem { 342 + regulator-on-in-suspend; 343 + regulator-mode = <MAX77802_OPMODE_LP>; 344 + }; 392 345 }; 393 346 394 347 ldo10_reg: LDO10 { ··· 400 345 regulator-min-microvolt = <1800000>; 401 346 regulator-max-microvolt = <1800000>; 402 347 regulator-always-on; 348 + regulator-state-mem { 349 + regulator-off-in-suspend; 350 + }; 403 351 }; 404 352 405 353 ldo11_reg: LDO11 { ··· 410 352 regulator-min-microvolt = <1800000>; 411 353 regulator-max-microvolt = <1800000>; 412 354 regulator-always-on; 355 + regulator-state-mem { 356 + regulator-on-in-suspend; 357 + regulator-mode = <MAX77802_OPMODE_LP>; 358 + }; 413 359 }; 414 360 415 361 ldo12_reg: LDO12 { ··· 421 359 regulator-min-microvolt = <3000000>; 422 360 regulator-max-microvolt = <3000000>; 423 361 regulator-always-on; 362 + regulator-state-mem { 363 + regulator-off-in-suspend; 364 + }; 424 365 }; 425 366 426 367 ldo13_reg: LDO13 { ··· 431 366 regulator-min-microvolt = <1800000>; 432 367 regulator-max-microvolt = <1800000>; 433 368 regulator-always-on; 369 + regulator-state-mem { 370 + regulator-on-in-suspend; 371 + regulator-mode = <MAX77802_OPMODE_LP>; 372 + }; 434 373 }; 435 374 436 375 ldo14_reg: LDO14 { ··· 442 373 regulator-min-microvolt = <1800000>; 443 374 regulator-max-microvolt = <1800000>; 444 375 regulator-always-on; 376 + regulator-state-mem { 377 + regulator-off-in-suspend; 378 + }; 445 379 }; 446 380 447 381 ldo15_reg: LDO15 { ··· 452 380 regulator-min-microvolt = <1000000>; 453 381 regulator-max-microvolt = <1000000>; 454 382 regulator-always-on; 383 + regulator-state-mem { 384 + regulator-off-in-suspend; 385 + }; 455 386 }; 456 387 457 388 ldo17_reg: LDO17 { ··· 462 387 regulator-min-microvolt = <900000>; 463 388 regulator-max-microvolt = <1400000>; 464 389 regulator-always-on; 390 + regulator-state-mem { 391 + regulator-off-in-suspend; 392 + }; 465 393 }; 466 394 467 395 ldo18_reg: LDO18 { ··· 538 460 regulator-min-microvolt = <1000000>; 539 461 regulator-max-microvolt = <1000000>; 540 462 regulator-always-on; 463 + regulator-state-mem { 464 + regulator-off-in-suspend; 465 + }; 541 466 }; 542 467 543 468 ldo32_reg: LDO32 {
+81
arch/arm/boot/dts/exynos5800-peach-pi.dts
··· 13 13 #include <dt-bindings/gpio/gpio.h> 14 14 #include <dt-bindings/interrupt-controller/irq.h> 15 15 #include <dt-bindings/clock/maxim,max77802.h> 16 + #include <dt-bindings/regulator/maxim,max77802.h> 16 17 #include "exynos5800.dtsi" 17 18 18 19 / { ··· 202 201 regulator-always-on; 203 202 regulator-boot-on; 204 203 regulator-ramp-delay = <12500>; 204 + regulator-state-mem { 205 + regulator-off-in-suspend; 206 + }; 205 207 }; 206 208 207 209 buck2_reg: BUCK2 { ··· 214 210 regulator-always-on; 215 211 regulator-boot-on; 216 212 regulator-ramp-delay = <12500>; 213 + regulator-state-mem { 214 + regulator-off-in-suspend; 215 + }; 217 216 }; 218 217 219 218 buck3_reg: BUCK3 { ··· 226 219 regulator-always-on; 227 220 regulator-boot-on; 228 221 regulator-ramp-delay = <12500>; 222 + regulator-state-mem { 223 + regulator-off-in-suspend; 224 + }; 229 225 }; 230 226 231 227 buck4_reg: BUCK4 { ··· 238 228 regulator-always-on; 239 229 regulator-boot-on; 240 230 regulator-ramp-delay = <12500>; 231 + regulator-state-mem { 232 + regulator-off-in-suspend; 233 + }; 241 234 }; 242 235 243 236 buck5_reg: BUCK5 { ··· 249 236 regulator-max-microvolt = <1200000>; 250 237 regulator-always-on; 251 238 regulator-boot-on; 239 + regulator-state-mem { 240 + regulator-off-in-suspend; 241 + }; 252 242 }; 253 243 254 244 buck6_reg: BUCK6 { ··· 261 245 regulator-always-on; 262 246 regulator-boot-on; 263 247 regulator-ramp-delay = <12500>; 248 + regulator-state-mem { 249 + regulator-off-in-suspend; 250 + }; 264 251 }; 265 252 266 253 buck7_reg: BUCK7 { ··· 272 253 regulator-max-microvolt = <1350000>; 273 254 regulator-always-on; 274 255 regulator-boot-on; 256 + regulator-state-mem { 257 + regulator-on-in-suspend; 258 + }; 275 259 }; 276 260 277 261 buck8_reg: BUCK8 { ··· 283 261 regulator-max-microvolt = <2850000>; 284 262 regulator-always-on; 285 263 regulator-boot-on; 264 + regulator-state-mem { 265 + regulator-off-in-suspend; 266 + }; 286 267 }; 287 268 288 269 buck9_reg: BUCK9 { ··· 294 269 regulator-max-microvolt = <2000000>; 295 270 regulator-always-on; 296 271 regulator-boot-on; 272 + regulator-state-mem { 273 + regulator-on-in-suspend; 274 + }; 297 275 }; 298 276 299 277 buck10_reg: BUCK10 { ··· 305 277 regulator-max-microvolt = <1800000>; 306 278 regulator-always-on; 307 279 regulator-boot-on; 280 + regulator-state-mem { 281 + regulator-on-in-suspend; 282 + }; 308 283 }; 309 284 310 285 ldo1_reg: LDO1 { ··· 315 284 regulator-min-microvolt = <1000000>; 316 285 regulator-max-microvolt = <1000000>; 317 286 regulator-always-on; 287 + regulator-state-mem { 288 + regulator-on-in-suspend; 289 + regulator-mode = <MAX77802_OPMODE_LP>; 290 + }; 318 291 }; 319 292 320 293 ldo2_reg: LDO2 { ··· 332 297 regulator-min-microvolt = <1800000>; 333 298 regulator-max-microvolt = <1800000>; 334 299 regulator-always-on; 300 + regulator-state-mem { 301 + regulator-on-in-suspend; 302 + regulator-mode = <MAX77802_OPMODE_LP>; 303 + }; 335 304 }; 336 305 337 306 vqmmc_sdcard: ldo4_reg: LDO4 { ··· 343 304 regulator-min-microvolt = <1800000>; 344 305 regulator-max-microvolt = <2800000>; 345 306 regulator-always-on; 307 + regulator-state-mem { 308 + regulator-off-in-suspend; 309 + }; 346 310 }; 347 311 348 312 ldo5_reg: LDO5 { ··· 353 311 regulator-min-microvolt = <1800000>; 354 312 regulator-max-microvolt = <1800000>; 355 313 regulator-always-on; 314 + regulator-state-mem { 315 + regulator-off-in-suspend; 316 + }; 356 317 }; 357 318 358 319 ldo6_reg: LDO6 { ··· 363 318 regulator-min-microvolt = <1800000>; 364 319 regulator-max-microvolt = <1800000>; 365 320 regulator-always-on; 321 + regulator-state-mem { 322 + regulator-off-in-suspend; 323 + }; 366 324 }; 367 325 368 326 ldo7_reg: LDO7 { ··· 379 331 regulator-min-microvolt = <1000000>; 380 332 regulator-max-microvolt = <1000000>; 381 333 regulator-always-on; 334 + regulator-state-mem { 335 + regulator-off-in-suspend; 336 + }; 382 337 }; 383 338 384 339 ldo9_reg: LDO9 { ··· 389 338 regulator-min-microvolt = <1800000>; 390 339 regulator-max-microvolt = <1800000>; 391 340 regulator-always-on; 341 + regulator-state-mem { 342 + regulator-on-in-suspend; 343 + regulator-mode = <MAX77802_OPMODE_LP>; 344 + }; 392 345 }; 393 346 394 347 ldo10_reg: LDO10 { ··· 400 345 regulator-min-microvolt = <1800000>; 401 346 regulator-max-microvolt = <1800000>; 402 347 regulator-always-on; 348 + regulator-state-mem { 349 + regulator-off-in-suspend; 350 + }; 403 351 }; 404 352 405 353 ldo11_reg: LDO11 { ··· 410 352 regulator-min-microvolt = <1800000>; 411 353 regulator-max-microvolt = <1800000>; 412 354 regulator-always-on; 355 + regulator-state-mem { 356 + regulator-on-in-suspend; 357 + regulator-mode = <MAX77802_OPMODE_LP>; 358 + }; 413 359 }; 414 360 415 361 ldo12_reg: LDO12 { ··· 421 359 regulator-min-microvolt = <3000000>; 422 360 regulator-max-microvolt = <3000000>; 423 361 regulator-always-on; 362 + regulator-state-mem { 363 + regulator-off-in-suspend; 364 + }; 424 365 }; 425 366 426 367 ldo13_reg: LDO13 { ··· 431 366 regulator-min-microvolt = <1800000>; 432 367 regulator-max-microvolt = <1800000>; 433 368 regulator-always-on; 369 + regulator-state-mem { 370 + regulator-on-in-suspend; 371 + regulator-mode = <MAX77802_OPMODE_LP>; 372 + }; 434 373 }; 435 374 436 375 ldo14_reg: LDO14 { ··· 442 373 regulator-min-microvolt = <1800000>; 443 374 regulator-max-microvolt = <1800000>; 444 375 regulator-always-on; 376 + regulator-state-mem { 377 + regulator-off-in-suspend; 378 + }; 445 379 }; 446 380 447 381 ldo15_reg: LDO15 { ··· 452 380 regulator-min-microvolt = <1000000>; 453 381 regulator-max-microvolt = <1000000>; 454 382 regulator-always-on; 383 + regulator-state-mem { 384 + regulator-off-in-suspend; 385 + }; 455 386 }; 456 387 457 388 ldo17_reg: LDO17 { ··· 462 387 regulator-min-microvolt = <900000>; 463 388 regulator-max-microvolt = <1400000>; 464 389 regulator-always-on; 390 + regulator-state-mem { 391 + regulator-off-in-suspend; 392 + }; 465 393 }; 466 394 467 395 ldo18_reg: LDO18 { ··· 538 460 regulator-min-microvolt = <1000000>; 539 461 regulator-max-microvolt = <1000000>; 540 462 regulator-always-on; 463 + regulator-state-mem { 464 + regulator-off-in-suspend; 465 + }; 541 466 }; 542 467 543 468 ldo32_reg: LDO32 {