Re: [PATCH v7 03/10] dt-bindings: drm/bridge: ti-sn65dsi86: Add aux-bus child

From: Rob Herring
Date: Wed May 19 2021 - 16:02:11 EST


On Mon, May 17, 2021 at 01:09:00PM -0700, Douglas Anderson wrote:
> We want to be able to list an eDP panel as a child of a ti-sn65dsi86
> node to represent the fact that the panel is connected to the bridge's
> DP AUX bus. Though the panel and the bridge chip are connected in
> several ways, the DP AUX bus is the primary control interface between
> the two and thus makes the most sense to model in device tree
> hierarchy.
>
> Listing a panel in this way makes it possible for the panel driver to
> easily get access to the DP AUX bus that it resides on, which can be
> useful to help in auto-detecting the panel and for turning on various
> bits.
>
> NOTE: it's still possible to continue using the bridge chip and point
> to a panel that _isn't_ listed as a child of the bridge chip (since
> it's worked that way previously), but that should be deprecated since
> there is no downside to listing the panel under the bridge chip.
>
> The idea for this bus's design was hashed out over IRC [1].
>
> [1] https://people.freedesktop.org/~cbrill/dri-log/?channel=dri-devel&date=2021-05-11
>
> Signed-off-by: Douglas Anderson <dianders@xxxxxxxxxxxx>
> ---
> Possibly we might want something fancier that could be included by
> other eDP controller bindings. If we want to do this, I'd love to be
> pointed at a good example to follow.
>
> Changes in v7:
> - ti-sn65dsi86: Add aux-bus child patch new for v7.
>
> .../bindings/display/bridge/ti,sn65dsi86.yaml | 22 ++++++++++++++++++-
> 1 file changed, 21 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/display/bridge/ti,sn65dsi86.yaml b/Documentation/devicetree/bindings/display/bridge/ti,sn65dsi86.yaml
> index 26932d2e86ab..51f5a29e216c 100644
> --- a/Documentation/devicetree/bindings/display/bridge/ti,sn65dsi86.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/ti,sn65dsi86.yaml
> @@ -70,6 +70,11 @@ properties:
> const: 1
> description: See ../../pwm/pwm.yaml for description of the cell formats.
>
> + aux-bus:

As this is a node:

type: object

> + description:
> + It is recommended that you place your panel under the aux-bus node
> + here to represent the control hierarchy.
> +
> ports:
> $ref: /schemas/graph.yaml#/properties/ports
>
> @@ -201,11 +206,26 @@ examples:
>
> port@1 {
> reg = <1>;
> - endpoint {
> + sn65dsi86_out: endpoint {
> remote-endpoint = <&panel_in_edp>;
> };
> };
> };
> +
> + aux-bus {
> + panel {

We should perhaps have a separate aux-bus schema. Something should
define the child node is 'panel' and nothing else. Though perhaps
connectors are valid too?

> + compatible = "boe,nv133fhm-n62";
> + power-supply = <&pp3300_dx_edp>;
> + backlight = <&backlight>;
> + hpd-gpios = <&sn65dsi86_bridge 2 GPIO_ACTIVE_HIGH>;
> +
> + port {
> + panel_in_edp: endpoint {
> + remote-endpoint = <&sn65dsi86_out>;
> + };
> + };
> + };
> + };
> };
> };
> - |
> --
> 2.31.1.751.gd2f1c929bd-goog
>