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

Merge tag 'omap-for-v4.5/fixes-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes

Two omap fixes for omaps against v4.5-rc5:

- Yet another fix for n900 onenand to avoid corruption. This time to
fix the issue of mounting onenand back and forth between the original
maemo kernel and mainline Linux kernel. And it also seems there will
be two more fixes coming via the MTD tree as issues were discovered
also in the onenand driver during testing.

- Revert tps65217 regulator clean up as it breaks MMC for am335x
variants. The proper way to clean this up is just to rename the
tps65217.dtsi file into tps65217-am335x.dtsi as a similar setup
is used on many am335x boards.

* tag 'omap-for-v4.5/fixes-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
ARM: OMAP2+: Fix onenand initialization to avoid filesystem corruption
Revert "regulator: tps65217: remove tps65217.dtsi file"

Signed-off-by: Olof Johansson <olof@lixom.net>

+70 -71
-10
Documentation/devicetree/bindings/regulator/tps65217.txt
··· 26 26 ti,pmic-shutdown-controller; 27 27 28 28 regulators { 29 - #address-cells = <1>; 30 - #size-cells = <0>; 31 - 32 29 dcdc1_reg: dcdc1 { 33 - reg = <0>; 34 30 regulator-min-microvolt = <900000>; 35 31 regulator-max-microvolt = <1800000>; 36 32 regulator-boot-on; ··· 34 38 }; 35 39 36 40 dcdc2_reg: dcdc2 { 37 - reg = <1>; 38 41 regulator-min-microvolt = <900000>; 39 42 regulator-max-microvolt = <3300000>; 40 43 regulator-boot-on; ··· 41 46 }; 42 47 43 48 dcdc3_reg: dcc3 { 44 - reg = <2>; 45 49 regulator-min-microvolt = <900000>; 46 50 regulator-max-microvolt = <1500000>; 47 51 regulator-boot-on; ··· 48 54 }; 49 55 50 56 ldo1_reg: ldo1 { 51 - reg = <3>; 52 57 regulator-min-microvolt = <1000000>; 53 58 regulator-max-microvolt = <3300000>; 54 59 regulator-boot-on; ··· 55 62 }; 56 63 57 64 ldo2_reg: ldo2 { 58 - reg = <4>; 59 65 regulator-min-microvolt = <900000>; 60 66 regulator-max-microvolt = <3300000>; 61 67 regulator-boot-on; ··· 62 70 }; 63 71 64 72 ldo3_reg: ldo3 { 65 - reg = <5>; 66 73 regulator-min-microvolt = <1800000>; 67 74 regulator-max-microvolt = <3300000>; 68 75 regulator-boot-on; ··· 69 78 }; 70 79 71 80 ldo4_reg: ldo4 { 72 - reg = <6>; 73 81 regulator-min-microvolt = <1800000>; 74 82 regulator-max-microvolt = <3300000>; 75 83 regulator-boot-on;
+3 -11
arch/arm/boot/dts/am335x-bone-common.dtsi
··· 285 285 }; 286 286 }; 287 287 288 + 289 + /include/ "tps65217.dtsi" 290 + 288 291 &tps { 289 - compatible = "ti,tps65217"; 290 292 /* 291 293 * Configure pmic to enter OFF-state instead of SLEEP-state ("RTC-only 292 294 * mode") at poweroff. Most BeagleBone versions do not support RTC-only ··· 309 307 ti,pmic-shutdown-controller; 310 308 311 309 regulators { 312 - #address-cells = <1>; 313 - #size-cells = <0>; 314 - 315 310 dcdc1_reg: regulator@0 { 316 - reg = <0>; 317 311 regulator-name = "vdds_dpr"; 318 312 regulator-always-on; 319 313 }; 320 314 321 315 dcdc2_reg: regulator@1 { 322 - reg = <1>; 323 316 /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */ 324 317 regulator-name = "vdd_mpu"; 325 318 regulator-min-microvolt = <925000>; ··· 324 327 }; 325 328 326 329 dcdc3_reg: regulator@2 { 327 - reg = <2>; 328 330 /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */ 329 331 regulator-name = "vdd_core"; 330 332 regulator-min-microvolt = <925000>; ··· 333 337 }; 334 338 335 339 ldo1_reg: regulator@3 { 336 - reg = <3>; 337 340 regulator-name = "vio,vrtc,vdds"; 338 341 regulator-always-on; 339 342 }; 340 343 341 344 ldo2_reg: regulator@4 { 342 - reg = <4>; 343 345 regulator-name = "vdd_3v3aux"; 344 346 regulator-always-on; 345 347 }; 346 348 347 349 ldo3_reg: regulator@5 { 348 - reg = <5>; 349 350 regulator-name = "vdd_1v8"; 350 351 regulator-always-on; 351 352 }; 352 353 353 354 ldo4_reg: regulator@6 { 354 - reg = <6>; 355 355 regulator-name = "vdd_3v3a"; 356 356 regulator-always-on; 357 357 };
+2 -12
arch/arm/boot/dts/am335x-chilisom.dtsi
··· 128 128 129 129 }; 130 130 131 + /include/ "tps65217.dtsi" 132 + 131 133 &tps { 132 - compatible = "ti,tps65217"; 133 - 134 134 regulators { 135 - #address-cells = <1>; 136 - #size-cells = <0>; 137 - 138 135 dcdc1_reg: regulator@0 { 139 - reg = <0>; 140 136 regulator-name = "vdds_dpr"; 141 137 regulator-always-on; 142 138 }; 143 139 144 140 dcdc2_reg: regulator@1 { 145 - reg = <1>; 146 141 /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */ 147 142 regulator-name = "vdd_mpu"; 148 143 regulator-min-microvolt = <925000>; ··· 147 152 }; 148 153 149 154 dcdc3_reg: regulator@2 { 150 - reg = <2>; 151 155 /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */ 152 156 regulator-name = "vdd_core"; 153 157 regulator-min-microvolt = <925000>; ··· 156 162 }; 157 163 158 164 ldo1_reg: regulator@3 { 159 - reg = <3>; 160 165 regulator-name = "vio,vrtc,vdds"; 161 166 regulator-boot-on; 162 167 regulator-always-on; 163 168 }; 164 169 165 170 ldo2_reg: regulator@4 { 166 - reg = <4>; 167 171 regulator-name = "vdd_3v3aux"; 168 172 regulator-boot-on; 169 173 regulator-always-on; 170 174 }; 171 175 172 176 ldo3_reg: regulator@5 { 173 - reg = <5>; 174 177 regulator-name = "vdd_1v8"; 175 178 regulator-boot-on; 176 179 regulator-always-on; 177 180 }; 178 181 179 182 ldo4_reg: regulator@6 { 180 - reg = <6>; 181 183 regulator-name = "vdd_3v3d"; 182 184 regulator-boot-on; 183 185 regulator-always-on;
+2 -12
arch/arm/boot/dts/am335x-nano.dts
··· 375 375 wp-gpios = <&gpio3 18 0>; 376 376 }; 377 377 378 + #include "tps65217.dtsi" 379 + 378 380 &tps { 379 - compatible = "ti,tps65217"; 380 - 381 381 regulators { 382 - #address-cells = <1>; 383 - #size-cells = <0>; 384 - 385 382 dcdc1_reg: regulator@0 { 386 - reg = <0>; 387 383 /* +1.5V voltage with ±4% tolerance */ 388 384 regulator-min-microvolt = <1450000>; 389 385 regulator-max-microvolt = <1550000>; ··· 388 392 }; 389 393 390 394 dcdc2_reg: regulator@1 { 391 - reg = <1>; 392 395 /* VDD_MPU voltage limits 0.95V - 1.1V with ±4% tolerance */ 393 396 regulator-name = "vdd_mpu"; 394 397 regulator-min-microvolt = <915000>; ··· 397 402 }; 398 403 399 404 dcdc3_reg: regulator@2 { 400 - reg = <2>; 401 405 /* VDD_CORE voltage limits 0.95V - 1.1V with ±4% tolerance */ 402 406 regulator-name = "vdd_core"; 403 407 regulator-min-microvolt = <915000>; ··· 406 412 }; 407 413 408 414 ldo1_reg: regulator@3 { 409 - reg = <3>; 410 415 /* +1.8V voltage with ±4% tolerance */ 411 416 regulator-min-microvolt = <1750000>; 412 417 regulator-max-microvolt = <1870000>; ··· 414 421 }; 415 422 416 423 ldo2_reg: regulator@4 { 417 - reg = <4>; 418 424 /* +3.3V voltage with ±4% tolerance */ 419 425 regulator-min-microvolt = <3175000>; 420 426 regulator-max-microvolt = <3430000>; ··· 422 430 }; 423 431 424 432 ldo3_reg: regulator@5 { 425 - reg = <5>; 426 433 /* +1.8V voltage with ±4% tolerance */ 427 434 regulator-min-microvolt = <1750000>; 428 435 regulator-max-microvolt = <1870000>; ··· 430 439 }; 431 440 432 441 ldo4_reg: regulator@6 { 433 - reg = <6>; 434 442 /* +3.3V voltage with ±4% tolerance */ 435 443 regulator-min-microvolt = <3175000>; 436 444 regulator-max-microvolt = <3430000>;
+2 -12
arch/arm/boot/dts/am335x-pepper.dts
··· 420 420 vin-supply = <&vbat>; 421 421 }; 422 422 423 - &tps { 424 - compatible = "ti,tps65217"; 423 + /include/ "tps65217.dtsi" 425 424 425 + &tps { 426 426 backlight { 427 427 isel = <1>; /* ISET1 */ 428 428 fdim = <200>; /* TPS65217_BL_FDIM_200HZ */ ··· 430 430 }; 431 431 432 432 regulators { 433 - #address-cells = <1>; 434 - #size-cells = <0>; 435 - 436 433 dcdc1_reg: regulator@0 { 437 - reg = <0>; 438 434 /* VDD_1V8 system supply */ 439 435 regulator-always-on; 440 436 }; 441 437 442 438 dcdc2_reg: regulator@1 { 443 - reg = <1>; 444 439 /* VDD_CORE voltage limits 0.95V - 1.26V with +/-4% tolerance */ 445 440 regulator-name = "vdd_core"; 446 441 regulator-min-microvolt = <925000>; ··· 445 450 }; 446 451 447 452 dcdc3_reg: regulator@2 { 448 - reg = <2>; 449 453 /* VDD_MPU voltage limits 0.95V - 1.1V with +/-4% tolerance */ 450 454 regulator-name = "vdd_mpu"; 451 455 regulator-min-microvolt = <925000>; ··· 454 460 }; 455 461 456 462 ldo1_reg: regulator@3 { 457 - reg = <3>; 458 463 /* VRTC 1.8V always-on supply */ 459 464 regulator-name = "vrtc,vdds"; 460 465 regulator-always-on; 461 466 }; 462 467 463 468 ldo2_reg: regulator@4 { 464 - reg = <4>; 465 469 /* 3.3V rail */ 466 470 regulator-name = "vdd_3v3aux"; 467 471 regulator-always-on; 468 472 }; 469 473 470 474 ldo3_reg: regulator@5 { 471 - reg = <5>; 472 475 /* VDD_3V3A 3.3V rail */ 473 476 regulator-name = "vdd_3v3a"; 474 477 regulator-min-microvolt = <3300000>; ··· 473 482 }; 474 483 475 484 ldo4_reg: regulator@6 { 476 - reg = <6>; 477 485 /* VDD_3V3B 3.3V rail */ 478 486 regulator-name = "vdd_3v3b"; 479 487 regulator-always-on;
+2 -11
arch/arm/boot/dts/am335x-sl50.dts
··· 375 375 pinctrl-0 = <&uart4_pins>; 376 376 }; 377 377 378 + #include "tps65217.dtsi" 379 + 378 380 &tps { 379 - compatible = "ti,tps65217"; 380 381 ti,pmic-shutdown-controller; 381 382 382 383 interrupt-parent = <&intc>; 383 384 interrupts = <7>; /* NNMI */ 384 385 385 386 regulators { 386 - #address-cells = <1>; 387 - #size-cells = <0>; 388 - 389 387 dcdc1_reg: regulator@0 { 390 - reg = <0>; 391 388 /* VDDS_DDR */ 392 389 regulator-min-microvolt = <1500000>; 393 390 regulator-max-microvolt = <1500000>; ··· 392 395 }; 393 396 394 397 dcdc2_reg: regulator@1 { 395 - reg = <1>; 396 398 /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */ 397 399 regulator-name = "vdd_mpu"; 398 400 regulator-min-microvolt = <925000>; ··· 401 405 }; 402 406 403 407 dcdc3_reg: regulator@2 { 404 - reg = <2>; 405 408 /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */ 406 409 regulator-name = "vdd_core"; 407 410 regulator-min-microvolt = <925000>; ··· 410 415 }; 411 416 412 417 ldo1_reg: regulator@3 { 413 - reg = <3>; 414 418 /* VRTC / VIO / VDDS*/ 415 419 regulator-always-on; 416 420 regulator-min-microvolt = <1800000>; ··· 417 423 }; 418 424 419 425 ldo2_reg: regulator@4 { 420 - reg = <4>; 421 426 /* VDD_3V3AUX */ 422 427 regulator-always-on; 423 428 regulator-min-microvolt = <3300000>; ··· 424 431 }; 425 432 426 433 ldo3_reg: regulator@5 { 427 - reg = <5>; 428 434 /* VDD_1V8 */ 429 435 regulator-min-microvolt = <1800000>; 430 436 regulator-max-microvolt = <1800000>; ··· 431 439 }; 432 440 433 441 ldo4_reg: regulator@6 { 434 - reg = <6>; 435 442 /* VDD_3V3A */ 436 443 regulator-min-microvolt = <3300000>; 437 444 regulator-max-microvolt = <3300000>;
+56
arch/arm/boot/dts/tps65217.dtsi
··· 1 + /* 2 + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ 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 as 6 + * published by the Free Software Foundation. 7 + */ 8 + 9 + /* 10 + * Integrated Power Management Chip 11 + * http://www.ti.com/lit/ds/symlink/tps65217.pdf 12 + */ 13 + 14 + &tps { 15 + compatible = "ti,tps65217"; 16 + 17 + regulators { 18 + #address-cells = <1>; 19 + #size-cells = <0>; 20 + 21 + dcdc1_reg: regulator@0 { 22 + reg = <0>; 23 + regulator-compatible = "dcdc1"; 24 + }; 25 + 26 + dcdc2_reg: regulator@1 { 27 + reg = <1>; 28 + regulator-compatible = "dcdc2"; 29 + }; 30 + 31 + dcdc3_reg: regulator@2 { 32 + reg = <2>; 33 + regulator-compatible = "dcdc3"; 34 + }; 35 + 36 + ldo1_reg: regulator@3 { 37 + reg = <3>; 38 + regulator-compatible = "ldo1"; 39 + }; 40 + 41 + ldo2_reg: regulator@4 { 42 + reg = <4>; 43 + regulator-compatible = "ldo2"; 44 + }; 45 + 46 + ldo3_reg: regulator@5 { 47 + reg = <5>; 48 + regulator-compatible = "ldo3"; 49 + }; 50 + 51 + ldo4_reg: regulator@6 { 52 + reg = <6>; 53 + regulator-compatible = "ldo4"; 54 + }; 55 + }; 56 + };
+3 -3
arch/arm/mach-omap2/gpmc-onenand.c
··· 101 101 102 102 static void set_onenand_cfg(void __iomem *onenand_base) 103 103 { 104 - u32 reg; 104 + u32 reg = ONENAND_SYS_CFG1_RDY | ONENAND_SYS_CFG1_INT; 105 105 106 - reg = readw(onenand_base + ONENAND_REG_SYS_CFG1); 107 - reg &= ~((0x7 << ONENAND_SYS_CFG1_BRL_SHIFT) | (0x7 << 9)); 108 106 reg |= (latency << ONENAND_SYS_CFG1_BRL_SHIFT) | 109 107 ONENAND_SYS_CFG1_BL_16; 110 108 if (onenand_flags & ONENAND_FLAG_SYNCREAD) ··· 121 123 reg |= ONENAND_SYS_CFG1_VHF; 122 124 else 123 125 reg &= ~ONENAND_SYS_CFG1_VHF; 126 + 124 127 writew(reg, onenand_base + ONENAND_REG_SYS_CFG1); 125 128 } 126 129 ··· 288 289 } 289 290 } 290 291 292 + onenand_async.sync_write = true; 291 293 omap2_onenand_calc_async_timings(&t); 292 294 293 295 ret = gpmc_cs_program_settings(gpmc_onenand_data->cs, &onenand_async);