summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/export/pp5020.h2
-rw-r--r--firmware/target/arm/system-pp502x.c9
2 files changed, 11 insertions, 0 deletions
diff --git a/firmware/export/pp5020.h b/firmware/export/pp5020.h
index 47f73b9f4c..b559aa3665 100644
--- a/firmware/export/pp5020.h
+++ b/firmware/export/pp5020.h
@@ -147,6 +147,8 @@
147 147
148/* clock control */ 148/* clock control */
149#define CLOCK_SOURCE (*(volatile unsigned long *)(0x60006020)) 149#define CLOCK_SOURCE (*(volatile unsigned long *)(0x60006020))
150#define MLCD_SCLK_DIV (*(volatile unsigned long *)(0x6000602c))
151 /* bits 0..1: Mono LCD bridge serial clock divider: 1 / (n+1) */
150#define PLL_CONTROL (*(volatile unsigned long *)(0x60006034)) 152#define PLL_CONTROL (*(volatile unsigned long *)(0x60006034))
151#define PLL_STATUS (*(volatile unsigned long *)(0x6000603c)) 153#define PLL_STATUS (*(volatile unsigned long *)(0x6000603c))
152#define ADC_CLOCK_SRC (*(volatile unsigned long *)(0x60006094)) 154#define ADC_CLOCK_SRC (*(volatile unsigned long *)(0x60006094))
diff --git a/firmware/target/arm/system-pp502x.c b/firmware/target/arm/system-pp502x.c
index 0f24997451..a1c4d1639e 100644
--- a/firmware/target/arm/system-pp502x.c
+++ b/firmware/target/arm/system-pp502x.c
@@ -178,6 +178,9 @@ static void pp_set_cpu_frequency(long frequency)
178 case CPUFREQ_MAX: 178 case CPUFREQ_MAX:
179 CLOCK_SOURCE = 0x10007772; /* source #1: 24MHz, #2, #3, #4: PLL */ 179 CLOCK_SOURCE = 0x10007772; /* source #1: 24MHz, #2, #3, #4: PLL */
180 DEV_TIMING1 = 0x00000303; 180 DEV_TIMING1 = 0x00000303;
181#ifdef IPOD_MINI2G
182 MLCD_SCLK_DIV = 0x00000001; /* Mono LCD bridge serial clock divider */
183#endif
181#if CONFIG_CPU == PP5020 184#if CONFIG_CPU == PP5020
182 PLL_CONTROL = 0x8a020a03; /* 10/3 * 24MHz */ 185 PLL_CONTROL = 0x8a020a03; /* 10/3 * 24MHz */
183 PLL_STATUS = 0xd19b; /* unlock frequencies > 66MHz */ 186 PLL_STATUS = 0xd19b; /* unlock frequencies > 66MHz */
@@ -196,6 +199,9 @@ static void pp_set_cpu_frequency(long frequency)
196 case CPUFREQ_NORMAL: 199 case CPUFREQ_NORMAL:
197 CLOCK_SOURCE = 0x10007772; /* source #1: 24MHz, #2, #3, #4: PLL */ 200 CLOCK_SOURCE = 0x10007772; /* source #1: 24MHz, #2, #3, #4: PLL */
198 DEV_TIMING1 = 0x00000303; 201 DEV_TIMING1 = 0x00000303;
202#ifdef IPOD_MINI2G
203 MLCD_SCLK_DIV = 0x00000000; /* Mono LCD bridge serial clock divider */
204#endif
199#if CONFIG_CPU == PP5020 205#if CONFIG_CPU == PP5020
200 PLL_CONTROL = 0x8a020504; /* 5/4 * 24MHz */ 206 PLL_CONTROL = 0x8a020504; /* 5/4 * 24MHz */
201 scale_suspend_core(false); 207 scale_suspend_core(false);
@@ -220,6 +226,9 @@ static void pp_set_cpu_frequency(long frequency)
220 default: 226 default:
221 CLOCK_SOURCE = 0x10002222; /* source #1, #2, #3, #4: 24MHz */ 227 CLOCK_SOURCE = 0x10002222; /* source #1, #2, #3, #4: 24MHz */
222 DEV_TIMING1 = 0x00000303; 228 DEV_TIMING1 = 0x00000303;
229#ifdef IPOD_MINI2G
230 MLCD_SCLK_DIV = 0x00000000; /* Mono LCD bridge serial clock divider */
231#endif
223 PLL_CONTROL &= ~0x80000000; /* disable PLL */ 232 PLL_CONTROL &= ~0x80000000; /* disable PLL */
224 cpu_frequency = CPUFREQ_DEFAULT; 233 cpu_frequency = CPUFREQ_DEFAULT;
225 PROC_CTL(CURRENT_CORE) = 0x4800001f; nop; 234 PROC_CTL(CURRENT_CORE) = 0x4800001f; nop;