diff options
author | David Howells <dhowells@redhat.com> | 2010-10-07 09:08:49 -0400 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2010-10-07 09:08:49 -0400 |
commit | 3dcc1e7f9fd48f20beefd41a684cd471a96565c5 (patch) | |
tree | 02ab916ad68feafdbd3fa5013958c9f4ec6f8457 /arch/blackfin/mach-bf537 | |
parent | cb655d0f3d57c23db51b981648e452988c0223f9 (diff) |
Blackfin: Split PLL code from mach-specific cdef headers
Split the PLL control code from the Blackfin machine-specific cdef headers so
that the irqflags functions can be renamed without incurring a header loop.
Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'arch/blackfin/mach-bf537')
-rw-r--r-- | arch/blackfin/mach-bf537/include/mach/cdefBF534.h | 44 | ||||
-rw-r--r-- | arch/blackfin/mach-bf537/include/mach/pll.h | 57 |
2 files changed, 57 insertions, 44 deletions
diff --git a/arch/blackfin/mach-bf537/include/mach/cdefBF534.h b/arch/blackfin/mach-bf537/include/mach/cdefBF534.h index 91825c9bd226..fbeb35e14135 100644 --- a/arch/blackfin/mach-bf537/include/mach/cdefBF534.h +++ b/arch/blackfin/mach-bf537/include/mach/cdefBF534.h | |||
@@ -1750,48 +1750,4 @@ | |||
1750 | /* These need to be last due to the cdef/linux inter-dependencies */ | 1750 | /* These need to be last due to the cdef/linux inter-dependencies */ |
1751 | #include <asm/irq.h> | 1751 | #include <asm/irq.h> |
1752 | 1752 | ||
1753 | /* Writing to PLL_CTL initiates a PLL relock sequence. */ | ||
1754 | static __inline__ void bfin_write_PLL_CTL(unsigned int val) | ||
1755 | { | ||
1756 | unsigned long flags, iwr; | ||
1757 | |||
1758 | if (val == bfin_read_PLL_CTL()) | ||
1759 | return; | ||
1760 | |||
1761 | local_irq_save_hw(flags); | ||
1762 | /* Enable the PLL Wakeup bit in SIC IWR */ | ||
1763 | iwr = bfin_read32(SIC_IWR); | ||
1764 | /* Only allow PPL Wakeup) */ | ||
1765 | bfin_write32(SIC_IWR, IWR_ENABLE(0)); | ||
1766 | |||
1767 | bfin_write16(PLL_CTL, val); | ||
1768 | SSYNC(); | ||
1769 | asm("IDLE;"); | ||
1770 | |||
1771 | bfin_write32(SIC_IWR, iwr); | ||
1772 | local_irq_restore_hw(flags); | ||
1773 | } | ||
1774 | |||
1775 | /* Writing to VR_CTL initiates a PLL relock sequence. */ | ||
1776 | static __inline__ void bfin_write_VR_CTL(unsigned int val) | ||
1777 | { | ||
1778 | unsigned long flags, iwr; | ||
1779 | |||
1780 | if (val == bfin_read_VR_CTL()) | ||
1781 | return; | ||
1782 | |||
1783 | local_irq_save_hw(flags); | ||
1784 | /* Enable the PLL Wakeup bit in SIC IWR */ | ||
1785 | iwr = bfin_read32(SIC_IWR); | ||
1786 | /* Only allow PPL Wakeup) */ | ||
1787 | bfin_write32(SIC_IWR, IWR_ENABLE(0)); | ||
1788 | |||
1789 | bfin_write16(VR_CTL, val); | ||
1790 | SSYNC(); | ||
1791 | asm("IDLE;"); | ||
1792 | |||
1793 | bfin_write32(SIC_IWR, iwr); | ||
1794 | local_irq_restore_hw(flags); | ||
1795 | } | ||
1796 | |||
1797 | #endif /* _CDEF_BF534_H */ | 1753 | #endif /* _CDEF_BF534_H */ |
diff --git a/arch/blackfin/mach-bf537/include/mach/pll.h b/arch/blackfin/mach-bf537/include/mach/pll.h new file mode 100644 index 000000000000..9a0c9a2f1278 --- /dev/null +++ b/arch/blackfin/mach-bf537/include/mach/pll.h | |||
@@ -0,0 +1,57 @@ | |||
1 | /* | ||
2 | * Copyright 2005-2008 Analog Devices Inc. | ||
3 | * | ||
4 | * Licensed under the GPL-2 or later | ||
5 | */ | ||
6 | |||
7 | #ifndef _MACH_PLL_H | ||
8 | #define _MACH_PLL_H | ||
9 | |||
10 | #include <asm/blackfin.h> | ||
11 | #include <asm/irqflags.h> | ||
12 | |||
13 | /* Writing to PLL_CTL initiates a PLL relock sequence. */ | ||
14 | static __inline__ void bfin_write_PLL_CTL(unsigned int val) | ||
15 | { | ||
16 | unsigned long flags, iwr; | ||
17 | |||
18 | if (val == bfin_read_PLL_CTL()) | ||
19 | return; | ||
20 | |||
21 | local_irq_save_hw(flags); | ||
22 | /* Enable the PLL Wakeup bit in SIC IWR */ | ||
23 | iwr = bfin_read32(SIC_IWR); | ||
24 | /* Only allow PPL Wakeup) */ | ||
25 | bfin_write32(SIC_IWR, IWR_ENABLE(0)); | ||
26 | |||
27 | bfin_write16(PLL_CTL, val); | ||
28 | SSYNC(); | ||
29 | asm("IDLE;"); | ||
30 | |||
31 | bfin_write32(SIC_IWR, iwr); | ||
32 | local_irq_restore_hw(flags); | ||
33 | } | ||
34 | |||
35 | /* Writing to VR_CTL initiates a PLL relock sequence. */ | ||
36 | static __inline__ void bfin_write_VR_CTL(unsigned int val) | ||
37 | { | ||
38 | unsigned long flags, iwr; | ||
39 | |||
40 | if (val == bfin_read_VR_CTL()) | ||
41 | return; | ||
42 | |||
43 | local_irq_save_hw(flags); | ||
44 | /* Enable the PLL Wakeup bit in SIC IWR */ | ||
45 | iwr = bfin_read32(SIC_IWR); | ||
46 | /* Only allow PPL Wakeup) */ | ||
47 | bfin_write32(SIC_IWR, IWR_ENABLE(0)); | ||
48 | |||
49 | bfin_write16(VR_CTL, val); | ||
50 | SSYNC(); | ||
51 | asm("IDLE;"); | ||
52 | |||
53 | bfin_write32(SIC_IWR, iwr); | ||
54 | local_irq_restore_hw(flags); | ||
55 | } | ||
56 | |||
57 | #endif /* _MACH_PLL_H */ | ||