75bd3009d3
Many i2c device drivers used similar code to access registers on the ICs they drive. This commit implements that functionality in libi2cdriver and updates the drivers to use the library instead of their own register access functions. The net result is 375+ fewer lines of code and less work for people developing new drivers. The two exceptions were cat24c256 and parts of tda19988. They access the bus in uncommon ways. It doesn't make sense at this time to move their read/write functions into libi2cdriver. Change-Id: Id8280b71af33b710a49944d7f20a7262be9f5988 |
||
---|---|---|
.. | ||
Makefile | ||
README.txt | ||
rtc.c | ||
rtc.h | ||
tps65950.c | ||
tps65950.h |
TPS65950 Driver (Power Management IC) ===================================== Overview -------- This driver is for the power management chip commonly found on the BeagleBoard-xM. Limitations ----------- The TPS65950 has a pin labelled MSECURE which provides a form of write protection. Depending on the pin's state (high or low), writing to certain registers is disabled or enabled. The pin is driven by a GPIO on the SoC. There isn't a good way to access that pin on the SoC yet, so the PMIC is always in the default insecure mode. It isn't really insecure as this driver is the only one that the i2c bus driver will allow to access the PMIC. This is a huge chip. It has two I2C controllers, one with 4 slave addresses hosting 256 registers per address. The TRM is over 900 pages. Given the limited usefulness of some peripherals on the chip, not everything is implemented. Testing the Code ---------------- Starting up an instance: /bin/service up /usr/sbin/tps65950 -label tps65950.1.48 \ -args 'bus=1 address=0x48' Killing an instance: /bin/service down tps65950.1.48