Skip to content

# 2.7. MIPI TX 显示适配

MIPI TX的显示功能，由于IDU-TX功能本身为SOC内部功能，因此该部分主要为Serial通路的验证，一般可基于RX-TX的loopback case进行验证。

目前对于此类无sensor的loopback场景，通过一个dummy的sensor库实现：

- 源码位于: hbre/camsys/libcam/src/sensor/dummy/dummy_utility.c

- 配置位于: hbre/camsys/libcam/src/sensor/dummy/inc/max9296_setting.h

目前已支持的loopback场景有: MAX9295A/E->MAX9296;

其中MAX9295E->MAX9296的配置示例: config_index=0(MAX_CONFIG_AUTO_AOB_VC0)

- 加串配置: max9295e_dummy_A2Y_B2Z_init_setting

    uint8_t max9295e_dummy_A2Y_B2Z_init_setting[] = {
    0x04, 0x80, 0x00, 0x10, 0xF0, // Link Mode: Auto.
    0x00, 0x64,
    0x04, 0x80, 0x00, 0x02, 0x63, // Enable pipes Y Z
    0x04, 0x80, 0x03, 0x30, 0x86, // CSI enable: PORTA+PORTB
    0x04, 0x80, 0x03, 0x08, 0x7C, // Pipes X Y pull clock from port A, Z U
    pull clock from port B
    0x04, 0x80, 0x03, 0x11, 0xC3, // Pipes X Y pull data from port A, Z U
    pull data from port B

    0x04, 0x80, 0x03, 0x0B, 0x01, // Pipe Y pulls VC0
    0x04, 0x80, 0x03, 0x0C, 0x00,
    0x04, 0x80, 0x03, 0x16, 0x6C, // Pipe Y pulls RAW12(DT 0x2C)
    0x04, 0x80, 0x03, 0x17, 0x5E, // Pipe Y pulls YUV422(DT 0x1E)

    0x04, 0x80, 0x03, 0x0D, 0x01, // Pipe Z pulls VC0
    0x04, 0x80, 0x03, 0x0E, 0x00,
    0x04, 0x80, 0x03, 0x18, 0x6C, // Pipe Z pulls RAW12(DT 0x2C)
    0x04, 0x80, 0x03, 0x19, 0x5E, // Pipe Z pulls YUV422(DT 0x1E)
    };

- 解串配置: max9296_dummy_YZ2VC0_init_setting

    uint8_t max9296_dummy_YZ2VC0_init_setting[] = {
    // MAX9296A Setup
    0x04, 0x90, 0x03, 0x13, 0x60, // mipi csi out disable
    0x04, 0x90, 0x03, 0x30, 0x04, // 2x4 mode
    0x04, 0x90, 0x04, 0x4A, 0xD0, // 4 lanes on port A

    0x04, 0x90, 0x03, 0x20, 0x2F, // 1500Mbps/lane on port A
    0x04, 0x90, 0x03, 0x23, 0x2F,
    0x04, 0x90, 0x03, 0x25, 0x80,

    // pipi Y default to dphy1.

    0x04, 0x90, 0x04, 0x8B, 0x0F, // Enable 4 mappings for Pipe Z
    0x04, 0x90, 0x04, 0x8D, 0x2C, // Map RAW12, VC0
    0x04, 0x90, 0x04, 0x8E, 0x2C,
    0x04, 0x90, 0x04, 0x8F, 0x1E, // Map YUV422, VC0
    0x04, 0x90, 0x04, 0x90, 0x1E,
    0x04, 0x90, 0x04, 0x91, 0x00, // Map frame start, VC0
    0x04, 0x90, 0x04, 0x92, 0x00,
    0x04, 0x90, 0x04, 0x93, 0x01, // Map frame end, VC0
    0x04, 0x90, 0x04, 0x94, 0x01,
    0x04, 0x90, 0x04, 0xAD, 0x55, // Pipe Z to dphy1.
    };

若为MAX9295A，可配置: config_index=9(MAX_CONFIG_9295A_VC0)

若有其他新的加串器接入使用，可参考dummy库的实现，增加相应的SerDes的loopback场景配置支持，之后增加相应case即可验证TX显示通路。