diff options
-rw-r--r-- | arch/arm/mach-ux500/cpu-db8500.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-ux500/cpu.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-ux500/include/mach/hardware.h | 2 | ||||
-rw-r--r-- | drivers/mfd/db8500-prcmu.c | 47 | ||||
-rw-r--r-- | drivers/mfd/dbx500-prcmu-regs.h | 208 |
5 files changed, 131 insertions, 130 deletions
diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c index 19235cf7bbe3..8c58dffe52d5 100644 --- a/arch/arm/mach-ux500/cpu-db8500.c +++ b/arch/arm/mach-ux500/cpu-db8500.c | |||
@@ -94,8 +94,6 @@ void __init u8500_map_io(void) | |||
94 | iotable_init(u9540_io_desc, ARRAY_SIZE(u9540_io_desc)); | 94 | iotable_init(u9540_io_desc, ARRAY_SIZE(u9540_io_desc)); |
95 | else | 95 | else |
96 | iotable_init(u8500_io_desc, ARRAY_SIZE(u8500_io_desc)); | 96 | iotable_init(u8500_io_desc, ARRAY_SIZE(u8500_io_desc)); |
97 | |||
98 | _PRCMU_BASE = __io_address(U8500_PRCMU_BASE); | ||
99 | } | 97 | } |
100 | 98 | ||
101 | static struct resource db8500_pmu_resources[] = { | 99 | static struct resource db8500_pmu_resources[] = { |
diff --git a/arch/arm/mach-ux500/cpu.c b/arch/arm/mach-ux500/cpu.c index 6d3b57d61835..6f8e152226e3 100644 --- a/arch/arm/mach-ux500/cpu.c +++ b/arch/arm/mach-ux500/cpu.c | |||
@@ -30,8 +30,6 @@ | |||
30 | #include "board-mop500.h" | 30 | #include "board-mop500.h" |
31 | #include "id.h" | 31 | #include "id.h" |
32 | 32 | ||
33 | void __iomem *_PRCMU_BASE; | ||
34 | |||
35 | /* | 33 | /* |
36 | * FIXME: Should we set up the GPIO domain here? | 34 | * FIXME: Should we set up the GPIO domain here? |
37 | * | 35 | * |
diff --git a/arch/arm/mach-ux500/include/mach/hardware.h b/arch/arm/mach-ux500/include/mach/hardware.h index 5201ddace503..4eece2af1898 100644 --- a/arch/arm/mach-ux500/include/mach/hardware.h +++ b/arch/arm/mach-ux500/include/mach/hardware.h | |||
@@ -39,8 +39,6 @@ | |||
39 | 39 | ||
40 | #ifndef __ASSEMBLY__ | 40 | #ifndef __ASSEMBLY__ |
41 | 41 | ||
42 | extern void __iomem *_PRCMU_BASE; | ||
43 | |||
44 | #define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x) | 42 | #define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x) |
45 | 43 | ||
46 | #endif /* __ASSEMBLY__ */ | 44 | #endif /* __ASSEMBLY__ */ |
diff --git a/drivers/mfd/db8500-prcmu.c b/drivers/mfd/db8500-prcmu.c index 0d0cc91f30e8..75a60c4721ff 100644 --- a/drivers/mfd/db8500-prcmu.c +++ b/drivers/mfd/db8500-prcmu.c | |||
@@ -422,9 +422,10 @@ static DEFINE_SPINLOCK(clkout_lock); | |||
422 | 422 | ||
423 | /* Global var to runtime determine TCDM base for v2 or v1 */ | 423 | /* Global var to runtime determine TCDM base for v2 or v1 */ |
424 | static __iomem void *tcdm_base; | 424 | static __iomem void *tcdm_base; |
425 | static __iomem void *prcmu_base; | ||
425 | 426 | ||
426 | struct clk_mgt { | 427 | struct clk_mgt { |
427 | void __iomem *reg; | 428 | u32 offset; |
428 | u32 pllsw; | 429 | u32 pllsw; |
429 | int branch; | 430 | int branch; |
430 | bool clk38div; | 431 | bool clk38div; |
@@ -599,9 +600,9 @@ int db8500_prcmu_set_display_clocks(void) | |||
599 | while ((readl(PRCM_SEM) & PRCM_SEM_PRCM_SEM) != 0) | 600 | while ((readl(PRCM_SEM) & PRCM_SEM_PRCM_SEM) != 0) |
600 | cpu_relax(); | 601 | cpu_relax(); |
601 | 602 | ||
602 | writel(PRCMU_DSI_CLOCK_SETTING, PRCM_HDMICLK_MGT); | 603 | writel(PRCMU_DSI_CLOCK_SETTING, prcmu_base + PRCM_HDMICLK_MGT); |
603 | writel(PRCMU_DSI_LP_CLOCK_SETTING, PRCM_TVCLK_MGT); | 604 | writel(PRCMU_DSI_LP_CLOCK_SETTING, prcmu_base + PRCM_TVCLK_MGT); |
604 | writel(PRCMU_DPI_CLOCK_SETTING, PRCM_LCDCLK_MGT); | 605 | writel(PRCMU_DPI_CLOCK_SETTING, prcmu_base + PRCM_LCDCLK_MGT); |
605 | 606 | ||
606 | /* Release the HW semaphore. */ | 607 | /* Release the HW semaphore. */ |
607 | writel(0, PRCM_SEM); | 608 | writel(0, PRCM_SEM); |
@@ -613,7 +614,7 @@ int db8500_prcmu_set_display_clocks(void) | |||
613 | 614 | ||
614 | u32 db8500_prcmu_read(unsigned int reg) | 615 | u32 db8500_prcmu_read(unsigned int reg) |
615 | { | 616 | { |
616 | return readl(_PRCMU_BASE + reg); | 617 | return readl(prcmu_base + reg); |
617 | } | 618 | } |
618 | 619 | ||
619 | void db8500_prcmu_write(unsigned int reg, u32 value) | 620 | void db8500_prcmu_write(unsigned int reg, u32 value) |
@@ -621,7 +622,7 @@ void db8500_prcmu_write(unsigned int reg, u32 value) | |||
621 | unsigned long flags; | 622 | unsigned long flags; |
622 | 623 | ||
623 | spin_lock_irqsave(&prcmu_lock, flags); | 624 | spin_lock_irqsave(&prcmu_lock, flags); |
624 | writel(value, (_PRCMU_BASE + reg)); | 625 | writel(value, (prcmu_base + reg)); |
625 | spin_unlock_irqrestore(&prcmu_lock, flags); | 626 | spin_unlock_irqrestore(&prcmu_lock, flags); |
626 | } | 627 | } |
627 | 628 | ||
@@ -631,9 +632,9 @@ void db8500_prcmu_write_masked(unsigned int reg, u32 mask, u32 value) | |||
631 | unsigned long flags; | 632 | unsigned long flags; |
632 | 633 | ||
633 | spin_lock_irqsave(&prcmu_lock, flags); | 634 | spin_lock_irqsave(&prcmu_lock, flags); |
634 | val = readl(_PRCMU_BASE + reg); | 635 | val = readl(prcmu_base + reg); |
635 | val = ((val & ~mask) | (value & mask)); | 636 | val = ((val & ~mask) | (value & mask)); |
636 | writel(val, (_PRCMU_BASE + reg)); | 637 | writel(val, (prcmu_base + reg)); |
637 | spin_unlock_irqrestore(&prcmu_lock, flags); | 638 | spin_unlock_irqrestore(&prcmu_lock, flags); |
638 | } | 639 | } |
639 | 640 | ||
@@ -1059,7 +1060,7 @@ int db8500_prcmu_set_ddr_opp(u8 opp) | |||
1059 | /* Divide the frequency of certain clocks by 2 for APE_50_PARTLY_25_OPP. */ | 1060 | /* Divide the frequency of certain clocks by 2 for APE_50_PARTLY_25_OPP. */ |
1060 | static void request_even_slower_clocks(bool enable) | 1061 | static void request_even_slower_clocks(bool enable) |
1061 | { | 1062 | { |
1062 | void __iomem *clock_reg[] = { | 1063 | u32 clock_reg[] = { |
1063 | PRCM_ACLK_MGT, | 1064 | PRCM_ACLK_MGT, |
1064 | PRCM_DMACLK_MGT | 1065 | PRCM_DMACLK_MGT |
1065 | }; | 1066 | }; |
@@ -1076,7 +1077,7 @@ static void request_even_slower_clocks(bool enable) | |||
1076 | u32 val; | 1077 | u32 val; |
1077 | u32 div; | 1078 | u32 div; |
1078 | 1079 | ||
1079 | val = readl(clock_reg[i]); | 1080 | val = readl(prcmu_base + clock_reg[i]); |
1080 | div = (val & PRCM_CLK_MGT_CLKPLLDIV_MASK); | 1081 | div = (val & PRCM_CLK_MGT_CLKPLLDIV_MASK); |
1081 | if (enable) { | 1082 | if (enable) { |
1082 | if ((div <= 1) || (div > 15)) { | 1083 | if ((div <= 1) || (div > 15)) { |
@@ -1092,7 +1093,7 @@ static void request_even_slower_clocks(bool enable) | |||
1092 | } | 1093 | } |
1093 | val = ((val & ~PRCM_CLK_MGT_CLKPLLDIV_MASK) | | 1094 | val = ((val & ~PRCM_CLK_MGT_CLKPLLDIV_MASK) | |
1094 | (div & PRCM_CLK_MGT_CLKPLLDIV_MASK)); | 1095 | (div & PRCM_CLK_MGT_CLKPLLDIV_MASK)); |
1095 | writel(val, clock_reg[i]); | 1096 | writel(val, prcmu_base + clock_reg[i]); |
1096 | } | 1097 | } |
1097 | 1098 | ||
1098 | unlock_and_return: | 1099 | unlock_and_return: |
@@ -1446,14 +1447,14 @@ static int request_clock(u8 clock, bool enable) | |||
1446 | while ((readl(PRCM_SEM) & PRCM_SEM_PRCM_SEM) != 0) | 1447 | while ((readl(PRCM_SEM) & PRCM_SEM_PRCM_SEM) != 0) |
1447 | cpu_relax(); | 1448 | cpu_relax(); |
1448 | 1449 | ||
1449 | val = readl(clk_mgt[clock].reg); | 1450 | val = readl(prcmu_base + clk_mgt[clock].offset); |
1450 | if (enable) { | 1451 | if (enable) { |
1451 | val |= (PRCM_CLK_MGT_CLKEN | clk_mgt[clock].pllsw); | 1452 | val |= (PRCM_CLK_MGT_CLKEN | clk_mgt[clock].pllsw); |
1452 | } else { | 1453 | } else { |
1453 | clk_mgt[clock].pllsw = (val & PRCM_CLK_MGT_CLKPLLSW_MASK); | 1454 | clk_mgt[clock].pllsw = (val & PRCM_CLK_MGT_CLKPLLSW_MASK); |
1454 | val &= ~(PRCM_CLK_MGT_CLKEN | PRCM_CLK_MGT_CLKPLLSW_MASK); | 1455 | val &= ~(PRCM_CLK_MGT_CLKEN | PRCM_CLK_MGT_CLKPLLSW_MASK); |
1455 | } | 1456 | } |
1456 | writel(val, clk_mgt[clock].reg); | 1457 | writel(val, prcmu_base + clk_mgt[clock].offset); |
1457 | 1458 | ||
1458 | /* Release the HW semaphore. */ | 1459 | /* Release the HW semaphore. */ |
1459 | writel(0, PRCM_SEM); | 1460 | writel(0, PRCM_SEM); |
@@ -1629,7 +1630,7 @@ static unsigned long clock_rate(u8 clock) | |||
1629 | u32 pllsw; | 1630 | u32 pllsw; |
1630 | unsigned long rate = ROOT_CLOCK_RATE; | 1631 | unsigned long rate = ROOT_CLOCK_RATE; |
1631 | 1632 | ||
1632 | val = readl(clk_mgt[clock].reg); | 1633 | val = readl(prcmu_base + clk_mgt[clock].offset); |
1633 | 1634 | ||
1634 | if (val & PRCM_CLK_MGT_CLK38) { | 1635 | if (val & PRCM_CLK_MGT_CLK38) { |
1635 | if (clk_mgt[clock].clk38div && (val & PRCM_CLK_MGT_CLK38DIV)) | 1636 | if (clk_mgt[clock].clk38div && (val & PRCM_CLK_MGT_CLK38DIV)) |
@@ -1785,7 +1786,7 @@ static long round_clock_rate(u8 clock, unsigned long rate) | |||
1785 | unsigned long src_rate; | 1786 | unsigned long src_rate; |
1786 | long rounded_rate; | 1787 | long rounded_rate; |
1787 | 1788 | ||
1788 | val = readl(clk_mgt[clock].reg); | 1789 | val = readl(prcmu_base + clk_mgt[clock].offset); |
1789 | src_rate = clock_source_rate((val | clk_mgt[clock].pllsw), | 1790 | src_rate = clock_source_rate((val | clk_mgt[clock].pllsw), |
1790 | clk_mgt[clock].branch); | 1791 | clk_mgt[clock].branch); |
1791 | div = clock_divider(src_rate, rate); | 1792 | div = clock_divider(src_rate, rate); |
@@ -1933,7 +1934,7 @@ static void set_clock_rate(u8 clock, unsigned long rate) | |||
1933 | while ((readl(PRCM_SEM) & PRCM_SEM_PRCM_SEM) != 0) | 1934 | while ((readl(PRCM_SEM) & PRCM_SEM_PRCM_SEM) != 0) |
1934 | cpu_relax(); | 1935 | cpu_relax(); |
1935 | 1936 | ||
1936 | val = readl(clk_mgt[clock].reg); | 1937 | val = readl(prcmu_base + clk_mgt[clock].offset); |
1937 | src_rate = clock_source_rate((val | clk_mgt[clock].pllsw), | 1938 | src_rate = clock_source_rate((val | clk_mgt[clock].pllsw), |
1938 | clk_mgt[clock].branch); | 1939 | clk_mgt[clock].branch); |
1939 | div = clock_divider(src_rate, rate); | 1940 | div = clock_divider(src_rate, rate); |
@@ -1961,7 +1962,7 @@ static void set_clock_rate(u8 clock, unsigned long rate) | |||
1961 | val &= ~PRCM_CLK_MGT_CLKPLLDIV_MASK; | 1962 | val &= ~PRCM_CLK_MGT_CLKPLLDIV_MASK; |
1962 | val |= min(div, (u32)31); | 1963 | val |= min(div, (u32)31); |
1963 | } | 1964 | } |
1964 | writel(val, clk_mgt[clock].reg); | 1965 | writel(val, prcmu_base + clk_mgt[clock].offset); |
1965 | 1966 | ||
1966 | /* Release the HW semaphore. */ | 1967 | /* Release the HW semaphore. */ |
1967 | writel(0, PRCM_SEM); | 1968 | writel(0, PRCM_SEM); |
@@ -3163,8 +3164,18 @@ static int db8500_prcmu_probe(struct platform_device *pdev) | |||
3163 | int irq = 0, err = 0, i; | 3164 | int irq = 0, err = 0, i; |
3164 | struct resource *res; | 3165 | struct resource *res; |
3165 | 3166 | ||
3167 | res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "prcmu"); | ||
3168 | if (!res) { | ||
3169 | dev_err(&pdev->dev, "no prcmu memory region provided\n"); | ||
3170 | return -ENOENT; | ||
3171 | } | ||
3172 | prcmu_base = devm_ioremap(&pdev->dev, res->start, resource_size(res)); | ||
3173 | if (!prcmu_base) { | ||
3174 | dev_err(&pdev->dev, | ||
3175 | "failed to ioremap prcmu register memory\n"); | ||
3176 | return -ENOENT; | ||
3177 | } | ||
3166 | init_prcm_registers(); | 3178 | init_prcm_registers(); |
3167 | |||
3168 | dbx500_fw_version_init(pdev, pdata->version_offset); | 3179 | dbx500_fw_version_init(pdev, pdata->version_offset); |
3169 | res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "prcmu-tcdm"); | 3180 | res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "prcmu-tcdm"); |
3170 | if (!res) { | 3181 | if (!res) { |
diff --git a/drivers/mfd/dbx500-prcmu-regs.h b/drivers/mfd/dbx500-prcmu-regs.h index 79c76ebdba52..439254d23d56 100644 --- a/drivers/mfd/dbx500-prcmu-regs.h +++ b/drivers/mfd/dbx500-prcmu-regs.h | |||
@@ -13,136 +13,132 @@ | |||
13 | #ifndef __DB8500_PRCMU_REGS_H | 13 | #ifndef __DB8500_PRCMU_REGS_H |
14 | #define __DB8500_PRCMU_REGS_H | 14 | #define __DB8500_PRCMU_REGS_H |
15 | 15 | ||
16 | #include <mach/hardware.h> | ||
17 | |||
18 | #define BITS(_start, _end) ((BIT(_end) - BIT(_start)) + BIT(_end)) | 16 | #define BITS(_start, _end) ((BIT(_end) - BIT(_start)) + BIT(_end)) |
19 | 17 | ||
20 | #define PRCM_CLK_MGT(_offset) (void __iomem *)(IO_ADDRESS(U8500_PRCMU_BASE) \ | 18 | #define PRCM_ACLK_MGT (0x004) |
21 | + _offset) | 19 | #define PRCM_SVACLK_MGT (0x008) |
22 | #define PRCM_ACLK_MGT PRCM_CLK_MGT(0x004) | 20 | #define PRCM_SIACLK_MGT (0x00C) |
23 | #define PRCM_SVACLK_MGT PRCM_CLK_MGT(0x008) | 21 | #define PRCM_SGACLK_MGT (0x014) |
24 | #define PRCM_SIACLK_MGT PRCM_CLK_MGT(0x00C) | 22 | #define PRCM_UARTCLK_MGT (0x018) |
25 | #define PRCM_SGACLK_MGT PRCM_CLK_MGT(0x014) | 23 | #define PRCM_MSP02CLK_MGT (0x01C) |
26 | #define PRCM_UARTCLK_MGT PRCM_CLK_MGT(0x018) | 24 | #define PRCM_I2CCLK_MGT (0x020) |
27 | #define PRCM_MSP02CLK_MGT PRCM_CLK_MGT(0x01C) | 25 | #define PRCM_SDMMCCLK_MGT (0x024) |
28 | #define PRCM_I2CCLK_MGT PRCM_CLK_MGT(0x020) | 26 | #define PRCM_SLIMCLK_MGT (0x028) |
29 | #define PRCM_SDMMCCLK_MGT PRCM_CLK_MGT(0x024) | 27 | #define PRCM_PER1CLK_MGT (0x02C) |
30 | #define PRCM_SLIMCLK_MGT PRCM_CLK_MGT(0x028) | 28 | #define PRCM_PER2CLK_MGT (0x030) |
31 | #define PRCM_PER1CLK_MGT PRCM_CLK_MGT(0x02C) | 29 | #define PRCM_PER3CLK_MGT (0x034) |
32 | #define PRCM_PER2CLK_MGT PRCM_CLK_MGT(0x030) | 30 | #define PRCM_PER5CLK_MGT (0x038) |
33 | #define PRCM_PER3CLK_MGT PRCM_CLK_MGT(0x034) | 31 | #define PRCM_PER6CLK_MGT (0x03C) |
34 | #define PRCM_PER5CLK_MGT PRCM_CLK_MGT(0x038) | 32 | #define PRCM_PER7CLK_MGT (0x040) |
35 | #define PRCM_PER6CLK_MGT PRCM_CLK_MGT(0x03C) | 33 | #define PRCM_LCDCLK_MGT (0x044) |
36 | #define PRCM_PER7CLK_MGT PRCM_CLK_MGT(0x040) | 34 | #define PRCM_BMLCLK_MGT (0x04C) |
37 | #define PRCM_LCDCLK_MGT PRCM_CLK_MGT(0x044) | 35 | #define PRCM_HSITXCLK_MGT (0x050) |
38 | #define PRCM_BMLCLK_MGT PRCM_CLK_MGT(0x04C) | 36 | #define PRCM_HSIRXCLK_MGT (0x054) |
39 | #define PRCM_HSITXCLK_MGT PRCM_CLK_MGT(0x050) | 37 | #define PRCM_HDMICLK_MGT (0x058) |
40 | #define PRCM_HSIRXCLK_MGT PRCM_CLK_MGT(0x054) | 38 | #define PRCM_APEATCLK_MGT (0x05C) |
41 | #define PRCM_HDMICLK_MGT PRCM_CLK_MGT(0x058) | 39 | #define PRCM_APETRACECLK_MGT (0x060) |
42 | #define PRCM_APEATCLK_MGT PRCM_CLK_MGT(0x05C) | 40 | #define PRCM_MCDECLK_MGT (0x064) |
43 | #define PRCM_APETRACECLK_MGT PRCM_CLK_MGT(0x060) | 41 | #define PRCM_IPI2CCLK_MGT (0x068) |
44 | #define PRCM_MCDECLK_MGT PRCM_CLK_MGT(0x064) | 42 | #define PRCM_DSIALTCLK_MGT (0x06C) |
45 | #define PRCM_IPI2CCLK_MGT PRCM_CLK_MGT(0x068) | 43 | #define PRCM_DMACLK_MGT (0x074) |
46 | #define PRCM_DSIALTCLK_MGT PRCM_CLK_MGT(0x06C) | 44 | #define PRCM_B2R2CLK_MGT (0x078) |
47 | #define PRCM_DMACLK_MGT PRCM_CLK_MGT(0x074) | 45 | #define PRCM_TVCLK_MGT (0x07C) |
48 | #define PRCM_B2R2CLK_MGT PRCM_CLK_MGT(0x078) | 46 | #define PRCM_UNIPROCLK_MGT (0x278) |
49 | #define PRCM_TVCLK_MGT PRCM_CLK_MGT(0x07C) | 47 | #define PRCM_SSPCLK_MGT (0x280) |
50 | #define PRCM_UNIPROCLK_MGT PRCM_CLK_MGT(0x278) | 48 | #define PRCM_RNGCLK_MGT (0x284) |
51 | #define PRCM_SSPCLK_MGT PRCM_CLK_MGT(0x280) | 49 | #define PRCM_UICCCLK_MGT (0x27C) |
52 | #define PRCM_RNGCLK_MGT PRCM_CLK_MGT(0x284) | 50 | #define PRCM_MSP1CLK_MGT (0x288) |
53 | #define PRCM_UICCCLK_MGT PRCM_CLK_MGT(0x27C) | 51 | |
54 | #define PRCM_MSP1CLK_MGT PRCM_CLK_MGT(0x288) | 52 | #define PRCM_ARM_PLLDIVPS (prcmu_base + 0x118) |
55 | |||
56 | #define PRCM_ARM_PLLDIVPS (_PRCMU_BASE + 0x118) | ||
57 | #define PRCM_ARM_PLLDIVPS_ARM_BRM_RATE 0x3f | 53 | #define PRCM_ARM_PLLDIVPS_ARM_BRM_RATE 0x3f |
58 | #define PRCM_ARM_PLLDIVPS_MAX_MASK 0xf | 54 | #define PRCM_ARM_PLLDIVPS_MAX_MASK 0xf |
59 | 55 | ||
60 | #define PRCM_PLLARM_LOCKP (_PRCMU_BASE + 0x0a8) | 56 | #define PRCM_PLLARM_LOCKP (prcmu_base + 0x0a8) |
61 | #define PRCM_PLLARM_LOCKP_PRCM_PLLARM_LOCKP3 0x2 | 57 | #define PRCM_PLLARM_LOCKP_PRCM_PLLARM_LOCKP3 0x2 |
62 | 58 | ||
63 | #define PRCM_ARM_CHGCLKREQ (_PRCMU_BASE + 0x114) | 59 | #define PRCM_ARM_CHGCLKREQ (prcmu_base + 0x114) |
64 | #define PRCM_ARM_CHGCLKREQ_PRCM_ARM_CHGCLKREQ BIT(0) | 60 | #define PRCM_ARM_CHGCLKREQ_PRCM_ARM_CHGCLKREQ BIT(0) |
65 | #define PRCM_ARM_CHGCLKREQ_PRCM_ARM_DIVSEL BIT(16) | 61 | #define PRCM_ARM_CHGCLKREQ_PRCM_ARM_DIVSEL BIT(16) |
66 | 62 | ||
67 | #define PRCM_PLLARM_ENABLE (_PRCMU_BASE + 0x98) | 63 | #define PRCM_PLLARM_ENABLE (prcmu_base + 0x98) |
68 | #define PRCM_PLLARM_ENABLE_PRCM_PLLARM_ENABLE 0x1 | 64 | #define PRCM_PLLARM_ENABLE_PRCM_PLLARM_ENABLE 0x1 |
69 | #define PRCM_PLLARM_ENABLE_PRCM_PLLARM_COUNTON 0x100 | 65 | #define PRCM_PLLARM_ENABLE_PRCM_PLLARM_COUNTON 0x100 |
70 | 66 | ||
71 | #define PRCM_ARMCLKFIX_MGT (_PRCMU_BASE + 0x0) | 67 | #define PRCM_ARMCLKFIX_MGT (prcmu_base + 0x0) |
72 | #define PRCM_A9PL_FORCE_CLKEN (_PRCMU_BASE + 0x19C) | 68 | #define PRCM_A9PL_FORCE_CLKEN (prcmu_base + 0x19C) |
73 | #define PRCM_A9_RESETN_CLR (_PRCMU_BASE + 0x1f4) | 69 | #define PRCM_A9_RESETN_CLR (prcmu_base + 0x1f4) |
74 | #define PRCM_A9_RESETN_SET (_PRCMU_BASE + 0x1f0) | 70 | #define PRCM_A9_RESETN_SET (prcmu_base + 0x1f0) |
75 | #define PRCM_ARM_LS_CLAMP (_PRCMU_BASE + 0x30c) | 71 | #define PRCM_ARM_LS_CLAMP (prcmu_base + 0x30c) |
76 | #define PRCM_SRAM_A9 (_PRCMU_BASE + 0x308) | 72 | #define PRCM_SRAM_A9 (prcmu_base + 0x308) |
77 | 73 | ||
78 | #define PRCM_A9PL_FORCE_CLKEN_PRCM_A9PL_FORCE_CLKEN BIT(0) | 74 | #define PRCM_A9PL_FORCE_CLKEN_PRCM_A9PL_FORCE_CLKEN BIT(0) |
79 | #define PRCM_A9PL_FORCE_CLKEN_PRCM_A9AXI_FORCE_CLKEN BIT(1) | 75 | #define PRCM_A9PL_FORCE_CLKEN_PRCM_A9AXI_FORCE_CLKEN BIT(1) |
80 | 76 | ||
81 | /* ARM WFI Standby signal register */ | 77 | /* ARM WFI Standby signal register */ |
82 | #define PRCM_ARM_WFI_STANDBY (_PRCMU_BASE + 0x130) | 78 | #define PRCM_ARM_WFI_STANDBY (prcmu_base + 0x130) |
83 | #define PRCM_ARM_WFI_STANDBY_WFI0 0x08 | 79 | #define PRCM_ARM_WFI_STANDBY_WFI0 0x08 |
84 | #define PRCM_ARM_WFI_STANDBY_WFI1 0x10 | 80 | #define PRCM_ARM_WFI_STANDBY_WFI1 0x10 |
85 | #define PRCM_IOCR (_PRCMU_BASE + 0x310) | 81 | #define PRCM_IOCR (prcmu_base + 0x310) |
86 | #define PRCM_IOCR_IOFORCE 0x1 | 82 | #define PRCM_IOCR_IOFORCE 0x1 |
87 | 83 | ||
88 | /* CPU mailbox registers */ | 84 | /* CPU mailbox registers */ |
89 | #define PRCM_MBOX_CPU_VAL (_PRCMU_BASE + 0x0fc) | 85 | #define PRCM_MBOX_CPU_VAL (prcmu_base + 0x0fc) |
90 | #define PRCM_MBOX_CPU_SET (_PRCMU_BASE + 0x100) | 86 | #define PRCM_MBOX_CPU_SET (prcmu_base + 0x100) |
91 | #define PRCM_MBOX_CPU_CLR (_PRCMU_BASE + 0x104) | 87 | #define PRCM_MBOX_CPU_CLR (prcmu_base + 0x104) |
92 | 88 | ||
93 | /* Dual A9 core interrupt management unit registers */ | 89 | /* Dual A9 core interrupt management unit registers */ |
94 | #define PRCM_A9_MASK_REQ (_PRCMU_BASE + 0x328) | 90 | #define PRCM_A9_MASK_REQ (prcmu_base + 0x328) |
95 | #define PRCM_A9_MASK_REQ_PRCM_A9_MASK_REQ 0x1 | 91 | #define PRCM_A9_MASK_REQ_PRCM_A9_MASK_REQ 0x1 |
96 | 92 | ||
97 | #define PRCM_A9_MASK_ACK (_PRCMU_BASE + 0x32c) | 93 | #define PRCM_A9_MASK_ACK (prcmu_base + 0x32c) |
98 | #define PRCM_ARMITMSK31TO0 (_PRCMU_BASE + 0x11c) | 94 | #define PRCM_ARMITMSK31TO0 (prcmu_base + 0x11c) |
99 | #define PRCM_ARMITMSK63TO32 (_PRCMU_BASE + 0x120) | 95 | #define PRCM_ARMITMSK63TO32 (prcmu_base + 0x120) |
100 | #define PRCM_ARMITMSK95TO64 (_PRCMU_BASE + 0x124) | 96 | #define PRCM_ARMITMSK95TO64 (prcmu_base + 0x124) |
101 | #define PRCM_ARMITMSK127TO96 (_PRCMU_BASE + 0x128) | 97 | #define PRCM_ARMITMSK127TO96 (prcmu_base + 0x128) |
102 | #define PRCM_POWER_STATE_VAL (_PRCMU_BASE + 0x25C) | 98 | #define PRCM_POWER_STATE_VAL (prcmu_base + 0x25C) |
103 | #define PRCM_ARMITVAL31TO0 (_PRCMU_BASE + 0x260) | 99 | #define PRCM_ARMITVAL31TO0 (prcmu_base + 0x260) |
104 | #define PRCM_ARMITVAL63TO32 (_PRCMU_BASE + 0x264) | 100 | #define PRCM_ARMITVAL63TO32 (prcmu_base + 0x264) |
105 | #define PRCM_ARMITVAL95TO64 (_PRCMU_BASE + 0x268) | 101 | #define PRCM_ARMITVAL95TO64 (prcmu_base + 0x268) |
106 | #define PRCM_ARMITVAL127TO96 (_PRCMU_BASE + 0x26C) | 102 | #define PRCM_ARMITVAL127TO96 (prcmu_base + 0x26C) |
107 | 103 | ||
108 | #define PRCM_HOSTACCESS_REQ (_PRCMU_BASE + 0x334) | 104 | #define PRCM_HOSTACCESS_REQ (prcmu_base + 0x334) |
109 | #define PRCM_HOSTACCESS_REQ_HOSTACCESS_REQ 0x1 | 105 | #define PRCM_HOSTACCESS_REQ_HOSTACCESS_REQ 0x1 |
110 | #define PRCM_HOSTACCESS_REQ_WAKE_REQ BIT(16) | 106 | #define PRCM_HOSTACCESS_REQ_WAKE_REQ BIT(16) |
111 | #define ARM_WAKEUP_MODEM 0x1 | 107 | #define ARM_WAKEUP_MODEM 0x1 |
112 | 108 | ||
113 | #define PRCM_ARM_IT1_CLR (_PRCMU_BASE + 0x48C) | 109 | #define PRCM_ARM_IT1_CLR (prcmu_base + 0x48C) |
114 | #define PRCM_ARM_IT1_VAL (_PRCMU_BASE + 0x494) | 110 | #define PRCM_ARM_IT1_VAL (prcmu_base + 0x494) |
115 | #define PRCM_HOLD_EVT (_PRCMU_BASE + 0x174) | 111 | #define PRCM_HOLD_EVT (prcmu_base + 0x174) |
116 | 112 | ||
117 | #define PRCM_MOD_AWAKE_STATUS (_PRCMU_BASE + 0x4A0) | 113 | #define PRCM_MOD_AWAKE_STATUS (prcmu_base + 0x4A0) |
118 | #define PRCM_MOD_AWAKE_STATUS_PRCM_MOD_COREPD_AWAKE BIT(0) | 114 | #define PRCM_MOD_AWAKE_STATUS_PRCM_MOD_COREPD_AWAKE BIT(0) |
119 | #define PRCM_MOD_AWAKE_STATUS_PRCM_MOD_AAPD_AWAKE BIT(1) | 115 | #define PRCM_MOD_AWAKE_STATUS_PRCM_MOD_AAPD_AWAKE BIT(1) |
120 | #define PRCM_MOD_AWAKE_STATUS_PRCM_MOD_VMODEM_OFF_ISO BIT(2) | 116 | #define PRCM_MOD_AWAKE_STATUS_PRCM_MOD_VMODEM_OFF_ISO BIT(2) |
121 | 117 | ||
122 | #define PRCM_ITSTATUS0 (_PRCMU_BASE + 0x148) | 118 | #define PRCM_ITSTATUS0 (prcmu_base + 0x148) |
123 | #define PRCM_ITSTATUS1 (_PRCMU_BASE + 0x150) | 119 | #define PRCM_ITSTATUS1 (prcmu_base + 0x150) |
124 | #define PRCM_ITSTATUS2 (_PRCMU_BASE + 0x158) | 120 | #define PRCM_ITSTATUS2 (prcmu_base + 0x158) |
125 | #define PRCM_ITSTATUS3 (_PRCMU_BASE + 0x160) | 121 | #define PRCM_ITSTATUS3 (prcmu_base + 0x160) |
126 | #define PRCM_ITSTATUS4 (_PRCMU_BASE + 0x168) | 122 | #define PRCM_ITSTATUS4 (prcmu_base + 0x168) |
127 | #define PRCM_ITSTATUS5 (_PRCMU_BASE + 0x484) | 123 | #define PRCM_ITSTATUS5 (prcmu_base + 0x484) |
128 | #define PRCM_ITCLEAR5 (_PRCMU_BASE + 0x488) | 124 | #define PRCM_ITCLEAR5 (prcmu_base + 0x488) |
129 | #define PRCM_ARMIT_MASKXP70_IT (_PRCMU_BASE + 0x1018) | 125 | #define PRCM_ARMIT_MASKXP70_IT (prcmu_base + 0x1018) |
130 | 126 | ||
131 | /* System reset register */ | 127 | /* System reset register */ |
132 | #define PRCM_APE_SOFTRST (_PRCMU_BASE + 0x228) | 128 | #define PRCM_APE_SOFTRST (prcmu_base + 0x228) |
133 | 129 | ||
134 | /* Level shifter and clamp control registers */ | 130 | /* Level shifter and clamp control registers */ |
135 | #define PRCM_MMIP_LS_CLAMP_SET (_PRCMU_BASE + 0x420) | 131 | #define PRCM_MMIP_LS_CLAMP_SET (prcmu_base + 0x420) |
136 | #define PRCM_MMIP_LS_CLAMP_CLR (_PRCMU_BASE + 0x424) | 132 | #define PRCM_MMIP_LS_CLAMP_CLR (prcmu_base + 0x424) |
137 | 133 | ||
138 | #define PRCM_MMIP_LS_CLAMP_DSIPLL_CLAMP BIT(11) | 134 | #define PRCM_MMIP_LS_CLAMP_DSIPLL_CLAMP BIT(11) |
139 | #define PRCM_MMIP_LS_CLAMP_DSIPLL_CLAMPI BIT(22) | 135 | #define PRCM_MMIP_LS_CLAMP_DSIPLL_CLAMPI BIT(22) |
140 | 136 | ||
141 | /* PRCMU clock/PLL/reset registers */ | 137 | /* PRCMU clock/PLL/reset registers */ |
142 | #define PRCM_PLLSOC0_FREQ (_PRCMU_BASE + 0x080) | 138 | #define PRCM_PLLSOC0_FREQ (prcmu_base + 0x080) |
143 | #define PRCM_PLLSOC1_FREQ (_PRCMU_BASE + 0x084) | 139 | #define PRCM_PLLSOC1_FREQ (prcmu_base + 0x084) |
144 | #define PRCM_PLLARM_FREQ (_PRCMU_BASE + 0x088) | 140 | #define PRCM_PLLARM_FREQ (prcmu_base + 0x088) |
145 | #define PRCM_PLLDDR_FREQ (_PRCMU_BASE + 0x08C) | 141 | #define PRCM_PLLDDR_FREQ (prcmu_base + 0x08C) |
146 | #define PRCM_PLL_FREQ_D_SHIFT 0 | 142 | #define PRCM_PLL_FREQ_D_SHIFT 0 |
147 | #define PRCM_PLL_FREQ_D_MASK BITS(0, 7) | 143 | #define PRCM_PLL_FREQ_D_MASK BITS(0, 7) |
148 | #define PRCM_PLL_FREQ_N_SHIFT 8 | 144 | #define PRCM_PLL_FREQ_N_SHIFT 8 |
@@ -152,14 +148,14 @@ | |||
152 | #define PRCM_PLL_FREQ_SELDIV2 BIT(24) | 148 | #define PRCM_PLL_FREQ_SELDIV2 BIT(24) |
153 | #define PRCM_PLL_FREQ_DIV2EN BIT(25) | 149 | #define PRCM_PLL_FREQ_DIV2EN BIT(25) |
154 | 150 | ||
155 | #define PRCM_PLLDSI_FREQ (_PRCMU_BASE + 0x500) | 151 | #define PRCM_PLLDSI_FREQ (prcmu_base + 0x500) |
156 | #define PRCM_PLLDSI_ENABLE (_PRCMU_BASE + 0x504) | 152 | #define PRCM_PLLDSI_ENABLE (prcmu_base + 0x504) |
157 | #define PRCM_PLLDSI_LOCKP (_PRCMU_BASE + 0x508) | 153 | #define PRCM_PLLDSI_LOCKP (prcmu_base + 0x508) |
158 | #define PRCM_DSI_PLLOUT_SEL (_PRCMU_BASE + 0x530) | 154 | #define PRCM_DSI_PLLOUT_SEL (prcmu_base + 0x530) |
159 | #define PRCM_DSITVCLK_DIV (_PRCMU_BASE + 0x52C) | 155 | #define PRCM_DSITVCLK_DIV (prcmu_base + 0x52C) |
160 | #define PRCM_PLLDSI_LOCKP (_PRCMU_BASE + 0x508) | 156 | #define PRCM_PLLDSI_LOCKP (prcmu_base + 0x508) |
161 | #define PRCM_APE_RESETN_SET (_PRCMU_BASE + 0x1E4) | 157 | #define PRCM_APE_RESETN_SET (prcmu_base + 0x1E4) |
162 | #define PRCM_APE_RESETN_CLR (_PRCMU_BASE + 0x1E8) | 158 | #define PRCM_APE_RESETN_CLR (prcmu_base + 0x1E8) |
163 | 159 | ||
164 | #define PRCM_PLLDSI_ENABLE_PRCM_PLLDSI_ENABLE BIT(0) | 160 | #define PRCM_PLLDSI_ENABLE_PRCM_PLLDSI_ENABLE BIT(0) |
165 | 161 | ||
@@ -188,30 +184,30 @@ | |||
188 | 184 | ||
189 | #define PRCM_APE_RESETN_DSIPLL_RESETN BIT(14) | 185 | #define PRCM_APE_RESETN_DSIPLL_RESETN BIT(14) |
190 | 186 | ||
191 | #define PRCM_CLKOCR (_PRCMU_BASE + 0x1CC) | 187 | #define PRCM_CLKOCR (prcmu_base + 0x1CC) |
192 | #define PRCM_CLKOCR_CLKOUT0_REF_CLK (1 << 0) | 188 | #define PRCM_CLKOCR_CLKOUT0_REF_CLK (1 << 0) |
193 | #define PRCM_CLKOCR_CLKOUT0_MASK BITS(0, 13) | 189 | #define PRCM_CLKOCR_CLKOUT0_MASK BITS(0, 13) |
194 | #define PRCM_CLKOCR_CLKOUT1_REF_CLK (1 << 16) | 190 | #define PRCM_CLKOCR_CLKOUT1_REF_CLK (1 << 16) |
195 | #define PRCM_CLKOCR_CLKOUT1_MASK BITS(16, 29) | 191 | #define PRCM_CLKOCR_CLKOUT1_MASK BITS(16, 29) |
196 | 192 | ||
197 | /* ePOD and memory power signal control registers */ | 193 | /* ePOD and memory power signal control registers */ |
198 | #define PRCM_EPOD_C_SET (_PRCMU_BASE + 0x410) | 194 | #define PRCM_EPOD_C_SET (prcmu_base + 0x410) |
199 | #define PRCM_SRAM_LS_SLEEP (_PRCMU_BASE + 0x304) | 195 | #define PRCM_SRAM_LS_SLEEP (prcmu_base + 0x304) |
200 | 196 | ||
201 | /* Debug power control unit registers */ | 197 | /* Debug power control unit registers */ |
202 | #define PRCM_POWER_STATE_SET (_PRCMU_BASE + 0x254) | 198 | #define PRCM_POWER_STATE_SET (prcmu_base + 0x254) |
203 | 199 | ||
204 | /* Miscellaneous unit registers */ | 200 | /* Miscellaneous unit registers */ |
205 | #define PRCM_DSI_SW_RESET (_PRCMU_BASE + 0x324) | 201 | #define PRCM_DSI_SW_RESET (prcmu_base + 0x324) |
206 | #define PRCM_GPIOCR (_PRCMU_BASE + 0x138) | 202 | #define PRCM_GPIOCR (prcmu_base + 0x138) |
207 | #define PRCM_GPIOCR_DBG_STM_MOD_CMD1 0x800 | 203 | #define PRCM_GPIOCR_DBG_STM_MOD_CMD1 0x800 |
208 | #define PRCM_GPIOCR_DBG_UARTMOD_CMD0 0x1 | 204 | #define PRCM_GPIOCR_DBG_UARTMOD_CMD0 0x1 |
209 | 205 | ||
210 | /* PRCMU HW semaphore */ | 206 | /* PRCMU HW semaphore */ |
211 | #define PRCM_SEM (_PRCMU_BASE + 0x400) | 207 | #define PRCM_SEM (prcmu_base + 0x400) |
212 | #define PRCM_SEM_PRCM_SEM BIT(0) | 208 | #define PRCM_SEM_PRCM_SEM BIT(0) |
213 | 209 | ||
214 | #define PRCM_TCR (_PRCMU_BASE + 0x1C8) | 210 | #define PRCM_TCR (prcmu_base + 0x1C8) |
215 | #define PRCM_TCR_TENSEL_MASK BITS(0, 7) | 211 | #define PRCM_TCR_TENSEL_MASK BITS(0, 7) |
216 | #define PRCM_TCR_STOP_TIMERS BIT(16) | 212 | #define PRCM_TCR_STOP_TIMERS BIT(16) |
217 | #define PRCM_TCR_DOZE_MODE BIT(17) | 213 | #define PRCM_TCR_DOZE_MODE BIT(17) |
@@ -239,15 +235,15 @@ | |||
239 | /* GPIOCR register */ | 235 | /* GPIOCR register */ |
240 | #define PRCM_GPIOCR_SPI2_SELECT BIT(23) | 236 | #define PRCM_GPIOCR_SPI2_SELECT BIT(23) |
241 | 237 | ||
242 | #define PRCM_DDR_SUBSYS_APE_MINBW (_PRCMU_BASE + 0x438) | 238 | #define PRCM_DDR_SUBSYS_APE_MINBW (prcmu_base + 0x438) |
243 | #define PRCM_CGATING_BYPASS (_PRCMU_BASE + 0x134) | 239 | #define PRCM_CGATING_BYPASS (prcmu_base + 0x134) |
244 | #define PRCM_CGATING_BYPASS_ICN2 BIT(6) | 240 | #define PRCM_CGATING_BYPASS_ICN2 BIT(6) |
245 | 241 | ||
246 | /* Miscellaneous unit registers */ | 242 | /* Miscellaneous unit registers */ |
247 | #define PRCM_RESOUTN_SET (_PRCMU_BASE + 0x214) | 243 | #define PRCM_RESOUTN_SET (prcmu_base + 0x214) |
248 | #define PRCM_RESOUTN_CLR (_PRCMU_BASE + 0x218) | 244 | #define PRCM_RESOUTN_CLR (prcmu_base + 0x218) |
249 | 245 | ||
250 | /* System reset register */ | 246 | /* System reset register */ |
251 | #define PRCM_APE_SOFTRST (_PRCMU_BASE + 0x228) | 247 | #define PRCM_APE_SOFTRST (prcmu_base + 0x228) |
252 | 248 | ||
253 | #endif /* __DB8500_PRCMU_REGS_H */ | 249 | #endif /* __DB8500_PRCMU_REGS_H */ |