aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-bcmring/include/mach/csp/reg.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-10-01 21:32:45 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-10-01 21:32:45 -0400
commitac9e7ab32fe42489808c8d9fc89ad413d2805766 (patch)
treed5628b62e23fae6a0acd000a7bb16030c89f2073 /arch/arm/mach-bcmring/include/mach/csp/reg.h
parent2a2bf85f05e42b12ea6bfe821e2d19221cf93555 (diff)
parentb98138e00d96abc85b100c9b6886f105d9868ab5 (diff)
Merge tag 'cleanup2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM soc cleanups, part 2 from Olof Johansson: "A shorter cleanup branch submitted separately due to dependencies with some of the previous topics. Major thing here is that the Broadcom bcmring platform is removed. It's an SoC that's used on some stationary VoIP platforms, and is in desperate need of some cleanup. Broadcom came back and suggested that we just deprecate the platform for now, since they aren't going to spend the resources needed on cleaning it up, and there are no users of the platform directly from mainline." Fix some conflicts due to BCM2835 getting added next to the removed BCMRING, and removal of tegra files that had been converted to devicetree. * tag 'cleanup2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM: Orion5x: ts78xx: Add IOMEM for virtual addresses. ARM: ux500: use __iomem pointers for MMIO ARM: Remove mach-bcmring ARM: clps711x: Remove board support for CEIVA ARM: clps711x: Fix register definitions ARM: clps711x: Fix lowlevel debug-macro ARM: clps711x: Added simple clock framework pinctrl: tegra: move pinconf-tegra.h content into drivers/pinctrl ARM: tegra: delete unused headers ARM: tegra: remove useless includes of <mach/*.h> ARM: tegra: remove dead code
Diffstat (limited to 'arch/arm/mach-bcmring/include/mach/csp/reg.h')
-rw-r--r--arch/arm/mach-bcmring/include/mach/csp/reg.h115
1 files changed, 0 insertions, 115 deletions
diff --git a/arch/arm/mach-bcmring/include/mach/csp/reg.h b/arch/arm/mach-bcmring/include/mach/csp/reg.h
deleted file mode 100644
index d9cbdca8cd25..000000000000
--- a/arch/arm/mach-bcmring/include/mach/csp/reg.h
+++ /dev/null
@@ -1,115 +0,0 @@
1/*****************************************************************************
2* Copyright 2003 - 2008 Broadcom Corporation. All rights reserved.
3*
4* Unless you and Broadcom execute a separate written software license
5* agreement governing use of this software, this software is licensed to you
6* under the terms of the GNU General Public License version 2, available at
7* http://www.broadcom.com/licenses/GPLv2.php (the "GPL").
8*
9* Notwithstanding the above, under no circumstances may you combine this
10* software in any way with any other Broadcom software provided under a
11* license other than the GPL, without Broadcom's express prior written
12* consent.
13*****************************************************************************/
14
15/****************************************************************************/
16/**
17* @file reg.h
18*
19* @brief Generic register definitions used in CSP
20*/
21/****************************************************************************/
22
23#ifndef CSP_REG_H
24#define CSP_REG_H
25
26/* ---- Include Files ---------------------------------------------------- */
27
28#include <linux/types.h>
29#include <linux/io.h>
30
31/* ---- Public Constants and Types --------------------------------------- */
32
33#define __REG32(x) (*((volatile uint32_t __iomem *)(x)))
34#define __REG16(x) (*((volatile uint16_t __iomem *)(x)))
35#define __REG8(x) (*((volatile uint8_t __iomem *) (x)))
36
37/* Macros used to define a sequence of reserved registers. The start / end */
38/* are byte offsets in the particular register definition, with the "end" */
39/* being the offset of the next un-reserved register. E.g. if offsets */
40/* 0x10 through to 0x1f are reserved, then this reserved area could be */
41/* specified as follows. */
42/* typedef struct */
43/* { */
44/* uint32_t reg1; offset 0x00 */
45/* uint32_t reg2; offset 0x04 */
46/* uint32_t reg3; offset 0x08 */
47/* uint32_t reg4; offset 0x0c */
48/* REG32_RSVD(0x10, 0x20); */
49/* uint32_t reg5; offset 0x20 */
50/* ... */
51/* } EXAMPLE_REG_t; */
52#define REG8_RSVD(start, end) uint8_t rsvd_##start[(end - start) / sizeof(uint8_t)]
53#define REG16_RSVD(start, end) uint16_t rsvd_##start[(end - start) / sizeof(uint16_t)]
54#define REG32_RSVD(start, end) uint32_t rsvd_##start[(end - start) / sizeof(uint32_t)]
55
56/* ---- Public Variable Externs ------------------------------------------ */
57/* ---- Public Function Prototypes --------------------------------------- */
58
59/* Note: When protecting multiple statements, the REG_LOCAL_IRQ_SAVE and */
60/* REG_LOCAL_IRQ_RESTORE must be enclosed in { } to allow the */
61/* flags variable to be declared locally. */
62/* e.g. */
63/* statement1; */
64/* { */
65/* REG_LOCAL_IRQ_SAVE; */
66/* <multiple statements here> */
67/* REG_LOCAL_IRQ_RESTORE; */
68/* } */
69/* statement2; */
70/* */
71
72#if defined(__KERNEL__) && !defined(STANDALONE)
73#include <mach/hardware.h>
74#include <linux/interrupt.h>
75
76#define REG_LOCAL_IRQ_SAVE HW_DECLARE_SPINLOCK(reg32) \
77 unsigned long flags; HW_IRQ_SAVE(reg32, flags)
78
79#define REG_LOCAL_IRQ_RESTORE HW_IRQ_RESTORE(reg32, flags)
80
81#else
82
83#define REG_LOCAL_IRQ_SAVE
84#define REG_LOCAL_IRQ_RESTORE
85
86#endif
87
88static inline void reg32_modify_and(volatile uint32_t __iomem *reg, uint32_t value)
89{
90 REG_LOCAL_IRQ_SAVE;
91 __raw_writel(__raw_readl(reg) & value, reg);
92 REG_LOCAL_IRQ_RESTORE;
93}
94
95static inline void reg32_modify_or(volatile uint32_t __iomem *reg, uint32_t value)
96{
97 REG_LOCAL_IRQ_SAVE;
98 __raw_writel(__raw_readl(reg) | value, reg);
99 REG_LOCAL_IRQ_RESTORE;
100}
101
102static inline void reg32_modify_mask(volatile uint32_t __iomem *reg, uint32_t mask,
103 uint32_t value)
104{
105 REG_LOCAL_IRQ_SAVE;
106 __raw_writel((__raw_readl(reg) & mask) | value, reg);
107 REG_LOCAL_IRQ_RESTORE;
108}
109
110static inline void reg32_write(volatile uint32_t __iomem *reg, uint32_t value)
111{
112 __raw_writel(value, reg);
113}
114
115#endif /* CSP_REG_H */