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