[PATCH v4 2/3] phy: qcom: qmp-combo: get the USB3 & DisplayPort lanes mapping from DT
Konrad Dybcio
konrad.dybcio at oss.qualcomm.com
Mon Oct 6 03:08:22 PDT 2025
On 9/30/25 9:39 AM, Neil Armstrong wrote:
> The QMP USB3/DP Combo PHY hosts an USB3 phy and a DP PHY on top
> of a combo glue to route either lanes to the 4 shared physical lanes.
>
> The routing of the lanes can be:
> - 2 DP + 2 USB3
> - 4 DP
> - 2 USB3
>
> Get the lanes mapping from DT and stop registering the USB-C
> muxes in favor of a static mode and orientation detemined
> by the lanes mapping.
>
> This allows supporting boards with direct connection of USB3 and
> DisplayPort lanes to the QMP Combo PHY lanes, not using the
> USB-C Altmode feature.
>
> Signed-off-by: Neil Armstrong <neil.armstrong at linaro.org>
> ---
[...]
> +struct qmp_combo_lane_mapping {
> + unsigned int lanes_count;
"num_lanes"?
> + enum typec_orientation orientation;
> + u32 lanes[4];
> +};
> +
> +static const struct qmp_combo_lane_mapping usb3_data_lanes[] = {
> + { 2, TYPEC_ORIENTATION_NORMAL, { 1, 0 }},
> + { 2, TYPEC_ORIENTATION_REVERSE, { 2, 3 }},
> +};
> +
> +static const struct qmp_combo_lane_mapping dp_data_lanes[] = {
> + { 1, TYPEC_ORIENTATION_NORMAL, { 0 }},
> + { 1, TYPEC_ORIENTATION_REVERSE, { 3 }},
This is not corroborated by your bindings change ^
I'm also frankly not sure whether it's pin 2 or 3 that 1-lane-DP
would be TXd on
> + { 2, TYPEC_ORIENTATION_NORMAL, { 3, 2 }},
> + { 2, TYPEC_ORIENTATION_REVERSE, { 0, 1 }},
> + { 4, TYPEC_ORIENTATION_NORMAL, { 3, 2, 1, 0 }},
> + { 4, TYPEC_ORIENTATION_REVERSE, { 0, 1, 2, 3 }},
Would it be too cheesy to check orientation based like:
static bool qmpphy_mapping_orient_flipped(u32 *data_lanes)
{
return data_lanes[0] == 0;
}
?
> - ret = qmp_combo_typec_register(qmp);
> - if (ret)
> - goto err_node_put;
> + qmp->qmpphy_mode = QMPPHY_MODE_USB3DP;
> +
> + if (of_find_property(dev->of_node, "mode-switch", NULL) ||
> + of_find_property(dev->of_node, "orientation-switch", NULL)) {
of_property_present()
Konrad
More information about the linux-phy
mailing list