77 lines
2.2 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* 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