58 lines
1.2 KiB
C
58 lines
1.2 KiB
C
/*
|
|
* Copyright (C) 2014 Freescale Semiconductor, Inc. All Rights Reserved.
|
|
*/
|
|
|
|
/*
|
|
* The code contained herein is licensed under the GNU General Public
|
|
* License. You may obtain a copy of the GNU General Public License
|
|
* Version 2 or later at the following locations:
|
|
*
|
|
* http://www.opensource.org/licenses/gpl-license.html
|
|
* http://www.gnu.org/copyleft/gpl.html
|
|
*/
|
|
#ifndef __CRTC__
|
|
#define __CRTC__
|
|
|
|
enum crtc {
|
|
CRTC_IPU_DI0,
|
|
CRTC_IPU_DI1,
|
|
CRTC_IPU1_DI0,
|
|
CRTC_IPU1_DI1,
|
|
CRTC_IPU2_DI0,
|
|
CRTC_IPU2_DI1,
|
|
CRTC_LCDIF,
|
|
CRTC_LCDIF1,
|
|
CRTC_LCDIF2,
|
|
CRTC_MAX,
|
|
};
|
|
|
|
struct ipu_di_crtc_map {
|
|
enum crtc crtc;
|
|
int ipu_id;
|
|
int ipu_di;
|
|
};
|
|
|
|
static const struct ipu_di_crtc_map ipu_di_crtc_maps[] = {
|
|
{CRTC_IPU1_DI0, 0 , 0}, {CRTC_IPU1_DI1, 0 , 1},
|
|
{CRTC_IPU2_DI0, 1 , 0}, {CRTC_IPU2_DI1, 1 , 1},
|
|
};
|
|
|
|
static inline int ipu_di_to_crtc(struct device *dev, int ipu_id,
|
|
int ipu_di, enum crtc *crtc)
|
|
{
|
|
int i = 0;
|
|
|
|
for (; i < ARRAY_SIZE(ipu_di_crtc_maps); i++)
|
|
if (ipu_di_crtc_maps[i].ipu_id == ipu_id &&
|
|
ipu_di_crtc_maps[i].ipu_di == ipu_di) {
|
|
*crtc = ipu_di_crtc_maps[i].crtc;
|
|
return 0;
|
|
}
|
|
|
|
dev_err(dev, "failed to get valid ipu di crtc "
|
|
"ipu_id %d, ipu_di %d\n", ipu_id, ipu_di);
|
|
return -EINVAL;
|
|
}
|
|
|
|
#endif
|