Subversion Repositories freemyipod

Rev

Rev 557 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 557 Rev 560
Line 23... Line 23...
23
 
23
 
24
#include "global.h"
24
#include "global.h"
25
#include "s5l8720.h"
25
#include "s5l8720.h"
26
 
26
 
27
 
27
 
-
 
28
uint32_t clockgates_dma[2];
-
 
29
 
28
bool clockgate_get_state(int gate)
30
bool clockgate_get_state(int gate)
29
{
31
{
30
    return !(PWRCON(gate >> 5) & (1 << (gate & 0x1f)));
32
    return !(PWRCON(gate >> 5) & (1 << (gate & 0x1f)));
31
}
33
}
32
 
34
 
Line 35... Line 37...
35
    uint32_t mode = enter_critical_section();
37
    uint32_t mode = enter_critical_section();
36
    if (enable) PWRCON(gate >> 5) &= ~(1 << (gate & 0x1f));
38
    if (enable) PWRCON(gate >> 5) &= ~(1 << (gate & 0x1f));
37
    else PWRCON(gate >> 5) |= 1 << (gate & 0x1f);
39
    else PWRCON(gate >> 5) |= 1 << (gate & 0x1f);
38
    leave_critical_section(mode);
40
    leave_critical_section(mode);
39
}
41
}
-
 
42
 
-
 
43
void clockgate_dma(int dmac, int chan, bool enable)
-
 
44
{
-
 
45
    uint32_t mode = enter_critical_section();
-
 
46
    uint32_t old = clockgates_dma[dmac];
-
 
47
    if (enable) clockgates_dma[dmac] |= 1 << chan;
-
 
48
    else clockgates_dma[dmac] &= ~(1 << chan);
-
 
49
//TODO: Figure out DMAC clock gates	
-
 
50
//    if (clockgates_dma[dmac] != old)
-
 
51
//        clockgate_enable(CLOCKGATE_DMA(dmac), true);
-
 
52
    leave_critical_section(mode);
-
 
53
}