unplugged-kernel/drivers/misc/mediatek/video/mt6768/dispsys/ddp_dpi.h

165 lines
3.3 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2019 MediaTek Inc.
*/
#ifndef __DDP_DPI_H__
#define __DDP_DPI_H__
/*#include <mach/mt_typedefs.h>*/
#include <linux/types.h>
#include "lcm_drv.h"
#include "ddp_info.h"
#include "cmdq_record.h"
#ifdef __cplusplus
extern "C" {
#endif
#ifndef FALSE
#define FALSE (0)
#endif
#ifndef TRUE
#define TRUE (1)
#endif
#ifndef NULL
#define NULL (0)
#endif
#define DPI_PHY_ADDR 0x14024000
#define DPI_CHECK_RET(expr) \
do { \
enum DPI_STATUS ret = (expr); \
ASSERT(ret == DPI_STATUS_OK); \
} while (0) \
/*for legacy DPI Driver*/
enum LCD_IF_ID {
LCD_IF_PARALLEL_0 = 0,
LCD_IF_PARALLEL_1 = 1,
LCD_IF_PARALLEL_2 = 2,
LCD_IF_SERIAL_0 = 3,
LCD_IF_SERIAL_1 = 4,
LCD_IF_ALL = 0xFF,
};
struct LCD_REG_CMD_ADDR {
unsigned rsv_0:4;
unsigned addr:4;
unsigned rsv_8:24;
};
struct LCD_REG_DAT_ADDR {
unsigned rsv_0:4;
unsigned addr:4;
unsigned rsv_8:24;
};
enum LCD_IF_FMT_COLOR_ORDER {
LCD_IF_FMT_COLOR_ORDER_RGB = 0,
LCD_IF_FMT_COLOR_ORDER_BGR = 1,
};
enum LCD_IF_FMT_TRANS_SEQ {
LCD_IF_FMT_TRANS_SEQ_MSB_FIRST = 0,
LCD_IF_FMT_TRANS_SEQ_LSB_FIRST = 1,
};
enum LCD_IF_FMT_PADDING {
LCD_IF_FMT_PADDING_ON_LSB = 0,
LCD_IF_FMT_PADDING_ON_MSB = 1,
};
enum LCD_IF_FORMAT {
LCD_IF_FORMAT_RGB332 = 0,
LCD_IF_FORMAT_RGB444 = 1,
LCD_IF_FORMAT_RGB565 = 2,
LCD_IF_FORMAT_RGB666 = 3,
LCD_IF_FORMAT_RGB888 = 4,
};
enum LCD_IF_WIDTH {
LCD_IF_WIDTH_8_BITS = 0,
LCD_IF_WIDTH_9_BITS = 2,
LCD_IF_WIDTH_16_BITS = 1,
LCD_IF_WIDTH_18_BITS = 3,
LCD_IF_WIDTH_24_BITS = 4,
LCD_IF_WIDTH_32_BITS = 5,
};
enum DPI_STATUS {
DPI_STATUS_OK = 0,
DPI_STATUS_ERROR,
};
enum DPI_POLARITY {
DPI_POLARITY_RISING = 0,
DPI_POLARITY_FALLING = 1
};
enum DPI_RGB_ORDER {
DPI_RGB_ORDER_RGB = 0,
DPI_RGB_ORDER_BGR = 1,
};
enum HDMI_VIDEO_RESOLUTION {
HDMI_VIDEO_720x480p_60Hz = 0,
HDMI_VIDEO_1440x480i_60Hz = 1,
HDMI_VIDEO_1280x720p_60Hz = 2,
HDMI_VIDEO_1920x1080i_60Hz = 5,
HDMI_VIDEO_1920x1080p_30Hz = 6,
HDMI_VIDEO_720x480i_60Hz = 0xD,
HDMI_VIDEO_1920x1080p_60Hz = 0x0b,
HDMI_VIDEO_2160p_DSC_30Hz = 0x13,
HDMI_VIDEO_2160p_DSC_24Hz = 0x14,
HDMI_VIDEO_RESOLUTION_NUM
};
struct LCD_REG_WROI_CON {
unsigned RGB_ORDER:1;
unsigned BYTE_ORDER:1;
unsigned PADDING:1;
unsigned DATA_FMT:3;
unsigned IF_FMT:2;
unsigned COMMAND:5;
unsigned rsv_13:2;
unsigned ENC:1;
unsigned rsv_16:8;
unsigned SEND_RES_MODE:1;
unsigned IF_24:1;
unsigned rsv_6:6;
};
int ddp_dpi_stop(enum DISP_MODULE_ENUM module, void *cmdq_handle);
int ddp_dpi_power_on(enum DISP_MODULE_ENUM module, void *cmdq_handle);
int ddp_dpi_power_off(enum DISP_MODULE_ENUM module, void *cmdq_handle);
int ddp_dpi_dump(enum DISP_MODULE_ENUM module, int level);
int ddp_dpi_start(enum DISP_MODULE_ENUM module, void *cmdq);
int ddp_dpi_init(enum DISP_MODULE_ENUM module, void *cmdq);
int ddp_dpi_deinit(enum DISP_MODULE_ENUM module, void *cmdq_handle);
int ddp_dpi_config(enum DISP_MODULE_ENUM module,
struct disp_ddp_path_config *config, void *cmdq_handle);
int ddp_dpi_trigger(enum DISP_MODULE_ENUM module, void *cmdq);
int ddp_dpi_reset(enum DISP_MODULE_ENUM module, void *cmdq_handle);
int ddp_dpi_ioctl(enum DISP_MODULE_ENUM module, void *cmdq_handle,
enum DDP_IOCTL_NAME ioctl_cmd, void *params);
int _Enable_Interrupt(void);
enum AviColorSpace_e {
acsRGB = 0, acsYCbCr422 = 1, acsYCbCr444 = 2, acsFuture = 3
};
#ifdef __cplusplus
}
#endif
#endif /*__DPI_DRV_H__*/