diff options
| author | Mattias Nilsson <mattias.i.nilsson@stericsson.com> | 2011-08-12 04:28:10 -0400 |
|---|---|---|
| committer | Samuel Ortiz <sameo@linux.intel.com> | 2011-10-24 08:09:18 -0400 |
| commit | 73180f85f4ffbb66843f8248811b2ade29b22df2 (patch) | |
| tree | 26b48bd3369e2f38d741bae92ceef25e8da35948 /drivers/mfd | |
| parent | fea799e3d3ab84ac675de7e48a13a79fb76b6e63 (diff) | |
mfd: Move to the new db500 PRCMU API
Now that we have a shared API between the DB8500 and DB5500
PRCMU's, switch to using this neutral API instead. We delete the
parts of db8500-prcmu.h that is now PRCMU-neutral, and calls will
be diverted to respective driver. Common registers are in
dbx500-prcmu-regs.h and common accessors and defines in
<linux/mfd/dbx500-prcmu.h> This way we get a a lot more
abstraction and code reuse.
Signed-off-by: Mattias Nilsson <mattias.i.nilsson@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'drivers/mfd')
| -rw-r--r-- | drivers/mfd/db5500-prcmu-regs.h | 115 | ||||
| -rw-r--r-- | drivers/mfd/db5500-prcmu.c | 22 | ||||
| -rw-r--r-- | drivers/mfd/db8500-prcmu.c | 46 | ||||
| -rw-r--r-- | drivers/mfd/dbx500-prcmu-regs.h (renamed from drivers/mfd/db8500-prcmu-regs.h) | 0 |
4 files changed, 34 insertions, 149 deletions
diff --git a/drivers/mfd/db5500-prcmu-regs.h b/drivers/mfd/db5500-prcmu-regs.h deleted file mode 100644 index 9a8e9e4ddd33..000000000000 --- a/drivers/mfd/db5500-prcmu-regs.h +++ /dev/null | |||
| @@ -1,115 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) STMicroelectronics 2009 | ||
| 3 | * Copyright (C) ST-Ericsson SA 2010 | ||
| 4 | * | ||
| 5 | * Author: Kumar Sanghvi <kumar.sanghvi@stericsson.com> | ||
| 6 | * Author: Sundar Iyer <sundar.iyer@stericsson.com> | ||
| 7 | * | ||
| 8 | * License Terms: GNU General Public License v2 | ||
| 9 | * | ||
| 10 | * PRCM Unit registers | ||
| 11 | */ | ||
| 12 | |||
| 13 | #ifndef __MACH_PRCMU_REGS_H | ||
| 14 | #define __MACH_PRCMU_REGS_H | ||
| 15 | |||
| 16 | #include <mach/hardware.h> | ||
| 17 | |||
| 18 | #define PRCM_ARM_PLLDIVPS (_PRCMU_BASE + 0x118) | ||
| 19 | #define PRCM_ARM_PLLDIVPS_ARM_BRM_RATE 0x3f | ||
| 20 | #define PRCM_ARM_PLLDIVPS_MAX_MASK 0xf | ||
| 21 | |||
| 22 | #define PRCM_PLLARM_LOCKP (_PRCMU_BASE + 0x0a8) | ||
| 23 | #define PRCM_PLLARM_LOCKP_PRCM_PLLARM_LOCKP3 0x2 | ||
| 24 | |||
| 25 | #define PRCM_ARM_CHGCLKREQ (_PRCMU_BASE + 0x114) | ||
| 26 | #define PRCM_ARM_CHGCLKREQ_PRCM_ARM_CHGCLKREQ 0x1 | ||
| 27 | |||
| 28 | #define PRCM_PLLARM_ENABLE (_PRCMU_BASE + 0x98) | ||
| 29 | #define PRCM_PLLARM_ENABLE_PRCM_PLLARM_ENABLE 0x1 | ||
| 30 | #define PRCM_PLLARM_ENABLE_PRCM_PLLARM_COUNTON 0x100 | ||
| 31 | |||
| 32 | #define PRCM_ARMCLKFIX_MGT (_PRCMU_BASE + 0x0) | ||
| 33 | #define PRCM_A9_RESETN_CLR (_PRCMU_BASE + 0x1f4) | ||
| 34 | #define PRCM_A9_RESETN_SET (_PRCMU_BASE + 0x1f0) | ||
| 35 | #define PRCM_ARM_LS_CLAMP (_PRCMU_BASE + 0x30c) | ||
| 36 | #define PRCM_SRAM_A9 (_PRCMU_BASE + 0x308) | ||
| 37 | |||
| 38 | /* ARM WFI Standby signal register */ | ||
| 39 | #define PRCM_ARM_WFI_STANDBY (_PRCMU_BASE + 0x130) | ||
| 40 | #define PRCM_IOCR (_PRCMU_BASE + 0x310) | ||
| 41 | #define PRCM_IOCR_IOFORCE 0x1 | ||
| 42 | |||
| 43 | /* CPU mailbox registers */ | ||
| 44 | #define PRCM_MBOX_CPU_VAL (_PRCMU_BASE + 0x0fc) | ||
| 45 | #define PRCM_MBOX_CPU_SET (_PRCMU_BASE + 0x100) | ||
| 46 | #define PRCM_MBOX_CPU_CLR (_PRCMU_BASE + 0x104) | ||
| 47 | |||
| 48 | /* Dual A9 core interrupt management unit registers */ | ||
| 49 | #define PRCM_A9_MASK_REQ (_PRCMU_BASE + 0x328) | ||
| 50 | #define PRCM_A9_MASK_REQ_PRCM_A9_MASK_REQ 0x1 | ||
| 51 | |||
| 52 | #define PRCM_A9_MASK_ACK (_PRCMU_BASE + 0x32c) | ||
| 53 | #define PRCM_ARMITMSK31TO0 (_PRCMU_BASE + 0x11c) | ||
| 54 | #define PRCM_ARMITMSK63TO32 (_PRCMU_BASE + 0x120) | ||
| 55 | #define PRCM_ARMITMSK95TO64 (_PRCMU_BASE + 0x124) | ||
| 56 | #define PRCM_ARMITMSK127TO96 (_PRCMU_BASE + 0x128) | ||
| 57 | #define PRCM_POWER_STATE_VAL (_PRCMU_BASE + 0x25C) | ||
| 58 | #define PRCM_ARMITVAL31TO0 (_PRCMU_BASE + 0x260) | ||
| 59 | #define PRCM_ARMITVAL63TO32 (_PRCMU_BASE + 0x264) | ||
| 60 | #define PRCM_ARMITVAL95TO64 (_PRCMU_BASE + 0x268) | ||
| 61 | #define PRCM_ARMITVAL127TO96 (_PRCMU_BASE + 0x26C) | ||
| 62 | |||
| 63 | #define PRCM_HOSTACCESS_REQ (_PRCMU_BASE + 0x334) | ||
| 64 | #define ARM_WAKEUP_MODEM 0x1 | ||
| 65 | |||
| 66 | #define PRCM_ARM_IT1_CLEAR (_PRCMU_BASE + 0x48C) | ||
| 67 | #define PRCM_ARM_IT1_VAL (_PRCMU_BASE + 0x494) | ||
| 68 | #define PRCM_HOLD_EVT (_PRCMU_BASE + 0x174) | ||
| 69 | |||
| 70 | #define PRCM_ITSTATUS0 (_PRCMU_BASE + 0x148) | ||
| 71 | #define PRCM_ITSTATUS1 (_PRCMU_BASE + 0x150) | ||
| 72 | #define PRCM_ITSTATUS2 (_PRCMU_BASE + 0x158) | ||
| 73 | #define PRCM_ITSTATUS3 (_PRCMU_BASE + 0x160) | ||
| 74 | #define PRCM_ITSTATUS4 (_PRCMU_BASE + 0x168) | ||
| 75 | #define PRCM_ITSTATUS5 (_PRCMU_BASE + 0x484) | ||
| 76 | #define PRCM_ITCLEAR5 (_PRCMU_BASE + 0x488) | ||
| 77 | #define PRCM_ARMIT_MASKXP70_IT (_PRCMU_BASE + 0x1018) | ||
| 78 | |||
| 79 | /* System reset register */ | ||
| 80 | #define PRCM_APE_SOFTRST (_PRCMU_BASE + 0x228) | ||
| 81 | |||
| 82 | /* Level shifter and clamp control registers */ | ||
| 83 | #define PRCM_MMIP_LS_CLAMP_SET (_PRCMU_BASE + 0x420) | ||
| 84 | #define PRCM_MMIP_LS_CLAMP_CLR (_PRCMU_BASE + 0x424) | ||
| 85 | |||
| 86 | /* PRCMU clock/PLL/reset registers */ | ||
| 87 | #define PRCM_PLLDSI_FREQ (_PRCMU_BASE + 0x500) | ||
| 88 | #define PRCM_PLLDSI_ENABLE (_PRCMU_BASE + 0x504) | ||
| 89 | #define PRCM_PLLDSI_LOCKP (_PRCMU_BASE + 0x508) | ||
| 90 | #define PRCM_LCDCLK_MGT (_PRCMU_BASE + 0x044) | ||
| 91 | #define PRCM_MCDECLK_MGT (_PRCMU_BASE + 0x064) | ||
| 92 | #define PRCM_HDMICLK_MGT (_PRCMU_BASE + 0x058) | ||
| 93 | #define PRCM_TVCLK_MGT (_PRCMU_BASE + 0x07c) | ||
| 94 | #define PRCM_DSI_PLLOUT_SEL (_PRCMU_BASE + 0x530) | ||
| 95 | #define PRCM_DSITVCLK_DIV (_PRCMU_BASE + 0x52C) | ||
| 96 | #define PRCM_PLLDSI_LOCKP (_PRCMU_BASE + 0x508) | ||
| 97 | #define PRCM_APE_RESETN_SET (_PRCMU_BASE + 0x1E4) | ||
| 98 | #define PRCM_APE_RESETN_CLR (_PRCMU_BASE + 0x1E8) | ||
| 99 | #define PRCM_CLKOCR (_PRCMU_BASE + 0x1CC) | ||
| 100 | |||
| 101 | /* ePOD and memory power signal control registers */ | ||
| 102 | #define PRCM_EPOD_C_SET (_PRCMU_BASE + 0x410) | ||
| 103 | #define PRCM_SRAM_LS_SLEEP (_PRCMU_BASE + 0x304) | ||
| 104 | |||
| 105 | /* Debug power control unit registers */ | ||
| 106 | #define PRCM_POWER_STATE_SET (_PRCMU_BASE + 0x254) | ||
| 107 | |||
| 108 | /* Miscellaneous unit registers */ | ||
| 109 | #define PRCM_DSI_SW_RESET (_PRCMU_BASE + 0x324) | ||
| 110 | #define PRCM_GPIOCR (_PRCMU_BASE + 0x138) | ||
| 111 | #define PRCM_GPIOCR_DBG_STM_MOD_CMD1 0x800 | ||
| 112 | #define PRCM_GPIOCR_DBG_UARTMOD_CMD0 0x1 | ||
| 113 | |||
| 114 | |||
| 115 | #endif /* __MACH_PRCMU__REGS_H */ | ||
diff --git a/drivers/mfd/db5500-prcmu.c b/drivers/mfd/db5500-prcmu.c index 9dbb3cab4a6f..dc215878835a 100644 --- a/drivers/mfd/db5500-prcmu.c +++ b/drivers/mfd/db5500-prcmu.c | |||
| @@ -20,11 +20,11 @@ | |||
| 20 | #include <linux/jiffies.h> | 20 | #include <linux/jiffies.h> |
| 21 | #include <linux/bitops.h> | 21 | #include <linux/bitops.h> |
| 22 | #include <linux/interrupt.h> | 22 | #include <linux/interrupt.h> |
| 23 | #include <linux/mfd/db5500-prcmu.h> | 23 | #include <linux/mfd/dbx500-prcmu.h> |
| 24 | #include <mach/hardware.h> | 24 | #include <mach/hardware.h> |
| 25 | #include <mach/irqs.h> | 25 | #include <mach/irqs.h> |
| 26 | #include <mach/db5500-regs.h> | 26 | #include <mach/db5500-regs.h> |
| 27 | #include "db5500-prcmu-regs.h" | 27 | #include "dbx500-prcmu-regs.h" |
| 28 | 28 | ||
| 29 | #define _PRCM_MB_HEADER (tcdm_base + 0xFE8) | 29 | #define _PRCM_MB_HEADER (tcdm_base + 0xFE8) |
| 30 | #define PRCM_REQ_MB0_HEADER (_PRCM_MB_HEADER + 0x0) | 30 | #define PRCM_REQ_MB0_HEADER (_PRCM_MB_HEADER + 0x0) |
| @@ -315,31 +315,31 @@ static bool read_mailbox_0(void) | |||
| 315 | r = false; | 315 | r = false; |
| 316 | break; | 316 | break; |
| 317 | } | 317 | } |
| 318 | writel(MBOX_BIT(0), PRCM_ARM_IT1_CLEAR); | 318 | writel(MBOX_BIT(0), PRCM_ARM_IT1_CLR); |
| 319 | return r; | 319 | return r; |
| 320 | } | 320 | } |
| 321 | 321 | ||
| 322 | static bool read_mailbox_1(void) | 322 | static bool read_mailbox_1(void) |
| 323 | { | 323 | { |
| 324 | writel(MBOX_BIT(1), PRCM_ARM_IT1_CLEAR); | 324 | writel(MBOX_BIT(1), PRCM_ARM_IT1_CLR); |
| 325 | return false; | 325 | return false; |
| 326 | } | 326 | } |
| 327 | 327 | ||
| 328 | static bool read_mailbox_2(void) | 328 | static bool read_mailbox_2(void) |
| 329 | { | 329 | { |
| 330 | writel(MBOX_BIT(2), PRCM_ARM_IT1_CLEAR); | 330 | writel(MBOX_BIT(2), PRCM_ARM_IT1_CLR); |
| 331 | return false; | 331 | return false; |
| 332 | } | 332 | } |
| 333 | 333 | ||
| 334 | static bool read_mailbox_3(void) | 334 | static bool read_mailbox_3(void) |
| 335 | { | 335 | { |
| 336 | writel(MBOX_BIT(3), PRCM_ARM_IT1_CLEAR); | 336 | writel(MBOX_BIT(3), PRCM_ARM_IT1_CLR); |
| 337 | return false; | 337 | return false; |
| 338 | } | 338 | } |
| 339 | 339 | ||
| 340 | static bool read_mailbox_4(void) | 340 | static bool read_mailbox_4(void) |
| 341 | { | 341 | { |
| 342 | writel(MBOX_BIT(4), PRCM_ARM_IT1_CLEAR); | 342 | writel(MBOX_BIT(4), PRCM_ARM_IT1_CLR); |
| 343 | return false; | 343 | return false; |
| 344 | } | 344 | } |
| 345 | 345 | ||
| @@ -360,19 +360,19 @@ static bool read_mailbox_5(void) | |||
| 360 | print_unknown_header_warning(5, header); | 360 | print_unknown_header_warning(5, header); |
| 361 | break; | 361 | break; |
| 362 | } | 362 | } |
| 363 | writel(MBOX_BIT(5), PRCM_ARM_IT1_CLEAR); | 363 | writel(MBOX_BIT(5), PRCM_ARM_IT1_CLR); |
| 364 | return false; | 364 | return false; |
| 365 | } | 365 | } |
| 366 | 366 | ||
| 367 | static bool read_mailbox_6(void) | 367 | static bool read_mailbox_6(void) |
| 368 | { | 368 | { |
| 369 | writel(MBOX_BIT(6), PRCM_ARM_IT1_CLEAR); | 369 | writel(MBOX_BIT(6), PRCM_ARM_IT1_CLR); |
| 370 | return false; | 370 | return false; |
| 371 | } | 371 | } |
| 372 | 372 | ||
| 373 | static bool read_mailbox_7(void) | 373 | static bool read_mailbox_7(void) |
| 374 | { | 374 | { |
| 375 | writel(MBOX_BIT(7), PRCM_ARM_IT1_CLEAR); | 375 | writel(MBOX_BIT(7), PRCM_ARM_IT1_CLR); |
| 376 | return false; | 376 | return false; |
| 377 | } | 377 | } |
| 378 | 378 | ||
| @@ -434,7 +434,7 @@ int __init db5500_prcmu_init(void) | |||
| 434 | return -ENODEV; | 434 | return -ENODEV; |
| 435 | 435 | ||
| 436 | /* Clean up the mailbox interrupts after pre-kernel code. */ | 436 | /* Clean up the mailbox interrupts after pre-kernel code. */ |
| 437 | writel(ALL_MBOX_BITS, PRCM_ARM_IT1_CLEAR); | 437 | writel(ALL_MBOX_BITS, PRCM_ARM_IT1_CLR); |
| 438 | 438 | ||
| 439 | r = request_threaded_irq(IRQ_DB5500_PRCMU1, prcmu_irq_handler, | 439 | r = request_threaded_irq(IRQ_DB5500_PRCMU1, prcmu_irq_handler, |
| 440 | prcmu_irq_thread_fn, 0, "prcmu", NULL); | 440 | prcmu_irq_thread_fn, 0, "prcmu", NULL); |
diff --git a/drivers/mfd/db8500-prcmu.c b/drivers/mfd/db8500-prcmu.c index e2c4a26a9eb1..cea814509a6f 100644 --- a/drivers/mfd/db8500-prcmu.c +++ b/drivers/mfd/db8500-prcmu.c | |||
| @@ -27,14 +27,14 @@ | |||
| 27 | #include <linux/platform_device.h> | 27 | #include <linux/platform_device.h> |
| 28 | #include <linux/uaccess.h> | 28 | #include <linux/uaccess.h> |
| 29 | #include <linux/mfd/core.h> | 29 | #include <linux/mfd/core.h> |
| 30 | #include <linux/mfd/db8500-prcmu.h> | 30 | #include <linux/mfd/dbx500-prcmu.h> |
| 31 | #include <linux/regulator/db8500-prcmu.h> | 31 | #include <linux/regulator/db8500-prcmu.h> |
| 32 | #include <linux/regulator/machine.h> | 32 | #include <linux/regulator/machine.h> |
| 33 | #include <mach/hardware.h> | 33 | #include <mach/hardware.h> |
| 34 | #include <mach/irqs.h> | 34 | #include <mach/irqs.h> |
| 35 | #include <mach/db8500-regs.h> | 35 | #include <mach/db8500-regs.h> |
| 36 | #include <mach/id.h> | 36 | #include <mach/id.h> |
| 37 | #include "db8500-prcmu-regs.h" | 37 | #include "dbx500-prcmu-regs.h" |
| 38 | 38 | ||
| 39 | /* Offset for the firmware version within the TCPM */ | 39 | /* Offset for the firmware version within the TCPM */ |
| 40 | #define PRCMU_FW_VERSION_OFFSET 0xA4 | 40 | #define PRCMU_FW_VERSION_OFFSET 0xA4 |
| @@ -507,7 +507,7 @@ static struct { | |||
| 507 | } prcmu_version; | 507 | } prcmu_version; |
| 508 | 508 | ||
| 509 | 509 | ||
| 510 | int prcmu_enable_dsipll(void) | 510 | int db8500_prcmu_enable_dsipll(void) |
| 511 | { | 511 | { |
| 512 | int i; | 512 | int i; |
| 513 | unsigned int plldsifreq; | 513 | unsigned int plldsifreq; |
| @@ -542,7 +542,7 @@ int prcmu_enable_dsipll(void) | |||
| 542 | return 0; | 542 | return 0; |
| 543 | } | 543 | } |
| 544 | 544 | ||
| 545 | int prcmu_disable_dsipll(void) | 545 | int db8500_prcmu_disable_dsipll(void) |
| 546 | { | 546 | { |
| 547 | /* Disable dsi pll */ | 547 | /* Disable dsi pll */ |
| 548 | writel(PRCMU_DISABLE_PLLDSI, PRCM_PLLDSI_ENABLE); | 548 | writel(PRCMU_DISABLE_PLLDSI, PRCM_PLLDSI_ENABLE); |
| @@ -551,7 +551,7 @@ int prcmu_disable_dsipll(void) | |||
| 551 | return 0; | 551 | return 0; |
| 552 | } | 552 | } |
| 553 | 553 | ||
| 554 | int prcmu_set_display_clocks(void) | 554 | int db8500_prcmu_set_display_clocks(void) |
| 555 | { | 555 | { |
| 556 | unsigned long flags; | 556 | unsigned long flags; |
| 557 | unsigned int dsiclk; | 557 | unsigned int dsiclk; |
| @@ -734,7 +734,7 @@ unlock_and_return: | |||
| 734 | return r; | 734 | return r; |
| 735 | } | 735 | } |
| 736 | 736 | ||
| 737 | int prcmu_set_power_state(u8 state, bool keep_ulp_clk, bool keep_ap_pll) | 737 | int db8500_prcmu_set_power_state(u8 state, bool keep_ulp_clk, bool keep_ap_pll) |
| 738 | { | 738 | { |
| 739 | unsigned long flags; | 739 | unsigned long flags; |
| 740 | 740 | ||
| @@ -791,7 +791,7 @@ static void config_wakeups(void) | |||
| 791 | last_abb_events = abb_events; | 791 | last_abb_events = abb_events; |
| 792 | } | 792 | } |
| 793 | 793 | ||
| 794 | void prcmu_enable_wakeups(u32 wakeups) | 794 | void db8500_prcmu_enable_wakeups(u32 wakeups) |
| 795 | { | 795 | { |
| 796 | unsigned long flags; | 796 | unsigned long flags; |
| 797 | u32 bits; | 797 | u32 bits; |
| @@ -812,7 +812,7 @@ void prcmu_enable_wakeups(u32 wakeups) | |||
| 812 | spin_unlock_irqrestore(&mb0_transfer.lock, flags); | 812 | spin_unlock_irqrestore(&mb0_transfer.lock, flags); |
| 813 | } | 813 | } |
| 814 | 814 | ||
| 815 | void prcmu_config_abb_event_readout(u32 abb_events) | 815 | void db8500_prcmu_config_abb_event_readout(u32 abb_events) |
| 816 | { | 816 | { |
| 817 | unsigned long flags; | 817 | unsigned long flags; |
| 818 | 818 | ||
| @@ -824,7 +824,7 @@ void prcmu_config_abb_event_readout(u32 abb_events) | |||
| 824 | spin_unlock_irqrestore(&mb0_transfer.lock, flags); | 824 | spin_unlock_irqrestore(&mb0_transfer.lock, flags); |
| 825 | } | 825 | } |
| 826 | 826 | ||
| 827 | void prcmu_get_abb_event_buffer(void __iomem **buf) | 827 | void db8500_prcmu_get_abb_event_buffer(void __iomem **buf) |
| 828 | { | 828 | { |
| 829 | if (readb(tcdm_base + PRCM_ACK_MB0_READ_POINTER) & 1) | 829 | if (readb(tcdm_base + PRCM_ACK_MB0_READ_POINTER) & 1) |
| 830 | *buf = (tcdm_base + PRCM_ACK_MB0_WAKEUP_1_4500); | 830 | *buf = (tcdm_base + PRCM_ACK_MB0_WAKEUP_1_4500); |
| @@ -833,13 +833,13 @@ void prcmu_get_abb_event_buffer(void __iomem **buf) | |||
| 833 | } | 833 | } |
| 834 | 834 | ||
| 835 | /** | 835 | /** |
| 836 | * prcmu_set_arm_opp - set the appropriate ARM OPP | 836 | * db8500_prcmu_set_arm_opp - set the appropriate ARM OPP |
| 837 | * @opp: The new ARM operating point to which transition is to be made | 837 | * @opp: The new ARM operating point to which transition is to be made |
| 838 | * Returns: 0 on success, non-zero on failure | 838 | * Returns: 0 on success, non-zero on failure |
| 839 | * | 839 | * |
| 840 | * This function sets the the operating point of the ARM. | 840 | * This function sets the the operating point of the ARM. |
| 841 | */ | 841 | */ |
| 842 | int prcmu_set_arm_opp(u8 opp) | 842 | int db8500_prcmu_set_arm_opp(u8 opp) |
| 843 | { | 843 | { |
| 844 | int r; | 844 | int r; |
| 845 | 845 | ||
| @@ -870,11 +870,11 @@ int prcmu_set_arm_opp(u8 opp) | |||
| 870 | } | 870 | } |
| 871 | 871 | ||
| 872 | /** | 872 | /** |
| 873 | * prcmu_get_arm_opp - get the current ARM OPP | 873 | * db8500_prcmu_get_arm_opp - get the current ARM OPP |
| 874 | * | 874 | * |
| 875 | * Returns: the current ARM OPP | 875 | * Returns: the current ARM OPP |
| 876 | */ | 876 | */ |
| 877 | int prcmu_get_arm_opp(void) | 877 | int db8500_prcmu_get_arm_opp(void) |
| 878 | { | 878 | { |
| 879 | return readb(tcdm_base + PRCM_ACK_MB1_CURRENT_ARM_OPP); | 879 | return readb(tcdm_base + PRCM_ACK_MB1_CURRENT_ARM_OPP); |
| 880 | } | 880 | } |
| @@ -1024,14 +1024,14 @@ int prcmu_release_usb_wakeup_state(void) | |||
| 1024 | } | 1024 | } |
| 1025 | 1025 | ||
| 1026 | /** | 1026 | /** |
| 1027 | * prcmu_set_epod - set the state of a EPOD (power domain) | 1027 | * db8500_prcmu_set_epod - set the state of a EPOD (power domain) |
| 1028 | * @epod_id: The EPOD to set | 1028 | * @epod_id: The EPOD to set |
| 1029 | * @epod_state: The new EPOD state | 1029 | * @epod_state: The new EPOD state |
| 1030 | * | 1030 | * |
| 1031 | * This function sets the state of a EPOD (power domain). It may not be called | 1031 | * This function sets the state of a EPOD (power domain). It may not be called |
| 1032 | * from interrupt context. | 1032 | * from interrupt context. |
| 1033 | */ | 1033 | */ |
| 1034 | int prcmu_set_epod(u16 epod_id, u8 epod_state) | 1034 | int db8500_prcmu_set_epod(u16 epod_id, u8 epod_state) |
| 1035 | { | 1035 | { |
| 1036 | int r = 0; | 1036 | int r = 0; |
| 1037 | bool ram_retention = false; | 1037 | bool ram_retention = false; |
| @@ -1221,14 +1221,14 @@ static int request_reg_clock(u8 clock, bool enable) | |||
| 1221 | } | 1221 | } |
| 1222 | 1222 | ||
| 1223 | /** | 1223 | /** |
| 1224 | * prcmu_request_clock() - Request for a clock to be enabled or disabled. | 1224 | * db8500_prcmu_request_clock() - Request for a clock to be enabled or disabled. |
| 1225 | * @clock: The clock for which the request is made. | 1225 | * @clock: The clock for which the request is made. |
| 1226 | * @enable: Whether the clock should be enabled (true) or disabled (false). | 1226 | * @enable: Whether the clock should be enabled (true) or disabled (false). |
| 1227 | * | 1227 | * |
| 1228 | * This function should only be used by the clock implementation. | 1228 | * This function should only be used by the clock implementation. |
| 1229 | * Do not use it from any other place! | 1229 | * Do not use it from any other place! |
| 1230 | */ | 1230 | */ |
| 1231 | int prcmu_request_clock(u8 clock, bool enable) | 1231 | int db8500_prcmu_request_clock(u8 clock, bool enable) |
| 1232 | { | 1232 | { |
| 1233 | if (clock < PRCMU_NUM_REG_CLOCKS) | 1233 | if (clock < PRCMU_NUM_REG_CLOCKS) |
| 1234 | return request_reg_clock(clock, enable); | 1234 | return request_reg_clock(clock, enable); |
| @@ -1240,7 +1240,7 @@ int prcmu_request_clock(u8 clock, bool enable) | |||
| 1240 | return -EINVAL; | 1240 | return -EINVAL; |
| 1241 | } | 1241 | } |
| 1242 | 1242 | ||
| 1243 | int prcmu_config_esram0_deep_sleep(u8 state) | 1243 | int db8500_prcmu_config_esram0_deep_sleep(u8 state) |
| 1244 | { | 1244 | { |
| 1245 | if ((state > ESRAM0_DEEP_SLEEP_STATE_RET) || | 1245 | if ((state > ESRAM0_DEEP_SLEEP_STATE_RET) || |
| 1246 | (state < ESRAM0_DEEP_SLEEP_STATE_OFF)) | 1246 | (state < ESRAM0_DEEP_SLEEP_STATE_OFF)) |
| @@ -1515,18 +1515,18 @@ unlock_and_return: | |||
| 1515 | mutex_unlock(&mb0_transfer.ac_wake_lock); | 1515 | mutex_unlock(&mb0_transfer.ac_wake_lock); |
| 1516 | } | 1516 | } |
| 1517 | 1517 | ||
| 1518 | bool prcmu_is_ac_wake_requested(void) | 1518 | bool db8500_prcmu_is_ac_wake_requested(void) |
| 1519 | { | 1519 | { |
| 1520 | return (atomic_read(&ac_wake_req_state) != 0); | 1520 | return (atomic_read(&ac_wake_req_state) != 0); |
| 1521 | } | 1521 | } |
| 1522 | 1522 | ||
| 1523 | /** | 1523 | /** |
| 1524 | * prcmu_system_reset - System reset | 1524 | * db8500_prcmu_system_reset - System reset |
| 1525 | * | 1525 | * |
| 1526 | * Saves the reset reason code and then sets the APE_SOFRST register which | 1526 | * Saves the reset reason code and then sets the APE_SOFTRST register which |
| 1527 | * fires interrupt to fw | 1527 | * fires interrupt to fw |
| 1528 | */ | 1528 | */ |
| 1529 | void prcmu_system_reset(u16 reset_code) | 1529 | void db8500_prcmu_system_reset(u16 reset_code) |
| 1530 | { | 1530 | { |
| 1531 | writew(reset_code, (tcdm_base + PRCM_SW_RST_REASON)); | 1531 | writew(reset_code, (tcdm_base + PRCM_SW_RST_REASON)); |
| 1532 | writel(1, PRCM_APE_SOFTRST); | 1532 | writel(1, PRCM_APE_SOFTRST); |
| @@ -1782,7 +1782,7 @@ static struct irq_chip prcmu_irq_chip = { | |||
| 1782 | .irq_unmask = prcmu_irq_unmask, | 1782 | .irq_unmask = prcmu_irq_unmask, |
| 1783 | }; | 1783 | }; |
| 1784 | 1784 | ||
| 1785 | void __init prcmu_early_init(void) | 1785 | void __init db8500_prcmu_early_init(void) |
| 1786 | { | 1786 | { |
| 1787 | unsigned int i; | 1787 | unsigned int i; |
| 1788 | 1788 | ||
diff --git a/drivers/mfd/db8500-prcmu-regs.h b/drivers/mfd/dbx500-prcmu-regs.h index ec22e9f15d32..ec22e9f15d32 100644 --- a/drivers/mfd/db8500-prcmu-regs.h +++ b/drivers/mfd/dbx500-prcmu-regs.h | |||
