On Mon, 8 Sep 2014 10:43:36 +0200 Boris BREZILLON boris.brezillon@free-electrons.com wrote:
The Atmel HLCDC (HLCD Controller) IP available on some Atmel SoCs (i.e. at91sam9n12, at91sam9x5 family or sama5d3 family) provides a display controller device.
This display controller supports at least one primary plane and might provide several overlays and an hardware cursor depending on the IP version.
At the moment, this driver only implements an RGB connector to interface with LCD panels, but support for other kind of external devices might be added later.
Signed-off-by: Boris BREZILLON boris.brezillon@free-electrons.com Tested-by: Ludovic Desroches ludovic.desroches@atmel.com
drivers/gpu/drm/Kconfig | 2 + drivers/gpu/drm/Makefile | 1 + drivers/gpu/drm/atmel-hlcdc/Kconfig | 13 + drivers/gpu/drm/atmel-hlcdc/Makefile | 7 + drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 286 ++++++++ drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 488 +++++++++++++ drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h | 224 ++++++ drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_layer.c | 656 ++++++++++++++++++ drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_layer.h | 403 +++++++++++ drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c | 476 +++++++++++++ drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 836 +++++++++++++++++++++++ 11 files changed, 3392 insertions(+) create mode 100644 drivers/gpu/drm/atmel-hlcdc/Kconfig create mode 100644 drivers/gpu/drm/atmel-hlcdc/Makefile create mode 100644 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c create mode 100644 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c create mode 100644 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h create mode 100644 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_layer.c create mode 100644 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_layer.h create mode 100644 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c create mode 100644 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index f512004..9183a78 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -184,6 +184,8 @@ source "drivers/gpu/drm/cirrus/Kconfig"
source "drivers/gpu/drm/armada/Kconfig"
+source "drivers/gpu/drm/atmel-hlcdc/Kconfig"
source "drivers/gpu/drm/rcar-du/Kconfig"
source "drivers/gpu/drm/shmobile/Kconfig" diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile index af9a609..07d388c 100644 --- a/drivers/gpu/drm/Makefile +++ b/drivers/gpu/drm/Makefile @@ -55,6 +55,7 @@ obj-$(CONFIG_DRM_GMA500) += gma500/ obj-$(CONFIG_DRM_UDL) += udl/ obj-$(CONFIG_DRM_AST) += ast/ obj-$(CONFIG_DRM_ARMADA) += armada/ +obj-$(CONFIG_DRM_ATMEL_HLCDC) += atmel-hlcdc/ obj-$(CONFIG_DRM_RCAR_DU) += rcar-du/ obj-$(CONFIG_DRM_SHMOBILE) +=shmobile/ obj-$(CONFIG_DRM_OMAP) += omapdrm/ diff --git a/drivers/gpu/drm/atmel-hlcdc/Kconfig b/drivers/gpu/drm/atmel-hlcdc/Kconfig new file mode 100644 index 0000000..6d0d785 --- /dev/null +++ b/drivers/gpu/drm/atmel-hlcdc/Kconfig @@ -0,0 +1,13 @@ +config DRM_ATMEL_HLCDC
- tristate "DRM Support for ATMEL HLCDC Display Controller"
- depends on DRM && OF && MFD_ATMEL_HLCDC && COMMON_CLK
I forgot to remove MFD_ATMEL_HLCDC dependency which is now selected...
- select DRM_GEM_CMA_HELPER
- select DRM_KMS_HELPER
- select DRM_KMS_FB_HELPER
- select DRM_KMS_CMA_HELPER
- select DRM_PANEL
- select MFD_ATMEL_HLCDC
here.
I'll fix that for the next version.
Best Regards,
Boris