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
==========		=============
abracon,abb5zes3		AB-RTCMC-32.768kHz-B5ZE-S3: Real Time Clock/Calendar Module with I2C Interface
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 (backward-compatibility value "adi,adxl345" must be listed too)
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
capella,cm3232		CM3232: 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,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)
isil,isl12057		Intersil ISL12057 I2C RTC Chip
isil,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
oki,ml86v7667		OKI ML86V7667 video decoder
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
pulsedlight,lidar-lite-v2	Pulsedlight LIDAR range-finding sensor
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)
sgx,vz89x		SGX Sensortech VZ89X Sensors
sii,s35390a		2-wire CMOS real-time clock
skyworks,sky81452	Skyworks SKY81452: Six-Channel White LED Driver with Touch Panel Bias Supply
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,ads7828		8-Channels, 12-bit ADC
ti,ads7830		8-Channels, 8-bit ADC
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)
