linux/drivers/gpu/drm/mxsfb/mxsfb_drv.h
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2016 Marek Vasut <marex@denx.de>
   3 *
   4 * i.MX23/i.MX28/i.MX6SX MXSFB LCD controller driver.
   5 *
   6 * This program is free software; you can redistribute it and/or
   7 * modify it under the terms of the GNU General Public License
   8 * as published by the Free Software Foundation; either version 2
   9 * of the License, or (at your option) any later version.
  10 * This program is distributed in the hope that it will be useful,
  11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13 * GNU General Public License for more details.
  14 */
  15
  16#ifndef __MXSFB_DRV_H__
  17#define __MXSFB_DRV_H__
  18
  19struct mxsfb_devdata {
  20        unsigned int     transfer_count;
  21        unsigned int     cur_buf;
  22        unsigned int     next_buf;
  23        unsigned int     debug0;
  24        unsigned int     hs_wdth_mask;
  25        unsigned int     hs_wdth_shift;
  26        unsigned int     ipversion;
  27};
  28
  29struct mxsfb_drm_private {
  30        const struct mxsfb_devdata      *devdata;
  31
  32        void __iomem                    *base;  /* registers */
  33        struct clk                      *clk;
  34        struct clk                      *clk_axi;
  35        struct clk                      *clk_disp_axi;
  36
  37        struct drm_simple_display_pipe  pipe;
  38        struct drm_connector            connector;
  39        struct drm_panel                *panel;
  40        struct drm_fbdev_cma            *fbdev;
  41};
  42
  43int mxsfb_setup_crtc(struct drm_device *dev);
  44int mxsfb_create_output(struct drm_device *dev);
  45
  46void mxsfb_enable_axi_clk(struct mxsfb_drm_private *mxsfb);
  47void mxsfb_disable_axi_clk(struct mxsfb_drm_private *mxsfb);
  48
  49void mxsfb_crtc_enable(struct mxsfb_drm_private *mxsfb);
  50void mxsfb_crtc_disable(struct mxsfb_drm_private *mxsfb);
  51void mxsfb_plane_atomic_update(struct mxsfb_drm_private *mxsfb,
  52                               struct drm_plane_state *state);
  53
  54#endif /* __MXSFB_DRV_H__ */
  55