tweaks from 2008 (gpsp09-2xb_3)
[gpsp.git] / gp2x / cpuctrl.h
1 #if !defined(_CPUCTRL_)
2 #define _CPUCTRL_
3
4 void cpuctrl_init(); // call this at first
5
6 void save_system_regs(); // save some registers
7 void load_system_regs();
8
9 void set_FCLK(unsigned MHZ); // adjust the clock frequency (in Mhz units)
10 void set_add_ULCDCLK(int addclock);
11 void set_add_FLCDCLK(int addclock);
12
13 unsigned get_FCLK();
14 unsigned get_freq_UCLK();
15 unsigned get_freq_ACLK();
16 unsigned get_freq_920_CLK();
17 unsigned get_freq_940_CLK();
18 unsigned get_freq_DCLK();
19 unsigned get_LCDClk();
20 char get_Clkgen();
21 unsigned get_state940();
22
23 void set_920_Div(unsigned short div); /* 0 to 7 divider (freq=FCLK/(1+div)) */
24 unsigned short get_920_Div();
25
26 void set_940_Div(unsigned short div); /* 0 to 7 divider (freq=FCLK/(1+div)) */
27 unsigned short get_940_Div();
28
29 void set_DCLK_Div(unsigned short div); /* 0 to 7 divider (freq=FCLK/(1+div)) */
30 unsigned short get_DCLK_Div();
31
32 unsigned short Disable_Int_920();
33 unsigned short Disable_Int_940();
34
35 void Enable_Int_920(unsigned short flag);
36 void Enable_Int_940(unsigned short flag);
37
38 void Disable_940(); // 940t down
39
40 extern volatile unsigned  *arm940code; // memory address of 940t code
41
42 void Load_940_code(unsigned *code,int size); // enable 940t, load 940t code  and clock 940t off
43
44 void clock_940_off(); // 940t stops
45 void clock_940_on();  // 940t running
46
47 //Memory Timings
48 unsigned get_CAS();    //CAS Latency
49 unsigned get_tRC();    //ACTIVE to ACTIVE /AUTOREFRESH command delay
50 unsigned get_tRAS();   //ACTIVE to PRECHARGE delay
51 unsigned get_tWR();    //Write recovery time
52 unsigned get_tMRD();   //LOAD MODE REGISTER command cycle time
53 unsigned get_tRFC();   //AUTO REFRESH command period
54 unsigned get_tRP();    //PRECHARGE command period
55 unsigned get_tRCD();   //RAS to CAS Delay
56 unsigned get_REFPERD();//Refresh Period
57
58 void set_CAS();
59 void set_tRC();
60 void set_tRAS();
61 void set_tWR();
62 void set_tMRD();
63 void set_tRFC();
64 void set_tRP();
65 void set_tRCD();
66 void set_REFPERD();
67
68 void set_gamma(float gamma);
69
70 unsigned get_YBNKLVL();
71 void set_YBNKLVL(unsigned short val);
72 #endif