kernel-brax3-ubuntu-touch/drivers/misc/mediatek/imgsensor/src-v4l2/adaptor-def.h
erascape f319b992b1 kernel-5.15: Initial import brax3 UT kernel
* halium configs enabled

Signed-off-by: erascape <erascape@proton.me>
2025-09-23 15:17:10 +00:00

190 lines
2.9 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright (c) 2019 MediaTek Inc. */
#ifndef __ADAPTOR_DEF_H__
#define __ADAPTOR_DEF_H__
#define MODE_MAXCNT 25
#define OF_SENSOR_NAMES_MAXCNT 20
//#define POWERON_ONCE_OPENED
#define IMGSENSOR_DEBUG
#define OF_SENSOR_NAME_PREFIX "sensor"
#define IMGSENSOR_LOG_MORE 0
enum {
CLK_6M = 0,
CLK_12M,
CLK_13M,
CLK_19_2M,
CLK_24M,
CLK_26M,
CLK_52M,
CLK_MCLK,
CLK1_6M,
CLK1_12M,
CLK1_13M,
CLK1_19_2M,
CLK1_24M,
CLK1_26M,
CLK1_26M_ULPOSC,
CLK1_52M,
CLK1_MCLK1,
CLK_MAXCNT,
};
#define ADAPTOR_CLK_NAMES \
"6", \
"12", \
"13", \
"19.2", \
"24", \
"26", \
"52", \
"mclk", \
"clk1_6", \
"clk1_12", \
"clk1_13", \
"clk1_19.2", \
"clk1_24", \
"clk1_26", \
"clk1_26_ulposc", \
"clk1_52", \
"clk1_mclk1", \
enum {
STATE_MCLK_OFF = 0,
STATE_MCLK_2MA,
STATE_MCLK_4MA,
STATE_MCLK_6MA,
STATE_MCLK_8MA,
STATE_RST_LOW,
STATE_RST_HIGH,
STATE_PDN_LOW,
STATE_PDN_HIGH,
STATE_MIPI_SWITCH_OFF,
STATE_MIPI_SWITCH_ON,
STATE_AVDD_OFF,
STATE_AVDD_ON,
STATE_DVDD_OFF,
STATE_DVDD_ON,
STATE_DOVDD_OFF,
STATE_DOVDD_ON,
STATE_AFVDD_OFF,
STATE_AFVDD_ON,
STATE_AFVDD1_OFF,
STATE_AFVDD1_ON,
STATE_AVDD1_OFF,
STATE_AVDD1_ON,
STATE_AVDD2_OFF,
STATE_AVDD2_ON,
STATE_MCLK1_OFF,
STATE_MCLK1_2MA,
STATE_MCLK1_4MA,
STATE_MCLK1_6MA,
STATE_MCLK1_8MA,
STATE_DVDD1_OFF,
STATE_DVDD1_ON,
STATE_RST1_LOW,
STATE_RST1_HIGH,
STATE_PONV_LOW,
STATE_PONV_HIGH,
STATE_SCL_AP,
STATE_SCL_SCP,
STATE_SDA_AP,
STATE_SDA_SCP,
STATE_EINT,
STATE_MAXCNT,
};
#define ADAPTOR_STATE_NAMES \
"mclk_off", \
"mclk_2mA", \
"mclk_4mA", \
"mclk_6mA", \
"mclk_8mA", \
"rst_low", \
"rst_high", \
"pdn_low", \
"pdn_high", \
"mipi_switch_off", \
"mipi_switch_on", \
"avdd_off", \
"avdd_on", \
"dvdd_off", \
"dvdd_on", \
"dovdd_off", \
"dovdd_on", \
"afvdd_off", \
"afvdd_on", \
"afvdd1_off", \
"afvdd1_on", \
"avdd1_off", \
"avdd1_on", \
"avdd2_off", \
"avdd2_on", \
"mclk1_off", \
"mclk1_2mA", \
"mclk1_4mA", \
"mclk1_6mA", \
"mclk1_8mA", \
"dvdd1_off", \
"dvdd1_on", \
"rst1_low", \
"rst1_high", \
"ponv_low", \
"ponv_high", \
"scl_ap", \
"scl_scp", \
"sda_ap", \
"sda_scp", \
"eint", \
enum {
REGULATOR_AVDD = 0,
REGULATOR_DVDD,
REGULATOR_DOVDD,
REGULATOR_AFVDD,
REGULATOR_AFVDD1,
REGULATOR_AVDD1,
REGULATOR_AVDD2,
REGULATOR_DVDD1,
REGULATOR_RST,
REGULATOR_MAXCNT,
};
#define ADAPTOR_REGULATOR_NAMES \
"avdd", \
"dvdd", \
"dovdd", \
"afvdd", \
"afvdd1", \
"avdd1", \
"avdd2", \
"dvdd1", \
"rst", \
/* Format code util */
#define to_std_fmt_code(code) \
((code) & 0xFFFF)
#define to_mtk_ext_fmt_code(stdcode, mode) \
(0x10000000 | (((mode) & 0xFF) << 16) | to_std_fmt_code(stdcode))
#define set_std_parts_fmt_code(code, stdcode) \
{ \
code = (((code) & 0xFFFF0000) | to_std_fmt_code(stdcode)); \
}
#define is_mtk_ext_fmt_code(code) \
(((code) >> 28) == 0x1)
#define get_sensor_mode_from_fmt_code(code) \
({ \
int __val = 0; \
__val = ((code) >> 16) & 0xFF; \
__val; \
})
#endif