linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/11] drm/rockchip: add support for lvds controller and external encoders
@ 2015-01-31 16:32 Heiko Stuebner
  2015-01-31 16:32 ` [PATCH 01/11] drm/encoder: allow encoders to remember their of_node Heiko Stuebner
                   ` (11 more replies)
  0 siblings, 12 replies; 19+ messages in thread
From: Heiko Stuebner @ 2015-01-31 16:32 UTC (permalink / raw)
  To: linux-arm-kernel

This series adds support for the lvds encoder present on rk3288 soc and
allows external connectors to use the generic rgb pins.

On the older socs (rk3188, rk3066, etc) these pins where accessible by
anyone, while on the rk3288 the lvds controller controls access to them.

So while on the old socs an external encoder was explicitly connected
to one of the two lcd-controllers, on the rk3288 the lvds in between
can toggle which controller should be the source.

To facilitate this the lvds encoder can use two modes. When a panel is
attached it acts as encoder and without panel it just registers a bridge
that can be used later.

The bridge association to an encoder is done via a rockchip,rgb-bridge
property in the encoder node itself and handled in rockchip_drm_load
to not leak rockchip-specific handling into generic encoder drivers.


As example on how this can work, I've included a driver for simple
(dumb) vga encoders, like the adv7123 (and clones) as used on the
rk3288-firefly board. This same encoder is used on the Rayeager-px2
board but there connected directly to the rgb pins of the rk3066
which will hopefully also be supported in the future.

I've named this currently vga-simply (inspired by panel-simple), because
so far I have found the adv7123 (and two clones) but I guess there will
be more dumb vga encoders around that only differ in minimal things.


Similarly, most of the rk3288-based TV-boxes use a rk1000 i2c tv encoder
connected in a similar way - and again directly connected on the
rk3188-radxarock.


Caveats:
- the i2c subdirectory is probably not the right one for my vga encoder
  so if somebody could suggest where this should live, I'd be very happy
- I'm not sure if I'm abusing some drm-APIs in a wrong way :-)


Heiko Stuebner (9):
  drm/encoder: allow encoders to remember their of_node
  drm: add bindings for simple vga encoders
  drm: add driver for simple vga encoders
  drm/rockchip: lvds: register a bridge when no panel is set
  drm/rockchip: attach rgb bridge to encoders needing it
  drm/rockchip: enable rgb ouput of vops for vga and tv connectors
  ARM: dts: rockchip: add rk3288 lcdc0 pinmux settings
  ARM: dts: rockchip: add rk3288 lvds node
  ARM: dts: rockchip: add vga encoder and enable lvds on rk3288-firefly

Mark Yao (2):
  dt-bindings: Add documentation for rockchip lvds
  drm/rockchip: Add support for Rockchip Soc LVDS

 .../devicetree/bindings/drm/i2c/vga-simple.txt     |  18 +
 .../devicetree/bindings/video/rockchip-lvds.txt    |  63 ++
 .../devicetree/bindings/video/rockchip-vop.txt     |  16 +
 arch/arm/boot/dts/rk3288-firefly.dtsi              |  45 ++
 arch/arm/boot/dts/rk3288.dtsi                      |  45 ++
 drivers/gpu/drm/i2c/Kconfig                        |   6 +
 drivers/gpu/drm/i2c/Makefile                       |   2 +
 drivers/gpu/drm/i2c/vga-simple.c                   | 325 +++++++++
 drivers/gpu/drm/rockchip/Kconfig                   |   9 +
 drivers/gpu/drm/rockchip/Makefile                  |   1 +
 drivers/gpu/drm/rockchip/rockchip_drm_drv.c        |  32 +
 drivers/gpu/drm/rockchip/rockchip_drm_vop.c        |   2 +
 drivers/gpu/drm/rockchip/rockchip_lvds.c           | 756 +++++++++++++++++++++
 drivers/gpu/drm/rockchip/rockchip_lvds.h           | 107 +++
 include/drm/drm_crtc.h                             |   4 +
 15 files changed, 1431 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/drm/i2c/vga-simple.txt
 create mode 100644 Documentation/devicetree/bindings/video/rockchip-lvds.txt
 create mode 100644 drivers/gpu/drm/i2c/vga-simple.c
 create mode 100644 drivers/gpu/drm/rockchip/rockchip_lvds.c
 create mode 100644 drivers/gpu/drm/rockchip/rockchip_lvds.h

-- 
2.1.1

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2015-03-23 20:54 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-31 16:32 [PATCH 00/11] drm/rockchip: add support for lvds controller and external encoders Heiko Stuebner
2015-01-31 16:32 ` [PATCH 01/11] drm/encoder: allow encoders to remember their of_node Heiko Stuebner
2015-01-31 16:32 ` [PATCH 02/11] drm: add bindings for simple vga encoders Heiko Stuebner
2015-02-26 18:25   ` Laurent Pinchart
2015-01-31 16:32 ` [PATCH 03/11] drm: add driver " Heiko Stuebner
2015-02-26 18:33   ` Laurent Pinchart
2015-02-28  0:42     ` Heiko Stübner
2015-03-23 20:54       ` Heiko Stuebner
2015-02-26 20:35   ` Rob Herring
2015-01-31 16:32 ` [PATCH 04/11] dt-bindings: Add documentation for rockchip lvds Heiko Stuebner
2015-02-26 18:46   ` Laurent Pinchart
2015-01-31 16:32 ` [PATCH 05/11] drm/rockchip: Add support for Rockchip Soc LVDS Heiko Stuebner
2015-01-31 16:32 ` [PATCH 06/11] drm/rockchip: lvds: register a bridge when no panel is set Heiko Stuebner
2015-01-31 16:33 ` [PATCH 07/11] drm/rockchip: attach rgb bridge to encoders needing it Heiko Stuebner
2015-01-31 16:33 ` [PATCH 08/11] drm/rockchip: enable rgb ouput of vops for vga and tv connectors Heiko Stuebner
2015-01-31 16:33 ` [PATCH 09/11] ARM: dts: rockchip: add rk3288 lcdc0 pinmux settings Heiko Stuebner
2015-01-31 16:33 ` [PATCH 10/11] ARM: dts: rockchip: add rk3288 lvds node Heiko Stuebner
2015-01-31 16:33 ` [PATCH 11/11] ARM: dts: rockchip: add vga encoder and enable lvds on rk3288-firefly Heiko Stuebner
2015-02-26  8:52 ` [PATCH 00/11] drm/rockchip: add support for lvds controller and external encoders Heiko Stübner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).