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