xref: /openbmc/linux/drivers/media/i2c/aptina-pll.h (revision 1802d0be)
11802d0beSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
2cb7a01acSMauro Carvalho Chehab /*
3cb7a01acSMauro Carvalho Chehab  * Aptina Sensor PLL Configuration
4cb7a01acSMauro Carvalho Chehab  *
5cb7a01acSMauro Carvalho Chehab  * Copyright (C) 2012 Laurent Pinchart <laurent.pinchart@ideasonboard.com>
6cb7a01acSMauro Carvalho Chehab  */
7cb7a01acSMauro Carvalho Chehab 
8cb7a01acSMauro Carvalho Chehab #ifndef __APTINA_PLL_H
9cb7a01acSMauro Carvalho Chehab #define __APTINA_PLL_H
10cb7a01acSMauro Carvalho Chehab 
11cb7a01acSMauro Carvalho Chehab struct aptina_pll {
12cb7a01acSMauro Carvalho Chehab 	unsigned int ext_clock;
13cb7a01acSMauro Carvalho Chehab 	unsigned int pix_clock;
14cb7a01acSMauro Carvalho Chehab 
15cb7a01acSMauro Carvalho Chehab 	unsigned int n;
16cb7a01acSMauro Carvalho Chehab 	unsigned int m;
17cb7a01acSMauro Carvalho Chehab 	unsigned int p1;
18cb7a01acSMauro Carvalho Chehab };
19cb7a01acSMauro Carvalho Chehab 
20cb7a01acSMauro Carvalho Chehab struct aptina_pll_limits {
21cb7a01acSMauro Carvalho Chehab 	unsigned int ext_clock_min;
22cb7a01acSMauro Carvalho Chehab 	unsigned int ext_clock_max;
23cb7a01acSMauro Carvalho Chehab 	unsigned int int_clock_min;
24cb7a01acSMauro Carvalho Chehab 	unsigned int int_clock_max;
25cb7a01acSMauro Carvalho Chehab 	unsigned int out_clock_min;
26cb7a01acSMauro Carvalho Chehab 	unsigned int out_clock_max;
27cb7a01acSMauro Carvalho Chehab 	unsigned int pix_clock_max;
28cb7a01acSMauro Carvalho Chehab 
29cb7a01acSMauro Carvalho Chehab 	unsigned int n_min;
30cb7a01acSMauro Carvalho Chehab 	unsigned int n_max;
31cb7a01acSMauro Carvalho Chehab 	unsigned int m_min;
32cb7a01acSMauro Carvalho Chehab 	unsigned int m_max;
33cb7a01acSMauro Carvalho Chehab 	unsigned int p1_min;
34cb7a01acSMauro Carvalho Chehab 	unsigned int p1_max;
35cb7a01acSMauro Carvalho Chehab };
36cb7a01acSMauro Carvalho Chehab 
37cb7a01acSMauro Carvalho Chehab struct device;
38cb7a01acSMauro Carvalho Chehab 
39cb7a01acSMauro Carvalho Chehab int aptina_pll_calculate(struct device *dev,
40cb7a01acSMauro Carvalho Chehab 			 const struct aptina_pll_limits *limits,
41cb7a01acSMauro Carvalho Chehab 			 struct aptina_pll *pll);
42cb7a01acSMauro Carvalho Chehab 
43cb7a01acSMauro Carvalho Chehab #endif /* __APTINA_PLL_H */
44