root/platform/d10/lib.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. vid_bitmap_refresh
  2. shutdown
  3. debug_led
  4. get_flash_params_count
  5. camera_set_led

   1 #include "platform.h"
   2 #include "lolevel.h"
   3 
   4 void vid_bitmap_refresh()
   5 {
   6         _ScreenLock();
   7     _RefreshPhysicalScreen(1);
   8 }
   9 
  10 void shutdown()
  11 {
  12     volatile long *p = (void*)0xc0220014; // from task_by (not really complete)
  13         
  14     asm(
  15          "MRS     R1, CPSR\n"
  16          "AND     R0, R1, #0x80\n"
  17          "ORR     R1, R1, #0x80\n"
  18          "MSR     CPSR_cf, R1\n"
  19          :::"r1","r0");
  20         
  21     *p = 0x44;
  22 
  23     while(1);
  24 }
  25 
  26 
  27 #define LED_PR 0xc0220134 // red LED, no DP
  28 
  29 void debug_led(int state)
  30 {
  31     volatile long *p=(void*)LED_PR;
  32     if (state)
  33         p[0]=0x46;
  34     else
  35         p[0]=0x44;
  36 }
  37 
  38 int get_flash_params_count(void){
  39  return 122; //  sub_FF95A4BC, similar to SD990
  40 }
  41 
  42 /*
  43 D10 has 3 led values
  44 0/0 - Upper indicator Green
  45 1/1 - Upper indicator Orange
  46 2/9 - AF
  47 10-11 appears to also drive AF, but using the same codepath as non AF leds (no assert on invalid)
  48 note, LEDDrive returns 3 on invalid params otherwise 0
  49 second param 0 = solid on, 1 = off, 2-7 blink patterns
  50 2: continuous ~1 blink/sec
  51 3: continuous fast blink
  52 4: continuous medium blink (2/sec ?) 
  53 5: burst of 3? fast blinks
  54 6: continuous slow blinks
  55 7: if led was off 1 very fast blink. depends on previous state
  56 8: no obvious effect, but returns 0 for AF
  57 >8: If used with AF ASSERT!! LEDDrv.c Line 215, otherwise returns 3
  58 */
  59 void camera_set_led(int led, int state, __attribute__ ((unused))int bright) {
  60  static char led_table[]={0,1,9};
  61  _LEDDrive(led_table[led%sizeof(led_table)], state<=1 ? !state : state);
  62 }

/* [<][>][^][v][top][bottom][index][help] */