disp: msm: dp: Parse device tree for aux switch

Changes to select particular dp_aux_switch based on board
requirements. Currently provision to support both fsa4480
and wcd939x as aux switches are provided.

Change-Id: Iafbee4d91d14aafb1e7a37ddfa2b1ea0d0e5e784
Signed-off-by: Soutrik Mukhopadhyay <quic_mukhopad@quicinc.com>
This commit is contained in:
Soutrik Mukhopadhyay
2023-05-22 14:46:28 +05:30
parent a07896383d
commit 5073940a9a
3 changed files with 37 additions and 11 deletions

View File

@@ -170,6 +170,7 @@ struct dp_display_private {
enum drm_connector_status cached_connector_status;
enum dp_display_states state;
enum dp_aux_switch_type switch_type;
struct platform_device *pdev;
struct device_node *aux_switch_node;
@@ -2119,8 +2120,16 @@ static int dp_init_sub_modules(struct dp_display_private *dp)
dp->no_aux_switch = true;
}
if (!strcmp(dp->aux_switch_node->name, "fsa4480"))
dp->switch_type = DP_AUX_SWITCH_FSA4480;
else if (!strcmp(dp->aux_switch_node->name, "wcd939x_i2c"))
dp->switch_type = DP_AUX_SWITCH_WCD939x;
else
dp->switch_type = DP_AUX_SWITCH_BYPASS;
dp->aux = dp_aux_get(dev, &dp->catalog->aux, dp->parser,
dp->aux_switch_node, dp->aux_bridge, g_dp_display->dp_aux_ipc_log);
dp->aux_switch_node, dp->aux_bridge, g_dp_display->dp_aux_ipc_log,
dp->switch_type);
if (IS_ERR(dp->aux)) {
rc = PTR_ERR(dp->aux);
DP_ERR("failed to initialize aux, rc = %d\n", rc);