This is a list of trivial i2c devices that have simple device tree
bindings, consisting only of a compatible field, an address and
possibly an interrupt line.

If a device needs more specific bindings, such as properties to
describe some aspect of it, there needs to be a specific binding
document for it just like any other devices.


Compatible		Vendor / Chip
==========		=============
ad,ad7414		SMBus/I2C Digital Temperature Sensor in 6-Pin SOT with SMBus Alert and Over Temperature Pin
ad,adm9240		ADM9240:  Complete System Hardware Monitor for uProcessor-Based Systems
adi,adt7461		+/-1C TDM Extended Temp Range I.C
adt7461			+/-1C TDM Extended Temp Range I.C
at,24c08		i2c serial eeprom  (24cxx)
atmel,24c02		i2c serial eeprom  (24cxx)
atmel,at97sc3204t	i2c trusted platform module (TPM)
capella,cm32181		CM32181: Ambient Light Sensor
catalyst,24c32		i2c serial eeprom
cirrus,cs42l51		Cirrus Logic CS42L51 audio codec
dallas,ds1307		64 x 8, Serial, I2C Real-Time Clock
dallas,ds1338		I2C RTC with 56-Byte NV RAM
dallas,ds1339		I2C Serial Real-Time Clock
dallas,ds1340		I2C RTC with Trickle Charger
dallas,ds1374		I2C, 32-Bit Binary Counter Watchdog RTC with Trickle Charger and Reset Input/Output
dallas,ds1631		High-Precision Digital Thermometer
dallas,ds1682		Total-Elapsed-Time Recorder with Alarm
dallas,ds1775		Tiny Digital Thermometer and Thermostat
dallas,ds3232		Extremely Accurate I²C RTC with Integrated Crystal and SRAM
dallas,ds4510		CPU Supervisor with Nonvolatile Memory and Programmable I/O
dallas,ds75		Digital Thermometer and Thermostat
dialog,da9053		DA9053: flexible system level PMIC with multicore support
epson,rx8025		High-Stability. I2C-Bus INTERFACE REAL TIME CLOCK MODULE
epson,rx8581		I2C-BUS INTERFACE REAL TIME CLOCK MODULE
fsl,mag3110		MAG3110: Xtrinsic High Accuracy, 3D Magnetometer
fsl,mc13892		MC13892: Power Management Integrated Circuit (PMIC) for i.MX35/51
fsl,mma8450		MMA8450Q: Xtrinsic Low-power, 3-axis Xtrinsic Accelerometer
fsl,mpr121		MPR121: Proximity Capacitive Touch Sensor Controller
fsl,sgtl5000		SGTL5000: Ultra Low-Power Audio Codec
gmt,g751		G751: Digital Temperature Sensor and Thermal Watchdog with Two-Wire Interface
infineon,slb9635tt	Infineon SLB9635 (Soft-) I2C TPM (old protocol, max 100khz)
infineon,slb9645tt	Infineon SLB9645 I2C TPM (new protocol, max 400khz)
isl,isl12057		Intersil ISL12057 I2C RTC Chip
maxim,ds1050		5 Bit Programmable, Pulse-Width Modulator
maxim,max1237		Low-Power, 4-/12-Channel, 2-Wire Serial, 12-Bit ADCs
maxim,max6625		9-Bit/12-Bit Temperature Sensors with I²C-Compatible Serial Interface
mc,rv3029c2		Real Time Clock Module with I2C-Bus
national,lm75		I2C TEMP SENSOR
national,lm80		Serial Interface ACPI-Compatible Microprocessor System Hardware Monitor
national,lm92		±0.33°C Accurate, 12-Bit + Sign Temperature Sensor and Thermal Window Comparator with Two-Wire Interface
nuvoton,npct501		i2c trusted platform module (TPM)
nxp,pca9556		Octal SMBus and I2C registered interface
nxp,pca9557		8-bit I2C-bus and SMBus I/O port with reset
nxp,pcf8563		Real-time clock/calendar
ovti,ov5642		OV5642: Color CMOS QSXGA (5-megapixel) Image Sensor with OmniBSI and Embedded TrueFocus
pericom,pt7c4338	Real-time Clock Module
plx,pex8648		48-Lane, 12-Port PCI Express Gen 2 (5.0 GT/s) Switch
ramtron,24c64		i2c serial eeprom  (24cxx)
ricoh,rs5c372a		I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
samsung,24ad0xd1	S524AD0XF1 (128K/256K-bit Serial EEPROM for Low Power)
st-micro,24c256		i2c serial eeprom  (24cxx)
stm,m41t00		Serial Access TIMEKEEPER
stm,m41t62		Serial real-time clock (RTC) with alarm
stm,m41t80		M41T80 - SERIAL ACCESS RTC WITH ALARMS
taos,tsl2550		Ambient Light Sensor with SMBUS/Two Wire Serial Interface
ti,tsc2003		I2C Touch-Screen Controller
ti,tmp102		Low Power Digital Temperature Sensor with SMBUS/Two Wire Serial Interface
ti,tmp275		Digital Temperature Sensor
winbond,wpct301		i2c trusted platform module (TPM)
