Commit 3abfaefb authored by Liu Ying's avatar Liu Ying Committed by Vinod Koul
Browse files

phy: Add LVDS configuration options



This patch allows LVDS PHYs to be configured through
the generic functions and through a custom structure
added to the generic union.

The parameters added here are based on common LVDS PHY
implementation practices.  The set of parameters
should cover all potential users.

Cc: Kishon Vijay Abraham I <kishon@ti.com>
Cc: Vinod Koul <vkoul@kernel.org>
Cc: NXP Linux Team <linux-imx@nxp.com>
Signed-off-by: default avatarLiu Ying <victor.liu@nxp.com>
Link: https://lore.kernel.org/r/20220419010852.452169-3-victor.liu@nxp.com


Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent e72659b6
Loading
Loading
Loading
Loading
+32 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright 2020,2022 NXP
 */

#ifndef __PHY_LVDS_H_
#define __PHY_LVDS_H_

/**
 * struct phy_configure_opts_lvds - LVDS configuration set
 * @bits_per_lane_and_dclk_cycle:	Number of bits per lane per differential
 *					clock cycle.
 * @differential_clk_rate:		Clock rate, in Hertz, of the LVDS
 *					differential clock.
 * @lanes:				Number of active, consecutive,
 *					data lanes, starting from lane 0,
 *					used for the transmissions.
 * @is_slave:				Boolean, true if the phy is a slave
 *					which works together with a master
 *					phy to support dual link transmission,
 *					otherwise a regular phy or a master phy.
 *
 * This structure is used to represent the configuration state of a LVDS phy.
 */
struct phy_configure_opts_lvds {
	unsigned int	bits_per_lane_and_dclk_cycle;
	unsigned long	differential_clk_rate;
	unsigned int	lanes;
	bool		is_slave;
};

#endif /* __PHY_LVDS_H_ */
+4 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
#include <linux/regulator/consumer.h>

#include <linux/phy/phy-dp.h>
#include <linux/phy/phy-lvds.h>
#include <linux/phy/phy-mipi-dphy.h>

struct phy;
@@ -57,10 +58,13 @@ enum phy_media {
 *		the MIPI_DPHY phy mode.
 * @dp:		Configuration set applicable for phys supporting
 *		the DisplayPort protocol.
 * @lvds:	Configuration set applicable for phys supporting
 *		the LVDS phy mode.
 */
union phy_configure_opts {
	struct phy_configure_opts_mipi_dphy	mipi_dphy;
	struct phy_configure_opts_dp		dp;
	struct phy_configure_opts_lvds		lvds;
};

/**