Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 69485
b: refs/heads/master
c: f02e579
h: refs/heads/master
i:
  69483: 8bec2ee
v: v3
  • Loading branch information
Uwe Kleine-König authored and Russell King committed Oct 12, 2007
1 parent 31e00f8 commit 382f656
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 14 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 689f2a01e68c0033f59055dd816ff27dc51f9dcc
refs/heads/master: f02e579558cf2aba06ecc7d4515661286b60f411
4 changes: 2 additions & 2 deletions trunk/include/asm-arm/arch-ns9xxx/clock.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ static inline u32 ns9xxx_systemclock(void)
*
* Fine.
*/
return CRYSTAL * (REGGET(pll, SYS_PLL, ND) + 1)
>> REGGET(pll, SYS_PLL, FS);
return CRYSTAL * (REGGETIM(pll, SYS_PLL, ND) + 1)
>> REGGETIM(pll, SYS_PLL, FS);
}

static inline u32 ns9xxx_cpuclock(void) __attribute__((const));
Expand Down
39 changes: 28 additions & 11 deletions trunk/include/asm-arm/arch-ns9xxx/hardware.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,11 @@
#define io_v2p(x) ((((x) & 0x0f000000) << 4) \
+ ((x) & 0x00ffffff))

#define __REGSHIFT(mask) ((mask) & (-(mask)))

#define __REGBIT(bit) ((u32)1 << (bit))
#define __REGBITS(hbit, lbit) ((((u32)1 << ((hbit) - (lbit) + 1)) - 1) << (lbit))
#define __REGVAL(mask, value) (((value) * ((mask) & (-(mask))) & (mask)))
#define __REGVAL(mask, value) (((value) * __REGSHIFT(mask)) & (mask))

#ifndef __ASSEMBLY__

Expand All @@ -39,21 +41,36 @@
# define __REGB(x) (*((volatile u8 *)io_p2v((x))))
# define __REGB2(x) (*((volatile u8 *)io_p2v((x)) + (y)))

# define __REGSET(var, field, value) \
((var) = (((var) & ~((field) & ~(value))) | (value)))

# define REGSET(var, reg, field, value) \
((var) = (((var) \
& ~(reg ## _ ## field & \
~ reg ## _ ## field ## _ ## value)) \
| (reg ## _ ## field ## _ ## value)))
__REGSET(var, reg ## _ ## field, reg ## _ ## field ## _ ## value)

# define REGSET_IDX(var, reg, field, idx, value) \
__REGSET(var, reg ## _ ## field((idx)), reg ## _ ## field ## _ ## value((idx)))

# define REGSETIM(var, reg, field, value) \
((var) = (((var) \
& ~(reg ## _ ## field & \
~(__REGVAL(reg ## _ ## field, value)))) \
| (__REGVAL(reg ## _ ## field, value))))
__REGSET(var, reg ## _ ## field, __REGVAL(reg ## _ ## field, (value)))

# define REGSETIM_IDX(var, reg, field, idx, value) \
__REGSET(var, reg ## _ ## field((idx)), __REGVAL(reg ## _ ## field((idx)), (value)))

# define __REGGET(var, field) \
(((var) & (field)))

# define REGGET(var, reg, field) \
((var & (reg ## _ ## field)) / \
((reg ## _ ## field) & (-(reg ## _ ## field))))
__REGGET(var, reg ## _ ## field)

# define REGGET_IDX(var, reg, field, idx) \
__REGGET(var, reg ## _ ## field((idx)))

# define REGGETIM(var, reg, field) \
__REGGET(var, reg ## _ ## field) / __REGSHIFT(reg ## _ ## field)

# define REGGETIM_IDX(var, reg, field, idx) \
__REGGET(var, reg ## _ ## field((idx))) / \
__REGSHIFT(reg ## _ ## field((idx)))

#else

Expand Down

0 comments on commit 382f656

Please sign in to comment.