[U-Boot] Help with ppc460sx i2c_transfer

I'm having a difficult time figuring out why I'm failing to get an ACK response generated when running the /drivers/i2c/ppc4xx_i2c.c -> i2c_transfer function. I'm using the same values as a reference boot loader from a while back (2007).
Here is my I2C configurations:
231 /* SPD i2c spd addresses */ 232 #define SPD_EEPROM_ADDRESS {0x50, 0x52}
302 #define CONFIG_SYS_I2C_SPEED 400000 /* I2C speed */ 303 304 /*#define CONFIG_SYS_I2C_MULTI_EEPROMS*/ 305 #define CONFIG_SYS_I2C_EEPROM_ADDR (0xa8>>1) 306 #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 307 #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 5 308 #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 10 309 310 /* I2C bootstrap EEPROM */ 311 #define IIC0_BOOTPROM_ADDR 0x54 312 #define IIC0_PLX_FPGA_ADDR 0x69 313 #define IIC0_PLX_PPC_ADDR 0x6A 314 315 /* I2C bootstrap EEPROM */ 316 #define CONFIG_4xx_CONFIG_I2C_EEPROM_ADDR 0x52 317 #define CONFIG_4xx_CONFIG_I2C_EEPROM_OFFSET 0 318 #define CONFIG_4xx_CONFIG_BLOCKSIZE 16 319 320 /* RTC configuration */ 321 #define CONFIG_RTC_DS1337 1 322 #define CONFIG_SYS_I2C_RTC_ADDR 0x68
The OLD, working configuration yields an ACK response. And I've noticed in the i2c_transfer function the value for "status" returns: i2c_trasfer -> status = 1 i2c_trasfer -> status = 28 i2c_trasfer -> status = 21 i2c_trasfer -> status = 8 i2c_trasfer -> status = 9
and my current port returns: i2c_trasfer -> status = 1 i2c_trasfer -> status = 4 i2c_trasfer -> status = 2
Looking at the differences between the old and new code is not revealing anything. I've got a hunch that my current port is not really accessing my i2c (0x50). If anyone is willing to provide me with any pointers I would greatly appreciate it.
Thank you
participants (1)
-
tx co