xref: /linux-6.15/include/linux/phy/phy-dp.h (revision 368d67da)
142d06847SYuti Amonkar /* SPDX-License-Identifier: GPL-2.0 */
242d06847SYuti Amonkar /*
342d06847SYuti Amonkar  * Copyright (C) 2019 Cadence Design Systems Inc.
442d06847SYuti Amonkar  */
542d06847SYuti Amonkar 
642d06847SYuti Amonkar #ifndef __PHY_DP_H_
742d06847SYuti Amonkar #define __PHY_DP_H_
842d06847SYuti Amonkar 
942d06847SYuti Amonkar #include <linux/types.h>
1042d06847SYuti Amonkar 
11*368d67daSAbel Vesa #define PHY_SUBMODE_DP	0
12*368d67daSAbel Vesa #define PHY_SUBMODE_EDP	1
13*368d67daSAbel Vesa 
1442d06847SYuti Amonkar /**
1542d06847SYuti Amonkar  * struct phy_configure_opts_dp - DisplayPort PHY configuration set
1642d06847SYuti Amonkar  *
1742d06847SYuti Amonkar  * This structure is used to represent the configuration state of a
1842d06847SYuti Amonkar  * DisplayPort phy.
1942d06847SYuti Amonkar  */
2042d06847SYuti Amonkar struct phy_configure_opts_dp {
2142d06847SYuti Amonkar 	/**
2242d06847SYuti Amonkar 	 * @link_rate:
2342d06847SYuti Amonkar 	 *
2442d06847SYuti Amonkar 	 * Link Rate, in Mb/s, of the main link.
2542d06847SYuti Amonkar 	 *
2642d06847SYuti Amonkar 	 * Allowed values: 1620, 2160, 2430, 2700, 3240, 4320, 5400, 8100 Mb/s
2742d06847SYuti Amonkar 	 */
2842d06847SYuti Amonkar 	unsigned int link_rate;
2942d06847SYuti Amonkar 
3042d06847SYuti Amonkar 	/**
3142d06847SYuti Amonkar 	 * @lanes:
3242d06847SYuti Amonkar 	 *
3342d06847SYuti Amonkar 	 * Number of active, consecutive, data lanes, starting from
3442d06847SYuti Amonkar 	 * lane 0, used for the transmissions on main link.
3542d06847SYuti Amonkar 	 *
3642d06847SYuti Amonkar 	 * Allowed values: 1, 2, 4
3742d06847SYuti Amonkar 	 */
3842d06847SYuti Amonkar 	unsigned int lanes;
3942d06847SYuti Amonkar 
4042d06847SYuti Amonkar 	/**
4142d06847SYuti Amonkar 	 * @voltage:
4242d06847SYuti Amonkar 	 *
4342d06847SYuti Amonkar 	 * Voltage swing levels, as specified by DisplayPort specification,
4442d06847SYuti Amonkar 	 * to be used by particular lanes. One value per lane.
4542d06847SYuti Amonkar 	 * voltage[0] is for lane 0, voltage[1] is for lane 1, etc.
4642d06847SYuti Amonkar 	 *
4742d06847SYuti Amonkar 	 * Maximum value: 3
4842d06847SYuti Amonkar 	 */
4942d06847SYuti Amonkar 	unsigned int voltage[4];
5042d06847SYuti Amonkar 
5142d06847SYuti Amonkar 	/**
5242d06847SYuti Amonkar 	 * @pre:
5342d06847SYuti Amonkar 	 *
5442d06847SYuti Amonkar 	 * Pre-emphasis levels, as specified by DisplayPort specification, to be
5542d06847SYuti Amonkar 	 * used by particular lanes. One value per lane.
5642d06847SYuti Amonkar 	 *
5742d06847SYuti Amonkar 	 * Maximum value: 3
5842d06847SYuti Amonkar 	 */
5942d06847SYuti Amonkar 	unsigned int pre[4];
6042d06847SYuti Amonkar 
6142d06847SYuti Amonkar 	/**
6242d06847SYuti Amonkar 	 * @ssc:
6342d06847SYuti Amonkar 	 *
6442d06847SYuti Amonkar 	 * Flag indicating, whether or not to enable spread-spectrum clocking.
6542d06847SYuti Amonkar 	 *
6642d06847SYuti Amonkar 	 */
6742d06847SYuti Amonkar 	u8 ssc : 1;
6842d06847SYuti Amonkar 
6942d06847SYuti Amonkar 	/**
7042d06847SYuti Amonkar 	 * @set_rate:
7142d06847SYuti Amonkar 	 *
7242d06847SYuti Amonkar 	 * Flag indicating, whether or not reconfigure link rate and SSC to
7342d06847SYuti Amonkar 	 * requested values.
7442d06847SYuti Amonkar 	 *
7542d06847SYuti Amonkar 	 */
7642d06847SYuti Amonkar 	u8 set_rate : 1;
7742d06847SYuti Amonkar 
7842d06847SYuti Amonkar 	/**
7942d06847SYuti Amonkar 	 * @set_lanes:
8042d06847SYuti Amonkar 	 *
8142d06847SYuti Amonkar 	 * Flag indicating, whether or not reconfigure lane count to
8242d06847SYuti Amonkar 	 * requested value.
8342d06847SYuti Amonkar 	 *
8442d06847SYuti Amonkar 	 */
8542d06847SYuti Amonkar 	u8 set_lanes : 1;
8642d06847SYuti Amonkar 
8742d06847SYuti Amonkar 	/**
8842d06847SYuti Amonkar 	 * @set_voltages:
8942d06847SYuti Amonkar 	 *
9042d06847SYuti Amonkar 	 * Flag indicating, whether or not reconfigure voltage swing
9142d06847SYuti Amonkar 	 * and pre-emphasis to requested values. Only lanes specified
9242d06847SYuti Amonkar 	 * by "lanes" parameter will be affected.
9342d06847SYuti Amonkar 	 *
9442d06847SYuti Amonkar 	 */
9542d06847SYuti Amonkar 	u8 set_voltages : 1;
9642d06847SYuti Amonkar };
9742d06847SYuti Amonkar 
9842d06847SYuti Amonkar #endif /* __PHY_DP_H_ */
99