* [PATCH 0/4] Extend phy_configure_opts_mipi_dphy to support position and polarity
@ 2026-03-25 21:47 Bryan O'Donoghue
2026-03-25 21:47 ` [PATCH 1/4] phy: dphy: Add lane_positions to DPHY config struct Bryan O'Donoghue
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Bryan O'Donoghue @ 2026-03-25 21:47 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Marco Felsch, Maxime Ripard
Cc: linux-phy, linux-kernel, Bryan O'Donoghue
struct phy_configure_opts_mipi_dphy currently passes @lanes as a linear
count of data-lanes starting from lane zero to a consuming DPHY driver.
This proves insufficient when we want to specify lane location and lane
polarity.
To address this gap extend the structure to pass four new fields.
- lane_positions
An array indicating the physical position of each data-lane
- lane_polarities
An array indicating the polarity of each data-lane
- clock_lane_position
A singleton indicating the physical location of the clock-lane
- clock_lane_polarity
A singleton indicating the polarity of the clock lane
These properties correspond to data-lanes, clock-lanes and lane-polarities
as defined in video-interfaces.yaml and already parsed by
v4l2_fwnode_endpoint_parse.
A controller can use these fields to pass down the relevant data to the PHY
driver over and above the assumption of simple linear consecutive
data-lanes as has been possible to this point.
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
Bryan O'Donoghue (4):
phy: dphy: Add lane_positions to DPHY config struct
phy: dphy: Add lane_polarities to DPHY config struct
phy: dphy: Add clock_lane_position to DPHY config struct
phy: dphy: Add clock_lane_polarity to DPHY config struct
include/linux/phy/phy-mipi-dphy.h | 37 +++++++++++++++++++++++++++++++++++--
1 file changed, 35 insertions(+), 2 deletions(-)
---
base-commit: c824345288d11e269ce41b36c105715bc2286050
change-id: 20260325-dphy-params-extension-5fcd9ba8af61
Best regards,
--
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/4] phy: dphy: Add lane_positions to DPHY config struct
2026-03-25 21:47 [PATCH 0/4] Extend phy_configure_opts_mipi_dphy to support position and polarity Bryan O'Donoghue
@ 2026-03-25 21:47 ` Bryan O'Donoghue
2026-03-25 21:47 ` [PATCH 2/4] phy: dphy: Add lane_polarities " Bryan O'Donoghue
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Bryan O'Donoghue @ 2026-03-25 21:47 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Marco Felsch, Maxime Ripard
Cc: linux-phy, linux-kernel, Bryan O'Donoghue
Add lane_positions to the DPHY configuration struct. This data-field
represents the physical positions of the data-lanes indexed by lane number.
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
include/linux/phy/phy-mipi-dphy.h | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/include/linux/phy/phy-mipi-dphy.h b/include/linux/phy/phy-mipi-dphy.h
index 1ac128d78dfeb..c7eb11c41d7ec 100644
--- a/include/linux/phy/phy-mipi-dphy.h
+++ b/include/linux/phy/phy-mipi-dphy.h
@@ -6,6 +6,8 @@
#ifndef __PHY_MIPI_DPHY_H_
#define __PHY_MIPI_DPHY_H_
+#define PHY_MIPI_DPHY_MAX_DATA_LANES 4
+
/**
* struct phy_configure_opts_mipi_dphy - MIPI D-PHY configuration set
*
@@ -269,10 +271,19 @@ struct phy_configure_opts_mipi_dphy {
/**
* @lanes:
*
- * Number of active, consecutive, data lanes, starting from
- * lane 0, used for the transmissions.
+ * Number of active data lanes used for the transmission.
+ * When @lane_positions is not populated, lanes are consecutive
+ * starting from lane 0.
*/
unsigned char lanes;
+
+ /**
+ * @lane_positions:
+ *
+ * Array representing the physical positions of the data-lanes.
+ * Indexed by logical lane number.
+ */
+ unsigned char lane_positions[PHY_MIPI_DPHY_MAX_DATA_LANES];
};
int phy_mipi_dphy_get_default_config(unsigned long pixel_clock,
--
2.52.0
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/4] phy: dphy: Add lane_polarities to DPHY config struct
2026-03-25 21:47 [PATCH 0/4] Extend phy_configure_opts_mipi_dphy to support position and polarity Bryan O'Donoghue
2026-03-25 21:47 ` [PATCH 1/4] phy: dphy: Add lane_positions to DPHY config struct Bryan O'Donoghue
@ 2026-03-25 21:47 ` Bryan O'Donoghue
2026-03-25 21:47 ` [PATCH 3/4] phy: dphy: Add clock_lane_position " Bryan O'Donoghue
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Bryan O'Donoghue @ 2026-03-25 21:47 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Marco Felsch, Maxime Ripard
Cc: linux-phy, linux-kernel, Bryan O'Donoghue
Pass an array of data-lane polarities from controller to PHY. A true value
means the lane polarity is inverted.
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
include/linux/phy/phy-mipi-dphy.h | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/include/linux/phy/phy-mipi-dphy.h b/include/linux/phy/phy-mipi-dphy.h
index c7eb11c41d7ec..3e0333b5a1a71 100644
--- a/include/linux/phy/phy-mipi-dphy.h
+++ b/include/linux/phy/phy-mipi-dphy.h
@@ -284,6 +284,14 @@ struct phy_configure_opts_mipi_dphy {
* Indexed by logical lane number.
*/
unsigned char lane_positions[PHY_MIPI_DPHY_MAX_DATA_LANES];
+
+ /**
+ * @lane_polarities:
+ *
+ * Array representing data-lane polarities. True means inverted.
+ * Indexed by logical lane number.
+ */
+ bool lane_polarities[PHY_MIPI_DPHY_MAX_DATA_LANES];
};
int phy_mipi_dphy_get_default_config(unsigned long pixel_clock,
--
2.52.0
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/4] phy: dphy: Add clock_lane_position to DPHY config struct
2026-03-25 21:47 [PATCH 0/4] Extend phy_configure_opts_mipi_dphy to support position and polarity Bryan O'Donoghue
2026-03-25 21:47 ` [PATCH 1/4] phy: dphy: Add lane_positions to DPHY config struct Bryan O'Donoghue
2026-03-25 21:47 ` [PATCH 2/4] phy: dphy: Add lane_polarities " Bryan O'Donoghue
@ 2026-03-25 21:47 ` Bryan O'Donoghue
2026-03-25 21:48 ` [PATCH 4/4] phy: dphy: Add clock_lane_polarity " Bryan O'Donoghue
2026-05-19 10:27 ` [PATCH 0/4] Extend phy_configure_opts_mipi_dphy to support position and polarity Vinod Koul
4 siblings, 0 replies; 6+ messages in thread
From: Bryan O'Donoghue @ 2026-03-25 21:47 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Marco Felsch, Maxime Ripard
Cc: linux-phy, linux-kernel, Bryan O'Donoghue
We need to identify which lane is the clock-lane as many different PHYs
allow for a range of lanes, potentially any of the lanes to be the clock
input lane on a PHY.
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
include/linux/phy/phy-mipi-dphy.h | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/include/linux/phy/phy-mipi-dphy.h b/include/linux/phy/phy-mipi-dphy.h
index 3e0333b5a1a71..76d41580e225a 100644
--- a/include/linux/phy/phy-mipi-dphy.h
+++ b/include/linux/phy/phy-mipi-dphy.h
@@ -292,6 +292,13 @@ struct phy_configure_opts_mipi_dphy {
* Indexed by logical lane number.
*/
bool lane_polarities[PHY_MIPI_DPHY_MAX_DATA_LANES];
+
+ /**
+ * @clock_lane_position:
+ *
+ * Physical lane number used as the clock lane.
+ */
+ unsigned char clock_lane_position;
};
int phy_mipi_dphy_get_default_config(unsigned long pixel_clock,
--
2.52.0
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 4/4] phy: dphy: Add clock_lane_polarity to DPHY config struct
2026-03-25 21:47 [PATCH 0/4] Extend phy_configure_opts_mipi_dphy to support position and polarity Bryan O'Donoghue
` (2 preceding siblings ...)
2026-03-25 21:47 ` [PATCH 3/4] phy: dphy: Add clock_lane_position " Bryan O'Donoghue
@ 2026-03-25 21:48 ` Bryan O'Donoghue
2026-05-19 10:27 ` [PATCH 0/4] Extend phy_configure_opts_mipi_dphy to support position and polarity Vinod Koul
4 siblings, 0 replies; 6+ messages in thread
From: Bryan O'Donoghue @ 2026-03-25 21:48 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Marco Felsch, Maxime Ripard
Cc: linux-phy, linux-kernel, Bryan O'Donoghue
Specify the polarity of the clock lane in DPHY mode. When true this bool
means the polarity is inverted.
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
include/linux/phy/phy-mipi-dphy.h | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/include/linux/phy/phy-mipi-dphy.h b/include/linux/phy/phy-mipi-dphy.h
index 76d41580e225a..f7b4ad29e6f83 100644
--- a/include/linux/phy/phy-mipi-dphy.h
+++ b/include/linux/phy/phy-mipi-dphy.h
@@ -299,6 +299,13 @@ struct phy_configure_opts_mipi_dphy {
* Physical lane number used as the clock lane.
*/
unsigned char clock_lane_position;
+
+ /**
+ * @clock_lane_polarity:
+ *
+ * Clock lane polarity. True means inverted.
+ */
+ bool clock_lane_polarity;
};
int phy_mipi_dphy_get_default_config(unsigned long pixel_clock,
--
2.52.0
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 0/4] Extend phy_configure_opts_mipi_dphy to support position and polarity
2026-03-25 21:47 [PATCH 0/4] Extend phy_configure_opts_mipi_dphy to support position and polarity Bryan O'Donoghue
` (3 preceding siblings ...)
2026-03-25 21:48 ` [PATCH 4/4] phy: dphy: Add clock_lane_polarity " Bryan O'Donoghue
@ 2026-05-19 10:27 ` Vinod Koul
4 siblings, 0 replies; 6+ messages in thread
From: Vinod Koul @ 2026-05-19 10:27 UTC (permalink / raw)
To: Bryan O'Donoghue
Cc: Neil Armstrong, Marco Felsch, Maxime Ripard, linux-phy,
linux-kernel
On 25-03-26, 21:47, Bryan O'Donoghue wrote:
> struct phy_configure_opts_mipi_dphy currently passes @lanes as a linear
> count of data-lanes starting from lane zero to a consuming DPHY driver.
>
> This proves insufficient when we want to specify lane location and lane
> polarity.
>
> To address this gap extend the structure to pass four new fields.
Sure, but where is the user...?
Please repost with users added in
Thanks
pw-bot: cr
--
~Vinod
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-05-19 10:27 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-25 21:47 [PATCH 0/4] Extend phy_configure_opts_mipi_dphy to support position and polarity Bryan O'Donoghue
2026-03-25 21:47 ` [PATCH 1/4] phy: dphy: Add lane_positions to DPHY config struct Bryan O'Donoghue
2026-03-25 21:47 ` [PATCH 2/4] phy: dphy: Add lane_polarities " Bryan O'Donoghue
2026-03-25 21:47 ` [PATCH 3/4] phy: dphy: Add clock_lane_position " Bryan O'Donoghue
2026-03-25 21:48 ` [PATCH 4/4] phy: dphy: Add clock_lane_polarity " Bryan O'Donoghue
2026-05-19 10:27 ` [PATCH 0/4] Extend phy_configure_opts_mipi_dphy to support position and polarity Vinod Koul
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox