# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/trivial-devices.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Trivial I2C and SPI devices

maintainers:
  - Rob Herring <robh@kernel.org>

description: |
  This is a list of trivial I2C and SPI 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.

properties:
  reg:
    maxItems: 1
  interrupts:
    maxItems: 1

  spi-max-frequency: true

  compatible:
    items:
      - enum:
            # SMBus/I2C Digital Temperature Sensor in 6-Pin SOT with SMBus Alert and Over Temperature Pin
          - ad,ad7414
            # ADM9240: Complete System Hardware Monitor for uProcessor-Based Systems
          - ad,adm9240
            # AD5110 - Nonvolatile Digital Potentiometer
          - adi,ad5110
            # Analog Devices ADP5585 Keypad Decoder and I/O Expansion
          - adi,adp5585
            # Analog Devices ADP5585 Keypad Decoder and I/O Expansion with support for Row5
          - adi,adp5585-02
            # Analog Devices ADP5589 Keypad Decoder and I/O Expansion
          - adi,adp5589
            # Analog Devices LT7182S Dual Channel 6A, 20V PolyPhase Step-Down Silent Switcher
          - adi,lt7182s
            # AMS iAQ-Core VOC Sensor
          - ams,iaq-core
            # i2c serial eeprom (24cxx)
          - at,24c08
            # i2c trusted platform module (TPM)
          - atmel,at97sc3204t
            # ATSHA204 - i2c h/w symmetric crypto module
          - atmel,atsha204
            # ATSHA204A - i2c h/w symmetric crypto module
          - atmel,atsha204a
            # i2c h/w elliptic curve crypto module
          - atmel,atecc508a
            # BPA-RS600: Power Supply
          - blutek,bpa-rs600
            # Bosch Sensortec pressure, temperature, humididty and VOC sensor
          - bosch,bme680
            # CM32181: Ambient Light Sensor
          - capella,cm32181
            # CM3232: Ambient Light Sensor
          - capella,cm3232
            # CM3323: Ambient Light Sensor
          - capella,cm3323
            # High-Precision Digital Thermometer
          - dallas,ds1631
            # Total-Elapsed-Time Recorder with Alarm
          - dallas,ds1682
            # Tiny Digital Thermometer and Thermostat
          - dallas,ds1775
            # CPU Peripheral Monitor
          - dallas,ds1780
            # CPU Supervisor with Nonvolatile Memory and Programmable I/O
          - dallas,ds4510
            # Digital Thermometer and Thermostat
          - dallas,ds75
            # Delta AHE-50DC Open19 power shelf fan control module
          - delta,ahe50dc-fan
            # Delta Electronics DPS-650-AB power supply
          - delta,dps650ab
            # Delta Electronics DPS920AB 920W 54V Power Supply
          - delta,dps920ab
            # 1/4 Brick DC/DC Regulated Power Module
          - delta,q54sj108a2
            # Devantech SRF02 ultrasonic ranger in I2C mode
          - devantech,srf02
            # Devantech SRF08 ultrasonic ranger
          - devantech,srf08
            # Devantech SRF10 ultrasonic ranger
          - devantech,srf10
            # DH electronics GmbH on-board CPLD trivial SPI device
          - dh,dhcom-board
            # DA9053: flexible system level PMIC with multicore support
          - dlg,da9053
            # DMARD05: 3-axis I2C Accelerometer
          - domintech,dmard05
            # DMARD06: 3-axis I2C Accelerometer
          - domintech,dmard06
            # DMARD05: 3-axis I2C Accelerometer
          - domintech,dmard07
            # DMARD09: 3-axis Accelerometer
          - domintech,dmard09
            # DMARD10: 3-axis Accelerometer
          - domintech,dmard10
            # MMA7660FC: 3-Axis Orientation/Motion Detection Sensor
          - fsl,mma7660
            # MMA8450Q: Xtrinsic Low-power, 3-axis Xtrinsic Accelerometer
          - fsl,mma8450
            # MPL3115: Absolute Digital Pressure Sensor
          - fsl,mpl3115
            # MPR121: Proximity Capacitive Touch Sensor Controller
          - fsl,mpr121
            # Monolithic Power Systems Inc. multi-phase controller mp2888
          - mps,mp2888
            # Monolithic Power Systems Inc. multi-phase controller mp2975
          - mps,mp2975
            # Honeywell Humidicon HIH-6130 humidity/temperature sensor
          - honeywell,hi6130
            # IBM Common Form Factor Power Supply Versions (all versions)
          - ibm,cffps
            # IBM Common Form Factor Power Supply Versions 1
          - ibm,cffps1
            # IBM Common Form Factor Power Supply Versions 2
          - ibm,cffps2
            # Infineon IR36021 digital POL buck controller
          - infineon,ir36021
            # Infineon IR38060 Voltage Regulator
          - infineon,ir38060
            # Infineon IR38064 Voltage Regulator
          - infineon,ir38064
            # Infineon IR38164 Voltage Regulator
          - infineon,ir38164
            # Infineon IR38263 Voltage Regulator
          - infineon,ir38263
            # Infineon SLB9635 (Soft-) I2C TPM (old protocol, max 100khz)
          - infineon,slb9635tt
            # Infineon SLB9645 I2C TPM (new protocol, max 400khz)
          - infineon,slb9645tt
            # Infineon SLB9673 I2C TPM 2.0
          - infineon,slb9673
            # Infineon TLV493D-A1B6 I2C 3D Magnetic Sensor
          - infineon,tlv493d-a1b6
            # Infineon Multi-phase Digital VR Controller xdpe11280
          - infineon,xdpe11280
            # Infineon Multi-phase Digital VR Controller xdpe12254
          - infineon,xdpe12254
            # Infineon Multi-phase Digital VR Controller xdpe12284
          - infineon,xdpe12284
            # Infineon Multi-phase Digital VR Controller xdpe15284
          - infineon,xdpe15284
            # Infineon Multi-phase Digital VR Controller xdpe152c4
          - infineon,xdpe152c4
            # Injoinic IP5108 2.0A Power Bank IC with I2C
          - injoinic,ip5108
            # Injoinic IP5109 2.1A Power Bank IC with I2C
          - injoinic,ip5109
            # Injoinic IP5207 1.2A Power Bank IC with I2C
          - injoinic,ip5207
            # Injoinic IP5209 2.4A Power Bank IC with I2C
          - injoinic,ip5209
            # Inspur Power System power supply unit version 1
          - inspur,ipsps1
            # Intersil ISL29028 Ambient Light and Proximity Sensor
          - isil,isl29028
            # Intersil ISL29030 Ambient Light and Proximity Sensor
          - isil,isl29030
            # Intersil ISL68137 Digital Output Configurable PWM Controller
          - isil,isl68137
            # 5 Bit Programmable, Pulse-Width Modulator
          - maxim,ds1050
            # 10 kOhm digital potentiometer with I2C interface
          - maxim,ds1803-010
            # 50 kOhm digital potentiometer with I2C interface
          - maxim,ds1803-050
            # 100 kOhm digital potentiometer with I2C interface
          - maxim,ds1803-100
            # 10 kOhm digital potentiometer with I2C interface
          - maxim,ds3502
            # Low-Power, 4-/12-Channel, 2-Wire Serial, 12-Bit ADCs
          - maxim,max1237
            # Temperature Sensor, I2C interface
          - maxim,max1619
            # 10-bit 10 kOhm linear programable voltage divider
          - maxim,max5481
            # 10-bit 50 kOhm linear programable voltage divider
          - maxim,max5482
            # 10-bit 10 kOhm linear programable variable resistor
          - maxim,max5483
            # 10-bit 50 kOhm linear programable variable resistor
          - maxim,max5484
            # PECI-to-I2C translator for PECI-to-SMBus/I2C protocol conversion
          - maxim,max6621
            # 9-Bit/12-Bit Temperature Sensors with I²C-Compatible Serial Interface
          - maxim,max6625
            # 3-Channel Remote Temperature Sensor
          - maxim,max31730
            # mCube 3-axis 8-bit digital accelerometer
          - mcube,mc3230
            # Measurement Specialities I2C temperature and humidity sensor
          - meas,htu21
            # Measurement Specialities I2C pressure and temperature sensor
          - meas,ms5637
            # Measurement Specialities I2C pressure and temperature sensor
          - meas,ms5803
            # Measurement Specialities I2C pressure and temperature sensor
          - meas,ms5805
            # Measurement Specialities I2C pressure and temperature sensor
          - meas,ms5837
            # Measurement Specialities temp and humidity part of ms8607 device
          - meas,ms8607-humidity
            # Measurement Specialities temp and pressure part of ms8607 device
          - meas,ms8607-temppressure
            # Measurement Specialties temperature sensor
          - meas,tsys01
            # MEMSIC magnetometer
          - memsic,mmc35240
            # MEMSIC 3-axis accelerometer
          - memsic,mx4005
            # MEMSIC 2-axis 8-bit digital accelerometer
          - memsic,mxc6225
            # MEMSIC 2-axis 8-bit digital accelerometer
          - memsic,mxc6255
            # MEMSIC 3-axis accelerometer
          - memsic,mxc6655
            # Menlo on-board CPLD trivial SPI device
          - menlo,m53cpld
            # Microchip differential I2C ADC, 1 Channel, 18 bit
          - microchip,mcp3421
            # Microchip differential I2C ADC, 2 Channel, 18 bit
          - microchip,mcp3422
            # Microchip differential I2C ADC, 2 Channel, 18 bit
          - microchip,mcp3423
            # Microchip differential I2C ADC, 4 Channel, 18 bit
          - microchip,mcp3424
            # Microchip differential I2C ADC, 1 Channel, 16 bit
          - microchip,mcp3425
            # Microchip differential I2C ADC, 2 Channel, 16 bit
          - microchip,mcp3426
            # Microchip differential I2C ADC, 2 Channel, 16 bit
          - microchip,mcp3427
            # Microchip differential I2C ADC, 4 Channel, 16 bit
          - microchip,mcp3428
            # Microchip 7-bit Single I2C Digital POT (5k)
          - microchip,mcp4017-502
            # Microchip 7-bit Single I2C Digital POT (10k)
          - microchip,mcp4017-103
            # Microchip 7-bit Single I2C Digital POT (50k)
          - microchip,mcp4017-503
            # Microchip 7-bit Single I2C Digital POT (100k)
          - microchip,mcp4017-104
            # Microchip 7-bit Single I2C Digital POT (5k)
          - microchip,mcp4018-502
            # Microchip 7-bit Single I2C Digital POT (10k)
          - microchip,mcp4018-103
            # Microchip 7-bit Single I2C Digital POT (50k)
          - microchip,mcp4018-503
            # Microchip 7-bit Single I2C Digital POT (100k)
          - microchip,mcp4018-104
            # Microchip 7-bit Single I2C Digital POT (5k)
          - microchip,mcp4019-502
            # Microchip 7-bit Single I2C Digital POT (10k)
          - microchip,mcp4019-103
            # Microchip 7-bit Single I2C Digital POT (50k)
          - microchip,mcp4019-503
            # Microchip 7-bit Single I2C Digital POT (100k)
          - microchip,mcp4019-104
            # PWM Fan Speed Controller With Fan Fault Detection
          - microchip,tc654
            # PWM Fan Speed Controller With Fan Fault Detection
          - microchip,tc655
            # MiraMEMS DA226 2-axis 14-bit digital accelerometer
          - miramems,da226
            # MiraMEMS DA280 3-axis 14-bit digital accelerometer
          - miramems,da280
            # MiraMEMS DA311 3-axis 12-bit digital accelerometer
          - miramems,da311
            # Temperature sensor with integrated fan control
          - national,lm63
            # I2C TEMP SENSOR
          - national,lm75
            # Serial Interface ACPI-Compatible Microprocessor System Hardware Monitor
          - national,lm80
            # Serial Interface ACPI-Compatible Microprocessor System Hardware Monitor
          - national,lm81
            # Temperature sensor with integrated fan control
          - national,lm85
            # I2C ±0.33°C Accurate, 12-Bit + Sign Temperature Sensor and Thermal Window Comparator
          - national,lm92
            # i2c trusted platform module (TPM)
          - nuvoton,npct501
            # i2c trusted platform module (TPM2)
          - nuvoton,npct601
            # Nuvoton Temperature Sensor
          - nuvoton,w83773g
            # OKI ML86V7667 video decoder
          - oki,ml86v7667
            # OV5642: Color CMOS QSXGA (5-megapixel) Image Sensor with OmniBSI and Embedded TrueFocus
          - ovti,ov5642
            # 48-Lane, 12-Port PCI Express Gen 2 (5.0 GT/s) Switch
          - plx,pex8648
            # Pulsedlight LIDAR range-finding sensor
          - pulsedlight,lidar-lite-v2
            # Renesas ISL29501 time-of-flight sensor
          - renesas,isl29501
            # S524AD0XF1 (128K/256K-bit Serial EEPROM for Low Power)
          - samsung,24ad0xd1
            # Samsung Exynos SoC SATA PHY I2C device
          - samsung,exynos-sataphy-i2c
            # Sensirion low power multi-pixel gas sensor with I2C interface
          - sensirion,sgpc3
            # Sensirion multi-pixel gas sensor with I2C interface
          - sensirion,sgp30
            # Sensirion gas sensor with I2C interface
          - sensirion,sgp40
            # Sensirion temperature & humidity sensor with I2C interface
          - sensirion,sht4x
            # Sensortek 3 axis accelerometer
          - sensortek,stk8312
            # Sensortek 3 axis accelerometer
          - sensortek,stk8ba50
            # SGX Sensortech VZ89X Sensors
          - sgx,vz89x
            # Relative Humidity and Temperature Sensors
          - silabs,si7020
            # Skyworks SKY81452: Six-Channel White LED Driver with Touch Panel Bias Supply
          - skyworks,sky81452
            # Socionext SynQuacer TPM MMIO module
          - socionext,synquacer-tpm-mmio
            # SparkFun Qwiic Joystick (COM-15168) with i2c interface
          - sparkfun,qwiic-joystick
            # i2c serial eeprom (24cxx)
          - st,24c256
            # Ambient Light Sensor with SMBUS/Two Wire Serial Interface
          - taos,tsl2550
            # Temperature Monitoring and Fan Control
          - ti,amc6821
            # Temperature and humidity sensor with i2c interface
          - ti,hdc1000
            # Temperature and humidity sensor with i2c interface
          - ti,hdc1008
            # Temperature and humidity sensor with i2c interface
          - ti,hdc1010
            # Temperature and humidity sensor with i2c interface
          - ti,hdc1050
            # Temperature and humidity sensor with i2c interface
          - ti,hdc1080
            # Thermometer with SPI interface
          - ti,lm70
          - ti,lm71
            # Temperature sensor with 2-wire interface
          - ti,lm73
            # Thermometer with SPI interface
          - ti,lm74
            # Temperature sensor with integrated fan control
          - ti,lm96000
            # I2C Touch-Screen Controller
          - ti,tsc2003
            # Low Power Digital Temperature Sensor with SMBUS/Two Wire Serial Interface
          - ti,tmp103
            # Thermometer with SPI interface
          - ti,tmp121
          - ti,tmp122
          - ti,tmp125
            # Digital Temperature Sensor
          - ti,tmp275
            # TI DC-DC converter on PMBus
          - ti,tps40400
            # TI Dual channel DCAP+ multiphase controller TPS53676 with AVSBus
          - ti,tps53676
            # TI Dual channel DCAP+ multiphase controller TPS53679
          - ti,tps53679
            # TI Dual channel DCAP+ multiphase controller TPS53688
          - ti,tps53688
            # TI DC-DC converters on PMBus
          - ti,tps544b20
          - ti,tps544b25
          - ti,tps544c20
          - ti,tps544c25
            # Winbond/Nuvoton H/W Monitor
          - winbond,w83793
            # Vicor Corporation Digital Supervisor
          - vicor,pli1209bc
            # i2c trusted platform module (TPM)
          - winbond,wpct301

required:
  - compatible
  - reg

additionalProperties: false

...
