mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-04 05:50:17 +00:00 
			
		
		
		
	Copy the best rational approximation calculation routines from Linux. Typical usecase for these routines is to calculate the M/N divider values for PLLs to reach a specific clock rate. This is based on linux kernel commit: "lib/math/rational.c: fix possible incorrect result from rational fractions helper" (sha1: 323dd2c3ed0641f49e89b4e420f9eef5d3d5a881) Signed-off-by: Tero Kristo <t-kristo@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> Signed-off-by: Tero Kristo <kristo@kernel.org>
		
			
				
	
	
		
			21 lines
		
	
	
		
			639 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			639 B
		
	
	
	
		
			C
		
	
	
	
	
	
/* SPDX-License-Identifier: GPL-2.0 */
 | 
						|
/*
 | 
						|
 * rational fractions
 | 
						|
 *
 | 
						|
 * Copyright (C) 2009 emlix GmbH, Oskar Schirmer <oskar@scara.com>
 | 
						|
 *
 | 
						|
 * helper functions when coping with rational numbers,
 | 
						|
 * e.g. when calculating optimum numerator/denominator pairs for
 | 
						|
 * pll configuration taking into account restricted register size
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef _LINUX_RATIONAL_H
 | 
						|
#define _LINUX_RATIONAL_H
 | 
						|
 | 
						|
void rational_best_approximation(
 | 
						|
	unsigned long given_numerator, unsigned long given_denominator,
 | 
						|
	unsigned long max_numerator, unsigned long max_denominator,
 | 
						|
	unsigned long *best_numerator, unsigned long *best_denominator);
 | 
						|
 | 
						|
#endif /* _LINUX_RATIONAL_H */
 |