Subversion Repositories freemyipod

Rev

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

Rev 581 Rev 648
Line 93... Line 93...
93
        lcd_dma_busy = false;
93
        lcd_dma_busy = false;
94
        clockgate_dma(0, 4, false);
94
        clockgate_dma(0, 4, false);
95
    }
95
    }
96
    switch (lcd_detect())
96
    switch (lcd_detect())
97
    {
97
    {
-
 
98
//    case 0:
-
 
99
//        pmu_write(0x31, 0x0b);  // Vlcd @ 2.000V
-
 
100
//        break;
98
    case 1:
101
    case 1:
99
        pmu_write(0x31, 0x0e);  // Vlcd @ 2.400V
102
        pmu_write(0x31, 0x0e);  // Vlcd @ 2.300V
100
        break;
103
        break;
101
    case 2:
104
    case 2:
102
        pmu_write(0x31, 0x12);  // Vlcd @ 2.700V
105
        pmu_write(0x31, 0x12);  // Vlcd @ 2.700V
103
        break;
106
        break;
-
 
107
//    case 3:
-
 
108
//        pmu_write(0x31, 0x0b);  // Vlcd @ 2.000V
-
 
109
//        break;
104
    default:
110
    default:
105
        pmu_write(0x31, 0x0b);  // Vlcd @ 2.000V
111
        pmu_write(0x31, 0x0b);  // Vlcd @ 2.000V
106
    }
112
    }
107
}
113
}
108
 
114
 
109
bool displaylcd_busy() ICODE_ATTR;
115
bool displaylcd_busy() ICODE_ATTR;
110
bool displaylcd_busy()
116
bool displaylcd_busy()
111
{
117
{
Line 182... Line 188...
182
        lli->srcaddr = data;
188
        lli->srcaddr = data;
183
        lli->dstaddr = (void*)((int)&LCDWDATA);
189
        lli->dstaddr = (void*)((int)&LCDWDATA);
184
        lli->nextlli = last ? NULL : &lcd_lli[i + 1];
190
        lli->nextlli = last ? NULL : &lcd_lli[i + 1];
185
        lli->control = 0x70240000 | (last ? pixels : 0xfff)
191
        lli->control = 0x70240000 | (last ? pixels : 0xfff)
186
                     | (last ? 0x80000000 : 0) | (solid ? 0 : 0x4000000);
192
                     | (last ? 0x80000000 : 0) | (solid ? 0 : 0x4000000);
187
        if (!solid) data = (void*)(((uint32_t)data) + 0x1ffe);
193
        if (!solid) data += 0x1ffe;
188
    }
194
    }
189
    clean_dcache();
195
    clean_dcache();
190
    DMAC0C4CONFIG = 0x88c1;
196
    DMAC0C4CONFIG = 0x88c1;
191
}
197
}
192
 
198
 
Line 264... Line 270...
264
    __asm__ volatile("    mov r2, #0                   \n");
270
    __asm__ volatile("    mov r2, #0                   \n");
265
    __asm__ volatile("    ldrb r1, [r3], #1            \n");
271
    __asm__ volatile("    ldrb r1, [r3], #1            \n");
266
    __asm__ volatile("    ldrsb r0, [r7]               \n");
272
    __asm__ volatile("    ldrsb r0, [r7]               \n");
267
    __asm__ volatile("    add r1, r1, r4               \n");
273
    __asm__ volatile("    add r1, r1, r4               \n");
268
    __asm__ volatile("    add r1, r1, r0               \n");
274
    __asm__ volatile("    add r1, r1, r0               \n");
269
    __asm__ volatile("    cmp r1, #0                   \n");
-
 
270
    __asm__ volatile("    movlt r1, #0                 \n");
-
 
271
    __asm__ volatile("    cmp r1, #0xff                \n");
275
    __asm__ volatile("    cmp r1, #0xff                \n");
-
 
276
    __asm__ volatile("    mvnhi r1, r1,asr#31          \n");
272
    __asm__ volatile("    movgt r1, #0xff              \n");
277
    __asm__ volatile("    andhi r1, r1, #0xff          \n");
273
    __asm__ volatile("    mov r0, r1,lsr#3             \n");
278
    __asm__ volatile("    mov r0, r1,lsr#3             \n");
274
    __asm__ volatile("    orr r2, r0,lsl#11            \n");
279
    __asm__ volatile("    orr r2, r0,lsl#11            \n");
275
    __asm__ volatile("    sub r1, r1, r0,lsl#3         \n");
280
    __asm__ volatile("    sub r1, r1, r0,lsl#3         \n");
276
    __asm__ volatile("    sub r1, r1, r0,lsr#2         \n");
281
    __asm__ volatile("    sub r1, r1, r0,lsr#2         \n");
277
    __asm__ volatile("    mov r4, r4,lsr#1             \n");
282
    __asm__ volatile("    mov r4, r4,lsr#1             \n");
Line 280... Line 285...
280
    __asm__ volatile("    mov r4, r1,asr#1             \n");
285
    __asm__ volatile("    mov r4, r1,asr#1             \n");
281
    __asm__ volatile("    ldrb r1, [r3], #1            \n");
286
    __asm__ volatile("    ldrb r1, [r3], #1            \n");
282
    __asm__ volatile("    ldrsb r0, [r7]               \n");
287
    __asm__ volatile("    ldrsb r0, [r7]               \n");
283
    __asm__ volatile("    add r1, r1, r5               \n");
288
    __asm__ volatile("    add r1, r1, r5               \n");
284
    __asm__ volatile("    add r1, r1, r0               \n");
289
    __asm__ volatile("    add r1, r1, r0               \n");
285
    __asm__ volatile("    cmp r1, #0                   \n");
-
 
286
    __asm__ volatile("    movlt r1, #0                 \n");
-
 
287
    __asm__ volatile("    cmp r1, #0xff                \n");
290
    __asm__ volatile("    cmp r1, #0xff                \n");
-
 
291
    __asm__ volatile("    mvnhi r1, r1,asr#31          \n");
288
    __asm__ volatile("    movgt r1, #0xff              \n");
292
    __asm__ volatile("    andhi r1, r1, #0xff          \n");
289
    __asm__ volatile("    mov r0, r1,lsr#2             \n");
293
    __asm__ volatile("    mov r0, r1,lsr#2             \n");
290
    __asm__ volatile("    orr r2, r0,lsl#5             \n");
294
    __asm__ volatile("    orr r2, r0,lsl#5             \n");
291
    __asm__ volatile("    sub r1, r1, r0,lsl#2         \n");
295
    __asm__ volatile("    sub r1, r1, r0,lsl#2         \n");
292
    __asm__ volatile("    sub r1, r1, r0,lsr#4         \n");
296
    __asm__ volatile("    sub r1, r1, r0,lsr#4         \n");
293
    __asm__ volatile("    mov r5, r5,lsr#1             \n");
297
    __asm__ volatile("    mov r5, r5,lsr#1             \n");
Line 296... Line 300...
296
    __asm__ volatile("    mov r5, r1,asr#1             \n");
300
    __asm__ volatile("    mov r5, r1,asr#1             \n");
297
    __asm__ volatile("    ldrb r1, [r3], #1            \n");
301
    __asm__ volatile("    ldrb r1, [r3], #1            \n");
298
    __asm__ volatile("    ldrsb r0, [r7]               \n");
302
    __asm__ volatile("    ldrsb r0, [r7]               \n");
299
    __asm__ volatile("    add r1, r1, r6               \n");
303
    __asm__ volatile("    add r1, r1, r6               \n");
300
    __asm__ volatile("    add r1, r1, r0               \n");
304
    __asm__ volatile("    add r1, r1, r0               \n");
301
    __asm__ volatile("    cmp r1, #0                   \n");
-
 
302
    __asm__ volatile("    movlt r1, #0                 \n");
-
 
303
    __asm__ volatile("    cmp r1, #0xff                \n");
305
    __asm__ volatile("    cmp r1, #0xff                \n");
-
 
306
    __asm__ volatile("    mvnhi r1, r1,asr#31          \n");
304
    __asm__ volatile("    movgt r1, #0xff              \n");
307
    __asm__ volatile("    andhi r1, r1, #0xff          \n");
305
    __asm__ volatile("    mov r0, r1,lsr#3             \n");
308
    __asm__ volatile("    mov r0, r1,lsr#3             \n");
306
    __asm__ volatile("    orr r2, r0                   \n");
309
    __asm__ volatile("    orr r2, r0                   \n");
307
    __asm__ volatile("    sub r1, r1, r0,lsl#3         \n");
310
    __asm__ volatile("    sub r1, r1, r0,lsl#3         \n");
308
    __asm__ volatile("    sub r1, r1, r0,lsr#2         \n");
311
    __asm__ volatile("    sub r1, r1, r0,lsr#2         \n");
309
    __asm__ volatile("    mov r6, r6,lsr#1             \n");
312
    __asm__ volatile("    mov r6, r6,lsr#1             \n");