diff options
author | Karl Kurbjun <kkurbjun@gmail.com> | 2009-05-02 23:25:55 +0000 |
---|---|---|
committer | Karl Kurbjun <kkurbjun@gmail.com> | 2009-05-02 23:25:55 +0000 |
commit | fe2319372abd6b1f96bdc3ca45e5f6fa3165d6ed (patch) | |
tree | 0b8c5e2543615640981b14a14de7bd651665b629 /firmware/target/arm/tms320dm320 | |
parent | d5f7dab2308859d98837f76f3b2374645130e082 (diff) | |
download | rockbox-fe2319372abd6b1f96bdc3ca45e5f6fa3165d6ed.tar.gz rockbox-fe2319372abd6b1f96bdc3ca45e5f6fa3165d6ed.zip |
M:Robe 500 - Fix some of the Keymaps, touchscreen improvements to decrease inacurate reads, add support for dynamic frequency (was running at 87.5 MHz, now it runs at 175 MHz when boosted), disable clock to unneded modules (decreased power by 20 mA), LCD turnoff now works without graphic glitches, battery ADC read now returns scaled voltage, define backlight fading
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20846 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/tms320dm320')
9 files changed, 95 insertions, 78 deletions
diff --git a/firmware/target/arm/tms320dm320/mrobe-500/adc-mr500.c b/firmware/target/arm/tms320dm320/mrobe-500/adc-mr500.c index da3e2e9f44..e7e57a4f11 100644 --- a/firmware/target/arm/tms320dm320/mrobe-500/adc-mr500.c +++ b/firmware/target/arm/tms320dm320/mrobe-500/adc-mr500.c | |||
@@ -26,8 +26,6 @@ | |||
26 | #include "tsc2100.h" | 26 | #include "tsc2100.h" |
27 | #include "button-target.h" | 27 | #include "button-target.h" |
28 | 28 | ||
29 | void read_battery_inputs(void); | ||
30 | |||
31 | void adc_init(void) | 29 | void adc_init(void) |
32 | { | 30 | { |
33 | /* Initialize the touchscreen and the battery readout */ | 31 | /* Initialize the touchscreen and the battery readout */ |
@@ -48,13 +46,24 @@ void GIO14(void) | |||
48 | 46 | ||
49 | switch (adscm) | 47 | switch (adscm) |
50 | { | 48 | { |
51 | case 1: | 49 | case 0x01: |
52 | case 2: | 50 | case 0x02: |
53 | touch_read_coord(); | 51 | case 0x03: |
52 | case 0x04: | ||
53 | case 0x05: | ||
54 | /* do a battery read - this will shutdown the adc till the next tick | ||
55 | */ | ||
56 | // tsc2100_set_mode(true, 0x0B); | ||
54 | break; | 57 | break; |
58 | case 0x06: | ||
59 | case 0x07: | ||
60 | case 0x08: | ||
61 | case 0x09: | ||
55 | case 0x0B: | 62 | case 0x0B: |
56 | read_battery_inputs(); | 63 | tsc2100_set_mode(true, 0x01); |
57 | break; | 64 | break; |
58 | } | 65 | } |
66 | |||
59 | IO_INTC_IRQ2 = (1<<3); /* IRQ_GIO14 == 35 */ | 67 | IO_INTC_IRQ2 = (1<<3); /* IRQ_GIO14 == 35 */ |
60 | } | 68 | } |
69 | |||
diff --git a/firmware/target/arm/tms320dm320/mrobe-500/backlight-mr500.c b/firmware/target/arm/tms320dm320/mrobe-500/backlight-mr500.c index ab2289822b..751a59da94 100644 --- a/firmware/target/arm/tms320dm320/mrobe-500/backlight-mr500.c +++ b/firmware/target/arm/tms320dm320/mrobe-500/backlight-mr500.c | |||
@@ -34,7 +34,7 @@ int _backlight_brightness=DEFAULT_BRIGHTNESS_SETTING; | |||
34 | static void _backlight_write_brightness(int brightness) | 34 | static void _backlight_write_brightness(int brightness) |
35 | { | 35 | { |
36 | uint8_t bl_command[] = {0xa4, 0x00, brightness, 0xbb}; | 36 | uint8_t bl_command[] = {0xa4, 0x00, brightness, 0xbb}; |
37 | spi_block_transfer(SPI_target_BACKLIGHT, bl_command, 4, 0, 0); | 37 | spi_block_transfer(SPI_target_BACKLIGHT, false, bl_command, 4, 0, 0); |
38 | } | 38 | } |
39 | 39 | ||
40 | void _backlight_on(void) | 40 | void _backlight_on(void) |
@@ -47,7 +47,6 @@ void _backlight_on(void) | |||
47 | void _backlight_off(void) | 47 | void _backlight_off(void) |
48 | { | 48 | { |
49 | _backlight_write_brightness(0); | 49 | _backlight_write_brightness(0); |
50 | lcd_sleep(); /* HACK to get lcd_sleep called again */ | ||
51 | } | 50 | } |
52 | 51 | ||
53 | /* Assumes that the backlight has been initialized */ | 52 | /* Assumes that the backlight has been initialized */ |
diff --git a/firmware/target/arm/tms320dm320/mrobe-500/button-mr500.c b/firmware/target/arm/tms320dm320/mrobe-500/button-mr500.c index 09ff6cbd78..3e7077bd6d 100644 --- a/firmware/target/arm/tms320dm320/mrobe-500/button-mr500.c +++ b/firmware/target/arm/tms320dm320/mrobe-500/button-mr500.c | |||
@@ -19,8 +19,6 @@ | |||
19 | * | 19 | * |
20 | ****************************************************************************/ | 20 | ****************************************************************************/ |
21 | 21 | ||
22 | /* this file also handles the touch screen driver interface */ | ||
23 | |||
24 | #include "config.h" | 22 | #include "config.h" |
25 | #include "cpu.h" | 23 | #include "cpu.h" |
26 | #include "system.h" | 24 | #include "system.h" |
@@ -34,12 +32,8 @@ | |||
34 | #include "string.h" | 32 | #include "string.h" |
35 | #include "touchscreen.h" | 33 | #include "touchscreen.h" |
36 | 34 | ||
37 | static bool touch_available = false; | ||
38 | static bool hold_button = false; | 35 | static bool hold_button = false; |
39 | 36 | ||
40 | static short touch_x, touch_y, touch_z1, touch_z2; | ||
41 | static long last_touch = 0; | ||
42 | |||
43 | static struct touch_calibration_point topleft, bottomright; | 37 | static struct touch_calibration_point topleft, bottomright; |
44 | 38 | ||
45 | /* Jd's tests.. These will hopefully work for everyone so we dont have to | 39 | /* Jd's tests.. These will hopefully work for everyone so we dont have to |
@@ -85,7 +79,6 @@ static int touch_to_pixels(short *val_x, short *val_y) | |||
85 | 79 | ||
86 | void button_init_device(void) | 80 | void button_init_device(void) |
87 | { | 81 | { |
88 | touch_available = false; | ||
89 | /* GIO is the power button, set as input */ | 82 | /* GIO is the power button, set as input */ |
90 | IO_GIO_DIR0 |= 0x01; | 83 | IO_GIO_DIR0 |= 0x01; |
91 | 84 | ||
@@ -115,33 +108,25 @@ inline bool button_hold(void) | |||
115 | return hold_button; | 108 | return hold_button; |
116 | } | 109 | } |
117 | 110 | ||
118 | /* This is called from the tsc2100 interupt handler in adc-mr500.c */ | ||
119 | void touch_read_coord(void) | ||
120 | { | ||
121 | touch_available = true; | ||
122 | tsc2100_read_touch(&touch_x, &touch_y, &touch_z1, &touch_z2); | ||
123 | } | ||
124 | |||
125 | int button_read_device(int *data) | 111 | int button_read_device(int *data) |
126 | { | 112 | { |
127 | int button_read = BUTTON_NONE; | 113 | int button_read = BUTTON_NONE; |
114 | short touch_x, touch_y, touch_z1, touch_z2; | ||
128 | static bool hold_button_old = false; | 115 | static bool hold_button_old = false; |
129 | 116 | ||
130 | *data = 0; | 117 | *data = 0; |
131 | 118 | ||
132 | /* Handle touchscreen */ | 119 | /* Handle touchscreen */ |
133 | if (touch_available) | 120 | if (tsc2100_read_touch(&touch_x, &touch_y, &touch_z1, &touch_z2)) |
134 | { | 121 | { |
135 | *data = touch_to_pixels(&touch_x, &touch_y); | 122 | *data = touch_to_pixels(&touch_x, &touch_y); |
136 | button_read |= touchscreen_to_pixels(touch_x, touch_y, data); | 123 | button_read |= touchscreen_to_pixels(touch_x, touch_y, data); |
137 | |||
138 | touch_available = false; | ||
139 | last_touch=current_tick; | ||
140 | } | 124 | } |
141 | 125 | ||
126 | tsc2100_set_mode(true, 0x01); | ||
127 | |||
142 | /* Handle power button */ | 128 | /* Handle power button */ |
143 | if ((IO_GIO_BITSET0&0x01) == 0) | 129 | if ((IO_GIO_BITSET0&0x01) == 0) { |
144 | { | ||
145 | button_read |= BUTTON_POWER; | 130 | button_read |= BUTTON_POWER; |
146 | } | 131 | } |
147 | 132 | ||
@@ -152,8 +137,7 @@ int button_read_device(int *data) | |||
152 | /* Take care of hold notifications */ | 137 | /* Take care of hold notifications */ |
153 | #ifndef BOOTLOADER | 138 | #ifndef BOOTLOADER |
154 | /* give BL notice if HB state chaged */ | 139 | /* give BL notice if HB state chaged */ |
155 | if (hold_button != hold_button_old) | 140 | if (hold_button != hold_button_old) { |
156 | { | ||
157 | backlight_hold_changed(hold_button); | 141 | backlight_hold_changed(hold_button); |
158 | hold_button_old=hold_button; | 142 | hold_button_old=hold_button; |
159 | } | 143 | } |
diff --git a/firmware/target/arm/tms320dm320/mrobe-500/lcd-mr500.c b/firmware/target/arm/tms320dm320/mrobe-500/lcd-mr500.c index af5a6504e6..1dc453b800 100644 --- a/firmware/target/arm/tms320dm320/mrobe-500/lcd-mr500.c +++ b/firmware/target/arm/tms320dm320/mrobe-500/lcd-mr500.c | |||
@@ -60,15 +60,17 @@ void lcd_sleep() | |||
60 | { | 60 | { |
61 | if (lcd_on) | 61 | if (lcd_on) |
62 | { | 62 | { |
63 | lcd_on = false; | ||
64 | memset16(FRAME, 0xFFFF, LCD_WIDTH*LCD_HEIGHT); | ||
65 | sleep(HZ/5); | ||
63 | /* Disabling these saves another ~15mA */ | 66 | /* Disabling these saves another ~15mA */ |
64 | IO_OSD_OSDWINMD0&=~(0x01); | 67 | IO_OSD_OSDWINMD0&= ~(0x01); |
65 | IO_VID_ENC_VMOD&=~(0x01); | 68 | IO_VID_ENC_VMOD &= ~(0x01); |
66 | 69 | ||
67 | sleep(HZ/5); | 70 | // IO_CLK_MOD1 &= ~(0x0018); |
68 | 71 | ||
69 | /* Disabling the LCD saves ~50mA */ | 72 | /* Disabling the LCD saves ~50mA */ |
70 | IO_GIO_BITCLR2=1<<4; | 73 | IO_GIO_BITCLR2=1<<4; |
71 | lcd_on = false; | ||
72 | } | 74 | } |
73 | } | 75 | } |
74 | 76 | ||
@@ -79,15 +81,19 @@ void lcd_awake(void) | |||
79 | { | 81 | { |
80 | lcd_on=true; | 82 | lcd_on=true; |
81 | 83 | ||
82 | IO_OSD_OSDWINMD0|=0x01; | 84 | // IO_CLK_MOD1 |= 0x0018; |
83 | IO_VID_ENC_VMOD|=0x01; | 85 | IO_OSD_OSDWINMD0|= 0x01; |
86 | IO_VID_ENC_VMOD |= 0x01; | ||
84 | 87 | ||
85 | sleep(2); | 88 | sleep(2); |
86 | IO_GIO_BITSET2=1<<4; | 89 | IO_GIO_BITSET2=1<<4; |
87 | /* Wait long enough for a frame to be written */ | ||
88 | sleep(HZ/20); | ||
89 | 90 | ||
90 | lcd_update(); | 91 | lcd_update(); |
92 | |||
93 | /* Wait long enough for a frame to be written */ | ||
94 | sleep(HZ/10); | ||
95 | |||
96 | |||
91 | lcd_activation_call_hook(); | 97 | lcd_activation_call_hook(); |
92 | } | 98 | } |
93 | } | 99 | } |
diff --git a/firmware/target/arm/tms320dm320/mrobe-500/powermgmt-mr500.c b/firmware/target/arm/tms320dm320/mrobe-500/powermgmt-mr500.c index 654ec96591..60949b2c18 100755 --- a/firmware/target/arm/tms320dm320/mrobe-500/powermgmt-mr500.c +++ b/firmware/target/arm/tms320dm320/mrobe-500/powermgmt-mr500.c | |||
@@ -36,37 +36,41 @@ const unsigned short battery_level_shutoff[BATTERY_TYPES_COUNT] = | |||
36 | 0 | 36 | 0 |
37 | }; | 37 | }; |
38 | 38 | ||
39 | /* 6.10 format */ | ||
40 | |||
39 | /* voltages (millivolt) of 0%, 10%, ... 100% when charging disabled */ | 41 | /* voltages (millivolt) of 0%, 10%, ... 100% when charging disabled */ |
40 | const unsigned short percent_to_volt_discharge[BATTERY_TYPES_COUNT][11] = | 42 | const unsigned short percent_to_volt_discharge[BATTERY_TYPES_COUNT][11] = |
41 | { | 43 | { |
42 | { 100, 300, 400, 500, 600, 700, 800, 900, 1000, 1200, 1320 }, | 44 | { 375, 1125, 1500, 1875, 2250, 2625, 3000, 3375, 3750, 4500, 4950 }, |
43 | }; | 45 | }; |
44 | 46 | ||
45 | /* voltages (millivolt) of 0%, 10%, ... 100% when charging enabled */ | 47 | /* voltages (millivolt) of 0%, 10%, ... 100% when charging enabled */ |
46 | const unsigned short percent_to_volt_charge[11] = | 48 | const unsigned short percent_to_volt_charge[11] = |
47 | { | 49 | { |
48 | 100, 300, 400, 500, 600, 700, 800, 900, 1000, 1200, 1320, | 50 | 375, 1125, 1500, 1875, 2250, 2625, 3000, 3375, 3750, 4500, 4950, |
49 | }; | 51 | }; |
50 | |||
51 | void read_battery_inputs(void) | ||
52 | { | ||
53 | short dummy1, dummy2; | ||
54 | tsc2100_read_volt(¤t_voltage, &dummy1, &dummy2); | ||
55 | |||
56 | /* Set the TSC2100 back to read touches */ | ||
57 | tsc2100_set_mode(0x01); | ||
58 | } | ||
59 | 52 | ||
60 | /* Returns battery voltage from ADC [millivolts] */ | 53 | /* Returns battery voltage from ADC [millivolts] */ |
61 | unsigned int battery_adc_voltage(void) | 54 | unsigned int battery_adc_voltage(void) |
62 | { | 55 | { |
56 | short bat1, bat2, aux; | ||
63 | static unsigned last_tick = 0; | 57 | static unsigned last_tick = 0; |
58 | short tsadc; | ||
59 | |||
60 | if(tsc2100_read_volt(&bat1, &bat2, &aux)){ | ||
61 | current_voltage=((short)((int)(bat1<<10)/4096*6*2.5)); | ||
62 | } | ||
64 | 63 | ||
65 | if (TIME_BEFORE(last_tick+2*HZ, current_tick)) | 64 | if (TIME_BEFORE(last_tick+2*HZ, current_tick)) |
66 | { | 65 | { |
67 | /* Set the TSC2100 to read voltages */ | 66 | tsadc=tsc2100_readreg(TSADC_PAGE, TSADC_ADDRESS); |
68 | tsc2100_set_mode(0x0B); | 67 | |
69 | last_tick = current_tick; | 68 | /* Set the TSC2100 to read voltages if not busy with pen */ |
69 | if(!(tsadc & TSADC_PSTCM)) | ||
70 | { | ||
71 | tsc2100_set_mode(true, 0x0B); | ||
72 | last_tick = current_tick; | ||
73 | } | ||
70 | } | 74 | } |
71 | 75 | ||
72 | return current_voltage; | 76 | return current_voltage; |
diff --git a/firmware/target/arm/tms320dm320/spi-dm320.c b/firmware/target/arm/tms320dm320/spi-dm320.c index 6375298c0f..2d5637b70e 100644 --- a/firmware/target/arm/tms320dm320/spi-dm320.c +++ b/firmware/target/arm/tms320dm320/spi-dm320.c | |||
@@ -65,10 +65,14 @@ static void spi_disable_all_targets(void) | |||
65 | } | 65 | } |
66 | 66 | ||
67 | int spi_block_transfer(enum SPI_target target, | 67 | int spi_block_transfer(enum SPI_target target, |
68 | const bool spi_msb_first, | ||
68 | const uint8_t *tx_bytes, unsigned int tx_size, | 69 | const uint8_t *tx_bytes, unsigned int tx_size, |
69 | uint8_t *rx_bytes, unsigned int rx_size) | 70 | uint8_t *rx_bytes, unsigned int rx_size) |
70 | { | 71 | { |
71 | mutex_lock(&spi_mtx); | 72 | mutex_lock(&spi_mtx); |
73 | |||
74 | IO_SERIAL0_MODE = (IO_SERIAL0_MODE& ~(spi_msb_first<<9))|(spi_msb_first<<9); | ||
75 | |||
72 | /* Activate the slave select pin */ | 76 | /* Activate the slave select pin */ |
73 | *spi_targets[target].setreg = spi_targets[target].bit; | 77 | *spi_targets[target].setreg = spi_targets[target].bit; |
74 | 78 | ||
@@ -102,8 +106,8 @@ int spi_block_transfer(enum SPI_target target, | |||
102 | void spi_init(void) | 106 | void spi_init(void) |
103 | { | 107 | { |
104 | mutex_init(&spi_mtx); | 108 | mutex_init(&spi_mtx); |
105 | /* Set SCLK idle level = 0 */ | 109 | |
106 | IO_SERIAL0_MODE |= IO_SERIAL0_MODE_SCLK; | 110 | IO_SERIAL0_MODE = 0x3607; |
107 | /* Enable TX */ | 111 | /* Enable TX */ |
108 | IO_SERIAL0_TX_ENABLE = 0x0001; | 112 | IO_SERIAL0_TX_ENABLE = 0x0001; |
109 | #ifndef CREATIVE_ZVx | 113 | #ifndef CREATIVE_ZVx |
diff --git a/firmware/target/arm/tms320dm320/spi-target.h b/firmware/target/arm/tms320dm320/spi-target.h index 013737b291..7fc0b72a28 100644 --- a/firmware/target/arm/tms320dm320/spi-target.h +++ b/firmware/target/arm/tms320dm320/spi-target.h | |||
@@ -38,6 +38,7 @@ enum SPI_target { | |||
38 | 38 | ||
39 | void spi_init(void); | 39 | void spi_init(void); |
40 | int spi_block_transfer(enum SPI_target target, | 40 | int spi_block_transfer(enum SPI_target target, |
41 | const bool spi_msb_first, | ||
41 | const uint8_t *tx_bytes, unsigned int tx_size, | 42 | const uint8_t *tx_bytes, unsigned int tx_size, |
42 | uint8_t *rx_bytes, unsigned int rx_size); | 43 | uint8_t *rx_bytes, unsigned int rx_size); |
43 | 44 | ||
diff --git a/firmware/target/arm/tms320dm320/system-dm320.c b/firmware/target/arm/tms320dm320/system-dm320.c index 638e378159..0142f7b18b 100644 --- a/firmware/target/arm/tms320dm320/system-dm320.c +++ b/firmware/target/arm/tms320dm320/system-dm320.c | |||
@@ -217,6 +217,29 @@ void system_init(void) | |||
217 | IO_INTC_FISEL0 = 0; | 217 | IO_INTC_FISEL0 = 0; |
218 | IO_INTC_FISEL1 = 0; | 218 | IO_INTC_FISEL1 = 0; |
219 | IO_INTC_FISEL2 = 0; | 219 | IO_INTC_FISEL2 = 0; |
220 | |||
221 | /* setup the clocks */ | ||
222 | IO_CLK_DIV0=0x0003; | ||
223 | IO_CLK_DIV1=0x0102; | ||
224 | IO_CLK_DIV2=0x021F; | ||
225 | IO_CLK_DIV3=0x1FFF; | ||
226 | IO_CLK_DIV4=0x1F00; | ||
227 | |||
228 | IO_CLK_PLLA=0x80A0; | ||
229 | IO_CLK_PLLB=0x80C0; | ||
230 | |||
231 | IO_CLK_SEL0=0x017E; | ||
232 | IO_CLK_SEL1=0x1000; | ||
233 | IO_CLK_SEL2=0x1001; | ||
234 | |||
235 | /* need to wait before bypassing */ | ||
236 | |||
237 | IO_CLK_BYP=0x0000; | ||
238 | |||
239 | /* turn off some unneeded modules */ | ||
240 | IO_CLK_MOD0 &= ~0x0018; | ||
241 | IO_CLK_MOD1 = 0x0918; | ||
242 | IO_CLK_MOD2 = ~0x7C58; | ||
220 | 243 | ||
221 | /* IRQENTRY only reflects enabled interrupts */ | 244 | /* IRQENTRY only reflects enabled interrupts */ |
222 | IO_INTC_RAW = 0; | 245 | IO_INTC_RAW = 0; |
@@ -224,6 +247,7 @@ void system_init(void) | |||
224 | IO_INTC_ENTRY_TBA0 = 0; | 247 | IO_INTC_ENTRY_TBA0 = 0; |
225 | IO_INTC_ENTRY_TBA1 = 0; | 248 | IO_INTC_ENTRY_TBA1 = 0; |
226 | 249 | ||
250 | |||
227 | int i; | 251 | int i; |
228 | /* Set interrupt priorities to predefined values */ | 252 | /* Set interrupt priorities to predefined values */ |
229 | for(i = 0; i < 23; i++) | 253 | for(i = 0; i < 23; i++) |
@@ -275,27 +299,13 @@ int system_memory_guard(int newmode) | |||
275 | } | 299 | } |
276 | 300 | ||
277 | #ifdef HAVE_ADJUSTABLE_CPU_FREQ | 301 | #ifdef HAVE_ADJUSTABLE_CPU_FREQ |
278 | |||
279 | void set_cpu_frequency(long frequency) | 302 | void set_cpu_frequency(long frequency) |
280 | { | 303 | { |
281 | if (frequency == CPUFREQ_MAX) | 304 | if (frequency == CPUFREQ_MAX) { |
282 | { | 305 | IO_CLK_DIV0 = 0x0101; /* 175 MHz ARM */ |
283 | asm volatile("mov r0, #0\n" | 306 | } else { |
284 | "mrc p15, 0, r0, c1, c0, 0\n" | 307 | IO_CLK_DIV0 = 0x0003; /* 87.5 MHz ARM - not much savings, about 3 mA */ |
285 | "orr r0, r0, #3<<30\n" /* set to Asynchronous mode*/ | ||
286 | "mcr p15, 0, r0, c1, c0, 0" : : : "r0"); | ||
287 | |||
288 | FREQ = CPUFREQ_MAX; | ||
289 | } | ||
290 | else | ||
291 | { | ||
292 | asm volatile("mov r0, #0\n" | ||
293 | "mrc p15, 0, r0, c1, c0, 0\n" | ||
294 | "bic r0, r0, #3<<30\n" /* set to FastBus mode*/ | ||
295 | "mcr p15, 0, r0, c1, c0, 0" : : : "r0"); | ||
296 | |||
297 | FREQ = CPUFREQ_NORMAL; | ||
298 | } | 308 | } |
299 | } | 309 | } |
300 | |||
301 | #endif | 310 | #endif |
311 | |||
diff --git a/firmware/target/arm/tms320dm320/system-target.h b/firmware/target/arm/tms320dm320/system-target.h index f1e52ad5a0..63d314f572 100755 --- a/firmware/target/arm/tms320dm320/system-target.h +++ b/firmware/target/arm/tms320dm320/system-target.h | |||
@@ -23,9 +23,9 @@ | |||
23 | 23 | ||
24 | #include "system-arm.h" | 24 | #include "system-arm.h" |
25 | 25 | ||
26 | #define CPUFREQ_SLEEP 32768 | 26 | #define CPUFREQ_SLEEP 32768 |
27 | #define CPUFREQ_DEFAULT 24000000 | 27 | #define CPUFREQ_DEFAULT 87500000 |
28 | #define CPUFREQ_NORMAL 30000000 | 28 | #define CPUFREQ_NORMAL 87500000 |
29 | #define CPUFREQ_MAX 80000000 | 29 | #define CPUFREQ_MAX 175000000 |
30 | 30 | ||
31 | #endif /* SYSTEM_TARGET_H */ | 31 | #endif /* SYSTEM_TARGET_H */ |