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-bf561/include | |
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-bf561/include')
-rw-r--r-- | arch/blackfin/mach-bf561/include/mach/cdefBF561.h | 50 | ||||
-rw-r--r-- | arch/blackfin/mach-bf561/include/mach/pll.h | 63 |
2 files changed, 63 insertions, 50 deletions
diff --git a/arch/blackfin/mach-bf561/include/mach/cdefBF561.h b/arch/blackfin/mach-bf561/include/mach/cdefBF561.h index 81ecdb71c6af..cc0416a5fa02 100644 --- a/arch/blackfin/mach-bf561/include/mach/cdefBF561.h +++ b/arch/blackfin/mach-bf561/include/mach/cdefBF561.h | |||
@@ -1534,54 +1534,4 @@ | |||
1534 | /* These need to be last due to the cdef/linux inter-dependencies */ | 1534 | /* These need to be last due to the cdef/linux inter-dependencies */ |
1535 | #include <asm/irq.h> | 1535 | #include <asm/irq.h> |
1536 | 1536 | ||
1537 | /* Writing to PLL_CTL initiates a PLL relock sequence. */ | ||
1538 | static __inline__ void bfin_write_PLL_CTL(unsigned int val) | ||
1539 | { | ||
1540 | unsigned long flags, iwr0, iwr1; | ||
1541 | |||
1542 | if (val == bfin_read_PLL_CTL()) | ||
1543 | return; | ||
1544 | |||
1545 | local_irq_save_hw(flags); | ||
1546 | /* Enable the PLL Wakeup bit in SIC IWR */ | ||
1547 | iwr0 = bfin_read32(SICA_IWR0); | ||
1548 | iwr1 = bfin_read32(SICA_IWR1); | ||
1549 | /* Only allow PPL Wakeup) */ | ||
1550 | bfin_write32(SICA_IWR0, IWR_ENABLE(0)); | ||
1551 | bfin_write32(SICA_IWR1, 0); | ||
1552 | |||
1553 | bfin_write16(PLL_CTL, val); | ||
1554 | SSYNC(); | ||
1555 | asm("IDLE;"); | ||
1556 | |||
1557 | bfin_write32(SICA_IWR0, iwr0); | ||
1558 | bfin_write32(SICA_IWR1, iwr1); | ||
1559 | local_irq_restore_hw(flags); | ||
1560 | } | ||
1561 | |||
1562 | /* Writing to VR_CTL initiates a PLL relock sequence. */ | ||
1563 | static __inline__ void bfin_write_VR_CTL(unsigned int val) | ||
1564 | { | ||
1565 | unsigned long flags, iwr0, iwr1; | ||
1566 | |||
1567 | if (val == bfin_read_VR_CTL()) | ||
1568 | return; | ||
1569 | |||
1570 | local_irq_save_hw(flags); | ||
1571 | /* Enable the PLL Wakeup bit in SIC IWR */ | ||
1572 | iwr0 = bfin_read32(SICA_IWR0); | ||
1573 | iwr1 = bfin_read32(SICA_IWR1); | ||
1574 | /* Only allow PPL Wakeup) */ | ||
1575 | bfin_write32(SICA_IWR0, IWR_ENABLE(0)); | ||
1576 | bfin_write32(SICA_IWR1, 0); | ||
1577 | |||
1578 | bfin_write16(VR_CTL, val); | ||
1579 | SSYNC(); | ||
1580 | asm("IDLE;"); | ||
1581 | |||
1582 | bfin_write32(SICA_IWR0, iwr0); | ||
1583 | bfin_write32(SICA_IWR1, iwr1); | ||
1584 | local_irq_restore_hw(flags); | ||
1585 | } | ||
1586 | |||
1587 | #endif /* _CDEF_BF561_H */ | 1537 | #endif /* _CDEF_BF561_H */ |
diff --git a/arch/blackfin/mach-bf561/include/mach/pll.h b/arch/blackfin/mach-bf561/include/mach/pll.h new file mode 100644 index 000000000000..4baa44fccebd --- /dev/null +++ b/arch/blackfin/mach-bf561/include/mach/pll.h | |||
@@ -0,0 +1,63 @@ | |||
1 | /* | ||
2 | * Copyright 2005-2009 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, iwr0, iwr1; | ||
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 | iwr0 = bfin_read32(SICA_IWR0); | ||
24 | iwr1 = bfin_read32(SICA_IWR1); | ||
25 | /* Only allow PPL Wakeup) */ | ||
26 | bfin_write32(SICA_IWR0, IWR_ENABLE(0)); | ||
27 | bfin_write32(SICA_IWR1, 0); | ||
28 | |||
29 | bfin_write16(PLL_CTL, val); | ||
30 | SSYNC(); | ||
31 | asm("IDLE;"); | ||
32 | |||
33 | bfin_write32(SICA_IWR0, iwr0); | ||
34 | bfin_write32(SICA_IWR1, iwr1); | ||
35 | local_irq_restore_hw(flags); | ||
36 | } | ||
37 | |||
38 | /* Writing to VR_CTL initiates a PLL relock sequence. */ | ||
39 | static __inline__ void bfin_write_VR_CTL(unsigned int val) | ||
40 | { | ||
41 | unsigned long flags, iwr0, iwr1; | ||
42 | |||
43 | if (val == bfin_read_VR_CTL()) | ||
44 | return; | ||
45 | |||
46 | local_irq_save_hw(flags); | ||
47 | /* Enable the PLL Wakeup bit in SIC IWR */ | ||
48 | iwr0 = bfin_read32(SICA_IWR0); | ||
49 | iwr1 = bfin_read32(SICA_IWR1); | ||
50 | /* Only allow PPL Wakeup) */ | ||
51 | bfin_write32(SICA_IWR0, IWR_ENABLE(0)); | ||
52 | bfin_write32(SICA_IWR1, 0); | ||
53 | |||
54 | bfin_write16(VR_CTL, val); | ||
55 | SSYNC(); | ||
56 | asm("IDLE;"); | ||
57 | |||
58 | bfin_write32(SICA_IWR0, iwr0); | ||
59 | bfin_write32(SICA_IWR1, iwr1); | ||
60 | local_irq_restore_hw(flags); | ||
61 | } | ||
62 | |||
63 | #endif /* _MACH_PLL_H */ | ||