linux/include/drm/exynos_drm.h
<<
>>
Prefs
   1/* exynos_drm.h
   2 *
   3 * Copyright (c) 2011 Samsung Electronics Co., Ltd.
   4 * Authors:
   5 *      Inki Dae <inki.dae@samsung.com>
   6 *      Joonyoung Shim <jy0922.shim@samsung.com>
   7 *      Seung-Woo Kim <sw0312.kim@samsung.com>
   8 *
   9 * This program is free software; you can redistribute  it and/or modify it
  10 * under  the terms of  the GNU General  Public License as published by the
  11 * Free Software Foundation;  either version 2 of the  License, or (at your
  12 * option) any later version.
  13 */
  14#ifndef _EXYNOS_DRM_H_
  15#define _EXYNOS_DRM_H_
  16
  17#include <uapi/drm/exynos_drm.h>
  18
  19/**
  20 * A structure for lcd panel information.
  21 *
  22 * @timing: default video mode for initializing
  23 * @width_mm: physical size of lcd width.
  24 * @height_mm: physical size of lcd height.
  25 */
  26struct exynos_drm_panel_info {
  27        struct fb_videomode timing;
  28        u32 width_mm;
  29        u32 height_mm;
  30};
  31
  32/**
  33 * Platform Specific Structure for DRM based FIMD.
  34 *
  35 * @panel: default panel info for initializing
  36 * @default_win: default window layer number to be used for UI.
  37 * @bpp: default bit per pixel.
  38 */
  39struct exynos_drm_fimd_pdata {
  40        struct exynos_drm_panel_info panel;
  41        u32                             vidcon0;
  42        u32                             vidcon1;
  43        unsigned int                    default_win;
  44        unsigned int                    bpp;
  45};
  46
  47/**
  48 * Platform Specific Structure for DRM based HDMI.
  49 *
  50 * @hdmi_dev: device point to specific hdmi driver.
  51 * @mixer_dev: device point to specific mixer driver.
  52 *
  53 * this structure is used for common hdmi driver and each device object
  54 * would be used to access specific device driver(hdmi or mixer driver)
  55 */
  56struct exynos_drm_common_hdmi_pd {
  57        struct device *hdmi_dev;
  58        struct device *mixer_dev;
  59};
  60
  61/**
  62 * Platform Specific Structure for DRM based HDMI core.
  63 *
  64 * @is_v13: set if hdmi version 13 is.
  65 * @cfg_hpd: function pointer to configure hdmi hotplug detection pin
  66 * @get_hpd: function pointer to get value of hdmi hotplug detection pin
  67 */
  68struct exynos_drm_hdmi_pdata {
  69        bool is_v13;
  70        void (*cfg_hpd)(bool external);
  71        int (*get_hpd)(void);
  72};
  73
  74/**
  75 * Platform Specific Structure for DRM based IPP.
  76 *
  77 * @inv_pclk: if set 1. invert pixel clock
  78 * @inv_vsync: if set 1. invert vsync signal for wb
  79 * @inv_href: if set 1. invert href signal
  80 * @inv_hsync: if set 1. invert hsync signal for wb
  81 */
  82struct exynos_drm_ipp_pol {
  83        unsigned int inv_pclk;
  84        unsigned int inv_vsync;
  85        unsigned int inv_href;
  86        unsigned int inv_hsync;
  87};
  88
  89/**
  90 * Platform Specific Structure for DRM based FIMC.
  91 *
  92 * @pol: current hardware block polarity settings.
  93 * @clk_rate: current hardware clock rate.
  94 */
  95struct exynos_drm_fimc_pdata {
  96        struct exynos_drm_ipp_pol pol;
  97        int clk_rate;
  98};
  99
 100#endif  /* _EXYNOS_DRM_H_ */
 101