📄 0715dsv.h
字号:
/*-----------------------------------------------------------------------------------
BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES THAT
THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE") RECEIVED
FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON AN "AS-IS"
BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT. NEITHER DOES MEDIATEK
PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE SOFTWARE OF ANY THIRD PARTY
WHICH MAY BE USED BY, INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK SOFTWARE,
AND BUYER AGREES TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY WARRANTY CLAIM RELATING
THERETO. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES
MADE TO BUYER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE LIABILITY
WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE, AT MEDIATEK'S
OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE, OR REFUND ANY SOFTWARE
LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE
AT ISSUE.
THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE WITH THE LAWS
OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF LAWS PRINCIPLES.
ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND RELATED THERETO SHALL BE
SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER THE RULES OF THE INTERNATIONAL
CHAMBER OF COMMERCE (ICC).
-----------------------------------------------------------------------------------*/
/*************** MTK CONFIDENTIAL & COPYRIGHTED ***************/
/*************** ***************/
/*************** Filename: SRV2DEC.H ***************/
/*************** DVD_Player Servo FW header file ***************/
/*************** Description : ***************/
/*************** ***************/
/*************** ***************/
/*************** Company: MediaTek Inc. ***************/
/*************** Programmer: Jason Gau. (jishian) ***************/
/****************************************************************************/
#ifndef _H_SRV2DEC_
#define _H_SRV2DEC_
/*========================================================================
Un-Finalized disc support define
========================================================================*/
// [A863.7] - Start
#define SUPPORT_UNFINALIZE_WITH_FILESYS
#define SUPPORT_UNFINALIZE_PLUS_VRMODE
#ifdef SUPPORT_UNFINALIZE_PLUS_VRMODE
#define SUPPORT_UNFINALIZE_WITH_FILESYS
#endif
// [A863.7] - End
/*========================================================================
MMDT part
========================================================================*/
//#define DEBUG_RS232_C1C2 // Jethro Add for MMDT debug for MMDT
#ifdef DEBUG_RS232_C1C2
#define READ_C1C2PIPO // SERVO C1C2PIPO DEBUG INFO
//#define READ_PIPO_1ECCBLK
#define READ_PIERR_ONLY
#undef SACDSEL
#undef SRV_RETRY
#undef RS232_DEBUG
#endif
/*****************************************************************************
Function : GPIO Macro Setting
Description : Refresh Output status of MT1389
*****************************************************************************/
#define _fgLimit bSrvReadPin1()
#define _fgTrayOut bSrvReadPin2()
#define _fgTrayIn bSrvReadPin3()
#define _fgDiscIn bSrvReadPin4() // Slot-in Model // For Test Use
#define _TSD bSrvReadPin5() // SONY Project // For Test Use
//#define _IO0 bSrvReadPin5() // LG OPU-Detection
// Define TRAY_CLOSESetH,L before TrCloseSetH,L
#define TRAY_CLOSESetH (WriteDSP1Cmd(0xEB, 0x0C)) //PWM1 = 3.3 V (High)
#define TRAY_CLOSESetL (WriteDSP1Cmd(0xEB, 0x04)) //PWM1 = 0 V (Low)
/***************************************************************************
Macro For Definition of TRAY Action
***************************************************************************/
#define TRAY_OPENENLVL (WriteDPUCmd(DPU_TRPWMCTL, 0x00)) //Enable GPO 0~2.8V
#define TRAY_OPENLevel(bLevel) (WriteDPUCmd(DPU_TRPWMLV, bLevel)) //Voltage Level
#define TRAY_OPENSetH (WriteDPUCmd(DPU_TRPWMCTL, TRPWMEN+TROPEN3V)) //TROPENPWM = 3.3V
#define TRAY_OPENSetL (WriteDPUCmd(DPU_TRPWMCTL, TRPWMEN+TROPEN0V)) //TROPENPWM = 0V
#define STBYSetH vSrvWritePin1(0x01)
#define STBYSetL vSrvWritePin1(0x00)
#define LaserSWSetH vSrvWritePin2(0x01)
#define LaserSWSetL vSrvWritePin2(0x00)
#define TrCloseSetH vSrvWritePin3(0x01)
#define TrCloseSetL vSrvWritePin3(0x00)
#define TrOpenSetH vSrvWritePin4(0x01)
#define TrOpenSetL vSrvWritePin4(0x00)
#define PIO5SetH vSrvWritePin5(0x01) // For Debug Use
#define PIO5SetL vSrvWritePin5(0x00)
/***************************************************************************
Macro For Definition of TRAY Action
***************************************************************************/
#define DPU_TRPWMLV 0xFA18
#define DPU_TRPWMCTL 0xFA19
#define TRPWMEN (0x01<<2)
#define TROPEN3V (0x01<<0)
#define TROPEN0V (0x00<<0)
/*========================================================================
ERROR Code Table
=========================================================================*/
#define PLAYER_READY 0x00
#define ILLEGAL_COMMAND 0x01
#define ILLEGAL_PARAM 0x02
#define SLEDGE_ERROR 0x03
#define FOCUS_ERROR 0x04
#define MOTOR_ERROR 0x05
#define RADIAL_ERROR 0x06
#define PLL_LOCK_ERROR 0x07
#define READ_ERROR 0x08
#define QID_NOT_FOUND 0x09
#define TRAY_ERROR 0x0A
#define TOC_READ_ERROR 0x0B
#define SEEK_ERROR 0x0C
#define HF_ERROR 0x0D
#define NO_SESSION_ERROR 0x0E
#define NO_TE_ERROR 0x0F
// ERROR Code Table : Self Implement
#define DISK_NO_EXIST 0x10
#define CALIBRATE_ERROR 0x11 // Don't care about this erorr
#define ABORTED 0x12
#define BLANK_DISK 0x13
/* Player Status Code */
#define PLAYER_BUSY 0x80 /* Player is busy */
#define PLAYER_ERROR 0xFF /* Different to Player Busy */
/*=========================================================================
Media Type Definition
=========================================================================*/
#define MEDIA_CDROM 0x01
#define MEDIA_CDRW 0x02
#define MEDIA_DVCD 0x05
#define MEDIA_DVD_SINGLE 0x10
#define MEDIA_DVD_DUAL 0x11
#define MEDIA_DVD_LOW 0x14
#define MEDIA_DVDR_V10 0x30
#define MEDIA_DVDR_V20 0x31
#define MEDIA_DVD_PRW_47G 0x50
#define MEDIA_DVD_PRW_30G 0x51
#define MEDIA_DVD_MRW 0x52
#define MEDIA_DVD_RAM_26G 0x90
#define MEDIA_DVD_RAM_47G 0x91
//=====================================================================
// SERVO change speed parameters
//=====================================================================
#define SRV_SPEED_OK 0
#define SRV_SPEED_NOOK 1
//=====================================================================
// SERVO Seek Mode types
//=====================================================================
#define SEEK_NORMAL 0x00
#define SEEK_LEAD_IN 0x04
#define SEEK_LEAD_OUT 0x08
#define SEEK_MULTI_SEN 0x0C
#define SEEK_AUDIO 0x02
#define SEEK_LAYER0 0x00
#define SEEK_LAYER1 0x01
#define SEEK_FILESYS 0x06
/*=========================================================================
Optional Definition
=========================================================================*/
#define MAX_DVD_SPEED 2 // Initial servo maximum speed for DVD
#define OPT_DVD_SPEED 2 // Initial servo optimum speed for DVD
#define MAX_DVDCLV_SPEED 2
#define MAX_TWO_DVD_SPEED 2 // dual layer speed
#define MIN_DVD_SPEED 2 // Initial servo optimum speed for DVD
#define RANGE_DVD_SPEED 2 // Change speed limit for DVD
#define RANACC_DVD_SPEED 2 // Random Access speed
#define LEADIN_DVD_SPEED 2 // Read leadin speed
#define MAX_DVDR_SPEED 2
#define MAX_DVDMRW_SPEED 2 // DVD-RW
#define MAX_DVDPRW_SPEED 2 // DVD+RW
#define MAX_RAMV1_SPEED 2 // Initial servo maximum speed for RAM Ver.1
#define MAX_RAMV2_SPEED 2 // Initial servo maximum speed for RAM Ver.2
#define DVD_SPEED_GAP 1 // for MTK decoder speed down function
#define DVD_VIDEO_SPEED 2
#define MAX_CD_SPEED 4 // Initial servo minimum speed for CD
#define OPT_CD_SPEED 4 // Initial servo optimum speed for CD
#define MAX_CDCLV_SPEED 4
#define MIN_CD_SPEED 4 // Initial servo minimum speed for CD
#define RANGE_CD_SPEED 4 // Change speed limit for DVD
#define RANACC_CDROM_SPEED 4 // Random Access speed
#define LEADIN_CD_SPEED 4 // Read leadin speed
#define CDRW_SPEED 4 // CDRW PLAYING SPEED
#define VCD_SPEED 4 // VCD PLAYING SPEED
#define CDDA_SPEED 4 // AUDIO PLAYING SPEED
#define HIGH_CDDA_SPEED 4 //
#define CDPLUS_SPEED 4 // CD+ PLAYING SPEED
#define ENHANCECD_SPEED 4 // ENHANCE CD PLAYING SPEED
#define CD_SPEED_GAP 2 // for MTK decoder speed down function
#ifdef _SERVO_F_
#ifdef _SERVO_F1_
/********************************************/
/* Media type define */
/* _bMediaType = 0x01 : CD-ROM */
/* _bMediaType = 0x02 : CD-RW */
/* _bMediaType = 0x05 : CD-DVCD */
/* _bMediaType = 0x10 : DVD-ROM(S) */
/* _bMediaType = 0x11 : DVD-ROM(D) */
/* _bMediaType = 0x14 : DVD-ROM(L) */
/* _bMediaType = 0x30 : DVD-R V1.0 */
/* _bMediaType = 0x31 : DVD-R V2.0 */
/* _bMediaType = 0x50 : DVD+RW(4.7G) */
/* _bMediaType = 0x51 : DVD+RW(3.0G) */
/* _bMediaType = 0x52 : DVD-RW */
/* _bMediaType = 0x90 : DVD-RAM(2.6G) */
/* _bMediaType = 0x91 : DVD-RAM(4.7G) */
/* K.J.Chang 01/01/31*/
/********************************************/
BYTE bdata _bMediaType _at_ 0x21;
sbit _fgDiskIsDVDRW = _bMediaType^6; // DVD-RW/+RW
sbit _fgDiskIsDVDMRW = _bMediaType^1; // DVD-RW
sbit _fgDiskIsDVDR = _bMediaType^5; // DVD-R
sbit _fgDiskIsDVD = _bMediaType^4;
sbit _fgDualLayer = _bMediaType^0; // DVD
sbit _fgOppTrack = _bMediaType^1; // DVD
sbit _fgDiskIsDVCD = _bMediaType^2; // CD
sbit _fgDiskIsCDRW = _bMediaType^1; // CD ,new added by jishian
BYTE data _bWdCnt;
BYTE xdata _bMaxSpeed;
BYTE xdata _bOptimumSpeed;
BYTE xdata _bDriveSpeed;
BYTE data _bPlayerStatus;
BYTE bdata _bServoStatus _at_ 0x22;
sbit _fgDiscStatus = _bServoStatus^0; // tracking on:1, off:0
sbit _fgSpinStatus = _bServoStatus^1; // Servo status 1:ON, 0:OFF
sbit _fgPauseStatus = _bServoStatus^2; // 1/0: Pause ON/OFF
sbit _fgFocusStatus = _bServoStatus^3; // 1/0: FOK/not FOK
sbit _fgQIDStatus = _bServoStatus^4; // '1': when Qcode is available
sbit _fgCalStatus = _bServoStatus^5; // '1': Disk has been Calibrated
sbit _fgSpeedStatus = _bServoStatus^6; // '1': is changing speed
sbit _fgDmonStatus = _bServoStatus^7; // '1': spindle has been kicked
BIT _fgHybridSACD;
BIT _fg8CMDisk;
BIT _fgAbort; // Exit SERVO Routine immediately
#ifdef SUPPORT_UNFINALIZE_WITH_FILESYS
BIT _fgUnfinalize;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -