diff options
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.c | 20 |
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 | ||
107 | void 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 | |||
115 | void s3c_regset(volatile int *reg, unsigned int mask) | ||
116 | { | ||
117 | s3c_regmod(reg, mask, 0); | ||
118 | } | ||
119 | |||
120 | void s3c_regclr(volatile int *reg, unsigned int mask) | ||
121 | { | ||
122 | s3c_regmod(reg, 0, mask); | ||
123 | } | ||
124 | |||
107 | void system_init(void) | 125 | void 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 */ |