connecting a sn65dsi86 to displayport connector

Kieran Bingham kieran.bingham+renesas at ideasonboard.com
Tue Jul 5 15:10:20 UTC 2022


Hi Rasmus,

Quoting Rasmus Villemoes (2022-07-05 10:08:37)
> Hi
> 
> I have an imx8mp board with a sn65dsi86 and a (full-size) DisplayPort
> connector, which I'm trying to get up and running.
> 
> The display connector registers itself as a bridge; I do get
> successfully to the end of display_connector_probe(). But
> ti_sn_bridge_probe() only looks for a panel (passing NULL for the
> drm_bridge** argument), so always fails with -EPROBE_DEFER.
> 
> This text
> 
>   At the moment, this binding only handles the eDP case. It is
>   possible it will be extended in the future to handle the DP case.
>   For DP, presumably a connector would be listed under the DP AUX
>   bus instead of a panel.
> 
> in dp-aux-bus.yaml suggests that what I'm trying to do is simply not
> supported yet. But then I stumbled on commit 5a6bca1ff7a5 (arm64: dts:
> renesas: falcon-cpu: Add DSI display output), which seems to do exactly
> what I'm trying to, except with a mini dp connector. So I must be
> missing something; maybe ti_sn_bridge_probe() failing is not actually a
> problem and I could be looking at the wrong place.
> 
> Snippets from my .dts; the dp connector is currently placed at top
> level, i.e. not within an aux-bus node below the sn65dsi86:
> 
>         display_port0: connector {
>                 compatible = "dp-connector";
>                 label = "DP0";
>                 type = "full-size";
>                 dp-pwr-supply = <&reg_DP_PWR>;
> 
>                 port {
>                         dp_connector_in: endpoint {
>                                 remote-endpoint = <&sn65dsi86_out>;
>                         };
>                 };
>         };
> 
> &i2c5 {
> ...
>         eDP: bridge at 2c {
>                 compatible = "ti,sn65dsi86";
>                 reg = <0x2c>;
>                 pinctrl-names = "default";
>                 pinctrl-0 = <&pinctrl_eDP>;
> 
>                 interrupts-extended = <&gpio3 14 IRQ_TYPE_LEVEL_HIGH>;
>                 enable-gpios = <&gpio3 9 GPIO_ACTIVE_HIGH>;
> 
>                 vpll-supply = <&VDD_1V8>;
>                 vccio-supply = <&VDD_1V8>;
>                 vcca-supply = <&reg_1V2>;
>                 vcc-supply = <&reg_1V2>;
> 
>                 clocks = <&clk_38_4MHz>;
>                 clock-names = "refclk";
> 
>                 ports {
>                         #address-cells = <1>;
>                         #size-cells = <0>;
> 
>                         port at 0 {
>                                 reg = <0>;
>                                 sn65dsi86_in_a: endpoint {
>                                         remote-endpoint = <&mipi_dsi_out>;
>                                 };
>                         };
> 
>                         port at 1 {
>                                 reg = <1>;
>                                 sn65dsi86_out: endpoint {
>                                         remote-endpoint = <&dp_connector_in>;
>                                         data-lanes = <3 2 1 0>;
>                                 };
>                         };
>                 };
>         };
> };
> 
> When I manually set the enable-gpio high in U-Boot, I can talk to the
> device and e.g. read out the 8 device_id bytes which match what I expect.
> 
> Any hints would be highly appreciated.

If it helps, this is an area I've been working to support one of our
boards. I have a branch at:

 git://git.kernel.org/pub/scm/linux/kernel/git/kbingham/rcar.git
 kbingham/drm-misc/next/sn65dsi86/hpd

But it's still a work in progress, and now needs rebasing to account for
Sam's latest updates.

I intend to resume this in a few weeks, but hopefully that branch may
have some helpful pointers to get things progressing for you too.

--
Kieran


> 
> Thanks,
> Rasmus


More information about the dri-devel mailing list