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
adi,adt7473		+/-1C TDM Extended Temp Range I.C
adi,adt7475		+/-1C TDM Extended Temp Range I.C
adi,adt7476		+/-1C TDM Extended Temp Range I.C
adi,adt7490		+/-1C TDM Extended Temp Range I.C
adi,adxl345		Three-Axis Digital Accelerometer
adi,adxl346		Three-Axis Digital Accelerometer
adi,adxl34x		Three-Axis Digital Accelerometer
at,24c08		i2c serial eeprom  (24cxx)
atmel,24c00		i2c serial eeprom  (24cxx)
atmel,24c01		i2c serial eeprom  (24cxx)
atmel,24c02		i2c serial eeprom  (24cxx)
atmel,24c04		i2c serial eeprom  (24cxx)
atmel,24c16		i2c serial eeprom  (24cxx)
atmel,24c32		i2c serial eeprom  (24cxx)
atmel,24c64		i2c serial eeprom  (24cxx)
atmel,24c128		i2c serial eeprom  (24cxx)
atmel,24c256		i2c serial eeprom  (24cxx)
atmel,24c512		i2c serial eeprom  (24cxx)
atmel,24c1024		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,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
dlg,da9053		DA9053: flexible system level PMIC with multicore support
dlg,da9063		DA9063: system PMIC for quad-core application processors
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,mma8452		MMA8452Q: 3-axis 12-bit / 8-bit Digital 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
isil,isl29028           (deprecated, use isl)
isl,isl29028            Intersil ISL29028 Ambient Light and Proximity Sensor
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,lm63		Temperature sensor with integrated fan control
national,lm75		I2C TEMP SENSOR
national,lm80		Serial Interface ACPI-Compatible Microprocessor System Hardware Monitor
national,lm85		Temperature sensor with integrated fan control
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
nxp,pcf85063		Tiny Real-Time Clock
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,r2025sd		I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
ricoh,r2221tl		I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
ricoh,rs5c372a		I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
ricoh,rs5c372b		I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
ricoh,rv5c386		I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
ricoh,rv5c387a		I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
samsung,24ad0xd1	S524AD0XF1 (128K/256K-bit Serial EEPROM for Low Power)
sii,s35390a		2-wire CMOS real-time clock
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,tmp103		Low Power Digital Temperature Sensor with SMBUS/Two Wire Serial Interface
ti,tmp275		Digital Temperature Sensor
winbond,wpct301		i2c trusted platform module (TPM)
