# 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:
      # Entries are sorted alphanumerically by the compatible
      - enum:
            # Acbel fsg032 power supply
          - acbel,fsg032
            # 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
            # Temperature monitoring of Astera Labs PT5161L PCIe retimer
          - asteralabs,pt5161l
            # i2c serial eeprom (24cxx)
          - at,24c08
            # i2c h/w elliptic curve crypto module
          - atmel,atecc508a
            # ATSHA204 - i2c h/w symmetric crypto module
          - atmel,atsha204
            # ATSHA204A - i2c h/w symmetric crypto module
          - atmel,atsha204a
            # 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
            # Cisco SPI Petra
          - cisco,spi-petra
            # 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
            # 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
            # IBM On-Chip Controller hwmon device
          - ibm,p8-occ-hwmon
            # Infineon barometric pressure and temperature sensor
          - infineon,dps310
            # Infineon IR36021 digital POL buck controller
          - infineon,ir36021
            # Infineon IRPS5401 Voltage Regulator (PMIC)
          - infineon,irps5401
            # Infineon TLV493D-A1B6 I2C 3D Magnetic Sensor
          - infineon,tlv493d-a1b6
            # Infineon Hot-swap controller xdp710
          - infineon,xdp710
            # 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
            # Intersil ISL69269 PMBus Voltage Regulator
          - isil,isl69269
            # Intersil ISL76682 Ambient Light Sensor
          - isil,isl76682
            # JEDEC JESD300 (SPD5118) Hub and Serial Presence Detect
          - jedec,spd5118
            # Linear Technology LTC2488
          - lineartechnology,ltc2488
            # 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
            # 3-Channel Remote Temperature Sensor
          - maxim,max31730
            # 10-bit 10 kOhm linear programmable voltage divider
          - maxim,max5481
            # 10-bit 50 kOhm linear programmable voltage divider
          - maxim,max5482
            # 10-bit 10 kOhm linear programmable variable resistor
          - maxim,max5483
            # 10-bit 50 kOhm linear programmable 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
            # 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,mxc4005
            # 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 (10k)
          - microchip,mcp4017-103
            # Microchip 7-bit Single I2C Digital POT (100k)
          - microchip,mcp4017-104
            # Microchip 7-bit Single I2C Digital POT (5k)
          - microchip,mcp4017-502
            # Microchip 7-bit Single I2C Digital POT (50k)
          - microchip,mcp4017-503
            # Microchip 7-bit Single I2C Digital POT (10k)
          - microchip,mcp4018-103
            # Microchip 7-bit Single I2C Digital POT (100k)
          - microchip,mcp4018-104
            # Microchip 7-bit Single I2C Digital POT (5k)
          - microchip,mcp4018-502
            # Microchip 7-bit Single I2C Digital POT (50k)
          - microchip,mcp4018-503
            # Microchip 7-bit Single I2C Digital POT (10k)
          - microchip,mcp4019-103
            # Microchip 7-bit Single I2C Digital POT (100k)
          - microchip,mcp4019-104
            # Microchip 7-bit Single I2C Digital POT (5k)
          - microchip,mcp4019-502
            # Microchip 7-bit Single I2C Digital POT (50k)
          - microchip,mcp4019-503
            # PWM Fan Speed Controller With Fan Fault Detection
          - microchip,tc654
            # PWM Fan Speed Controller With Fan Fault Detection
          - microchip,tc655
            # Micron SPI NOR Authenta
          - micron,spi-authenta
            # 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
            # Monolithic Power Systems Inc. multi-phase controller mp2856
          - mps,mp2856
            # Monolithic Power Systems Inc. multi-phase controller mp2857
          - mps,mp2857
            # Monolithic Power Systems Inc. multi-phase controller mp2888
          - mps,mp2888
            # Monolithic Power Systems Inc. multi-phase controller mp2891
          - mps,mp2891
            # Monolithic Power Systems Inc. multi-phase controller mp2971
          - mps,mp2971
            # Monolithic Power Systems Inc. multi-phase controller mp2973
          - mps,mp2973
            # Monolithic Power Systems Inc. multi-phase controller mp2975
          - mps,mp2975
            # Monolithic Power Systems Inc. multi-phase controller mp2993
          - mps,mp2993
            # Monolithic Power Systems Inc. multi-phase hot-swap controller mp5920
          - mps,mp5920
            # Monolithic Power Systems Inc. multi-phase hot-swap controller mp5990
          - mps,mp5990
            # Monolithic Power Systems Inc. digital step-down converter mp9941
          - mps,mp9941
            # Monolithic Power Systems Inc. synchronous step-down converter mpq8785
          - mps,mpq8785
            # Temperature sensor with integrated fan control
          - national,lm63
            # 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
            # Nuvoton Temperature Sensor
          - nuvoton,w83773g
            # OKI ML86V7667 video decoder
          - oki,ml86v7667
            # 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 HS3001 Temperature and Relative Humidity Sensors
          - renesas,hs3001
            # Renesas ISL29501 time-of-flight sensor
          - renesas,isl29501
            # Rohm BH2228FV 8 channel DAC
          - rohm,bh2228fv
            # Rohm DH2228FV - This device does not exist, use rohm,bh2228fv instead.
          - rohm,dh2228fv
            # S524AD0XF1 (128K/256K-bit Serial EEPROM for Low Power)
          - samsung,24ad0xd1
            # Samsung Exynos SoC SATA PHY I2C device
          - samsung,exynos-sataphy-i2c
            # Semtech sx1301 baseband processor
          - semtech,sx1301
            # Sensirion multi-pixel gas sensor with I2C interface
          - sensirion,sgp30
            # Sensirion gas sensor with I2C interface
          - sensirion,sgp40
            # Sensirion low power multi-pixel gas sensor with I2C interface
          - sensirion,sgpc3
            # 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
            # Silicon Labs EM3581 Zigbee SoC with SPI interface
          - silabs,em3581
            # Silicon Labs SI3210 Programmable CMOS SLIC/CODEC with SPI interface
          - silabs,si3210
            # Relative Humidity and Temperature Sensors
          - silabs,si7005
            # Relative Humidity and Temperature Sensors
          - silabs,si7020
            # Skyworks SKY81452: Six-Channel White LED Driver with Touch Panel Bias Supply
          - skyworks,sky81452
            # SparkFun Qwiic Joystick (COM-15168) with i2c interface
          - sparkfun,qwiic-joystick
            # i2c serial eeprom (24cxx)
          - st,24c256
            # Sierra Wireless mangOH Green SPI IoT interface
          - swir,mangoh-iotport-spi
            # 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
            # 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
            # I2C Touch-Screen Controller
          - ti,tsc2003
            # Vicor Corporation Digital Supervisor
          - vicor,pli1209bc
            # Winbond/Nuvoton H/W Monitor
          - winbond,w83793

required:
  - compatible
  - reg

additionalProperties: false

...
