[Openpvrsgx-devgroup] CI20/JZ4780 HDMI (was Re: Status & HW to bring)

H. Nikolaus Schaller hns at goldelico.com
Mon Nov 11 15:12:52 CET 2019

Hi Paul,

> Am 11.11.2019 um 13:32 schrieb Paul Boddie <paul at boddie.org.uk>:
> On Monday 11. November 2019 10.12.44 H. Nikolaus Schaller wrote:
>> Ah, here is the relevant comment:
>> https://lore.kernel.org/patchwork/patch/549312/#731123
>> Unfortunately I have no idea what they are talking about :)
> I interpret it as the patch not using that particular week's way of doing 
> things in the Linux kernel.
>> Maybe the drivers/gpu/drm/bridge/synopsys gives hints how to improve the
>> jz4780 driver - or the synopsys driver.
> I think there is already an upstream display driver that might be made 
> suitable:
> drivers/gpu/drm/ingenic/ingenic-drm.c

This looks really good.

But seems to support jz4740 and jz4725 only.

> As for the Synopsys bridge driver, I wasn't convinced that anything else I 
> found was making use of it. I imagine that it must need to be wired up to some 
> other device, but it doesn't have the usual MODULE_DEVICE_TABLE declaration.
> Looking at other such drivers, it seems possible that the device tree 
> declaration would employ some input ports which then reference the output 
> ports of the display devices.
> For example, from arch/arm64/boot/dts/renesas/r8a77990.dtsi which uses the 
> lvds-encoder bridge driver:
>  lvds0: lvds-encoder at feb90000 {
>    compatible = "renesas,r8a77990-lvds";
>    ...
>    ports {
>      ...
>      port at 0 {
>        ...
>        lvds0_in: endpoint {
>          remote-endpoint = <&du_out_lvds0>;

Yes, this seems to resemble OMAP port/endpoint definitions.

> This kind of thing isn't done in the CI20 kernel because it doesn't have a 
> shiny-enough DRM driver, and so the display device references the HDMI device 
> in the device tree, with the code confirming this:
> drivers/gpu/drm/jz4780/jz4780_drv.c
> In fact, the port/endpoint mechanism is supported in the submitted driver (see 
> above), whereas the upstream Ingenic driver doesn't have that support, perhaps 
> because many of the devices involved don't need to enable LVDS or HDMI to get 
> video working.
> So, the Ingenic driver would need to be augmented with port/endpoint support, 
> and there would need to be a way of activating the Synopsys driver in the 
> device tree. Exactly how the latter should be done remains a mystery to me at 
> the moment.

It seems to be device tree compatible but has no .compatible. It includes
include/drm/drm_of.h and include/linux/of_graph. But there is no
config for CONFIG_DRM_DW_HDMI except _AHB_AUDIO and _CEC in
Indeed it seems to be used in or in combination with some i.MX6 SoC?
AFAIK the i.MX6 has no internal HDMI encoder, so the connection isn't
clear either.

Indeed quite confusing so far (and quite deviating from Openpvrsgx but we
need some working video output interface on the CI20 board).


More information about the openpvrsgx-devgroup mailing list