Commit b567bf86 authored by Eugen Hristev's avatar Eugen Hristev Committed by Mauro Carvalho Chehab

media: atmel: atmel-isi: add support for mono sensors, GRAY and Y16

This adds support for GREY and Y16 formats, based on Y10 mbus codes.
Y16 needs to go through preview path in the ISI, with 2 pixels per word,
and it fits the Y16 format. The ISI data lines need to be MSB aligned with
the sensor data lines.
GREY format in 8 bits per pixel is done by dropping the 2 LSB bits
from the Y10 format, and packed as 4 pixels per word.
Suggested-by: default avatarWenyou Yang <wenyou.yang@microchip.com>
Signed-off-by: default avatarEugen Hristev <eugen.hristev@microchip.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent 374d968a
...@@ -148,7 +148,8 @@ static void configure_geometry(struct atmel_isi *isi) ...@@ -148,7 +148,8 @@ static void configure_geometry(struct atmel_isi *isi)
u32 fourcc = isi->current_fmt->fourcc; u32 fourcc = isi->current_fmt->fourcc;
isi->enable_preview_path = fourcc == V4L2_PIX_FMT_RGB565 || isi->enable_preview_path = fourcc == V4L2_PIX_FMT_RGB565 ||
fourcc == V4L2_PIX_FMT_RGB32; fourcc == V4L2_PIX_FMT_RGB32 ||
fourcc == V4L2_PIX_FMT_Y16;
/* According to sensor's output format to set cfg2 */ /* According to sensor's output format to set cfg2 */
cfg2 = isi->current_fmt->swap; cfg2 = isi->current_fmt->swap;
...@@ -990,6 +991,16 @@ static const struct isi_format isi_formats[] = { ...@@ -990,6 +991,16 @@ static const struct isi_format isi_formats[] = {
.mbus_code = MEDIA_BUS_FMT_VYUY8_2X8, .mbus_code = MEDIA_BUS_FMT_VYUY8_2X8,
.bpp = 2, .bpp = 2,
.swap = ISI_CFG2_YCC_SWAP_MODE_1, .swap = ISI_CFG2_YCC_SWAP_MODE_1,
}, {
.fourcc = V4L2_PIX_FMT_GREY,
.mbus_code = MEDIA_BUS_FMT_Y10_1X10,
.bpp = 1,
.swap = ISI_CFG2_GS_MODE_2_PIXEL | ISI_CFG2_GRAYSCALE,
}, {
.fourcc = V4L2_PIX_FMT_Y16,
.mbus_code = MEDIA_BUS_FMT_Y10_1X10,
.bpp = 2,
.swap = ISI_CFG2_GS_MODE_2_PIXEL | ISI_CFG2_GRAYSCALE,
}, },
}; };
......
...@@ -62,6 +62,8 @@ ...@@ -62,6 +62,8 @@
#define ISI_CFG1_THMASK_BEATS_16 (2 << 13) #define ISI_CFG1_THMASK_BEATS_16 (2 << 13)
/* Bitfields in CFG2 */ /* Bitfields in CFG2 */
#define ISI_CFG2_GS_MODE_2_PIXEL (0 << 11)
#define ISI_CFG2_GS_MODE_1_PIXEL (1 << 11)
#define ISI_CFG2_GRAYSCALE (1 << 13) #define ISI_CFG2_GRAYSCALE (1 << 13)
#define ISI_CFG2_COL_SPACE_YCbCr (0 << 15) #define ISI_CFG2_COL_SPACE_YCbCr (0 << 15)
#define ISI_CFG2_COL_SPACE_RGB (1 << 15) #define ISI_CFG2_COL_SPACE_RGB (1 << 15)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment