DRM: Add i.MX drm core support

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
DRM i.MX: Add parallel display support

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
DRM i.MX: Add LCDC support

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
DRM: add i.MX IPUv3 base driver

The IPU is the Image Processing Unit found on i.MX51/53 SoCs. It
features several units for image processing, this patch adds support
for the units needed for Framebuffer support, namely:

- Display Controller (dc)
- Display Interface (di)
- Display Multi Fifo Controller (dmfc)
- Display Processor (dp)
- Image DMA Controller (idmac)

This patch is based on the Freescale driver, but follows a different
approach. The Freescale code implements logical idmac channels and
the handling of the subunits is hidden in common idmac code pathes
in big switch/case statements. This patch instead just provides code
and resource management for the different subunits. The user, in this
case the framebuffer driver, decides how the different units play
together.

The IPU has other units missing in this patch:

- CMOS Sensor Interface (csi)
- Video Deinterlacer (vdi)
- Sensor Multi FIFO Controler (smfc)
- Image Converter (ic)
- Image Rotator (irt)

So expect more files to come in this directory.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
DRM: Add i.MX IPUv3 crtc support

This adds a i.MX51/53 IPU (Image Processing Unit) KMS driver. The
driver has been tested on the i.MX51 babbage board and the i.MX53
LOCO board in different clone mode and dual head setups.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
DRM i.MX: Add devicetree binding documentation

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
ARM i.MX27 pcm038: Add lcdc support

Currently just a usage example, do not commit

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
ARM i.MX53 LOCO: Add IPU support

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
ARM i.MX51: setup mipi

The mipi unit has to be brought to a sane default state. This
unit is not present on i.MX53, so we add the setup here instead
of the ipu driver.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
ARM i.MX5: initialize m4if interface

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
ARM i.MX5: Hard reset the IPU during startup

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
clk: add a __clk_set_flags function

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
ARM i.MX53 clk: Fix ldb parent clocks

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
DRM: add drm gem cma helper

Many embedded drm devices do not have a IOMMU and no dedicated
memory for graphics. These devices use cma (Contiguous Memory
Allocator) backed graphics memory. This patch provides helper
functions to be able to share the code.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
DRM: Add DRM kms/fb cma helper

This patch introduces a set of helper function for implementing the KMS
framebuffer layer for drivers which use the drm gem CMA helper function.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
DRM i.MX: WIP: add ldb support

Nonfunctional currently.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
ARM i.MX6: Add IPU device support

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
ARM i.MX6 clk: initialize some video clocks

Add clock lookups for IPU1/2 and their DI0/1 and for the
HDMI TX. Set the video PLL to 650 MHz and source the
video clocks from it.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
ARM i.MX5/6: Increase NR_IRQS for IPUv3 interrupts

i.MX6 has two IPUv3H units.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
DRM: allow create/map/destroy dumb buffer ioctls for non-master

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>