Lines Matching full:companion
79 struct drm_bridge *companion; member
367 /* Enable the companion LVDS encoder in dual-link mode. */ in rcar_lvds_enable()
368 if (lvds->link_type != RCAR_LVDS_SINGLE_LINK && lvds->companion) in rcar_lvds_enable()
369 rcar_lvds_enable(lvds->companion, state, crtc, connector); in rcar_lvds_enable()
398 * encoder and odd pixels from the companion encoder. in rcar_lvds_enable()
401 * companion encoder. in rcar_lvds_enable()
410 * ST_SWAP is reserved for the companion encoder, only in rcar_lvds_enable()
414 | (lvds->companion && swap_pixels ? in rcar_lvds_enable()
421 * PLL clock configuration on all instances but the companion in in rcar_lvds_enable()
427 if ((lvds->link_type == RCAR_LVDS_SINGLE_LINK || lvds->companion) && in rcar_lvds_enable()
530 /* Disable the companion LVDS encoder in dual-link mode. */ in rcar_lvds_disable()
531 if (lvds->link_type != RCAR_LVDS_SINGLE_LINK && lvds->companion) in rcar_lvds_disable()
532 rcar_lvds_disable(lvds->companion); in rcar_lvds_disable()
682 struct device_node *companion; in rcar_lvds_parse_dt_companion() local
689 /* Locate the companion LVDS encoder for dual-link operation, if any. */ in rcar_lvds_parse_dt_companion()
690 companion = of_parse_phandle(dev->of_node, "renesas,companion", 0); in rcar_lvds_parse_dt_companion()
691 if (!companion) in rcar_lvds_parse_dt_companion()
695 * Sanity check: the companion encoder must have the same compatible in rcar_lvds_parse_dt_companion()
699 if (!of_device_is_compatible(companion, match->compatible)) { in rcar_lvds_parse_dt_companion()
700 dev_err(dev, "Companion LVDS encoder is invalid\n"); in rcar_lvds_parse_dt_companion()
712 port1 = of_graph_get_port_by_id(companion, 1); in rcar_lvds_parse_dt_companion()
729 * encoder, and odd pixels from the companion encoder. in rcar_lvds_parse_dt_companion()
743 lvds->companion = of_drm_find_bridge(companion); in rcar_lvds_parse_dt_companion()
744 if (!lvds->companion) { in rcar_lvds_parse_dt_companion()
750 "Dual-link configuration detected (companion encoder %pOF)\n", in rcar_lvds_parse_dt_companion()
751 companion); in rcar_lvds_parse_dt_companion()
757 * FIXME: We should not be messing with the companion encoder private in rcar_lvds_parse_dt_companion()
758 * data from the primary encoder, we should rather let the companion in rcar_lvds_parse_dt_companion()
759 * encoder work things out on its own. However, the companion encoder in rcar_lvds_parse_dt_companion()
765 companion_lvds = bridge_to_rcar_lvds(lvds->companion); in rcar_lvds_parse_dt_companion()
769 of_node_put(companion); in rcar_lvds_parse_dt_companion()