mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-04 14:00:19 +00:00 
			
		
		
		
	ppc4xx: Fix i2c divisor calcularion for PPC4xx
This patch fixes changes the i2c_init(...) function to use the function get_OPB_freq() rather than calculating the OPB speed by sysInfo.freqPLB/sysInfo.pllOpbDiv. The get_OPB_freq() function is specific per processor. The prior method was not and so was calculating the wrong speed for some PPC4xx processors. Signed-off-by: Jeffrey Mann <mannj@embeddedplanet.com> Signed-off-by: Stefan Roese <sr@denx.de>
This commit is contained in:
		
							parent
							
								
									e8aac8e7bf
								
							
						
					
					
						commit
						2ad3aba01d
					
				@ -91,7 +91,6 @@ static void _i2c_bus_reset(void)
 | 
			
		||||
 | 
			
		||||
void i2c_init(int speed, int slaveadd)
 | 
			
		||||
{
 | 
			
		||||
	sys_info_t sysInfo;
 | 
			
		||||
	unsigned long freqOPB;
 | 
			
		||||
	int val, divisor;
 | 
			
		||||
	int bus;
 | 
			
		||||
@ -124,8 +123,7 @@ void i2c_init(int speed, int slaveadd)
 | 
			
		||||
 | 
			
		||||
		/* Clock divide Register */
 | 
			
		||||
		/* get OPB frequency */
 | 
			
		||||
		get_sys_info(&sysInfo);
 | 
			
		||||
		freqOPB = sysInfo.freqPLB / sysInfo.pllOpbDiv;
 | 
			
		||||
		freqOPB = get_OPB_freq();
 | 
			
		||||
		/* set divisor according to freqOPB */
 | 
			
		||||
		divisor = (freqOPB - 1) / 10000000;
 | 
			
		||||
		if (divisor == 0)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user