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 | |
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 'c')
-rw-r--r-- | c/src/lib/libbsp/lm32/shared/ChangeLog | 7 | ||||
-rw-r--r-- | c/src/lib/libbsp/lm32/shared/milkymist_video/milkymist_video.h | 12 | ||||
-rw-r--r-- | c/src/lib/libbsp/lm32/shared/milkymist_video/video.c | 38 |
3 files changed, 55 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/lm32/shared/ChangeLog b/c/src/lib/libbsp/lm32/shared/ChangeLog index 6f4b58c35c..ea0f98f8fd 100644 --- a/c/src/lib/libbsp/lm32/shared/ChangeLog +++ b/c/src/lib/libbsp/lm32/shared/ChangeLog @@ -1,5 +1,12 @@ 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. + +2011-11-27 Sebastien Bourdeauducq <seb@tmplab.org> + PR 1970/bsps * milkymist_clock/ckinit.c, milkymist_console/console.c, milkymist_console/uart.c, milkymist_timer/timer.c: Support for the diff --git a/c/src/lib/libbsp/lm32/shared/milkymist_video/milkymist_video.h b/c/src/lib/libbsp/lm32/shared/milkymist_video/milkymist_video.h index 8f8090872c..4929bbaca3 100644 --- a/c/src/lib/libbsp/lm32/shared/milkymist_video/milkymist_video.h +++ b/c/src/lib/libbsp/lm32/shared/milkymist_video/milkymist_video.h @@ -8,7 +8,7 @@ * * $Id$ * - * COPYRIGHT (c) 2010 Sebastien Bourdeauducq + * COPYRIGHT (c) 2010, 2011 Sebastien Bourdeauducq */ #ifndef __MILKYMIST_VIDEO_H_ @@ -33,6 +33,16 @@ extern "C" { #define VIDEO_SET_REGISTER 0x5609 #define VIDEO_GET_REGISTER 0x560a +#define VIDEO_SET_FORMAT 0x560b + +enum { + VIDEO_FORMAT_CVBS6 = 0, + VIDEO_FORMAT_CVBS5, + VIDEO_FORMAT_CVBS4, + VIDEO_FORMAT_SVIDEO, + VIDEO_FORMAT_COMPONENT, +}; + rtems_device_driver video_initialize( rtems_device_major_number major, rtems_device_minor_number minor, 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; |