gpio_portable.c
上传用户:caisangzi8
上传日期:2013-10-25
资源大小:15756k
文件大小:5k
源码类别:

DVD

开发平台:

C/C++

  1. /*
  2. ----->included&called by gpio.c
  3. ----->only for portable dvd use.
  4. ----->did it on 07/25
  5. */
  6. void portable_reset_gpio(void)
  7. {
  8. #ifndef SPHE8202    
  9.     regs0->sft_cfg0 &= ~(0x3fff << 1);  //Disable ra20~ra26 pin 129~131, pin 133~136
  10.     regs0->sft_cfg2 &= ~(0x08<<5);      //GPIO 46 pin143.
  11.     //regs0->sft_cfg3 &= ~((0x07)<<3);  //Disable AUD1,2,3,4 (GPIO59,60,57)
  12.     regs0->sft_cfg6 &= ~((0x03)<<7);    //Disable DQM2,3 for pin139,140
  13.     regs0->sft_cfg6 &= ~(0x1 << 5);     //SA12 as GPIO 18, pin 151
  14.     
  15.     regs0->sft_cfg3 |= ((0x17)<<3);
  16.     
  17.     if(PDVD_OPCLSW_GPIO == 16)
  18.       regs0->sft_cfg6 &= ~((0x02)<<7);
  19.     
  20.     GPIO_M_SET(PDVD_OPCLSW_GPIO,1);
  21. GPIO_E_SET(PDVD_OPCLSW_GPIO,0); //input
  22. #ifdef PNGPIO_CON_TFT
  23.     PALNTSC_GPIO_INIT(); //P/N_KEY is output
  24.     #endif
  25. #else //for 8202P Portable DVD
  26.     regs0->sft_cfg1 &= ~((0x11)<<1);    //for Disable ROM_CS2(GPIO18),ROM_A22(GPIO94)
  27.     regs0->sdc_data_cnt[6][0] |= (0x0e);//Disable ROM_A20(Pin225),ROM_A21(Pin226),ROM_A22(Pin227) as GPIO92,93,94  
  28.     regs0->sft_cfg4 &= ~((0x03)<<2);    //Enable GPIO2,3
  29.     regs0->sft_cfg3 &= ~((0x27)<<2);    //Disable SPDIF_IN,AUD1,2,3(GPIO51,54,55,56)
  30. #ifdef EASTWIN 
  31.    regs0->sft_cfg3 &= ~((0x01)<<1);    //Disable AUD0(GPIO53)
  32. #endif
  33.     
  34.     #ifdef SUPPORT_SLOT_IN_LOADER    
  35.      GPIO_M_SET(6,1); //TRAY_IS_IN_GPIO 99
  36.      GPIO_E_SET(6,0);
  37. GPIO_M_SET(18,1); //TRAY_IS_OUT_GPIO 98
  38. GPIO_E_SET(18,0);
  39.      GPIO_M_SET(55,1); //DISC_IS_IN_GPIO 100
  40. GPIO_E_SET(55,0);
  41.     #endif
  42. #endif        
  43.       
  44. #ifdef TEAC_PORTABLE_DVD
  45.      #ifdef SRV_GPIO_FOR_216
  46.      regs0->sft_cfg4 &= ~((0x1)<<6);//Enable GPIO8
  47.      regs0->sft_cfg0 &= ~((0x1)<<5);//Enable GPIO38     
  48.     
  49.      GPIO_M_SET(8,1);
  50.      GPIO_E_SET(8,0);
  51.      GPIO_M_SET(72,1);
  52.      GPIO_E_SET(72,0);
  53.      GPIO_M_SET(23,1);
  54.      GPIO_E_SET(23,0);
  55.      GPIO_M_SET(38,1);
  56.      GPIO_E_SET(38,0);
  57.      GPIO_M_SET(70,1);
  58.      GPIO_E_SET(70,0);    
  59.      #endif
  60. #endif
  61. #ifdef GBM_PORTABLE_DVD //rbhung for GBM Portable DVD
  62.     //Jack moved gpio setting for all portable dvd customers.06/06/16
  63.     regs0->sft_cfg3 &= ~((0x07)<<3);    //Disable AUD1,2,3,4 (GPIO59,60,57)
  64.     
  65.     regs0->gpio_master[1]|= 0x0027;    //GPIO 16,17,18,21
  66.     regs0->gpio_oe[1]|= 0x0022;
  67.     regs0->gpio_oe[1]&= ~(0x0005);
  68.     regs0->gpio_out[1]&= ~(0x0022);
  69.     regs0->gpio_master[2]|= 0xffe0;    //GPIO 37~47
  70.     regs0->gpio_oe[2]|= 0xe980;        //jhuang org 29c0
  71.     regs0->gpio_oe[2]&= ~(0x1660);     //jhuang org d620
  72.     regs0->gpio_out[2]|= 0x0900;
  73.     regs0->gpio_out[2]&= ~(0xe080);    
  74.     regs0->gpio_master[3]|= 0x1f1f;    //GPIO 48~52,56~60
  75.     regs0->gpio_oe[3]|= 0x1e03;        //jhuang org 1e00
  76.     regs0->gpio_oe[3]&= ~(0x011c);     //jhuang org 011f
  77.     regs0->gpio_out[3]|= 0x1600;
  78.     regs0->gpio_out[3]&= ~(0x0803);
  79.     
  80.     #ifndef PDVD_10INCH_QSI //because 10 inch use kernel to fix.
  81.     regs0->tv_mode[0]&=~(0x001e);//config video dac output mode(16)
  82.     #endif
  83.     #ifdef HOLD_KEY_DETECT
  84.     hold_state=0;
  85.     #endif
  86.     powerdown_timer=0;
  87.     lowbat_timer=0;
  88.     
  89. #endif
  90. #ifdef SUNPLUS_8202P_DEMOBOARD //rbhung for Sunplus 8202 Portable DVD Demoboard
  91.     regs0->gpio_master[0]|= 0x000c;    //GPIO 2,3
  92.     regs0->gpio_master[1]|= 0x00e4;    //GPIO 18,21,22,23
  93.     regs0->gpio_master[3]|= 0x01c8;    //GPIO 51,54~56
  94.     regs0->gpio_master[5]|= 0x7000;    //GPIO 92,93,94
  95.     regs0->gpio_oe[0]&= ~(0x000c);
  96.     regs0->gpio_oe[1]|= 0x0004;
  97.     regs0->gpio_oe[1]&= ~(0x00e0);
  98.     regs0->gpio_oe[3]|= 0x01c8;
  99.     regs0->gpio_oe[5]|= 0x6000;
  100.     regs0->gpio_oe[5]&= ~(0x1000);
  101.     regs0->gpio_out[1]|= 0x0004;
  102.     regs0->gpio_out[3]|= 0x0140;
  103.     regs0->gpio_out[3]&= ~(0x00c0);
  104.     regs0->gpio_out[5]|= 0x6000;
  105. #ifdef EASTWIN    
  106.     regs0->sft_cfg0 &= ~(0x0080); //config to GPIO 48   
  107.     GPIO_M_SET(18,1); // Kevin Jul 20,04 set battery low detect pin for RISC
  108.     GPIO_E_SET(18,0); // Kevin Jul 20,04 set battery low detect pin is input
  109.     GPIO_M_SET(48,1); // Kevin Jul 20,04 set shutdown amp pin for RISC
  110.     GPIO_E_SET(48,1); // Kevin Jul 20,04 set shutdown amp pin is output
  111.     GPIO_M_SET(49,1); // Kevin Jul 20,04 set ear detect pin for RISC
  112.     GPIO_E_SET(49,0); // Kevin Jul 20,04 set ear detect pin is input    
  113.     GPIO_M_SET(97,1); // Kevin Jul 20,04 set view mode pin for RISC
  114.     GPIO_E_SET(97,1); // Kevin Jul 20,04 set view mode pin is output
  115.     GPIO_M_SET(100,1); // Kevin Jul 20,04 set lcd power pin for RISC
  116.     GPIO_E_SET(100,1); // Kevin Jul 20,04 set lcd power pin is output
  117.     //GPIO_O_SET(56,0); // Kevin Jul 20,04 disable audio mute // Kevin Sep 21,04 move to vfd.c
  118.     POWER_LED_OFF(); // Kevin Jul 20,04 power led off
  119.     LCD_POWER_ON(); // Kevin Jul 20,04 lcd panel power supply turn on
  120.     
  121. #endif
  122. #endif
  123. }