More troubles with bare metal i2c

It’s been a week programming an i2c driver. I finally have some code that reads and writes from certain i2c registers successfully. I am able to turn on the LED on the beagleboard and read change and display the LEDEN register. However, the VENDORID_LO, VENDORID_HI, PRODUCTID_LO and PRODUCTID_HI register all read as 0.

When I emulate the same code on QEMU, I see Vendor ID as :04 51
and product id as C0 02

For a short time, I was able to read the vendor ID and Product ID correctly on the beagleboard - that was when I was unable to get the LED working. Now it is back to reading the registers as 0.

Does anyone have any ideas about what could be happening?

Thank you.