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

236 lines
5.1 KiB
C
Executable File

/* Created: Apr 23, 2015
* Copyright: Novatek Inc.
*
*/
#ifndef __NVT_NAND_XBOOT_DAT_H__
#define __NVT_NAND_XBOOT_DAT_H__
#include <asm/types.h>
#include <memalign.h>
#include <fdt_support.h>
#define PANEL_PARAM_SZ 512
#define PANEL_PARAM_VER 1
#define PANEL_PARM_NUM 10
#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_NAND_XBOOTDAT_HELP_TYPE;
typedef struct _nvt_nand_xbootdat_info {
char *xdat_name;
int (*xdathelp)(struct _nvt_nand_xbootdat_info *this, NVT_NAND_XBOOTDAT_HELP_TYPE help_type);
int (*xdatdump)(struct _nvt_nand_xbootdat_info *this, int argc, char* const argv[]);
int (*xdatsave)(struct _nvt_nand_xbootdat_info *this, int argc, char* const argv[]);
int (*xdaterase)(struct _nvt_nand_xbootdat_info *this, int argc, char* const argv[]);
unsigned int start_block;//
unsigned int size;//count in block
} nvt_nand_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_ARCH_NT72172_A32) || defined(CONFIG_ARCH_NT72172_A64) //172 use old parameters
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 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 u16PanelTiming2D;
u16 u16PanelTiming2DSport;
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
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 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;
#endif
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 nvt_nand_xbootdat_init(void);
nvt_nand_xbootdat_info* nvt_nand_get_xdat_by_name(char *name);
int nvt_prepare_kercmd(void);
#endif