summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/stm/ltdc.h
diff options
context:
space:
mode:
authorSean Paul <seanpaul@chromium.org>2017-06-20 17:50:41 +0200
committerSean Paul <seanpaul@chromium.org>2017-06-20 17:50:41 +0200
commitb15cdca5b5de52dc2262c41917e8727b96b30fb0 (patch)
treef61c45517b1763e40ebc1d2fbed3af906281ead5 /drivers/gpu/drm/stm/ltdc.h
parentMerge remote-tracking branch 'origin/master' into drm-misc-next-fixes (diff)
parentMerge branch 'drm-next-4.13' of git://people.freedesktop.org/~agd5f/linux int... (diff)
downloadlinux-b15cdca5b5de52dc2262c41917e8727b96b30fb0.tar.xz
linux-b15cdca5b5de52dc2262c41917e8727b96b30fb0.zip
Merge remote-tracking branch 'airlied/drm-next' into drm-misc-next-fixes
Backmerging airlied/drm-next
Diffstat (limited to 'drivers/gpu/drm/stm/ltdc.h')
-rw-r--r--drivers/gpu/drm/stm/ltdc.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/drivers/gpu/drm/stm/ltdc.h b/drivers/gpu/drm/stm/ltdc.h
new file mode 100644
index 000000000000..d7a9c736ac1e
--- /dev/null
+++ b/drivers/gpu/drm/stm/ltdc.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) STMicroelectronics SA 2017
+ *
+ * Authors: Philippe Cornu <philippe.cornu@st.com>
+ * Yannick Fertre <yannick.fertre@st.com>
+ * Fabien Dessenne <fabien.dessenne@st.com>
+ * Mickael Reulier <mickael.reulier@st.com>
+ *
+ * License terms: GNU General Public License (GPL), version 2
+ */
+
+#ifndef _LTDC_H_
+#define _LTDC_H_
+
+struct ltdc_caps {
+ u32 hw_version; /* hardware version */
+ u32 nb_layers; /* number of supported layers */
+ u32 reg_ofs; /* register offset for applicable regs */
+ u32 bus_width; /* bus width (32 or 64 bits) */
+ const u32 *pix_fmt_hw; /* supported pixel formats */
+};
+
+struct ltdc_device {
+ struct drm_fbdev_cma *fbdev;
+ void __iomem *regs;
+ struct clk *pixel_clk; /* lcd pixel clock */
+ struct drm_panel *panel;
+ struct mutex err_lock; /* protecting error_status */
+ struct ltdc_caps caps;
+ u32 clut[256]; /* color look up table */
+ u32 error_status;
+ u32 irq_status;
+};
+
+int ltdc_crtc_enable_vblank(struct drm_device *dev, unsigned int pipe);
+void ltdc_crtc_disable_vblank(struct drm_device *dev, unsigned int pipe);
+int ltdc_load(struct drm_device *ddev);
+void ltdc_unload(struct drm_device *ddev);
+
+#endif