1f2e3bd9aSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */ 2b5dcee22SMauro Carvalho Chehab /* 3b5dcee22SMauro Carvalho Chehab * drivers/media/video/tvp514x.h 4b5dcee22SMauro Carvalho Chehab * 5b5dcee22SMauro Carvalho Chehab * Copyright (C) 2008 Texas Instruments Inc 6b5dcee22SMauro Carvalho Chehab * Author: Vaibhav Hiremath <hvaibhav@ti.com> 7b5dcee22SMauro Carvalho Chehab * 8b5dcee22SMauro Carvalho Chehab * Contributors: 9b5dcee22SMauro Carvalho Chehab * Sivaraj R <sivaraj@ti.com> 10b5dcee22SMauro Carvalho Chehab * Brijesh R Jadav <brijesh.j@ti.com> 11b5dcee22SMauro Carvalho Chehab * Hardik Shah <hardik.shah@ti.com> 12b5dcee22SMauro Carvalho Chehab * Manjunath Hadli <mrh@ti.com> 13b5dcee22SMauro Carvalho Chehab * Karicheri Muralidharan <m-karicheri2@ti.com> 14b5dcee22SMauro Carvalho Chehab */ 15b5dcee22SMauro Carvalho Chehab 16b5dcee22SMauro Carvalho Chehab #ifndef _TVP514X_H 17b5dcee22SMauro Carvalho Chehab #define _TVP514X_H 18b5dcee22SMauro Carvalho Chehab 19b5dcee22SMauro Carvalho Chehab /* 20b5dcee22SMauro Carvalho Chehab * Other macros 21b5dcee22SMauro Carvalho Chehab */ 22b5dcee22SMauro Carvalho Chehab #define TVP514X_MODULE_NAME "tvp514x" 23b5dcee22SMauro Carvalho Chehab 24b5dcee22SMauro Carvalho Chehab #define TVP514X_XCLK_BT656 (27000000) 25b5dcee22SMauro Carvalho Chehab 26b5dcee22SMauro Carvalho Chehab /* Number of pixels and number of lines per frame for different standards */ 27b5dcee22SMauro Carvalho Chehab #define NTSC_NUM_ACTIVE_PIXELS (720) 28b5dcee22SMauro Carvalho Chehab #define NTSC_NUM_ACTIVE_LINES (480) 29b5dcee22SMauro Carvalho Chehab #define PAL_NUM_ACTIVE_PIXELS (720) 30b5dcee22SMauro Carvalho Chehab #define PAL_NUM_ACTIVE_LINES (576) 31b5dcee22SMauro Carvalho Chehab 32*a68a90b2SHans Verkuil /* enum for different decoder input pin configuration */ 33b5dcee22SMauro Carvalho Chehab enum tvp514x_input { 34b5dcee22SMauro Carvalho Chehab /* 35b5dcee22SMauro Carvalho Chehab * CVBS input selection 36b5dcee22SMauro Carvalho Chehab */ 37b5dcee22SMauro Carvalho Chehab INPUT_CVBS_VI1A = 0x0, 38b5dcee22SMauro Carvalho Chehab INPUT_CVBS_VI1B, 39b5dcee22SMauro Carvalho Chehab INPUT_CVBS_VI1C, 40b5dcee22SMauro Carvalho Chehab INPUT_CVBS_VI2A = 0x04, 41b5dcee22SMauro Carvalho Chehab INPUT_CVBS_VI2B, 42b5dcee22SMauro Carvalho Chehab INPUT_CVBS_VI2C, 43b5dcee22SMauro Carvalho Chehab INPUT_CVBS_VI3A = 0x08, 44b5dcee22SMauro Carvalho Chehab INPUT_CVBS_VI3B, 45b5dcee22SMauro Carvalho Chehab INPUT_CVBS_VI3C, 46b5dcee22SMauro Carvalho Chehab INPUT_CVBS_VI4A = 0x0C, 47b5dcee22SMauro Carvalho Chehab /* 48b5dcee22SMauro Carvalho Chehab * S-Video input selection 49b5dcee22SMauro Carvalho Chehab */ 50b5dcee22SMauro Carvalho Chehab INPUT_SVIDEO_VI2A_VI1A = 0x44, 51b5dcee22SMauro Carvalho Chehab INPUT_SVIDEO_VI2B_VI1B, 52b5dcee22SMauro Carvalho Chehab INPUT_SVIDEO_VI2C_VI1C, 53b5dcee22SMauro Carvalho Chehab INPUT_SVIDEO_VI2A_VI3A = 0x54, 54b5dcee22SMauro Carvalho Chehab INPUT_SVIDEO_VI2B_VI3B, 55b5dcee22SMauro Carvalho Chehab INPUT_SVIDEO_VI2C_VI3C, 56b5dcee22SMauro Carvalho Chehab INPUT_SVIDEO_VI4A_VI1A = 0x4C, 57b5dcee22SMauro Carvalho Chehab INPUT_SVIDEO_VI4A_VI1B, 58b5dcee22SMauro Carvalho Chehab INPUT_SVIDEO_VI4A_VI1C, 59b5dcee22SMauro Carvalho Chehab INPUT_SVIDEO_VI4A_VI3A = 0x5C, 60b5dcee22SMauro Carvalho Chehab INPUT_SVIDEO_VI4A_VI3B, 61b5dcee22SMauro Carvalho Chehab INPUT_SVIDEO_VI4A_VI3C, 62b5dcee22SMauro Carvalho Chehab 63b5dcee22SMauro Carvalho Chehab /* Need to add entries for 64b5dcee22SMauro Carvalho Chehab * RGB, YPbPr and SCART. 65b5dcee22SMauro Carvalho Chehab */ 66b5dcee22SMauro Carvalho Chehab INPUT_INVALID 67b5dcee22SMauro Carvalho Chehab }; 68b5dcee22SMauro Carvalho Chehab 69*a68a90b2SHans Verkuil /* enum for output format supported. */ 70b5dcee22SMauro Carvalho Chehab enum tvp514x_output { 71b5dcee22SMauro Carvalho Chehab OUTPUT_10BIT_422_EMBEDDED_SYNC = 0, 72b5dcee22SMauro Carvalho Chehab OUTPUT_20BIT_422_SEPERATE_SYNC, 73b5dcee22SMauro Carvalho Chehab OUTPUT_10BIT_422_SEPERATE_SYNC = 3, 74b5dcee22SMauro Carvalho Chehab OUTPUT_INVALID 75b5dcee22SMauro Carvalho Chehab }; 76b5dcee22SMauro Carvalho Chehab 77b5dcee22SMauro Carvalho Chehab /** 78b5dcee22SMauro Carvalho Chehab * struct tvp514x_platform_data - Platform data values and access functions. 79b5dcee22SMauro Carvalho Chehab * @clk_polarity: Clock polarity of the current interface. 80b5dcee22SMauro Carvalho Chehab * @hs_polarity: HSYNC Polarity configuration for current interface. 81b5dcee22SMauro Carvalho Chehab * @vs_polarity: VSYNC Polarity configuration for current interface. 82b5dcee22SMauro Carvalho Chehab */ 83b5dcee22SMauro Carvalho Chehab struct tvp514x_platform_data { 84b5dcee22SMauro Carvalho Chehab /* Interface control params */ 85b5dcee22SMauro Carvalho Chehab bool clk_polarity; 86b5dcee22SMauro Carvalho Chehab bool hs_polarity; 87b5dcee22SMauro Carvalho Chehab bool vs_polarity; 88b5dcee22SMauro Carvalho Chehab }; 89b5dcee22SMauro Carvalho Chehab 90b5dcee22SMauro Carvalho Chehab 91b5dcee22SMauro Carvalho Chehab #endif /* ifndef _TVP514X_H */ 92