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