-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
yaml --- r: 108100 b: refs/heads/master c: b47eb40 h: refs/heads/master v: v3
- Loading branch information
Haavard Skinnemoen
committed
Aug 8, 2008
1 parent
e992bc7
commit 3058dad
Showing
7 changed files
with
181 additions
and
202 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: a8d902db221e1e2dcbbd32efbf89055ed69f8e56 | ||
refs/heads/master: b47eb4092f81ae9fe406fa2c6719eaa9cd7a593c |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
/* | ||
* High-Speed Bus Matrix helper functions | ||
* | ||
* Copyright (C) 2008 Atmel Corporation | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2 as | ||
* published by the Free Software Foundation. | ||
*/ | ||
#include <linux/clk.h> | ||
#include <linux/io.h> | ||
|
||
#include <mach/chip.h> | ||
#include <mach/hmatrix.h> | ||
|
||
static inline void __hmatrix_write_reg(unsigned long offset, u32 value) | ||
{ | ||
__raw_writel(value, (void __iomem __force *)(HMATRIX_BASE + offset)); | ||
} | ||
|
||
static inline u32 __hmatrix_read_reg(unsigned long offset) | ||
{ | ||
return __raw_readl((void __iomem __force *)(HMATRIX_BASE + offset)); | ||
} | ||
|
||
/** | ||
* hmatrix_write_reg - write HMATRIX configuration register | ||
* @offset: register offset | ||
* @value: value to be written to the register at @offset | ||
*/ | ||
void hmatrix_write_reg(unsigned long offset, u32 value) | ||
{ | ||
clk_enable(&at32_hmatrix_clk); | ||
__hmatrix_write_reg(offset, value); | ||
__hmatrix_read_reg(offset); | ||
clk_disable(&at32_hmatrix_clk); | ||
} | ||
|
||
/** | ||
* hmatrix_read_reg - read HMATRIX configuration register | ||
* @offset: register offset | ||
* | ||
* Returns the value of the register at @offset. | ||
*/ | ||
u32 hmatrix_read_reg(unsigned long offset) | ||
{ | ||
u32 value; | ||
|
||
clk_enable(&at32_hmatrix_clk); | ||
value = __hmatrix_read_reg(offset); | ||
clk_disable(&at32_hmatrix_clk); | ||
|
||
return value; | ||
} | ||
|
||
/** | ||
* hmatrix_sfr_set_bits - set bits in a slave's Special Function Register | ||
* @slave_id: operate on the SFR belonging to this slave | ||
* @mask: mask of bits to be set in the SFR | ||
*/ | ||
void hmatrix_sfr_set_bits(unsigned int slave_id, u32 mask) | ||
{ | ||
u32 value; | ||
|
||
clk_enable(&at32_hmatrix_clk); | ||
value = __hmatrix_read_reg(HMATRIX_SFR(slave_id)); | ||
value |= mask; | ||
__hmatrix_write_reg(HMATRIX_SFR(slave_id), value); | ||
__hmatrix_read_reg(HMATRIX_SFR(slave_id)); | ||
clk_disable(&at32_hmatrix_clk); | ||
} | ||
|
||
/** | ||
* hmatrix_sfr_set_bits - clear bits in a slave's Special Function Register | ||
* @slave_id: operate on the SFR belonging to this slave | ||
* @mask: mask of bits to be cleared in the SFR | ||
*/ | ||
void hmatrix_sfr_clear_bits(unsigned int slave_id, u32 mask) | ||
{ | ||
u32 value; | ||
|
||
clk_enable(&at32_hmatrix_clk); | ||
value = __hmatrix_read_reg(HMATRIX_SFR(slave_id)); | ||
value &= ~mask; | ||
__hmatrix_write_reg(HMATRIX_SFR(slave_id), value); | ||
__hmatrix_read_reg(HMATRIX_SFR(slave_id)); | ||
clk_disable(&at32_hmatrix_clk); | ||
} |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.