Struct rk3399_pac::Isp1

source ·
pub struct Isp1 { /* private fields */ }
Expand description

Image Signal Processor 1 (ISP1) Registers

Implementations§

source§

impl Isp1

source

pub const PTR: *const RegisterBlock = {0xff920000 as *const isp::RegisterBlock}

Pointer to the register block

source

pub const fn ptr() -> *const RegisterBlock

Return the pointer to the register block

source

pub unsafe fn steal() -> Self

Steal an instance of this peripheral

§Safety

Ensure that the new instance of the peripheral cannot be used in a way that may race with any existing instances, for example by only accessing read-only or write-only registers, or by consuming the original peripheral and using critical sections to coordinate access between multiple new instances.

Additionally, other software such as HALs may rely on only one peripheral instance existing to ensure memory safety; ensure no stolen instances are passed to such software.

Methods from Deref<Target = RegisterBlock>§

source

pub fn vi_ccl(&self) -> &ViCcl

0x00 - Clock control register

source

pub fn vi_iccl(&self) -> &ViIccl

0x10 - Internal clock control register

source

pub fn vi_ircl(&self) -> &ViIrcl

0x14 - Internal reset control register

source

pub fn vi_dpcl(&self) -> &ViDpcl

0x18 - Data path control register

source

pub fn img_eff_ctrl(&self) -> &ImgEffCtrl

0x200 - Global control register

Note: full_range for image effects is supported in ISP M5_v6, M5_v7 only

source

pub fn img_eff_color_sel(&self) -> &ImgEffColorSel

0x204 - Color selection register (for color selection effect)

source

pub fn img_eff_mat_1(&self) -> &ImgEffMat1

0x208 - 3x3 matrix coefficients for emboss effect (1)

Note: possible values for coefficients: 000 (1), 001 (2), 010 (4), 011 (8),100 (-1), 101

(-2), 110 (-4), 111 (-8)

source

pub fn img_eff_mat_2(&self) -> &ImgEffMat2

0x20c - 3x3 matrix coefficients for emboss effect (2)

source

pub fn img_eff_mat_3(&self) -> &ImgEffMat3

0x210 - 3x3 matrix coefficients for emboss(3) effect /

sketch/sharpen(1) effect

Note: possible values for

coefficients: 000 (1), 001 (2), 010

(4), 011 (8),

100 (-1), 101 (-2), 110 (-4), 111 (-8)

source

pub fn img_eff_mat_4(&self) -> &ImgEffMat4

0x214 - 3x3 matrix coefficients for sketch/sharpen effect (2)

Note: possible values for coefficients: 000 (1), 001 (2), 010 (4), 011 (8),

100 (-1), 101 (-2), 110 (-4), 111 (-8)

source

pub fn img_eff_mat_5(&self) -> &ImgEffMat5

0x218 - 3x3 matrix coefficients for sketch/sharpen effect (3)

Note: possible values for coefficients: 000 (1), 001 (2), 010 (4), 011 (8),

100 (-1), 101 (-2), 110 (-4), 111 (-8)

source

pub fn img_eff_tint(&self) -> &ImgEffTint

0x21c - Chrominance increment values of a tint (used for sepia effect)

Note: Calculation process of incr_cr and incr_cb:

tint values given in RGB format: R G B

converted to Cb and Cr: Cb = -0.148R - 0.291G + 0.439B + 128 Cr = 0.439R -

0.368G - 0.071B + 128

calculating of the increments inc_Cb = (128 – Cb)/110 inc_Cr = (128 – Cr)/110

register entry of the increments with an accuracy of 1/64 incr_cb = inc_Cb * 64

incr_cr = inc_Cr * 64

source

pub fn img_eff_ctrl_shd(&self) -> &ImgEffCtrlShd

0x220 - Shadow register for control register

source

pub fn img_eff_sharpen(&self) -> &ImgEffSharpen

0x224 - Factor and threshold for sharpen effect

Note: For the sharpening effect the convolution mask must be set to the values [-1 -1 -1;

-1 8 -1; -1 -1 -1].

The convolution mask for sharpening is defined by the values sket_coef_xx in registers

IMG_EFF_MAT_3 through IMG_EFF_MAT_5. Sketch effect and sharpening effect share the

same mask registers.

source

pub fn super_imp_ctrl(&self) -> &SuperImpCtrl

0x300 - Global control register

Note: in the bypass mode the data stream from Image

Effect is transmitted to MUX module without overlaying

source

pub fn super_imp_offset_x(&self) -> &SuperImpOffsetX

0x304 - Offset x register

source

pub fn super_imp_offset_y(&self) -> &SuperImpOffsetY

0x308 - Offset y register

Note: the offset_y is positive and refers to the

reference image

source

pub fn ctrl(&self) -> &Ctrl

0x400 - global control register

Note: partly write-only

source

pub fn acq_prop(&self) -> &AcqProp

0x404 - ISP acquisition properties

source

pub fn acq_h_offs(&self) -> &AcqHOffs

0x408 - horizontal input offset

source

pub fn acq_v_offs(&self) -> &AcqVOffs

0x40c - vertical input offset

source

pub fn acq_h_size(&self) -> &AcqHSize

0x410 - horizontal input size

source

pub fn acq_v_size(&self) -> &AcqVSize

0x414 - vertical input size

source

pub fn acq_nr_frames(&self) -> &AcqNrFrames

0x418 - Number of frames to be captured

source

pub fn gamma_dx_lo(&self) -> &GammaDxLo

0x41c - De-Gamma Curve definition lower x increments (sampling points)

source

pub fn gamma_dx_hi(&self) -> &GammaDxHi

0x420 - De-Gamma Curve definition higher x increments (sampling points)

source

pub fn gamma_r_y(&self, n: usize) -> &GammaRY

0x424..0x468 - De-Gamma Curve definition y red n (n=0..16)

Note: The reset values define a linear curve which has the same effect as bypass.

Reset values are: Y_00 = 0x0000, Y_01 = 0x0100, Y_02 = 0x0200, Y_03 = 0x0300, Y_04

= 0x0400,Y_05 = 0x0500, Y_06 = 0x0600, Y_07 = 0x0700, Y_08 = 0x0800, Y_09 =

0x0900, Y_10 = 0x0A00, Y_11 = 0x0B00, Y_12 = 0x0C00, Y_13 = 0x0D00, Y_14 =

0x0E00, Y_15 = 0x0F00, Y_16 = 0x0FFF

source

pub fn gamma_r_y_iter(&self) -> impl Iterator<Item = &GammaRY>

Iterator for array of: 0x424..0x468 - De-Gamma Curve definition y red n (n=0..16)

Note: The reset values define a linear curve which has the same effect as bypass.

Reset values are: Y_00 = 0x0000, Y_01 = 0x0100, Y_02 = 0x0200, Y_03 = 0x0300, Y_04

= 0x0400,Y_05 = 0x0500, Y_06 = 0x0600, Y_07 = 0x0700, Y_08 = 0x0800, Y_09 =

0x0900, Y_10 = 0x0A00, Y_11 = 0x0B00, Y_12 = 0x0C00, Y_13 = 0x0D00, Y_14 =

0x0E00, Y_15 = 0x0F00, Y_16 = 0x0FFF

source

pub fn gamma_g_y(&self, n: usize) -> &GammaGY

0x468..0x4ac - De-Gamma Curve definition y green n (n=0..16)

Note: The reset values define a linear curve which has the same effect as bypass.

Reset values are: Y_00 = 0x0000, Y_01 = 0x0100, Y_02 = 0x0200, Y_03 = 0x0300, Y_04

= 0x0400,Y_05 = 0x0500, Y_06 = 0x0600, Y_07 = 0x0700, Y_08 = 0x0800, Y_09 =

0x0900, Y_10 = 0x0A00, Y_11 = 0x0B00, Y_12 = 0x0C00, Y_13 = 0x0D00, Y_14 =

0x0E00, Y_15 = 0x0F00, Y_16 = 0x0FFF

source

pub fn gamma_g_y_iter(&self) -> impl Iterator<Item = &GammaGY>

Iterator for array of: 0x468..0x4ac - De-Gamma Curve definition y green n (n=0..16)

Note: The reset values define a linear curve which has the same effect as bypass.

Reset values are: Y_00 = 0x0000, Y_01 = 0x0100, Y_02 = 0x0200, Y_03 = 0x0300, Y_04

= 0x0400,Y_05 = 0x0500, Y_06 = 0x0600, Y_07 = 0x0700, Y_08 = 0x0800, Y_09 =

0x0900, Y_10 = 0x0A00, Y_11 = 0x0B00, Y_12 = 0x0C00, Y_13 = 0x0D00, Y_14 =

0x0E00, Y_15 = 0x0F00, Y_16 = 0x0FFF

source

pub fn gamma_b_y(&self, n: usize) -> &GammaBY

0x4ac..0x4f0 - De-Gamma Curve definition y blue n (n=0..16)

Note: The reset values define a linear curve which has the same effect as bypass.

Reset values are: Y_00 = 0x0000, Y_01 = 0x0100, Y_02 = 0x0200, Y_03 = 0x0300, Y_04

= 0x0400,

Y_05 = 0x0500, Y_06 = 0x0600, Y_07 = 0x0700, Y_08 = 0x0800,

Y_09 = 0x0900, Y_10 = 0x0A00, Y_11 = 0x0B00, Y_12 = 0x0C00, Y_13 =

0x0D00, Y_14 = 0x0E00, Y_15 = 0x0F00, Y_16 = 0x0FFF

source

pub fn gamma_b_y_iter(&self) -> impl Iterator<Item = &GammaBY>

Iterator for array of: 0x4ac..0x4f0 - De-Gamma Curve definition y blue n (n=0..16)

Note: The reset values define a linear curve which has the same effect as bypass.

Reset values are: Y_00 = 0x0000, Y_01 = 0x0100, Y_02 = 0x0200, Y_03 = 0x0300, Y_04

= 0x0400,

Y_05 = 0x0500, Y_06 = 0x0600, Y_07 = 0x0700, Y_08 = 0x0800,

Y_09 = 0x0900, Y_10 = 0x0A00, Y_11 = 0x0B00, Y_12 = 0x0C00, Y_13 =

0x0D00, Y_14 = 0x0E00, Y_15 = 0x0F00, Y_16 = 0x0FFF

source

pub fn awb_prop(&self) -> &AwbProp

0x510 - Auto white balance properties

Note: The following conversion matrix is used for calculating the YCbCr values:

Y = 16 + 0.2500 R + 0.5000 G + 0.1094 B

Cb = 128 - 0.1406 R - 0.2969 G + 0.4375 B

Cr = 128 + 0.4375 R - 0.3750 G - 0.0625 B

source

pub fn awb_h_offs(&self) -> &AwbHOffs

0x514 - Auto white balance horizontal offset of measure window

source

pub fn awb_v_offs(&self) -> &AwbVOffs

0x518 - Auto white balance vertical offset of measure window

source

pub fn awb_h_size(&self) -> &AwbHSize

0x51c - Auto white balance horizontal window size

source

pub fn awb_v_size(&self) -> &AwbVSize

0x520 - Auto white balance vertical window size

source

pub fn awb_frames(&self) -> &AwbFrames

0x524 - Auto white balance mean value over multiple frames

source

pub fn awb_ref(&self) -> &AwbRef

0x528 - Auto white balance reference Cb/Cr values

source

pub fn awb_thresh(&self) -> &AwbThresh

0x52c - Auto white balance threshold values

source

pub fn awb_gain_g(&self) -> &AwbGainG

0x538 - Auto white balance gain green

source

pub fn awb_gain_rb(&self) -> &AwbGainRb

0x53c - Auto white balance gain red and blue

source

pub fn awb_white_cnt(&self) -> &AwbWhiteCnt

0x540 - Auto white balance white pixel count

source

pub fn awb_mean(&self) -> &AwbMean

0x544 - Auto white balance measured mean value

source

pub fn cc_coeff_0(&self) -> &CcCoeff0

0x570 - Color conversion coefficient 0

Note: all color conversion coefficients are signed integer values with 7 bit fractional

part, range -2 to 1.992

source

pub fn cc_coeff_1(&self) -> &CcCoeff1

0x574 - Color conversion coefficient 1

source

pub fn cc_coeff_2(&self) -> &CcCoeff2

0x578 - Color conversion coefficient 2

source

pub fn cc_coeff_3(&self) -> &CcCoeff3

0x57c - Color conversion coefficient 3

source

pub fn cc_coeff_4(&self) -> &CcCoeff4

0x580 - Color conversion coefficient 4

source

pub fn cc_coeff_5(&self) -> &CcCoeff5

0x584 - Color conversion coefficient 5

source

pub fn cc_coeff_6(&self) -> &CcCoeff6

0x588 - Color conversion coefficient 6

source

pub fn cc_coeff_7(&self) -> &CcCoeff7

0x58c - Color conversion coefficient 7

source

pub fn cc_coeff_8(&self) -> &CcCoeff8

0x590 - Color conversion coefficient 8

source

pub fn out_h_offs(&self) -> &OutHOffs

0x594 - Horizontal offset of output window

source

pub fn out_v_offs(&self) -> &OutVOffs

0x598 - Vertical offset of output window

source

pub fn out_h_size(&self) -> &OutHSize

0x59c - Output horizontal picture size

source

pub fn out_v_size(&self) -> &OutVSize

0x5a0 - Output vertical picture size

source

pub fn demosaic(&self) -> &Demosaic

0x5a4 - Demosaic parameters

source

pub fn flags_shd(&self) -> &FlagsShd

0x5a8 - Flags (current status) of certain signals and Shadow regs

for enable signals

source

pub fn imsc(&self) -> &Imsc

0x5bc - Interrupt mask

source

pub fn ris(&self) -> &Ris

0x5c0 - Raw interrupt status

source

pub fn mis(&self) -> &Mis

0x5c4 - Masked interrupt status

source

pub fn icr(&self) -> &Icr

0x5c8 - Interrupt clear register

source

pub fn isr(&self) -> &Isr

0x5cc - Interrupt set register

source

pub fn ct_coeff(&self, n: usize) -> &CtCoeff

0x5d0..0x5f4 - cross-talk configuration register (color correction matrix) n (n=0..8)

Note: Reset values generate a matrix which does not modify the pixel values. Reset

values are: coeff_0 = 0x80, coeff_1 = 0x00, coeff_2 = 0x00, coeff_3 = 0x00, coeff_4 = 0x80,

coeff_5 = 0x00, coeff_6 = 0x00, coeff_7 = 0x00, coeff_8 = 0x80

source

pub fn ct_coeff_iter(&self) -> impl Iterator<Item = &CtCoeff>

Iterator for array of: 0x5d0..0x5f4 - cross-talk configuration register (color correction matrix) n (n=0..8)

Note: Reset values generate a matrix which does not modify the pixel values. Reset

values are: coeff_0 = 0x80, coeff_1 = 0x00, coeff_2 = 0x00, coeff_3 = 0x00, coeff_4 = 0x80,

coeff_5 = 0x00, coeff_6 = 0x00, coeff_7 = 0x00, coeff_8 = 0x80

source

pub fn gamma_out_mode(&self) -> &GammaOutMode

0x5f4 - gamma segmentation mode register for output gamma

source

pub fn gamma_out_y(&self, n: usize) -> &GammaOutY

0x5f8..0x63c - Gamma Out Curve definition y_ n (n=0..16)

Note: Reset values generate a standard gamma of 2.2. Reset values are:

y_00 = 0x000, y_01 = 0x049, y_02 = 0x089, y_03 = 0x0B7, y_04 = 0x0DF, y_05 =

0x11F, y_06 = 0x154, y_07 = 0x183, y_08 = 0x1AD, y_09 = 0x1F6, y_10 = 0x235, y_11 =

0x26F, y_12 = 0x2D3, y_13 = 0x32A, y_14 = 0x378, y_15 = 0x3BF, y_16 = 0x3FF

source

pub fn gamma_out_y_iter(&self) -> impl Iterator<Item = &GammaOutY>

Iterator for array of: 0x5f8..0x63c - Gamma Out Curve definition y_ n (n=0..16)

Note: Reset values generate a standard gamma of 2.2. Reset values are:

y_00 = 0x000, y_01 = 0x049, y_02 = 0x089, y_03 = 0x0B7, y_04 = 0x0DF, y_05 =

0x11F, y_06 = 0x154, y_07 = 0x183, y_08 = 0x1AD, y_09 = 0x1F6, y_10 = 0x235, y_11 =

0x26F, y_12 = 0x2D3, y_13 = 0x32A, y_14 = 0x378, y_15 = 0x3BF, y_16 = 0x3FF

source

pub fn err(&self) -> &Err

0x63c - ISP error register

Note: For debug purposes the ISP_ERR und ISP_ERR_CLR are implemented. For the case

when a PIC_SIZE_ERR interrupt is signaled the SW is able to see in which submodule this error

is generated. Writing to the ISP_ERR_CLR register clears this bit.

source

pub fn err_clr(&self) -> &ErrClr

0x640 - ISP error clear register

source

pub fn frame_count(&self) -> &FrameCount

0x644 - Frame counter

Note: In the ISP_FRAME_COUNT register the number of processed frames are displayed.

For example: If a 8 is programmed into the ISP_ACQ_NR_FRAMES register, a read access to

the ISP_FRAME_COUNT register during processing of the first picture shows a 7.

After the entire frames are processed the ISP_OFF interrupt is generated and the

ISP_FRAME_COUNT has the count zero. In case a ‘0’ is programmed into the

ISP_ACQ_NR_FRAMES register (continues mode) the ISP_FRAME_COUNT register keeps the

value ‘0’.

source

pub fn ct_offset_r(&self) -> &CtOffsetR

0x648 - cross-talk offset red

source

pub fn ct_offset_g(&self) -> &CtOffsetG

0x64c - cross-talk offset green

source

pub fn ct_offset_b(&self) -> &CtOffsetB

0x650 - cross-talk offset blue

source

pub fn flash_cmd(&self) -> &FlashCmd

0x660 - Flash command

Note: This is the command register for flash light and prelight activation. If the ‘rw’ bits

(e.g. ‘fl_cap_del’) are re-programmed during operation, the following scheme shall be

applied:

prelight is active (prelight_on = 1 has been set before): Every write access to this register

shall use prelight_on = 1 (to prevent undesired switch off of the prelight).

prelight is off: Every write access to this register shall use prelight_on = 0 (to prevent

undesired switch on of the prelight).

source

pub fn flash_config(&self) -> &FlashConfig

0x664 - Flash config

source

pub fn flash_prediv(&self) -> &FlashPrediv

0x668 - Flash Counter Pre-Divider

source

pub fn flash_delay(&self) -> &FlashDelay

0x66c - Flash Delay

Note: Example:

fl_delay = (10s * 100MHz) / (1023 + 1) – 1 = 976561

source

pub fn flash_time(&self) -> &FlashTime

0x670 - Flash time

Note: Example:

fl_time = (500ms * 100MHz) / (700 + 1) – 1 = 71530

source

pub fn flash_maxp(&self) -> &FlashMaxp

0x674 - Maximum value for flash or preflash

Note: Example:

fl_maxp = (10s * 100MHz) / (16384) – 1 = 61034

source

pub fn sh_ctrl(&self) -> &ShCtrl

0x680 - mechanical shutter control

source

pub fn sh_prediv(&self) -> &ShPrediv

0x684 - Mech. Shutter Counter Pre-Divider

source

pub fn sh_delay(&self) -> &ShDelay

0x688 - Delay register

Note: Example:

sh_delay = (250us * 100MHz) / (50 + 1) – 1 = 489

source

pub fn sh_time(&self) -> &ShTime

0x68c - Time register

Note: Example:

sh_time = (10s * 100MHz) / (1023 + 1) – 1 = 976561

source

pub fn cproc_ctrl(&self) -> &CprocCtrl

0x800 - Global control register

source

pub fn cproc_contrast(&self) -> &CprocContrast

0x804 - Color Processing contrast register

source

pub fn cproc_brightness(&self) -> &CprocBrightness

0x808 - Color Processing brightness register

source

pub fn cproc_saturation(&self) -> &CprocSaturation

0x80c - Color Processing saturation register

source

pub fn cproc_hue(&self) -> &CprocHue

0x810 - Color Processing hue register

source

pub fn mrsz_ctrl(&self) -> &MrszCtrl

0xc00 - global control register

source

pub fn mrsz_scale_hy(&self) -> &MrszScaleHy

0xc04 - horizontal luminance scale factor register

Note: The size of the output picture is calculated as follows:

upscaling: (size_in - 1) / (size_out - 1)) = scale downscaling: (size_out - 1) / (size_in - 1))

= scale,

where size_in/out is the width or height of the in/output picture. The value of the

respective MRSZ_SCALE register then has to be

int(scale x 2^14) for upscaling and

int(scale x 2^14)+1 for downscaling.

For downscaling this formula has no restriction. In upscaling processes the limit is factor 5.

The output is at max. 5 MegaPixel.

If a format conversion is performed, the scale factors have to be different for the

luminance and the chrominance component, respectively. For example, for a format

conversion from 4:2:2 to 4:2:0 the scale register value for the vertical

chrominance component should be half of the vertical luminance scale register value.

source

pub fn mrsz_scale_hcb(&self) -> &MrszScaleHcb

0xc08 - horizontal Cb scale factor register

source

pub fn mrsz_scale_hcr(&self) -> &MrszScaleHcr

0xc0c - horizontal Cr scale factor register

source

pub fn mrsz_scale_vy(&self) -> &MrszScaleVy

0xc10 - vertical luminance scale factor register

source

pub fn mrsz_scale_vc(&self) -> &MrszScaleVc

0xc14 - vertical chrominance scale factor register

Note: The size of the output picture is calculated as follows: (size_out - 1) / (size_in - 1))

= scale,

where size_in/out is the width or heigth of the in/output picture. The values of the

MRSZ_SCALE registers then have to be int(scale x 2^14)+1

source

pub fn mrsz_phase_hy(&self) -> &MrszPhaseHy

0xc18 - horizontal luminance phase register

source

pub fn mrsz_phase_hc(&self) -> &MrszPhaseHc

0xc1c - horizontal chrominance phase register

source

pub fn mrsz_phase_vy(&self) -> &MrszPhaseVy

0xc20 - vertical luminance phase register

source

pub fn mrsz_phase_vc(&self) -> &MrszPhaseVc

0xc24 - vertical chrominance phase register

source

pub fn mrsz_scale_lut_addr(&self) -> &MrszScaleLutAddr

0xc28 - Address pointer of up-scaling look up table

source

pub fn mrsz_scale_lut(&self) -> &MrszScaleLut

0xc2c - Entry of up-scaling look up table

source

pub fn mrsz_ctrl_shd(&self) -> &MrszCtrlShd

0xc30 - global control shadow register

source

pub fn mrsz_scale_hy_shd(&self) -> &MrszScaleHyShd

0xc34 - horizontal luminance scale factor shadow register

source

pub fn mrsz_scale_hcb_shd(&self) -> &MrszScaleHcbShd

0xc38 - horizontal Cb scale factor shadow register

source

pub fn mrsz_scale_hcr_shd(&self) -> &MrszScaleHcrShd

0xc3c - horizontal Cr scale factor shadow register

source

pub fn mrsz_scale_vy_shd(&self) -> &MrszScaleVyShd

0xc40 - vertical luminance scale factor shadow register

source

pub fn mrsz_scale_vc_shd(&self) -> &MrszScaleVcShd

0xc44 - vertical chrominance scale factor shadow register

source

pub fn mrsz_phase_hy_shd(&self) -> &MrszPhaseHyShd

0xc48 - horizontal luminance phase shadow register

source

pub fn mrsz_phase_hc_shd(&self) -> &MrszPhaseHcShd

0xc4c - horizontal chrominance phase shadow register

source

pub fn mrsz_phase_vy_shd(&self) -> &MrszPhaseVyShd

0xc50 - vertical luminance phase shadow register

source

pub fn mrsz_phase_vc_shd(&self) -> &MrszPhaseVcShd

0xc54 - vertical chrominance phase shadow register

source

pub fn srsz_ctrl(&self) -> &SrszCtrl

0x1000 - global control register

source

pub fn srsz_scale_hy(&self) -> &SrszScaleHy

0x1004 - horizontal luminance scale factor register

Note: The size of the output picture is calculated as follows:

upscaling: (size_in - 1) / (size_out - 1)) = scale downscaling: (size_out - 1) / (size_in - 1))

= scale,

where size_in/out is the width or height of the in/output picture. The value of the

respective SRSZ_SCALE register then has to be

int(scale x 2^14) for upscaling and

int(scale x 2^14)+1 for downscaling.

For downscaling this formula has no restriction. In upscaling processes the limit is factor 5.

If a format conversion is performed, the scale factors have to be different for the luminance

and the chrominance component, respectively. For example, for a

format conversion from 4:2:2 to 4:2:0 the scale register value for the vertical

chrominance component should be half of the vertical luminance scale register value.

source

pub fn srsz_scale_hcb(&self) -> &SrszScaleHcb

0x1008 - horizontal chrominance scale factor register

source

pub fn srsz_scale_hcr(&self) -> &SrszScaleHcr

0x100c - horizontal chrominance scale factor register

source

pub fn srsz_scale_vy(&self) -> &SrszScaleVy

0x1010 - vertical luminance scale factor register

source

pub fn srsz_scale_vc(&self) -> &SrszScaleVc

0x1014 - vertical chrominance scale factor register

source

pub fn srsz_phase_hy(&self) -> &SrszPhaseHy

0x1018 - horizontal luminance phase register

source

pub fn srsz_phase_hc(&self) -> &SrszPhaseHc

0x101c - horizontal chrominance phase register

source

pub fn srsz_phase_vy(&self) -> &SrszPhaseVy

0x1020 - vertical luminance phase register

source

pub fn srsz_phase_vc(&self) -> &SrszPhaseVc

0x1024 - vertical chrominance phase register

source

pub fn srsz_scale_lut_addr(&self) -> &SrszScaleLutAddr

0x1028 - Address pointer of up-scaling look up table

source

pub fn srsz_scale_lut(&self) -> &SrszScaleLut

0x102c - Entry of up-scaling look up table

source

pub fn srsz_ctrl_shd(&self) -> &SrszCtrlShd

0x1030 - global control shadow register

source

pub fn srsz_scale_hy_shd(&self) -> &SrszScaleHyShd

0x1034 - horizontal luminance scale factor shadow register

source

pub fn srsz_scale_hcb_shd(&self) -> &SrszScaleHcbShd

0x1038 - horizontal Cb scale factor shadow register

source

pub fn srsz_scale_hcr_shd(&self) -> &SrszScaleHcrShd

0x103c - horizontal Cr scale factor shadow register

source

pub fn srsz_scale_vy_shd(&self) -> &SrszScaleVyShd

0x1040 - vertical luminance scale factor shadow register

source

pub fn srsz_scale_vc_shd(&self) -> &SrszScaleVcShd

0x1044 - vertical chrominance scale factor shadow register

source

pub fn srsz_phase_hy_shd(&self) -> &SrszPhaseHyShd

0x1048 - horizontal luminance phase shadow register

source

pub fn srsz_phase_hc_shd(&self) -> &SrszPhaseHcShd

0x104c - horizontal chrominance phase shadow register

source

pub fn srsz_phase_vy_shd(&self) -> &SrszPhaseVyShd

0x1050 - vertical luminance phase shadow register

source

pub fn srsz_phase_vc_shd(&self) -> &SrszPhaseVcShd

0x1054 - vertical chrominance phase shadow register

source

pub fn mi_ctrl(&self) -> &MiCtrl

0x1400 - Global control register

source

pub fn mi_init(&self) -> &MiInit

0x1404 - Control register for address init and skip function

source

pub fn mi_mp_y_base_ad_init(&self) -> &MiMpYBaseAdInit

0x1408 - Base address for main picture Y component, JPEG or raw data

Note: This register protects from non-aligned access. The bits 0 to 2 are hard wired to

‘000’. As a consequence any byte address that is written to the register will automatically be

re-mapped to the next lower 64 bit aligned address: write(MI_MP_Y_BASE_AD_INIT,

address_value) is equivalent to write(MI_Y_BASE_AD_INIT, address_value & 0xFFFFFFF8).

Anyhow, in order to avoid confusion it is NOT recommended to use non-aligned address values

for access. It is also NOT recommended to actively consider the register slice for register

access in order to avoid unneccessary mask and shift operations.

In addition, if ISP provides AXI interfaces the programmed base address shall be

burst aligned with respect to the burst length configured in MI_CTRL .

Set control bit init_base_en before updating so that a forced or automatic update can take

effect.

source

pub fn mi_mp_y_size_init(&self) -> &MiMpYSizeInit

0x140c - Size of main picture Y component, JPEG or raw data

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

Set control bit init_base_en before updating so that a forced or automatic update can take

effect.

source

pub fn mi_mp_y_offs_cnt_init(&self) -> &MiMpYOffsCntInit

0x1410 - Offset counter init value for main picture Y, JPEG or raw data

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

Set control bit init_base_en before updating so that a forced or automatic update can

take effect. Check exceptional handling in skip modes.

source

pub fn mi_mp_y_offs_cnt_start(&self) -> &MiMpYOffsCntStart

0x1414 - Offset counter start value for main picture Y, JPEG or raw data

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_mp_y_irq_offs_init(&self) -> &MiMpYIrqOffsInit

0x1418 - Fill level interrupt offset value for main picture Y, JPEG or raw data

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_mp_cb_base_ad_init(&self) -> &MiMpCbBaseAdInit

0x141c - Base address for main picture Cb component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

Refer also to MI_MP_Y_BASE_AD_INIT with respect to the burst alignment restriction for

AXI.

source

pub fn mi_mp_cb_size_init(&self) -> &MiMpCbSizeInit

0x1420 - Size of main picture Cb component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_mp_cb_offs_cnt_init(&self) -> &MiMpCbOffsCntInit

0x1424 - Offset counter init value for main picture Cb component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_mp_cb_offs_cnt_start(&self) -> &MiMpCbOffsCntStart

0x1428 - Offset counter start value for main picture Cb component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_mp_cr_base_ad_init(&self) -> &MiMpCrBaseAdInit

0x142c - Base address for main picture Cr component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

Refer also to MI_MP_Y_BASE_AD_INIT with respect to the burst alignment restriction for

AXI.

source

pub fn mi_mp_cr_size_init(&self) -> &MiMpCrSizeInit

0x1430 - Size of main picture Cr component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_mp_cr_offs_cnt_init(&self) -> &MiMpCrOffsCntInit

0x1434 - Offset counter init value for main picture Cr component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_mp_cr_offs_cnt_start(&self) -> &MiMpCrOffsCntStart

0x1438 - Offset counter start value for main picture Cr component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_sp_y_base_ad_init(&self) -> &MiSpYBaseAdInit

0x143c - Base address for self picture Y component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

Refer also to MI_MP_Y_BASE_AD_INIT with respect to the burst alignment restriction for

AXI.

source

pub fn mi_sp_y_size_init(&self) -> &MiSpYSizeInit

0x1440 - Size of self picture Y component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_sp_y_offs_cnt_init(&self) -> &MiSpYOffsCntInit

0x1444 - Offset counter init value for self picture Y component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_sp_y_offs_cnt_start(&self) -> &MiSpYOffsCntStart

0x1448 - Offset counter start value for self picture Y component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_sp_y_llength(&self) -> &MiSpYLlength

0x144c - Line length of self picture Y component

Note: Programmed value becomes effective

immediately. So write to the register only if no picture data

is sent to the self path.

source

pub fn mi_sp_cb_base_ad_init(&self) -> &MiSpCbBaseAdInit

0x1450 - Base address for self picture Cb component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

Refer also to MI_MP_Y_BASE_AD_INIT with respect to the burst alignment restriction for

AXI.

source

pub fn mi_sp_cb_size_init(&self) -> &MiSpCbSizeInit

0x1454 - Size of self picture Cb component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_sp_cb_offs_cnt_init(&self) -> &MiSpCbOffsCntInit

0x1458 - Offset counter init value for self picture Cb component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_sp_cb_offs_cnt_start(&self) -> &MiSpCbOffsCntStart

0x145c - Offset counter start value for self picture Cb component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_sp_cr_base_ad_init(&self) -> &MiSpCrBaseAdInit

0x1460 - Base address for self picture Cr component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

Refer also to MI_MP_Y_BASE_AD_INIT with respect to the burst alignment restriction for

AXI.

source

pub fn mi_sp_cr_size_init(&self) -> &MiSpCrSizeInit

0x1464 - Size of self picture Cr component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_sp_cr_offs_cnt_init(&self) -> &MiSpCrOffsCntInit

0x1468 - Offset counter init value for self picture Cr component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_sp_cr_offs_cnt_start(&self) -> &MiSpCrOffsCntStart

0x146c - Offset counter start value for self picture Cr component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_byte_cnt(&self) -> &MiByteCnt

0x1470 - Counter value of JPEG or RAW data bytes

source

pub fn mi_ctrl_shd(&self) -> &MiCtrlShd

0x1474 - global control internal shadow register

source

pub fn mi_mp_y_base_ad_shd(&self) -> &MiMpYBaseAdShd

0x1478 - Base address shadow register for main picture Y

component, JPEG or raw data ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_mp_y_size_shd(&self) -> &MiMpYSizeShd

0x147c - Size shadow register of main picture Y component, JPEG

or raw data

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_mp_y_offs_cnt_shd(&self) -> &MiMpYOffsCntShd

0x1480 - Current offset counter of main picture Y component, JPEG

or raw data ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_mp_y_irq_offs_shd(&self) -> &MiMpYIrqOffsShd

0x1484 - Shadow register of fill level interrupt offset value for main

picture Y component, JPEG or raw data

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_mp_cb_base_ad_shd(&self) -> &MiMpCbBaseAdShd

0x1488 - Base address shadow register for main picture Cb

component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_mp_cb_size_shd(&self) -> &MiMpCbSizeShd

0x148c - Size shadow register of main picture Cb component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_mp_cb_offs_cnt_shd(&self) -> &MiMpCbOffsCntShd

0x1490 - Current offset counter of main picture Cb component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_mp_cr_base_ad_shd(&self) -> &MiMpCrBaseAdShd

0x1494 - Base address shadow register for main picture Cr

component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_mp_cr_size_shd(&self) -> &MiMpCrSizeShd

0x1498 - Size shadow register of main picture Cr component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_mp_cr_offs_cnt_shd(&self) -> &MiMpCrOffsCntShd

0x149c - Current offset counter of main picture Cr component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_sp_y_base_ad_shd(&self) -> &MiSpYBaseAdShd

0x14a0 - Base address shadow register for self picture Y

component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_sp_y_size_shd(&self) -> &MiSpYSizeShd

0x14a4 - Size shadow register of self picture Y component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_sp_y_offs_cnt_shd(&self) -> &MiSpYOffsCntShd

0x14a8 - Current offset counter of self picture Y component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_sp_cb_base_ad_shd(&self) -> &MiSpCbBaseAdShd

0x14b0 - Base address shadow register for self picture Cb

component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_sp_cb_size_shd(&self) -> &MiSpCbSizeShd

0x14b4 - Size shadow register of self picture Cb component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_sp_cb_offs_cnt_shd(&self) -> &MiSpCbOffsCntShd

0x14b8 - Current offset counter of self picture Cb component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_sp_cr_base_ad_shd(&self) -> &MiSpCrBaseAdShd

0x14bc - Base address shadow register for self picture Cr

component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_sp_cr_size_shd(&self) -> &MiSpCrSizeShd

0x14c0 - Size shadow register of self picture Cr component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_sp_cr_offs_cnt_shd(&self) -> &MiSpCrOffsCntShd

0x14c4 - Current offset counter of self picture Cr component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

source

pub fn mi_dma_y_pic_start_ad(&self) -> &MiDmaYPicStartAd

0x14c8 - Y component image start address

Note: Must be multiple of 4 in interleaved mode.

source

pub fn mi_dma_y_pic_width(&self) -> &MiDmaYPicWidth

0x14cc - Y component image width

source

pub fn mi_dma_y_llength(&self) -> &MiDmaYLlength

0x14d0 - Y component original line length

source

pub fn mi_dma_y_pic_size(&self) -> &MiDmaYPicSize

0x14d4 - Y component image size

source

pub fn mi_dma_cb_pic_start_ad(&self) -> &MiDmaCbPicStartAd

0x14d8 - Cb component image start address

Note: Must be multiple of 2 in semi-planar mode.

source

pub fn mi_dma_cr_pic_start_ad(&self) -> &MiDmaCrPicStartAd

0x14e8 - Cr component image start address

source

pub fn mi_imsc(&self) -> &MiImsc

0x14f8 - Interrupt Mask („1‟: interrupt active, „0‟: interrupt masked)

source

pub fn mi_ris(&self) -> &MiRis

0x14fc - Raw Interrupt Status

source

pub fn mi_mis(&self) -> &MiMis

0x1500 - Masked Interrupt Status

source

pub fn mi_icr(&self) -> &MiIcr

0x1504 - Interrupt Clear Register

source

pub fn mi_isr(&self) -> &MiIsr

0x1508 - Interrupt Set Register

source

pub fn mi_status(&self) -> &MiStatus

0x150c - MI Status Register

source

pub fn mi_status_clr(&self) -> &MiStatusClr

0x1510 - MI Status Clear Register

source

pub fn mi_sp_y_pic_width(&self) -> &MiSpYPicWidth

0x1514 - Y component image width

Note: Programmed value becomes effective

immediately. So write to the register only if no picture

data is sent to the self path.

source

pub fn mi_sp_y_pic_height(&self) -> &MiSpYPicHeight

0x1518 - Y component image height

Note: Programmed value becomes effective

source

pub fn mi_sp_y_pic_size(&self) -> &MiSpYPicSize

0x151c - Y component image size

Note: Programmed value becomes effective

immediately. So write to the register only if no picture

data is sent to the self path.

source

pub fn mi_dma_ctrl(&self) -> &MiDmaCtrl

0x1520 - DMA control register

Note: The dma_ready

interrupt is raised as usual, but the dma_frame_end

interrupt will not be generated until v_end has been

enabled again.

9 dma_continuous_en Enables continuous mode. If set the same frame is

read back over and over. A start pulse on dma_start is

needed only for the first time. To stop continuous mode

reset this bit (takes effect after the next frame end) or

execute a soft reset. This bit is intended to be used in

conjunction with the Superimpose feature.

8 dma_byte_swap Enables change of DMA byte order of the 32 bit

input word at read port

1: byte order is mirrored but the bit order within one

byte doesn‟t change

0: no byte mirroring

7:6 dma_inout_format Selects input/output format of

DMA picture. 11: YCbCr 4:4:4

10: YCbCr 4:2:2

01: YCbCr 4:2:0

00: YCbCr 4:0:0

5:4 dma_read_format Defines how YCbCr picture data is read from

memory. 00: planar

01: semi planar, for YCbCr 4:2:x

10: interleaved (combined), for YCbCr 4:2:2 and RGB

only 11: reserved

3:2 dma_burst_len_chrom Burst length for Cb or Cr data affecting DMA

read port. 00: 4-beat bursts

01: 8-beat bursts

10: 16-beat bursts

11: reserved

Ignored if 8- or 16-beat bursts are not supported.

DMA control register Reset value: 0000’0000H

Address: ISP_MI_BASE + 0120H Mode : rw

Bit

s

Name Description

1:0 dma_burst_len_lum Burst length for Y data affecting DMA read port.

00: 4-beat bursts

01: 8-beat bursts

10: 16-beat bursts

11: reserved

Ignored if 8- or 16-beat bursts are not supported.

source

pub fn mi_dma_start(&self) -> &MiDmaStart

0x1524 - DMA start register

source

pub fn mi_dma_status(&self) -> &MiDmaStatus

0x1528 - DMA status register

source

pub fn mi_pixel_cnt(&self) -> &MiPixelCnt

0x152c - Counter value for defect pixel list

source

pub fn mi_mp_y_base_ad_init2(&self) -> &MiMpYBaseAdInit2

0x1530 - Base address 2 (ping pong) for main picture Y component,

JPEG or raw data

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

Refer also to MI_MP_Y_BASE_AD_INIT with respect to the burst alignment restriction for

AXI.

source

pub fn mi_mp_cb_base_ad_init2(&self) -> &MiMpCbBaseAdInit2

0x1534 - Base address 2 (pingpong) for main picture Cb component

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

Refer also to MI_MP_Y_BASE_AD_INIT with respect to the burst alignment restriction for

AXI.

source

pub fn mi_mp_cr_base_ad_init2(&self) -> &MiMpCrBaseAdInit2

0x1538 - Base address 2 (pingpong) for main picture Cr component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

Refer also to MI_MP_Y_BASE_AD_INIT with respect to the burst alignment restriction for

AXI.

source

pub fn mi_sp_y_base_ad_init2(&self) -> &MiSpYBaseAdInit2

0x153c - Base address 2 (ping pong) for self picture Y component

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

Refer also to MI_MP_Y_BASE_AD_INIT with respect to the burst alignment restriction for

AXI.

source

pub fn mi_sp_cb_base_ad_init2(&self) -> &MiSpCbBaseAdInit2

0x1540 - Base address 2 (pingpong) for self picture Cb component

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

Refer also to MI_MP_Y_BASE_AD_INIT with respect to the burst alignment restriction for

AXI.

source

pub fn mi_sp_cr_base_ad_init2(&self) -> &MiSpCrBaseAdInit2

0x1544 - Base address 2 (pingpong) for self picture Cr component ring buffer

Note: This register protects from non-aligned access. Refer to MI_MP_Y_BASE_AD_INIT

register description for details.

Refer also to MI_MP_Y_BASE_AD_INIT with respect to the burst alignment restriction for

AXI.

source

pub fn mi_xtd_format_ctrl(&self) -> &MiXtdFormatCtrl

0x1548 - Extended Storage Format Control for main, self and dma read path

source

pub fn mipi_ctrl(&self) -> &MipiCtrl

0x1c00 - global control register

source

pub fn mipi_status(&self) -> &MipiStatus

0x1c04 - global status register

source

pub fn mipi_imsc(&self) -> &MipiImsc

0x1c08 - Interrupt mask

source

pub fn mipi_ris(&self) -> &MipiRis

0x1c0c - Raw interrupt status

source

pub fn mipi_mis(&self) -> &MipiMis

0x1c10 - Masked interrupt status

source

pub fn mipi_icr(&self) -> &MipiIcr

0x1c14 - Interrupt clear register

Note: clears corresponding bits in MIPI_RIS register

source

pub fn mipi_isr(&self) -> &MipiIsr

0x1c18 - Interrupt set register

Note: sets corresponding bits in MIPI_RIS register

source

pub fn mipi_cur_data_id(&self) -> &MipiCurDataId

0x1c1c - Current Data Identifier

source

pub fn mipi_img_data_sel(&self) -> &MipiImgDataSel

0x1c20 - Image Data Selector

source

pub fn mipi_add_data_sel_1(&self) -> &MipiAddDataSel1

0x1c24 - Additional Data Selector 1

source

pub fn mipi_add_data_sel_2(&self) -> &MipiAddDataSel2

0x1c28 - Additional Data Selector 2

source

pub fn mipi_add_data_sel_3(&self) -> &MipiAddDataSel3

0x1c2c - Additional Data Selector 3

source

pub fn mipi_add_data_sel_4(&self) -> &MipiAddDataSel4

0x1c30 - Additional Data Selector 4

source

pub fn mipi_add_data_fifo(&self) -> &MipiAddDataFifo

0x1c34 - Additional Data Fifo

source

pub fn mipi_compressed_mode(&self) -> &MipiCompressedMode

0x1c3c - controls processing of compressed raw data types

Note: This register is only available in MIPI interface version 2 of ISP

source

pub fn mipi_frame(&self) -> &MipiFrame

0x1c40 - frame number from frame start and frame end short packets

Note: This register is only available in MIPI interface version 2 of ISP

source

pub fn mipi_gen_short_dt(&self) -> &MipiGenShortDt

0x1c44 - data type flags for received generic short packets

Note: This register is only available in MIPI interface version 2 of ISP

source

pub fn mipi_gen_short_8_9(&self) -> &MipiGenShort8_9

0x1c48 - data field for generic short packets of data type 0x8 and 0x9

Note: This register is only available in MIPI interface version 2 of ISP

source

pub fn mipi_gen_short_a_b(&self) -> &MipiGenShortAB

0x1c4c - data field for generic short packets of data type 0xA and 0xB

Note: This register is only available in MIPI interface version 2 of ISP

source

pub fn mipi_gen_short_c_d(&self) -> &MipiGenShortCD

0x1c50 - data field for generic short packets of data type 0xC and 0xD

Note: This register is only available in MIPI interface version 2 of ISP

source

pub fn mipi_gen_short_e_f(&self) -> &MipiGenShortEF

0x1c54 - data field for generic short packets of data type 0xE and 0xF

Note: This register is only available in MIPI interface version 2 of ISP

This is the control register for AF measurement unit Reset value: 0000’0000H

Address: ISP_AFM_BASE + 0000H Mode : rw

Bit

s

Name Description

31:

1

— unused

0 afm_en AF measurement enable

0: AF measurement is

disabled 1: AF

measurement is enabled

Writing a 1 to this register starts a new measurement

and resets the afm_fin (measurement finished) interrupt

to 0.

As long as the afm_en is 1, the AFM unit

source

pub fn afm_lt_a(&self) -> &AfmLtA

0x2004 - Top Left corner of measure window A

source

pub fn afm_rb_a(&self) -> &AfmRbA

0x2008 - Bottom right corner of measure window A

source

pub fn afm_lt_b(&self) -> &AfmLtB

0x200c - Top left corner of measure window B

source

pub fn afm_rb_b(&self) -> &AfmRbB

0x2010 - Bottom right corner of measure window B

source

pub fn afm_lt_c(&self) -> &AfmLtC

0x2014 - Top left corner of measure window C

source

pub fn afm_rb_c(&self) -> &AfmRbC

0x2018 - Bottom right corner of measure window C

source

pub fn afm_thres(&self) -> &AfmThres

0x201c - Threshold register

source

pub fn afm_var_shift(&self) -> &AfmVarShift

0x2020 - Variable shift register

source

pub fn afm_sum_a(&self) -> &AfmSumA

0x2024 - Sharpness Value Status Register of Window A

source

pub fn afm_sum_b(&self) -> &AfmSumB

0x2028 - Sharpness Value Status Register of Window B

source

pub fn afm_sum_c(&self) -> &AfmSumC

0x202c - Sharpness Value Status Register of Window C

source

pub fn afm_lum_a(&self) -> &AfmLumA

0x2030 - Luminance Value Status Register of Window A

source

pub fn afm_lum_b(&self) -> &AfmLumB

0x2034 - Luminance Value Status Register of Window B

source

pub fn afm_lum_c(&self) -> &AfmLumC

0x2038 - Luminance Value Status Register of Window C

source

pub fn lsc_ctrl(&self) -> &LscCtrl

0x2200 - Lens shade control

source

pub fn lsc_r_table_addr(&self) -> &LscRTableAddr

0x2204 - Table RAM Address for red component

Note: The table values are written into an internal RAM. The RAM Address is generated per

auto- increment. The tables values will be read back by a continuous read access to the

corresponding register. The read address is auto-incremented for each read access to that

register and is reset to a specific value by a write access to the ISP_LSC_TABLE_ADDR

register.

Table set 0 access by SW at table address 0…152. Table set 1 access at table address

153…305.

source

pub fn lsc_gr_table_addr(&self) -> &LscGrTableAddr

0x2208 - Table RAM Address for green (red) component

Note: MKOE tbc: Orignial register mode was rwh which is no longer supported with new

version of SIG-> rwhh Table set 0 access by SW at table address 0…153. Table set 1 access at

table address 154…307.

source

pub fn lsc_b_table_addr(&self) -> &LscBTableAddr

0x220c - Table RAM Address for blue component

Note: MKOE tbc: Orignial register mode was rwh which is no longer supported with new

version of SIG-> rwhh Table set 0 access by SW at table address 0…153. Table set 1 access at

table address 154…307.

source

pub fn lsc_gb_table_addr(&self) -> &LscGbTableAddr

0x2210 - Table RAM Address for green (blue) component

Note: MKOE tbc: Orignial register mode was rwh which is no longer supported with new

version of SIG-> rwhh Table set 0 access by SW at table address 0…153. Table set 1 access at

table address 154…307.

source

pub fn lsc_r_table_data(&self) -> &LscRTableData

0x2214 - Sample table red

Note: The programmed sample value is immediately written into the RAM. The RAM

address is generated per auto-increment. The parameter RAMs for Lens Shade Correction and

Bad Pixel Correction can only be programmed, if the RGB Bayer path is switched on via

ISP_CTRL register (ISP_MODE bits).

Table set 0 access by SW at table address 0…153. Table set 1 access at table address

154…307.

source

pub fn lsc_gr_table_data(&self) -> &LscGrTableData

0x2218 - Sample table green (red)

Note: The programmed sample value is immediately written into the RAM. The RAM

address is generated per auto-increment. The parameter RAMs for Lens Shade Correction and

Bad Pixel Correction can only be programmed, if the RGB Bayer path is switched on via

ISP_CTRL register (ISP_MODE bits).

Table set 0 access by SW at table address 0…153. Table set 1 access at table address

154…307.

source

pub fn lsc_b_table_data(&self) -> &LscBTableData

0x221c - Sample table blue

Note: The programmed sample value is immediately written into the RAM. The

RAM address is generated per auto-increment. The parameter RAMs for Lens Shade

Correction and Bad Pixel Correction can only be programmed, if the RGB Bayer path is

switched on via ISP_CTRL register (ISP_MODE bits).

Table set 0 access by SW at table address 0…153. Table set 1 access at table address

154…307.

source

pub fn lsc_gb_table_data(&self) -> &LscGbTableData

0x2220 - Sample table green (blue)

Note: The programmed sample value is immediately written into the RAM. The RAM

address is generated per auto-increment. The parameter RAMs for Lens Shade Correction and

Bad Pixel Correction can only be programmed, if the RGB Bayer path is switched on via

ISP_CTRL register (ISP_MODE bits).Table set 0 access by SW at table address 0…153. Table

set 1 access at table address 154…307.

source

pub fn lsc_xgrad_01(&self) -> &LscXgrad01

0x2224 - Gradient table x

source

pub fn lsc_xgrad_23(&self) -> &LscXgrad23

0x2228 - Gradient table x

source

pub fn lsc_xgrad_45(&self) -> &LscXgrad45

0x222c - Gradient table x

source

pub fn lsc_xgrad_67(&self) -> &LscXgrad67

0x2230 - Gradient table x

source

pub fn lsc_ygrad_01(&self) -> &LscYgrad01

0x2234 - Gradient table y

source

pub fn lsc_ygrad_23(&self) -> &LscYgrad23

0x2238 - Gradient table y

source

pub fn lsc_ygrad_45(&self) -> &LscYgrad45

0x223c - Gradient table y

source

pub fn lsc_ygrad_67(&self) -> &LscYgrad67

0x2240 - Gradient table y

source

pub fn lsc_xsize_01(&self) -> &LscXsize01

0x2244 - Size table

Note: The sector size in x-direction must be greater than 12 pixels. The sum of the sector

sizes in x- direction must be ‘picture width / 2’. The sum of the sector sizes in y-direction must

be ‘picture height / 2’. No interrupt is generated if above requirements are not fulfilled and the

behaviour of the hardware cannot be predicted.

The sector size in x-direction was defined to be 9 bits for preliminary ISP versions.

source

pub fn lsc_xsize_23(&self) -> &LscXsize23

0x2248 - Size table

Note: minimum sector size is 10 in x direction

source

pub fn lsc_xsize_45(&self) -> &LscXsize45

0x224c - Size table

Note: minimum sector size is 10 in x direction

source

pub fn lsc_xsize_67(&self) -> &LscXsize67

0x2250 - Size table

Note: minimum sector size is 10 in x direction

source

pub fn lsc_ysize_01(&self) -> &LscYsize01

0x2254 - Size table

Note: minimum sector size is 8 in y direction.

The sector size in y-direction was defined to be 9 bits for preliminary ISP versions.

source

pub fn lsc_ysize_23(&self) -> &LscYsize23

0x2258 - Size table

Note: minimum sector size is 8 in y direction

source

pub fn lsc_ysize_45(&self) -> &LscYsize45

0x225c - Size table

Note: minimum sector size is 8 in y direction

source

pub fn lsc_ysize_67(&self) -> &LscYsize67

0x2260 - Size table

Note: minimum sector size is 8 in y direction

source

pub fn lsc_table_sel(&self) -> &LscTableSel

0x2264 - Lens shade table set selection

Note: Table set 0 access by SW at table address 0…153. Table set 1 access at table

address 154…307. For LSC4_MSZ the table set 1 is physically not available:

ISP_LSC_TABLE_SEL shall always be 0 for this HW configuration.

source

pub fn lsc_status(&self) -> &LscStatus

0x2268 - Lens shade status

source

pub fn is_ctrl(&self) -> &IsCtrl

0x2300 - Image Stabilization Control Register

source

pub fn is_recenter(&self) -> &IsRecenter

0x2304 - Recenter register

source

pub fn is_h_offs(&self) -> &IsHOffs

0x2308 - Horizontal offset of output window

source

pub fn is_v_offs(&self) -> &IsVOffs

0x230c - Vertical offset of output window

source

pub fn is_h_size(&self) -> &IsHSize

0x2310 - Output horizontal picture size

source

pub fn is_v_size(&self) -> &IsVSize

0x2314 - Output vertical picture size

source

pub fn is_max_dx(&self) -> &IsMaxDx

0x2318 - Maximum Horizontal Displacement

source

pub fn is_max_dy(&self) -> &IsMaxDy

0x231c - Maximum Vertical Displacement

source

pub fn is_displace(&self) -> &IsDisplace

0x2320 - Camera displacement

source

pub fn is_h_offs_shd(&self) -> &IsHOffsShd

0x2324 - current horizontal offset of output window (shadow register)

source

pub fn is_v_offs_shd(&self) -> &IsVOffsShd

0x2328 - current vertical offset of output window (shadow register)

source

pub fn is_h_size_shd(&self) -> &IsHSizeShd

0x232c - current output horizontal picture size (shadow register)

source

pub fn is_v_size_shd(&self) -> &IsVSizeShd

0x2330 - current output vertical picture size (shadow register)

source

pub fn hist_prop(&self) -> &HistProp

0x2400 - Histogram properties

Note: If RGB combined mode is used, then the 3 color components are sampled one

after the other. The software has to assure that all 3 color components are inside the

selected window.

source

pub fn hist_h_offs(&self) -> &HistHOffs

0x2404 - Histogram window horizontal offset for first window of

25 sub- windows

Note: histogram measurement is done in 25 sub-windows like the exposure

measurement, if histogram version 3 is implemented. All earlier versions use just one

window.

source

pub fn hist_v_offs(&self) -> &HistVOffs

0x2408 - Histogram window vertical offset for first window of 25 sub-windows

Note: histogram measurement is done in 25 sub-windows like the exposure

measurement, if histogram version 3 is implemented. All earlier versions use just one window.

source

pub fn hist_h_size(&self) -> &HistHSize

0x240c - Horizontal (sub-)window size

Note: hist_h_offset + hist_h_size x 5 should be less than or equal to the horizontal size

of the picture, if histogram version 3 is implemented. Otherwise hist_h_size is the horizontal

size of the measurement window in pixels.

source

pub fn hist_v_size(&self) -> &HistVSize

0x2410 - Vertical (sub-)window size

Note: hist_v_offset + hist_v_size x 5 should be less than or equal to the vertical size

of the picture, if histogram version 3 is implemented. Otherwise hist_v_size is the vertical

size of the measurement window in lines.

source

pub fn hist_bin(&self, n: usize) -> &HistBin

0x2414..0x2454 - histogram measurement result bin n (n=0..15)

Note: MKOE tbc: Orignial register mode was rh which is no longer supported with new

version of SIG -> r

source

pub fn hist_bin_iter(&self) -> impl Iterator<Item = &HistBin>

Iterator for array of: 0x2414..0x2454 - histogram measurement result bin n (n=0..15)

Note: MKOE tbc: Orignial register mode was rh which is no longer supported with new

version of SIG -> r

source

pub fn hist_weight_00to30(&self) -> &HistWeight00to30

0x2454 - Weighting factor for sub-windows

Note: Allowed value range for weight factor is 0 to 16. The resulting weight is

register_value / 16. The host software has to limit the register value for each factor to 16.

Weight registers are available, if histogram version 3 is implemented.

source

pub fn hist_weight_40to21(&self) -> &HistWeight40to21

0x2458 - Weighting factor for sub-windows

Note: Allowed value range for weight factor is 0 to 16. The resulting weight is

register_value / 16. The host software has to limit the register value for each factor to 16.

Weight registers are available, if histogram version 3 is implemented.

source

pub fn hist_weight_31to12(&self) -> &HistWeight31to12

0x245c - Weighting factor for sub-windows

Note: Allowed value range for weight factor is 0 to 16. The resulting weight is

register_value / 16. The host software has to limit the register value for each factor to 16.

Weight registers are available, if histogram version 3 is implemented.

source

pub fn hist_weight_22to03(&self) -> &HistWeight22to03

0x2460 - Weighting factor for sub-windows

Note: Allowed value range for weight factor is 0 to 16. The resulting weight is

register_value / 16. The host software has to limit the register value for each factor to 16.

Weight registers are available, if histogram version 3 is implemented.

source

pub fn hist_weight_13to43(&self) -> &HistWeight13to43

0x2464 - Weighting factor for sub-windows

Note: Allowed value range for weight factor is 0 to 16. The resulting weight is

register_value / 16. The host software has to limit the register value for each factor to 16.

Weight registers are available, if histogram version 3 is implemented.

source

pub fn hist_weight_04to34(&self) -> &HistWeight04to34

0x2468 - Weighting factor for sub-windows

Note: Allowed value range for weight factor is 0 to 16. The resulting weight is

register_value / 16. The host software has to limit the register value for each factor to 16.

Weight registers are available, if histogram version 3 is implemented.

source

pub fn hist_weight_44(&self) -> &HistWeight44

0x246c - Weighting factor for sub-windows

Note: Allowed value range for weight factor is 0 to 16. The resulting weight is

register_value / 16. The host software has to limit the register value for each factor to 16.

Weight registers are available, if histogram version 3 is implemented.

source

pub fn filt_mode(&self) -> &FiltMode

0x2500 - mode control register for the filter block

source

pub fn filt_thresh_bl0(&self) -> &FiltThreshBl0

0x2528 - Blurring threshold 0

Note: sum_grad is calculated by the texture detection unit as the sum of

horizontal and vertical gradients

source

pub fn filt_thresh_bl1(&self) -> &FiltThreshBl1

0x252c - Blurring threshold 1

Note: sum_grad is calculated by the texture detection unit as the sum of horizontal and

vertical gradients

source

pub fn filt_thresh_sh0(&self) -> &FiltThreshSh0

0x2530 - Sharpening threshold 0

Note: sum_grad is calculated by the texture detection unit as the sum of horizontal and

vertical gradients

source

pub fn filt_thresh_sh1(&self) -> &FiltThreshSh1

0x2534 - Sharpening threshold 1

Note: sum_grad is calculated by the texture detection unit as the sum of horizontal and

vertical gradients

source

pub fn filt_lum_weight(&self) -> &FiltLumWeight

0x2538 - Parameters for luminance weight function

source

pub fn filt_fac_sh1(&self) -> &FiltFacSh1

0x253c - filter factor sharp1

source

pub fn filt_fac_sh0(&self) -> &FiltFacSh0

0x2540 - filter factor sharp0

source

pub fn filt_fac_mid(&self) -> &FiltFacMid

0x2544 - filter factor middle

source

pub fn filt_fac_bl0(&self) -> &FiltFacBl0

0x2548 - Parameter for blur 0 filter

source

pub fn filt_fac_bl1(&self) -> &FiltFacBl1

0x254c - Parameter for blur 1 filter

source

pub fn cac_ctrl(&self) -> &CacCtrl

0x2580 - Control register for chromatic aberration correction

Note: Clipping behavior can be controlled by clip_mode bits. If no clipping occurs, because

displacement is below the maximum correctable displacement, then it does not matter which

mode is selected.

source

pub fn cac_count_start(&self) -> &CacCountStart

0x2584 - Preload values for CAC pixel and line counter

Note: Reset value is valid for 8192 x 8192 image resolution with centered chromatic

aberration (no offset from image center).

source

pub fn cac_a(&self) -> &CacA

0x2588 - Linear Parameters for radial shift calculation

source

pub fn cac_b(&self) -> &CacB

0x258c - Square Parameters for radial shift calculation

source

pub fn cac_c(&self) -> &CacC

0x2590 - Cubical Parameters for radial shift calculation

source

pub fn cac_x_norm(&self) -> &CacXNorm

0x2594 - Normalization parameters for calculation of image

coordinate x_d relative to optical center

Note: These values need to be programmed according to the image resolution and the

center offset of the chromatic aberration.

The parameters are necessary to avoid high gate count of the CAC hardware block. The

reset value is valid for an image resolution of 2600 x 1950 and center offset 0.

source

pub fn cac_y_norm(&self) -> &CacYNorm

0x2598 - Normalization parameters for calculation of image

coordinate y_d relative to optical center

Note: These values need to be programmed according to the image resolution and the

center offset of the chromatic aberration.

The parameters are necessary to avoid high gate count of the CAC hardware block. The

reset value is valid for an image resolution of 2600 x 1950 and center offset 0.

source

pub fn exp_ctrl(&self) -> &ExpCtrl

0x2600 - Exposure control

source

pub fn exp_h_offset(&self) -> &ExpHOffset

0x2604 - Horizontal offset for first block

source

pub fn exp_v_offset(&self) -> &ExpVOffset

0x2608 - Vertical offset for first block

source

pub fn exp_h_size(&self) -> &ExpHSize

0x260c - Horizontal size of one block

Note: exp_h_size x 5 must be less (not equal) than the horizontal size of the picture

source

pub fn exp_v_size(&self) -> &ExpVSize

0x2610 - Vertical size of one block

Note: The vertical size must be set in a way that after the last measurement window at

least two lines of the image will follow. In addition only even values for vertical size are

allowed (vertical size must be a multiple of 2).

source

pub fn exp_mean_00(&self) -> &ExpMean00

0x2614 - Mean luminance value of block 00

source

pub fn exp_mean_10(&self) -> &ExpMean10

0x2618 - Mean luminance value of block 10

source

pub fn exp_mean_20(&self) -> &ExpMean20

0x261c - Mean luminance value of block 20

source

pub fn exp_mean_30(&self) -> &ExpMean30

0x2620 - Mean luminance value of block 30

source

pub fn exp_mean_40(&self) -> &ExpMean40

0x2624 - Mean luminance value of block 40

source

pub fn exp_mean_01(&self) -> &ExpMean01

0x2628 - Mean luminance value of block 01

source

pub fn exp_mean_11(&self) -> &ExpMean11

0x262c - Mean luminance value of block 11

source

pub fn exp_mean_21(&self) -> &ExpMean21

0x2630 - Mean luminance value of block 21

source

pub fn exp_mean_31(&self) -> &ExpMean31

0x2634 - Mean luminance value of block 31

source

pub fn exp_mean_41(&self) -> &ExpMean41

0x2638 - Mean luminance value of block 41

source

pub fn exp_mean_02(&self) -> &ExpMean02

0x263c - Mean luminance value of block 02

source

pub fn exp_mean_12(&self) -> &ExpMean12

0x2640 - Mean luminance value of block 12

source

pub fn exp_mean_22(&self) -> &ExpMean22

0x2644 - Mean luminance value of block 22

source

pub fn exp_mean_32(&self) -> &ExpMean32

0x2648 - Mean luminance value of block 32

source

pub fn exp_mean_42(&self) -> &ExpMean42

0x264c - Mean luminance value of block 42

source

pub fn exp_mean_03(&self) -> &ExpMean03

0x2650 - Mean luminance value of block 03

source

pub fn exp_mean_13(&self) -> &ExpMean13

0x2654 - Mean luminance value of block 13

source

pub fn exp_mean_23(&self) -> &ExpMean23

0x2658 - Mean luminance value of block 23

source

pub fn exp_mean_33(&self) -> &ExpMean33

0x265c - Mean luminance value of block 33

source

pub fn exp_mean_43(&self) -> &ExpMean43

0x2660 - Mean luminance value of block 43

source

pub fn exp_mean_04(&self) -> &ExpMean04

0x2664 - Mean luminance value of block 04

source

pub fn exp_mean_14(&self) -> &ExpMean14

0x2668 - Mean luminance value of block 14

source

pub fn exp_mean_24(&self) -> &ExpMean24

0x266c - Mean luminance value of block 24

source

pub fn exp_mean_34(&self) -> &ExpMean34

0x2670 - Mean luminance value of block 34

source

pub fn exp_mean_44(&self) -> &ExpMean44

0x2674 - Mean luminance value of block 44

source

pub fn bls_ctrl(&self) -> &BlsCtrl

0x2700 - global control register

source

pub fn bls_samples(&self) -> &BlsSamples

0x2704 - samples register

source

pub fn bls_h1_start(&self) -> &BlsH1Start

0x2708 - window 1 horizontal start

source

pub fn bls_h1_stop(&self) -> &BlsH1Stop

0x270c - window 1 horizontal stop

source

pub fn bls_v1_start(&self) -> &BlsV1Start

0x2710 - window 1 vertical start

source

pub fn bls_v1_stop(&self) -> &BlsV1Stop

0x2714 - window 1 vertical stop

source

pub fn bls_h2_start(&self) -> &BlsH2Start

0x2718 - window 2 horizontal start

source

pub fn bls_h2_stop(&self) -> &BlsH2Stop

0x271c - window 2 horizontal stop

source

pub fn bls_v2_start(&self) -> &BlsV2Start

0x2720 - window 2 vertical start

source

pub fn bls_v2_stop(&self) -> &BlsV2Stop

0x2724 - window 2 vertical stop

source

pub fn bls_a_fixed(&self) -> &BlsAFixed

0x2728 - fixed black level A

source

pub fn bls_b_fixed(&self) -> &BlsBFixed

0x272c - fixed black level B

source

pub fn bls_c_fixed(&self) -> &BlsCFixed

0x2730 - fixed black level C

source

pub fn bls_d_fixed(&self) -> &BlsDFixed

0x2734 - fixed black level D

source

pub fn bls_a_measured(&self) -> &BlsAMeasured

0x2738 - measured black level A

source

pub fn bls_b_measured(&self) -> &BlsBMeasured

0x273c - measured black level B

source

pub fn bls_c_measured(&self) -> &BlsCMeasured

0x2740 - measured black level C

source

pub fn bls_d_measured(&self) -> &BlsDMeasured

0x2744 - measured black level D

source

pub fn dpf_mode(&self) -> &DpfMode

0x2800 - Mode control for Denoising Pre-Filter block

source

pub fn dpf_strength_r(&self) -> &DpfStrengthR

0x2804 - filter strength of the RED filter

source

pub fn dpf_strength_g(&self) -> &DpfStrengthG

0x2808 - filter strength of the GREEN filter

source

pub fn dpf_strength_b(&self) -> &DpfStrengthB

0x280c - filter strength of the BLUE filter

source

pub fn dpf_s_weight_g_1_4(&self) -> &DpfSWeightG1_4

0x2810 - Spatial Weights green channel 1 2 3 4

Note: The value zero (0/16) disables the filter tap

source

pub fn dpf_s_weight_g_5_6(&self) -> &DpfSWeightG5_6

0x2814 - Spatial Weights green channel 5 6

Note: The value zero (0/16) disables the filter tap.

source

pub fn dpf_s_weight_rb_1_4(&self) -> &DpfSWeightRb1_4

0x2818 - Spatial Weights red/blue channels 1 2 3 4

Note: The value zero (0/16) disables the filter tap.

source

pub fn dpf_s_weight_rb_5_6(&self) -> &DpfSWeightRb5_6

0x281c - Spatial Weights red/blue channels 5 6

Note: The value zero (0/16) disables the filter tap.

source

pub fn dpf_nll_coeff(&self, n: usize) -> &DpfNllCoeff

0x2820..0x2864 - Noise Level Lookup Coefficient n (n=0..16)

source

pub fn dpf_nll_coeff_iter(&self) -> impl Iterator<Item = &DpfNllCoeff>

Iterator for array of: 0x2820..0x2864 - Noise Level Lookup Coefficient n (n=0..16)

source

pub fn dpf_nf_gain_r(&self) -> &DpfNfGainR

0x2864 - noise function gain for red pixels

source

pub fn dpf_nf_gain_gr(&self) -> &DpfNfGainGr

0x2868 - noise function gain for green in red pixels

source

pub fn dpf_nf_gain_gb(&self) -> &DpfNfGainGb

0x286c - noise function gain for green in blue pixels

source

pub fn dpf_nf_gain_b(&self) -> &DpfNfGainB

0x2870 - noise function gain for blue pixels

source

pub fn dpcc_mode(&self) -> &DpccMode

0x2900 - Mode control for DPCC detection unit

source

pub fn dpcc_output_mode(&self) -> &DpccOutputMode

0x2904 - Interpolation mode for correction unit

source

pub fn dpcc_set_use(&self) -> &DpccSetUse

0x2908 - DPCC methods set usage for detection

Note: methods sets can be used in parallel for each stage and the result is the logical OR

of all selected sets

source

pub fn dpcc_methods_set_1(&self) -> &DpccMethodsSet1

0x290c - Methods enable bits for SET_1

Note: different methods can be used in parallel, the result is the logical AND of all selected

methods

source

pub fn dpcc_methods_set_2(&self) -> &DpccMethodsSet2

0x2910 - Methods enable bits for SET_2

Note: different methods can be used in parallel, the result is the logical AND of all selected

methods

source

pub fn dpcc_methods_set_3(&self) -> &DpccMethodsSet3

0x2914 - Methods enable bits for SET_3

Note: different methods can be used in parallel, the result is the logical AND of all selected

methods

source

pub fn dpcc_line_thresh_1(&self) -> &DpccLineThresh1

0x2918 - Line threshold SET_1

Note: all values are unsigned integer

source

pub fn dpcc_line_mad_fac_1(&self) -> &DpccLineMadFac1

0x291c - Mean Absolute Difference (MAD) factor for Line check set 1

Note: all values are unsigned integer

source

pub fn dpcc_pg_fac_1(&self) -> &DpccPgFac1

0x2920 - Peak gradient factor for set 1

Note: all values are unsigned integer

source

pub fn dpcc_rnd_thresh_1(&self) -> &DpccRndThresh1

0x2924 - Rank Neighbor Difference threshold for set 1

Note: all values are unsigned integer

source

pub fn dpcc_rg_fac_1(&self) -> &DpccRgFac1

0x2928 - Rank gradient factor for set 1

Note: all values are unsigned integer

source

pub fn dpcc_line_thresh_2(&self) -> &DpccLineThresh2

0x292c - Line threshold set 2

Note: all values are unsigned integer

source

pub fn dpcc_line_mad_fac_2(&self) -> &DpccLineMadFac2

0x2930 - Mean Absolute Difference (MAD) factor for Line check set 2

Note: all values are unsigned integer

source

pub fn dpcc_pg_fac_2(&self) -> &DpccPgFac2

0x2934 - Peak gradient factor for set 2

Note: all values are unsigned integer

source

pub fn dpcc_rnd_thresh_2(&self) -> &DpccRndThresh2

0x2938 - Rank Neighbor Difference threshold for set 2

Note: all values are unsigned integer

source

pub fn dpcc_rg_fac_2(&self) -> &DpccRgFac2

0x293c - Rank gradient factor for set 2

Note: all values are unsigned integer

source

pub fn dpcc_line_thresh_3(&self) -> &DpccLineThresh3

0x2940 - Line threshold set 3

Note: all values are unsigned integer

source

pub fn dpcc_line_mad_fac_3(&self) -> &DpccLineMadFac3

0x2944 - Mean Absolute Difference (MAD) factor for Line check set 3

Note: all values are unsigned integer

source

pub fn dpcc_pg_fac_3(&self) -> &DpccPgFac3

0x2948 - Peak gradient factor for set 3

Note: all values are unsigned integer

source

pub fn dpcc_rnd_thresh_3(&self) -> &DpccRndThresh3

0x294c - Rank Neighbor Difference threshold for set 3

Note: all values are unsigned integer

source

pub fn dpcc_rg_fac_3(&self) -> &DpccRgFac3

0x2950 - Rank gradient factor for set 3

Note: all values are unsigned integer

source

pub fn dpcc_ro_limits(&self) -> &DpccRoLimits

0x2954 - Rank Order Limits

Note: all values are unsigned integer

source

pub fn dpcc_rnd_offs(&self) -> &DpccRndOffs

0x2958 - Differential Rank Offsets for Rank Neighbor Difference

Note: all values are unsigned integer

source

pub fn dpcc_bpt_ctrl(&self) -> &DpccBptCtrl

0x295c - bad pixel table settings

Note: This register controls the behaviour of the table based bad pixel correction module.

It can be switched on and off independently of the DPCC detection and correction block.

Different correction algorithms for the table based correction are available and are defined by

this register. The default setting after reset enables a correction algorithm with most accurate

correlation to surrounding pixels. Detection for the table based correction can be configured

independently from the on-the-fly DPCC detection scheme.

source

pub fn dpcc_bpt_number(&self) -> &DpccBptNumber

0x2960 - Number of entries for bad pixel table (table based correction)

Note: bit width of bp_number depends on size of BP RAM which is defined during chip

synthesis

source

pub fn dpcc_bpt_addr(&self) -> &DpccBptAddr

0x2964 - TABLE Start Address for table-based correction algorithm

Note: MKOE tbc: Orignial register mode was rwh which is no longer supported with new

version of SIG

-> rwhh

source

pub fn dpcc_bpt_data(&self) -> &DpccBptData

0x2968 - TABLE DATA register for read and write access of table RAM

Note: MKOE tbc: Orignial register mode was rwh which is no longer supported with new

version of SIG

-> rwhh

The programmed table value is immediately written into the RAM. The RAM address is

generated per auto-increment. The parameter RAMs for Lens Shade Correction and Bad

Pixel Correction can only be programmed, if the RGB Bayer path is switched on via ISP_CTRL

source

pub fn wdr_ctrl(&self) -> &WdrCtrl

0x2a00 - Control Bits for Wide Dynamic Range Unit

source

pub fn wdr_tonecurve_1(&self) -> &WdrTonecurve1

0x2a04 - Tone Curve sample points dYn definition (part 1)

Note: The interval widths dYn are to be defined in a 2^(value+3) notation, where

‘value’ has to be written to the register. So the steps would be

dYn=0 -> 8 (2^3), dYn=1 -> 16 (2^4), dYn=2

-> 32 (2^5),… dYn=6 -> 512 (2^9), dYn=7 ->

1024 (2^10).

source

pub fn wdr_tonecurve_2(&self) -> &WdrTonecurve2

0x2a08 - Tone Curve sample points dYn definition (part 2)

Note: The interval widths dYn are to be defined in a 2^(value+3) notation, where

‘value’ has to be written to the register. So the steps would be

dYn=0 -> 8 (2^3), dYn=1 -> 16 (2^4), dYn=2

-> 32 (2^5),… dYn=6 -> 512 (2^9), dYn=7 ->

1024 (2^10).

source

pub fn wdr_tonecurve_3(&self) -> &WdrTonecurve3

0x2a0c - Tone Curve sample points dYn definition (part 3)

Note: The interval widths dYn are to be defined in a 2^(value+3) notation, where

‘value’ has to be written to the register. So the steps would be

dYn=0 -> 8 (2^3), dYn=1 -> 16 (2^4), dYn=2

-> 32 (2^5),… dYn=6 -> 512 (2^9), dYn=7 ->

1024 (2^10).

source

pub fn wdr_tonecurve_4(&self) -> &WdrTonecurve4

0x2a10 - Tone Curve sample points dYn definition (part 4)

Note: The interval widths dYn are to be defined in a 2^(value+3) notation, where ‘value’

has to be written to the register. So the steps would be

dYn=0 -> 8 (2^3), dYn=1 -> 16 (2^4), dYn=2 -> 32 (2^5),… dYn=6 -> 512 (2^9),

dYn=7 -> 1024 (2^10).

source

pub fn wdr_tonecurve_ym(&self, n: usize) -> &WdrTonecurveYm

0x2a14..0x2a98 - Tonemapping curve coefficient Ym_ n (n=0..32)

Note: The reset values define a linear curve which has the same effect as bypass. Reset

values are: Ym_00 = 0x0000, Ym_01 = 0x0080, Ym_02 = 0x0100, Ym_03 = 0x0180, Ym_04

= 0x0200,

Ym_05 = 0x0280, Ym_06 = 0x0300, Ym_07 = 0x0380, Ym_08 = 0x0400, Ym_09 =

0x0480, Ym_10 = 0x0500, Ym_11 = 0x0580, Ym_12 = 0x0600, Ym_13 = 0x0680, Ym_14 =

0x0700, Ym_15 = 0x0780, Ym_16 = 0x0800, Ym_17 = 0x0880, Ym_18 = 0x0900, Ym_19 =

0x0980, Ym_20 = 0x0A00, Ym_21 = 0x0A80, Ym_22 = 0x0B00, Ym_23 = 0x0B80, Ym_24 =

0x0C00, Ym_25 = 0x0C80, Ym_26 = 0x0D00, Ym_27 = 0x0D80, Ym_28 = 0x0E00, Ym_29 =

0x0E80, Ym_30 = 0x0F00, Ym_31 = 0x0F80, Ym_32 = 0x1000

Data format: 13 bit unsigned

RESTRICTION: each Y must be in the +2047/-2048 range compared to its predecessor (so

that the difference between successive Y values is 12-bit signed !)

source

pub fn wdr_tonecurve_ym_iter(&self) -> impl Iterator<Item = &WdrTonecurveYm>

Iterator for array of: 0x2a14..0x2a98 - Tonemapping curve coefficient Ym_ n (n=0..32)

Note: The reset values define a linear curve which has the same effect as bypass. Reset

values are: Ym_00 = 0x0000, Ym_01 = 0x0080, Ym_02 = 0x0100, Ym_03 = 0x0180, Ym_04

= 0x0200,

Ym_05 = 0x0280, Ym_06 = 0x0300, Ym_07 = 0x0380, Ym_08 = 0x0400, Ym_09 =

0x0480, Ym_10 = 0x0500, Ym_11 = 0x0580, Ym_12 = 0x0600, Ym_13 = 0x0680, Ym_14 =

0x0700, Ym_15 = 0x0780, Ym_16 = 0x0800, Ym_17 = 0x0880, Ym_18 = 0x0900, Ym_19 =

0x0980, Ym_20 = 0x0A00, Ym_21 = 0x0A80, Ym_22 = 0x0B00, Ym_23 = 0x0B80, Ym_24 =

0x0C00, Ym_25 = 0x0C80, Ym_26 = 0x0D00, Ym_27 = 0x0D80, Ym_28 = 0x0E00, Ym_29 =

0x0E80, Ym_30 = 0x0F00, Ym_31 = 0x0F80, Ym_32 = 0x1000

Data format: 13 bit unsigned

RESTRICTION: each Y must be in the +2047/-2048 range compared to its predecessor (so

that the difference between successive Y values is 12-bit signed !)

source

pub fn wdr_offset(&self) -> &WdrOffset

0x2a98 - Offset values for RGB path

source

pub fn wdr_deltamin(&self) -> &WdrDeltamin

0x2a9c - DeltaMin Threshold and Strength factor

source

pub fn wdr_tonecurve_1_shd(&self) -> &WdrTonecurve1Shd

0x2aa0 - Tone Curve sample points dYn definition shadow register (part 1)

Note: see register ISP_WDR_TONECURVE_1.

source

pub fn wdr_tonecurve_2_shd(&self) -> &WdrTonecurve2Shd

0x2aa4 - Tone Curve sample points dYn definition shadow register (part 2)

Note: see register ISP_WDR_TONECURVE_2.

source

pub fn wdr_tonecurve_3_shd(&self) -> &WdrTonecurve3Shd

0x2aa8 - Tone Curve sample points dYn definition shadow register (part 3)

Note: see register ISP_WDR_TONECURVE_3.

source

pub fn wdr_tonecurve_4_shd(&self) -> &WdrTonecurve4Shd

0x2aac - Tone Curve sample points dYn definition shadow register(part 4)

Note: see register ISP_WDR_TONECURVE_4.

source

pub fn wdr_tonecurve_ym_shd(&self, n: usize) -> &WdrTonecurveYmShd

0x2ab0..0x2b34 - Tonemapping curve coefficient shadow register n (n=0..32)

Note: The reset values define a linear curve which has the same effect as bypass. Reset

values are: Ym_00 = 0x0000, Ym_01 = 0x0080, Ym_02 = 0x0100, Ym_03 = 0x0180, Ym_04

= 0x0200,

Ym_05 = 0x0280, Ym_06 = 0x0300, Ym_07 = 0x0380, Ym_08 = 0x0400, Ym_09 =

0x0480, Ym_10 = 0x0500, Ym_11 = 0x0580, Ym_12 = 0x0600, Ym_13 = 0x0680, Ym_14 =

0x0700, Ym_15 = 0x0780, Ym_16 = 0x0800, Ym_17 = 0x0880, Ym_18 = 0x0900, Ym_19 =

0x0980, Ym_20 = 0x0A00, Ym_21 = 0x0A80, Ym_22 = 0x0B00, Ym_23 = 0x0B80, Ym_24 =

0x0C00, Ym_25 = 0x0C80, Ym_26 = 0x0D00, Ym_27 = 0x0D80, Ym_28 = 0x0E00, Ym_29 =

0x0E80, Ym_30 = 0x0F00, Ym_31 = 0x0F80, Ym_32 = 0x1000

Data format: 13 bit unsigned

RESTRICTION: each Y must be in the +2047/-2048 range compared to its predecessor (so

that the difference between successive Y values is 12-bit signed !)

source

pub fn wdr_tonecurve_ym_shd_iter( &self ) -> impl Iterator<Item = &WdrTonecurveYmShd>

Iterator for array of: 0x2ab0..0x2b34 - Tonemapping curve coefficient shadow register n (n=0..32)

Note: The reset values define a linear curve which has the same effect as bypass. Reset

values are: Ym_00 = 0x0000, Ym_01 = 0x0080, Ym_02 = 0x0100, Ym_03 = 0x0180, Ym_04

= 0x0200,

Ym_05 = 0x0280, Ym_06 = 0x0300, Ym_07 = 0x0380, Ym_08 = 0x0400, Ym_09 =

0x0480, Ym_10 = 0x0500, Ym_11 = 0x0580, Ym_12 = 0x0600, Ym_13 = 0x0680, Ym_14 =

0x0700, Ym_15 = 0x0780, Ym_16 = 0x0800, Ym_17 = 0x0880, Ym_18 = 0x0900, Ym_19 =

0x0980, Ym_20 = 0x0A00, Ym_21 = 0x0A80, Ym_22 = 0x0B00, Ym_23 = 0x0B80, Ym_24 =

0x0C00, Ym_25 = 0x0C80, Ym_26 = 0x0D00, Ym_27 = 0x0D80, Ym_28 = 0x0E00, Ym_29 =

0x0E80, Ym_30 = 0x0F00, Ym_31 = 0x0F80, Ym_32 = 0x1000

Data format: 13 bit unsigned

RESTRICTION: each Y must be in the +2047/-2048 range compared to its predecessor (so

that the difference between successive Y values is 12-bit signed !)

source

pub fn vsm_mode(&self) -> &VsmMode

0x2f00 - VS Measure Mode

source

pub fn vsm_h_offs(&self) -> &VsmHOffs

0x2f04 - VSM window horizontal offset

source

pub fn vsm_v_offs(&self) -> &VsmVOffs

0x2f08 - VSM window vertical offset

source

pub fn vsm_h_size(&self) -> &VsmHSize

0x2f0c - Horizontal measure window size

Note: only even values are allowed: vsm_h_size[0] not writable and read returns 0.

source

pub fn vsm_v_size(&self) -> &VsmVSize

0x2f10 - Vertical measure window size

Note: only even values are allowed: vsm_v_size[0] not writable and read returns 0.

source

pub fn vsm_h_segments(&self) -> &VsmHSegments

0x2f14 - Iteration 1 horizontal segments

Note: number of 1st iteration sample points = vsm_h_segments + 1

source

pub fn vsm_v_segments(&self) -> &VsmVSegments

0x2f18 - Iteration 1 vertical segments

Note: number of 1st iteration sample points = vsm_v_segments + 1

source

pub fn vsm_delta_h(&self) -> &VsmDeltaH

0x2f1c - estimated horizontal displacement

Trait Implementations§

source§

impl Debug for Isp1

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Deref for Isp1

§

type Target = RegisterBlock

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl Send for Isp1

Auto Trait Implementations§

§

impl Freeze for Isp1

§

impl RefUnwindSafe for Isp1

§

impl !Sync for Isp1

§

impl Unpin for Isp1

§

impl UnwindSafe for Isp1

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.