diff options
author | Gedare Bloom <gedare@rtems.org> | 2011-11-27 17:33:00 +0000 |
---|---|---|
committer | Gedare Bloom <gedare@rtems.org> | 2011-11-27 17:33:00 +0000 |
commit | 267357adba5b2b2b48abc2d7f39e20b07651aafc (patch) | |
tree | d419409dc1a8c61c85fde4010098474bd2422b9b /c/src/lib/libbsp/lm32/shared/milkymist_video/video.c | |
parent | 2011-11-27 Sebastien Bourdeauducq <seb@tmplab.org> (diff) | |
download | rtems-267357adba5b2b2b48abc2d7f39e20b07651aafc.tar.bz2 |
2011-11-27 Sebastien Bourdeauducq <seb@tmplab.org>
PR 1972/bsps
* milkymist_video/milkymist_video.h, milkymist_video/video.c: Adds an
ioctl to implement selection of composite on any connector, S-Video
and Component sources on the Milkymist One.
Diffstat (limited to '')
-rw-r--r-- | c/src/lib/libbsp/lm32/shared/milkymist_video/video.c | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/c/src/lib/libbsp/lm32/shared/milkymist_video/video.c b/c/src/lib/libbsp/lm32/shared/milkymist_video/video.c index d8d706baaf..6d06f91a99 100644 --- a/c/src/lib/libbsp/lm32/shared/milkymist_video/video.c +++ b/c/src/lib/libbsp/lm32/shared/milkymist_video/video.c @@ -267,6 +267,37 @@ static void invalidate_caches(void) ); } +static void set_format(int format) +{ + switch(format) { + case VIDEO_FORMAT_CVBS6: + write_reg(0x00, 0x00); + write_reg(0xc3, 0x05); + write_reg(0xc4, 0x80); + break; + case VIDEO_FORMAT_CVBS5: + write_reg(0x00, 0x00); + write_reg(0xc3, 0x0d); + write_reg(0xc4, 0x80); + break; + case VIDEO_FORMAT_CVBS4: + write_reg(0x00, 0x00); + write_reg(0xc3, 0x04); + write_reg(0xc4, 0x80); + break; + case VIDEO_FORMAT_SVIDEO: + write_reg(0x00, 0x06); + write_reg(0xc3, 0xd5); + write_reg(0xc4, 0x80); + break; + case VIDEO_FORMAT_COMPONENT: + write_reg(0x00, 0x09); + write_reg(0xc3, 0x45); + write_reg(0xc4, 0x8d); + break; + } +} + rtems_device_driver video_control( rtems_device_major_number major, rtems_device_minor_number minor, @@ -333,7 +364,7 @@ rtems_device_driver video_control( break; case VIDEO_SET_REGISTER: - write_reg(((unsigned int )a & 0xffff0000) >> 16, + write_reg(((unsigned int)a & 0xffff0000) >> 16, (unsigned int)a & 0x0000ffff); sc = RTEMS_SUCCESSFUL; break; @@ -342,6 +373,11 @@ rtems_device_driver video_control( sc = RTEMS_SUCCESSFUL; break; + case VIDEO_SET_FORMAT: + set_format((int)a); + sc = RTEMS_SUCCESSFUL; + break; + default: sc = RTEMS_UNSATISFIED; break; |