Skip to content

Commit 19d0440

Browse files
committed
drivers: video: gc2145: Fix output format.
- Fix analog mode register address. - Fix output format register update. Signed-off-by: Ibrahim Abdalkader <[email protected]>
1 parent 5db74f2 commit 19d0440

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

drivers/video/gc2145.c

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ LOG_MODULE_REGISTER(video_gc2145, CONFIG_VIDEO_LOG_LEVEL);
2020
#define GC2145_AMODE1_WINDOW_MASK 0xFC
2121
#define GC2145_REG_AMODE1_DEF 0x14
2222
#define GC2145_REG_OUTPUT_FMT 0x84
23+
#define GC2145_REG_OUTPUT_FMT_MASK 0x1F
2324
#define GC2145_REG_OUTPUT_FMT_RGB565 0x06
2425
#define GC2145_REG_OUTPUT_FMT_YCBYCR 0x02
2526
#define GC2145_REG_SYNC_MODE 0x86
@@ -80,8 +81,8 @@ static const struct gc2145_reg default_regs[] = {
8081
{0x9a, 0x0E}, /* Subsample mode */
8182

8283
{0x12, 0x2e},
83-
{GC2145_REG_OUTPUT_FMT, 0x14}, /* Analog Mode 1 (vflip/mirror[1:0]) */
84-
{0x18, 0x22}, /* Analog Mode 2 */
84+
{0x17, 0x14}, /* Analog Mode 1 (vflip/mirror[1:0]) */
85+
{0x18, 0x22}, /* Analog Mode 2 */
8586
{0x19, 0x0e},
8687
{0x1a, 0x01},
8788
{0x1b, 0x4b},
@@ -891,6 +892,7 @@ static int gc2145_set_window(const struct device *dev, uint16_t reg, uint16_t x,
891892
static int gc2145_set_output_format(const struct device *dev, int output_format)
892893
{
893894
int ret;
895+
uint8_t old_value;
894896
const struct gc2145_config *cfg = dev->config;
895897

896898
ret = gc2145_write_reg(&cfg->i2c, GC2145_REG_RESET, GC2145_SET_P0_REGS);
@@ -908,7 +910,13 @@ static int gc2145_set_output_format(const struct device *dev, int output_format)
908910
return -ENOTSUP;
909911
}
910912

911-
ret = gc2145_write_reg(&cfg->i2c, GC2145_REG_OUTPUT_FMT, output_format);
913+
ret = gc2145_read_reg(&cfg->i2c, GC2145_REG_OUTPUT_FMT, &old_value);
914+
if (ret < 0) {
915+
return ret;
916+
}
917+
918+
ret = gc2145_write_reg(&cfg->i2c, GC2145_REG_OUTPUT_FMT,
919+
(old_value & ~GC2145_REG_OUTPUT_FMT_MASK) | output_format);
912920
if (ret < 0) {
913921
return ret;
914922
}

0 commit comments

Comments
 (0)