1#         $NetBSD: files.i2c,v 1.132 2025/03/11 13:56:47 brad Exp $
2
3obsolete defflag    opt_i2cbus.h                  I2C_SCAN
4define    i2cbus { }
5define    i2cexec
6
7device    iic { [addr = -1] } : i2c_bitbang
8attach    iic at i2cbus
9file      dev/i2c/i2c.c                                     iic       needs-flag
10file      dev/i2c/i2c_exec.c                      iic | i2cbus | i2cexec
11file      dev/i2c/i2c_subr.c                      i2cbus
12defparam opt_i2c.h                                I2C_MAX_ADDR
13
14# Common module for bit-bang'ing an I2C bus
15define    i2c_bitbang
16file      dev/i2c/i2c_bitbang.c                             i2c_bitbang
17
18# Common module for i2c mux support
19define    i2cmux
20file      dev/i2c/i2cmux.c                        i2cmux
21
22# Auvitek AU8522 decoder
23define    au8522: i2cexec
24file      dev/i2c/au8522.c                        au8522
25
26# LG DT3303 decoder
27define    lg3303: i2cexec, dtv_math
28file      dev/i2c/lg3303.c                        lg3303
29
30# Xceive XC3028 tuner
31define    xc3028: i2cexec, firmload
32file      dev/i2c/xc3028.c                        xc3028
33
34# Xceive XC5000 tuner
35define    xc5k: i2cexec, firmload
36file      dev/i2c/xc5k.c                                    xc5k
37
38# Generic PLL-based tuners
39define    tvpll: i2cexec
40file      dev/i2c/tvpll.c                                   tvpll
41file      dev/i2c/tvpll_tuners.c                            tvpll
42
43# Nextwave NXT200x demodulator
44define    nxt2k: i2cexec, firmload
45file      dev/i2c/nxt2k.c                                   nxt2k
46
47# Microtune MT2131 silicon tuner
48define    mt2131: i2cexec
49file      dev/i2c/mt2131.c                        mt2131
50
51# Conexant/Samsung CX24227/S5H1409 demodulator
52define    cx24227: i2cexec
53file      dev/i2c/cx24227.c                       cx24227
54
55#
56# I2C master devices
57#
58define    motoi2c
59file      dev/i2c/motoi2c.c                       motoi2c
60define    mvi2c
61file      dev/i2c/gttwsi_core.c                             mvi2c
62
63#
64# I2C client devices
65#
66
67# M41T00 Real Time Clock
68device    m41trtc
69attach    m41trtc at iic
70file      dev/i2c/m41t00.c                        m41trtc
71
72# M41ST84 Real Time Clock
73device    strtc
74attach    strtc at iic
75file      dev/i2c/m41st84.c                       strtc
76
77# MAX6900 Real Time Clock
78device    maxrtc
79attach    maxrtc at iic
80file      dev/i2c/max6900.c                       maxrtc
81
82# NXP/Philips PCF8563 Real Time Clock
83device    pcf8563rtc
84attach    pcf8563rtc at iic
85file      dev/i2c/pcf8563.c                       pcf8563rtc
86
87# Philips PCF8583 Real Time Clock
88device    pcfrtc
89attach    pcfrtc at iic
90file      dev/i2c/pcf8583.c                       pcfrtc
91
92# Seiko Instruments S-xx390A Real Time Clock
93device    s390rtc
94attach    s390rtc at iic
95file      dev/i2c/s390.c                                    s390rtc
96
97# Atmel/Microchip 24Cxx Serial EEPROM
98define    at24cxx_eeprom
99device    seeprom
100attach    seeprom at iic
101file      dev/i2c/at24cxx.c                       seeprom | at24cxx_eeprom
102                                                                needs-flag
103
104# National Semiconductor LM75 temperature sensor
105device    lmtemp: sysmon_envsys
106attach    lmtemp at iic
107file      dev/i2c/lm75.c                                    lmtemp
108
109# IST-AG Humidity and Temperature sensor (P14)
110device    hythygtemp: sysmon_envsys
111attach    hythygtemp at iic
112file      dev/i2c/hytp14.c                        hythygtemp
113
114# National Semiconductor LM78 temp sensor/fan controller
115attach    lm at iic with lm_iic
116file      dev/i2c/lm_i2c.c                        lm_iic
117
118# National Semiconductor LM87 and clones system hardware monitor
119device    lmenv: sysmon_envsys
120attach    lmenv at iic
121file      dev/i2c/lm87.c                                    lmenv
122
123# Dallas DS1307 Real Time Clock
124device    dsrtc: sysmon_envsys
125attach    dsrtc at iic
126file      dev/i2c/ds1307.c                        dsrtc
127defflag opt_dsrtc.h                               DSRTC_YEAR_START_2K
128
129# Xicor X1226 Real Time Clock
130device    xrtc
131attach    xrtc at iic
132file      dev/i2c/x1226.c                                   xrtc
133
134# Analog Devices dBCool family of thermal monitors / fan controllers
135device dbcool: sysmon_envsys
136attach dbcool at iic
137file dev/i2c/dbcool.c                             dbcool
138
139# RICOH RS5C372[AB] Real Time Clock
140device    rs5c372rtc
141attach    rs5c372rtc at iic
142file      dev/i2c/rs5c372.c             rs5c372rtc
143
144# RICOH R2025S/D Real Time Clock
145device    r2025rtc
146attach    r2025rtc at iic
147file      dev/i2c/r2025.c                         r2025rtc
148
149# VESA Display Data Channel 2
150device    ddc
151define    ddc_read_edid
152attach    ddc at iic
153file      dev/i2c/ddc.c                           ddc | ddc_read_edid
154
155# SGS TDA7433 audio mixer
156device    sgsmix
157attach    sgsmix at iic
158file      dev/i2c/sgsmix.c              sgsmix needs-flag
159defflag   opt_sgsmix.h        SGSMIX_DEBUG
160
161# Memory Serial Presence Detect
162attach    spdmem at iic with spdmem_iic
163file      dev/i2c/spdmem_i2c.c                    spdmem_iic
164
165# Memory Temp Sensor
166device    sdtemp: sysmon_envsys
167attach    sdtemp at iic
168file      dev/i2c/sdtemp.c              sdtemp
169
170# DS1672 Real Time Clock
171device    ds1672rtc
172attach    ds1672rtc at iic
173file      dev/i2c/ds1672.c              ds1672rtc
174
175# ADM1021
176device    admtemp: sysmon_envsys
177attach    admtemp at iic
178file      dev/i2c/adm1021.c             admtemp
179
180# ADM1026 hardware monitor
181device    adm1026hm: sysmon_envsys
182attach    adm1026hm at iic
183file      dev/i2c/adm1026.c             adm1026hm
184
185# SMSC LPC47M192 hardware monitor
186device    smscmon: sysmon_envsys
187attach    smscmon at iic
188file      dev/i2c/smscmon.c             smscmon
189
190# G760a FAN controller
191device    g760a: sysmon_envsys
192attach    g760a at iic
193file      dev/i2c/g760a.c                         g760a
194
195# IBM Hawk Integrated Systems Management Processor
196device    ibmhawk: sysmon_envsys
197attach    ibmhawk at iic
198file      dev/i2c/ibmhawk.c             ibmhawk
199
200# TI TPS65217
201device    tps65217pmic { }: sysmon_envsys
202device    tps65217reg: tps65217pmic
203attach    tps65217pmic at iic
204attach    tps65217reg at tps65217pmic
205file      dev/i2c/tps65217pmic.c                  tps65217pmic        needs-flag
206
207# Microchip MCP23008 / MCP23017 I/O Expander
208attach    mcpgpio at iic with mcpgpio_i2c
209file      dev/i2c/mcp23xxxgpio_i2c.c    mcpgpio_i2c
210
211# Microchip MCP980x
212device    mcp980x: sysmon_envsys
213attach    mcp980x at iic
214file      dev/i2c/mcp980x.c             mcp980x
215
216# Nuvoton W83795G/ADG Hardware Monitor
217device    w83795g: gpiobus, sysmon_envsys, sysmon_wdog
218attach    w83795g at iic
219file      dev/i2c/w83795g.c             w83795g
220
221# Freescale MPL115A2
222device  mpl115a: sysmon_envsys
223attach  mpl115a at iic
224file    dev/i2c/mpl115a.c               mpl115a
225
226# AXP20x Power Management Unit
227device    axp20x { }: sysmon_envsys
228device    axp20xreg: axp20x
229attach    axp20x at iic
230attach    axp20xreg at axp20x
231file      dev/i2c/axp20x.c                        axp20x              needs-flag
232
233# AXP22x Power Management Unit
234device    axp22x: sysmon_envsys
235attach    axp22x at iic
236file      dev/i2c/axp22x.c                        axp22x
237
238# X-Powers AXP Power Management IC
239device    axppmic { }: sysmon_envsys, sysmon_taskq
240device    axpreg: axppmic
241attach    axppmic at iic
242attach    axpreg at axppmic
243file      dev/i2c/axppmic.c                       axppmic
244
245# AXP809 Power Management Unit
246device    axp809pm
247attach    axp809pm at iic
248file      dev/i2c/axp809.c                        axp809pm  needs-flag
249
250# AC100 integrated audio codec and RTC
251device    ac100ic
252attach    ac100ic at iic
253file      dev/i2c/ac100.c                                   ac100ic             needs-flag
254
255# ACT8846 Power Management Unit
256device    act8846pm
257attach    act8846pm at iic
258file      dev/i2c/act8846.c                       act8846pm needs-flag
259
260# Texas Instruments TMP451 Temperature Sensor
261device    titemp: sysmon_envsys
262attach    titemp at iic
263file      dev/i2c/titemp.c                        titemp
264
265# AMS AS3722 Power Management IC
266device    as3722pmic { }: sysmon_wdog
267device    as3722reg: as3722pmic
268attach    as3722pmic at iic
269attach    as3722reg at as3722pmic
270file      dev/i2c/as3722.c                        as3722pmic          needs-flag
271
272# Texas Instruments TCA8418 Keypad Scan IC
273device    tcakp: wskbddev, linux_keymap
274attach    tcakp at iic
275file      dev/i2c/tcakp.c                                   tcakp
276
277# MAXIM MAX77620 Power Management IC
278device    max77620pmic
279attach    max77620pmic at iic
280file      dev/i2c/max77620.c                      max77620pmic
281
282# Texas Instruments TCA9539 I/O Expander
283device    tcagpio
284attach    tcagpio at iic
285file      dev/i2c/tcagpio.c                       tcagpio
286
287# Silicon Lab SI7013/SI7020/SI7021 Temperature and Humidity sensor
288device si70xxtemp
289attach si70xxtemp at iic
290file dev/i2c/si70xx.c                                       si70xxtemp
291
292# Aosong AM2315 Temperature and Humidity sensor
293device am2315temp
294attach am2315temp at iic
295file dev/i2c/am2315.c                                       am2315temp
296
297# Silergy SY8106A regulator
298device    sy8106a
299attach    sy8106a at iic
300file      dev/i2c/sy8106a.c                       sy8106a
301
302# Maxim DS1631 High-Precision Digital Thermometer and Thermostat
303device    dstemp: sysmon_envsys
304attach    dstemp at iic
305file      dev/i2c/dstemp.c                        dstemp
306
307# EM3027 Real Time Clock and Temperature Sensor
308device    em3027rtc: sysmon_envsys
309attach    em3027rtc at iic
310file      dev/i2c/em3027.c                        em3027rtc
311
312# Analog Devices AD7417 thermometer and ADC
313device    adadc: sysmon_envsys
314attach    adadc at iic
315file      dev/i2c/adadc.c                                   adadc
316
317# Apple Sudden Motion Sensor
318device    asms: sysmon_envsys
319attach    asms at iic
320file      dev/i2c/asms.c                                    asms
321
322# HID over i2c
323# HID "bus"
324define  ihidbus {[ reportid = -1 ]}
325
326# HID root device for multiple report IDs
327device  ihidev: hid, ihidbus
328attach  ihidev at iic
329file    dev/i2c/ihidev.c                          ihidev
330
331# HID mice
332device    ims: hid, hidms, wsmousedev
333attach    ims at ihidbus
334file      dev/i2c/ims.c                                     ims
335
336# HID multitouch
337device    imt: hid, hidmt, wsmousedev
338attach    imt at ihidbus
339file      dev/i2c/imt.c                                     imt
340
341# HID keyboard
342device    ikbd: hid, hidkbd, wskbddev
343attach    ikbd at ihidbus
344file      dev/i2c/ikbd.c                                    ikbd
345
346# Taos TSL256x ambient light sensor
347device    tsllux: sysmon_envsys
348attach    tsllux at iic
349file      dev/i2c/tsllux.c                        tsllux
350
351# Philips/NXP TEA5767
352device tea5767radio : radiodev
353attach tea5767radio at iic
354file dev/i2c/tea5767.c                                      tea5767radio
355
356# Fairchild FAN53555 / Silergy SY82x regulator
357device    fan53555reg
358attach    fan53555reg at iic
359file      dev/i2c/fan53555.c                      fan53555reg
360
361# Rockchip Power Management IC
362device    rkpmic { }
363device    rkreg: rkpmic
364attach    rkpmic at iic
365attach    rkreg at rkpmic
366file      dev/i2c/rkpmic.c                        rkpmic
367
368# SSD1306 or SH1106 OLED/PLED display
369attach    ssdfb at iic with ssdfb_iic
370file      dev/i2c/ssdfb_i2c.c                     ssdfb_iic
371
372# Analogix ANX6345 eDP transmitter
373device    anxedp: edid, videomode, drmkms, drmkms_i2c
374attach    anxedp at iic
375file      dev/i2c/anxedp.c                        anxedp
376makeoptions         anxedp    "CPPFLAGS.anxedp"+="${CPPFLAGS.drmkms}"
377
378# NXP PCA954x / PCA984x I2C switch / mux controllers
379device    pcaiicmux: i2cbus, i2cmux
380attach    pcaiicmux at iic
381file      dev/i2c/pcai2cmux.c                     pcaiicmux
382
383# NXP PCA9685 16-channel, 12-bit PWM Fm+ LED controller
384device    pcapwm: pwm
385attach    pcapwm at iic
386file      dev/i2c/pca9685.c                       pcapwm
387
388# TI TWL4030 Power Management IC
389device    twl
390attach    twl at iic
391file      dev/i2c/twl4030.c                       twl
392
393# NXP TDA19988 HDMI encoder
394device    tdahdmi: edid, videomode, drmkms, drmkms_i2c
395attach    tdahdmi at iic
396file      dev/i2c/tda19988.c                      tdahdmi
397makeoptions         tdahdmi   "CPPFLAGS.tdahdmi"+="${CPPFLAGS.drmkms}"
398
399# Everest Semi ES8316 Low Power Audio CODEC
400device    es8316ac
401attach    es8316ac at iic
402file      dev/i2c/es8316ac.c                      es8316ac
403
404# CellWise CW2015 Fuel Gauge IC
405device    cwfg: sysmon_envsys
406attach    cwfg at iic
407file      dev/i2c/cwfg.c                                    cwfg
408
409# Sensirion SHT30/SHT31/SHT35 Temperature and Humidity sensor
410device sht3xtemp
411attach sht3xtemp at iic
412file dev/i2c/sht3x.c                                        sht3xtemp
413
414# Sensirion SHT40/SHT41/SHT45 Temperature and Humidity sensor
415device sht4xtemp
416attach sht4xtemp at iic
417file dev/i2c/sht4x.c                                        sht4xtemp
418
419# Sensirion SGP40 MOx gas sensor
420device sgp40mox
421attach sgp40mox at iic
422file dev/i2c/sgp40.c                                        sgp40mox
423file dev/i2c/sensirion_voc_algorithm.c            sgp40mox
424
425# Philips PCA955x GPIO
426device    pcagpio: leds
427attach    pcagpio at iic
428file      dev/i2c/pcagpio.c                       pcagpio
429
430# Philips PCF8574 IO expander
431device    pcf8574io: leds, sysmon_envsys
432attach    pcf8574io at iic
433file      dev/i2c/pcf8574.c                       pcf8574io
434
435# Sparkfun Serial motor controller
436attach  scmd at iic with scmdi2c
437file      dev/i2c/scmdi2c.c                       scmdi2c
438
439# Aosong AHT20 Temperature and Humidity sensor
440device aht20temp
441attach aht20temp at iic
442file dev/i2c/aht20.c                                        aht20temp
443
444# Bosch Sensortec BMP280/BME280 Temperature, Humidity and Pressure sensor
445attach    bmx280thp at iic with bmx280thpi2c
446file dev/i2c/bmx280thpi2c.c                       bmx280thpi2c
447
448# Maxim DS2482-100 and DS2482-800 I2C to Onewire bridge
449device ds2482ow: onewirebus
450attach ds2482ow at iic
451file dev/i2c/ds2482ow.c                                     ds2482ow
452
453# EMC-210x and EMC-230x fan controllers
454device emcfan: gpiobus, sysmon_envsys
455attach emcfan at iic
456file dev/i2c/emcfan.c                                       emcfan
457