xref: /openbmc/linux/drivers/gpu/drm/tegra/mipi-phy.h (revision 5f32c314)
1 /*
2  * Copyright (C) 2013 NVIDIA Corporation
3  *
4  * Permission to use, copy, modify, distribute, and sell this software and its
5  * documentation for any purpose is hereby granted without fee, provided that
6  * the above copyright notice appear in all copies and that both that copyright
7  * notice and this permission notice appear in supporting documentation, and
8  * that the name of the copyright holders not be used in advertising or
9  * publicity pertaining to distribution of the software without specific,
10  * written prior permission.  The copyright holders make no representations
11  * about the suitability of this software for any purpose.  It is provided "as
12  * is" without express or implied warranty.
13  *
14  * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
16  * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
18  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
20  * OF THIS SOFTWARE.
21  */
22 
23 #ifndef DRM_TEGRA_MIPI_PHY_H
24 #define DRM_TEGRA_MIPI_PHY_H
25 
26 /*
27  * D-PHY timing parameters
28  *
29  * A detailed description of these parameters can be found in the  MIPI
30  * Alliance Specification for D-PHY, Section 5.9 "Global Operation Timing
31  * Parameters".
32  *
33  * All parameters are specified in nanoseconds.
34  */
35 struct mipi_dphy_timing {
36 	unsigned int clkmiss;
37 	unsigned int clkpost;
38 	unsigned int clkpre;
39 	unsigned int clkprepare;
40 	unsigned int clksettle;
41 	unsigned int clktermen;
42 	unsigned int clktrail;
43 	unsigned int clkzero;
44 	unsigned int dtermen;
45 	unsigned int eot;
46 	unsigned int hsexit;
47 	unsigned int hsprepare;
48 	unsigned int hszero;
49 	unsigned int hssettle;
50 	unsigned int hsskip;
51 	unsigned int hstrail;
52 	unsigned int init;
53 	unsigned int lpx;
54 	unsigned int taget;
55 	unsigned int tago;
56 	unsigned int tasure;
57 	unsigned int wakeup;
58 };
59 
60 int mipi_dphy_timing_get_default(struct mipi_dphy_timing *timing,
61 				 unsigned long period);
62 int mipi_dphy_timing_validate(struct mipi_dphy_timing *timing,
63 			      unsigned long period);
64 
65 #endif
66