# 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 that have simple device tree bindings

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
            # 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
            # +/-1C TDM Extended Temp Range I.C
          - adi,adt7461
            # +/-1C TDM Extended Temp Range I.C
          - adt7461
            # AMS iAQ-Core VOC Sensor
          - ams,iaq-core
            # i2c serial eeprom  (24cxx)
          - at,24c08
            # i2c trusted platform module (TPM)
          - atmel,at97sc3204t
            # 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
            # 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 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
            # DA9053: flexible system level PMIC with multicore support
          - dlg,da9053
            # DA9063: system PMIC for quad-core application processors
          - dlg,da9063
            # 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
            # G751: Digital Temperature Sensor and Thermal Watchdog with Two-Wire Interface
          - gmt,g751
            # Infineon IR36021 digital POL buck controller
          - infineon,ir36021
            # Infineon IR38064 Voltage Regulator
          - infineon,ir38064
            # Infineon SLB9635 (Soft-) I2C TPM (old protocol, max 100khz)
          - infineon,slb9635tt
            # Infineon SLB9645 I2C TPM (new protocol, max 400khz)
          - infineon,slb9645tt
            # Infineon TLV493D-A1B6 I2C 3D Magnetic Sensor
          - infineon,tlv493d-a1b6
            # Infineon Multi-phase Digital VR Controller xdpe12254
          - infineon,xdpe12254
            # Infineon Multi-phase Digital VR Controller xdpe12284
          - infineon,xdpe12284
            # 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
            # Low-Power, 4-/12-Channel, 2-Wire Serial, 12-Bit ADCs
          - maxim,max1237
            # 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
            # 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
            # Sensirion low power multi-pixel gas sensor with I2C interface
          - sensirion,sgpc3
            # Sensirion multi-pixel gas sensor with I2C interface
          - sensirion,sgp30
            # 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
            # i2c serial eeprom  (24cxx)
          - sparkfun,qwiic-joystick
            # SparkFun Qwiic Joystick (COM-15168) with i2c interface
          - 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
            # Temperature sensor with 2-wire interface
          - ti,lm73
            # 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,tmp102
            # Low Power Digital Temperature Sensor with SMBUS/Two Wire Serial Interface
          - ti,tmp103
            # Digital Temperature Sensor
          - ti,tmp275
            # 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
            # Winbond/Nuvoton H/W Monitor
          - winbond,w83793
            # i2c trusted platform module (TPM)
          - winbond,wpct301

required:
  - compatible
  - reg

additionalProperties: false

...
