aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd/db8500-prcmu.c
diff options
context:
space:
mode:
authorMattias Nilsson <mattias.i.nilsson@stericsson.com>2011-08-12 04:27:20 -0400
committerSamuel Ortiz <sameo@linux.intel.com>2011-10-24 08:09:17 -0400
commitc553b3ca12046884af1a72ffb6e9d841a026adb9 (patch)
tree20463ba565e7d3f2ffa7dcafa725c6524cf46026 /drivers/mfd/db8500-prcmu.c
parentc38d66ac924e84ea3606c408b117157415df07b3 (diff)
mfd: Refactor DB8500 PRCMU reg access
Instead of carrying around the __PRCMU_BASE in every read or write to the PRCMU registers, move it out to the register definition file and define registers along with their base offset so that the code gets easier to read. 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/db8500-prcmu.c')
-rw-r--r--drivers/mfd/db8500-prcmu.c159
1 files changed, 77 insertions, 82 deletions
diff --git a/drivers/mfd/db8500-prcmu.c b/drivers/mfd/db8500-prcmu.c
index 02a15d7cb3b0..b5bd245ca892 100644
--- a/drivers/mfd/db8500-prcmu.c
+++ b/drivers/mfd/db8500-prcmu.c
@@ -412,7 +412,7 @@ struct clk_mgt {
412 412
413static DEFINE_SPINLOCK(clk_mgt_lock); 413static DEFINE_SPINLOCK(clk_mgt_lock);
414 414
415#define CLK_MGT_ENTRY(_name)[PRCMU_##_name] = { (PRCM_##_name##_MGT), 0 } 415#define CLK_MGT_ENTRY(_name)[PRCMU_##_name] = { (PRCM_##_name##_MGT_OFF), 0 }
416struct clk_mgt clk_mgt[PRCMU_NUM_REG_CLOCKS] = { 416struct clk_mgt clk_mgt[PRCMU_NUM_REG_CLOCKS] = {
417 CLK_MGT_ENTRY(SGACLK), 417 CLK_MGT_ENTRY(SGACLK),
418 CLK_MGT_ENTRY(UARTCLK), 418 CLK_MGT_ENTRY(UARTCLK),
@@ -499,45 +499,41 @@ int prcmu_enable_dsipll(void)
499 unsigned int plldsifreq; 499 unsigned int plldsifreq;
500 500
501 /* Clear DSIPLL_RESETN */ 501 /* Clear DSIPLL_RESETN */
502 writel(PRCMU_RESET_DSIPLL, (_PRCMU_BASE + PRCM_APE_RESETN_CLR)); 502 writel(PRCMU_RESET_DSIPLL, PRCM_APE_RESETN_CLR);
503 /* Unclamp DSIPLL in/out */ 503 /* Unclamp DSIPLL in/out */
504 writel(PRCMU_UNCLAMP_DSIPLL, (_PRCMU_BASE + PRCM_MMIP_LS_CLAMP_CLR)); 504 writel(PRCMU_UNCLAMP_DSIPLL, PRCM_MMIP_LS_CLAMP_CLR);
505 505
506 if (prcmu_is_u8400()) 506 if (prcmu_is_u8400())
507 plldsifreq = PRCMU_PLLDSI_FREQ_SETTING_U8400; 507 plldsifreq = PRCMU_PLLDSI_FREQ_SETTING_U8400;
508 else 508 else
509 plldsifreq = PRCMU_PLLDSI_FREQ_SETTING; 509 plldsifreq = PRCMU_PLLDSI_FREQ_SETTING;
510 /* Set DSI PLL FREQ */ 510 /* Set DSI PLL FREQ */
511 writel(plldsifreq, (_PRCMU_BASE + PRCM_PLLDSI_FREQ)); 511 writel(plldsifreq, PRCM_PLLDSI_FREQ);
512 writel(PRCMU_DSI_PLLOUT_SEL_SETTING, 512 writel(PRCMU_DSI_PLLOUT_SEL_SETTING, PRCM_DSI_PLLOUT_SEL);
513 (_PRCMU_BASE + PRCM_DSI_PLLOUT_SEL));
514 /* Enable Escape clocks */ 513 /* Enable Escape clocks */
515 writel(PRCMU_ENABLE_ESCAPE_CLOCK_DIV, 514 writel(PRCMU_ENABLE_ESCAPE_CLOCK_DIV, PRCM_DSITVCLK_DIV);
516 (_PRCMU_BASE + PRCM_DSITVCLK_DIV));
517 515
518 /* Start DSI PLL */ 516 /* Start DSI PLL */
519 writel(PRCMU_ENABLE_PLLDSI, (_PRCMU_BASE + PRCM_PLLDSI_ENABLE)); 517 writel(PRCMU_ENABLE_PLLDSI, PRCM_PLLDSI_ENABLE);
520 /* Reset DSI PLL */ 518 /* Reset DSI PLL */
521 writel(PRCMU_DSI_RESET_SW, (_PRCMU_BASE + PRCM_DSI_SW_RESET)); 519 writel(PRCMU_DSI_RESET_SW, PRCM_DSI_SW_RESET);
522 for (i = 0; i < 10; i++) { 520 for (i = 0; i < 10; i++) {
523 if ((readl(_PRCMU_BASE + PRCM_PLLDSI_LOCKP) & 521 if ((readl(PRCM_PLLDSI_LOCKP) & PRCMU_PLLDSI_LOCKP_LOCKED)
524 PRCMU_PLLDSI_LOCKP_LOCKED)
525 == PRCMU_PLLDSI_LOCKP_LOCKED) 522 == PRCMU_PLLDSI_LOCKP_LOCKED)
526 break; 523 break;
527 udelay(100); 524 udelay(100);
528 } 525 }
529 /* Set DSIPLL_RESETN */ 526 /* Set DSIPLL_RESETN */
530 writel(PRCMU_RESET_DSIPLL, (_PRCMU_BASE + PRCM_APE_RESETN_SET)); 527 writel(PRCMU_RESET_DSIPLL, PRCM_APE_RESETN_SET);
531 return 0; 528 return 0;
532} 529}
533 530
534int prcmu_disable_dsipll(void) 531int prcmu_disable_dsipll(void)
535{ 532{
536 /* Disable dsi pll */ 533 /* Disable dsi pll */
537 writel(PRCMU_DISABLE_PLLDSI, (_PRCMU_BASE + PRCM_PLLDSI_ENABLE)); 534 writel(PRCMU_DISABLE_PLLDSI, PRCM_PLLDSI_ENABLE);
538 /* Disable escapeclock */ 535 /* Disable escapeclock */
539 writel(PRCMU_DISABLE_ESCAPE_CLOCK_DIV, 536 writel(PRCMU_DISABLE_ESCAPE_CLOCK_DIV, PRCM_DSITVCLK_DIV);
540 (_PRCMU_BASE + PRCM_DSITVCLK_DIV));
541 return 0; 537 return 0;
542} 538}
543 539
@@ -554,15 +550,15 @@ int prcmu_set_display_clocks(void)
554 spin_lock_irqsave(&clk_mgt_lock, flags); 550 spin_lock_irqsave(&clk_mgt_lock, flags);
555 551
556 /* Grab the HW semaphore. */ 552 /* Grab the HW semaphore. */
557 while ((readl(_PRCMU_BASE + PRCM_SEM) & PRCM_SEM_PRCM_SEM) != 0) 553 while ((readl(PRCM_SEM) & PRCM_SEM_PRCM_SEM) != 0)
558 cpu_relax(); 554 cpu_relax();
559 555
560 writel(dsiclk, (_PRCMU_BASE + PRCM_HDMICLK_MGT)); 556 writel(dsiclk, PRCM_HDMICLK_MGT);
561 writel(PRCMU_DSI_LP_CLOCK_SETTING, (_PRCMU_BASE + PRCM_TVCLK_MGT)); 557 writel(PRCMU_DSI_LP_CLOCK_SETTING, PRCM_TVCLK_MGT);
562 writel(PRCMU_DPI_CLOCK_SETTING, (_PRCMU_BASE + PRCM_LCDCLK_MGT)); 558 writel(PRCMU_DPI_CLOCK_SETTING, PRCM_LCDCLK_MGT);
563 559
564 /* Release the HW semaphore. */ 560 /* Release the HW semaphore. */
565 writel(0, (_PRCMU_BASE + PRCM_SEM)); 561 writel(0, PRCM_SEM);
566 562
567 spin_unlock_irqrestore(&clk_mgt_lock, flags); 563 spin_unlock_irqrestore(&clk_mgt_lock, flags);
568 564
@@ -578,8 +574,8 @@ void prcmu_enable_spi2(void)
578 unsigned long flags; 574 unsigned long flags;
579 575
580 spin_lock_irqsave(&gpiocr_lock, flags); 576 spin_lock_irqsave(&gpiocr_lock, flags);
581 reg = readl(_PRCMU_BASE + PRCM_GPIOCR); 577 reg = readl(PRCM_GPIOCR);
582 writel(reg | PRCM_GPIOCR_SPI2_SELECT, _PRCMU_BASE + PRCM_GPIOCR); 578 writel(reg | PRCM_GPIOCR_SPI2_SELECT, PRCM_GPIOCR);
583 spin_unlock_irqrestore(&gpiocr_lock, flags); 579 spin_unlock_irqrestore(&gpiocr_lock, flags);
584} 580}
585 581
@@ -592,8 +588,8 @@ void prcmu_disable_spi2(void)
592 unsigned long flags; 588 unsigned long flags;
593 589
594 spin_lock_irqsave(&gpiocr_lock, flags); 590 spin_lock_irqsave(&gpiocr_lock, flags);
595 reg = readl(_PRCMU_BASE + PRCM_GPIOCR); 591 reg = readl(PRCM_GPIOCR);
596 writel(reg & ~PRCM_GPIOCR_SPI2_SELECT, _PRCMU_BASE + PRCM_GPIOCR); 592 writel(reg & ~PRCM_GPIOCR_SPI2_SELECT, PRCM_GPIOCR);
597 spin_unlock_irqrestore(&gpiocr_lock, flags); 593 spin_unlock_irqrestore(&gpiocr_lock, flags);
598} 594}
599 595
@@ -701,7 +697,7 @@ int prcmu_config_clkout(u8 clkout, u8 source, u8 div)
701 697
702 spin_lock_irqsave(&clkout_lock, flags); 698 spin_lock_irqsave(&clkout_lock, flags);
703 699
704 val = readl(_PRCMU_BASE + PRCM_CLKOCR); 700 val = readl(PRCM_CLKOCR);
705 if (val & div_mask) { 701 if (val & div_mask) {
706 if (div) { 702 if (div) {
707 if ((val & mask) != bits) { 703 if ((val & mask) != bits) {
@@ -715,7 +711,7 @@ int prcmu_config_clkout(u8 clkout, u8 source, u8 div)
715 } 711 }
716 } 712 }
717 } 713 }
718 writel((bits | (val & ~mask)), (_PRCMU_BASE + PRCM_CLKOCR)); 714 writel((bits | (val & ~mask)), PRCM_CLKOCR);
719 requests[clkout] += (div ? 1 : -1); 715 requests[clkout] += (div ? 1 : -1);
720 716
721unlock_and_return: 717unlock_and_return:
@@ -732,7 +728,7 @@ int prcmu_set_power_state(u8 state, bool keep_ulp_clk, bool keep_ap_pll)
732 728
733 spin_lock_irqsave(&mb0_transfer.lock, flags); 729 spin_lock_irqsave(&mb0_transfer.lock, flags);
734 730
735 while (readl(_PRCMU_BASE + PRCM_MBOX_CPU_VAL) & MBOX_BIT(0)) 731 while (readl(PRCM_MBOX_CPU_VAL) & MBOX_BIT(0))
736 cpu_relax(); 732 cpu_relax();
737 733
738 writeb(MB0H_POWER_STATE_TRANS, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB0)); 734 writeb(MB0H_POWER_STATE_TRANS, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB0));
@@ -741,7 +737,7 @@ int prcmu_set_power_state(u8 state, bool keep_ulp_clk, bool keep_ap_pll)
741 writeb((keep_ulp_clk ? 1 : 0), 737 writeb((keep_ulp_clk ? 1 : 0),
742 (tcdm_base + PRCM_REQ_MB0_ULP_CLOCK_STATE)); 738 (tcdm_base + PRCM_REQ_MB0_ULP_CLOCK_STATE));
743 writeb(0, (tcdm_base + PRCM_REQ_MB0_DO_NOT_WFI)); 739 writeb(0, (tcdm_base + PRCM_REQ_MB0_DO_NOT_WFI));
744 writel(MBOX_BIT(0), (_PRCMU_BASE + PRCM_MBOX_CPU_SET)); 740 writel(MBOX_BIT(0), PRCM_MBOX_CPU_SET);
745 741
746 spin_unlock_irqrestore(&mb0_transfer.lock, flags); 742 spin_unlock_irqrestore(&mb0_transfer.lock, flags);
747 743
@@ -770,12 +766,12 @@ static void config_wakeups(void)
770 return; 766 return;
771 767
772 for (i = 0; i < 2; i++) { 768 for (i = 0; i < 2; i++) {
773 while (readl(_PRCMU_BASE + PRCM_MBOX_CPU_VAL) & MBOX_BIT(0)) 769 while (readl(PRCM_MBOX_CPU_VAL) & MBOX_BIT(0))
774 cpu_relax(); 770 cpu_relax();
775 writel(dbb_events, (tcdm_base + PRCM_REQ_MB0_WAKEUP_8500)); 771 writel(dbb_events, (tcdm_base + PRCM_REQ_MB0_WAKEUP_8500));
776 writel(abb_events, (tcdm_base + PRCM_REQ_MB0_WAKEUP_4500)); 772 writel(abb_events, (tcdm_base + PRCM_REQ_MB0_WAKEUP_4500));
777 writeb(header[i], (tcdm_base + PRCM_MBOX_HEADER_REQ_MB0)); 773 writeb(header[i], (tcdm_base + PRCM_MBOX_HEADER_REQ_MB0));
778 writel(MBOX_BIT(0), (_PRCMU_BASE + PRCM_MBOX_CPU_SET)); 774 writel(MBOX_BIT(0), PRCM_MBOX_CPU_SET);
779 } 775 }
780 last_dbb_events = dbb_events; 776 last_dbb_events = dbb_events;
781 last_abb_events = abb_events; 777 last_abb_events = abb_events;
@@ -840,14 +836,14 @@ int prcmu_set_arm_opp(u8 opp)
840 836
841 mutex_lock(&mb1_transfer.lock); 837 mutex_lock(&mb1_transfer.lock);
842 838
843 while (readl(_PRCMU_BASE + PRCM_MBOX_CPU_VAL) & MBOX_BIT(1)) 839 while (readl(PRCM_MBOX_CPU_VAL) & MBOX_BIT(1))
844 cpu_relax(); 840 cpu_relax();
845 841
846 writeb(MB1H_ARM_APE_OPP, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB1)); 842 writeb(MB1H_ARM_APE_OPP, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB1));
847 writeb(opp, (tcdm_base + PRCM_REQ_MB1_ARM_OPP)); 843 writeb(opp, (tcdm_base + PRCM_REQ_MB1_ARM_OPP));
848 writeb(APE_NO_CHANGE, (tcdm_base + PRCM_REQ_MB1_APE_OPP)); 844 writeb(APE_NO_CHANGE, (tcdm_base + PRCM_REQ_MB1_APE_OPP));
849 845
850 writel(MBOX_BIT(1), (_PRCMU_BASE + PRCM_MBOX_CPU_SET)); 846 writel(MBOX_BIT(1), PRCM_MBOX_CPU_SET);
851 wait_for_completion(&mb1_transfer.work); 847 wait_for_completion(&mb1_transfer.work);
852 848
853 if ((mb1_transfer.ack.header != MB1H_ARM_APE_OPP) || 849 if ((mb1_transfer.ack.header != MB1H_ARM_APE_OPP) ||
@@ -876,7 +872,7 @@ int prcmu_get_arm_opp(void)
876 */ 872 */
877int prcmu_get_ddr_opp(void) 873int prcmu_get_ddr_opp(void)
878{ 874{
879 return readb(_PRCMU_BASE + PRCM_DDR_SUBSYS_APE_MINBW); 875 return readb(PRCM_DDR_SUBSYS_APE_MINBW);
880} 876}
881 877
882/** 878/**
@@ -892,7 +888,7 @@ int prcmu_set_ddr_opp(u8 opp)
892 return -EINVAL; 888 return -EINVAL;
893 /* Changing the DDR OPP can hang the hardware pre-v21 */ 889 /* Changing the DDR OPP can hang the hardware pre-v21 */
894 if (cpu_is_u8500v20_or_later() && !cpu_is_u8500v20()) 890 if (cpu_is_u8500v20_or_later() && !cpu_is_u8500v20())
895 writeb(opp, (_PRCMU_BASE + PRCM_DDR_SUBSYS_APE_MINBW)); 891 writeb(opp, PRCM_DDR_SUBSYS_APE_MINBW);
896 892
897 return 0; 893 return 0;
898} 894}
@@ -909,14 +905,14 @@ int prcmu_set_ape_opp(u8 opp)
909 905
910 mutex_lock(&mb1_transfer.lock); 906 mutex_lock(&mb1_transfer.lock);
911 907
912 while (readl(_PRCMU_BASE + PRCM_MBOX_CPU_VAL) & MBOX_BIT(1)) 908 while (readl(PRCM_MBOX_CPU_VAL) & MBOX_BIT(1))
913 cpu_relax(); 909 cpu_relax();
914 910
915 writeb(MB1H_ARM_APE_OPP, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB1)); 911 writeb(MB1H_ARM_APE_OPP, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB1));
916 writeb(ARM_NO_CHANGE, (tcdm_base + PRCM_REQ_MB1_ARM_OPP)); 912 writeb(ARM_NO_CHANGE, (tcdm_base + PRCM_REQ_MB1_ARM_OPP));
917 writeb(opp, (tcdm_base + PRCM_REQ_MB1_APE_OPP)); 913 writeb(opp, (tcdm_base + PRCM_REQ_MB1_APE_OPP));
918 914
919 writel(MBOX_BIT(1), (_PRCMU_BASE + PRCM_MBOX_CPU_SET)); 915 writel(MBOX_BIT(1), PRCM_MBOX_CPU_SET);
920 wait_for_completion(&mb1_transfer.work); 916 wait_for_completion(&mb1_transfer.work);
921 917
922 if ((mb1_transfer.ack.header != MB1H_ARM_APE_OPP) || 918 if ((mb1_transfer.ack.header != MB1H_ARM_APE_OPP) ||
@@ -966,12 +962,12 @@ int prcmu_request_ape_opp_100_voltage(bool enable)
966 header = MB1H_RELEASE_APE_OPP_100_VOLT; 962 header = MB1H_RELEASE_APE_OPP_100_VOLT;
967 } 963 }
968 964
969 while (readl(_PRCMU_BASE + PRCM_MBOX_CPU_VAL) & MBOX_BIT(1)) 965 while (readl(PRCM_MBOX_CPU_VAL) & MBOX_BIT(1))
970 cpu_relax(); 966 cpu_relax();
971 967
972 writeb(header, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB1)); 968 writeb(header, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB1));
973 969
974 writel(MBOX_BIT(1), (_PRCMU_BASE + PRCM_MBOX_CPU_SET)); 970 writel(MBOX_BIT(1), PRCM_MBOX_CPU_SET);
975 wait_for_completion(&mb1_transfer.work); 971 wait_for_completion(&mb1_transfer.work);
976 972
977 if ((mb1_transfer.ack.header != header) || 973 if ((mb1_transfer.ack.header != header) ||
@@ -995,13 +991,13 @@ int prcmu_release_usb_wakeup_state(void)
995 991
996 mutex_lock(&mb1_transfer.lock); 992 mutex_lock(&mb1_transfer.lock);
997 993
998 while (readl(_PRCMU_BASE + PRCM_MBOX_CPU_VAL) & MBOX_BIT(1)) 994 while (readl(PRCM_MBOX_CPU_VAL) & MBOX_BIT(1))
999 cpu_relax(); 995 cpu_relax();
1000 996
1001 writeb(MB1H_RELEASE_USB_WAKEUP, 997 writeb(MB1H_RELEASE_USB_WAKEUP,
1002 (tcdm_base + PRCM_MBOX_HEADER_REQ_MB1)); 998 (tcdm_base + PRCM_MBOX_HEADER_REQ_MB1));
1003 999
1004 writel(MBOX_BIT(1), (_PRCMU_BASE + PRCM_MBOX_CPU_SET)); 1000 writel(MBOX_BIT(1), PRCM_MBOX_CPU_SET);
1005 wait_for_completion(&mb1_transfer.work); 1001 wait_for_completion(&mb1_transfer.work);
1006 1002
1007 if ((mb1_transfer.ack.header != MB1H_RELEASE_USB_WAKEUP) || 1003 if ((mb1_transfer.ack.header != MB1H_RELEASE_USB_WAKEUP) ||
@@ -1048,7 +1044,7 @@ int prcmu_set_epod(u16 epod_id, u8 epod_state)
1048 mutex_lock(&mb2_transfer.lock); 1044 mutex_lock(&mb2_transfer.lock);
1049 1045
1050 /* wait for mailbox */ 1046 /* wait for mailbox */
1051 while (readl(_PRCMU_BASE + PRCM_MBOX_CPU_VAL) & MBOX_BIT(2)) 1047 while (readl(PRCM_MBOX_CPU_VAL) & MBOX_BIT(2))
1052 cpu_relax(); 1048 cpu_relax();
1053 1049
1054 /* fill in mailbox */ 1050 /* fill in mailbox */
@@ -1058,7 +1054,7 @@ int prcmu_set_epod(u16 epod_id, u8 epod_state)
1058 1054
1059 writeb(MB2H_DPS, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB2)); 1055 writeb(MB2H_DPS, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB2));
1060 1056
1061 writel(MBOX_BIT(2), (_PRCMU_BASE + PRCM_MBOX_CPU_SET)); 1057 writel(MBOX_BIT(2), PRCM_MBOX_CPU_SET);
1062 1058
1063 /* 1059 /*
1064 * The current firmware version does not handle errors correctly, 1060 * The current firmware version does not handle errors correctly,
@@ -1145,13 +1141,13 @@ static int request_sysclk(bool enable)
1145 1141
1146 spin_lock_irqsave(&mb3_transfer.lock, flags); 1142 spin_lock_irqsave(&mb3_transfer.lock, flags);
1147 1143
1148 while (readl(_PRCMU_BASE + PRCM_MBOX_CPU_VAL) & MBOX_BIT(3)) 1144 while (readl(PRCM_MBOX_CPU_VAL) & MBOX_BIT(3))
1149 cpu_relax(); 1145 cpu_relax();
1150 1146
1151 writeb((enable ? ON : OFF), (tcdm_base + PRCM_REQ_MB3_SYSCLK_MGT)); 1147 writeb((enable ? ON : OFF), (tcdm_base + PRCM_REQ_MB3_SYSCLK_MGT));
1152 1148
1153 writeb(MB3H_SYSCLK, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB3)); 1149 writeb(MB3H_SYSCLK, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB3));
1154 writel(MBOX_BIT(3), (_PRCMU_BASE + PRCM_MBOX_CPU_SET)); 1150 writel(MBOX_BIT(3), PRCM_MBOX_CPU_SET);
1155 1151
1156 spin_unlock_irqrestore(&mb3_transfer.lock, flags); 1152 spin_unlock_irqrestore(&mb3_transfer.lock, flags);
1157 1153
@@ -1177,7 +1173,7 @@ static int request_timclk(bool enable)
1177 1173
1178 if (!enable) 1174 if (!enable)
1179 val |= PRCM_TCR_STOP_TIMERS; 1175 val |= PRCM_TCR_STOP_TIMERS;
1180 writel(val, (_PRCMU_BASE + PRCM_TCR)); 1176 writel(val, PRCM_TCR);
1181 1177
1182 return 0; 1178 return 0;
1183} 1179}
@@ -1190,7 +1186,7 @@ static int request_reg_clock(u8 clock, bool enable)
1190 spin_lock_irqsave(&clk_mgt_lock, flags); 1186 spin_lock_irqsave(&clk_mgt_lock, flags);
1191 1187
1192 /* Grab the HW semaphore. */ 1188 /* Grab the HW semaphore. */
1193 while ((readl(_PRCMU_BASE + PRCM_SEM) & PRCM_SEM_PRCM_SEM) != 0) 1189 while ((readl(PRCM_SEM) & PRCM_SEM_PRCM_SEM) != 0)
1194 cpu_relax(); 1190 cpu_relax();
1195 1191
1196 val = readl(_PRCMU_BASE + clk_mgt[clock].offset); 1192 val = readl(_PRCMU_BASE + clk_mgt[clock].offset);
@@ -1203,7 +1199,7 @@ static int request_reg_clock(u8 clock, bool enable)
1203 writel(val, (_PRCMU_BASE + clk_mgt[clock].offset)); 1199 writel(val, (_PRCMU_BASE + clk_mgt[clock].offset));
1204 1200
1205 /* Release the HW semaphore. */ 1201 /* Release the HW semaphore. */
1206 writel(0, (_PRCMU_BASE + PRCM_SEM)); 1202 writel(0, PRCM_SEM);
1207 1203
1208 spin_unlock_irqrestore(&clk_mgt_lock, flags); 1204 spin_unlock_irqrestore(&clk_mgt_lock, flags);
1209 1205
@@ -1238,7 +1234,7 @@ int prcmu_config_esram0_deep_sleep(u8 state)
1238 1234
1239 mutex_lock(&mb4_transfer.lock); 1235 mutex_lock(&mb4_transfer.lock);
1240 1236
1241 while (readl(_PRCMU_BASE + PRCM_MBOX_CPU_VAL) & MBOX_BIT(4)) 1237 while (readl(PRCM_MBOX_CPU_VAL) & MBOX_BIT(4))
1242 cpu_relax(); 1238 cpu_relax();
1243 1239
1244 writeb(MB4H_MEM_ST, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB4)); 1240 writeb(MB4H_MEM_ST, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB4));
@@ -1248,7 +1244,7 @@ int prcmu_config_esram0_deep_sleep(u8 state)
1248 (tcdm_base + PRCM_REQ_MB4_DDR_ST_AP_DEEP_IDLE)); 1244 (tcdm_base + PRCM_REQ_MB4_DDR_ST_AP_DEEP_IDLE));
1249 writeb(state, (tcdm_base + PRCM_REQ_MB4_ESRAM0_ST)); 1245 writeb(state, (tcdm_base + PRCM_REQ_MB4_ESRAM0_ST));
1250 1246
1251 writel(MBOX_BIT(4), (_PRCMU_BASE + PRCM_MBOX_CPU_SET)); 1247 writel(MBOX_BIT(4), PRCM_MBOX_CPU_SET);
1252 wait_for_completion(&mb4_transfer.work); 1248 wait_for_completion(&mb4_transfer.work);
1253 1249
1254 mutex_unlock(&mb4_transfer.lock); 1250 mutex_unlock(&mb4_transfer.lock);
@@ -1260,13 +1256,13 @@ int prcmu_config_hotdog(u8 threshold)
1260{ 1256{
1261 mutex_lock(&mb4_transfer.lock); 1257 mutex_lock(&mb4_transfer.lock);
1262 1258
1263 while (readl(_PRCMU_BASE + PRCM_MBOX_CPU_VAL) & MBOX_BIT(4)) 1259 while (readl(PRCM_MBOX_CPU_VAL) & MBOX_BIT(4))
1264 cpu_relax(); 1260 cpu_relax();
1265 1261
1266 writeb(threshold, (tcdm_base + PRCM_REQ_MB4_HOTDOG_THRESHOLD)); 1262 writeb(threshold, (tcdm_base + PRCM_REQ_MB4_HOTDOG_THRESHOLD));
1267 writeb(MB4H_HOTDOG, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB4)); 1263 writeb(MB4H_HOTDOG, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB4));
1268 1264
1269 writel(MBOX_BIT(4), (_PRCMU_BASE + PRCM_MBOX_CPU_SET)); 1265 writel(MBOX_BIT(4), PRCM_MBOX_CPU_SET);
1270 wait_for_completion(&mb4_transfer.work); 1266 wait_for_completion(&mb4_transfer.work);
1271 1267
1272 mutex_unlock(&mb4_transfer.lock); 1268 mutex_unlock(&mb4_transfer.lock);
@@ -1278,7 +1274,7 @@ int prcmu_config_hotmon(u8 low, u8 high)
1278{ 1274{
1279 mutex_lock(&mb4_transfer.lock); 1275 mutex_lock(&mb4_transfer.lock);
1280 1276
1281 while (readl(_PRCMU_BASE + PRCM_MBOX_CPU_VAL) & MBOX_BIT(4)) 1277 while (readl(PRCM_MBOX_CPU_VAL) & MBOX_BIT(4))
1282 cpu_relax(); 1278 cpu_relax();
1283 1279
1284 writeb(low, (tcdm_base + PRCM_REQ_MB4_HOTMON_LOW)); 1280 writeb(low, (tcdm_base + PRCM_REQ_MB4_HOTMON_LOW));
@@ -1287,7 +1283,7 @@ int prcmu_config_hotmon(u8 low, u8 high)
1287 (tcdm_base + PRCM_REQ_MB4_HOTMON_CONFIG)); 1283 (tcdm_base + PRCM_REQ_MB4_HOTMON_CONFIG));
1288 writeb(MB4H_HOTMON, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB4)); 1284 writeb(MB4H_HOTMON, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB4));
1289 1285
1290 writel(MBOX_BIT(4), (_PRCMU_BASE + PRCM_MBOX_CPU_SET)); 1286 writel(MBOX_BIT(4), PRCM_MBOX_CPU_SET);
1291 wait_for_completion(&mb4_transfer.work); 1287 wait_for_completion(&mb4_transfer.work);
1292 1288
1293 mutex_unlock(&mb4_transfer.lock); 1289 mutex_unlock(&mb4_transfer.lock);
@@ -1299,13 +1295,13 @@ static int config_hot_period(u16 val)
1299{ 1295{
1300 mutex_lock(&mb4_transfer.lock); 1296 mutex_lock(&mb4_transfer.lock);
1301 1297
1302 while (readl(_PRCMU_BASE + PRCM_MBOX_CPU_VAL) & MBOX_BIT(4)) 1298 while (readl(PRCM_MBOX_CPU_VAL) & MBOX_BIT(4))
1303 cpu_relax(); 1299 cpu_relax();
1304 1300
1305 writew(val, (tcdm_base + PRCM_REQ_MB4_HOT_PERIOD)); 1301 writew(val, (tcdm_base + PRCM_REQ_MB4_HOT_PERIOD));
1306 writeb(MB4H_HOT_PERIOD, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB4)); 1302 writeb(MB4H_HOT_PERIOD, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB4));
1307 1303
1308 writel(MBOX_BIT(4), (_PRCMU_BASE + PRCM_MBOX_CPU_SET)); 1304 writel(MBOX_BIT(4), PRCM_MBOX_CPU_SET);
1309 wait_for_completion(&mb4_transfer.work); 1305 wait_for_completion(&mb4_transfer.work);
1310 1306
1311 mutex_unlock(&mb4_transfer.lock); 1307 mutex_unlock(&mb4_transfer.lock);
@@ -1345,7 +1341,7 @@ int prcmu_set_clock_divider(u8 clock, u8 divider)
1345 spin_lock_irqsave(&clk_mgt_lock, flags); 1341 spin_lock_irqsave(&clk_mgt_lock, flags);
1346 1342
1347 /* Grab the HW semaphore. */ 1343 /* Grab the HW semaphore. */
1348 while ((readl(_PRCMU_BASE + PRCM_SEM) & PRCM_SEM_PRCM_SEM) != 0) 1344 while ((readl(PRCM_SEM) & PRCM_SEM_PRCM_SEM) != 0)
1349 cpu_relax(); 1345 cpu_relax();
1350 1346
1351 val = readl(_PRCMU_BASE + clk_mgt[clock].offset); 1347 val = readl(_PRCMU_BASE + clk_mgt[clock].offset);
@@ -1354,7 +1350,7 @@ int prcmu_set_clock_divider(u8 clock, u8 divider)
1354 writel(val, (_PRCMU_BASE + clk_mgt[clock].offset)); 1350 writel(val, (_PRCMU_BASE + clk_mgt[clock].offset));
1355 1351
1356 /* Release the HW semaphore. */ 1352 /* Release the HW semaphore. */
1357 writel(0, (_PRCMU_BASE + PRCM_SEM)); 1353 writel(0, PRCM_SEM);
1358 1354
1359 spin_unlock_irqrestore(&clk_mgt_lock, flags); 1355 spin_unlock_irqrestore(&clk_mgt_lock, flags);
1360 1356
@@ -1380,7 +1376,7 @@ int prcmu_abb_read(u8 slave, u8 reg, u8 *value, u8 size)
1380 1376
1381 mutex_lock(&mb5_transfer.lock); 1377 mutex_lock(&mb5_transfer.lock);
1382 1378
1383 while (readl(_PRCMU_BASE + PRCM_MBOX_CPU_VAL) & MBOX_BIT(5)) 1379 while (readl(PRCM_MBOX_CPU_VAL) & MBOX_BIT(5))
1384 cpu_relax(); 1380 cpu_relax();
1385 1381
1386 writeb(PRCMU_I2C_READ(slave), (tcdm_base + PRCM_REQ_MB5_I2C_SLAVE_OP)); 1382 writeb(PRCMU_I2C_READ(slave), (tcdm_base + PRCM_REQ_MB5_I2C_SLAVE_OP));
@@ -1388,7 +1384,7 @@ int prcmu_abb_read(u8 slave, u8 reg, u8 *value, u8 size)
1388 writeb(reg, (tcdm_base + PRCM_REQ_MB5_I2C_REG)); 1384 writeb(reg, (tcdm_base + PRCM_REQ_MB5_I2C_REG));
1389 writeb(0, (tcdm_base + PRCM_REQ_MB5_I2C_VAL)); 1385 writeb(0, (tcdm_base + PRCM_REQ_MB5_I2C_VAL));
1390 1386
1391 writel(MBOX_BIT(5), (_PRCMU_BASE + PRCM_MBOX_CPU_SET)); 1387 writel(MBOX_BIT(5), PRCM_MBOX_CPU_SET);
1392 1388
1393 if (!wait_for_completion_timeout(&mb5_transfer.work, 1389 if (!wait_for_completion_timeout(&mb5_transfer.work,
1394 msecs_to_jiffies(20000))) { 1390 msecs_to_jiffies(20000))) {
@@ -1426,7 +1422,7 @@ int prcmu_abb_write(u8 slave, u8 reg, u8 *value, u8 size)
1426 1422
1427 mutex_lock(&mb5_transfer.lock); 1423 mutex_lock(&mb5_transfer.lock);
1428 1424
1429 while (readl(_PRCMU_BASE + PRCM_MBOX_CPU_VAL) & MBOX_BIT(5)) 1425 while (readl(PRCM_MBOX_CPU_VAL) & MBOX_BIT(5))
1430 cpu_relax(); 1426 cpu_relax();
1431 1427
1432 writeb(PRCMU_I2C_WRITE(slave), (tcdm_base + PRCM_REQ_MB5_I2C_SLAVE_OP)); 1428 writeb(PRCMU_I2C_WRITE(slave), (tcdm_base + PRCM_REQ_MB5_I2C_SLAVE_OP));
@@ -1434,7 +1430,7 @@ int prcmu_abb_write(u8 slave, u8 reg, u8 *value, u8 size)
1434 writeb(reg, (tcdm_base + PRCM_REQ_MB5_I2C_REG)); 1430 writeb(reg, (tcdm_base + PRCM_REQ_MB5_I2C_REG));
1435 writeb(*value, (tcdm_base + PRCM_REQ_MB5_I2C_VAL)); 1431 writeb(*value, (tcdm_base + PRCM_REQ_MB5_I2C_VAL));
1436 1432
1437 writel(MBOX_BIT(5), (_PRCMU_BASE + PRCM_MBOX_CPU_SET)); 1433 writel(MBOX_BIT(5), PRCM_MBOX_CPU_SET);
1438 1434
1439 if (!wait_for_completion_timeout(&mb5_transfer.work, 1435 if (!wait_for_completion_timeout(&mb5_transfer.work,
1440 msecs_to_jiffies(20000))) { 1436 msecs_to_jiffies(20000))) {
@@ -1459,14 +1455,13 @@ void prcmu_ac_wake_req(void)
1459 1455
1460 mutex_lock(&mb0_transfer.ac_wake_lock); 1456 mutex_lock(&mb0_transfer.ac_wake_lock);
1461 1457
1462 val = readl(_PRCMU_BASE + PRCM_HOSTACCESS_REQ); 1458 val = readl(PRCM_HOSTACCESS_REQ);
1463 if (val & PRCM_HOSTACCESS_REQ_HOSTACCESS_REQ) 1459 if (val & PRCM_HOSTACCESS_REQ_HOSTACCESS_REQ)
1464 goto unlock_and_return; 1460 goto unlock_and_return;
1465 1461
1466 atomic_set(&ac_wake_req_state, 1); 1462 atomic_set(&ac_wake_req_state, 1);
1467 1463
1468 writel((val | PRCM_HOSTACCESS_REQ_HOSTACCESS_REQ), 1464 writel((val | PRCM_HOSTACCESS_REQ_HOSTACCESS_REQ), PRCM_HOSTACCESS_REQ);
1469 (_PRCMU_BASE + PRCM_HOSTACCESS_REQ));
1470 1465
1471 if (!wait_for_completion_timeout(&mb0_transfer.ac_wake_work, 1466 if (!wait_for_completion_timeout(&mb0_transfer.ac_wake_work,
1472 msecs_to_jiffies(20000))) { 1467 msecs_to_jiffies(20000))) {
@@ -1487,12 +1482,12 @@ void prcmu_ac_sleep_req()
1487 1482
1488 mutex_lock(&mb0_transfer.ac_wake_lock); 1483 mutex_lock(&mb0_transfer.ac_wake_lock);
1489 1484
1490 val = readl(_PRCMU_BASE + PRCM_HOSTACCESS_REQ); 1485 val = readl(PRCM_HOSTACCESS_REQ);
1491 if (!(val & PRCM_HOSTACCESS_REQ_HOSTACCESS_REQ)) 1486 if (!(val & PRCM_HOSTACCESS_REQ_HOSTACCESS_REQ))
1492 goto unlock_and_return; 1487 goto unlock_and_return;
1493 1488
1494 writel((val & ~PRCM_HOSTACCESS_REQ_HOSTACCESS_REQ), 1489 writel((val & ~PRCM_HOSTACCESS_REQ_HOSTACCESS_REQ),
1495 (_PRCMU_BASE + PRCM_HOSTACCESS_REQ)); 1490 PRCM_HOSTACCESS_REQ);
1496 1491
1497 if (!wait_for_completion_timeout(&mb0_transfer.ac_wake_work, 1492 if (!wait_for_completion_timeout(&mb0_transfer.ac_wake_work,
1498 msecs_to_jiffies(20000))) { 1493 msecs_to_jiffies(20000))) {
@@ -1520,7 +1515,7 @@ bool prcmu_is_ac_wake_requested(void)
1520void prcmu_system_reset(u16 reset_code) 1515void prcmu_system_reset(u16 reset_code)
1521{ 1516{
1522 writew(reset_code, (tcdm_base + PRCM_SW_RST_REASON)); 1517 writew(reset_code, (tcdm_base + PRCM_SW_RST_REASON));
1523 writel(1, (_PRCMU_BASE + PRCM_APE_SOFTRST)); 1518 writel(1, PRCM_APE_SOFTRST);
1524} 1519}
1525 1520
1526/** 1521/**
@@ -1530,11 +1525,11 @@ void prcmu_modem_reset(void)
1530{ 1525{
1531 mutex_lock(&mb1_transfer.lock); 1526 mutex_lock(&mb1_transfer.lock);
1532 1527
1533 while (readl(_PRCMU_BASE + PRCM_MBOX_CPU_VAL) & MBOX_BIT(1)) 1528 while (readl(PRCM_MBOX_CPU_VAL) & MBOX_BIT(1))
1534 cpu_relax(); 1529 cpu_relax();
1535 1530
1536 writeb(MB1H_RESET_MODEM, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB1)); 1531 writeb(MB1H_RESET_MODEM, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB1));
1537 writel(MBOX_BIT(1), (_PRCMU_BASE + PRCM_MBOX_CPU_SET)); 1532 writel(MBOX_BIT(1), PRCM_MBOX_CPU_SET);
1538 wait_for_completion(&mb1_transfer.work); 1533 wait_for_completion(&mb1_transfer.work);
1539 1534
1540 /* 1535 /*
@@ -1551,11 +1546,11 @@ static void ack_dbb_wakeup(void)
1551 1546
1552 spin_lock_irqsave(&mb0_transfer.lock, flags); 1547 spin_lock_irqsave(&mb0_transfer.lock, flags);
1553 1548
1554 while (readl(_PRCMU_BASE + PRCM_MBOX_CPU_VAL) & MBOX_BIT(0)) 1549 while (readl(PRCM_MBOX_CPU_VAL) & MBOX_BIT(0))
1555 cpu_relax(); 1550 cpu_relax();
1556 1551
1557 writeb(MB0H_READ_WAKEUP_ACK, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB0)); 1552 writeb(MB0H_READ_WAKEUP_ACK, (tcdm_base + PRCM_MBOX_HEADER_REQ_MB0));
1558 writel(MBOX_BIT(0), (_PRCMU_BASE + PRCM_MBOX_CPU_SET)); 1553 writel(MBOX_BIT(0), PRCM_MBOX_CPU_SET);
1559 1554
1560 spin_unlock_irqrestore(&mb0_transfer.lock, flags); 1555 spin_unlock_irqrestore(&mb0_transfer.lock, flags);
1561} 1556}
@@ -1600,7 +1595,7 @@ static bool read_mailbox_0(void)
1600 r = false; 1595 r = false;
1601 break; 1596 break;
1602 } 1597 }
1603 writel(MBOX_BIT(0), (_PRCMU_BASE + PRCM_ARM_IT1_CLR)); 1598 writel(MBOX_BIT(0), PRCM_ARM_IT1_CLR);
1604 return r; 1599 return r;
1605} 1600}
1606 1601
@@ -1613,7 +1608,7 @@ static bool read_mailbox_1(void)
1613 PRCM_ACK_MB1_CURRENT_APE_OPP); 1608 PRCM_ACK_MB1_CURRENT_APE_OPP);
1614 mb1_transfer.ack.ape_voltage_status = readb(tcdm_base + 1609 mb1_transfer.ack.ape_voltage_status = readb(tcdm_base +
1615 PRCM_ACK_MB1_APE_VOLTAGE_STATUS); 1610 PRCM_ACK_MB1_APE_VOLTAGE_STATUS);
1616 writel(MBOX_BIT(1), (_PRCMU_BASE + PRCM_ARM_IT1_CLR)); 1611 writel(MBOX_BIT(1), PRCM_ARM_IT1_CLR);
1617 complete(&mb1_transfer.work); 1612 complete(&mb1_transfer.work);
1618 return false; 1613 return false;
1619} 1614}
@@ -1621,14 +1616,14 @@ static bool read_mailbox_1(void)
1621static bool read_mailbox_2(void) 1616static bool read_mailbox_2(void)
1622{ 1617{
1623 mb2_transfer.ack.status = readb(tcdm_base + PRCM_ACK_MB2_DPS_STATUS); 1618 mb2_transfer.ack.status = readb(tcdm_base + PRCM_ACK_MB2_DPS_STATUS);
1624 writel(MBOX_BIT(2), (_PRCMU_BASE + PRCM_ARM_IT1_CLR)); 1619 writel(MBOX_BIT(2), PRCM_ARM_IT1_CLR);
1625 complete(&mb2_transfer.work); 1620 complete(&mb2_transfer.work);
1626 return false; 1621 return false;
1627} 1622}
1628 1623
1629static bool read_mailbox_3(void) 1624static bool read_mailbox_3(void)
1630{ 1625{
1631 writel(MBOX_BIT(3), (_PRCMU_BASE + PRCM_ARM_IT1_CLR)); 1626 writel(MBOX_BIT(3), PRCM_ARM_IT1_CLR);
1632 return false; 1627 return false;
1633} 1628}
1634 1629
@@ -1650,7 +1645,7 @@ static bool read_mailbox_4(void)
1650 break; 1645 break;
1651 } 1646 }
1652 1647
1653 writel(MBOX_BIT(4), (_PRCMU_BASE + PRCM_ARM_IT1_CLR)); 1648 writel(MBOX_BIT(4), PRCM_ARM_IT1_CLR);
1654 1649
1655 if (do_complete) 1650 if (do_complete)
1656 complete(&mb4_transfer.work); 1651 complete(&mb4_transfer.work);
@@ -1662,20 +1657,20 @@ static bool read_mailbox_5(void)
1662{ 1657{
1663 mb5_transfer.ack.status = readb(tcdm_base + PRCM_ACK_MB5_I2C_STATUS); 1658 mb5_transfer.ack.status = readb(tcdm_base + PRCM_ACK_MB5_I2C_STATUS);
1664 mb5_transfer.ack.value = readb(tcdm_base + PRCM_ACK_MB5_I2C_VAL); 1659 mb5_transfer.ack.value = readb(tcdm_base + PRCM_ACK_MB5_I2C_VAL);
1665 writel(MBOX_BIT(5), (_PRCMU_BASE + PRCM_ARM_IT1_CLR)); 1660 writel(MBOX_BIT(5), PRCM_ARM_IT1_CLR);
1666 complete(&mb5_transfer.work); 1661 complete(&mb5_transfer.work);
1667 return false; 1662 return false;
1668} 1663}
1669 1664
1670static bool read_mailbox_6(void) 1665static bool read_mailbox_6(void)
1671{ 1666{
1672 writel(MBOX_BIT(6), (_PRCMU_BASE + PRCM_ARM_IT1_CLR)); 1667 writel(MBOX_BIT(6), PRCM_ARM_IT1_CLR);
1673 return false; 1668 return false;
1674} 1669}
1675 1670
1676static bool read_mailbox_7(void) 1671static bool read_mailbox_7(void)
1677{ 1672{
1678 writel(MBOX_BIT(7), (_PRCMU_BASE + PRCM_ARM_IT1_CLR)); 1673 writel(MBOX_BIT(7), PRCM_ARM_IT1_CLR);
1679 return false; 1674 return false;
1680} 1675}
1681 1676
@@ -1696,7 +1691,7 @@ static irqreturn_t prcmu_irq_handler(int irq, void *data)
1696 u8 n; 1691 u8 n;
1697 irqreturn_t r; 1692 irqreturn_t r;
1698 1693
1699 bits = (readl(_PRCMU_BASE + PRCM_ARM_IT1_VAL) & ALL_MBOX_BITS); 1694 bits = (readl(PRCM_ARM_IT1_VAL) & ALL_MBOX_BITS);
1700 if (unlikely(!bits)) 1695 if (unlikely(!bits))
1701 return IRQ_NONE; 1696 return IRQ_NONE;
1702 1697
@@ -2025,7 +2020,7 @@ static int __init db8500_prcmu_probe(struct platform_device *pdev)
2025 return -ENODEV; 2020 return -ENODEV;
2026 2021
2027 /* Clean up the mailbox interrupts after pre-kernel code. */ 2022 /* Clean up the mailbox interrupts after pre-kernel code. */
2028 writel(ALL_MBOX_BITS, (_PRCMU_BASE + PRCM_ARM_IT1_CLR)); 2023 writel(ALL_MBOX_BITS, PRCM_ARM_IT1_CLR);
2029 2024
2030 err = request_threaded_irq(IRQ_DB8500_PRCMU1, prcmu_irq_handler, 2025 err = request_threaded_irq(IRQ_DB8500_PRCMU1, prcmu_irq_handler,
2031 prcmu_irq_thread_fn, IRQF_NO_SUSPEND, "prcmu", NULL); 2026 prcmu_irq_thread_fn, IRQF_NO_SUSPEND, "prcmu", NULL);