1: int32_t AG903_ViaMgrSetInputParameter(
AG903_ViaMgrInputHandle *handle, uint32_t format, uint32_t mode)
2: {
3:
4:
if ((handle == NULL) || (handle->id !=
AG903_VIA_MGR_INPUT_HANDLE_ID)) {
5:
return -
AG903_EINVAL;
6: }
7:
8:
9:
switch (format) {
10:
case AG903_VIA_MGR_FORMAT_NTSC_BT:
11:
case AG903_VIA_MGR_FORMAT_NTSC_SQ:
12:
case AG903_VIA_MGR_FORMAT_NTSC_4F:
13:
case AG903_VIA_MGR_FORMAT_PAL_BT:
14:
case AG903_VIA_MGR_FORMAT_PAL_SQ:
15:
break;
16:
default:
17:
return -
AG903_EINVAL;
18: }
19:
20:
21:
switch (mode) {
22:
case AG903_VIA_MGR_MODE_COLOR:
23:
case AG903_VIA_MGR_MODE_MONOCHROME:
24:
break;
25:
default:
26:
return -
AG903_EINVAL;
27: }
28:
29:
VIAPrmParamVIASRCSELECT select;
30: select.gcat = GCAT;
31: select.nsck = ViaMode[mode].nsck;
32: select.nsns = NSNS;
33: select.nons = NONS;
34:
AG903_ViaPrmSetVIASRCSELECT(handle->port_no, &select);
35:
36:
AG903_ViaPrmSetVIASRCFORMAT(handle->port_no, ViaFormat[format].fmt);
37:
AG903_ViaPrmSetVIASRCHCYCLE(handle->port_no, ViaFormat[format].hcycle);
38:
AG903_ViaPrmSetVIASRCHVALID(handle->port_no, ViaFormat[format].hvalid);
39:
AG903_ViaPrmSetVIASRCHDELAY(handle->port_no, ViaFormat[format].hdelay);
40:
AG903_ViaPrmSetVIASRCVCYCLE(handle->port_no, ViaFormat[format].vcycle);
41:
AG903_ViaPrmSetVIASRCVVALID(handle->port_no, ViaFormat[format].vvalid);
42:
AG903_ViaPrmSetVIASRCVDELAY(handle->port_no, ViaFormat[format].vdelay);
43:
AG903_ViaPrmSetVIASRCFRMFREQ(handle->port_no, ViaFormat[format].frm);
44:
AG903_ViaPrmSetVIASIGYCS(handle->port_no, TRAP, ViaMode[mode].mono);
45:
46:
VIAPrmParamVIACHDSETUP3 setup3;
47: setup3.agcen = AGCEN;
48: setup3.accov = ACCOV;
49: setup3.acctc = ACCTC;
50: setup3.accmark = ViaFormat[format].accmark;
51:
AG903_ViaPrmSetVIACHDSETUP3(handle->port_no, &setup3);
52:
53:
VIAPrmParamVIACHDSETUP5 setup5;
54: setup5.cbpllulth = CBPLLULTH;
55: setup5.cbpllulsv = CBPLLULSV;
56: setup5.agcgainspd = AGCGAINSPD;
57: setup5.agcofstspd = AGCOFSTSPD;
58: setup5.agcpos = AGCPOS;
59: setup5.agcpal = ViaFormat[format].agcpal;
60: setup5.agcgainen = AGCGAINEN;
61: setup5.agcofsten = AGCOFSTEN;
62:
AG903_ViaPrmSetVIACHDSETUP5(handle->port_no, &setup5);
63:
64:
AG903_ViaPrmSetVIACLAMPLEVEL(handle->port_no, CLAMPOFS);
65:
66:
return AG903_ENONE;
67: }