diff options
author | Olof Johansson <olof@lixom.net> | 2012-11-21 03:21:56 -0500 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2012-11-21 05:13:07 -0500 |
commit | 5e505bb9e7ffcebf02e760425de55d2c52127cef (patch) | |
tree | fbafa63265f862e76b5b111aa21998056a15b90b | |
parent | 5ffd785402c295328d3866d9f8630152f51d332a (diff) | |
parent | d1d3b978f67c2c000f9d91387cffa630e738d529 (diff) |
Merge tag 'tegra-for-3.8-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra into next/soc
From Stephen Warren:
ARM: tegra: core SoC code enhancements
Various small clock initialization table and driver changes to support
WiFi modules, SPI controllers, and host1x (graphics/display hardware).
Various AHB/APB-related clocks were added to the Tegra30 clock driver.
The level 2 cache initialization is now driven by data from device tree,
and the cache configuration tweaked.
AUXDATA is added to support SPI controllers and host1x.
Code to decode Tegra's "speedo" process identification fuses is added.
This pull request is based on tegra-for-3.8-cleanup.
* tag 'tegra-for-3.8-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra: (26 commits)
ARM: tegra: Add Tegra30 host1x clock support
ARM: tegra: Add AUXDATA for Tegra30 host1x
ARM: tegra: Add Tegra20 host1x clock support
ARM: tegra: Add AUXDATA for Tegra20 host1x
ARM: tegra: Tegra30 speedo-based process identification
ARM: tegra: Add speedo-based process identification
ARM: tegra: flexible spare fuse read function
ARM: tegra: Implement 6395/1 for Tegra
ARM: tegra: Add OF_DEV_AUXDATA for sflash driver in board dt
ARM: tegra: enable data prefetch on L2
ARM: tegra: Add OF_DEV_AUXDATA for SLINK driver in board dt
ARM: tegra: common: using OF api for L2 cache init
ARM: tegra: dt: add L2 cache controller
ARM: tegra30: clocks: add AHB and APB clocks
ARM: tegra: set up wlan clocks for tegra dt
ARM: tegra: move irammap.h to mach-tegra
ARM: tegra: move iomap.h to mach-tegra
ARM: tegra: remove <mach/dma.h>
ARM: tegra: move tegra-ahb.h out of arch/arm/mach-tegra/
ARM: tegra: remove unnecessary includes of <mach/*.h>
...
56 files changed, 846 insertions, 504 deletions
diff --git a/arch/arm/boot/dts/tegra20-harmony.dts b/arch/arm/boot/dts/tegra20-harmony.dts index c3ef1ad26b6a..74b8a47adf91 100644 --- a/arch/arm/boot/dts/tegra20-harmony.dts +++ b/arch/arm/boot/dts/tegra20-harmony.dts | |||
@@ -297,131 +297,98 @@ | |||
297 | vinldo9-supply = <&sm2_reg>; | 297 | vinldo9-supply = <&sm2_reg>; |
298 | 298 | ||
299 | regulators { | 299 | regulators { |
300 | #address-cells = <1>; | 300 | sys_reg: sys { |
301 | #size-cells = <0>; | ||
302 | |||
303 | sys_reg: regulator@0 { | ||
304 | reg = <0>; | ||
305 | regulator-compatible = "sys"; | ||
306 | regulator-name = "vdd_sys"; | 301 | regulator-name = "vdd_sys"; |
307 | regulator-always-on; | 302 | regulator-always-on; |
308 | }; | 303 | }; |
309 | 304 | ||
310 | regulator@1 { | 305 | sm0 { |
311 | reg = <1>; | ||
312 | regulator-compatible = "sm0"; | ||
313 | regulator-name = "vdd_sm0,vdd_core"; | 306 | regulator-name = "vdd_sm0,vdd_core"; |
314 | regulator-min-microvolt = <1200000>; | 307 | regulator-min-microvolt = <1200000>; |
315 | regulator-max-microvolt = <1200000>; | 308 | regulator-max-microvolt = <1200000>; |
316 | regulator-always-on; | 309 | regulator-always-on; |
317 | }; | 310 | }; |
318 | 311 | ||
319 | regulator@2 { | 312 | sm1 { |
320 | reg = <2>; | ||
321 | regulator-compatible = "sm1"; | ||
322 | regulator-name = "vdd_sm1,vdd_cpu"; | 313 | regulator-name = "vdd_sm1,vdd_cpu"; |
323 | regulator-min-microvolt = <1000000>; | 314 | regulator-min-microvolt = <1000000>; |
324 | regulator-max-microvolt = <1000000>; | 315 | regulator-max-microvolt = <1000000>; |
325 | regulator-always-on; | 316 | regulator-always-on; |
326 | }; | 317 | }; |
327 | 318 | ||
328 | sm2_reg: regulator@3 { | 319 | sm2_reg: sm2 { |
329 | reg = <3>; | ||
330 | regulator-compatible = "sm2"; | ||
331 | regulator-name = "vdd_sm2,vin_ldo*"; | 320 | regulator-name = "vdd_sm2,vin_ldo*"; |
332 | regulator-min-microvolt = <3700000>; | 321 | regulator-min-microvolt = <3700000>; |
333 | regulator-max-microvolt = <3700000>; | 322 | regulator-max-microvolt = <3700000>; |
334 | regulator-always-on; | 323 | regulator-always-on; |
335 | }; | 324 | }; |
336 | 325 | ||
337 | regulator@4 { | 326 | ldo0 { |
338 | reg = <4>; | ||
339 | regulator-compatible = "ldo0"; | ||
340 | regulator-name = "vdd_ldo0,vddio_pex_clk"; | 327 | regulator-name = "vdd_ldo0,vddio_pex_clk"; |
341 | regulator-min-microvolt = <3300000>; | 328 | regulator-min-microvolt = <3300000>; |
342 | regulator-max-microvolt = <3300000>; | 329 | regulator-max-microvolt = <3300000>; |
343 | }; | 330 | }; |
344 | 331 | ||
345 | regulator@5 { | 332 | ldo1 { |
346 | reg = <5>; | ||
347 | regulator-compatible = "ldo1"; | ||
348 | regulator-name = "vdd_ldo1,avdd_pll*"; | 333 | regulator-name = "vdd_ldo1,avdd_pll*"; |
349 | regulator-min-microvolt = <1100000>; | 334 | regulator-min-microvolt = <1100000>; |
350 | regulator-max-microvolt = <1100000>; | 335 | regulator-max-microvolt = <1100000>; |
351 | regulator-always-on; | 336 | regulator-always-on; |
352 | }; | 337 | }; |
353 | 338 | ||
354 | regulator@6 { | 339 | ldo2 { |
355 | reg = <6>; | ||
356 | regulator-compatible = "ldo2"; | ||
357 | regulator-name = "vdd_ldo2,vdd_rtc"; | 340 | regulator-name = "vdd_ldo2,vdd_rtc"; |
358 | regulator-min-microvolt = <1200000>; | 341 | regulator-min-microvolt = <1200000>; |
359 | regulator-max-microvolt = <1200000>; | 342 | regulator-max-microvolt = <1200000>; |
360 | }; | 343 | }; |
361 | 344 | ||
362 | regulator@7 { | 345 | ldo3 { |
363 | reg = <7>; | ||
364 | regulator-compatible = "ldo3"; | ||
365 | regulator-name = "vdd_ldo3,avdd_usb*"; | 346 | regulator-name = "vdd_ldo3,avdd_usb*"; |
366 | regulator-min-microvolt = <3300000>; | 347 | regulator-min-microvolt = <3300000>; |
367 | regulator-max-microvolt = <3300000>; | 348 | regulator-max-microvolt = <3300000>; |
368 | regulator-always-on; | 349 | regulator-always-on; |
369 | }; | 350 | }; |
370 | 351 | ||
371 | regulator@8 { | 352 | ldo4 { |
372 | reg = <8>; | ||
373 | regulator-compatible = "ldo4"; | ||
374 | regulator-name = "vdd_ldo4,avdd_osc,vddio_sys"; | 353 | regulator-name = "vdd_ldo4,avdd_osc,vddio_sys"; |
375 | regulator-min-microvolt = <1800000>; | 354 | regulator-min-microvolt = <1800000>; |
376 | regulator-max-microvolt = <1800000>; | 355 | regulator-max-microvolt = <1800000>; |
377 | regulator-always-on; | 356 | regulator-always-on; |
378 | }; | 357 | }; |
379 | 358 | ||
380 | regulator@9 { | 359 | ldo5 { |
381 | reg = <9>; | ||
382 | regulator-compatible = "ldo5"; | ||
383 | regulator-name = "vdd_ldo5,vcore_mmc"; | 360 | regulator-name = "vdd_ldo5,vcore_mmc"; |
384 | regulator-min-microvolt = <2850000>; | 361 | regulator-min-microvolt = <2850000>; |
385 | regulator-max-microvolt = <2850000>; | 362 | regulator-max-microvolt = <2850000>; |
386 | regulator-always-on; | 363 | regulator-always-on; |
387 | }; | 364 | }; |
388 | 365 | ||
389 | regulator@10 { | 366 | ldo6 { |
390 | reg = <10>; | ||
391 | regulator-compatible = "ldo6"; | ||
392 | regulator-name = "vdd_ldo6,avdd_vdac"; | 367 | regulator-name = "vdd_ldo6,avdd_vdac"; |
393 | regulator-min-microvolt = <1800000>; | 368 | regulator-min-microvolt = <1800000>; |
394 | regulator-max-microvolt = <1800000>; | 369 | regulator-max-microvolt = <1800000>; |
395 | }; | 370 | }; |
396 | 371 | ||
397 | regulator@11 { | 372 | ldo7 { |
398 | reg = <11>; | ||
399 | regulator-compatible = "ldo7"; | ||
400 | regulator-name = "vdd_ldo7,avdd_hdmi"; | 373 | regulator-name = "vdd_ldo7,avdd_hdmi"; |
401 | regulator-min-microvolt = <3300000>; | 374 | regulator-min-microvolt = <3300000>; |
402 | regulator-max-microvolt = <3300000>; | 375 | regulator-max-microvolt = <3300000>; |
403 | }; | 376 | }; |
404 | 377 | ||
405 | regulator@12 { | 378 | ldo8 { |
406 | reg = <12>; | ||
407 | regulator-compatible = "ldo8"; | ||
408 | regulator-name = "vdd_ldo8,avdd_hdmi_pll"; | 379 | regulator-name = "vdd_ldo8,avdd_hdmi_pll"; |
409 | regulator-min-microvolt = <1800000>; | 380 | regulator-min-microvolt = <1800000>; |
410 | regulator-max-microvolt = <1800000>; | 381 | regulator-max-microvolt = <1800000>; |
411 | }; | 382 | }; |
412 | 383 | ||
413 | regulator@13 { | 384 | ldo9 { |
414 | reg = <13>; | ||
415 | regulator-compatible = "ldo9"; | ||
416 | regulator-name = "vdd_ldo9,avdd_2v85,vdd_ddr_rx"; | 385 | regulator-name = "vdd_ldo9,avdd_2v85,vdd_ddr_rx"; |
417 | regulator-min-microvolt = <2850000>; | 386 | regulator-min-microvolt = <2850000>; |
418 | regulator-max-microvolt = <2850000>; | 387 | regulator-max-microvolt = <2850000>; |
419 | regulator-always-on; | 388 | regulator-always-on; |
420 | }; | 389 | }; |
421 | 390 | ||
422 | regulator@14 { | 391 | ldo_rtc { |
423 | reg = <14>; | ||
424 | regulator-compatible = "ldo_rtc"; | ||
425 | regulator-name = "vdd_rtc_out,vdd_cell"; | 392 | regulator-name = "vdd_rtc_out,vdd_cell"; |
426 | regulator-min-microvolt = <3300000>; | 393 | regulator-min-microvolt = <3300000>; |
427 | regulator-max-microvolt = <3300000>; | 394 | regulator-max-microvolt = <3300000>; |
diff --git a/arch/arm/boot/dts/tegra20-paz00.dts b/arch/arm/boot/dts/tegra20-paz00.dts index ddf287f52d49..6a93d1404c76 100644 --- a/arch/arm/boot/dts/tegra20-paz00.dts +++ b/arch/arm/boot/dts/tegra20-paz00.dts | |||
@@ -291,37 +291,26 @@ | |||
291 | vinldo9-supply = <&sm2_reg>; | 291 | vinldo9-supply = <&sm2_reg>; |
292 | 292 | ||
293 | regulators { | 293 | regulators { |
294 | #address-cells = <1>; | 294 | sys_reg: sys { |
295 | #size-cells = <0>; | ||
296 | |||
297 | sys_reg: regulator@0 { | ||
298 | reg = <0>; | ||
299 | regulator-compatible = "sys"; | ||
300 | regulator-name = "vdd_sys"; | 295 | regulator-name = "vdd_sys"; |
301 | regulator-always-on; | 296 | regulator-always-on; |
302 | }; | 297 | }; |
303 | 298 | ||
304 | regulator@1 { | 299 | sm0 { |
305 | reg = <1>; | ||
306 | regulator-compatible = "sm0"; | ||
307 | regulator-name = "+1.2vs_sm0,vdd_core"; | 300 | regulator-name = "+1.2vs_sm0,vdd_core"; |
308 | regulator-min-microvolt = <1200000>; | 301 | regulator-min-microvolt = <1200000>; |
309 | regulator-max-microvolt = <1200000>; | 302 | regulator-max-microvolt = <1200000>; |
310 | regulator-always-on; | 303 | regulator-always-on; |
311 | }; | 304 | }; |
312 | 305 | ||
313 | regulator@2 { | 306 | sm1 { |
314 | reg = <2>; | ||
315 | regulator-compatible = "sm1"; | ||
316 | regulator-name = "+1.0vs_sm1,vdd_cpu"; | 307 | regulator-name = "+1.0vs_sm1,vdd_cpu"; |
317 | regulator-min-microvolt = <1000000>; | 308 | regulator-min-microvolt = <1000000>; |
318 | regulator-max-microvolt = <1000000>; | 309 | regulator-max-microvolt = <1000000>; |
319 | regulator-always-on; | 310 | regulator-always-on; |
320 | }; | 311 | }; |
321 | 312 | ||
322 | sm2_reg: regulator@3 { | 313 | sm2_reg: sm2 { |
323 | reg = <3>; | ||
324 | regulator-compatible = "sm2"; | ||
325 | regulator-name = "+3.7vs_sm2,vin_ldo*"; | 314 | regulator-name = "+3.7vs_sm2,vin_ldo*"; |
326 | regulator-min-microvolt = <3700000>; | 315 | regulator-min-microvolt = <3700000>; |
327 | regulator-max-microvolt = <3700000>; | 316 | regulator-max-microvolt = <3700000>; |
@@ -330,53 +319,41 @@ | |||
330 | 319 | ||
331 | /* LDO0 is not connected to anything */ | 320 | /* LDO0 is not connected to anything */ |
332 | 321 | ||
333 | regulator@5 { | 322 | ldo1 { |
334 | reg = <5>; | ||
335 | regulator-compatible = "ldo1"; | ||
336 | regulator-name = "+1.1vs_ldo1,avdd_pll*"; | 323 | regulator-name = "+1.1vs_ldo1,avdd_pll*"; |
337 | regulator-min-microvolt = <1100000>; | 324 | regulator-min-microvolt = <1100000>; |
338 | regulator-max-microvolt = <1100000>; | 325 | regulator-max-microvolt = <1100000>; |
339 | regulator-always-on; | 326 | regulator-always-on; |
340 | }; | 327 | }; |
341 | 328 | ||
342 | regulator@6 { | 329 | ldo2 { |
343 | reg = <6>; | ||
344 | regulator-compatible = "ldo2"; | ||
345 | regulator-name = "+1.2vs_ldo2,vdd_rtc"; | 330 | regulator-name = "+1.2vs_ldo2,vdd_rtc"; |
346 | regulator-min-microvolt = <1200000>; | 331 | regulator-min-microvolt = <1200000>; |
347 | regulator-max-microvolt = <1200000>; | 332 | regulator-max-microvolt = <1200000>; |
348 | }; | 333 | }; |
349 | 334 | ||
350 | regulator@7 { | 335 | ldo3 { |
351 | reg = <7>; | ||
352 | regulator-compatible = "ldo3"; | ||
353 | regulator-name = "+3.3vs_ldo3,avdd_usb*"; | 336 | regulator-name = "+3.3vs_ldo3,avdd_usb*"; |
354 | regulator-min-microvolt = <3300000>; | 337 | regulator-min-microvolt = <3300000>; |
355 | regulator-max-microvolt = <3300000>; | 338 | regulator-max-microvolt = <3300000>; |
356 | regulator-always-on; | 339 | regulator-always-on; |
357 | }; | 340 | }; |
358 | 341 | ||
359 | regulator@8 { | 342 | ldo4 { |
360 | reg = <8>; | ||
361 | regulator-compatible = "ldo4"; | ||
362 | regulator-name = "+1.8vs_ldo4,avdd_osc,vddio_sys"; | 343 | regulator-name = "+1.8vs_ldo4,avdd_osc,vddio_sys"; |
363 | regulator-min-microvolt = <1800000>; | 344 | regulator-min-microvolt = <1800000>; |
364 | regulator-max-microvolt = <1800000>; | 345 | regulator-max-microvolt = <1800000>; |
365 | regulator-always-on; | 346 | regulator-always-on; |
366 | }; | 347 | }; |
367 | 348 | ||
368 | regulator@9 { | 349 | ldo5 { |
369 | reg = <9>; | ||
370 | regulator-compatible = "ldo5"; | ||
371 | regulator-name = "+2.85vs_ldo5,vcore_mmc"; | 350 | regulator-name = "+2.85vs_ldo5,vcore_mmc"; |
372 | regulator-min-microvolt = <2850000>; | 351 | regulator-min-microvolt = <2850000>; |
373 | regulator-max-microvolt = <2850000>; | 352 | regulator-max-microvolt = <2850000>; |
374 | regulator-always-on; | 353 | regulator-always-on; |
375 | }; | 354 | }; |
376 | 355 | ||
377 | regulator@10 { | 356 | ldo6 { |
378 | reg = <10>; | ||
379 | regulator-compatible = "ldo6"; | ||
380 | /* | 357 | /* |
381 | * Research indicates this should be | 358 | * Research indicates this should be |
382 | * 1.8v; other boards that use this | 359 | * 1.8v; other boards that use this |
@@ -390,34 +367,26 @@ | |||
390 | regulator-max-microvolt = <1800000>; | 367 | regulator-max-microvolt = <1800000>; |
391 | }; | 368 | }; |
392 | 369 | ||
393 | regulator@11 { | 370 | ldo7 { |
394 | reg = <11>; | ||
395 | regulator-compatible = "ldo7"; | ||
396 | regulator-name = "+3.3vs_ldo7,avdd_hdmi"; | 371 | regulator-name = "+3.3vs_ldo7,avdd_hdmi"; |
397 | regulator-min-microvolt = <3300000>; | 372 | regulator-min-microvolt = <3300000>; |
398 | regulator-max-microvolt = <3300000>; | 373 | regulator-max-microvolt = <3300000>; |
399 | }; | 374 | }; |
400 | 375 | ||
401 | regulator@12 { | 376 | ldo8 { |
402 | reg = <12>; | ||
403 | regulator-compatible = "ldo8"; | ||
404 | regulator-name = "+1.8vs_ldo8,avdd_hdmi_pll"; | 377 | regulator-name = "+1.8vs_ldo8,avdd_hdmi_pll"; |
405 | regulator-min-microvolt = <1800000>; | 378 | regulator-min-microvolt = <1800000>; |
406 | regulator-max-microvolt = <1800000>; | 379 | regulator-max-microvolt = <1800000>; |
407 | }; | 380 | }; |
408 | 381 | ||
409 | regulator@13 { | 382 | ldo9 { |
410 | reg = <13>; | ||
411 | regulator-compatible = "ldo9"; | ||
412 | regulator-name = "+2.85vs_ldo9,vdd_ddr_rx"; | 383 | regulator-name = "+2.85vs_ldo9,vdd_ddr_rx"; |
413 | regulator-min-microvolt = <2850000>; | 384 | regulator-min-microvolt = <2850000>; |
414 | regulator-max-microvolt = <2850000>; | 385 | regulator-max-microvolt = <2850000>; |
415 | regulator-always-on; | 386 | regulator-always-on; |
416 | }; | 387 | }; |
417 | 388 | ||
418 | regulator@14 { | 389 | ldo_rtc { |
419 | reg = <14>; | ||
420 | regulator-compatible = "ldo_rtc"; | ||
421 | regulator-name = "+3.3vs_rtc"; | 390 | regulator-name = "+3.3vs_rtc"; |
422 | regulator-min-microvolt = <3300000>; | 391 | regulator-min-microvolt = <3300000>; |
423 | regulator-max-microvolt = <3300000>; | 392 | regulator-max-microvolt = <3300000>; |
diff --git a/arch/arm/boot/dts/tegra20-seaboard.dts b/arch/arm/boot/dts/tegra20-seaboard.dts index f0ba901676ac..33ae81358d8e 100644 --- a/arch/arm/boot/dts/tegra20-seaboard.dts +++ b/arch/arm/boot/dts/tegra20-seaboard.dts | |||
@@ -395,37 +395,26 @@ | |||
395 | vinldo9-supply = <&sm2_reg>; | 395 | vinldo9-supply = <&sm2_reg>; |
396 | 396 | ||
397 | regulators { | 397 | regulators { |
398 | #address-cells = <1>; | 398 | sys_reg: sys { |
399 | #size-cells = <0>; | ||
400 | |||
401 | sys_reg: regulator@0 { | ||
402 | reg = <0>; | ||
403 | regulator-compatible = "sys"; | ||
404 | regulator-name = "vdd_sys"; | 399 | regulator-name = "vdd_sys"; |
405 | regulator-always-on; | 400 | regulator-always-on; |
406 | }; | 401 | }; |
407 | 402 | ||
408 | regulator@1 { | 403 | sm0 { |
409 | reg = <1>; | ||
410 | regulator-compatible = "sm0"; | ||
411 | regulator-name = "vdd_sm0,vdd_core"; | 404 | regulator-name = "vdd_sm0,vdd_core"; |
412 | regulator-min-microvolt = <1300000>; | 405 | regulator-min-microvolt = <1300000>; |
413 | regulator-max-microvolt = <1300000>; | 406 | regulator-max-microvolt = <1300000>; |
414 | regulator-always-on; | 407 | regulator-always-on; |
415 | }; | 408 | }; |
416 | 409 | ||
417 | regulator@2 { | 410 | sm1 { |
418 | reg = <2>; | ||
419 | regulator-compatible = "sm1"; | ||
420 | regulator-name = "vdd_sm1,vdd_cpu"; | 411 | regulator-name = "vdd_sm1,vdd_cpu"; |
421 | regulator-min-microvolt = <1125000>; | 412 | regulator-min-microvolt = <1125000>; |
422 | regulator-max-microvolt = <1125000>; | 413 | regulator-max-microvolt = <1125000>; |
423 | regulator-always-on; | 414 | regulator-always-on; |
424 | }; | 415 | }; |
425 | 416 | ||
426 | sm2_reg: regulator@3 { | 417 | sm2_reg: sm2 { |
427 | reg = <3>; | ||
428 | regulator-compatible = "sm2"; | ||
429 | regulator-name = "vdd_sm2,vin_ldo*"; | 418 | regulator-name = "vdd_sm2,vin_ldo*"; |
430 | regulator-min-microvolt = <3700000>; | 419 | regulator-min-microvolt = <3700000>; |
431 | regulator-max-microvolt = <3700000>; | 420 | regulator-max-microvolt = <3700000>; |
@@ -434,86 +423,66 @@ | |||
434 | 423 | ||
435 | /* LDO0 is not connected to anything */ | 424 | /* LDO0 is not connected to anything */ |
436 | 425 | ||
437 | regulator@5 { | 426 | ldo1 { |
438 | reg = <5>; | ||
439 | regulator-compatible = "ldo1"; | ||
440 | regulator-name = "vdd_ldo1,avdd_pll*"; | 427 | regulator-name = "vdd_ldo1,avdd_pll*"; |
441 | regulator-min-microvolt = <1100000>; | 428 | regulator-min-microvolt = <1100000>; |
442 | regulator-max-microvolt = <1100000>; | 429 | regulator-max-microvolt = <1100000>; |
443 | regulator-always-on; | 430 | regulator-always-on; |
444 | }; | 431 | }; |
445 | 432 | ||
446 | regulator@6 { | 433 | ldo2 { |
447 | reg = <6>; | ||
448 | regulator-compatible = "ldo2"; | ||
449 | regulator-name = "vdd_ldo2,vdd_rtc"; | 434 | regulator-name = "vdd_ldo2,vdd_rtc"; |
450 | regulator-min-microvolt = <1200000>; | 435 | regulator-min-microvolt = <1200000>; |
451 | regulator-max-microvolt = <1200000>; | 436 | regulator-max-microvolt = <1200000>; |
452 | }; | 437 | }; |
453 | 438 | ||
454 | regulator@7 { | 439 | ldo3 { |
455 | reg = <7>; | ||
456 | regulator-compatible = "ldo3"; | ||
457 | regulator-name = "vdd_ldo3,avdd_usb*"; | 440 | regulator-name = "vdd_ldo3,avdd_usb*"; |
458 | regulator-min-microvolt = <3300000>; | 441 | regulator-min-microvolt = <3300000>; |
459 | regulator-max-microvolt = <3300000>; | 442 | regulator-max-microvolt = <3300000>; |
460 | regulator-always-on; | 443 | regulator-always-on; |
461 | }; | 444 | }; |
462 | 445 | ||
463 | regulator@8 { | 446 | ldo4 { |
464 | reg = <8>; | ||
465 | regulator-compatible = "ldo4"; | ||
466 | regulator-name = "vdd_ldo4,avdd_osc,vddio_sys"; | 447 | regulator-name = "vdd_ldo4,avdd_osc,vddio_sys"; |
467 | regulator-min-microvolt = <1800000>; | 448 | regulator-min-microvolt = <1800000>; |
468 | regulator-max-microvolt = <1800000>; | 449 | regulator-max-microvolt = <1800000>; |
469 | regulator-always-on; | 450 | regulator-always-on; |
470 | }; | 451 | }; |
471 | 452 | ||
472 | regulator@9 { | 453 | ldo5 { |
473 | reg = <9>; | ||
474 | regulator-compatible = "ldo5"; | ||
475 | regulator-name = "vdd_ldo5,vcore_mmc"; | 454 | regulator-name = "vdd_ldo5,vcore_mmc"; |
476 | regulator-min-microvolt = <2850000>; | 455 | regulator-min-microvolt = <2850000>; |
477 | regulator-max-microvolt = <2850000>; | 456 | regulator-max-microvolt = <2850000>; |
478 | regulator-always-on; | 457 | regulator-always-on; |
479 | }; | 458 | }; |
480 | 459 | ||
481 | regulator@10 { | 460 | ldo6 { |
482 | reg = <10>; | ||
483 | regulator-compatible = "ldo6"; | ||
484 | regulator-name = "vdd_ldo6,avdd_vdac,vddio_vi,vddio_cam"; | 461 | regulator-name = "vdd_ldo6,avdd_vdac,vddio_vi,vddio_cam"; |
485 | regulator-min-microvolt = <1800000>; | 462 | regulator-min-microvolt = <1800000>; |
486 | regulator-max-microvolt = <1800000>; | 463 | regulator-max-microvolt = <1800000>; |
487 | }; | 464 | }; |
488 | 465 | ||
489 | regulator@11 { | 466 | ldo7 { |
490 | reg = <11>; | ||
491 | regulator-compatible = "ldo7"; | ||
492 | regulator-name = "vdd_ldo7,avdd_hdmi,vdd_fuse"; | 467 | regulator-name = "vdd_ldo7,avdd_hdmi,vdd_fuse"; |
493 | regulator-min-microvolt = <3300000>; | 468 | regulator-min-microvolt = <3300000>; |
494 | regulator-max-microvolt = <3300000>; | 469 | regulator-max-microvolt = <3300000>; |
495 | }; | 470 | }; |
496 | 471 | ||
497 | regulator@12 { | 472 | ldo8 { |
498 | reg = <12>; | ||
499 | regulator-compatible = "ldo8"; | ||
500 | regulator-name = "vdd_ldo8,avdd_hdmi_pll"; | 473 | regulator-name = "vdd_ldo8,avdd_hdmi_pll"; |
501 | regulator-min-microvolt = <1800000>; | 474 | regulator-min-microvolt = <1800000>; |
502 | regulator-max-microvolt = <1800000>; | 475 | regulator-max-microvolt = <1800000>; |
503 | }; | 476 | }; |
504 | 477 | ||
505 | regulator@13 { | 478 | ldo9 { |
506 | reg = <13>; | ||
507 | regulator-compatible = "ldo9"; | ||
508 | regulator-name = "vdd_ldo9,avdd_2v85,vdd_ddr_rx"; | 479 | regulator-name = "vdd_ldo9,avdd_2v85,vdd_ddr_rx"; |
509 | regulator-min-microvolt = <2850000>; | 480 | regulator-min-microvolt = <2850000>; |
510 | regulator-max-microvolt = <2850000>; | 481 | regulator-max-microvolt = <2850000>; |
511 | regulator-always-on; | 482 | regulator-always-on; |
512 | }; | 483 | }; |
513 | 484 | ||
514 | regulator@14 { | 485 | ldo_rtc { |
515 | reg = <14>; | ||
516 | regulator-compatible = "ldo_rtc"; | ||
517 | regulator-name = "vdd_rtc_out,vdd_cell"; | 486 | regulator-name = "vdd_rtc_out,vdd_cell"; |
518 | regulator-min-microvolt = <3300000>; | 487 | regulator-min-microvolt = <3300000>; |
519 | regulator-max-microvolt = <3300000>; | 488 | regulator-max-microvolt = <3300000>; |
diff --git a/arch/arm/boot/dts/tegra20-tamonten.dtsi b/arch/arm/boot/dts/tegra20-tamonten.dtsi index f18cec9f6a77..5b3d8b157b33 100644 --- a/arch/arm/boot/dts/tegra20-tamonten.dtsi +++ b/arch/arm/boot/dts/tegra20-tamonten.dtsi | |||
@@ -271,97 +271,72 @@ | |||
271 | vinldo9-supply = <&sm2_reg>; | 271 | vinldo9-supply = <&sm2_reg>; |
272 | 272 | ||
273 | regulators { | 273 | regulators { |
274 | #address-cells = <1>; | 274 | sys_reg: sys { |
275 | #size-cells = <0>; | ||
276 | |||
277 | sys_reg: regulator@0 { | ||
278 | reg = <0>; | ||
279 | regulator-compatible = "sys"; | ||
280 | regulator-name = "vdd_sys"; | 275 | regulator-name = "vdd_sys"; |
281 | regulator-always-on; | 276 | regulator-always-on; |
282 | }; | 277 | }; |
283 | 278 | ||
284 | regulator@1 { | 279 | sm0 { |
285 | reg = <1>; | ||
286 | regulator-compatible = "sm0"; | ||
287 | regulator-name = "vdd_sys_sm0,vdd_core"; | 280 | regulator-name = "vdd_sys_sm0,vdd_core"; |
288 | regulator-min-microvolt = <1200000>; | 281 | regulator-min-microvolt = <1200000>; |
289 | regulator-max-microvolt = <1200000>; | 282 | regulator-max-microvolt = <1200000>; |
290 | regulator-always-on; | 283 | regulator-always-on; |
291 | }; | 284 | }; |
292 | 285 | ||
293 | regulator@2 { | 286 | sm1 { |
294 | reg = <2>; | ||
295 | regulator-compatible = "sm1"; | ||
296 | regulator-name = "vdd_sys_sm1,vdd_cpu"; | 287 | regulator-name = "vdd_sys_sm1,vdd_cpu"; |
297 | regulator-min-microvolt = <1000000>; | 288 | regulator-min-microvolt = <1000000>; |
298 | regulator-max-microvolt = <1000000>; | 289 | regulator-max-microvolt = <1000000>; |
299 | regulator-always-on; | 290 | regulator-always-on; |
300 | }; | 291 | }; |
301 | 292 | ||
302 | sm2_reg: regulator@3 { | 293 | sm2_reg: sm2 { |
303 | reg = <3>; | ||
304 | regulator-compatible = "sm2"; | ||
305 | regulator-name = "vdd_sys_sm2,vin_ldo*"; | 294 | regulator-name = "vdd_sys_sm2,vin_ldo*"; |
306 | regulator-min-microvolt = <3700000>; | 295 | regulator-min-microvolt = <3700000>; |
307 | regulator-max-microvolt = <3700000>; | 296 | regulator-max-microvolt = <3700000>; |
308 | regulator-always-on; | 297 | regulator-always-on; |
309 | }; | 298 | }; |
310 | 299 | ||
311 | regulator@4 { | 300 | ldo0 { |
312 | reg = <4>; | ||
313 | regulator-compatible = "ldo0"; | ||
314 | regulator-name = "vdd_ldo0,vddio_pex_clk"; | 301 | regulator-name = "vdd_ldo0,vddio_pex_clk"; |
315 | regulator-min-microvolt = <3300000>; | 302 | regulator-min-microvolt = <3300000>; |
316 | regulator-max-microvolt = <3300000>; | 303 | regulator-max-microvolt = <3300000>; |
317 | }; | 304 | }; |
318 | 305 | ||
319 | regulator@5 { | 306 | ldo1 { |
320 | reg = <5>; | ||
321 | regulator-compatible = "ldo1"; | ||
322 | regulator-name = "vdd_ldo1,avdd_pll*"; | 307 | regulator-name = "vdd_ldo1,avdd_pll*"; |
323 | regulator-min-microvolt = <1100000>; | 308 | regulator-min-microvolt = <1100000>; |
324 | regulator-max-microvolt = <1100000>; | 309 | regulator-max-microvolt = <1100000>; |
325 | regulator-always-on; | 310 | regulator-always-on; |
326 | }; | 311 | }; |
327 | 312 | ||
328 | regulator@6 { | 313 | ldo2 { |
329 | reg = <6>; | ||
330 | regulator-compatible = "ldo2"; | ||
331 | regulator-name = "vdd_ldo2,vdd_rtc"; | 314 | regulator-name = "vdd_ldo2,vdd_rtc"; |
332 | regulator-min-microvolt = <1200000>; | 315 | regulator-min-microvolt = <1200000>; |
333 | regulator-max-microvolt = <1200000>; | 316 | regulator-max-microvolt = <1200000>; |
334 | }; | 317 | }; |
335 | 318 | ||
336 | regulator@7 { | 319 | ldo3 { |
337 | reg = <7>; | ||
338 | regulator-compatible = "ldo3"; | ||
339 | regulator-name = "vdd_ldo3,avdd_usb*"; | 320 | regulator-name = "vdd_ldo3,avdd_usb*"; |
340 | regulator-min-microvolt = <3300000>; | 321 | regulator-min-microvolt = <3300000>; |
341 | regulator-max-microvolt = <3300000>; | 322 | regulator-max-microvolt = <3300000>; |
342 | regulator-always-on; | 323 | regulator-always-on; |
343 | }; | 324 | }; |
344 | 325 | ||
345 | regulator@8 { | 326 | ldo4 { |
346 | reg = <8>; | ||
347 | regulator-compatible = "ldo4"; | ||
348 | regulator-name = "vdd_ldo4,avdd_osc,vddio_sys"; | 327 | regulator-name = "vdd_ldo4,avdd_osc,vddio_sys"; |
349 | regulator-min-microvolt = <1800000>; | 328 | regulator-min-microvolt = <1800000>; |
350 | regulator-max-microvolt = <1800000>; | 329 | regulator-max-microvolt = <1800000>; |
351 | regulator-always-on; | 330 | regulator-always-on; |
352 | }; | 331 | }; |
353 | 332 | ||
354 | regulator@9 { | 333 | ldo5 { |
355 | reg = <9>; | ||
356 | regulator-compatible = "ldo5"; | ||
357 | regulator-name = "vdd_ldo5,vcore_mmc"; | 334 | regulator-name = "vdd_ldo5,vcore_mmc"; |
358 | regulator-min-microvolt = <2850000>; | 335 | regulator-min-microvolt = <2850000>; |
359 | regulator-max-microvolt = <2850000>; | 336 | regulator-max-microvolt = <2850000>; |
360 | }; | 337 | }; |
361 | 338 | ||
362 | regulator@10 { | 339 | ldo6 { |
363 | reg = <10>; | ||
364 | regulator-compatible = "ldo6"; | ||
365 | regulator-name = "vdd_ldo6,avdd_vdac"; | 340 | regulator-name = "vdd_ldo6,avdd_vdac"; |
366 | /* | 341 | /* |
367 | * According to the Tegra 2 Automotive | 342 | * According to the Tegra 2 Automotive |
@@ -373,25 +348,19 @@ | |||
373 | regulator-max-microvolt = <2850000>; | 348 | regulator-max-microvolt = <2850000>; |
374 | }; | 349 | }; |
375 | 350 | ||
376 | regulator@11 { | 351 | ldo7 { |
377 | reg = <11>; | ||
378 | regulator-compatible = "ldo7"; | ||
379 | regulator-name = "vdd_ldo7,avdd_hdmi"; | 352 | regulator-name = "vdd_ldo7,avdd_hdmi"; |
380 | regulator-min-microvolt = <3300000>; | 353 | regulator-min-microvolt = <3300000>; |
381 | regulator-max-microvolt = <3300000>; | 354 | regulator-max-microvolt = <3300000>; |
382 | }; | 355 | }; |
383 | 356 | ||
384 | regulator@12 { | 357 | ldo8 { |
385 | reg = <12>; | ||
386 | regulator-compatible = "ldo8"; | ||
387 | regulator-name = "vdd_ldo8,avdd_hdmi_pll"; | 358 | regulator-name = "vdd_ldo8,avdd_hdmi_pll"; |
388 | regulator-min-microvolt = <1800000>; | 359 | regulator-min-microvolt = <1800000>; |
389 | regulator-max-microvolt = <1800000>; | 360 | regulator-max-microvolt = <1800000>; |
390 | }; | 361 | }; |
391 | 362 | ||
392 | regulator@13 { | 363 | ldo9 { |
393 | reg = <13>; | ||
394 | regulator-compatible = "ldo9"; | ||
395 | regulator-name = "vdd_ldo9,vdd_ddr_rx,avdd_cam"; | 364 | regulator-name = "vdd_ldo9,vdd_ddr_rx,avdd_cam"; |
396 | /* | 365 | /* |
397 | * According to the Tegra 2 Automotive | 366 | * According to the Tegra 2 Automotive |
@@ -404,9 +373,7 @@ | |||
404 | regulator-always-on; | 373 | regulator-always-on; |
405 | }; | 374 | }; |
406 | 375 | ||
407 | regulator@14 { | 376 | ldo_rtc { |
408 | reg = <14>; | ||
409 | regulator-compatible = "ldo_rtc"; | ||
410 | regulator-name = "vdd_rtc_out"; | 377 | regulator-name = "vdd_rtc_out"; |
411 | regulator-min-microvolt = <3300000>; | 378 | regulator-min-microvolt = <3300000>; |
412 | regulator-max-microvolt = <3300000>; | 379 | regulator-max-microvolt = <3300000>; |
diff --git a/arch/arm/boot/dts/tegra20-ventana.dts b/arch/arm/boot/dts/tegra20-ventana.dts index 3e5952fcfbc5..86854f1abd58 100644 --- a/arch/arm/boot/dts/tegra20-ventana.dts +++ b/arch/arm/boot/dts/tegra20-ventana.dts | |||
@@ -311,37 +311,26 @@ | |||
311 | vinldo9-supply = <&sm2_reg>; | 311 | vinldo9-supply = <&sm2_reg>; |
312 | 312 | ||
313 | regulators { | 313 | regulators { |
314 | #address-cells = <1>; | 314 | sys_reg: sys { |
315 | #size-cells = <0>; | ||
316 | |||
317 | sys_reg: regulator@0 { | ||
318 | reg = <0>; | ||
319 | regulator-compatible = "sys"; | ||
320 | regulator-name = "vdd_sys"; | 315 | regulator-name = "vdd_sys"; |
321 | regulator-always-on; | 316 | regulator-always-on; |
322 | }; | 317 | }; |
323 | 318 | ||
324 | regulator@1 { | 319 | sm0 { |
325 | reg = <1>; | ||
326 | regulator-compatible = "sm0"; | ||
327 | regulator-name = "vdd_sm0,vdd_core"; | 320 | regulator-name = "vdd_sm0,vdd_core"; |
328 | regulator-min-microvolt = <1200000>; | 321 | regulator-min-microvolt = <1200000>; |
329 | regulator-max-microvolt = <1200000>; | 322 | regulator-max-microvolt = <1200000>; |
330 | regulator-always-on; | 323 | regulator-always-on; |
331 | }; | 324 | }; |
332 | 325 | ||
333 | regulator@2 { | 326 | sm1 { |
334 | reg = <2>; | ||
335 | regulator-compatible = "sm1"; | ||
336 | regulator-name = "vdd_sm1,vdd_cpu"; | 327 | regulator-name = "vdd_sm1,vdd_cpu"; |
337 | regulator-min-microvolt = <1000000>; | 328 | regulator-min-microvolt = <1000000>; |
338 | regulator-max-microvolt = <1000000>; | 329 | regulator-max-microvolt = <1000000>; |
339 | regulator-always-on; | 330 | regulator-always-on; |
340 | }; | 331 | }; |
341 | 332 | ||
342 | sm2_reg: regulator@3 { | 333 | sm2_reg: sm2 { |
343 | reg = <3>; | ||
344 | regulator-compatible = "sm2"; | ||
345 | regulator-name = "vdd_sm2,vin_ldo*"; | 334 | regulator-name = "vdd_sm2,vin_ldo*"; |
346 | regulator-min-microvolt = <3700000>; | 335 | regulator-min-microvolt = <3700000>; |
347 | regulator-max-microvolt = <3700000>; | 336 | regulator-max-microvolt = <3700000>; |
@@ -350,86 +339,66 @@ | |||
350 | 339 | ||
351 | /* LDO0 is not connected to anything */ | 340 | /* LDO0 is not connected to anything */ |
352 | 341 | ||
353 | regulator@5 { | 342 | ldo1 { |
354 | reg = <5>; | ||
355 | regulator-compatible = "ldo1"; | ||
356 | regulator-name = "vdd_ldo1,avdd_pll*"; | 343 | regulator-name = "vdd_ldo1,avdd_pll*"; |
357 | regulator-min-microvolt = <1100000>; | 344 | regulator-min-microvolt = <1100000>; |
358 | regulator-max-microvolt = <1100000>; | 345 | regulator-max-microvolt = <1100000>; |
359 | regulator-always-on; | 346 | regulator-always-on; |
360 | }; | 347 | }; |
361 | 348 | ||
362 | regulator@6 { | 349 | ldo2 { |
363 | reg = <6>; | ||
364 | regulator-compatible = "ldo2"; | ||
365 | regulator-name = "vdd_ldo2,vdd_rtc"; | 350 | regulator-name = "vdd_ldo2,vdd_rtc"; |
366 | regulator-min-microvolt = <1200000>; | 351 | regulator-min-microvolt = <1200000>; |
367 | regulator-max-microvolt = <1200000>; | 352 | regulator-max-microvolt = <1200000>; |
368 | }; | 353 | }; |
369 | 354 | ||
370 | regulator@7 { | 355 | ldo3 { |
371 | reg = <7>; | ||
372 | regulator-compatible = "ldo3"; | ||
373 | regulator-name = "vdd_ldo3,avdd_usb*"; | 356 | regulator-name = "vdd_ldo3,avdd_usb*"; |
374 | regulator-min-microvolt = <3300000>; | 357 | regulator-min-microvolt = <3300000>; |
375 | regulator-max-microvolt = <3300000>; | 358 | regulator-max-microvolt = <3300000>; |
376 | regulator-always-on; | 359 | regulator-always-on; |
377 | }; | 360 | }; |
378 | 361 | ||
379 | regulator@8 { | 362 | ldo4 { |
380 | reg = <8>; | ||
381 | regulator-compatible = "ldo4"; | ||
382 | regulator-name = "vdd_ldo4,avdd_osc,vddio_sys"; | 363 | regulator-name = "vdd_ldo4,avdd_osc,vddio_sys"; |
383 | regulator-min-microvolt = <1800000>; | 364 | regulator-min-microvolt = <1800000>; |
384 | regulator-max-microvolt = <1800000>; | 365 | regulator-max-microvolt = <1800000>; |
385 | regulator-always-on; | 366 | regulator-always-on; |
386 | }; | 367 | }; |
387 | 368 | ||
388 | regulator@9 { | 369 | ldo5 { |
389 | reg = <9>; | ||
390 | regulator-compatible = "ldo5"; | ||
391 | regulator-name = "vdd_ldo5,vcore_mmc"; | 370 | regulator-name = "vdd_ldo5,vcore_mmc"; |
392 | regulator-min-microvolt = <2850000>; | 371 | regulator-min-microvolt = <2850000>; |
393 | regulator-max-microvolt = <2850000>; | 372 | regulator-max-microvolt = <2850000>; |
394 | regulator-always-on; | 373 | regulator-always-on; |
395 | }; | 374 | }; |
396 | 375 | ||
397 | regulator@10 { | 376 | ldo6 { |
398 | reg = <10>; | ||
399 | regulator-compatible = "ldo6"; | ||
400 | regulator-name = "vdd_ldo6,avdd_vdac"; | 377 | regulator-name = "vdd_ldo6,avdd_vdac"; |
401 | regulator-min-microvolt = <1800000>; | 378 | regulator-min-microvolt = <1800000>; |
402 | regulator-max-microvolt = <1800000>; | 379 | regulator-max-microvolt = <1800000>; |
403 | }; | 380 | }; |
404 | 381 | ||
405 | regulator@11 { | 382 | ldo7 { |
406 | reg = <11>; | ||
407 | regulator-compatible = "ldo7"; | ||
408 | regulator-name = "vdd_ldo7,avdd_hdmi,vdd_fuse"; | 383 | regulator-name = "vdd_ldo7,avdd_hdmi,vdd_fuse"; |
409 | regulator-min-microvolt = <3300000>; | 384 | regulator-min-microvolt = <3300000>; |
410 | regulator-max-microvolt = <3300000>; | 385 | regulator-max-microvolt = <3300000>; |
411 | }; | 386 | }; |
412 | 387 | ||
413 | regulator@12 { | 388 | ldo8 { |
414 | reg = <12>; | ||
415 | regulator-compatible = "ldo8"; | ||
416 | regulator-name = "vdd_ldo8,avdd_hdmi_pll"; | 389 | regulator-name = "vdd_ldo8,avdd_hdmi_pll"; |
417 | regulator-min-microvolt = <1800000>; | 390 | regulator-min-microvolt = <1800000>; |
418 | regulator-max-microvolt = <1800000>; | 391 | regulator-max-microvolt = <1800000>; |
419 | }; | 392 | }; |
420 | 393 | ||
421 | regulator@13 { | 394 | ldo9 { |
422 | reg = <13>; | ||
423 | regulator-compatible = "ldo9"; | ||
424 | regulator-name = "vdd_ldo9,avdd_2v85,vdd_ddr_rx"; | 395 | regulator-name = "vdd_ldo9,avdd_2v85,vdd_ddr_rx"; |
425 | regulator-min-microvolt = <2850000>; | 396 | regulator-min-microvolt = <2850000>; |
426 | regulator-max-microvolt = <2850000>; | 397 | regulator-max-microvolt = <2850000>; |
427 | regulator-always-on; | 398 | regulator-always-on; |
428 | }; | 399 | }; |
429 | 400 | ||
430 | regulator@14 { | 401 | ldo_rtc { |
431 | reg = <14>; | ||
432 | regulator-compatible = "ldo_rtc"; | ||
433 | regulator-name = "vdd_rtc_out,vdd_cell"; | 402 | regulator-name = "vdd_rtc_out,vdd_cell"; |
434 | regulator-min-microvolt = <3300000>; | 403 | regulator-min-microvolt = <3300000>; |
435 | regulator-max-microvolt = <3300000>; | 404 | regulator-max-microvolt = <3300000>; |
diff --git a/arch/arm/boot/dts/tegra20-whistler.dts b/arch/arm/boot/dts/tegra20-whistler.dts index c636d002d6d8..94a71c91beb5 100644 --- a/arch/arm/boot/dts/tegra20-whistler.dts +++ b/arch/arm/boot/dts/tegra20-whistler.dts | |||
@@ -295,243 +295,182 @@ | |||
295 | in20-supply = <&mbatt_reg>; | 295 | in20-supply = <&mbatt_reg>; |
296 | 296 | ||
297 | regulators { | 297 | regulators { |
298 | #address-cells = <1>; | 298 | mbatt_reg: mbatt { |
299 | #size-cells = <0>; | ||
300 | |||
301 | mbatt_reg: regulator@0 { | ||
302 | reg = <0>; | ||
303 | regulator-compatible = "mbatt"; | ||
304 | regulator-name = "vbat_pmu"; | 299 | regulator-name = "vbat_pmu"; |
305 | regulator-always-on; | 300 | regulator-always-on; |
306 | }; | 301 | }; |
307 | 302 | ||
308 | regulator@1 { | 303 | sd1 { |
309 | reg = <1>; | ||
310 | regulator-compatible = "sd1"; | ||
311 | regulator-name = "nvvdd_sv1,vdd_cpu_pmu"; | 304 | regulator-name = "nvvdd_sv1,vdd_cpu_pmu"; |
312 | regulator-min-microvolt = <1000000>; | 305 | regulator-min-microvolt = <1000000>; |
313 | regulator-max-microvolt = <1000000>; | 306 | regulator-max-microvolt = <1000000>; |
314 | regulator-always-on; | 307 | regulator-always-on; |
315 | }; | 308 | }; |
316 | 309 | ||
317 | regulator@2 { | 310 | sd2 { |
318 | reg = <2>; | ||
319 | regulator-compatible = "sd2"; | ||
320 | regulator-name = "nvvdd_sv2,vdd_core"; | 311 | regulator-name = "nvvdd_sv2,vdd_core"; |
321 | regulator-min-microvolt = <1200000>; | 312 | regulator-min-microvolt = <1200000>; |
322 | regulator-max-microvolt = <1200000>; | 313 | regulator-max-microvolt = <1200000>; |
323 | regulator-always-on; | 314 | regulator-always-on; |
324 | }; | 315 | }; |
325 | 316 | ||
326 | nvvdd_sv3_reg: regulator@3 { | 317 | nvvdd_sv3_reg: sd3 { |
327 | reg = <3>; | ||
328 | regulator-compatible = "sd3"; | ||
329 | regulator-name = "nvvdd_sv3"; | 318 | regulator-name = "nvvdd_sv3"; |
330 | regulator-min-microvolt = <1800000>; | 319 | regulator-min-microvolt = <1800000>; |
331 | regulator-max-microvolt = <1800000>; | 320 | regulator-max-microvolt = <1800000>; |
332 | regulator-always-on; | 321 | regulator-always-on; |
333 | }; | 322 | }; |
334 | 323 | ||
335 | regulator@4 { | 324 | ldo1 { |
336 | reg = <4>; | ||
337 | regulator-compatible = "ldo1"; | ||
338 | regulator-name = "nvvdd_ldo1,vddio_rx_ddr,vcore_acc"; | 325 | regulator-name = "nvvdd_ldo1,vddio_rx_ddr,vcore_acc"; |
339 | regulator-min-microvolt = <3300000>; | 326 | regulator-min-microvolt = <3300000>; |
340 | regulator-max-microvolt = <3300000>; | 327 | regulator-max-microvolt = <3300000>; |
341 | regulator-always-on; | 328 | regulator-always-on; |
342 | }; | 329 | }; |
343 | 330 | ||
344 | regulator@5 { | 331 | ldo2 { |
345 | reg = <5>; | ||
346 | regulator-compatible = "ldo2"; | ||
347 | regulator-name = "nvvdd_ldo2,avdd_pll*"; | 332 | regulator-name = "nvvdd_ldo2,avdd_pll*"; |
348 | regulator-min-microvolt = <1100000>; | 333 | regulator-min-microvolt = <1100000>; |
349 | regulator-max-microvolt = <1100000>; | 334 | regulator-max-microvolt = <1100000>; |
350 | regulator-always-on; | 335 | regulator-always-on; |
351 | }; | 336 | }; |
352 | 337 | ||
353 | regulator@6 { | 338 | ldo3 { |
354 | reg = <6>; | ||
355 | regulator-compatible = "ldo3"; | ||
356 | regulator-name = "nvvdd_ldo3,vcom_1v8b"; | 339 | regulator-name = "nvvdd_ldo3,vcom_1v8b"; |
357 | regulator-min-microvolt = <1800000>; | 340 | regulator-min-microvolt = <1800000>; |
358 | regulator-max-microvolt = <1800000>; | 341 | regulator-max-microvolt = <1800000>; |
359 | regulator-always-on; | 342 | regulator-always-on; |
360 | }; | 343 | }; |
361 | 344 | ||
362 | regulator@7 { | 345 | ldo4 { |
363 | reg = <7>; | ||
364 | regulator-compatible = "ldo4"; | ||
365 | regulator-name = "nvvdd_ldo4,avdd_usb*"; | 346 | regulator-name = "nvvdd_ldo4,avdd_usb*"; |
366 | regulator-min-microvolt = <3300000>; | 347 | regulator-min-microvolt = <3300000>; |
367 | regulator-max-microvolt = <3300000>; | 348 | regulator-max-microvolt = <3300000>; |
368 | regulator-always-on; | 349 | regulator-always-on; |
369 | }; | 350 | }; |
370 | 351 | ||
371 | regulator@8 { | 352 | ldo5 { |
372 | reg = <8>; | ||
373 | regulator-compatible = "ldo5"; | ||
374 | regulator-name = "nvvdd_ldo5,vcore_mmc,avdd_lcd1,vddio_1wire"; | 353 | regulator-name = "nvvdd_ldo5,vcore_mmc,avdd_lcd1,vddio_1wire"; |
375 | regulator-min-microvolt = <2800000>; | 354 | regulator-min-microvolt = <2800000>; |
376 | regulator-max-microvolt = <2800000>; | 355 | regulator-max-microvolt = <2800000>; |
377 | regulator-always-on; | 356 | regulator-always-on; |
378 | }; | 357 | }; |
379 | 358 | ||
380 | regulator@9 { | 359 | ldo6 { |
381 | reg = <9>; | ||
382 | regulator-compatible = "ldo6"; | ||
383 | regulator-name = "nvvdd_ldo6,avdd_hdmi_pll"; | 360 | regulator-name = "nvvdd_ldo6,avdd_hdmi_pll"; |
384 | regulator-min-microvolt = <1800000>; | 361 | regulator-min-microvolt = <1800000>; |
385 | regulator-max-microvolt = <1800000>; | 362 | regulator-max-microvolt = <1800000>; |
386 | }; | 363 | }; |
387 | 364 | ||
388 | regulator@10 { | 365 | ldo7 { |
389 | reg = <10>; | ||
390 | regulator-compatible = "ldo7"; | ||
391 | regulator-name = "nvvdd_ldo7,avddio_audio"; | 366 | regulator-name = "nvvdd_ldo7,avddio_audio"; |
392 | regulator-min-microvolt = <2800000>; | 367 | regulator-min-microvolt = <2800000>; |
393 | regulator-max-microvolt = <2800000>; | 368 | regulator-max-microvolt = <2800000>; |
394 | regulator-always-on; | 369 | regulator-always-on; |
395 | }; | 370 | }; |
396 | 371 | ||
397 | regulator@11 { | 372 | ldo8 { |
398 | reg = <11>; | ||
399 | regulator-compatible = "ldo8"; | ||
400 | regulator-name = "nvvdd_ldo8,vcom_3v0,vcore_cmps"; | 373 | regulator-name = "nvvdd_ldo8,vcom_3v0,vcore_cmps"; |
401 | regulator-min-microvolt = <3000000>; | 374 | regulator-min-microvolt = <3000000>; |
402 | regulator-max-microvolt = <3000000>; | 375 | regulator-max-microvolt = <3000000>; |
403 | }; | 376 | }; |
404 | 377 | ||
405 | regulator@12 { | 378 | ldo9 { |
406 | reg = <12>; | ||
407 | regulator-compatible = "ldo9"; | ||
408 | regulator-name = "nvvdd_ldo9,avdd_cam*"; | 379 | regulator-name = "nvvdd_ldo9,avdd_cam*"; |
409 | regulator-min-microvolt = <2800000>; | 380 | regulator-min-microvolt = <2800000>; |
410 | regulator-max-microvolt = <2800000>; | 381 | regulator-max-microvolt = <2800000>; |
411 | }; | 382 | }; |
412 | 383 | ||
413 | regulator@13 { | 384 | ldo10 { |
414 | reg = <13>; | ||
415 | regulator-compatible = "ldo10"; | ||
416 | regulator-name = "nvvdd_ldo10,avdd_usb_ic_3v0"; | 385 | regulator-name = "nvvdd_ldo10,avdd_usb_ic_3v0"; |
417 | regulator-min-microvolt = <3000000>; | 386 | regulator-min-microvolt = <3000000>; |
418 | regulator-max-microvolt = <3000000>; | 387 | regulator-max-microvolt = <3000000>; |
419 | regulator-always-on; | 388 | regulator-always-on; |
420 | }; | 389 | }; |
421 | 390 | ||
422 | regulator@14 { | 391 | ldo11 { |
423 | reg = <14>; | ||
424 | regulator-compatible = "ldo11"; | ||
425 | regulator-name = "nvvdd_ldo11,vddio_pex_clk,vcom_33,avdd_hdmi"; | 392 | regulator-name = "nvvdd_ldo11,vddio_pex_clk,vcom_33,avdd_hdmi"; |
426 | regulator-min-microvolt = <3300000>; | 393 | regulator-min-microvolt = <3300000>; |
427 | regulator-max-microvolt = <3300000>; | 394 | regulator-max-microvolt = <3300000>; |
428 | }; | 395 | }; |
429 | 396 | ||
430 | regulator@15 { | 397 | ldo12 { |
431 | reg = <15>; | ||
432 | regulator-compatible = "ldo12"; | ||
433 | regulator-name = "nvvdd_ldo12,vddio_sdio"; | 398 | regulator-name = "nvvdd_ldo12,vddio_sdio"; |
434 | regulator-min-microvolt = <2800000>; | 399 | regulator-min-microvolt = <2800000>; |
435 | regulator-max-microvolt = <2800000>; | 400 | regulator-max-microvolt = <2800000>; |
436 | regulator-always-on; | 401 | regulator-always-on; |
437 | }; | 402 | }; |
438 | 403 | ||
439 | regulator@16 { | 404 | ldo13 { |
440 | reg = <16>; | ||
441 | regulator-compatible = "ldo13"; | ||
442 | regulator-name = "nvvdd_ldo13,vcore_phtn,vdd_af"; | 405 | regulator-name = "nvvdd_ldo13,vcore_phtn,vdd_af"; |
443 | regulator-min-microvolt = <2800000>; | 406 | regulator-min-microvolt = <2800000>; |
444 | regulator-max-microvolt = <2800000>; | 407 | regulator-max-microvolt = <2800000>; |
445 | }; | 408 | }; |
446 | 409 | ||
447 | regulator@17 { | 410 | ldo14 { |
448 | reg = <17>; | ||
449 | regulator-compatible = "ldo14"; | ||
450 | regulator-name = "nvvdd_ldo14,avdd_vdac"; | 411 | regulator-name = "nvvdd_ldo14,avdd_vdac"; |
451 | regulator-min-microvolt = <2800000>; | 412 | regulator-min-microvolt = <2800000>; |
452 | regulator-max-microvolt = <2800000>; | 413 | regulator-max-microvolt = <2800000>; |
453 | }; | 414 | }; |
454 | 415 | ||
455 | regulator@18 { | 416 | ldo15 { |
456 | reg = <18>; | ||
457 | regulator-compatible = "ldo15"; | ||
458 | regulator-name = "nvvdd_ldo15,vcore_temp,vddio_hdcp"; | 417 | regulator-name = "nvvdd_ldo15,vcore_temp,vddio_hdcp"; |
459 | regulator-min-microvolt = <3300000>; | 418 | regulator-min-microvolt = <3300000>; |
460 | regulator-max-microvolt = <3300000>; | 419 | regulator-max-microvolt = <3300000>; |
461 | }; | 420 | }; |
462 | 421 | ||
463 | regulator@19 { | 422 | ldo16 { |
464 | reg = <19>; | ||
465 | regulator-compatible = "ldo16"; | ||
466 | regulator-name = "nvvdd_ldo16,vdd_dbrtr"; | 423 | regulator-name = "nvvdd_ldo16,vdd_dbrtr"; |
467 | regulator-min-microvolt = <1300000>; | 424 | regulator-min-microvolt = <1300000>; |
468 | regulator-max-microvolt = <1300000>; | 425 | regulator-max-microvolt = <1300000>; |
469 | }; | 426 | }; |
470 | 427 | ||
471 | regulator@20 { | 428 | ldo17 { |
472 | reg = <20>; | ||
473 | regulator-compatible = "ldo17"; | ||
474 | regulator-name = "nvvdd_ldo17,vddio_mipi"; | 429 | regulator-name = "nvvdd_ldo17,vddio_mipi"; |
475 | regulator-min-microvolt = <1200000>; | 430 | regulator-min-microvolt = <1200000>; |
476 | regulator-max-microvolt = <1200000>; | 431 | regulator-max-microvolt = <1200000>; |
477 | }; | 432 | }; |
478 | 433 | ||
479 | regulator@21 { | 434 | ldo18 { |
480 | reg = <21>; | ||
481 | regulator-compatible = "ldo18"; | ||
482 | regulator-name = "nvvdd_ldo18,vddio_vi,vcore_cam*"; | 435 | regulator-name = "nvvdd_ldo18,vddio_vi,vcore_cam*"; |
483 | regulator-min-microvolt = <1800000>; | 436 | regulator-min-microvolt = <1800000>; |
484 | regulator-max-microvolt = <1800000>; | 437 | regulator-max-microvolt = <1800000>; |
485 | }; | 438 | }; |
486 | 439 | ||
487 | regulator@22 { | 440 | ldo19 { |
488 | reg = <22>; | ||
489 | regulator-compatible = "ldo19"; | ||
490 | regulator-name = "nvvdd_ldo19,avdd_lcd2,vddio_lx"; | 441 | regulator-name = "nvvdd_ldo19,avdd_lcd2,vddio_lx"; |
491 | regulator-min-microvolt = <2800000>; | 442 | regulator-min-microvolt = <2800000>; |
492 | regulator-max-microvolt = <2800000>; | 443 | regulator-max-microvolt = <2800000>; |
493 | }; | 444 | }; |
494 | 445 | ||
495 | regulator@23 { | 446 | ldo20 { |
496 | reg = <23>; | ||
497 | regulator-compatible = "ldo20"; | ||
498 | regulator-name = "nvvdd_ldo20,vddio_ddr_1v2,vddio_hsic,vcom_1v2"; | 447 | regulator-name = "nvvdd_ldo20,vddio_ddr_1v2,vddio_hsic,vcom_1v2"; |
499 | regulator-min-microvolt = <1200000>; | 448 | regulator-min-microvolt = <1200000>; |
500 | regulator-max-microvolt = <1200000>; | 449 | regulator-max-microvolt = <1200000>; |
501 | regulator-always-on; | 450 | regulator-always-on; |
502 | }; | 451 | }; |
503 | 452 | ||
504 | regulator@24 { | 453 | out5v { |
505 | reg = <24>; | ||
506 | regulator-compatible = "out5v"; | ||
507 | regulator-name = "usb0_vbus_reg"; | 454 | regulator-name = "usb0_vbus_reg"; |
508 | }; | 455 | }; |
509 | 456 | ||
510 | regulator@25 { | 457 | out33v { |
511 | reg = <25>; | ||
512 | regulator-compatible = "out33v"; | ||
513 | regulator-name = "pmu_out3v3"; | 458 | regulator-name = "pmu_out3v3"; |
514 | }; | 459 | }; |
515 | 460 | ||
516 | regulator@26 { | 461 | bbat { |
517 | reg = <26>; | ||
518 | regulator-compatible = "bbat"; | ||
519 | regulator-name = "pmu_bbat"; | 462 | regulator-name = "pmu_bbat"; |
520 | regulator-min-microvolt = <2400000>; | 463 | regulator-min-microvolt = <2400000>; |
521 | regulator-max-microvolt = <2400000>; | 464 | regulator-max-microvolt = <2400000>; |
522 | regulator-always-on; | 465 | regulator-always-on; |
523 | }; | 466 | }; |
524 | 467 | ||
525 | regulator@27 { | 468 | sdby { |
526 | reg = <27>; | ||
527 | regulator-compatible = "sdby"; | ||
528 | regulator-name = "vdd_aon"; | 469 | regulator-name = "vdd_aon"; |
529 | regulator-always-on; | 470 | regulator-always-on; |
530 | }; | 471 | }; |
531 | 472 | ||
532 | regulator@28 { | 473 | vrtc { |
533 | reg = <28>; | ||
534 | regulator-compatible = "vrtc"; | ||
535 | regulator-name = "vrtc,pmu_vccadc"; | 474 | regulator-name = "vrtc,pmu_vccadc"; |
536 | regulator-always-on; | 475 | regulator-always-on; |
537 | }; | 476 | }; |
diff --git a/arch/arm/boot/dts/tegra20.dtsi b/arch/arm/boot/dts/tegra20.dtsi index f3a09d0d45bc..f40cfbaa7c7e 100644 --- a/arch/arm/boot/dts/tegra20.dtsi +++ b/arch/arm/boot/dts/tegra20.dtsi | |||
@@ -4,6 +4,15 @@ | |||
4 | compatible = "nvidia,tegra20"; | 4 | compatible = "nvidia,tegra20"; |
5 | interrupt-parent = <&intc>; | 5 | interrupt-parent = <&intc>; |
6 | 6 | ||
7 | cache-controller@50043000 { | ||
8 | compatible = "arm,pl310-cache"; | ||
9 | reg = <0x50043000 0x1000>; | ||
10 | arm,data-latency = <5 5 2>; | ||
11 | arm,tag-latency = <4 4 2>; | ||
12 | cache-unified; | ||
13 | cache-level = <2>; | ||
14 | }; | ||
15 | |||
7 | intc: interrupt-controller { | 16 | intc: interrupt-controller { |
8 | compatible = "arm,cortex-a9-gic"; | 17 | compatible = "arm,cortex-a9-gic"; |
9 | reg = <0x50041000 0x1000 | 18 | reg = <0x50041000 0x1000 |
diff --git a/arch/arm/boot/dts/tegra30-cardhu.dtsi b/arch/arm/boot/dts/tegra30-cardhu.dtsi index d10c9c5a3606..b1271a894327 100644 --- a/arch/arm/boot/dts/tegra30-cardhu.dtsi +++ b/arch/arm/boot/dts/tegra30-cardhu.dtsi | |||
@@ -171,56 +171,41 @@ | |||
171 | vccio-supply = <&vdd_ac_bat_reg>; | 171 | vccio-supply = <&vdd_ac_bat_reg>; |
172 | 172 | ||
173 | regulators { | 173 | regulators { |
174 | #address-cells = <1>; | 174 | vdd1_reg: vdd1 { |
175 | #size-cells = <0>; | ||
176 | |||
177 | vdd1_reg: regulator@0 { | ||
178 | reg = <0>; | ||
179 | regulator-compatible = "vdd1"; | ||
180 | regulator-name = "vddio_ddr_1v2"; | 175 | regulator-name = "vddio_ddr_1v2"; |
181 | regulator-min-microvolt = <1200000>; | 176 | regulator-min-microvolt = <1200000>; |
182 | regulator-max-microvolt = <1200000>; | 177 | regulator-max-microvolt = <1200000>; |
183 | regulator-always-on; | 178 | regulator-always-on; |
184 | }; | 179 | }; |
185 | 180 | ||
186 | vdd2_reg: regulator@1 { | 181 | vdd2_reg: vdd2 { |
187 | reg = <1>; | ||
188 | regulator-compatible = "vdd2"; | ||
189 | regulator-name = "vdd_1v5_gen"; | 182 | regulator-name = "vdd_1v5_gen"; |
190 | regulator-min-microvolt = <1500000>; | 183 | regulator-min-microvolt = <1500000>; |
191 | regulator-max-microvolt = <1500000>; | 184 | regulator-max-microvolt = <1500000>; |
192 | regulator-always-on; | 185 | regulator-always-on; |
193 | }; | 186 | }; |
194 | 187 | ||
195 | vddctrl_reg: regulator@2 { | 188 | vddctrl_reg: vddctrl { |
196 | reg = <2>; | ||
197 | regulator-compatible = "vddctrl"; | ||
198 | regulator-name = "vdd_cpu,vdd_sys"; | 189 | regulator-name = "vdd_cpu,vdd_sys"; |
199 | regulator-min-microvolt = <1000000>; | 190 | regulator-min-microvolt = <1000000>; |
200 | regulator-max-microvolt = <1000000>; | 191 | regulator-max-microvolt = <1000000>; |
201 | regulator-always-on; | 192 | regulator-always-on; |
202 | }; | 193 | }; |
203 | 194 | ||
204 | vio_reg: regulator@3 { | 195 | vio_reg: vio { |
205 | reg = <3>; | ||
206 | regulator-compatible = "vio"; | ||
207 | regulator-name = "vdd_1v8_gen"; | 196 | regulator-name = "vdd_1v8_gen"; |
208 | regulator-min-microvolt = <1800000>; | 197 | regulator-min-microvolt = <1800000>; |
209 | regulator-max-microvolt = <1800000>; | 198 | regulator-max-microvolt = <1800000>; |
210 | regulator-always-on; | 199 | regulator-always-on; |
211 | }; | 200 | }; |
212 | 201 | ||
213 | ldo1_reg: regulator@4 { | 202 | ldo1_reg: ldo1 { |
214 | reg = <4>; | ||
215 | regulator-compatible = "ldo1"; | ||
216 | regulator-name = "vdd_pexa,vdd_pexb"; | 203 | regulator-name = "vdd_pexa,vdd_pexb"; |
217 | regulator-min-microvolt = <1050000>; | 204 | regulator-min-microvolt = <1050000>; |
218 | regulator-max-microvolt = <1050000>; | 205 | regulator-max-microvolt = <1050000>; |
219 | }; | 206 | }; |
220 | 207 | ||
221 | ldo2_reg: regulator@5 { | 208 | ldo2_reg: ldo2 { |
222 | reg = <5>; | ||
223 | regulator-compatible = "ldo2"; | ||
224 | regulator-name = "vdd_sata,avdd_plle"; | 209 | regulator-name = "vdd_sata,avdd_plle"; |
225 | regulator-min-microvolt = <1050000>; | 210 | regulator-min-microvolt = <1050000>; |
226 | regulator-max-microvolt = <1050000>; | 211 | regulator-max-microvolt = <1050000>; |
@@ -228,44 +213,34 @@ | |||
228 | 213 | ||
229 | /* LDO3 is not connected to anything */ | 214 | /* LDO3 is not connected to anything */ |
230 | 215 | ||
231 | ldo4_reg: regulator@7 { | 216 | ldo4_reg: ldo4 { |
232 | reg = <7>; | ||
233 | regulator-compatible = "ldo4"; | ||
234 | regulator-name = "vdd_rtc"; | 217 | regulator-name = "vdd_rtc"; |
235 | regulator-min-microvolt = <1200000>; | 218 | regulator-min-microvolt = <1200000>; |
236 | regulator-max-microvolt = <1200000>; | 219 | regulator-max-microvolt = <1200000>; |
237 | regulator-always-on; | 220 | regulator-always-on; |
238 | }; | 221 | }; |
239 | 222 | ||
240 | ldo5_reg: regulator@8 { | 223 | ldo5_reg: ldo5 { |
241 | reg = <8>; | ||
242 | regulator-compatible = "ldo5"; | ||
243 | regulator-name = "vddio_sdmmc,avdd_vdac"; | 224 | regulator-name = "vddio_sdmmc,avdd_vdac"; |
244 | regulator-min-microvolt = <3300000>; | 225 | regulator-min-microvolt = <3300000>; |
245 | regulator-max-microvolt = <3300000>; | 226 | regulator-max-microvolt = <3300000>; |
246 | regulator-always-on; | 227 | regulator-always-on; |
247 | }; | 228 | }; |
248 | 229 | ||
249 | ldo6_reg: regulator@9 { | 230 | ldo6_reg: ldo6 { |
250 | reg = <9>; | ||
251 | regulator-compatible = "ldo6"; | ||
252 | regulator-name = "avdd_dsi_csi,pwrdet_mipi"; | 231 | regulator-name = "avdd_dsi_csi,pwrdet_mipi"; |
253 | regulator-min-microvolt = <1200000>; | 232 | regulator-min-microvolt = <1200000>; |
254 | regulator-max-microvolt = <1200000>; | 233 | regulator-max-microvolt = <1200000>; |
255 | }; | 234 | }; |
256 | 235 | ||
257 | ldo7_reg: regulator@10 { | 236 | ldo7_reg: ldo7 { |
258 | reg = <10>; | ||
259 | regulator-compatible = "ldo7"; | ||
260 | regulator-name = "vdd_pllm,x,u,a_p_c_s"; | 237 | regulator-name = "vdd_pllm,x,u,a_p_c_s"; |
261 | regulator-min-microvolt = <1200000>; | 238 | regulator-min-microvolt = <1200000>; |
262 | regulator-max-microvolt = <1200000>; | 239 | regulator-max-microvolt = <1200000>; |
263 | regulator-always-on; | 240 | regulator-always-on; |
264 | }; | 241 | }; |
265 | 242 | ||
266 | ldo8_reg: regulator@11 { | 243 | ldo8_reg: ldo8 { |
267 | reg = <11>; | ||
268 | regulator-compatible = "ldo8"; | ||
269 | regulator-name = "vdd_ddr_hs"; | 244 | regulator-name = "vdd_ddr_hs"; |
270 | regulator-min-microvolt = <1000000>; | 245 | regulator-min-microvolt = <1000000>; |
271 | regulator-max-microvolt = <1000000>; | 246 | regulator-max-microvolt = <1000000>; |
diff --git a/arch/arm/boot/dts/tegra30.dtsi b/arch/arm/boot/dts/tegra30.dtsi index b1497c7d7d68..148371b432a0 100644 --- a/arch/arm/boot/dts/tegra30.dtsi +++ b/arch/arm/boot/dts/tegra30.dtsi | |||
@@ -4,6 +4,15 @@ | |||
4 | compatible = "nvidia,tegra30"; | 4 | compatible = "nvidia,tegra30"; |
5 | interrupt-parent = <&intc>; | 5 | interrupt-parent = <&intc>; |
6 | 6 | ||
7 | cache-controller@50043000 { | ||
8 | compatible = "arm,pl310-cache"; | ||
9 | reg = <0x50043000 0x1000>; | ||
10 | arm,data-latency = <6 6 2>; | ||
11 | arm,tag-latency = <5 5 2>; | ||
12 | cache-unified; | ||
13 | cache-level = <2>; | ||
14 | }; | ||
15 | |||
7 | intc: interrupt-controller { | 16 | intc: interrupt-controller { |
8 | compatible = "arm,cortex-a9-gic"; | 17 | compatible = "arm,cortex-a9-gic"; |
9 | reg = <0x50041000 0x1000 | 18 | reg = <0x50041000 0x1000 |
diff --git a/arch/arm/mach-tegra/Makefile b/arch/arm/mach-tegra/Makefile index 9aa653b3eb32..6cc23cc83509 100644 --- a/arch/arm/mach-tegra/Makefile +++ b/arch/arm/mach-tegra/Makefile | |||
@@ -12,10 +12,12 @@ obj-$(CONFIG_CPU_IDLE) += cpuidle.o | |||
12 | obj-$(CONFIG_CPU_IDLE) += sleep.o | 12 | obj-$(CONFIG_CPU_IDLE) += sleep.o |
13 | obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20_clocks.o | 13 | obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20_clocks.o |
14 | obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20_clocks_data.o | 14 | obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20_clocks_data.o |
15 | obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra20_speedo.o | ||
15 | obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra2_emc.o | 16 | obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += tegra2_emc.o |
16 | obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += sleep-t20.o | 17 | obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += sleep-t20.o |
17 | obj-$(CONFIG_ARCH_TEGRA_3x_SOC) += tegra30_clocks.o | 18 | obj-$(CONFIG_ARCH_TEGRA_3x_SOC) += tegra30_clocks.o |
18 | obj-$(CONFIG_ARCH_TEGRA_3x_SOC) += tegra30_clocks_data.o | 19 | obj-$(CONFIG_ARCH_TEGRA_3x_SOC) += tegra30_clocks_data.o |
20 | obj-$(CONFIG_ARCH_TEGRA_3x_SOC) += tegra30_speedo.o | ||
19 | obj-$(CONFIG_ARCH_TEGRA_3x_SOC) += sleep-t30.o | 21 | obj-$(CONFIG_ARCH_TEGRA_3x_SOC) += sleep-t30.o |
20 | obj-$(CONFIG_SMP) += platsmp.o headsmp.o | 22 | obj-$(CONFIG_SMP) += platsmp.o headsmp.o |
21 | obj-$(CONFIG_SMP) += reset.o | 23 | obj-$(CONFIG_SMP) += reset.o |
diff --git a/arch/arm/mach-tegra/apbio.c b/arch/arm/mach-tegra/apbio.c index b5015d0f1912..d091675ba376 100644 --- a/arch/arm/mach-tegra/apbio.c +++ b/arch/arm/mach-tegra/apbio.c | |||
@@ -15,7 +15,6 @@ | |||
15 | 15 | ||
16 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
17 | #include <linux/io.h> | 17 | #include <linux/io.h> |
18 | #include <mach/iomap.h> | ||
19 | #include <linux/of.h> | 18 | #include <linux/of.h> |
20 | #include <linux/dmaengine.h> | 19 | #include <linux/dmaengine.h> |
21 | #include <linux/dma-mapping.h> | 20 | #include <linux/dma-mapping.h> |
@@ -24,9 +23,8 @@ | |||
24 | #include <linux/sched.h> | 23 | #include <linux/sched.h> |
25 | #include <linux/mutex.h> | 24 | #include <linux/mutex.h> |
26 | 25 | ||
27 | #include <mach/dma.h> | ||
28 | |||
29 | #include "apbio.h" | 26 | #include "apbio.h" |
27 | #include "iomap.h" | ||
30 | 28 | ||
31 | #if defined(CONFIG_TEGRA20_APB_DMA) | 29 | #if defined(CONFIG_TEGRA20_APB_DMA) |
32 | static DEFINE_MUTEX(tegra_apb_dma_lock); | 30 | static DEFINE_MUTEX(tegra_apb_dma_lock); |
@@ -71,7 +69,6 @@ bool tegra_apb_dma_init(void) | |||
71 | 69 | ||
72 | dma_sconfig.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; | 70 | dma_sconfig.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; |
73 | dma_sconfig.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; | 71 | dma_sconfig.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; |
74 | dma_sconfig.slave_id = TEGRA_DMA_REQ_SEL_CNTR; | ||
75 | dma_sconfig.src_maxburst = 1; | 72 | dma_sconfig.src_maxburst = 1; |
76 | dma_sconfig.dst_maxburst = 1; | 73 | dma_sconfig.dst_maxburst = 1; |
77 | 74 | ||
diff --git a/arch/arm/mach-tegra/board-dt-tegra20.c b/arch/arm/mach-tegra/board-dt-tegra20.c index aa5325cd1c42..734d9cc87f2e 100644 --- a/arch/arm/mach-tegra/board-dt-tegra20.c +++ b/arch/arm/mach-tegra/board-dt-tegra20.c | |||
@@ -40,12 +40,10 @@ | |||
40 | #include <asm/mach/time.h> | 40 | #include <asm/mach/time.h> |
41 | #include <asm/setup.h> | 41 | #include <asm/setup.h> |
42 | 42 | ||
43 | #include <mach/iomap.h> | ||
44 | #include <mach/irqs.h> | ||
45 | |||
46 | #include "board.h" | 43 | #include "board.h" |
47 | #include "clock.h" | 44 | #include "clock.h" |
48 | #include "common.h" | 45 | #include "common.h" |
46 | #include "iomap.h" | ||
49 | 47 | ||
50 | struct tegra_ehci_platform_data tegra_ehci1_pdata = { | 48 | struct tegra_ehci_platform_data tegra_ehci1_pdata = { |
51 | .operating_mode = TEGRA_USB_OTG, | 49 | .operating_mode = TEGRA_USB_OTG, |
@@ -91,6 +89,17 @@ struct of_dev_auxdata tegra20_auxdata_lookup[] __initdata = { | |||
91 | &tegra_ehci3_pdata), | 89 | &tegra_ehci3_pdata), |
92 | OF_DEV_AUXDATA("nvidia,tegra20-apbdma", TEGRA_APB_DMA_BASE, "tegra-apbdma", NULL), | 90 | OF_DEV_AUXDATA("nvidia,tegra20-apbdma", TEGRA_APB_DMA_BASE, "tegra-apbdma", NULL), |
93 | OF_DEV_AUXDATA("nvidia,tegra20-pwm", TEGRA_PWFM_BASE, "tegra-pwm", NULL), | 91 | OF_DEV_AUXDATA("nvidia,tegra20-pwm", TEGRA_PWFM_BASE, "tegra-pwm", NULL), |
92 | OF_DEV_AUXDATA("nvidia,tegra20-sflash", 0x7000c380, "spi", NULL), | ||
93 | OF_DEV_AUXDATA("nvidia,tegra20-slink", 0x7000D400, "spi_tegra.0", NULL), | ||
94 | OF_DEV_AUXDATA("nvidia,tegra20-slink", 0x7000D600, "spi_tegra.1", NULL), | ||
95 | OF_DEV_AUXDATA("nvidia,tegra20-slink", 0x7000D800, "spi_tegra.2", NULL), | ||
96 | OF_DEV_AUXDATA("nvidia,tegra20-slink", 0x7000DA00, "spi_tegra.3", NULL), | ||
97 | OF_DEV_AUXDATA("nvidia,tegra20-host1x", 0x50000000, "host1x", NULL), | ||
98 | OF_DEV_AUXDATA("nvidia,tegra20-dc", 0x54200000, "tegradc.0", NULL), | ||
99 | OF_DEV_AUXDATA("nvidia,tegra20-dc", 0x54240000, "tegradc.1", NULL), | ||
100 | OF_DEV_AUXDATA("nvidia,tegra20-hdmi", 0x54280000, "hdmi", NULL), | ||
101 | OF_DEV_AUXDATA("nvidia,tegra20-dsi", 0x54300000, "dsi", NULL), | ||
102 | OF_DEV_AUXDATA("nvidia,tegra20-tvo", 0x542c0000, "tvo", NULL), | ||
94 | {} | 103 | {} |
95 | }; | 104 | }; |
96 | 105 | ||
@@ -104,8 +113,20 @@ static __initdata struct tegra_clk_init_table tegra_dt_clk_init_table[] = { | |||
104 | { "pll_a", "pll_p_out1", 56448000, true }, | 113 | { "pll_a", "pll_p_out1", 56448000, true }, |
105 | { "pll_a_out0", "pll_a", 11289600, true }, | 114 | { "pll_a_out0", "pll_a", 11289600, true }, |
106 | { "cdev1", NULL, 0, true }, | 115 | { "cdev1", NULL, 0, true }, |
116 | { "blink", "clk_32k", 32768, true }, | ||
107 | { "i2s1", "pll_a_out0", 11289600, false}, | 117 | { "i2s1", "pll_a_out0", 11289600, false}, |
108 | { "i2s2", "pll_a_out0", 11289600, false}, | 118 | { "i2s2", "pll_a_out0", 11289600, false}, |
119 | { "sdmmc1", "pll_p", 48000000, false}, | ||
120 | { "sdmmc3", "pll_p", 48000000, false}, | ||
121 | { "sdmmc4", "pll_p", 48000000, false}, | ||
122 | { "spi", "pll_p", 20000000, false }, | ||
123 | { "sbc1", "pll_p", 100000000, false }, | ||
124 | { "sbc2", "pll_p", 100000000, false }, | ||
125 | { "sbc3", "pll_p", 100000000, false }, | ||
126 | { "sbc4", "pll_p", 100000000, false }, | ||
127 | { "host1x", "pll_c", 150000000, false }, | ||
128 | { "disp1", "pll_p", 600000000, false }, | ||
129 | { "disp2", "pll_p", 600000000, false }, | ||
109 | { NULL, NULL, 0, 0}, | 130 | { NULL, NULL, 0, 0}, |
110 | }; | 131 | }; |
111 | 132 | ||
diff --git a/arch/arm/mach-tegra/board-dt-tegra30.c b/arch/arm/mach-tegra/board-dt-tegra30.c index 5e92a81f9a2e..6497d1236b08 100644 --- a/arch/arm/mach-tegra/board-dt-tegra30.c +++ b/arch/arm/mach-tegra/board-dt-tegra30.c | |||
@@ -33,11 +33,10 @@ | |||
33 | #include <asm/mach/arch.h> | 33 | #include <asm/mach/arch.h> |
34 | #include <asm/hardware/gic.h> | 34 | #include <asm/hardware/gic.h> |
35 | 35 | ||
36 | #include <mach/iomap.h> | ||
37 | |||
38 | #include "board.h" | 36 | #include "board.h" |
39 | #include "clock.h" | 37 | #include "clock.h" |
40 | #include "common.h" | 38 | #include "common.h" |
39 | #include "iomap.h" | ||
41 | 40 | ||
42 | struct of_dev_auxdata tegra30_auxdata_lookup[] __initdata = { | 41 | struct of_dev_auxdata tegra30_auxdata_lookup[] __initdata = { |
43 | OF_DEV_AUXDATA("nvidia,tegra20-sdhci", 0x78000000, "sdhci-tegra.0", NULL), | 42 | OF_DEV_AUXDATA("nvidia,tegra20-sdhci", 0x78000000, "sdhci-tegra.0", NULL), |
@@ -52,6 +51,18 @@ struct of_dev_auxdata tegra30_auxdata_lookup[] __initdata = { | |||
52 | OF_DEV_AUXDATA("nvidia,tegra30-ahub", 0x70080000, "tegra30-ahub", NULL), | 51 | OF_DEV_AUXDATA("nvidia,tegra30-ahub", 0x70080000, "tegra30-ahub", NULL), |
53 | OF_DEV_AUXDATA("nvidia,tegra30-apbdma", 0x6000a000, "tegra-apbdma", NULL), | 52 | OF_DEV_AUXDATA("nvidia,tegra30-apbdma", 0x6000a000, "tegra-apbdma", NULL), |
54 | OF_DEV_AUXDATA("nvidia,tegra30-pwm", TEGRA_PWFM_BASE, "tegra-pwm", NULL), | 53 | OF_DEV_AUXDATA("nvidia,tegra30-pwm", TEGRA_PWFM_BASE, "tegra-pwm", NULL), |
54 | OF_DEV_AUXDATA("nvidia,tegra30-slink", 0x7000D400, "spi_tegra.0", NULL), | ||
55 | OF_DEV_AUXDATA("nvidia,tegra30-slink", 0x7000D600, "spi_tegra.1", NULL), | ||
56 | OF_DEV_AUXDATA("nvidia,tegra30-slink", 0x7000D800, "spi_tegra.2", NULL), | ||
57 | OF_DEV_AUXDATA("nvidia,tegra30-slink", 0x7000DA00, "spi_tegra.3", NULL), | ||
58 | OF_DEV_AUXDATA("nvidia,tegra30-slink", 0x7000DC00, "spi_tegra.4", NULL), | ||
59 | OF_DEV_AUXDATA("nvidia,tegra30-slink", 0x7000DE00, "spi_tegra.5", NULL), | ||
60 | OF_DEV_AUXDATA("nvidia,tegra30-host1x", 0x50000000, "host1x", NULL), | ||
61 | OF_DEV_AUXDATA("nvidia,tegra30-dc", 0x54200000, "tegradc.0", NULL), | ||
62 | OF_DEV_AUXDATA("nvidia,tegra30-dc", 0x54240000, "tegradc.1", NULL), | ||
63 | OF_DEV_AUXDATA("nvidia,tegra30-hdmi", 0x54280000, "hdmi", NULL), | ||
64 | OF_DEV_AUXDATA("nvidia,tegra30-dsi", 0x54300000, "dsi", NULL), | ||
65 | OF_DEV_AUXDATA("nvidia,tegra30-tvo", 0x542c0000, "tvo", NULL), | ||
55 | {} | 66 | {} |
56 | }; | 67 | }; |
57 | 68 | ||
@@ -62,11 +73,24 @@ static __initdata struct tegra_clk_init_table tegra_dt_clk_init_table[] = { | |||
62 | { "pll_a_out0", "pll_a", 11289600, true }, | 73 | { "pll_a_out0", "pll_a", 11289600, true }, |
63 | { "extern1", "pll_a_out0", 0, true }, | 74 | { "extern1", "pll_a_out0", 0, true }, |
64 | { "clk_out_1", "extern1", 0, true }, | 75 | { "clk_out_1", "extern1", 0, true }, |
76 | { "blink", "clk_32k", 32768, true }, | ||
65 | { "i2s0", "pll_a_out0", 11289600, false}, | 77 | { "i2s0", "pll_a_out0", 11289600, false}, |
66 | { "i2s1", "pll_a_out0", 11289600, false}, | 78 | { "i2s1", "pll_a_out0", 11289600, false}, |
67 | { "i2s2", "pll_a_out0", 11289600, false}, | 79 | { "i2s2", "pll_a_out0", 11289600, false}, |
68 | { "i2s3", "pll_a_out0", 11289600, false}, | 80 | { "i2s3", "pll_a_out0", 11289600, false}, |
69 | { "i2s4", "pll_a_out0", 11289600, false}, | 81 | { "i2s4", "pll_a_out0", 11289600, false}, |
82 | { "sdmmc1", "pll_p", 48000000, false}, | ||
83 | { "sdmmc3", "pll_p", 48000000, false}, | ||
84 | { "sdmmc4", "pll_p", 48000000, false}, | ||
85 | { "sbc1", "pll_p", 100000000, false}, | ||
86 | { "sbc2", "pll_p", 100000000, false}, | ||
87 | { "sbc3", "pll_p", 100000000, false}, | ||
88 | { "sbc4", "pll_p", 100000000, false}, | ||
89 | { "sbc5", "pll_p", 100000000, false}, | ||
90 | { "sbc6", "pll_p", 100000000, false}, | ||
91 | { "host1x", "pll_c", 150000000, false}, | ||
92 | { "disp1", "pll_p", 600000000, false}, | ||
93 | { "disp2", "pll_p", 600000000, false}, | ||
70 | { NULL, NULL, 0, 0}, | 94 | { NULL, NULL, 0, 0}, |
71 | }; | 95 | }; |
72 | 96 | ||
diff --git a/arch/arm/mach-tegra/clock.c b/arch/arm/mach-tegra/clock.c index fd82085eca5d..867bf8bf5561 100644 --- a/arch/arm/mach-tegra/clock.c +++ b/arch/arm/mach-tegra/clock.c | |||
@@ -27,8 +27,6 @@ | |||
27 | #include <linux/seq_file.h> | 27 | #include <linux/seq_file.h> |
28 | #include <linux/slab.h> | 28 | #include <linux/slab.h> |
29 | 29 | ||
30 | #include <mach/clk.h> | ||
31 | |||
32 | #include "board.h" | 30 | #include "board.h" |
33 | #include "clock.h" | 31 | #include "clock.h" |
34 | #include "tegra_cpu_car.h" | 32 | #include "tegra_cpu_car.h" |
diff --git a/arch/arm/mach-tegra/common.c b/arch/arm/mach-tegra/common.c index 0b0a5f556d34..3e03e5f15c14 100644 --- a/arch/arm/mach-tegra/common.c +++ b/arch/arm/mach-tegra/common.c | |||
@@ -26,13 +26,13 @@ | |||
26 | #include <asm/hardware/cache-l2x0.h> | 26 | #include <asm/hardware/cache-l2x0.h> |
27 | #include <asm/hardware/gic.h> | 27 | #include <asm/hardware/gic.h> |
28 | 28 | ||
29 | #include <mach/iomap.h> | ||
30 | #include <mach/powergate.h> | 29 | #include <mach/powergate.h> |
31 | 30 | ||
32 | #include "board.h" | 31 | #include "board.h" |
33 | #include "clock.h" | 32 | #include "clock.h" |
34 | #include "common.h" | 33 | #include "common.h" |
35 | #include "fuse.h" | 34 | #include "fuse.h" |
35 | #include "iomap.h" | ||
36 | #include "pmc.h" | 36 | #include "pmc.h" |
37 | #include "apbio.h" | 37 | #include "apbio.h" |
38 | #include "sleep.h" | 38 | #include "sleep.h" |
@@ -104,25 +104,26 @@ static __initdata struct tegra_clk_init_table tegra30_clk_init_table[] = { | |||
104 | { "clk_m", NULL, 0, true }, | 104 | { "clk_m", NULL, 0, true }, |
105 | { "pll_p", "clk_m", 408000000, true }, | 105 | { "pll_p", "clk_m", 408000000, true }, |
106 | { "pll_p_out1", "pll_p", 9600000, true }, | 106 | { "pll_p_out1", "pll_p", 9600000, true }, |
107 | { "pll_p_out4", "pll_p", 102000000, true }, | ||
108 | { "sclk", "pll_p_out4", 102000000, true }, | ||
109 | { "hclk", "sclk", 102000000, true }, | ||
110 | { "pclk", "hclk", 51000000, true }, | ||
107 | { NULL, NULL, 0, 0}, | 111 | { NULL, NULL, 0, 0}, |
108 | }; | 112 | }; |
109 | #endif | 113 | #endif |
110 | 114 | ||
111 | 115 | ||
112 | static void __init tegra_init_cache(u32 tag_latency, u32 data_latency) | 116 | static void __init tegra_init_cache(void) |
113 | { | 117 | { |
114 | #ifdef CONFIG_CACHE_L2X0 | 118 | #ifdef CONFIG_CACHE_L2X0 |
115 | void __iomem *p = IO_ADDRESS(TEGRA_ARM_PERIF_BASE) + 0x3000; | 119 | void __iomem *p = IO_ADDRESS(TEGRA_ARM_PERIF_BASE) + 0x3000; |
116 | u32 aux_ctrl, cache_type; | 120 | u32 aux_ctrl, cache_type; |
117 | 121 | ||
118 | writel_relaxed(tag_latency, p + L2X0_TAG_LATENCY_CTRL); | ||
119 | writel_relaxed(data_latency, p + L2X0_DATA_LATENCY_CTRL); | ||
120 | |||
121 | cache_type = readl(p + L2X0_CACHE_TYPE); | 122 | cache_type = readl(p + L2X0_CACHE_TYPE); |
122 | aux_ctrl = (cache_type & 0x700) << (17-8); | 123 | aux_ctrl = (cache_type & 0x700) << (17-8); |
123 | aux_ctrl |= 0x6C000001; | 124 | aux_ctrl |= 0x7C400001; |
124 | 125 | ||
125 | l2x0_init(p, aux_ctrl, 0x8200c3fe); | 126 | l2x0_of_init(aux_ctrl, 0x8200c3fe); |
126 | #endif | 127 | #endif |
127 | 128 | ||
128 | } | 129 | } |
@@ -134,7 +135,7 @@ void __init tegra20_init_early(void) | |||
134 | tegra_init_fuse(); | 135 | tegra_init_fuse(); |
135 | tegra2_init_clocks(); | 136 | tegra2_init_clocks(); |
136 | tegra_clk_init_from_table(tegra20_clk_init_table); | 137 | tegra_clk_init_from_table(tegra20_clk_init_table); |
137 | tegra_init_cache(0x331, 0x441); | 138 | tegra_init_cache(); |
138 | tegra_pmc_init(); | 139 | tegra_pmc_init(); |
139 | tegra_powergate_init(); | 140 | tegra_powergate_init(); |
140 | tegra20_hotplug_init(); | 141 | tegra20_hotplug_init(); |
@@ -147,7 +148,7 @@ void __init tegra30_init_early(void) | |||
147 | tegra_init_fuse(); | 148 | tegra_init_fuse(); |
148 | tegra30_init_clocks(); | 149 | tegra30_init_clocks(); |
149 | tegra_clk_init_from_table(tegra30_clk_init_table); | 150 | tegra_clk_init_from_table(tegra30_clk_init_table); |
150 | tegra_init_cache(0x441, 0x551); | 151 | tegra_init_cache(); |
151 | tegra_pmc_init(); | 152 | tegra_pmc_init(); |
152 | tegra_powergate_init(); | 153 | tegra_powergate_init(); |
153 | tegra30_hotplug_init(); | 154 | tegra30_hotplug_init(); |
diff --git a/arch/arm/mach-tegra/cpu-tegra.c b/arch/arm/mach-tegra/cpu-tegra.c index 627bf0f4262e..a74d3c7d2e26 100644 --- a/arch/arm/mach-tegra/cpu-tegra.c +++ b/arch/arm/mach-tegra/cpu-tegra.c | |||
@@ -30,9 +30,6 @@ | |||
30 | #include <linux/io.h> | 30 | #include <linux/io.h> |
31 | #include <linux/suspend.h> | 31 | #include <linux/suspend.h> |
32 | 32 | ||
33 | |||
34 | #include <mach/clk.h> | ||
35 | |||
36 | /* Frequency table index must be sequential starting at 0 */ | 33 | /* Frequency table index must be sequential starting at 0 */ |
37 | static struct cpufreq_frequency_table freq_table[] = { | 34 | static struct cpufreq_frequency_table freq_table[] = { |
38 | { 0, 216000 }, | 35 | { 0, 216000 }, |
diff --git a/arch/arm/mach-tegra/cpuidle.c b/arch/arm/mach-tegra/cpuidle.c index 566e2f88899b..9a6f051b382e 100644 --- a/arch/arm/mach-tegra/cpuidle.c +++ b/arch/arm/mach-tegra/cpuidle.c | |||
@@ -29,8 +29,6 @@ | |||
29 | 29 | ||
30 | #include <asm/proc-fns.h> | 30 | #include <asm/proc-fns.h> |
31 | 31 | ||
32 | #include <mach/iomap.h> | ||
33 | |||
34 | static int tegra_idle_enter_lp3(struct cpuidle_device *dev, | 32 | static int tegra_idle_enter_lp3(struct cpuidle_device *dev, |
35 | struct cpuidle_driver *drv, int index); | 33 | struct cpuidle_driver *drv, int index); |
36 | 34 | ||
diff --git a/arch/arm/mach-tegra/flowctrl.c b/arch/arm/mach-tegra/flowctrl.c index f07488e0bd32..ffaa286a71e1 100644 --- a/arch/arm/mach-tegra/flowctrl.c +++ b/arch/arm/mach-tegra/flowctrl.c | |||
@@ -22,9 +22,8 @@ | |||
22 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
23 | #include <linux/io.h> | 23 | #include <linux/io.h> |
24 | 24 | ||
25 | #include <mach/iomap.h> | ||
26 | |||
27 | #include "flowctrl.h" | 25 | #include "flowctrl.h" |
26 | #include "iomap.h" | ||
28 | 27 | ||
29 | u8 flowctrl_offset_halt_cpu[] = { | 28 | u8 flowctrl_offset_halt_cpu[] = { |
30 | FLOW_CTRL_HALT_CPU0_EVENTS, | 29 | FLOW_CTRL_HALT_CPU0_EVENTS, |
diff --git a/arch/arm/mach-tegra/fuse.c b/arch/arm/mach-tegra/fuse.c index 0b7db174a5de..8121742711fe 100644 --- a/arch/arm/mach-tegra/fuse.c +++ b/arch/arm/mach-tegra/fuse.c | |||
@@ -21,22 +21,28 @@ | |||
21 | #include <linux/io.h> | 21 | #include <linux/io.h> |
22 | #include <linux/export.h> | 22 | #include <linux/export.h> |
23 | 23 | ||
24 | #include <mach/iomap.h> | ||
25 | |||
26 | #include "fuse.h" | 24 | #include "fuse.h" |
25 | #include "iomap.h" | ||
27 | #include "apbio.h" | 26 | #include "apbio.h" |
28 | 27 | ||
29 | #define FUSE_UID_LOW 0x108 | 28 | #define FUSE_UID_LOW 0x108 |
30 | #define FUSE_UID_HIGH 0x10c | 29 | #define FUSE_UID_HIGH 0x10c |
31 | #define FUSE_SKU_INFO 0x110 | 30 | #define FUSE_SKU_INFO 0x110 |
32 | #define FUSE_SPARE_BIT 0x200 | 31 | |
32 | #define TEGRA20_FUSE_SPARE_BIT 0x200 | ||
33 | #define TEGRA30_FUSE_SPARE_BIT 0x244 | ||
33 | 34 | ||
34 | int tegra_sku_id; | 35 | int tegra_sku_id; |
35 | int tegra_cpu_process_id; | 36 | int tegra_cpu_process_id; |
36 | int tegra_core_process_id; | 37 | int tegra_core_process_id; |
37 | int tegra_chip_id; | 38 | int tegra_chip_id; |
39 | int tegra_cpu_speedo_id; /* only exist in Tegra30 and later */ | ||
40 | int tegra_soc_speedo_id; | ||
38 | enum tegra_revision tegra_revision; | 41 | enum tegra_revision tegra_revision; |
39 | 42 | ||
43 | static int tegra_fuse_spare_bit; | ||
44 | static void (*tegra_init_speedo_data)(void); | ||
45 | |||
40 | /* The BCT to use at boot is specified by board straps that can be read | 46 | /* The BCT to use at boot is specified by board straps that can be read |
41 | * through a APB misc register and decoded. 2 bits, i.e. 4 possible BCTs. | 47 | * through a APB misc register and decoded. 2 bits, i.e. 4 possible BCTs. |
42 | */ | 48 | */ |
@@ -57,14 +63,14 @@ static const char *tegra_revision_name[TEGRA_REVISION_MAX] = { | |||
57 | [TEGRA_REVISION_A04] = "A04", | 63 | [TEGRA_REVISION_A04] = "A04", |
58 | }; | 64 | }; |
59 | 65 | ||
60 | static inline u32 tegra_fuse_readl(unsigned long offset) | 66 | u32 tegra_fuse_readl(unsigned long offset) |
61 | { | 67 | { |
62 | return tegra_apb_readl(TEGRA_FUSE_BASE + offset); | 68 | return tegra_apb_readl(TEGRA_FUSE_BASE + offset); |
63 | } | 69 | } |
64 | 70 | ||
65 | static inline bool get_spare_fuse(int bit) | 71 | bool tegra_spare_fuse(int bit) |
66 | { | 72 | { |
67 | return tegra_fuse_readl(FUSE_SPARE_BIT + bit * 4); | 73 | return tegra_fuse_readl(tegra_fuse_spare_bit + bit * 4); |
68 | } | 74 | } |
69 | 75 | ||
70 | static enum tegra_revision tegra_get_revision(u32 id) | 76 | static enum tegra_revision tegra_get_revision(u32 id) |
@@ -78,7 +84,7 @@ static enum tegra_revision tegra_get_revision(u32 id) | |||
78 | return TEGRA_REVISION_A02; | 84 | return TEGRA_REVISION_A02; |
79 | case 3: | 85 | case 3: |
80 | if (tegra_chip_id == TEGRA20 && | 86 | if (tegra_chip_id == TEGRA20 && |
81 | (get_spare_fuse(18) || get_spare_fuse(19))) | 87 | (tegra_spare_fuse(18) || tegra_spare_fuse(19))) |
82 | return TEGRA_REVISION_A03p; | 88 | return TEGRA_REVISION_A03p; |
83 | else | 89 | else |
84 | return TEGRA_REVISION_A03; | 90 | return TEGRA_REVISION_A03; |
@@ -89,6 +95,16 @@ static enum tegra_revision tegra_get_revision(u32 id) | |||
89 | } | 95 | } |
90 | } | 96 | } |
91 | 97 | ||
98 | static void tegra_get_process_id(void) | ||
99 | { | ||
100 | u32 reg; | ||
101 | |||
102 | reg = tegra_fuse_readl(tegra_fuse_spare_bit); | ||
103 | tegra_cpu_process_id = (reg >> 6) & 3; | ||
104 | reg = tegra_fuse_readl(tegra_fuse_spare_bit); | ||
105 | tegra_core_process_id = (reg >> 12) & 3; | ||
106 | } | ||
107 | |||
92 | void tegra_init_fuse(void) | 108 | void tegra_init_fuse(void) |
93 | { | 109 | { |
94 | u32 id; | 110 | u32 id; |
@@ -100,19 +116,29 @@ void tegra_init_fuse(void) | |||
100 | reg = tegra_fuse_readl(FUSE_SKU_INFO); | 116 | reg = tegra_fuse_readl(FUSE_SKU_INFO); |
101 | tegra_sku_id = reg & 0xFF; | 117 | tegra_sku_id = reg & 0xFF; |
102 | 118 | ||
103 | reg = tegra_fuse_readl(FUSE_SPARE_BIT); | ||
104 | tegra_cpu_process_id = (reg >> 6) & 3; | ||
105 | |||
106 | reg = tegra_fuse_readl(FUSE_SPARE_BIT); | ||
107 | tegra_core_process_id = (reg >> 12) & 3; | ||
108 | |||
109 | reg = tegra_apb_readl(TEGRA_APB_MISC_BASE + STRAP_OPT); | 119 | reg = tegra_apb_readl(TEGRA_APB_MISC_BASE + STRAP_OPT); |
110 | tegra_bct_strapping = (reg & RAM_ID_MASK) >> RAM_CODE_SHIFT; | 120 | tegra_bct_strapping = (reg & RAM_ID_MASK) >> RAM_CODE_SHIFT; |
111 | 121 | ||
112 | id = readl_relaxed(IO_ADDRESS(TEGRA_APB_MISC_BASE) + 0x804); | 122 | id = readl_relaxed(IO_ADDRESS(TEGRA_APB_MISC_BASE) + 0x804); |
113 | tegra_chip_id = (id >> 8) & 0xff; | 123 | tegra_chip_id = (id >> 8) & 0xff; |
114 | 124 | ||
125 | switch (tegra_chip_id) { | ||
126 | case TEGRA20: | ||
127 | tegra_fuse_spare_bit = TEGRA20_FUSE_SPARE_BIT; | ||
128 | tegra_init_speedo_data = &tegra20_init_speedo_data; | ||
129 | break; | ||
130 | case TEGRA30: | ||
131 | tegra_fuse_spare_bit = TEGRA30_FUSE_SPARE_BIT; | ||
132 | tegra_init_speedo_data = &tegra30_init_speedo_data; | ||
133 | break; | ||
134 | default: | ||
135 | pr_warn("Tegra: unknown chip id %d\n", tegra_chip_id); | ||
136 | tegra_fuse_spare_bit = TEGRA20_FUSE_SPARE_BIT; | ||
137 | tegra_init_speedo_data = &tegra_get_process_id; | ||
138 | } | ||
139 | |||
115 | tegra_revision = tegra_get_revision(id); | 140 | tegra_revision = tegra_get_revision(id); |
141 | tegra_init_speedo_data(); | ||
116 | 142 | ||
117 | pr_info("Tegra Revision: %s SKU: %d CPU Process: %d Core Process: %d\n", | 143 | pr_info("Tegra Revision: %s SKU: %d CPU Process: %d Core Process: %d\n", |
118 | tegra_revision_name[tegra_revision], | 144 | tegra_revision_name[tegra_revision], |
diff --git a/arch/arm/mach-tegra/fuse.h b/arch/arm/mach-tegra/fuse.h index d2107b2cb85a..ff1383dd61a7 100644 --- a/arch/arm/mach-tegra/fuse.h +++ b/arch/arm/mach-tegra/fuse.h | |||
@@ -42,11 +42,27 @@ extern int tegra_sku_id; | |||
42 | extern int tegra_cpu_process_id; | 42 | extern int tegra_cpu_process_id; |
43 | extern int tegra_core_process_id; | 43 | extern int tegra_core_process_id; |
44 | extern int tegra_chip_id; | 44 | extern int tegra_chip_id; |
45 | extern int tegra_cpu_speedo_id; /* only exist in Tegra30 and later */ | ||
46 | extern int tegra_soc_speedo_id; | ||
45 | extern enum tegra_revision tegra_revision; | 47 | extern enum tegra_revision tegra_revision; |
46 | 48 | ||
47 | extern int tegra_bct_strapping; | 49 | extern int tegra_bct_strapping; |
48 | 50 | ||
49 | unsigned long long tegra_chip_uid(void); | 51 | unsigned long long tegra_chip_uid(void); |
50 | void tegra_init_fuse(void); | 52 | void tegra_init_fuse(void); |
53 | bool tegra_spare_fuse(int bit); | ||
54 | u32 tegra_fuse_readl(unsigned long offset); | ||
55 | |||
56 | #ifdef CONFIG_ARCH_TEGRA_2x_SOC | ||
57 | void tegra20_init_speedo_data(void); | ||
58 | #else | ||
59 | static inline void tegra20_init_speedo_data(void) {} | ||
60 | #endif | ||
61 | |||
62 | #ifdef CONFIG_ARCH_TEGRA_3x_SOC | ||
63 | void tegra30_init_speedo_data(void); | ||
64 | #else | ||
65 | static inline void tegra30_init_speedo_data(void) {} | ||
66 | #endif | ||
51 | 67 | ||
52 | #endif | 68 | #endif |
diff --git a/arch/arm/mach-tegra/headsmp.S b/arch/arm/mach-tegra/headsmp.S index 6addc78cb6b2..93f0370cc95b 100644 --- a/arch/arm/mach-tegra/headsmp.S +++ b/arch/arm/mach-tegra/headsmp.S | |||
@@ -3,9 +3,8 @@ | |||
3 | 3 | ||
4 | #include <asm/cache.h> | 4 | #include <asm/cache.h> |
5 | 5 | ||
6 | #include <mach/iomap.h> | ||
7 | |||
8 | #include "flowctrl.h" | 6 | #include "flowctrl.h" |
7 | #include "iomap.h" | ||
9 | #include "reset.h" | 8 | #include "reset.h" |
10 | #include "sleep.h" | 9 | #include "sleep.h" |
11 | 10 | ||
diff --git a/arch/arm/mach-tegra/include/mach/debug-macro.S b/arch/arm/mach-tegra/include/mach/debug-macro.S index 8ce0661b8a3d..44ca7b1d8b8a 100644 --- a/arch/arm/mach-tegra/include/mach/debug-macro.S +++ b/arch/arm/mach-tegra/include/mach/debug-macro.S | |||
@@ -26,8 +26,8 @@ | |||
26 | 26 | ||
27 | #include <linux/serial_reg.h> | 27 | #include <linux/serial_reg.h> |
28 | 28 | ||
29 | #include <mach/iomap.h> | 29 | #include "../../iomap.h" |
30 | #include <mach/irammap.h> | 30 | #include "../../irammap.h" |
31 | 31 | ||
32 | .macro addruart, rp, rv, tmp | 32 | .macro addruart, rp, rv, tmp |
33 | adr \rp, 99f @ actual addr of 99f | 33 | adr \rp, 99f @ actual addr of 99f |
diff --git a/arch/arm/mach-tegra/include/mach/dma.h b/arch/arm/mach-tegra/include/mach/dma.h deleted file mode 100644 index 3081cc6dda3b..000000000000 --- a/arch/arm/mach-tegra/include/mach/dma.h +++ /dev/null | |||
@@ -1,54 +0,0 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-tegra/include/mach/dma.h | ||
3 | * | ||
4 | * Copyright (c) 2008-2009, NVIDIA Corporation. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, but WITHOUT | ||
12 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
13 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
14 | * more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License along | ||
17 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __MACH_TEGRA_DMA_H | ||
22 | #define __MACH_TEGRA_DMA_H | ||
23 | |||
24 | #include <linux/list.h> | ||
25 | |||
26 | #define TEGRA_DMA_REQ_SEL_CNTR 0 | ||
27 | #define TEGRA_DMA_REQ_SEL_I2S_2 1 | ||
28 | #define TEGRA_DMA_REQ_SEL_I2S_1 2 | ||
29 | #define TEGRA_DMA_REQ_SEL_SPD_I 3 | ||
30 | #define TEGRA_DMA_REQ_SEL_UI_I 4 | ||
31 | #define TEGRA_DMA_REQ_SEL_MIPI 5 | ||
32 | #define TEGRA_DMA_REQ_SEL_I2S2_2 6 | ||
33 | #define TEGRA_DMA_REQ_SEL_I2S2_1 7 | ||
34 | #define TEGRA_DMA_REQ_SEL_UARTA 8 | ||
35 | #define TEGRA_DMA_REQ_SEL_UARTB 9 | ||
36 | #define TEGRA_DMA_REQ_SEL_UARTC 10 | ||
37 | #define TEGRA_DMA_REQ_SEL_SPI 11 | ||
38 | #define TEGRA_DMA_REQ_SEL_AC97 12 | ||
39 | #define TEGRA_DMA_REQ_SEL_ACMODEM 13 | ||
40 | #define TEGRA_DMA_REQ_SEL_SL4B 14 | ||
41 | #define TEGRA_DMA_REQ_SEL_SL2B1 15 | ||
42 | #define TEGRA_DMA_REQ_SEL_SL2B2 16 | ||
43 | #define TEGRA_DMA_REQ_SEL_SL2B3 17 | ||
44 | #define TEGRA_DMA_REQ_SEL_SL2B4 18 | ||
45 | #define TEGRA_DMA_REQ_SEL_UARTD 19 | ||
46 | #define TEGRA_DMA_REQ_SEL_UARTE 20 | ||
47 | #define TEGRA_DMA_REQ_SEL_I2C 21 | ||
48 | #define TEGRA_DMA_REQ_SEL_I2C2 22 | ||
49 | #define TEGRA_DMA_REQ_SEL_I2C3 23 | ||
50 | #define TEGRA_DMA_REQ_SEL_DVC_I2C 24 | ||
51 | #define TEGRA_DMA_REQ_SEL_OWR 25 | ||
52 | #define TEGRA_DMA_REQ_SEL_INVALID 31 | ||
53 | |||
54 | #endif | ||
diff --git a/arch/arm/mach-tegra/include/mach/powergate.h b/arch/arm/mach-tegra/include/mach/powergate.h index 4752b1a68f35..06763fe7529d 100644 --- a/arch/arm/mach-tegra/include/mach/powergate.h +++ b/arch/arm/mach-tegra/include/mach/powergate.h | |||
@@ -20,6 +20,8 @@ | |||
20 | #ifndef _MACH_TEGRA_POWERGATE_H_ | 20 | #ifndef _MACH_TEGRA_POWERGATE_H_ |
21 | #define _MACH_TEGRA_POWERGATE_H_ | 21 | #define _MACH_TEGRA_POWERGATE_H_ |
22 | 22 | ||
23 | struct clk; | ||
24 | |||
23 | #define TEGRA_POWERGATE_CPU 0 | 25 | #define TEGRA_POWERGATE_CPU 0 |
24 | #define TEGRA_POWERGATE_3D 1 | 26 | #define TEGRA_POWERGATE_3D 1 |
25 | #define TEGRA_POWERGATE_VENC 2 | 27 | #define TEGRA_POWERGATE_VENC 2 |
diff --git a/arch/arm/mach-tegra/include/mach/uncompress.h b/arch/arm/mach-tegra/include/mach/uncompress.h index 937c4c50219e..27725750ca3e 100644 --- a/arch/arm/mach-tegra/include/mach/uncompress.h +++ b/arch/arm/mach-tegra/include/mach/uncompress.h | |||
@@ -28,8 +28,8 @@ | |||
28 | #include <linux/types.h> | 28 | #include <linux/types.h> |
29 | #include <linux/serial_reg.h> | 29 | #include <linux/serial_reg.h> |
30 | 30 | ||
31 | #include <mach/iomap.h> | 31 | #include "../../iomap.h" |
32 | #include <mach/irammap.h> | 32 | #include "../../irammap.h" |
33 | 33 | ||
34 | #define BIT(x) (1 << (x)) | 34 | #define BIT(x) (1 << (x)) |
35 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) | 35 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) |
diff --git a/arch/arm/mach-tegra/io.c b/arch/arm/mach-tegra/io.c index 58b4baf9c483..7d09f301b3a1 100644 --- a/arch/arm/mach-tegra/io.c +++ b/arch/arm/mach-tegra/io.c | |||
@@ -26,9 +26,9 @@ | |||
26 | 26 | ||
27 | #include <asm/page.h> | 27 | #include <asm/page.h> |
28 | #include <asm/mach/map.h> | 28 | #include <asm/mach/map.h> |
29 | #include <mach/iomap.h> | ||
30 | 29 | ||
31 | #include "board.h" | 30 | #include "board.h" |
31 | #include "iomap.h" | ||
32 | 32 | ||
33 | static struct map_desc tegra_io_desc[] __initdata = { | 33 | static struct map_desc tegra_io_desc[] __initdata = { |
34 | { | 34 | { |
diff --git a/arch/arm/mach-tegra/include/mach/iomap.h b/arch/arm/mach-tegra/iomap.h index fee3a94c4549..53151030a07d 100644 --- a/arch/arm/mach-tegra/include/mach/iomap.h +++ b/arch/arm/mach-tegra/iomap.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/arm/mach-tegra/include/mach/iomap.h | ||
3 | * | ||
4 | * Copyright (C) 2010 Google, Inc. | 2 | * Copyright (C) 2010 Google, Inc. |
5 | * | 3 | * |
6 | * Author: | 4 | * Author: |
diff --git a/arch/arm/mach-tegra/include/mach/irammap.h b/arch/arm/mach-tegra/irammap.h index 0cbe63261854..0cbe63261854 100644 --- a/arch/arm/mach-tegra/include/mach/irammap.h +++ b/arch/arm/mach-tegra/irammap.h | |||
diff --git a/arch/arm/mach-tegra/irq.c b/arch/arm/mach-tegra/irq.c index 2f5bd2db8e1f..b7886f183511 100644 --- a/arch/arm/mach-tegra/irq.c +++ b/arch/arm/mach-tegra/irq.c | |||
@@ -25,9 +25,8 @@ | |||
25 | 25 | ||
26 | #include <asm/hardware/gic.h> | 26 | #include <asm/hardware/gic.h> |
27 | 27 | ||
28 | #include <mach/iomap.h> | ||
29 | |||
30 | #include "board.h" | 28 | #include "board.h" |
29 | #include "iomap.h" | ||
31 | 30 | ||
32 | #define ICTLR_CPU_IEP_VFIQ 0x08 | 31 | #define ICTLR_CPU_IEP_VFIQ 0x08 |
33 | #define ICTLR_CPU_IEP_FIR 0x14 | 32 | #define ICTLR_CPU_IEP_FIR 0x14 |
diff --git a/arch/arm/mach-tegra/pcie.c b/arch/arm/mach-tegra/pcie.c index a8dba6489c9b..f18fc3ab4e58 100644 --- a/arch/arm/mach-tegra/pcie.c +++ b/arch/arm/mach-tegra/pcie.c | |||
@@ -37,11 +37,11 @@ | |||
37 | #include <asm/sizes.h> | 37 | #include <asm/sizes.h> |
38 | #include <asm/mach/pci.h> | 38 | #include <asm/mach/pci.h> |
39 | 39 | ||
40 | #include <mach/iomap.h> | ||
41 | #include <mach/clk.h> | 40 | #include <mach/clk.h> |
42 | #include <mach/powergate.h> | 41 | #include <mach/powergate.h> |
43 | 42 | ||
44 | #include "board.h" | 43 | #include "board.h" |
44 | #include "iomap.h" | ||
45 | 45 | ||
46 | /* register definitions */ | 46 | /* register definitions */ |
47 | #define AFI_OFFSET 0x3800 | 47 | #define AFI_OFFSET 0x3800 |
diff --git a/arch/arm/mach-tegra/platsmp.c b/arch/arm/mach-tegra/platsmp.c index 81cb26591acf..1b926df99c4b 100644 --- a/arch/arm/mach-tegra/platsmp.c +++ b/arch/arm/mach-tegra/platsmp.c | |||
@@ -24,8 +24,6 @@ | |||
24 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
25 | #include <asm/smp_scu.h> | 25 | #include <asm/smp_scu.h> |
26 | 26 | ||
27 | #include <mach/clk.h> | ||
28 | #include <mach/iomap.h> | ||
29 | #include <mach/powergate.h> | 27 | #include <mach/powergate.h> |
30 | 28 | ||
31 | #include "fuse.h" | 29 | #include "fuse.h" |
@@ -34,6 +32,7 @@ | |||
34 | #include "tegra_cpu_car.h" | 32 | #include "tegra_cpu_car.h" |
35 | 33 | ||
36 | #include "common.h" | 34 | #include "common.h" |
35 | #include "iomap.h" | ||
37 | 36 | ||
38 | extern void tegra_secondary_startup(void); | 37 | extern void tegra_secondary_startup(void); |
39 | 38 | ||
diff --git a/arch/arm/mach-tegra/pmc.c b/arch/arm/mach-tegra/pmc.c index 7af6a54404be..d4fdb5fcec20 100644 --- a/arch/arm/mach-tegra/pmc.c +++ b/arch/arm/mach-tegra/pmc.c | |||
@@ -19,7 +19,7 @@ | |||
19 | #include <linux/io.h> | 19 | #include <linux/io.h> |
20 | #include <linux/of.h> | 20 | #include <linux/of.h> |
21 | 21 | ||
22 | #include <mach/iomap.h> | 22 | #include "iomap.h" |
23 | 23 | ||
24 | #define PMC_CTRL 0x0 | 24 | #define PMC_CTRL 0x0 |
25 | #define PMC_CTRL_INTR_LOW (1 << 17) | 25 | #define PMC_CTRL_INTR_LOW (1 << 17) |
diff --git a/arch/arm/mach-tegra/powergate.c b/arch/arm/mach-tegra/powergate.c index de0662de28a0..2cc1185d902e 100644 --- a/arch/arm/mach-tegra/powergate.c +++ b/arch/arm/mach-tegra/powergate.c | |||
@@ -28,10 +28,10 @@ | |||
28 | #include <linux/spinlock.h> | 28 | #include <linux/spinlock.h> |
29 | 29 | ||
30 | #include <mach/clk.h> | 30 | #include <mach/clk.h> |
31 | #include <mach/iomap.h> | ||
32 | #include <mach/powergate.h> | 31 | #include <mach/powergate.h> |
33 | 32 | ||
34 | #include "fuse.h" | 33 | #include "fuse.h" |
34 | #include "iomap.h" | ||
35 | 35 | ||
36 | #define PWRGATE_TOGGLE 0x30 | 36 | #define PWRGATE_TOGGLE 0x30 |
37 | #define PWRGATE_TOGGLE_START (1 << 8) | 37 | #define PWRGATE_TOGGLE_START (1 << 8) |
diff --git a/arch/arm/mach-tegra/reset.c b/arch/arm/mach-tegra/reset.c index 5beb7ebe2948..e05da7d10c3b 100644 --- a/arch/arm/mach-tegra/reset.c +++ b/arch/arm/mach-tegra/reset.c | |||
@@ -22,9 +22,8 @@ | |||
22 | #include <asm/cacheflush.h> | 22 | #include <asm/cacheflush.h> |
23 | #include <asm/hardware/cache-l2x0.h> | 23 | #include <asm/hardware/cache-l2x0.h> |
24 | 24 | ||
25 | #include <mach/iomap.h> | 25 | #include "iomap.h" |
26 | #include <mach/irammap.h> | 26 | #include "irammap.h" |
27 | |||
28 | #include "reset.h" | 27 | #include "reset.h" |
29 | #include "fuse.h" | 28 | #include "fuse.h" |
30 | 29 | ||
diff --git a/arch/arm/mach-tegra/sleep-t20.S b/arch/arm/mach-tegra/sleep-t20.S index a36ae413e2b8..72ce709799da 100644 --- a/arch/arm/mach-tegra/sleep-t20.S +++ b/arch/arm/mach-tegra/sleep-t20.S | |||
@@ -22,8 +22,6 @@ | |||
22 | 22 | ||
23 | #include <asm/assembler.h> | 23 | #include <asm/assembler.h> |
24 | 24 | ||
25 | #include <mach/iomap.h> | ||
26 | |||
27 | #include "sleep.h" | 25 | #include "sleep.h" |
28 | #include "flowctrl.h" | 26 | #include "flowctrl.h" |
29 | 27 | ||
diff --git a/arch/arm/mach-tegra/sleep-t30.S b/arch/arm/mach-tegra/sleep-t30.S index 777d9cee8b90..be7614b7c5cb 100644 --- a/arch/arm/mach-tegra/sleep-t30.S +++ b/arch/arm/mach-tegra/sleep-t30.S | |||
@@ -18,8 +18,6 @@ | |||
18 | 18 | ||
19 | #include <asm/assembler.h> | 19 | #include <asm/assembler.h> |
20 | 20 | ||
21 | #include <mach/iomap.h> | ||
22 | |||
23 | #include "sleep.h" | 21 | #include "sleep.h" |
24 | #include "flowctrl.h" | 22 | #include "flowctrl.h" |
25 | 23 | ||
diff --git a/arch/arm/mach-tegra/sleep.S b/arch/arm/mach-tegra/sleep.S index ea81554c4833..08e9481c049e 100644 --- a/arch/arm/mach-tegra/sleep.S +++ b/arch/arm/mach-tegra/sleep.S | |||
@@ -26,7 +26,7 @@ | |||
26 | 26 | ||
27 | #include <asm/assembler.h> | 27 | #include <asm/assembler.h> |
28 | 28 | ||
29 | #include <mach/iomap.h> | 29 | #include "iomap.h" |
30 | 30 | ||
31 | #include "flowctrl.h" | 31 | #include "flowctrl.h" |
32 | #include "sleep.h" | 32 | #include "sleep.h" |
diff --git a/arch/arm/mach-tegra/sleep.h b/arch/arm/mach-tegra/sleep.h index e25a7cd703d9..4889b281c5f9 100644 --- a/arch/arm/mach-tegra/sleep.h +++ b/arch/arm/mach-tegra/sleep.h | |||
@@ -17,7 +17,7 @@ | |||
17 | #ifndef __MACH_TEGRA_SLEEP_H | 17 | #ifndef __MACH_TEGRA_SLEEP_H |
18 | #define __MACH_TEGRA_SLEEP_H | 18 | #define __MACH_TEGRA_SLEEP_H |
19 | 19 | ||
20 | #include <mach/iomap.h> | 20 | #include "iomap.h" |
21 | 21 | ||
22 | #define TEGRA_ARM_PERIF_VIRT (TEGRA_ARM_PERIF_BASE - IO_CPU_PHYS \ | 22 | #define TEGRA_ARM_PERIF_VIRT (TEGRA_ARM_PERIF_BASE - IO_CPU_PHYS \ |
23 | + IO_CPU_VIRT) | 23 | + IO_CPU_VIRT) |
diff --git a/arch/arm/mach-tegra/tegra20_clocks.c b/arch/arm/mach-tegra/tegra20_clocks.c index deb873fb12b6..4eb6bc81a87b 100644 --- a/arch/arm/mach-tegra/tegra20_clocks.c +++ b/arch/arm/mach-tegra/tegra20_clocks.c | |||
@@ -27,10 +27,9 @@ | |||
27 | #include <linux/clkdev.h> | 27 | #include <linux/clkdev.h> |
28 | #include <linux/clk.h> | 28 | #include <linux/clk.h> |
29 | 29 | ||
30 | #include <mach/iomap.h> | ||
31 | |||
32 | #include "clock.h" | 30 | #include "clock.h" |
33 | #include "fuse.h" | 31 | #include "fuse.h" |
32 | #include "iomap.h" | ||
34 | #include "tegra2_emc.h" | 33 | #include "tegra2_emc.h" |
35 | #include "tegra_cpu_car.h" | 34 | #include "tegra_cpu_car.h" |
36 | 35 | ||
diff --git a/arch/arm/mach-tegra/tegra20_clocks_data.c b/arch/arm/mach-tegra/tegra20_clocks_data.c index 8d398a33adf7..a23a0734e352 100644 --- a/arch/arm/mach-tegra/tegra20_clocks_data.c +++ b/arch/arm/mach-tegra/tegra20_clocks_data.c | |||
@@ -27,8 +27,6 @@ | |||
27 | #include <linux/io.h> | 27 | #include <linux/io.h> |
28 | #include <linux/clk.h> | 28 | #include <linux/clk.h> |
29 | 29 | ||
30 | #include <mach/iomap.h> | ||
31 | |||
32 | #include "clock.h" | 30 | #include "clock.h" |
33 | #include "fuse.h" | 31 | #include "fuse.h" |
34 | #include "tegra2_emc.h" | 32 | #include "tegra2_emc.h" |
@@ -248,11 +246,16 @@ static struct clk_pll_freq_table tegra_pll_d_freq_table[] = { | |||
248 | { 19200000, 216000000, 135, 12, 1, 3}, | 246 | { 19200000, 216000000, 135, 12, 1, 3}, |
249 | { 26000000, 216000000, 216, 26, 1, 4}, | 247 | { 26000000, 216000000, 216, 26, 1, 4}, |
250 | 248 | ||
249 | { 12000000, 297000000, 99, 4, 1, 4 }, | ||
250 | { 12000000, 339000000, 113, 4, 1, 4 }, | ||
251 | |||
251 | { 12000000, 594000000, 594, 12, 1, 8}, | 252 | { 12000000, 594000000, 594, 12, 1, 8}, |
252 | { 13000000, 594000000, 594, 13, 1, 8}, | 253 | { 13000000, 594000000, 594, 13, 1, 8}, |
253 | { 19200000, 594000000, 495, 16, 1, 8}, | 254 | { 19200000, 594000000, 495, 16, 1, 8}, |
254 | { 26000000, 594000000, 594, 26, 1, 8}, | 255 | { 26000000, 594000000, 594, 26, 1, 8}, |
255 | 256 | ||
257 | { 12000000, 616000000, 616, 12, 1, 8}, | ||
258 | |||
256 | { 12000000, 1000000000, 1000, 12, 1, 12}, | 259 | { 12000000, 1000000000, 1000, 12, 1, 12}, |
257 | { 13000000, 1000000000, 1000, 13, 1, 12}, | 260 | { 13000000, 1000000000, 1000, 13, 1, 12}, |
258 | { 19200000, 1000000000, 625, 12, 1, 8}, | 261 | { 19200000, 1000000000, 625, 12, 1, 8}, |
@@ -1038,9 +1041,6 @@ static struct clk_duplicate tegra_clk_duplicates[] = { | |||
1038 | CLK_DUPLICATE("usbd", "utmip-pad", NULL), | 1041 | CLK_DUPLICATE("usbd", "utmip-pad", NULL), |
1039 | CLK_DUPLICATE("usbd", "tegra-ehci.0", NULL), | 1042 | CLK_DUPLICATE("usbd", "tegra-ehci.0", NULL), |
1040 | CLK_DUPLICATE("usbd", "tegra-otg", NULL), | 1043 | CLK_DUPLICATE("usbd", "tegra-otg", NULL), |
1041 | CLK_DUPLICATE("hdmi", "tegradc.0", "hdmi"), | ||
1042 | CLK_DUPLICATE("hdmi", "tegradc.1", "hdmi"), | ||
1043 | CLK_DUPLICATE("host1x", "tegra_grhost", "host1x"), | ||
1044 | CLK_DUPLICATE("2d", "tegra_grhost", "gr2d"), | 1044 | CLK_DUPLICATE("2d", "tegra_grhost", "gr2d"), |
1045 | CLK_DUPLICATE("3d", "tegra_grhost", "gr3d"), | 1045 | CLK_DUPLICATE("3d", "tegra_grhost", "gr3d"), |
1046 | CLK_DUPLICATE("epp", "tegra_grhost", "epp"), | 1046 | CLK_DUPLICATE("epp", "tegra_grhost", "epp"), |
@@ -1053,6 +1053,9 @@ static struct clk_duplicate tegra_clk_duplicates[] = { | |||
1053 | CLK_DUPLICATE("pll_p_out3", "tegra-i2c.1", "fast-clk"), | 1053 | CLK_DUPLICATE("pll_p_out3", "tegra-i2c.1", "fast-clk"), |
1054 | CLK_DUPLICATE("pll_p_out3", "tegra-i2c.2", "fast-clk"), | 1054 | CLK_DUPLICATE("pll_p_out3", "tegra-i2c.2", "fast-clk"), |
1055 | CLK_DUPLICATE("pll_p_out3", "tegra-i2c.3", "fast-clk"), | 1055 | CLK_DUPLICATE("pll_p_out3", "tegra-i2c.3", "fast-clk"), |
1056 | CLK_DUPLICATE("pll_p", "tegradc.0", "parent"), | ||
1057 | CLK_DUPLICATE("pll_p", "tegradc.1", "parent"), | ||
1058 | CLK_DUPLICATE("pll_d_out0", "hdmi", "parent"), | ||
1056 | }; | 1059 | }; |
1057 | 1060 | ||
1058 | #define CLK(dev, con, ck) \ | 1061 | #define CLK(dev, con, ck) \ |
diff --git a/arch/arm/mach-tegra/tegra20_speedo.c b/arch/arm/mach-tegra/tegra20_speedo.c new file mode 100644 index 000000000000..fa6eb570623f --- /dev/null +++ b/arch/arm/mach-tegra/tegra20_speedo.c | |||
@@ -0,0 +1,109 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2012, NVIDIA CORPORATION. All rights reserved. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify it | ||
5 | * under the terms and conditions of the GNU General Public License, | ||
6 | * version 2, as published by the Free Software Foundation. | ||
7 | * | ||
8 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
10 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
11 | * more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License | ||
14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
15 | */ | ||
16 | |||
17 | #include <linux/kernel.h> | ||
18 | #include <linux/bug.h> | ||
19 | |||
20 | #include "fuse.h" | ||
21 | |||
22 | #define CPU_SPEEDO_LSBIT 20 | ||
23 | #define CPU_SPEEDO_MSBIT 29 | ||
24 | #define CPU_SPEEDO_REDUND_LSBIT 30 | ||
25 | #define CPU_SPEEDO_REDUND_MSBIT 39 | ||
26 | #define CPU_SPEEDO_REDUND_OFFS (CPU_SPEEDO_REDUND_MSBIT - CPU_SPEEDO_MSBIT) | ||
27 | |||
28 | #define CORE_SPEEDO_LSBIT 40 | ||
29 | #define CORE_SPEEDO_MSBIT 47 | ||
30 | #define CORE_SPEEDO_REDUND_LSBIT 48 | ||
31 | #define CORE_SPEEDO_REDUND_MSBIT 55 | ||
32 | #define CORE_SPEEDO_REDUND_OFFS (CORE_SPEEDO_REDUND_MSBIT - CORE_SPEEDO_MSBIT) | ||
33 | |||
34 | #define SPEEDO_MULT 4 | ||
35 | |||
36 | #define PROCESS_CORNERS_NUM 4 | ||
37 | |||
38 | #define SPEEDO_ID_SELECT_0(rev) ((rev) <= 2) | ||
39 | #define SPEEDO_ID_SELECT_1(sku) \ | ||
40 | (((sku) != 20) && ((sku) != 23) && ((sku) != 24) && \ | ||
41 | ((sku) != 27) && ((sku) != 28)) | ||
42 | |||
43 | enum { | ||
44 | SPEEDO_ID_0, | ||
45 | SPEEDO_ID_1, | ||
46 | SPEEDO_ID_2, | ||
47 | SPEEDO_ID_COUNT, | ||
48 | }; | ||
49 | |||
50 | static const u32 cpu_process_speedos[][PROCESS_CORNERS_NUM] = { | ||
51 | {315, 366, 420, UINT_MAX}, | ||
52 | {303, 368, 419, UINT_MAX}, | ||
53 | {316, 331, 383, UINT_MAX}, | ||
54 | }; | ||
55 | |||
56 | static const u32 core_process_speedos[][PROCESS_CORNERS_NUM] = { | ||
57 | {165, 195, 224, UINT_MAX}, | ||
58 | {165, 195, 224, UINT_MAX}, | ||
59 | {165, 195, 224, UINT_MAX}, | ||
60 | }; | ||
61 | |||
62 | void tegra20_init_speedo_data(void) | ||
63 | { | ||
64 | u32 reg; | ||
65 | u32 val; | ||
66 | int i; | ||
67 | |||
68 | BUILD_BUG_ON(ARRAY_SIZE(cpu_process_speedos) != SPEEDO_ID_COUNT); | ||
69 | BUILD_BUG_ON(ARRAY_SIZE(core_process_speedos) != SPEEDO_ID_COUNT); | ||
70 | |||
71 | if (SPEEDO_ID_SELECT_0(tegra_revision)) | ||
72 | tegra_soc_speedo_id = SPEEDO_ID_0; | ||
73 | else if (SPEEDO_ID_SELECT_1(tegra_sku_id)) | ||
74 | tegra_soc_speedo_id = SPEEDO_ID_1; | ||
75 | else | ||
76 | tegra_soc_speedo_id = SPEEDO_ID_2; | ||
77 | |||
78 | val = 0; | ||
79 | for (i = CPU_SPEEDO_MSBIT; i >= CPU_SPEEDO_LSBIT; i--) { | ||
80 | reg = tegra_spare_fuse(i) | | ||
81 | tegra_spare_fuse(i + CPU_SPEEDO_REDUND_OFFS); | ||
82 | val = (val << 1) | (reg & 0x1); | ||
83 | } | ||
84 | val = val * SPEEDO_MULT; | ||
85 | pr_debug("%s CPU speedo value %u\n", __func__, val); | ||
86 | |||
87 | for (i = 0; i < (PROCESS_CORNERS_NUM - 1); i++) { | ||
88 | if (val <= cpu_process_speedos[tegra_soc_speedo_id][i]) | ||
89 | break; | ||
90 | } | ||
91 | tegra_cpu_process_id = i; | ||
92 | |||
93 | val = 0; | ||
94 | for (i = CORE_SPEEDO_MSBIT; i >= CORE_SPEEDO_LSBIT; i--) { | ||
95 | reg = tegra_spare_fuse(i) | | ||
96 | tegra_spare_fuse(i + CORE_SPEEDO_REDUND_OFFS); | ||
97 | val = (val << 1) | (reg & 0x1); | ||
98 | } | ||
99 | val = val * SPEEDO_MULT; | ||
100 | pr_debug("%s Core speedo value %u\n", __func__, val); | ||
101 | |||
102 | for (i = 0; i < (PROCESS_CORNERS_NUM - 1); i++) { | ||
103 | if (val <= core_process_speedos[tegra_soc_speedo_id][i]) | ||
104 | break; | ||
105 | } | ||
106 | tegra_core_process_id = i; | ||
107 | |||
108 | pr_info("Tegra20 Soc Speedo ID %d", tegra_soc_speedo_id); | ||
109 | } | ||
diff --git a/arch/arm/mach-tegra/tegra2_emc.c b/arch/arm/mach-tegra/tegra2_emc.c index 5070d833bdd1..837c7b9ea63b 100644 --- a/arch/arm/mach-tegra/tegra2_emc.c +++ b/arch/arm/mach-tegra/tegra2_emc.c | |||
@@ -25,8 +25,6 @@ | |||
25 | #include <linux/platform_device.h> | 25 | #include <linux/platform_device.h> |
26 | #include <linux/platform_data/tegra_emc.h> | 26 | #include <linux/platform_data/tegra_emc.h> |
27 | 27 | ||
28 | #include <mach/iomap.h> | ||
29 | |||
30 | #include "tegra2_emc.h" | 28 | #include "tegra2_emc.h" |
31 | #include "fuse.h" | 29 | #include "fuse.h" |
32 | 30 | ||
diff --git a/arch/arm/mach-tegra/tegra30_clocks.c b/arch/arm/mach-tegra/tegra30_clocks.c index e9de5dfd94ec..f5b453f4bf4d 100644 --- a/arch/arm/mach-tegra/tegra30_clocks.c +++ b/arch/arm/mach-tegra/tegra30_clocks.c | |||
@@ -31,10 +31,9 @@ | |||
31 | 31 | ||
32 | #include <asm/clkdev.h> | 32 | #include <asm/clkdev.h> |
33 | 33 | ||
34 | #include <mach/iomap.h> | ||
35 | |||
36 | #include "clock.h" | 34 | #include "clock.h" |
37 | #include "fuse.h" | 35 | #include "fuse.h" |
36 | #include "iomap.h" | ||
38 | #include "tegra_cpu_car.h" | 37 | #include "tegra_cpu_car.h" |
39 | 38 | ||
40 | #define USE_PLL_LOCK_BITS 0 | 39 | #define USE_PLL_LOCK_BITS 0 |
@@ -792,6 +791,112 @@ struct clk_ops tegra30_twd_ops = { | |||
792 | .recalc_rate = tegra30_twd_clk_recalc_rate, | 791 | .recalc_rate = tegra30_twd_clk_recalc_rate, |
793 | }; | 792 | }; |
794 | 793 | ||
794 | /* bus clock functions */ | ||
795 | static int tegra30_bus_clk_is_enabled(struct clk_hw *hw) | ||
796 | { | ||
797 | struct clk_tegra *c = to_clk_tegra(hw); | ||
798 | u32 val = clk_readl(c->reg); | ||
799 | |||
800 | c->state = ((val >> c->reg_shift) & BUS_CLK_DISABLE) ? OFF : ON; | ||
801 | return c->state; | ||
802 | } | ||
803 | |||
804 | static int tegra30_bus_clk_enable(struct clk_hw *hw) | ||
805 | { | ||
806 | struct clk_tegra *c = to_clk_tegra(hw); | ||
807 | u32 val; | ||
808 | |||
809 | val = clk_readl(c->reg); | ||
810 | val &= ~(BUS_CLK_DISABLE << c->reg_shift); | ||
811 | clk_writel(val, c->reg); | ||
812 | |||
813 | return 0; | ||
814 | } | ||
815 | |||
816 | static void tegra30_bus_clk_disable(struct clk_hw *hw) | ||
817 | { | ||
818 | struct clk_tegra *c = to_clk_tegra(hw); | ||
819 | u32 val; | ||
820 | |||
821 | val = clk_readl(c->reg); | ||
822 | val |= BUS_CLK_DISABLE << c->reg_shift; | ||
823 | clk_writel(val, c->reg); | ||
824 | } | ||
825 | |||
826 | static unsigned long tegra30_bus_clk_recalc_rate(struct clk_hw *hw, | ||
827 | unsigned long prate) | ||
828 | { | ||
829 | struct clk_tegra *c = to_clk_tegra(hw); | ||
830 | u32 val = clk_readl(c->reg); | ||
831 | u64 rate = prate; | ||
832 | |||
833 | c->div = ((val >> c->reg_shift) & BUS_CLK_DIV_MASK) + 1; | ||
834 | c->mul = 1; | ||
835 | |||
836 | if (c->mul != 0 && c->div != 0) { | ||
837 | rate *= c->mul; | ||
838 | rate += c->div - 1; /* round up */ | ||
839 | do_div(rate, c->div); | ||
840 | } | ||
841 | return rate; | ||
842 | } | ||
843 | |||
844 | static int tegra30_bus_clk_set_rate(struct clk_hw *hw, unsigned long rate, | ||
845 | unsigned long parent_rate) | ||
846 | { | ||
847 | struct clk_tegra *c = to_clk_tegra(hw); | ||
848 | int ret = -EINVAL; | ||
849 | u32 val; | ||
850 | int i; | ||
851 | |||
852 | val = clk_readl(c->reg); | ||
853 | for (i = 1; i <= 4; i++) { | ||
854 | if (rate == parent_rate / i) { | ||
855 | val &= ~(BUS_CLK_DIV_MASK << c->reg_shift); | ||
856 | val |= (i - 1) << c->reg_shift; | ||
857 | clk_writel(val, c->reg); | ||
858 | c->div = i; | ||
859 | c->mul = 1; | ||
860 | ret = 0; | ||
861 | break; | ||
862 | } | ||
863 | } | ||
864 | |||
865 | return ret; | ||
866 | } | ||
867 | |||
868 | static long tegra30_bus_clk_round_rate(struct clk_hw *hw, unsigned long rate, | ||
869 | unsigned long *prate) | ||
870 | { | ||
871 | unsigned long parent_rate = *prate; | ||
872 | s64 divider; | ||
873 | |||
874 | if (rate >= parent_rate) | ||
875 | return parent_rate; | ||
876 | |||
877 | divider = parent_rate; | ||
878 | divider += rate - 1; | ||
879 | do_div(divider, rate); | ||
880 | |||
881 | if (divider < 0) | ||
882 | return divider; | ||
883 | |||
884 | if (divider > 4) | ||
885 | divider = 4; | ||
886 | do_div(parent_rate, divider); | ||
887 | |||
888 | return parent_rate; | ||
889 | } | ||
890 | |||
891 | struct clk_ops tegra30_bus_ops = { | ||
892 | .is_enabled = tegra30_bus_clk_is_enabled, | ||
893 | .enable = tegra30_bus_clk_enable, | ||
894 | .disable = tegra30_bus_clk_disable, | ||
895 | .set_rate = tegra30_bus_clk_set_rate, | ||
896 | .round_rate = tegra30_bus_clk_round_rate, | ||
897 | .recalc_rate = tegra30_bus_clk_recalc_rate, | ||
898 | }; | ||
899 | |||
795 | /* Blink output functions */ | 900 | /* Blink output functions */ |
796 | static int tegra30_blink_clk_is_enabled(struct clk_hw *hw) | 901 | static int tegra30_blink_clk_is_enabled(struct clk_hw *hw) |
797 | { | 902 | { |
diff --git a/arch/arm/mach-tegra/tegra30_clocks.h b/arch/arm/mach-tegra/tegra30_clocks.h index f2f88fef6b8b..7a34adb2f72d 100644 --- a/arch/arm/mach-tegra/tegra30_clocks.h +++ b/arch/arm/mach-tegra/tegra30_clocks.h | |||
@@ -34,6 +34,7 @@ extern struct clk_ops tegra_clk_out_ops; | |||
34 | extern struct clk_ops tegra30_super_ops; | 34 | extern struct clk_ops tegra30_super_ops; |
35 | extern struct clk_ops tegra30_blink_clk_ops; | 35 | extern struct clk_ops tegra30_blink_clk_ops; |
36 | extern struct clk_ops tegra30_twd_ops; | 36 | extern struct clk_ops tegra30_twd_ops; |
37 | extern struct clk_ops tegra30_bus_ops; | ||
37 | extern struct clk_ops tegra30_periph_clk_ops; | 38 | extern struct clk_ops tegra30_periph_clk_ops; |
38 | extern struct clk_ops tegra30_dsib_clk_ops; | 39 | extern struct clk_ops tegra30_dsib_clk_ops; |
39 | extern struct clk_ops tegra_nand_clk_ops; | 40 | extern struct clk_ops tegra_nand_clk_ops; |
diff --git a/arch/arm/mach-tegra/tegra30_clocks_data.c b/arch/arm/mach-tegra/tegra30_clocks_data.c index 3d2e5532a9ea..6942c7add3bb 100644 --- a/arch/arm/mach-tegra/tegra30_clocks_data.c +++ b/arch/arm/mach-tegra/tegra30_clocks_data.c | |||
@@ -711,6 +711,50 @@ static struct clk tegra_clk_sclk = { | |||
711 | .num_parents = ARRAY_SIZE(mux_sclk), | 711 | .num_parents = ARRAY_SIZE(mux_sclk), |
712 | }; | 712 | }; |
713 | 713 | ||
714 | static const char *tegra_hclk_parent_names[] = { | ||
715 | "tegra_sclk", | ||
716 | }; | ||
717 | |||
718 | static struct clk *tegra_hclk_parents[] = { | ||
719 | &tegra_clk_sclk, | ||
720 | }; | ||
721 | |||
722 | static struct clk tegra_hclk; | ||
723 | static struct clk_tegra tegra_hclk_hw = { | ||
724 | .hw = { | ||
725 | .clk = &tegra_hclk, | ||
726 | }, | ||
727 | .flags = DIV_BUS, | ||
728 | .reg = 0x30, | ||
729 | .reg_shift = 4, | ||
730 | .max_rate = 378000000, | ||
731 | .min_rate = 12000000, | ||
732 | }; | ||
733 | DEFINE_CLK_TEGRA(hclk, 0, &tegra30_bus_ops, 0, tegra_hclk_parent_names, | ||
734 | tegra_hclk_parents, &tegra_clk_sclk); | ||
735 | |||
736 | static const char *tegra_pclk_parent_names[] = { | ||
737 | "tegra_hclk", | ||
738 | }; | ||
739 | |||
740 | static struct clk *tegra_pclk_parents[] = { | ||
741 | &tegra_hclk, | ||
742 | }; | ||
743 | |||
744 | static struct clk tegra_pclk; | ||
745 | static struct clk_tegra tegra_pclk_hw = { | ||
746 | .hw = { | ||
747 | .clk = &tegra_pclk, | ||
748 | }, | ||
749 | .flags = DIV_BUS, | ||
750 | .reg = 0x30, | ||
751 | .reg_shift = 0, | ||
752 | .max_rate = 167000000, | ||
753 | .min_rate = 12000000, | ||
754 | }; | ||
755 | DEFINE_CLK_TEGRA(pclk, 0, &tegra30_bus_ops, 0, tegra_pclk_parent_names, | ||
756 | tegra_pclk_parents, &tegra_hclk); | ||
757 | |||
714 | static const char *mux_blink[] = { | 758 | static const char *mux_blink[] = { |
715 | "clk_32k", | 759 | "clk_32k", |
716 | }; | 760 | }; |
@@ -1254,8 +1298,6 @@ struct clk_duplicate tegra_clk_duplicates[] = { | |||
1254 | CLK_DUPLICATE("usbd", "utmip-pad", NULL), | 1298 | CLK_DUPLICATE("usbd", "utmip-pad", NULL), |
1255 | CLK_DUPLICATE("usbd", "tegra-ehci.0", NULL), | 1299 | CLK_DUPLICATE("usbd", "tegra-ehci.0", NULL), |
1256 | CLK_DUPLICATE("usbd", "tegra-otg", NULL), | 1300 | CLK_DUPLICATE("usbd", "tegra-otg", NULL), |
1257 | CLK_DUPLICATE("hdmi", "tegradc.0", "hdmi"), | ||
1258 | CLK_DUPLICATE("hdmi", "tegradc.1", "hdmi"), | ||
1259 | CLK_DUPLICATE("dsib", "tegradc.0", "dsib"), | 1301 | CLK_DUPLICATE("dsib", "tegradc.0", "dsib"), |
1260 | CLK_DUPLICATE("dsia", "tegradc.1", "dsia"), | 1302 | CLK_DUPLICATE("dsia", "tegradc.1", "dsia"), |
1261 | CLK_DUPLICATE("bsev", "tegra-avp", "bsev"), | 1303 | CLK_DUPLICATE("bsev", "tegra-avp", "bsev"), |
@@ -1293,6 +1335,9 @@ struct clk_duplicate tegra_clk_duplicates[] = { | |||
1293 | CLK_DUPLICATE("pll_p_out3", "tegra-i2c.2", "fast-clk"), | 1335 | CLK_DUPLICATE("pll_p_out3", "tegra-i2c.2", "fast-clk"), |
1294 | CLK_DUPLICATE("pll_p_out3", "tegra-i2c.3", "fast-clk"), | 1336 | CLK_DUPLICATE("pll_p_out3", "tegra-i2c.3", "fast-clk"), |
1295 | CLK_DUPLICATE("pll_p_out3", "tegra-i2c.4", "fast-clk"), | 1337 | CLK_DUPLICATE("pll_p_out3", "tegra-i2c.4", "fast-clk"), |
1338 | CLK_DUPLICATE("pll_p", "tegradc.0", "parent"), | ||
1339 | CLK_DUPLICATE("pll_p", "tegradc.1", "parent"), | ||
1340 | CLK_DUPLICATE("pll_d2_out0", "hdmi", "parent"), | ||
1296 | }; | 1341 | }; |
1297 | 1342 | ||
1298 | struct clk *tegra_ptr_clks[] = { | 1343 | struct clk *tegra_ptr_clks[] = { |
@@ -1325,6 +1370,8 @@ struct clk *tegra_ptr_clks[] = { | |||
1325 | &tegra_cml1, | 1370 | &tegra_cml1, |
1326 | &tegra_pciex, | 1371 | &tegra_pciex, |
1327 | &tegra_clk_sclk, | 1372 | &tegra_clk_sclk, |
1373 | &tegra_hclk, | ||
1374 | &tegra_pclk, | ||
1328 | &tegra_clk_blink, | 1375 | &tegra_clk_blink, |
1329 | &tegra30_clk_twd, | 1376 | &tegra30_clk_twd, |
1330 | }; | 1377 | }; |
diff --git a/arch/arm/mach-tegra/tegra30_speedo.c b/arch/arm/mach-tegra/tegra30_speedo.c new file mode 100644 index 000000000000..125cb16424a6 --- /dev/null +++ b/arch/arm/mach-tegra/tegra30_speedo.c | |||
@@ -0,0 +1,292 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2012, NVIDIA CORPORATION. All rights reserved. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify it | ||
5 | * under the terms and conditions of the GNU General Public License, | ||
6 | * version 2, as published by the Free Software Foundation. | ||
7 | * | ||
8 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
10 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
11 | * more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License | ||
14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
15 | */ | ||
16 | |||
17 | #include <linux/kernel.h> | ||
18 | #include <linux/bug.h> | ||
19 | |||
20 | #include "fuse.h" | ||
21 | |||
22 | #define CORE_PROCESS_CORNERS_NUM 1 | ||
23 | #define CPU_PROCESS_CORNERS_NUM 6 | ||
24 | |||
25 | #define FUSE_SPEEDO_CALIB_0 0x114 | ||
26 | #define FUSE_PACKAGE_INFO 0X1FC | ||
27 | #define FUSE_TEST_PROG_VER 0X128 | ||
28 | |||
29 | #define G_SPEEDO_BIT_MINUS1 58 | ||
30 | #define G_SPEEDO_BIT_MINUS1_R 59 | ||
31 | #define G_SPEEDO_BIT_MINUS2 60 | ||
32 | #define G_SPEEDO_BIT_MINUS2_R 61 | ||
33 | #define LP_SPEEDO_BIT_MINUS1 62 | ||
34 | #define LP_SPEEDO_BIT_MINUS1_R 63 | ||
35 | #define LP_SPEEDO_BIT_MINUS2 64 | ||
36 | #define LP_SPEEDO_BIT_MINUS2_R 65 | ||
37 | |||
38 | enum { | ||
39 | THRESHOLD_INDEX_0, | ||
40 | THRESHOLD_INDEX_1, | ||
41 | THRESHOLD_INDEX_2, | ||
42 | THRESHOLD_INDEX_3, | ||
43 | THRESHOLD_INDEX_4, | ||
44 | THRESHOLD_INDEX_5, | ||
45 | THRESHOLD_INDEX_6, | ||
46 | THRESHOLD_INDEX_7, | ||
47 | THRESHOLD_INDEX_8, | ||
48 | THRESHOLD_INDEX_9, | ||
49 | THRESHOLD_INDEX_10, | ||
50 | THRESHOLD_INDEX_11, | ||
51 | THRESHOLD_INDEX_COUNT, | ||
52 | }; | ||
53 | |||
54 | static const u32 core_process_speedos[][CORE_PROCESS_CORNERS_NUM] = { | ||
55 | {180}, | ||
56 | {170}, | ||
57 | {195}, | ||
58 | {180}, | ||
59 | {168}, | ||
60 | {192}, | ||
61 | {180}, | ||
62 | {170}, | ||
63 | {195}, | ||
64 | {180}, | ||
65 | {180}, | ||
66 | {180}, | ||
67 | }; | ||
68 | |||
69 | static const u32 cpu_process_speedos[][CPU_PROCESS_CORNERS_NUM] = { | ||
70 | {306, 338, 360, 376, UINT_MAX}, | ||
71 | {295, 336, 358, 375, UINT_MAX}, | ||
72 | {325, 325, 358, 375, UINT_MAX}, | ||
73 | {325, 325, 358, 375, UINT_MAX}, | ||
74 | {292, 324, 348, 364, UINT_MAX}, | ||
75 | {324, 324, 348, 364, UINT_MAX}, | ||
76 | {324, 324, 348, 364, UINT_MAX}, | ||
77 | {295, 336, 358, 375, UINT_MAX}, | ||
78 | {358, 358, 358, 358, 397, UINT_MAX}, | ||
79 | {364, 364, 364, 364, 397, UINT_MAX}, | ||
80 | {295, 336, 358, 375, 391, UINT_MAX}, | ||
81 | {295, 336, 358, 375, 391, UINT_MAX}, | ||
82 | }; | ||
83 | |||
84 | static int threshold_index; | ||
85 | static int package_id; | ||
86 | |||
87 | static void fuse_speedo_calib(u32 *speedo_g, u32 *speedo_lp) | ||
88 | { | ||
89 | u32 reg; | ||
90 | int ate_ver; | ||
91 | int bit_minus1; | ||
92 | int bit_minus2; | ||
93 | |||
94 | reg = tegra_fuse_readl(FUSE_SPEEDO_CALIB_0); | ||
95 | |||
96 | *speedo_lp = (reg & 0xFFFF) * 4; | ||
97 | *speedo_g = ((reg >> 16) & 0xFFFF) * 4; | ||
98 | |||
99 | ate_ver = tegra_fuse_readl(FUSE_TEST_PROG_VER); | ||
100 | pr_info("%s: ATE prog ver %d.%d\n", __func__, ate_ver/10, ate_ver%10); | ||
101 | |||
102 | if (ate_ver >= 26) { | ||
103 | bit_minus1 = tegra_spare_fuse(LP_SPEEDO_BIT_MINUS1); | ||
104 | bit_minus1 |= tegra_spare_fuse(LP_SPEEDO_BIT_MINUS1_R); | ||
105 | bit_minus2 = tegra_spare_fuse(LP_SPEEDO_BIT_MINUS2); | ||
106 | bit_minus2 |= tegra_spare_fuse(LP_SPEEDO_BIT_MINUS2_R); | ||
107 | *speedo_lp |= (bit_minus1 << 1) | bit_minus2; | ||
108 | |||
109 | bit_minus1 = tegra_spare_fuse(G_SPEEDO_BIT_MINUS1); | ||
110 | bit_minus1 |= tegra_spare_fuse(G_SPEEDO_BIT_MINUS1_R); | ||
111 | bit_minus2 = tegra_spare_fuse(G_SPEEDO_BIT_MINUS2); | ||
112 | bit_minus2 |= tegra_spare_fuse(G_SPEEDO_BIT_MINUS2_R); | ||
113 | *speedo_g |= (bit_minus1 << 1) | bit_minus2; | ||
114 | } else { | ||
115 | *speedo_lp |= 0x3; | ||
116 | *speedo_g |= 0x3; | ||
117 | } | ||
118 | } | ||
119 | |||
120 | static void rev_sku_to_speedo_ids(int rev, int sku) | ||
121 | { | ||
122 | switch (rev) { | ||
123 | case TEGRA_REVISION_A01: | ||
124 | tegra_cpu_speedo_id = 0; | ||
125 | tegra_soc_speedo_id = 0; | ||
126 | threshold_index = THRESHOLD_INDEX_0; | ||
127 | break; | ||
128 | case TEGRA_REVISION_A02: | ||
129 | case TEGRA_REVISION_A03: | ||
130 | switch (sku) { | ||
131 | case 0x87: | ||
132 | case 0x82: | ||
133 | tegra_cpu_speedo_id = 1; | ||
134 | tegra_soc_speedo_id = 1; | ||
135 | threshold_index = THRESHOLD_INDEX_1; | ||
136 | break; | ||
137 | case 0x81: | ||
138 | switch (package_id) { | ||
139 | case 1: | ||
140 | tegra_cpu_speedo_id = 2; | ||
141 | tegra_soc_speedo_id = 2; | ||
142 | threshold_index = THRESHOLD_INDEX_2; | ||
143 | break; | ||
144 | case 2: | ||
145 | tegra_cpu_speedo_id = 4; | ||
146 | tegra_soc_speedo_id = 1; | ||
147 | threshold_index = THRESHOLD_INDEX_7; | ||
148 | break; | ||
149 | default: | ||
150 | pr_err("Tegra30: Unknown pkg %d\n", package_id); | ||
151 | BUG(); | ||
152 | break; | ||
153 | } | ||
154 | break; | ||
155 | case 0x80: | ||
156 | switch (package_id) { | ||
157 | case 1: | ||
158 | tegra_cpu_speedo_id = 5; | ||
159 | tegra_soc_speedo_id = 2; | ||
160 | threshold_index = THRESHOLD_INDEX_8; | ||
161 | break; | ||
162 | case 2: | ||
163 | tegra_cpu_speedo_id = 6; | ||
164 | tegra_soc_speedo_id = 2; | ||
165 | threshold_index = THRESHOLD_INDEX_9; | ||
166 | break; | ||
167 | default: | ||
168 | pr_err("Tegra30: Unknown pkg %d\n", package_id); | ||
169 | BUG(); | ||
170 | break; | ||
171 | } | ||
172 | break; | ||
173 | case 0x83: | ||
174 | switch (package_id) { | ||
175 | case 1: | ||
176 | tegra_cpu_speedo_id = 7; | ||
177 | tegra_soc_speedo_id = 1; | ||
178 | threshold_index = THRESHOLD_INDEX_10; | ||
179 | break; | ||
180 | case 2: | ||
181 | tegra_cpu_speedo_id = 3; | ||
182 | tegra_soc_speedo_id = 2; | ||
183 | threshold_index = THRESHOLD_INDEX_3; | ||
184 | break; | ||
185 | default: | ||
186 | pr_err("Tegra30: Unknown pkg %d\n", package_id); | ||
187 | BUG(); | ||
188 | break; | ||
189 | } | ||
190 | break; | ||
191 | case 0x8F: | ||
192 | tegra_cpu_speedo_id = 8; | ||
193 | tegra_soc_speedo_id = 1; | ||
194 | threshold_index = THRESHOLD_INDEX_11; | ||
195 | break; | ||
196 | case 0x08: | ||
197 | tegra_cpu_speedo_id = 1; | ||
198 | tegra_soc_speedo_id = 1; | ||
199 | threshold_index = THRESHOLD_INDEX_4; | ||
200 | break; | ||
201 | case 0x02: | ||
202 | tegra_cpu_speedo_id = 2; | ||
203 | tegra_soc_speedo_id = 2; | ||
204 | threshold_index = THRESHOLD_INDEX_5; | ||
205 | break; | ||
206 | case 0x04: | ||
207 | tegra_cpu_speedo_id = 3; | ||
208 | tegra_soc_speedo_id = 2; | ||
209 | threshold_index = THRESHOLD_INDEX_6; | ||
210 | break; | ||
211 | case 0: | ||
212 | switch (package_id) { | ||
213 | case 1: | ||
214 | tegra_cpu_speedo_id = 2; | ||
215 | tegra_soc_speedo_id = 2; | ||
216 | threshold_index = THRESHOLD_INDEX_2; | ||
217 | break; | ||
218 | case 2: | ||
219 | tegra_cpu_speedo_id = 3; | ||
220 | tegra_soc_speedo_id = 2; | ||
221 | threshold_index = THRESHOLD_INDEX_3; | ||
222 | break; | ||
223 | default: | ||
224 | pr_err("Tegra30: Unknown pkg %d\n", package_id); | ||
225 | BUG(); | ||
226 | break; | ||
227 | } | ||
228 | break; | ||
229 | default: | ||
230 | pr_warn("Tegra30: Unknown SKU %d\n", sku); | ||
231 | tegra_cpu_speedo_id = 0; | ||
232 | tegra_soc_speedo_id = 0; | ||
233 | threshold_index = THRESHOLD_INDEX_0; | ||
234 | break; | ||
235 | } | ||
236 | break; | ||
237 | default: | ||
238 | pr_warn("Tegra30: Unknown chip rev %d\n", rev); | ||
239 | tegra_cpu_speedo_id = 0; | ||
240 | tegra_soc_speedo_id = 0; | ||
241 | threshold_index = THRESHOLD_INDEX_0; | ||
242 | break; | ||
243 | } | ||
244 | } | ||
245 | |||
246 | void tegra30_init_speedo_data(void) | ||
247 | { | ||
248 | u32 cpu_speedo_val; | ||
249 | u32 core_speedo_val; | ||
250 | int i; | ||
251 | |||
252 | BUILD_BUG_ON(ARRAY_SIZE(cpu_process_speedos) != | ||
253 | THRESHOLD_INDEX_COUNT); | ||
254 | BUILD_BUG_ON(ARRAY_SIZE(core_process_speedos) != | ||
255 | THRESHOLD_INDEX_COUNT); | ||
256 | |||
257 | package_id = tegra_fuse_readl(FUSE_PACKAGE_INFO) & 0x0F; | ||
258 | |||
259 | rev_sku_to_speedo_ids(tegra_revision, tegra_sku_id); | ||
260 | fuse_speedo_calib(&cpu_speedo_val, &core_speedo_val); | ||
261 | pr_debug("%s CPU speedo value %u\n", __func__, cpu_speedo_val); | ||
262 | pr_debug("%s Core speedo value %u\n", __func__, core_speedo_val); | ||
263 | |||
264 | for (i = 0; i < CPU_PROCESS_CORNERS_NUM; i++) { | ||
265 | if (cpu_speedo_val < cpu_process_speedos[threshold_index][i]) | ||
266 | break; | ||
267 | } | ||
268 | tegra_cpu_process_id = i - 1; | ||
269 | |||
270 | if (tegra_cpu_process_id == -1) { | ||
271 | pr_warn("Tegra30: CPU speedo value %3d out of range", | ||
272 | cpu_speedo_val); | ||
273 | tegra_cpu_process_id = 0; | ||
274 | tegra_cpu_speedo_id = 1; | ||
275 | } | ||
276 | |||
277 | for (i = 0; i < CORE_PROCESS_CORNERS_NUM; i++) { | ||
278 | if (core_speedo_val < core_process_speedos[threshold_index][i]) | ||
279 | break; | ||
280 | } | ||
281 | tegra_core_process_id = i - 1; | ||
282 | |||
283 | if (tegra_core_process_id == -1) { | ||
284 | pr_warn("Tegra30: CORE speedo value %3d out of range", | ||
285 | core_speedo_val); | ||
286 | tegra_core_process_id = 0; | ||
287 | tegra_soc_speedo_id = 1; | ||
288 | } | ||
289 | |||
290 | pr_info("Tegra30: CPU Speedo ID %d, Soc Speedo ID %d", | ||
291 | tegra_cpu_speedo_id, tegra_soc_speedo_id); | ||
292 | } | ||
diff --git a/arch/arm/mach-tegra/timer.c b/arch/arm/mach-tegra/timer.c index d3b8c8e7368f..6ff503536512 100644 --- a/arch/arm/mach-tegra/timer.c +++ b/arch/arm/mach-tegra/timer.c | |||
@@ -31,11 +31,11 @@ | |||
31 | #include <asm/smp_twd.h> | 31 | #include <asm/smp_twd.h> |
32 | #include <asm/sched_clock.h> | 32 | #include <asm/sched_clock.h> |
33 | 33 | ||
34 | #include <mach/iomap.h> | ||
35 | #include <mach/irqs.h> | 34 | #include <mach/irqs.h> |
36 | 35 | ||
37 | #include "board.h" | 36 | #include "board.h" |
38 | #include "clock.h" | 37 | #include "clock.h" |
38 | #include "iomap.h" | ||
39 | 39 | ||
40 | #define RTC_SECONDS 0x08 | 40 | #define RTC_SECONDS 0x08 |
41 | #define RTC_SHADOW_SECONDS 0x0c | 41 | #define RTC_SHADOW_SECONDS 0x0c |
diff --git a/drivers/amba/tegra-ahb.c b/drivers/amba/tegra-ahb.c index 0b6f0b28a487..bd5de08ad6fd 100644 --- a/drivers/amba/tegra-ahb.c +++ b/drivers/amba/tegra-ahb.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <linux/module.h> | 24 | #include <linux/module.h> |
25 | #include <linux/platform_device.h> | 25 | #include <linux/platform_device.h> |
26 | #include <linux/io.h> | 26 | #include <linux/io.h> |
27 | #include <linux/tegra-ahb.h> | ||
27 | 28 | ||
28 | #define DRV_NAME "tegra-ahb" | 29 | #define DRV_NAME "tegra-ahb" |
29 | 30 | ||
diff --git a/drivers/crypto/tegra-aes.c b/drivers/crypto/tegra-aes.c index 37185e6630cd..e69f3bc473be 100644 --- a/drivers/crypto/tegra-aes.c +++ b/drivers/crypto/tegra-aes.c | |||
@@ -41,8 +41,6 @@ | |||
41 | #include <linux/completion.h> | 41 | #include <linux/completion.h> |
42 | #include <linux/workqueue.h> | 42 | #include <linux/workqueue.h> |
43 | 43 | ||
44 | #include <mach/clk.h> | ||
45 | |||
46 | #include <crypto/scatterwalk.h> | 44 | #include <crypto/scatterwalk.h> |
47 | #include <crypto/aes.h> | 45 | #include <crypto/aes.h> |
48 | #include <crypto/internal/rng.h> | 46 | #include <crypto/internal/rng.h> |
diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c index a649f146d17b..41678639b7e3 100644 --- a/drivers/iommu/tegra-smmu.c +++ b/drivers/iommu/tegra-smmu.c | |||
@@ -34,13 +34,11 @@ | |||
34 | #include <linux/of_iommu.h> | 34 | #include <linux/of_iommu.h> |
35 | #include <linux/debugfs.h> | 35 | #include <linux/debugfs.h> |
36 | #include <linux/seq_file.h> | 36 | #include <linux/seq_file.h> |
37 | #include <linux/tegra-ahb.h> | ||
37 | 38 | ||
38 | #include <asm/page.h> | 39 | #include <asm/page.h> |
39 | #include <asm/cacheflush.h> | 40 | #include <asm/cacheflush.h> |
40 | 41 | ||
41 | #include <mach/iomap.h> | ||
42 | #include <mach/tegra-ahb.h> | ||
43 | |||
44 | enum smmu_hwgrp { | 42 | enum smmu_hwgrp { |
45 | HWGRP_AFI, | 43 | HWGRP_AFI, |
46 | HWGRP_AVPC, | 44 | HWGRP_AVPC, |
diff --git a/drivers/staging/nvec/nvec.c b/drivers/staging/nvec/nvec.c index 094fdc366f30..97cdf0856aed 100644 --- a/drivers/staging/nvec/nvec.c +++ b/drivers/staging/nvec/nvec.c | |||
@@ -39,7 +39,6 @@ | |||
39 | #include <linux/workqueue.h> | 39 | #include <linux/workqueue.h> |
40 | 40 | ||
41 | #include <mach/clk.h> | 41 | #include <mach/clk.h> |
42 | #include <mach/iomap.h> | ||
43 | 42 | ||
44 | #include "nvec.h" | 43 | #include "nvec.h" |
45 | 44 | ||
diff --git a/drivers/usb/host/ehci-tegra.c b/drivers/usb/host/ehci-tegra.c index 6223d1757848..2de089001ae9 100644 --- a/drivers/usb/host/ehci-tegra.c +++ b/drivers/usb/host/ehci-tegra.c | |||
@@ -28,7 +28,10 @@ | |||
28 | #include <linux/pm_runtime.h> | 28 | #include <linux/pm_runtime.h> |
29 | 29 | ||
30 | #include <linux/usb/tegra_usb_phy.h> | 30 | #include <linux/usb/tegra_usb_phy.h> |
31 | #include <mach/iomap.h> | 31 | |
32 | #define TEGRA_USB_BASE 0xC5000000 | ||
33 | #define TEGRA_USB2_BASE 0xC5004000 | ||
34 | #define TEGRA_USB3_BASE 0xC5008000 | ||
32 | 35 | ||
33 | #define TEGRA_USB_DMA_ALIGN 32 | 36 | #define TEGRA_USB_DMA_ALIGN 32 |
34 | 37 | ||
diff --git a/drivers/usb/phy/tegra_usb_phy.c b/drivers/usb/phy/tegra_usb_phy.c index 987116f9efcd..9d13c81754e0 100644 --- a/drivers/usb/phy/tegra_usb_phy.c +++ b/drivers/usb/phy/tegra_usb_phy.c | |||
@@ -29,7 +29,9 @@ | |||
29 | #include <linux/usb/ulpi.h> | 29 | #include <linux/usb/ulpi.h> |
30 | #include <asm/mach-types.h> | 30 | #include <asm/mach-types.h> |
31 | #include <linux/usb/tegra_usb_phy.h> | 31 | #include <linux/usb/tegra_usb_phy.h> |
32 | #include <mach/iomap.h> | 32 | |
33 | #define TEGRA_USB_BASE 0xC5000000 | ||
34 | #define TEGRA_USB_SIZE SZ_16K | ||
33 | 35 | ||
34 | #define ULPI_VIEWPORT 0x170 | 36 | #define ULPI_VIEWPORT 0x170 |
35 | 37 | ||
diff --git a/arch/arm/mach-tegra/include/mach/tegra-ahb.h b/include/linux/tegra-ahb.h index e0f8c84b1d8c..f1cd075ceee1 100644 --- a/arch/arm/mach-tegra/include/mach/tegra-ahb.h +++ b/include/linux/tegra-ahb.h | |||
@@ -11,9 +11,9 @@ | |||
11 | * more details. | 11 | * more details. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #ifndef __MACH_TEGRA_AHB_H__ | 14 | #ifndef __LINUX_AHB_H__ |
15 | #define __MACH_TEGRA_AHB_H__ | 15 | #define __LINUX_AHB_H__ |
16 | 16 | ||
17 | extern int tegra_ahb_enable_smmu(struct device_node *ahb); | 17 | extern int tegra_ahb_enable_smmu(struct device_node *ahb); |
18 | 18 | ||
19 | #endif /* __MACH_TEGRA_AHB_H__ */ | 19 | #endif /* __LINUX_AHB_H__ */ |
diff --git a/sound/soc/tegra/tegra30_ahub.c b/sound/soc/tegra/tegra30_ahub.c index bf5610122c76..64b67a309196 100644 --- a/sound/soc/tegra/tegra30_ahub.c +++ b/sound/soc/tegra/tegra30_ahub.c | |||
@@ -26,7 +26,6 @@ | |||
26 | #include <linux/regmap.h> | 26 | #include <linux/regmap.h> |
27 | #include <linux/slab.h> | 27 | #include <linux/slab.h> |
28 | #include <mach/clk.h> | 28 | #include <mach/clk.h> |
29 | #include <mach/dma.h> | ||
30 | #include <sound/soc.h> | 29 | #include <sound/soc.h> |
31 | #include "tegra30_ahub.h" | 30 | #include "tegra30_ahub.h" |
32 | 31 | ||
diff --git a/sound/soc/tegra/tegra_pcm.h b/sound/soc/tegra/tegra_pcm.h index b40279b9f413..bc8b46af928e 100644 --- a/sound/soc/tegra/tegra_pcm.h +++ b/sound/soc/tegra/tegra_pcm.h | |||
@@ -31,8 +31,6 @@ | |||
31 | #ifndef __TEGRA_PCM_H__ | 31 | #ifndef __TEGRA_PCM_H__ |
32 | #define __TEGRA_PCM_H__ | 32 | #define __TEGRA_PCM_H__ |
33 | 33 | ||
34 | #include <mach/dma.h> | ||
35 | |||
36 | struct tegra_pcm_dma_params { | 34 | struct tegra_pcm_dma_params { |
37 | unsigned long addr; | 35 | unsigned long addr; |
38 | unsigned long wrap; | 36 | unsigned long wrap; |