summaryrefslogtreecommitdiff
path: root/firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c')
-rw-r--r--firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c b/firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c
index 19e9bed1e1..f789827d80 100644
--- a/firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c
+++ b/firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c
@@ -104,6 +104,24 @@ void memory_init(void) {
104 enable_mmu(); 104 enable_mmu();
105} 105}
106 106
107void s3c_regmod(volatile int *reg, unsigned int set, unsigned int clr)
108{
109 int oldstatus = disable_interrupt_save(IRQ_FIQ_STATUS);
110 unsigned int val = *reg;
111 *reg = (val | set) & ~clr;
112 restore_interrupt(oldstatus);
113}
114
115void s3c_regset(volatile int *reg, unsigned int mask)
116{
117 s3c_regmod(reg, mask, 0);
118}
119
120void s3c_regclr(volatile int *reg, unsigned int mask)
121{
122 s3c_regmod(reg, 0, mask);
123}
124
107void system_init(void) 125void system_init(void)
108{ 126{
109 /* Disable interrupts and set all to IRQ mode */ 127 /* Disable interrupts and set all to IRQ mode */
@@ -146,7 +164,7 @@ void system_init(void)
146 164
147 /* Turn off NAND flash controller */ 165 /* Turn off NAND flash controller */
148 | (1 << 4) 166 | (1 << 4)
149 167
150 ); 168 );
151 169
152 /* Turn off the USB PLL */ 170 /* Turn off the USB PLL */