diff options
Diffstat (limited to 'arch/arm/mach-omap2/pm-debug.c')
| -rw-r--r-- | arch/arm/mach-omap2/pm-debug.c | 40 |
1 files changed, 35 insertions, 5 deletions
diff --git a/arch/arm/mach-omap2/pm-debug.c b/arch/arm/mach-omap2/pm-debug.c index 2fc4d6abbd0a..8baa30d2acfb 100644 --- a/arch/arm/mach-omap2/pm-debug.c +++ b/arch/arm/mach-omap2/pm-debug.c | |||
| @@ -26,10 +26,10 @@ | |||
| 26 | #include <linux/io.h> | 26 | #include <linux/io.h> |
| 27 | #include <linux/module.h> | 27 | #include <linux/module.h> |
| 28 | 28 | ||
| 29 | #include <mach/clock.h> | 29 | #include <plat/clock.h> |
| 30 | #include <mach/board.h> | 30 | #include <plat/board.h> |
| 31 | #include <mach/powerdomain.h> | 31 | #include <plat/powerdomain.h> |
| 32 | #include <mach/clockdomain.h> | 32 | #include <plat/clockdomain.h> |
| 33 | 33 | ||
| 34 | #include "prm.h" | 34 | #include "prm.h" |
| 35 | #include "cm.h" | 35 | #include "cm.h" |
| @@ -51,7 +51,8 @@ int omap2_pm_debug; | |||
| 51 | regs[reg_count++].val = __raw_readl(reg) | 51 | regs[reg_count++].val = __raw_readl(reg) |
| 52 | #define DUMP_INTC_REG(reg, off) \ | 52 | #define DUMP_INTC_REG(reg, off) \ |
| 53 | regs[reg_count].name = #reg; \ | 53 | regs[reg_count].name = #reg; \ |
| 54 | regs[reg_count++].val = __raw_readl(OMAP2_IO_ADDRESS(0x480fe000 + (off))) | 54 | regs[reg_count++].val = \ |
| 55 | __raw_readl(OMAP2_L4_IO_ADDRESS(0x480fe000 + (off))) | ||
| 55 | 56 | ||
| 56 | static int __init pm_dbg_init(void); | 57 | static int __init pm_dbg_init(void); |
| 57 | 58 | ||
| @@ -526,6 +527,29 @@ static int __init pwrdms_setup(struct powerdomain *pwrdm, void *dir) | |||
| 526 | return 0; | 527 | return 0; |
| 527 | } | 528 | } |
| 528 | 529 | ||
| 530 | static int option_get(void *data, u64 *val) | ||
| 531 | { | ||
| 532 | u32 *option = data; | ||
| 533 | |||
| 534 | *val = *option; | ||
| 535 | |||
| 536 | return 0; | ||
| 537 | } | ||
| 538 | |||
| 539 | static int option_set(void *data, u64 val) | ||
| 540 | { | ||
| 541 | u32 *option = data; | ||
| 542 | |||
| 543 | *option = val; | ||
| 544 | |||
| 545 | if (option == &enable_off_mode) | ||
| 546 | omap3_pm_off_mode_enable(val); | ||
| 547 | |||
| 548 | return 0; | ||
| 549 | } | ||
| 550 | |||
| 551 | DEFINE_SIMPLE_ATTRIBUTE(pm_dbg_option_fops, option_get, option_set, "%llu\n"); | ||
| 552 | |||
| 529 | static int __init pm_dbg_init(void) | 553 | static int __init pm_dbg_init(void) |
| 530 | { | 554 | { |
| 531 | int i; | 555 | int i; |
| @@ -568,6 +592,12 @@ static int __init pm_dbg_init(void) | |||
| 568 | 592 | ||
| 569 | } | 593 | } |
| 570 | 594 | ||
| 595 | (void) debugfs_create_file("enable_off_mode", S_IRUGO | S_IWUGO, d, | ||
| 596 | &enable_off_mode, &pm_dbg_option_fops); | ||
| 597 | (void) debugfs_create_file("sleep_while_idle", S_IRUGO | S_IWUGO, d, | ||
| 598 | &sleep_while_idle, &pm_dbg_option_fops); | ||
| 599 | (void) debugfs_create_file("wakeup_timer_seconds", S_IRUGO | S_IWUGO, d, | ||
| 600 | &wakeup_timer_seconds, &pm_dbg_option_fops); | ||
| 571 | pm_dbg_init_done = 1; | 601 | pm_dbg_init_done = 1; |
| 572 | 602 | ||
| 573 | return 0; | 603 | return 0; |
