162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-3-Clause
262306a36Sopenharmony_ci# Copyright (C) 2019--2020 Intel Corporation
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci# register				rflags
562306a36Sopenharmony_ci# - f	field	LSB	MSB		rflags
662306a36Sopenharmony_ci# - e	enum	value			# after a field
762306a36Sopenharmony_ci# - e	enum	value	[LSB	MSB]
862306a36Sopenharmony_ci# - b	bool	bit
962306a36Sopenharmony_ci# - l	arg	name	min	max	elsize	[discontig...]
1062306a36Sopenharmony_ci#
1162306a36Sopenharmony_ci# rflags
1262306a36Sopenharmony_ci#	8, 16, 32	register bits (default is 8)
1362306a36Sopenharmony_ci#	v1.1		defined in version 1.1
1462306a36Sopenharmony_ci#	f		formula
1562306a36Sopenharmony_ci#	float_ireal	iReal or IEEE 754; 32 bits
1662306a36Sopenharmony_ci#	ireal		unsigned iReal
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci# general status registers
1962306a36Sopenharmony_cimodule_model_id				0x0000	16
2062306a36Sopenharmony_cimodule_revision_number_major		0x0002	8
2162306a36Sopenharmony_ciframe_count				0x0005	8
2262306a36Sopenharmony_cipixel_order				0x0006	8
2362306a36Sopenharmony_ci- e	GRBG				0
2462306a36Sopenharmony_ci- e	RGGB				1
2562306a36Sopenharmony_ci- e	BGGR				2
2662306a36Sopenharmony_ci- e	GBRG				3
2762306a36Sopenharmony_ciMIPI_CCS_version			0x0007	8
2862306a36Sopenharmony_ci- e	v1_0				0x10
2962306a36Sopenharmony_ci- e	v1_1				0x11
3062306a36Sopenharmony_ci- f	major				4	7
3162306a36Sopenharmony_ci- f	minor				0	3
3262306a36Sopenharmony_cidata_pedestal				0x0008	16
3362306a36Sopenharmony_cimodule_manufacturer_id			0x000e	16
3462306a36Sopenharmony_cimodule_revision_number_minor		0x0010	8
3562306a36Sopenharmony_cimodule_date_year			0x0012	8
3662306a36Sopenharmony_cimodule_date_month			0x0013	8
3762306a36Sopenharmony_cimodule_date_day				0x0014	8
3862306a36Sopenharmony_cimodule_date_phase			0x0015	8
3962306a36Sopenharmony_ci- f					0	2
4062306a36Sopenharmony_ci- e	ts				0
4162306a36Sopenharmony_ci- e	es				1
4262306a36Sopenharmony_ci- e	cs				2
4362306a36Sopenharmony_ci- e	mp				3
4462306a36Sopenharmony_cisensor_model_id				0x0016	16
4562306a36Sopenharmony_cisensor_revision_number			0x0018	8
4662306a36Sopenharmony_cisensor_firmware_version			0x001a	8
4762306a36Sopenharmony_ciserial_number				0x001c	32
4862306a36Sopenharmony_cisensor_manufacturer_id			0x0020	16
4962306a36Sopenharmony_cisensor_revision_number_16		0x0022	16
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci# frame format description registers
5262306a36Sopenharmony_ciframe_format_model_type			0x0040	8
5362306a36Sopenharmony_ci- e	2-byte				1
5462306a36Sopenharmony_ci- e	4-byte				2
5562306a36Sopenharmony_ciframe_format_model_subtype		0x0041	8
5662306a36Sopenharmony_ci- f	rows				0	3
5762306a36Sopenharmony_ci- f	columns				4	7
5862306a36Sopenharmony_ciframe_format_descriptor(n)		0x0042	16	f
5962306a36Sopenharmony_ci- l	n				0	14	2
6062306a36Sopenharmony_ci- f	pixels				0	11
6162306a36Sopenharmony_ci- f	pcode				12	15
6262306a36Sopenharmony_ci- e	embedded			1
6362306a36Sopenharmony_ci- e	dummy_pixel			2
6462306a36Sopenharmony_ci- e	black_pixel			3
6562306a36Sopenharmony_ci- e	dark_pixel			4
6662306a36Sopenharmony_ci- e	visible_pixel			5
6762306a36Sopenharmony_ci- e	manuf_specific_0		8
6862306a36Sopenharmony_ci- e	manuf_specific_1		9
6962306a36Sopenharmony_ci- e	manuf_specific_2		10
7062306a36Sopenharmony_ci- e	manuf_specific_3		11
7162306a36Sopenharmony_ci- e	manuf_specific_4		12
7262306a36Sopenharmony_ci- e	manuf_specific_5		13
7362306a36Sopenharmony_ci- e	manuf_specific_6		14
7462306a36Sopenharmony_ciframe_format_descriptor_4(n)		0x0060	32	f
7562306a36Sopenharmony_ci- l	n				0	7	4
7662306a36Sopenharmony_ci- f	pixels				0	15
7762306a36Sopenharmony_ci- f	pcode				28	31
7862306a36Sopenharmony_ci- e	embedded			1
7962306a36Sopenharmony_ci- e	dummy_pixel			2
8062306a36Sopenharmony_ci- e	black_pixel			3
8162306a36Sopenharmony_ci- e	dark_pixel			4
8262306a36Sopenharmony_ci- e	visible_pixel			5
8362306a36Sopenharmony_ci- e	manuf_specific_0		8
8462306a36Sopenharmony_ci- e	manuf_specific_1		9
8562306a36Sopenharmony_ci- e	manuf_specific_2		10
8662306a36Sopenharmony_ci- e	manuf_specific_3		11
8762306a36Sopenharmony_ci- e	manuf_specific_4		12
8862306a36Sopenharmony_ci- e	manuf_specific_5		13
8962306a36Sopenharmony_ci- e	manuf_specific_6		14
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci# analog gain description registers
9262306a36Sopenharmony_cianalog_gain_capability			0x0080	16
9362306a36Sopenharmony_ci- e	global				0
9462306a36Sopenharmony_ci- e	alternate_global		2
9562306a36Sopenharmony_cianalog_gain_code_min			0x0084	16
9662306a36Sopenharmony_cianalog_gain_code_max			0x0086	16
9762306a36Sopenharmony_cianalog_gain_code_step			0x0088	16
9862306a36Sopenharmony_cianalog_gain_type			0x008a	16
9962306a36Sopenharmony_cianalog_gain_m0				0x008c	16
10062306a36Sopenharmony_cianalog_gain_c0				0x008e	16
10162306a36Sopenharmony_cianalog_gain_m1				0x0090	16
10262306a36Sopenharmony_cianalog_gain_c1				0x0092	16
10362306a36Sopenharmony_cianalog_linear_gain_min			0x0094	16	v1.1
10462306a36Sopenharmony_cianalog_linear_gain_max			0x0096	16	v1.1
10562306a36Sopenharmony_cianalog_linear_gain_step_size		0x0098	16	v1.1
10662306a36Sopenharmony_cianalog_exponential_gain_min		0x009a	16	v1.1
10762306a36Sopenharmony_cianalog_exponential_gain_max		0x009c	16	v1.1
10862306a36Sopenharmony_cianalog_exponential_gain_step_size	0x009e	16	v1.1
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ci# data format description registers
11162306a36Sopenharmony_cidata_format_model_type			0x00c0	8
11262306a36Sopenharmony_ci- e	normal				1
11362306a36Sopenharmony_ci- e	extended			2
11462306a36Sopenharmony_cidata_format_model_subtype		0x00c1	8
11562306a36Sopenharmony_ci- f	rows				0	3
11662306a36Sopenharmony_ci- f	columns				4	7
11762306a36Sopenharmony_cidata_format_descriptor(n)		0x00c2	16	f
11862306a36Sopenharmony_ci- l	n				0	15	2
11962306a36Sopenharmony_ci- f	compressed			0	7
12062306a36Sopenharmony_ci- f	uncompressed			8	15
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ci# general set-up registers
12362306a36Sopenharmony_cimode_select				0x0100	8
12462306a36Sopenharmony_ci- e	software_standby		0
12562306a36Sopenharmony_ci- e	streaming			1
12662306a36Sopenharmony_ciimage_orientation			0x0101	8
12762306a36Sopenharmony_ci- b	horizontal_mirror		0
12862306a36Sopenharmony_ci- b	vertical_flip			1
12962306a36Sopenharmony_cisoftware_reset				0x0103	8
13062306a36Sopenharmony_ci- e	off				0
13162306a36Sopenharmony_ci- e	on				1
13262306a36Sopenharmony_cigrouped_parameter_hold			0x0104	8
13362306a36Sopenharmony_cimask_corrupted_frames			0x0105	8
13462306a36Sopenharmony_ci- e	allow				0
13562306a36Sopenharmony_ci- e	mask				1
13662306a36Sopenharmony_cifast_standby_ctrl			0x0106	8
13762306a36Sopenharmony_ci- e	complete_frames			0
13862306a36Sopenharmony_ci- e	frame_truncation		1
13962306a36Sopenharmony_ciCCI_address_ctrl			0x0107	8
14062306a36Sopenharmony_ci2nd_CCI_if_ctrl				0x0108	8
14162306a36Sopenharmony_ci- b	enable				0
14262306a36Sopenharmony_ci- b	ack				1
14362306a36Sopenharmony_ci2nd_CCI_address_ctrl			0x0109	8
14462306a36Sopenharmony_ciCSI_channel_identifier			0x0110	8
14562306a36Sopenharmony_ciCSI_signaling_mode			0x0111	8
14662306a36Sopenharmony_ci- e	csi_2_dphy			2
14762306a36Sopenharmony_ci- e	csi_2_cphy			3
14862306a36Sopenharmony_ciCSI_data_format				0x0112	16
14962306a36Sopenharmony_ciCSI_lane_mode				0x0114	8
15062306a36Sopenharmony_ciDPCM_Frame_DT				0x011d	8
15162306a36Sopenharmony_ciBottom_embedded_data_DT			0x011e	8
15262306a36Sopenharmony_ciBottom_embedded_data_VC			0x011f	8
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_cigain_mode				0x0120	8
15562306a36Sopenharmony_ci- e	global				0
15662306a36Sopenharmony_ci- e	alternate			1
15762306a36Sopenharmony_ciADC_bit_depth				0x0121	8
15862306a36Sopenharmony_ciemb_data_ctrl				0x0122	v1.1
15962306a36Sopenharmony_ci- b	raw8_packing_for_raw16		0
16062306a36Sopenharmony_ci- b	raw10_packing_for_raw20		1
16162306a36Sopenharmony_ci- b 	raw12_packing_for_raw24		2
16262306a36Sopenharmony_ci
16362306a36Sopenharmony_ciGPIO_TRIG_mode				0x0130	8
16462306a36Sopenharmony_ciextclk_frequency_mhz			0x0136	16	ireal
16562306a36Sopenharmony_citemp_sensor_ctrl			0x0138	8
16662306a36Sopenharmony_ci- b	enable				0
16762306a36Sopenharmony_citemp_sensor_mode			0x0139	8
16862306a36Sopenharmony_citemp_sensor_output			0x013a	8
16962306a36Sopenharmony_ci
17062306a36Sopenharmony_ci# integration time registers
17162306a36Sopenharmony_cifine_integration_time			0x0200	16
17262306a36Sopenharmony_cicoarse_integration_time			0x0202	16
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ci# analog gain registers
17562306a36Sopenharmony_cianalog_gain_code_global			0x0204	16
17662306a36Sopenharmony_cianalog_linear_gain_global		0x0206	16	v1.1
17762306a36Sopenharmony_cianalog_exponential_gain_global		0x0208	16	v1.1
17862306a36Sopenharmony_ci
17962306a36Sopenharmony_ci# digital gain registers
18062306a36Sopenharmony_cidigital_gain_global			0x020e	16
18162306a36Sopenharmony_ci
18262306a36Sopenharmony_ci# hdr control registers
18362306a36Sopenharmony_ciShort_analog_gain_global		0x0216	16
18462306a36Sopenharmony_ciShort_digital_gain_global		0x0218	16
18562306a36Sopenharmony_ci
18662306a36Sopenharmony_ciHDR_mode				0x0220	8
18762306a36Sopenharmony_ci- b	enabled				0
18862306a36Sopenharmony_ci- b	separate_analog_gain		1
18962306a36Sopenharmony_ci- b	upscaling			2
19062306a36Sopenharmony_ci- b	reset_sync			3
19162306a36Sopenharmony_ci- b	timing_mode			4
19262306a36Sopenharmony_ci- b	exposure_ctrl_direct		5
19362306a36Sopenharmony_ci- b	separate_digital_gain		6
19462306a36Sopenharmony_ciHDR_resolution_reduction		0x0221	8
19562306a36Sopenharmony_ci- f	row				0	3
19662306a36Sopenharmony_ci- f	column				4	7
19762306a36Sopenharmony_ciExposure_ratio				0x0222	8
19862306a36Sopenharmony_ciHDR_internal_bit_depth			0x0223	8
19962306a36Sopenharmony_ciDirect_short_integration_time		0x0224	16
20062306a36Sopenharmony_ciShort_analog_linear_gain_global		0x0226	16	v1.1
20162306a36Sopenharmony_ciShort_analog_exponential_gain_global	0x0228	16	v1.1
20262306a36Sopenharmony_ci
20362306a36Sopenharmony_ci# clock set-up registers
20462306a36Sopenharmony_civt_pix_clk_div				0x0300	16
20562306a36Sopenharmony_civt_sys_clk_div				0x0302	16
20662306a36Sopenharmony_cipre_pll_clk_div				0x0304	16
20762306a36Sopenharmony_ci#vt_pre_pll_clk_div			0x0304	16
20862306a36Sopenharmony_cipll_multiplier				0x0306	16
20962306a36Sopenharmony_ci#vt_pll_multiplier			0x0306	16
21062306a36Sopenharmony_ciop_pix_clk_div				0x0308	16
21162306a36Sopenharmony_ciop_sys_clk_div				0x030a	16
21262306a36Sopenharmony_ciop_pre_pll_clk_div			0x030c	16
21362306a36Sopenharmony_ciop_pll_multiplier			0x030e	16
21462306a36Sopenharmony_cipll_mode				0x0310	8
21562306a36Sopenharmony_ci- f					0	0
21662306a36Sopenharmony_ci- e	single				0
21762306a36Sopenharmony_ci- e	dual				1
21862306a36Sopenharmony_ciop_pix_clk_div_rev			0x0312	16	v1.1
21962306a36Sopenharmony_ciop_sys_clk_div_rev			0x0314	16	v1.1
22062306a36Sopenharmony_ci
22162306a36Sopenharmony_ci# frame timing registers
22262306a36Sopenharmony_ciframe_length_lines			0x0340	16
22362306a36Sopenharmony_ciline_length_pck				0x0342	16
22462306a36Sopenharmony_ci
22562306a36Sopenharmony_ci# image size registers
22662306a36Sopenharmony_cix_addr_start				0x0344	16
22762306a36Sopenharmony_ciy_addr_start				0x0346	16
22862306a36Sopenharmony_cix_addr_end				0x0348	16
22962306a36Sopenharmony_ciy_addr_end				0x034a	16
23062306a36Sopenharmony_cix_output_size				0x034c	16
23162306a36Sopenharmony_ciy_output_size				0x034e	16
23262306a36Sopenharmony_ci
23362306a36Sopenharmony_ci# timing mode registers
23462306a36Sopenharmony_ciFrame_length_ctrl			0x0350	8
23562306a36Sopenharmony_ci- b	automatic			0
23662306a36Sopenharmony_ciTiming_mode_ctrl			0x0352	8
23762306a36Sopenharmony_ci- b	manual_readout			0
23862306a36Sopenharmony_ci- b	delayed_exposure		1
23962306a36Sopenharmony_ciStart_readout_rs			0x0353	8
24062306a36Sopenharmony_ci- b	manual_readout_start		0
24162306a36Sopenharmony_ciFrame_margin				0x0354	16
24262306a36Sopenharmony_ci
24362306a36Sopenharmony_ci# sub-sampling registers
24462306a36Sopenharmony_cix_even_inc				0x0380	16
24562306a36Sopenharmony_cix_odd_inc				0x0382	16
24662306a36Sopenharmony_ciy_even_inc				0x0384	16
24762306a36Sopenharmony_ciy_odd_inc				0x0386	16
24862306a36Sopenharmony_ci
24962306a36Sopenharmony_ci# monochrome readout registers
25062306a36Sopenharmony_cimonochrome_en				0x0390		v1.1
25162306a36Sopenharmony_ci- e	enabled				0
25262306a36Sopenharmony_ci
25362306a36Sopenharmony_ci# image scaling registers
25462306a36Sopenharmony_ciScaling_mode				0x0400	16
25562306a36Sopenharmony_ci- e	no_scaling			0
25662306a36Sopenharmony_ci- e	horizontal			1
25762306a36Sopenharmony_ciscale_m					0x0404	16
25862306a36Sopenharmony_ciscale_n					0x0406	16
25962306a36Sopenharmony_cidigital_crop_x_offset			0x0408	16
26062306a36Sopenharmony_cidigital_crop_y_offset			0x040a	16
26162306a36Sopenharmony_cidigital_crop_image_width		0x040c	16
26262306a36Sopenharmony_cidigital_crop_image_height		0x040e	16
26362306a36Sopenharmony_ci
26462306a36Sopenharmony_ci# image compression registers
26562306a36Sopenharmony_cicompression_mode			0x0500	16
26662306a36Sopenharmony_ci- e	none				0
26762306a36Sopenharmony_ci- e	dpcm_pcm_simple			1
26862306a36Sopenharmony_ci
26962306a36Sopenharmony_ci# test pattern registers
27062306a36Sopenharmony_citest_pattern_mode			0x0600	16
27162306a36Sopenharmony_ci- e	none				0
27262306a36Sopenharmony_ci- e	solid_color			1
27362306a36Sopenharmony_ci- e	color_bars			2
27462306a36Sopenharmony_ci- e	fade_to_grey			3
27562306a36Sopenharmony_ci- e	pn9				4
27662306a36Sopenharmony_ci- e	color_tile			5
27762306a36Sopenharmony_citest_data_red				0x0602	16
27862306a36Sopenharmony_citest_data_greenR			0x0604	16
27962306a36Sopenharmony_citest_data_blue				0x0606	16
28062306a36Sopenharmony_citest_data_greenB			0x0608	16
28162306a36Sopenharmony_civalue_step_size_smooth			0x060a	8
28262306a36Sopenharmony_civalue_step_size_quantised		0x060b	8
28362306a36Sopenharmony_ci
28462306a36Sopenharmony_ci# phy configuration registers
28562306a36Sopenharmony_citclk_post				0x0800	8
28662306a36Sopenharmony_ciths_prepare				0x0801	8
28762306a36Sopenharmony_ciths_zero_min				0x0802	8
28862306a36Sopenharmony_ciths_trail				0x0803	8
28962306a36Sopenharmony_citclk_trail_min				0x0804	8
29062306a36Sopenharmony_citclk_prepare				0x0805	8
29162306a36Sopenharmony_citclk_zero				0x0806	8
29262306a36Sopenharmony_citlpx					0x0807	8
29362306a36Sopenharmony_ciphy_ctrl				0x0808	8
29462306a36Sopenharmony_ci- e	auto				0
29562306a36Sopenharmony_ci- e	UI				1
29662306a36Sopenharmony_ci- e	manual				2
29762306a36Sopenharmony_citclk_post_ex				0x080a	16
29862306a36Sopenharmony_ciths_prepare_ex				0x080c	16
29962306a36Sopenharmony_ciths_zero_min_ex				0x080e	16
30062306a36Sopenharmony_ciths_trail_ex				0x0810	16
30162306a36Sopenharmony_citclk_trail_min_ex			0x0812	16
30262306a36Sopenharmony_citclk_prepare_ex				0x0814	16
30362306a36Sopenharmony_citclk_zero_ex				0x0816	16
30462306a36Sopenharmony_citlpx_ex					0x0818	16
30562306a36Sopenharmony_ci
30662306a36Sopenharmony_ci# link rate register
30762306a36Sopenharmony_cirequested_link_rate			0x0820	32	u16.16
30862306a36Sopenharmony_ci
30962306a36Sopenharmony_ci# equalization control registers
31062306a36Sopenharmony_ciDPHY_equalization_mode			0x0824	8	v1.1
31162306a36Sopenharmony_ci- b eq2					0
31262306a36Sopenharmony_ciPHY_equalization_ctrl			0x0825	8	v1.1
31362306a36Sopenharmony_ci- b enable				0
31462306a36Sopenharmony_ci
31562306a36Sopenharmony_ci# d-phy preamble control registers
31662306a36Sopenharmony_ciDPHY_preamble_ctrl			0x0826	8	v1.1
31762306a36Sopenharmony_ci- b	enable				0
31862306a36Sopenharmony_ciDPHY_preamble_length			0x0826	8	v1.1
31962306a36Sopenharmony_ci
32062306a36Sopenharmony_ci# d-phy spread spectrum control registers
32162306a36Sopenharmony_ciPHY_SSC_ctrl				0x0828	8	v1.1
32262306a36Sopenharmony_ci- b	enable				0
32362306a36Sopenharmony_ci
32462306a36Sopenharmony_ci# manual lp control register
32562306a36Sopenharmony_cimanual_LP_ctrl				0x0829	8	v1.1
32662306a36Sopenharmony_ci- b	enable				0
32762306a36Sopenharmony_ci
32862306a36Sopenharmony_ci# additional phy configuration registers
32962306a36Sopenharmony_citwakeup					0x082a		v1.1
33062306a36Sopenharmony_citinit					0x082b		v1.1
33162306a36Sopenharmony_ciths_exit				0x082c		v1.1
33262306a36Sopenharmony_ciths_exit_ex				0x082e	16	v1.1
33362306a36Sopenharmony_ci
33462306a36Sopenharmony_ci# phy calibration configuration registers
33562306a36Sopenharmony_ciPHY_periodic_calibration_ctrl		0x0830	8
33662306a36Sopenharmony_ci- b	frame_blanking			0
33762306a36Sopenharmony_ciPHY_periodic_calibration_interval	0x0831	8
33862306a36Sopenharmony_ciPHY_init_calibration_ctrl		0x0832	8
33962306a36Sopenharmony_ci- b	stream_start			0
34062306a36Sopenharmony_ciDPHY_calibration_mode			0x0833	8	v1.1
34162306a36Sopenharmony_ci- b	also_alternate			0
34262306a36Sopenharmony_ciCPHY_calibration_mode			0x0834	8	v1.1
34362306a36Sopenharmony_ci- e	format_1			0
34462306a36Sopenharmony_ci- e	format_2			1
34562306a36Sopenharmony_ci- e	format_3			2
34662306a36Sopenharmony_cit3_calpreamble_length			0x0835	8	v1.1
34762306a36Sopenharmony_cit3_calpreamble_length_per		0x0836	8	v1.1
34862306a36Sopenharmony_cit3_calaltseq_length			0x0837	8	v1.1
34962306a36Sopenharmony_cit3_calaltseq_length_per			0x0838	8	v1.1
35062306a36Sopenharmony_ciFM2_init_seed				0x083a	16	v1.1
35162306a36Sopenharmony_cit3_caludefseq_length			0x083c	16	v1.1
35262306a36Sopenharmony_cit3_caludefseq_length_per		0x083e	16	v1.1
35362306a36Sopenharmony_ci
35462306a36Sopenharmony_ci# c-phy manual control registers
35562306a36Sopenharmony_ciTGR_Preamble_Length			0x0841	8
35662306a36Sopenharmony_ci- b	preamable_prog_seq		7
35762306a36Sopenharmony_ci- f	begin_preamble_length		0	5
35862306a36Sopenharmony_ciTGR_Post_Length				0x0842	8
35962306a36Sopenharmony_ci- f	post_length			0	4
36062306a36Sopenharmony_ciTGR_Preamble_Prog_Sequence(n2)		0x0843
36162306a36Sopenharmony_ci- l	n2				0	6	1
36262306a36Sopenharmony_ci- f	symbol_n_1			3	5
36362306a36Sopenharmony_ci- f	symbol_n			0	2
36462306a36Sopenharmony_cit3_prepare				0x084e	16
36562306a36Sopenharmony_cit3_lpx					0x0850	16
36662306a36Sopenharmony_ci
36762306a36Sopenharmony_ci# alps control register
36862306a36Sopenharmony_ciALPS_ctrl				0x085a	8
36962306a36Sopenharmony_ci- b	lvlp_dphy			0
37062306a36Sopenharmony_ci- b	lvlp_cphy			1
37162306a36Sopenharmony_ci- b	alp_cphy			2
37262306a36Sopenharmony_ci
37362306a36Sopenharmony_ci# lrte control registers
37462306a36Sopenharmony_ciTX_REG_CSI_EPD_EN_SSP_cphy		0x0860	16
37562306a36Sopenharmony_ciTX_REG_CSI_EPD_OP_SLP_cphy		0x0862	16
37662306a36Sopenharmony_ciTX_REG_CSI_EPD_EN_SSP_dphy		0x0864	16
37762306a36Sopenharmony_ciTX_REG_CSI_EPD_OP_SLP_dphy		0x0866	16
37862306a36Sopenharmony_ciTX_REG_CSI_EPD_MISC_OPTION_cphy		0x0868		v1.1
37962306a36Sopenharmony_ciTX_REG_CSI_EPD_MISC_OPTION_dphy		0x0869		v1.1
38062306a36Sopenharmony_ci
38162306a36Sopenharmony_ci# scrambling control registers
38262306a36Sopenharmony_ciScrambling_ctrl				0x0870
38362306a36Sopenharmony_ci- b	enabled				0
38462306a36Sopenharmony_ci- f					2	3
38562306a36Sopenharmony_ci- e 	1_seed_cphy			0
38662306a36Sopenharmony_ci- e	4_seed_cphy			3
38762306a36Sopenharmony_cilane_seed_value(seed, lane)		0x0872	16
38862306a36Sopenharmony_ci- l	seed				0	3	0x10
38962306a36Sopenharmony_ci- l	lane				0	7	0x2
39062306a36Sopenharmony_ci
39162306a36Sopenharmony_ci# usl control registers
39262306a36Sopenharmony_ciTX_USL_REV_ENTRY			0x08c0	16	v1.1
39362306a36Sopenharmony_ciTX_USL_REV_Clock_Counter		0x08c2	16	v1.1
39462306a36Sopenharmony_ciTX_USL_REV_LP_Counter			0x08c4	16	v1.1
39562306a36Sopenharmony_ciTX_USL_REV_Frame_Counter		0x08c6	16	v1.1
39662306a36Sopenharmony_ciTX_USL_REV_Chronological_Timer		0x08c8	16	v1.1
39762306a36Sopenharmony_ciTX_USL_FWD_ENTRY			0x08ca	16	v1.1
39862306a36Sopenharmony_ciTX_USL_GPIO				0x08cc	16	v1.1
39962306a36Sopenharmony_ciTX_USL_Operation			0x08ce	16	v1.1
40062306a36Sopenharmony_ci- b	reset				0
40162306a36Sopenharmony_ciTX_USL_ALP_ctrl				0x08d0	16	v1.1
40262306a36Sopenharmony_ci- b	clock_pause			0
40362306a36Sopenharmony_ciTX_USL_APP_BTA_ACK_TIMEOUT		0x08d2	16	v1.1
40462306a36Sopenharmony_ciTX_USL_SNS_BTA_ACK_TIMEOUT		0x08d2	16	v1.1
40562306a36Sopenharmony_ciUSL_Clock_Mode_d_ctrl			0x08d2		v1.1
40662306a36Sopenharmony_ci- b	cont_clock_standby		0
40762306a36Sopenharmony_ci- b	cont_clock_vblank		1
40862306a36Sopenharmony_ci- b	cont_clock_hblank		2
40962306a36Sopenharmony_ci
41062306a36Sopenharmony_ci# binning configuration registers
41162306a36Sopenharmony_cibinning_mode				0x0900	8
41262306a36Sopenharmony_cibinning_type				0x0901	8
41362306a36Sopenharmony_cibinning_weighting			0x0902	8
41462306a36Sopenharmony_ci
41562306a36Sopenharmony_ci# data transfer interface registers
41662306a36Sopenharmony_cidata_transfer_if_1_ctrl			0x0a00	8
41762306a36Sopenharmony_ci- b	enable				0
41862306a36Sopenharmony_ci- b	write				1
41962306a36Sopenharmony_ci- b	clear_error			2
42062306a36Sopenharmony_cidata_transfer_if_1_status		0x0a01	8
42162306a36Sopenharmony_ci- b	read_if_ready			0
42262306a36Sopenharmony_ci- b	write_if_ready			1
42362306a36Sopenharmony_ci- b	data_corrupted			2
42462306a36Sopenharmony_ci- b	improper_if_usage		3
42562306a36Sopenharmony_cidata_transfer_if_1_page_select		0x0a02	8
42662306a36Sopenharmony_cidata_transfer_if_1_data(p)		0x0a04	8	f
42762306a36Sopenharmony_ci- l	p				0	63	1
42862306a36Sopenharmony_ci
42962306a36Sopenharmony_ci# image processing and sensor correction configuration registers
43062306a36Sopenharmony_cishading_correction_en			0x0b00	8
43162306a36Sopenharmony_ci- b	enable				0
43262306a36Sopenharmony_ciluminance_correction_level		0x0b01	8
43362306a36Sopenharmony_cigreen_imbalance_filter_en		0x0b02	8
43462306a36Sopenharmony_ci- b	enable				0
43562306a36Sopenharmony_cimapped_defect_correct_en		0x0b05	8
43662306a36Sopenharmony_ci- b	enable				0
43762306a36Sopenharmony_cisingle_defect_correct_en		0x0b06	8
43862306a36Sopenharmony_ci- b	enable				0
43962306a36Sopenharmony_cidynamic_couplet_correct_en		0x0b08	8
44062306a36Sopenharmony_ci- b	enable				0
44162306a36Sopenharmony_cicombined_defect_correct_en		0x0b0a	8
44262306a36Sopenharmony_ci- b	enable				0
44362306a36Sopenharmony_cimodule_specific_correction_en		0x0b0c	8
44462306a36Sopenharmony_ci- b	enable				0
44562306a36Sopenharmony_cidynamic_triplet_defect_correct_en	0x0b13	8
44662306a36Sopenharmony_ci- b	enable				0
44762306a36Sopenharmony_ciNF_ctrl					0x0b15	8
44862306a36Sopenharmony_ci- b	luma				0
44962306a36Sopenharmony_ci- b	chroma				1
45062306a36Sopenharmony_ci- b	combined			2
45162306a36Sopenharmony_ci
45262306a36Sopenharmony_ci# optical black pixel readout registers
45362306a36Sopenharmony_ciOB_readout_control			0x0b30	8
45462306a36Sopenharmony_ci- b	enable				0
45562306a36Sopenharmony_ci- b	interleaving			1
45662306a36Sopenharmony_ciOB_virtual_channel			0x0b31	8
45762306a36Sopenharmony_ciOB_DT					0x0b32	8
45862306a36Sopenharmony_ciOB_data_format				0x0b33	8
45962306a36Sopenharmony_ci
46062306a36Sopenharmony_ci# color temperature feedback registers
46162306a36Sopenharmony_cicolor_temperature			0x0b8c	16
46262306a36Sopenharmony_ciabsolute_gain_greenr			0x0b8e	16
46362306a36Sopenharmony_ciabsolute_gain_red			0x0b90	16
46462306a36Sopenharmony_ciabsolute_gain_blue			0x0b92	16
46562306a36Sopenharmony_ciabsolute_gain_greenb			0x0b94	16
46662306a36Sopenharmony_ci
46762306a36Sopenharmony_ci# cfa conversion registers
46862306a36Sopenharmony_ciCFA_conversion_ctrl			0x0ba0		v1.1
46962306a36Sopenharmony_ci- b	bayer_conversion_enable		0
47062306a36Sopenharmony_ci
47162306a36Sopenharmony_ci# flash strobe and sa strobe control registers
47262306a36Sopenharmony_ciflash_strobe_adjustment			0x0c12	8
47362306a36Sopenharmony_ciflash_strobe_start_point		0x0c14	16
47462306a36Sopenharmony_citflash_strobe_delay_rs_ctrl		0x0c16	16
47562306a36Sopenharmony_citflash_strobe_width_high_rs_ctrl	0x0c18	16
47662306a36Sopenharmony_ciflash_mode_rs				0x0c1a	8
47762306a36Sopenharmony_ci- b	continuous			0
47862306a36Sopenharmony_ci- b	truncate			1
47962306a36Sopenharmony_ci- b	async				3
48062306a36Sopenharmony_ciflash_trigger_rs			0x0c1b	8
48162306a36Sopenharmony_ciflash_status				0x0c1c	8
48262306a36Sopenharmony_ci- b	retimed				0
48362306a36Sopenharmony_cisa_strobe_mode				0x0c1d	8
48462306a36Sopenharmony_ci- b	continuous			0
48562306a36Sopenharmony_ci- b	truncate			1
48662306a36Sopenharmony_ci- b	async				3
48762306a36Sopenharmony_ci- b	adjust_edge			4
48862306a36Sopenharmony_cisa_strobe_start_point			0x0c1e	16
48962306a36Sopenharmony_citsa_strobe_delay_ctrl			0x0c20	16
49062306a36Sopenharmony_citsa_strobe_width_ctrl			0x0c22	16
49162306a36Sopenharmony_cisa_strobe_trigger			0x0c24	8
49262306a36Sopenharmony_cisa_strobe_status			0x0c25	8
49362306a36Sopenharmony_ci- b	retimed				0
49462306a36Sopenharmony_citSA_strobe_re_delay_ctrl		0x0c30	16
49562306a36Sopenharmony_citSA_strobe_fe_delay_ctrl		0x0c32	16
49662306a36Sopenharmony_ci
49762306a36Sopenharmony_ci# pdaf control registers
49862306a36Sopenharmony_ciPDAF_ctrl				0x0d00	16
49962306a36Sopenharmony_ci- b 	enable				0
50062306a36Sopenharmony_ci- b	processed			1
50162306a36Sopenharmony_ci- b	interleaved			2
50262306a36Sopenharmony_ci- b	visible_pdaf_correction		3
50362306a36Sopenharmony_ciPDAF_VC					0x0d02	8
50462306a36Sopenharmony_ciPDAF_DT					0x0d03	8
50562306a36Sopenharmony_cipd_x_addr_start				0x0d04	16
50662306a36Sopenharmony_cipd_y_addr_start				0x0d06	16
50762306a36Sopenharmony_cipd_x_addr_end				0x0d08	16
50862306a36Sopenharmony_cipd_y_addr_end				0x0d0a	16
50962306a36Sopenharmony_ci
51062306a36Sopenharmony_ci# bracketing interface configuration registers
51162306a36Sopenharmony_cibracketing_LUT_ctrl			0x0e00	8
51262306a36Sopenharmony_cibracketing_LUT_mode			0x0e01	8
51362306a36Sopenharmony_ci- b	continue_streaming		0
51462306a36Sopenharmony_ci- b	loop_mode			1
51562306a36Sopenharmony_cibracketing_LUT_entry_ctrl		0x0e02	8
51662306a36Sopenharmony_cibracketing_LUT_frame(n)			0x0e10	v1.1	f
51762306a36Sopenharmony_ci- l	n				0	0xef	1
51862306a36Sopenharmony_ci
51962306a36Sopenharmony_ci# integration time and gain parameter limit registers
52062306a36Sopenharmony_ciintegration_time_capability		0x1000	16
52162306a36Sopenharmony_ci- b	fine				0
52262306a36Sopenharmony_cicoarse_integration_time_min		0x1004	16
52362306a36Sopenharmony_cicoarse_integration_time_max_margin	0x1006	16
52462306a36Sopenharmony_cifine_integration_time_min		0x1008	16
52562306a36Sopenharmony_cifine_integration_time_max_margin	0x100a	16
52662306a36Sopenharmony_ci
52762306a36Sopenharmony_ci# digital gain parameter limit registers
52862306a36Sopenharmony_cidigital_gain_capability			0x1081
52962306a36Sopenharmony_ci- e	none				0
53062306a36Sopenharmony_ci- e	global				2
53162306a36Sopenharmony_cidigital_gain_min			0x1084	16
53262306a36Sopenharmony_cidigital_gain_max			0x1086	16
53362306a36Sopenharmony_cidigital_gain_step_size			0x1088	16
53462306a36Sopenharmony_ci
53562306a36Sopenharmony_ci# data pedestal capability registers
53662306a36Sopenharmony_ciPedestal_capability			0x10e0	8	v1.1
53762306a36Sopenharmony_ci
53862306a36Sopenharmony_ci# adc capability registers
53962306a36Sopenharmony_ciADC_capability				0x10f0	8
54062306a36Sopenharmony_ci- b	bit_depth_ctrl			0
54162306a36Sopenharmony_ciADC_bit_depth_capability		0x10f4	32	v1.1
54262306a36Sopenharmony_ci
54362306a36Sopenharmony_ci# video timing parameter limit registers
54462306a36Sopenharmony_cimin_ext_clk_freq_mhz			0x1100	32	float_ireal
54562306a36Sopenharmony_cimax_ext_clk_freq_mhz			0x1104	32	float_ireal
54662306a36Sopenharmony_cimin_pre_pll_clk_div			0x1108	16
54762306a36Sopenharmony_ci# min_vt_pre_pll_clk_div			0x1108	16
54862306a36Sopenharmony_cimax_pre_pll_clk_div			0x110a	16
54962306a36Sopenharmony_ci# max_vt_pre_pll_clk_div			0x110a	16
55062306a36Sopenharmony_cimin_pll_ip_clk_freq_mhz			0x110c	32	float_ireal
55162306a36Sopenharmony_ci# min_vt_pll_ip_clk_freq_mhz		0x110c	32	float_ireal
55262306a36Sopenharmony_cimax_pll_ip_clk_freq_mhz			0x1110	32	float_ireal
55362306a36Sopenharmony_ci# max_vt_pll_ip_clk_freq_mhz		0x1110	32	float_ireal
55462306a36Sopenharmony_cimin_pll_multiplier			0x1114	16
55562306a36Sopenharmony_ci# min_vt_pll_multiplier			0x1114	16
55662306a36Sopenharmony_cimax_pll_multiplier			0x1116	16
55762306a36Sopenharmony_ci# max_vt_pll_multiplier			0x1116	16
55862306a36Sopenharmony_cimin_pll_op_clk_freq_mhz			0x1118	32	float_ireal
55962306a36Sopenharmony_cimax_pll_op_clk_freq_mhz			0x111c	32	float_ireal
56062306a36Sopenharmony_ci
56162306a36Sopenharmony_ci# video timing set-up capability registers
56262306a36Sopenharmony_cimin_vt_sys_clk_div			0x1120	16
56362306a36Sopenharmony_cimax_vt_sys_clk_div			0x1122	16
56462306a36Sopenharmony_cimin_vt_sys_clk_freq_mhz			0x1124	32	float_ireal
56562306a36Sopenharmony_cimax_vt_sys_clk_freq_mhz			0x1128	32	float_ireal
56662306a36Sopenharmony_cimin_vt_pix_clk_freq_mhz			0x112c	32	float_ireal
56762306a36Sopenharmony_cimax_vt_pix_clk_freq_mhz			0x1130	32	float_ireal
56862306a36Sopenharmony_cimin_vt_pix_clk_div			0x1134	16
56962306a36Sopenharmony_cimax_vt_pix_clk_div			0x1136	16
57062306a36Sopenharmony_ciclock_calculation			0x1138
57162306a36Sopenharmony_ci- b	lane_speed			0
57262306a36Sopenharmony_ci- b	link_decoupled			1
57362306a36Sopenharmony_ci- b	dual_pll_op_sys_ddr		2
57462306a36Sopenharmony_ci- b	dual_pll_op_pix_ddr		3
57562306a36Sopenharmony_cinum_of_vt_lanes				0x1139
57662306a36Sopenharmony_cinum_of_op_lanes				0x113a
57762306a36Sopenharmony_ciop_bits_per_lane			0x113b	8	v1.1
57862306a36Sopenharmony_ci
57962306a36Sopenharmony_ci# frame timing parameter limits
58062306a36Sopenharmony_cimin_frame_length_lines			0x1140	16
58162306a36Sopenharmony_cimax_frame_length_lines			0x1142	16
58262306a36Sopenharmony_cimin_line_length_pck			0x1144	16
58362306a36Sopenharmony_cimax_line_length_pck			0x1146	16
58462306a36Sopenharmony_cimin_line_blanking_pck			0x1148	16
58562306a36Sopenharmony_cimin_frame_blanking_lines		0x114a	16
58662306a36Sopenharmony_cimin_line_length_pck_step_size		0x114c
58762306a36Sopenharmony_citiming_mode_capability			0x114d
58862306a36Sopenharmony_ci- b	auto_frame_length		0
58962306a36Sopenharmony_ci- b	rolling_shutter_manual_readout	2
59062306a36Sopenharmony_ci- b	delayed_exposure_start		3
59162306a36Sopenharmony_ci- b	manual_exposure_embedded_data	4
59262306a36Sopenharmony_ciframe_margin_max_value			0x114e	16
59362306a36Sopenharmony_ciframe_margin_min_value			0x1150
59462306a36Sopenharmony_cigain_delay_type				0x1151
59562306a36Sopenharmony_ci- e	fixed				0
59662306a36Sopenharmony_ci- e	variable			1
59762306a36Sopenharmony_ci
59862306a36Sopenharmony_ci# output clock set-up capability registers
59962306a36Sopenharmony_cimin_op_sys_clk_div			0x1160	16
60062306a36Sopenharmony_cimax_op_sys_clk_div			0x1162	16
60162306a36Sopenharmony_cimin_op_sys_clk_freq_mhz			0x1164	32	float_ireal
60262306a36Sopenharmony_cimax_op_sys_clk_freq_mhz			0x1168	32	float_ireal
60362306a36Sopenharmony_cimin_op_pix_clk_div			0x116c	16
60462306a36Sopenharmony_cimax_op_pix_clk_div			0x116e	16
60562306a36Sopenharmony_cimin_op_pix_clk_freq_mhz			0x1170	32	float_ireal
60662306a36Sopenharmony_cimax_op_pix_clk_freq_mhz			0x1174	32	float_ireal
60762306a36Sopenharmony_ci
60862306a36Sopenharmony_ci# image size parameter limit registers
60962306a36Sopenharmony_cix_addr_min				0x1180	16
61062306a36Sopenharmony_ciy_addr_min				0x1182	16
61162306a36Sopenharmony_cix_addr_max				0x1184	16
61262306a36Sopenharmony_ciy_addr_max				0x1186	16
61362306a36Sopenharmony_cimin_x_output_size			0x1188	16
61462306a36Sopenharmony_cimin_y_output_size			0x118a	16
61562306a36Sopenharmony_cimax_x_output_size			0x118c	16
61662306a36Sopenharmony_cimax_y_output_size			0x118e	16
61762306a36Sopenharmony_ci
61862306a36Sopenharmony_cix_addr_start_div_constant		0x1190		v1.1
61962306a36Sopenharmony_ciy_addr_start_div_constant		0x1191		v1.1
62062306a36Sopenharmony_cix_addr_end_div_constant			0x1192		v1.1
62162306a36Sopenharmony_ciy_addr_end_div_constant			0x1193		v1.1
62262306a36Sopenharmony_cix_size_div				0x1194		v1.1
62362306a36Sopenharmony_ciy_size_div				0x1195		v1.1
62462306a36Sopenharmony_cix_output_div				0x1196		v1.1
62562306a36Sopenharmony_ciy_output_div				0x1197		v1.1
62662306a36Sopenharmony_cinon_flexible_resolution_support		0x1198		v1.1
62762306a36Sopenharmony_ci- b	new_pix_addr			0
62862306a36Sopenharmony_ci- b	new_output_res			1
62962306a36Sopenharmony_ci- b	output_crop_no_pad		2
63062306a36Sopenharmony_ci- b	output_size_lane_dep		3
63162306a36Sopenharmony_ci
63262306a36Sopenharmony_cimin_op_pre_pll_clk_div			0x11a0	16
63362306a36Sopenharmony_cimax_op_pre_pll_clk_div			0x11a2	16
63462306a36Sopenharmony_cimin_op_pll_ip_clk_freq_mhz		0x11a4	32	float_ireal
63562306a36Sopenharmony_cimax_op_pll_ip_clk_freq_mhz		0x11a8	32	float_ireal
63662306a36Sopenharmony_cimin_op_pll_multiplier			0x11ac	16
63762306a36Sopenharmony_cimax_op_pll_multiplier			0x11ae	16
63862306a36Sopenharmony_cimin_op_pll_op_clk_freq_mhz		0x11b0	32	float_ireal
63962306a36Sopenharmony_cimax_op_pll_op_clk_freq_mhz		0x11b4	32	float_ireal
64062306a36Sopenharmony_ciclock_tree_pll_capability		0x11b8	8
64162306a36Sopenharmony_ci- b	dual_pll			0
64262306a36Sopenharmony_ci- b	single_pll			1
64362306a36Sopenharmony_ci- b	ext_divider			2
64462306a36Sopenharmony_ci- b	flexible_op_pix_clk_div		3
64562306a36Sopenharmony_ciclock_capa_type_capability		0x11b9	v1.1
64662306a36Sopenharmony_ci- b	ireal				0
64762306a36Sopenharmony_ci
64862306a36Sopenharmony_ci# sub-sampling parameters limit registers
64962306a36Sopenharmony_cimin_even_inc				0x11c0	16
65062306a36Sopenharmony_cimin_odd_inc				0x11c2	16
65162306a36Sopenharmony_cimax_even_inc				0x11c4	16
65262306a36Sopenharmony_cimax_odd_inc				0x11c6	16
65362306a36Sopenharmony_ciaux_subsamp_capability			0x11c8		v1.1
65462306a36Sopenharmony_ci- b	factor_power_of_2		1
65562306a36Sopenharmony_ciaux_subsamp_mono_capability		0x11c9		v1.1
65662306a36Sopenharmony_ci- b	factor_power_of_2		1
65762306a36Sopenharmony_cimonochrome_capability			0x11ca		v1.1
65862306a36Sopenharmony_ci- e	inc_odd				0
65962306a36Sopenharmony_ci- e	inc_even			1
66062306a36Sopenharmony_cipixel_readout_capability		0x11cb		v1.1
66162306a36Sopenharmony_ci- e	bayer				0
66262306a36Sopenharmony_ci- e	monochrome			1
66362306a36Sopenharmony_ci- e	bayer_and_mono			2
66462306a36Sopenharmony_cimin_even_inc_mono			0x11cc	16	v1.1
66562306a36Sopenharmony_cimax_even_inc_mono			0x11ce	16	v1.1
66662306a36Sopenharmony_cimin_odd_inc_mono			0x11d0	16	v1.1
66762306a36Sopenharmony_cimax_odd_inc_mono			0x11d2	16	v1.1
66862306a36Sopenharmony_cimin_even_inc_bc2			0x11d4	16	v1.1
66962306a36Sopenharmony_cimax_even_inc_bc2			0x11d6	16	v1.1
67062306a36Sopenharmony_cimin_odd_inc_bc2				0x11d8	16	v1.1
67162306a36Sopenharmony_cimax_odd_inc_bc2				0x11da	16	v1.1
67262306a36Sopenharmony_cimin_even_inc_mono_bc2			0x11dc	16	v1.1
67362306a36Sopenharmony_cimax_even_inc_mono_bc2			0x11de	16	v1.1
67462306a36Sopenharmony_cimin_odd_inc_mono_bc2			0x11f0	16	v1.1
67562306a36Sopenharmony_cimax_odd_inc_mono_bc2			0x11f2	16	v1.1
67662306a36Sopenharmony_ci
67762306a36Sopenharmony_ci# image scaling limit parameters
67862306a36Sopenharmony_ciscaling_capability			0x1200	16
67962306a36Sopenharmony_ci- e	none				0
68062306a36Sopenharmony_ci- e	horizontal			1
68162306a36Sopenharmony_ci- e	reserved			2
68262306a36Sopenharmony_ciscaler_m_min				0x1204	16
68362306a36Sopenharmony_ciscaler_m_max				0x1206	16
68462306a36Sopenharmony_ciscaler_n_min				0x1208	16
68562306a36Sopenharmony_ciscaler_n_max				0x120a	16
68662306a36Sopenharmony_cidigital_crop_capability			0x120e
68762306a36Sopenharmony_ci- e	none				0
68862306a36Sopenharmony_ci- e	input_crop			1
68962306a36Sopenharmony_ci
69062306a36Sopenharmony_ci# hdr limit registers
69162306a36Sopenharmony_cihdr_capability_1			0x1210
69262306a36Sopenharmony_ci- b	2x2_binning			0
69362306a36Sopenharmony_ci- b	combined_analog_gain		1
69462306a36Sopenharmony_ci- b	separate_analog_gain		2
69562306a36Sopenharmony_ci- b	upscaling			3
69662306a36Sopenharmony_ci- b	reset_sync			4
69762306a36Sopenharmony_ci- b	direct_short_exp_timing		5
69862306a36Sopenharmony_ci- b	direct_short_exp_synthesis	6
69962306a36Sopenharmony_cimin_hdr_bit_depth			0x1211
70062306a36Sopenharmony_cihdr_resolution_sub_types		0x1212
70162306a36Sopenharmony_cihdr_resolution_sub_type(n)		0x1213
70262306a36Sopenharmony_ci- l	n				0	1	1
70362306a36Sopenharmony_ci- f	row				0	3
70462306a36Sopenharmony_ci- f	column				4	7
70562306a36Sopenharmony_cihdr_capability_2			0x121b
70662306a36Sopenharmony_ci- b	combined_digital_gain		0
70762306a36Sopenharmony_ci- b	separate_digital_gain		1
70862306a36Sopenharmony_ci- b	timing_mode			3
70962306a36Sopenharmony_ci- b	synthesis_mode			4
71062306a36Sopenharmony_cimax_hdr_bit_depth			0x121c
71162306a36Sopenharmony_ci
71262306a36Sopenharmony_ci# usl capability register
71362306a36Sopenharmony_ciusl_support_capability			0x1230		v1.1
71462306a36Sopenharmony_ci- b	clock_tree			0
71562306a36Sopenharmony_ci- b	rev_clock_tree			1
71662306a36Sopenharmony_ci- b	rev_clock_calc			2
71762306a36Sopenharmony_ciusl_clock_mode_d_capability		0x1231		v1.1
71862306a36Sopenharmony_ci- b	cont_clock_standby		0
71962306a36Sopenharmony_ci- b	cont_clock_vblank		1
72062306a36Sopenharmony_ci- b	cont_clock_hblank		2
72162306a36Sopenharmony_ci- b	noncont_clock_standby		3
72262306a36Sopenharmony_ci- b	noncont_clock_vblank		4
72362306a36Sopenharmony_ci- b	noncont_clock_hblank		5
72462306a36Sopenharmony_cimin_op_sys_clk_div_rev			0x1234		v1.1
72562306a36Sopenharmony_cimax_op_sys_clk_div_rev			0x1236		v1.1
72662306a36Sopenharmony_cimin_op_pix_clk_div_rev			0x1238		v1.1
72762306a36Sopenharmony_cimax_op_pix_clk_div_rev			0x123a		v1.1
72862306a36Sopenharmony_cimin_op_sys_clk_freq_rev_mhz		0x123c	32	v1.1	float_ireal
72962306a36Sopenharmony_cimax_op_sys_clk_freq_rev_mhz		0x1240	32	v1.1	float_ireal
73062306a36Sopenharmony_cimin_op_pix_clk_freq_rev_mhz		0x1244	32	v1.1	float_ireal
73162306a36Sopenharmony_cimax_op_pix_clk_freq_rev_mhz		0x1248	32	v1.1	float_ireal
73262306a36Sopenharmony_cimax_bitrate_rev_d_mode_mbps		0x124c	32	v1.1	ireal
73362306a36Sopenharmony_cimax_symrate_rev_c_mode_msps		0x1250	32	v1.1	ireal
73462306a36Sopenharmony_ci
73562306a36Sopenharmony_ci# image compression capability registers
73662306a36Sopenharmony_cicompression_capability			0x1300
73762306a36Sopenharmony_ci- b	dpcm_pcm_simple			0
73862306a36Sopenharmony_ci
73962306a36Sopenharmony_ci# test mode capability registers
74062306a36Sopenharmony_citest_mode_capability			0x1310	16
74162306a36Sopenharmony_ci- b	solid_color			0
74262306a36Sopenharmony_ci- b	color_bars			1
74362306a36Sopenharmony_ci- b	fade_to_grey			2
74462306a36Sopenharmony_ci- b	pn9				3
74562306a36Sopenharmony_ci- b	color_tile			5
74662306a36Sopenharmony_cipn9_data_format1			0x1312
74762306a36Sopenharmony_cipn9_data_format2			0x1313
74862306a36Sopenharmony_cipn9_data_format3			0x1314
74962306a36Sopenharmony_cipn9_data_format4			0x1315
75062306a36Sopenharmony_cipn9_misc_capability			0x1316
75162306a36Sopenharmony_ci- f	num_pixels			0	2
75262306a36Sopenharmony_ci- b	compression			3
75362306a36Sopenharmony_citest_pattern_capability			0x1317	v1.1
75462306a36Sopenharmony_ci- b	no_repeat			1
75562306a36Sopenharmony_cipattern_size_div_m1			0x1318	v1.1
75662306a36Sopenharmony_ci
75762306a36Sopenharmony_ci# fifo capability registers
75862306a36Sopenharmony_cififo_support_capability			0x1502
75962306a36Sopenharmony_ci- e	none				0
76062306a36Sopenharmony_ci- e	derating			1
76162306a36Sopenharmony_ci- e	derating_overrating		2
76262306a36Sopenharmony_ci
76362306a36Sopenharmony_ci# csi-2 capability registers
76462306a36Sopenharmony_ciphy_ctrl_capability			0x1600
76562306a36Sopenharmony_ci- b	auto_phy_ctl			0
76662306a36Sopenharmony_ci- b	ui_phy_ctl			1
76762306a36Sopenharmony_ci- b	dphy_time_ui_reg_1_ctl		2
76862306a36Sopenharmony_ci- b	dphy_time_ui_reg_2_ctl		3
76962306a36Sopenharmony_ci- b	dphy_time_ctl			4
77062306a36Sopenharmony_ci- b	dphy_ext_time_ui_reg_1_ctl	5
77162306a36Sopenharmony_ci- b	dphy_ext_time_ui_reg_2_ctl	6
77262306a36Sopenharmony_ci- b	dphy_ext_time_ctl		7
77362306a36Sopenharmony_cicsi_dphy_lane_mode_capability		0x1601
77462306a36Sopenharmony_ci- b	1_lane				0
77562306a36Sopenharmony_ci- b	2_lane				1
77662306a36Sopenharmony_ci- b	3_lane				2
77762306a36Sopenharmony_ci- b	4_lane				3
77862306a36Sopenharmony_ci- b	5_lane				4
77962306a36Sopenharmony_ci- b	6_lane				5
78062306a36Sopenharmony_ci- b	7_lane				6
78162306a36Sopenharmony_ci- b	8_lane				7
78262306a36Sopenharmony_cicsi_signaling_mode_capability		0x1602
78362306a36Sopenharmony_ci- b	csi_dphy			2
78462306a36Sopenharmony_ci- b	csi_cphy			3
78562306a36Sopenharmony_cifast_standby_capability			0x1603
78662306a36Sopenharmony_ci- e	no_frame_truncation		0
78762306a36Sopenharmony_ci- e	frame_truncation		1
78862306a36Sopenharmony_cicsi_address_control_capability		0x1604
78962306a36Sopenharmony_ci- b	cci_addr_change			0
79062306a36Sopenharmony_ci- b	2nd_cci_addr			1
79162306a36Sopenharmony_ci- b	sw_changeable_2nd_cci_addr	2
79262306a36Sopenharmony_cidata_type_capability			0x1605
79362306a36Sopenharmony_ci- b	dpcm_programmable		0
79462306a36Sopenharmony_ci- b	bottom_embedded_dt_programmable	1
79562306a36Sopenharmony_ci- b	bottom_embedded_vc_programmable	2
79662306a36Sopenharmony_ci- b	ext_vc_range			3
79762306a36Sopenharmony_cicsi_cphy_lane_mode_capability		0x1606
79862306a36Sopenharmony_ci- b	1_lane				0
79962306a36Sopenharmony_ci- b	2_lane				1
80062306a36Sopenharmony_ci- b	3_lane				2
80162306a36Sopenharmony_ci- b	4_lane				3
80262306a36Sopenharmony_ci- b	5_lane				4
80362306a36Sopenharmony_ci- b	6_lane				5
80462306a36Sopenharmony_ci- b	7_lane				6
80562306a36Sopenharmony_ci- b	8_lane				7
80662306a36Sopenharmony_ciemb_data_capability			0x1607	v1.1
80762306a36Sopenharmony_ci- b	two_bytes_per_raw16		0
80862306a36Sopenharmony_ci- b	two_bytes_per_raw20		1
80962306a36Sopenharmony_ci- b	two_bytes_per_raw24		2
81062306a36Sopenharmony_ci- b	no_one_byte_per_raw16		3
81162306a36Sopenharmony_ci- b	no_one_byte_per_raw20		4
81262306a36Sopenharmony_ci- b	no_one_byte_per_raw24		5
81362306a36Sopenharmony_cimax_per_lane_bitrate_lane_d_mode_mbps(n)	0x1608	32	ireal
81462306a36Sopenharmony_ci- l	n				0	7	4	4,0x32
81562306a36Sopenharmony_citemp_sensor_capability			0x1618
81662306a36Sopenharmony_ci- b	supported			0
81762306a36Sopenharmony_ci- b	CCS_format			1
81862306a36Sopenharmony_ci- b	reset_0x80			2
81962306a36Sopenharmony_cimax_per_lane_bitrate_lane_c_mode_mbps(n)	0x161a	32	ireal
82062306a36Sopenharmony_ci- l	n				0	7	4	4,0x30
82162306a36Sopenharmony_cidphy_equalization_capability		0x162b
82262306a36Sopenharmony_ci- b	equalization_ctrl		0
82362306a36Sopenharmony_ci- b	eq1				1
82462306a36Sopenharmony_ci- b	eq2				2
82562306a36Sopenharmony_cicphy_equalization_capability		0x162c
82662306a36Sopenharmony_ci- b	equalization_ctrl		0
82762306a36Sopenharmony_cidphy_preamble_capability		0x162d
82862306a36Sopenharmony_ci- b	preamble_seq_ctrl		0
82962306a36Sopenharmony_cidphy_ssc_capability			0x162e
83062306a36Sopenharmony_ci- b	supported			0
83162306a36Sopenharmony_cicphy_calibration_capability		0x162f
83262306a36Sopenharmony_ci- b	manual				0
83362306a36Sopenharmony_ci- b	manual_streaming		1
83462306a36Sopenharmony_ci- b	format_1_ctrl			2
83562306a36Sopenharmony_ci- b	format_2_ctrl			3
83662306a36Sopenharmony_ci- b	format_3_ctrl			4
83762306a36Sopenharmony_cidphy_calibration_capability		0x1630
83862306a36Sopenharmony_ci- b	manual				0
83962306a36Sopenharmony_ci- b	manual_streaming		1
84062306a36Sopenharmony_ci- b	alternate_seq			2
84162306a36Sopenharmony_ciphy_ctrl_capability_2			0x1631
84262306a36Sopenharmony_ci- b	tgr_length			0
84362306a36Sopenharmony_ci- b	tgr_preamble_prog_seq		1
84462306a36Sopenharmony_ci- b	extra_cphy_manual_timing	2
84562306a36Sopenharmony_ci- b	clock_based_manual_cdphy	3
84662306a36Sopenharmony_ci- b	clock_based_manual_dphy		4
84762306a36Sopenharmony_ci- b	clock_based_manual_cphy		5
84862306a36Sopenharmony_ci- b	manual_lp_dphy			6
84962306a36Sopenharmony_ci- b	manual_lp_cphy			7
85062306a36Sopenharmony_cilrte_cphy_capability			0x1632
85162306a36Sopenharmony_ci- b	pdq_short			0
85262306a36Sopenharmony_ci- b	spacer_short			1
85362306a36Sopenharmony_ci- b	pdq_long			2
85462306a36Sopenharmony_ci- b	spacer_long			3
85562306a36Sopenharmony_ci- b	spacer_no_pdq			4
85662306a36Sopenharmony_cilrte_dphy_capability			0x1633
85762306a36Sopenharmony_ci- b	pdq_short_opt1			0
85862306a36Sopenharmony_ci- b	spacer_short_opt1		1
85962306a36Sopenharmony_ci- b	pdq_long_opt1			2
86062306a36Sopenharmony_ci- b	spacer_long_opt1		3
86162306a36Sopenharmony_ci- b	spacer_short_opt2		4
86262306a36Sopenharmony_ci- b	spacer_long_opt2		5
86362306a36Sopenharmony_ci- b	spacer_no_pdq_opt1		6
86462306a36Sopenharmony_ci- b	spacer_variable_opt2		7
86562306a36Sopenharmony_cialps_capability_dphy			0x1634
86662306a36Sopenharmony_ci- e	lvlp_not_supported		0	0x3
86762306a36Sopenharmony_ci- e	lvlp_supported			1	0x3
86862306a36Sopenharmony_ci- e 	controllable_lvlp		2	0x3
86962306a36Sopenharmony_cialps_capability_cphy			0x1635
87062306a36Sopenharmony_ci- e	lvlp_not_supported		0	0x3
87162306a36Sopenharmony_ci- e	lvlp_supported			1	0x3
87262306a36Sopenharmony_ci- e 	controllable_lvlp		2	0x3
87362306a36Sopenharmony_ci- e	alp_not_supported		0xc	0xc
87462306a36Sopenharmony_ci- e	alp_supported			0xd	0xc
87562306a36Sopenharmony_ci- e 	controllable_alp		0xe	0xc
87662306a36Sopenharmony_ciscrambling_capability			0x1636
87762306a36Sopenharmony_ci- b	scrambling_supported		0
87862306a36Sopenharmony_ci- f	max_seeds_per_lane_c		1	2
87962306a36Sopenharmony_ci- e	1				0
88062306a36Sopenharmony_ci- e	4				3
88162306a36Sopenharmony_ci- f	num_seed_regs			3	5
88262306a36Sopenharmony_ci- e	0				0
88362306a36Sopenharmony_ci- e	1				1
88462306a36Sopenharmony_ci- e	4				4
88562306a36Sopenharmony_ci- b	num_seed_per_lane		6
88662306a36Sopenharmony_cidphy_manual_constant			0x1637
88762306a36Sopenharmony_cicphy_manual_constant			0x1638
88862306a36Sopenharmony_ciCSI2_interface_capability_misc		0x1639	v1.1
88962306a36Sopenharmony_ci- b	eotp_short_pkt_opt2		0
89062306a36Sopenharmony_ciPHY_ctrl_capability_3			0x165c	v1.1
89162306a36Sopenharmony_ci- b	dphy_timing_not_multiple	0
89262306a36Sopenharmony_ci- b	dphy_min_timing_value_1		1
89362306a36Sopenharmony_ci- b	twakeup_supported		2
89462306a36Sopenharmony_ci- b	tinit_supported			3
89562306a36Sopenharmony_ci- b	ths_exit_supported		4
89662306a36Sopenharmony_ci- b	cphy_timing_not_multiple	5
89762306a36Sopenharmony_ci- b	cphy_min_timing_value_1		6
89862306a36Sopenharmony_cidphy_sf					0x165d	v1.1
89962306a36Sopenharmony_cicphy_sf					0x165e	v1.1
90062306a36Sopenharmony_ci- f	twakeup				0	3
90162306a36Sopenharmony_ci- f	tinit				4	7
90262306a36Sopenharmony_cidphy_limits_1				0x165f	v1.1
90362306a36Sopenharmony_ci- f	ths_prepare			0	3
90462306a36Sopenharmony_ci- f	ths_zero			4	7
90562306a36Sopenharmony_cidphy_limits_2				0x1660	v1.1
90662306a36Sopenharmony_ci- f	ths_trail			0	3
90762306a36Sopenharmony_ci- f	tclk_trail_min			4	7
90862306a36Sopenharmony_cidphy_limits_3				0x1661	v1.1
90962306a36Sopenharmony_ci- f	tclk_prepare			0	3
91062306a36Sopenharmony_ci- f	tclk_zero			4	7
91162306a36Sopenharmony_cidphy_limits_4				0x1662	v1.1
91262306a36Sopenharmony_ci- f	tclk_post			0	3
91362306a36Sopenharmony_ci- f	tlpx				4	7
91462306a36Sopenharmony_cidphy_limits_5				0x1663	v1.1
91562306a36Sopenharmony_ci- f	ths_exit			0	3
91662306a36Sopenharmony_ci- f	twakeup				4	7
91762306a36Sopenharmony_cidphy_limits_6				0x1664	v1.1
91862306a36Sopenharmony_ci- f	tinit				0	3
91962306a36Sopenharmony_cicphy_limits_1				0x1665	v1.1
92062306a36Sopenharmony_ci- f	t3_prepare_max			0	3
92162306a36Sopenharmony_ci- f	t3_lpx_max			4	7
92262306a36Sopenharmony_cicphy_limits_2				0x1666	v1.1
92362306a36Sopenharmony_ci- f	ths_exit_max			0	3
92462306a36Sopenharmony_ci- f	twakeup_max			4	7
92562306a36Sopenharmony_cicphy_limits_3				0x1667	v1.1
92662306a36Sopenharmony_ci- f	tinit_max			0	3
92762306a36Sopenharmony_ci
92862306a36Sopenharmony_ci# binning capability registers
92962306a36Sopenharmony_cimin_frame_length_lines_bin		0x1700	16
93062306a36Sopenharmony_cimax_frame_length_lines_bin		0x1702	16
93162306a36Sopenharmony_cimin_line_length_pck_bin			0x1704	16
93262306a36Sopenharmony_cimax_line_length_pck_bin			0x1706	16
93362306a36Sopenharmony_cimin_line_blanking_pck_bin		0x1708	16
93462306a36Sopenharmony_cifine_integration_time_min_bin		0x170a	16
93562306a36Sopenharmony_cifine_integration_time_max_margin_bin	0x170c	16
93662306a36Sopenharmony_cibinning_capability			0x1710
93762306a36Sopenharmony_ci- e	unsupported			0
93862306a36Sopenharmony_ci- e	binning_then_subsampling	1
93962306a36Sopenharmony_ci- e	subsampling_then_binning	2
94062306a36Sopenharmony_cibinning_weighting_capability		0x1711
94162306a36Sopenharmony_ci- b	averaged			0
94262306a36Sopenharmony_ci- b	summed				1
94362306a36Sopenharmony_ci- b	bayer_corrected			2
94462306a36Sopenharmony_ci- b	module_specific_weight		3
94562306a36Sopenharmony_cibinning_sub_types			0x1712
94662306a36Sopenharmony_cibinning_sub_type(n)			0x1713
94762306a36Sopenharmony_ci- l	n				0	63	1
94862306a36Sopenharmony_ci- f	row				0	3
94962306a36Sopenharmony_ci- f	column				4	7
95062306a36Sopenharmony_cibinning_weighting_mono_capability	0x1771	v1.1
95162306a36Sopenharmony_ci- b	averaged			0
95262306a36Sopenharmony_ci- b	summed				1
95362306a36Sopenharmony_ci- b	bayer_corrected			2
95462306a36Sopenharmony_ci- b	module_specific_weight		3
95562306a36Sopenharmony_cibinning_sub_types_mono			0x1772	v1.1
95662306a36Sopenharmony_cibinning_sub_type_mono(n)		0x1773	v1.1	f
95762306a36Sopenharmony_ci- l	n				0	63	1
95862306a36Sopenharmony_ci
95962306a36Sopenharmony_ci# data transfer interface capability registers
96062306a36Sopenharmony_cidata_transfer_if_capability		0x1800
96162306a36Sopenharmony_ci- b	supported			0
96262306a36Sopenharmony_ci- b	polling				2
96362306a36Sopenharmony_ci
96462306a36Sopenharmony_ci# sensor correction capability registers
96562306a36Sopenharmony_cishading_correction_capability		0x1900
96662306a36Sopenharmony_ci- b	color_shading			0
96762306a36Sopenharmony_ci- b	luminance_correction		1
96862306a36Sopenharmony_cigreen_imbalance_capability		0x1901
96962306a36Sopenharmony_ci- b	supported			0
97062306a36Sopenharmony_cimodule_specific_correction_capability	0x1903
97162306a36Sopenharmony_cidefect_correction_capability		0x1904	16
97262306a36Sopenharmony_ci- b	mapped_defect			0
97362306a36Sopenharmony_ci- b	dynamic_couplet			2
97462306a36Sopenharmony_ci- b	dynamic_single			5
97562306a36Sopenharmony_ci- b	combined_dynamic		8
97662306a36Sopenharmony_cidefect_correction_capability_2		0x1906	16
97762306a36Sopenharmony_ci- b	dynamic_triplet			3
97862306a36Sopenharmony_cinf_capability				0x1908
97962306a36Sopenharmony_ci- b	luma				0
98062306a36Sopenharmony_ci- b	chroma				1
98162306a36Sopenharmony_ci- b	combined			2
98262306a36Sopenharmony_ci
98362306a36Sopenharmony_ci# optical black readout capability registers
98462306a36Sopenharmony_ciob_readout_capability			0x1980
98562306a36Sopenharmony_ci- b	controllable_readout		0
98662306a36Sopenharmony_ci- b	visible_pixel_readout		1
98762306a36Sopenharmony_ci- b	different_vc_readout		2
98862306a36Sopenharmony_ci- b	different_dt_readout		3
98962306a36Sopenharmony_ci- b	prog_data_format		4
99062306a36Sopenharmony_ci
99162306a36Sopenharmony_ci# color feedback capability registers
99262306a36Sopenharmony_cicolor_feedback_capability		0x1987
99362306a36Sopenharmony_ci- b	kelvin				0
99462306a36Sopenharmony_ci- b	awb_gain			1
99562306a36Sopenharmony_ci
99662306a36Sopenharmony_ci# cfa pattern capability registers
99762306a36Sopenharmony_ciCFA_pattern_capability			0x1990	v1.1
99862306a36Sopenharmony_ci- e	bayer				0
99962306a36Sopenharmony_ci- e	monochrome			1
100062306a36Sopenharmony_ci- e	4x4_quad_bayer			2
100162306a36Sopenharmony_ci- e	vendor_specific			3
100262306a36Sopenharmony_ciCFA_pattern_conversion_capability	0x1991	v1.1
100362306a36Sopenharmony_ci- b	bayer				0
100462306a36Sopenharmony_ci
100562306a36Sopenharmony_ci# timer capability registers
100662306a36Sopenharmony_ciflash_mode_capability			0x1a02
100762306a36Sopenharmony_ci- b	single_strobe			0
100862306a36Sopenharmony_cisa_strobe_mode_capability		0x1a03
100962306a36Sopenharmony_ci- b	fixed_width			0
101062306a36Sopenharmony_ci- b	edge_ctrl			1
101162306a36Sopenharmony_ci
101262306a36Sopenharmony_ci# soft reset capability registers
101362306a36Sopenharmony_cireset_max_delay				0x1a10	v1.1
101462306a36Sopenharmony_cireset_min_time				0x1a11	v1.1
101562306a36Sopenharmony_ci
101662306a36Sopenharmony_ci# pdaf capability registers
101762306a36Sopenharmony_cipdaf_capability_1			0x1b80
101862306a36Sopenharmony_ci- b	supported			0
101962306a36Sopenharmony_ci- b	processed_bottom_embedded	1
102062306a36Sopenharmony_ci- b	processed_interleaved		2
102162306a36Sopenharmony_ci- b	raw_bottom_embedded		3
102262306a36Sopenharmony_ci- b	raw_interleaved			4
102362306a36Sopenharmony_ci- b	visible_pdaf_correction		5
102462306a36Sopenharmony_ci- b	vc_interleaving			6
102562306a36Sopenharmony_ci- b	dt_interleaving			7
102662306a36Sopenharmony_cipdaf_capability_2			0x1b81
102762306a36Sopenharmony_ci- b	ROI				0
102862306a36Sopenharmony_ci- b	after_digital_crop		1
102962306a36Sopenharmony_ci- b	ctrl_retimed			2
103062306a36Sopenharmony_ci
103162306a36Sopenharmony_ci# bracketing interface capability registers
103262306a36Sopenharmony_cibracketing_lut_capability_1		0x1c00
103362306a36Sopenharmony_ci- b	coarse_integration		0
103462306a36Sopenharmony_ci- b	global_analog_gain		1
103562306a36Sopenharmony_ci- b	flash				4
103662306a36Sopenharmony_ci- b	global_digital_gain		5
103762306a36Sopenharmony_ci- b	alternate_global_analog_gain	6
103862306a36Sopenharmony_cibracketing_lut_capability_2		0x1c01
103962306a36Sopenharmony_ci- b	single_bracketing_mode		0
104062306a36Sopenharmony_ci- b	looped_bracketing_mode		1
104162306a36Sopenharmony_cibracketing_lut_size			0x1c02
1042