162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2013 NVIDIA Corporation
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#ifndef DRM_TEGRA_MIPI_PHY_H
762306a36Sopenharmony_ci#define DRM_TEGRA_MIPI_PHY_H
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci/*
1062306a36Sopenharmony_ci * D-PHY timing parameters
1162306a36Sopenharmony_ci *
1262306a36Sopenharmony_ci * A detailed description of these parameters can be found in the  MIPI
1362306a36Sopenharmony_ci * Alliance Specification for D-PHY, Section 5.9 "Global Operation Timing
1462306a36Sopenharmony_ci * Parameters".
1562306a36Sopenharmony_ci *
1662306a36Sopenharmony_ci * All parameters are specified in nanoseconds.
1762306a36Sopenharmony_ci */
1862306a36Sopenharmony_cistruct mipi_dphy_timing {
1962306a36Sopenharmony_ci	unsigned int clkmiss;
2062306a36Sopenharmony_ci	unsigned int clkpost;
2162306a36Sopenharmony_ci	unsigned int clkpre;
2262306a36Sopenharmony_ci	unsigned int clkprepare;
2362306a36Sopenharmony_ci	unsigned int clksettle;
2462306a36Sopenharmony_ci	unsigned int clktermen;
2562306a36Sopenharmony_ci	unsigned int clktrail;
2662306a36Sopenharmony_ci	unsigned int clkzero;
2762306a36Sopenharmony_ci	unsigned int dtermen;
2862306a36Sopenharmony_ci	unsigned int eot;
2962306a36Sopenharmony_ci	unsigned int hsexit;
3062306a36Sopenharmony_ci	unsigned int hsprepare;
3162306a36Sopenharmony_ci	unsigned int hszero;
3262306a36Sopenharmony_ci	unsigned int hssettle;
3362306a36Sopenharmony_ci	unsigned int hsskip;
3462306a36Sopenharmony_ci	unsigned int hstrail;
3562306a36Sopenharmony_ci	unsigned int init;
3662306a36Sopenharmony_ci	unsigned int lpx;
3762306a36Sopenharmony_ci	unsigned int taget;
3862306a36Sopenharmony_ci	unsigned int tago;
3962306a36Sopenharmony_ci	unsigned int tasure;
4062306a36Sopenharmony_ci	unsigned int wakeup;
4162306a36Sopenharmony_ci};
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ciint mipi_dphy_timing_get_default(struct mipi_dphy_timing *timing,
4462306a36Sopenharmony_ci				 unsigned long period);
4562306a36Sopenharmony_ciint mipi_dphy_timing_validate(struct mipi_dphy_timing *timing,
4662306a36Sopenharmony_ci			      unsigned long period);
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci#endif
49