About "MIPI CSI2 YUV422 8-bit data type" support

Hi Sir,

Check the Jetson Orin Nano Series Modules Data Sheet . See the following statement in “2.5.1 MIPI Camera Serial Interface (CSI)”:

Supported input data formats:
• RGB: RGB888, RGB666, RGB565, RGB555, RGB444
• YUV: YUV420-8b (legacy), YUV420-8b
• RAW: RAW6, RAW7, RAW8, RAW10, RAW12, RAW14, RAW16,

Miss the “YUV422 8-bit”

Does the Jetson Orin Nano support YUV422 8-bit ? Or just typo ?

Right should be YUV422-8 bits instead of YUV420.

Thanks

I know that YUV420 also is as the data type in MIPI CSI2 spec.

YUV420 also should be supported by Orin Nano platform, right ?

Yes, the HW spec support that,.
However, current driver only support YUV422-8bit.

Hi Sir,

“current driver only support YUV422-8bit.” mean that YUV420 are not listed in vi5_video_formats (nvidia-oot\drivers\media\platform\tegra\camera\vi\vi5_formats.h), right?

If add the “YUV420” configurations in vi5_video_formats, the driver will support YUV420, right ?

static const struct tegra_video_format vi5_video_formats[] = {
	/* RAW 6: TODO */

	/* RAW 7: TODO */

	/* RAW 8 */
	TEGRA_VIDEO_FORMAT(RAW8, 8, SRGGB8_1X8, 1, 1, T_R8,
				RAW8, SRGGB8, "RGRG.. GBGB.."),
	TEGRA_VIDEO_FORMAT(RAW8, 8, SGRBG8_1X8, 1, 1, T_R8,
				RAW8, SGRBG8, "GRGR.. BGBG.."),
	TEGRA_VIDEO_FORMAT(RAW8, 8, SGBRG8_1X8, 1, 1, T_R8,
				RAW8, SGBRG8, "GBGB.. RGRG.."),
	TEGRA_VIDEO_FORMAT(RAW8, 8, SBGGR8_1X8, 1, 1, T_R8,
				RAW8, SBGGR8, "BGBG.. GRGR.."),

	/* RAW 10 */
	TEGRA_VIDEO_FORMAT(RAW10, 10, SRGGB10_1X10, 2, 1, T_R16,
				RAW10, SRGGB10, "RGRG.. GBGB.."),
	TEGRA_VIDEO_FORMAT(RAW10, 10, SGRBG10_1X10, 2, 1, T_R16,
				RAW10, SGRBG10, "GRGR.. BGBG.."),
	TEGRA_VIDEO_FORMAT(RAW10, 10, SGBRG10_1X10, 2, 1, T_R16,
				RAW10, SGBRG10, "GBGB.. RGRG.."),
	TEGRA_VIDEO_FORMAT(RAW10, 10, SBGGR10_1X10, 2, 1, T_R16,
				RAW10, SBGGR10, "BGBG.. GRGR.."),

	/* RAW 12 */
	TEGRA_VIDEO_FORMAT(RAW12, 12, SRGGB12_1X12, 2, 1, T_R16,
				RAW12, SRGGB12, "RGRG.. GBGB.."),
	TEGRA_VIDEO_FORMAT(RAW12, 12, SGRBG12_1X12, 2, 1, T_R16,
				RAW12, SGRBG12, "GRGR.. BGBG.."),
	TEGRA_VIDEO_FORMAT(RAW12, 12, SGBRG12_1X12, 2, 1, T_R16,
				RAW12, SGBRG12, "GBGB.. RGRG.."),
	TEGRA_VIDEO_FORMAT(RAW12, 12, SBGGR12_1X12, 2, 1, T_R16,
				RAW12, SBGGR12, "BGBG.. GRGR.."),

	/* RGB888 */
	TEGRA_VIDEO_FORMAT(RGB888, 24, RGB888_1X24, 4, 1, T_A8R8G8B8,
				RGB888, RGBA32, "RGBA-8-8-8-8"),
	TEGRA_VIDEO_FORMAT(RGB888, 24, RGB888_1X32_PADHI, 4, 1, T_A8B8G8R8,
				RGB888, RGB32, "RGB-8-8-8-8"),

	/* YUV422 */
	TEGRA_VIDEO_FORMAT(YUV422, 16, UYVY8_1X16, 2, 1, T_U8_Y8__V8_Y8,
				YUV422_8, UYVY, "YUV 4:2:2"),
	TEGRA_VIDEO_FORMAT(YUV422, 16, VYUY8_1X16, 2, 1, T_V8_Y8__U8_Y8,
				YUV422_8, VYUY, "YUV 4:2:2"),
	TEGRA_VIDEO_FORMAT(YUV422, 16, YUYV8_1X16, 2, 1, T_Y8_U8__Y8_V8,
				YUV422_8, YUYV, "YUV 4:2:2"),
	TEGRA_VIDEO_FORMAT(YUV422, 16, YVYU8_1X16, 2, 1, T_Y8_V8__Y8_U8,
				YUV422_8, YVYU, "YUV 4:2:2"),
	TEGRA_VIDEO_FORMAT(YUV422, 16, UYVY8_1X16, 1, 1, T_Y8__V8U8_N422,
				YUV422_8, NV16, "NV16"),
	TEGRA_VIDEO_FORMAT(YUV422, 16, UYVY8_2X8, 2, 1, T_U8_Y8__V8_Y8,
				YUV422_8, UYVY, "YUV 4:2:2 UYVY"),
	TEGRA_VIDEO_FORMAT(YUV422, 16, VYUY8_2X8, 2, 1, T_V8_Y8__U8_Y8,
				YUV422_8, VYUY, "YUV 4:2:2 VYUY"),
	TEGRA_VIDEO_FORMAT(YUV422, 16, YUYV8_2X8, 2, 1, T_Y8_U8__Y8_V8,
				YUV422_8, YUYV, "YUV 4:2:2 YUYV"),
	TEGRA_VIDEO_FORMAT(YUV422, 16, YVYU8_2X8, 2, 1, T_Y8_V8__Y8_U8,
				YUV422_8, YVYU, "YUV 4:2:2 YVYU"),
};

Yes, suppose you can add it by modify the kernel driver.

Thanks