nt9856x/BSP/u-boot/board/novatek/common/include/nvt_emmc_xbootdat.h
2023-03-28 15:07:53 +08:00

337 lines
7.5 KiB
C
Executable File

/*
* board/novatek/nt72670btk/nt72670b_emmc_xbootdat.h
*
* Author: Alvin lin
* Created: Jun 5, 2015
* Copyright: Novatek Inc.
*
*/
#ifndef __NT72670B_EMMC_XBOOT_DAT_H__
#define __NT72670B_EMMC_XBOOT_DAT_H__
#include <asm/types.h>
#define PANEL_PARAM_SZ 512
#if defined(CONFIG_OLD_PANEL_PARAM)
#define PANEL_PARAM_VER 1
#else
#define PANEL_PARAM_VER 3
#endif
#define PANEL_PARM_NUM 100
#define PANEL_INDEX_SIGN "PIDX"
#define PANEL_PARAM_SIGN "PANL"
typedef enum {
XDAT_HELP_DUMP,
XDAT_HELP_SAVE,
XDAT_HELP_ERASE,
XDAT_HELP_MAX
} NVT_EMMC_XBOOTDAT_HELP_TYPE;
typedef struct _nvt_emmc_xbootdat_info {
char *xdat_name;
int (*xdathelp)(struct _nvt_emmc_xbootdat_info *this, NVT_EMMC_XBOOTDAT_HELP_TYPE help_type);
int (*xdatdump)(struct _nvt_emmc_xbootdat_info *this, int argc, char* const argv[]);
int (*xdatsave)(struct _nvt_emmc_xbootdat_info *this, int argc, char* const argv[]);
int (*xdaterase)(struct _nvt_emmc_xbootdat_info *this, int argc, char* const argv[]);
unsigned int start_sector;//count in sector
unsigned int size;//count in sector
} nvt_emmc_xbootdat_info;
typedef struct _stMode {
u16 u16Width;
u16 u16Height;
u16 u16TypHTotal;
u8 u8HSyncWidth;
u16 u16HSyncBackPorch;
u16 u16HSyncStart;
u16 u16TypVTotal;
u8 u8VSyncWidth;
u16 u16VSyncBackPorch;
u16 u16VSyncStart;
u16 u16PLL;
} stMode;
#if defined(CONFIG_OLD_PANEL_PARAM)
typedef struct _panel_param {
u8 sign[4];
u32 version;
u8 u8PanelID;
u8 b8Mode50Hz;
u8 u8Panel;
u8 au8Name[16];
u8 b8DualPixelOutput;
u8 b8ABSwap;
u8 b8ChannelSwap;
u8 b8FrameSyncEnable;
u8 u8FrameSyncMode;
u8 u8MISC;
u8 enLvdsFormat;
u8 b8RBSwap;
u8 u8DitheringBit;
u16 u16LVDSPhase;
u16 u16LVDSPhase_PortA;
u16 u16LVDSPhase_PortB;
u16 u16VFreqDiff_Min;
u16 u16VFreqDiff_Max;
u16 u16VTotalDiff_Min;
u16 u16VTotalDiff_Max;
stMode stMode50Hz;
stMode stMode60Hz;
u16 u16PanelPowerOnDelay1;
u16 u16PanelPowerOnDelay2;
u16 u16PanelPowerOFFDelay1;
u16 u16PanelPowerOFFDelay2;
u16 u16BackLightLevel;
u8 b8PWMDutyInv;
u8 b8HFlip;
u8 b8VFlip;
u8 b8OutputPanelFHD;
u8 VX1;
u8 FRC;
u8 SEP;
u8 b8Blinking;
u8 u8PanelType;
u8 b8ForcePanelTiming2D;
u8 b8ForcePanelTiming2DSport;
u8 b8ForcePanelTiming3D;
u16 u16PanelPowerGPIO;
u16 u16PanelBackLightGPIO;
u16 u16PanelTiming3D;
u16 u16PWM2DSync;
u16 u16PWM3DSync;
u16 u16PDIMFreq2D50Hz;
u16 u16PDIMFreq2D60Hz;
u16 u16PDIMFreq2DSport50Hz;
u16 u16PDIMFreq2DSport60Hz;
u16 u16PDIMFreq3D50Hz;
u16 u16PDIMFreq3D60Hz;
u16 u16PDIMDelay2D50Hz;
u16 u16PDIMDelay2D60Hz;
u16 u16PDIMDelay2DSport50Hz;
u16 u16PDIMDelay2DSport60Hz;
u16 u16PDIMDelay3D50Hz;
u16 u16PDIMDelay3D60Hz;
u16 u16ADIMFreq2D50Hz;
u16 u16ADIMFreq2D60Hz;
u16 u16ADIMFreq2DSport50Hz;
u16 u16ADIMFreq2DSport60Hz;
u16 u16ADIMFreq3D50Hz;
u16 u16ADIMFreq3D60Hz;
u8 b8LocalDIMControl;
u16 u16LRDelay3D;
u16 u16BTDelay3D;
u8 b8PDIMConByPanel3D;
u8 u8Tcon;
u8 u8TconType;
u16 u16VX1PreEmphasisG1;
u16 u16VX1PreEmphasisG2;
u16 u16VX1PreEmphasisG3;
u16 u16VX1SwingG1;
u16 u16VX1SwingG2;
u16 u16VX1SwingG3;
u8 b8PanelPowerInvert;
u8 b8BacklightPowerInver;
u16 u16BacklightFreq;
}panel_param;
#else//CONFIG_OLD_PANEL_PARAM
typedef struct _panel_param {
u8 sign[4];
u32 version;
u8 u8PanelID;
u8 b8Mode50Hz;
u8 u8Panel;
u8 au8Name[100];
u8 b8DualPixelOutput;
u8 b8ABSwap;
u8 b8ChannelSwap;
u8 b8FrameSyncEnable;
u8 u8FrameSyncMode;
u8 u8MISC;
u8 enLvdsFormat;
u8 b8RBSwap;
u8 u8DitheringBit;
u16 u16LVDSPhase;
u16 u16LVDSPhase_PortA;
u16 u16LVDSPhase_PortB;
u16 u16VFreqDiff_Min;
u16 u16VFreqDiff_Max;
u16 u16VTotalDiff_Min;
u16 u16VTotalDiff_Max;
stMode stMode50Hz;
stMode stMode60Hz;
u16 u16PanelPowerOnDelay1;
u16 u16PanelPowerOnDelay2;
u16 u16PanelPowerOnDelay3;
u16 u16PanelPowerOnDelay4;
u16 u16PanelPowerOFFDelay1;
u16 u16PanelPowerOFFDelay2;
u16 u16PanelPowerOFFDelay3;
u16 u16PanelPowerGPIO;
u16 u16PanelBackLightGPIO;
u16 u16BackLightLevel;
u16 u16BacklightFreq;
u8 b8PWMDutyInv;
u8 b8PanelPowerInvert;
u8 b8BacklightPowerInvert;
u8 b8HFlip;
u8 b8VFlip;
u8 VX1;
u8 FRC;
u8 SEP;
u8 u8PanelType;
u8 u8Tcon;
u8 u8TconType;
u8 u8LocalDIMControl;
u8 u8LocalDIM_Zone_X;
u8 u8LocalDIM_Zone_Y;
u16 u16VX1PreEmphasisG1;
u16 u16VX1PreEmphasisG2;
u16 u16VX1PreEmphasisG3;
u16 u16VX1SwingG1;
u16 u16VX1SwingG2;
u16 u16VX1SwingG3;
u8 u8PanelIOMode;
u8 u8PanelPwmMaxDuty;
u8 u8PanelPwmMinDuty;
u8 u8PanelCustomerID;
u8 u8Reserved0;
u8 u8Reserved1;
u8 u8Reserved2;
u8 u8Reserved3;
u8 u8Reserved4;
u8 u8Reserved5;
u8 u8Reserved6;
u8 u8Reserved7;
u8 u8Reserved8;
u8 u8Reserved9;
u8 u8PanelI2cPortNum;
u8 u8PanelI2cSlaveAddr;
u8 u8PanelI2cWorkLog0;
u8 u8PanelI2cWorkLog1;
u8 u8PanelI2cWorkLog2;
u8 u8PanelI2cWorkLog3;
u8 u8PanelI2cWorkLog4;
u8 u8PanelI2cWorkLog5;
u8 u8PanelI2cWorkLog6;
u8 u8PanelI2cWorkLog7;
u8 u8PanelI2cWorkLog8;
u8 u8PanelI2cWorkLog9;
u8 u8PanelI2cWorkLog10;
u8 u8PanelI2cWorkLog11;
u8 u8PanelI2cWorkLog12;
u8 u8PanelI2cWorkLog13;
u8 u8PanelI2cWorkLog14;
u8 u8PanelI2cWorkLog15;
u8 u8PanelI2cWorkLog16;
u8 u8PanelI2cWorkLog17;
u8 u8PanelI2cWorkLog18;
u8 u8PanelI2cWorkLog19;
u8 u8PanelI2cWorkLog20;
u8 u8PanelI2cWorkLog21;
u8 u8PanelI2cWorkLog22;
u8 u8PanelI2cWorkLog23;
u8 u8PanelI2cWorkLog24;
u8 u8PanelI2cWorkLog25;
u8 u8PanelI2cWorkLog26;
u8 u8PanelI2cWorkLog27;
u8 u8PanelI2cWorkLog28;
u8 u8PanelI2cWorkLog29;
u8 u8PanelI2cWorkLog30;
u8 u8PanelI2cWorkLog31;
u8 u8PanelI2cWorkLog32;
u8 u8PanelI2cWorkLog33;
u8 u8PanelI2cWorkLog34;
u8 u8PanelI2cWorkLog35;
u8 u8PanelI2cWorkLog36;
u8 u8PanelI2cWorkLog37;
u8 u8PanelI2cWorkLog38;
u8 u8PanelI2cWorkLog39;
u8 u8PanelI2cWorkLog40;
u8 u8PanelI2cWorkLog41;
u8 u8PanelI2cWorkLog42;
u8 u8PanelI2cWorkLog43;
u8 u8PanelI2cWorkLog44;
u8 u8PanelI2cWorkLog45;
u8 u8PanelI2cWorkLog46;
u8 u8PanelI2cWorkLog47;
u8 u8PanelI2cWorkLog48;
u8 u8PanelI2cWorkLog49;
u8 u8PanelI2cWorkLog50;
u8 u8PanelI2cWorkLog51;
u8 u8PanelI2cWorkLog52;
u8 u8PanelI2cWorkLog53;
u8 u8PanelI2cWorkLog54;
u8 u8PanelI2cWorkLog55;
u8 u8PanelI2cWorkLog56;
u8 u8PanelI2cWorkLog57;
u8 u8PanelI2cWorkLog58;
u8 u8PanelI2cWorkLog59;
u8 u8PanelI2cWorkLog60;
u8 u8PanelI2cWorkLog61;
u8 u8PanelI2cWorkLog62;
u8 u8PanelI2cWorkLog63;
u8 u8PanelI2cWorkLog64;
u8 u8PanelI2cWorkLog65;
u8 u8PanelI2cWorkLog66;
u8 u8PanelI2cWorkLog67;
u8 u8PanelI2cWorkLog68;
u8 u8PanelI2cWorkLog69;
u8 u8PanelI2cWorkLog70;
u8 u8PanelI2cWorkLog71;
u8 u8PanelI2cWorkLog72;
u8 u8PanelI2cWorkLog73;
u8 u8PanelI2cWorkLog74;
u8 u8PanelI2cWorkLog75;
u8 u8PanelI2cWorkLog76;
u8 u8PanelI2cWorkLog77;
u8 u8PanelI2cWorkLog78;
u8 u8PanelI2cWorkLog79;
u8 u8PanelI2cWorkLog80;
u8 u8PanelI2cWorkLog81;
u8 u8PanelI2cWorkLog82;
u8 u8PanelI2cWorkLog83;
u8 u8PanelI2cWorkLog84;
u8 u8PanelI2cWorkLog85;
u8 u8PanelI2cWorkLog86;
u8 u8PanelI2cWorkLog87;
u8 u8PanelI2cWorkLog88;
u8 u8PanelI2cWorkLog89;
u8 u8PanelI2cWorkLog90;
u8 u8PanelI2cWorkLog91;
u8 u8PanelI2cWorkLog92;
u8 u8PanelI2cWorkLog93;
u8 u8PanelI2cWorkLog94;
u8 u8PanelI2cWorkLog95;
u8 u8PanelI2cWorkLog96;
u8 u8PanelI2cWorkLog97;
u8 u8PanelI2cWorkLog98;
u8 u8PanelI2cWorkLog99;
}panel_param;
#endif//CONFIG_OLD_PANEL_PARAM
typedef struct {
panel_param p;
u8 padding[PANEL_PARAM_SZ - sizeof(panel_param)];
} panel_param_blk;
typedef struct {
u8 sign[4];
u32 version;
u32 index;
u32 param_cnt;
} panel_index;
typedef struct {
panel_index idx;
u8 padding[PANEL_PARAM_SZ - sizeof(panel_index)];
} panel_index_blk;
void xbootdat_init(unsigned int xbootdat_start_offset);
nvt_emmc_xbootdat_info* nvt_emmc_get_xdat_by_name(char *name);
int nvt_prepare_kercmd(void);
int nvt_prepare_rcvcmd(void);
#endif