77 lines
2.2 KiB
C
77 lines
2.2 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
||
/*
|
||
* techpoint tp9951 regs
|
||
*
|
||
* Copyright (C) 2023 Rockchip Electronics Co., Ltd.
|
||
*/
|
||
|
||
#ifndef _TECHPOINT_TP9951_H
|
||
#define _TECHPOINT_TP9951_H
|
||
|
||
#include "techpoint_common.h"
|
||
|
||
#define DEBUG
|
||
|
||
#define TP9951_DEF_1080P 1
|
||
#define TP9951_DEF_720P 0
|
||
#define TP9951_DEF_PAL 0
|
||
#define TP9951_DEF_NTSC 0
|
||
|
||
#define STD_TVI 0
|
||
#define STD_HDA 1
|
||
|
||
// device id 0x2860
|
||
#define TP9951_CHIP_ID_H_REG 0xFE
|
||
#define TP9951_CHIP_ID_H_VALUE 0x28
|
||
#define TP9951_CHIP_ID_L_REG 0xFF
|
||
#define TP9951_CHIP_ID_L_VALUE 0x60
|
||
|
||
#define TP9951_LINK_FREQ_148M (148500000UL >> 1)
|
||
#define TP9951_LINK_FREQ_297M (297000000UL >> 1)
|
||
#define TP9951_LINK_FREQ_594M (594000000UL >> 1)
|
||
#define TP9951_LANES 2
|
||
#define TP9951_BITS_PER_SAMPLE 8
|
||
|
||
enum tp9952_support_mipi_lane {
|
||
MIPI_2LANE,
|
||
MIPI_1LANE,
|
||
};
|
||
|
||
#define CVBS_960H (0) //1->960H 0->720H
|
||
|
||
enum tp9951_support_reso {
|
||
TP9951_CVSTD_720P_60 = 0,
|
||
TP9951_CVSTD_720P_50,
|
||
TP9951_CVSTD_1080P_30,
|
||
TP9951_CVSTD_1080P_25,
|
||
TP9951_CVSTD_720P_30,
|
||
TP9951_CVSTD_720P_25,
|
||
TP9951_CVSTD_SD,
|
||
TP9951_CVSTD_OTHER,
|
||
TP9951_CVSTD_720P_275,
|
||
TP9951_CVSTD_QHD30, //960×540 only support with 2lane mode
|
||
TP9951_CVSTD_QHD25, //960×540 only support with 2lane mode
|
||
TP9951_CVSTD_PAL,
|
||
TP9951_CVSTD_NTSC,
|
||
TP9951_CVSTD_UVGA25, //1280x960p25, must use with MIPI_4CH4LANE_445M
|
||
TP9951_CVSTD_UVGA30, //1280x960p30, must use with MIPI_4CH4LANE_445M
|
||
TP9951_CVSTD_A_UVGA30, //HDA 1280x960p30, must use with MIPI_4CH4LANE_378M
|
||
TP9951_CVSTD_F_UVGA30, //FH 1280x960p30, 1800x1000
|
||
TP9951_CVSTD_HD30864, //total 1600x900 86.4M
|
||
TP9951_CVSTD_HD30HDR, //special 720p30 with ISX019/SC120AT,total 1650x900
|
||
TP9951_CVSTD_1080P_60,//only support with 2lane mode
|
||
TP9951_CVSTD_1080P_50,//only support with 2lane mode
|
||
TP9951_CVSTD_1080P_28,
|
||
TP9951_CVSTD_1080P_275,
|
||
};
|
||
|
||
int tp9951_initialize(struct techpoint *techpoint);
|
||
int tp9951_get_channel_input_status(struct techpoint *techpoint, u8 ch);
|
||
int tp9951_get_all_input_status(struct techpoint *techpoint, u8 *detect_status);
|
||
int tp9951_set_channel_reso(struct i2c_client *client, int ch,
|
||
enum techpoint_support_reso reso);
|
||
int tp9951_get_channel_reso(struct i2c_client *client, int ch);
|
||
int tp9951_set_quick_stream(struct i2c_client *client, u32 stream);
|
||
|
||
#endif // _TECHPOINT_TP9951_H
|