files.i2c revision 1.137
1#	$NetBSD: files.i2c,v 1.137 2025/10/24 23:16:11 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: fdt_i2c
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
127
128# Xicor X1226 Real Time Clock
129device	xrtc
130attach	xrtc at iic
131file	dev/i2c/x1226.c				xrtc
132
133# Analog Devices dBCool family of thermal monitors / fan controllers
134device dbcool: sysmon_envsys
135attach dbcool at iic
136file dev/i2c/dbcool.c			dbcool
137
138# RICOH RS5C372[AB] Real Time Clock
139device	rs5c372rtc
140attach	rs5c372rtc at iic
141file	dev/i2c/rs5c372.c		rs5c372rtc
142
143# RICOH R2025S/D Real Time Clock
144device	r2025rtc
145attach	r2025rtc at iic
146file	dev/i2c/r2025.c			r2025rtc
147
148# VESA Display Data Channel 2
149device	ddc
150define	ddc_read_edid
151attach	ddc at iic
152file	dev/i2c/ddc.c			ddc | ddc_read_edid
153
154# SGS TDA7433 audio mixer
155device	sgsmix
156attach	sgsmix at iic
157file	dev/i2c/sgsmix.c		sgsmix needs-flag
158defflag	opt_sgsmix.h	SGSMIX_DEBUG
159
160# Memory Serial Presence Detect
161attach	spdmem at iic with spdmem_iic
162file	dev/i2c/spdmem_i2c.c		spdmem_iic
163
164# Memory Temp Sensor
165device	sdtemp: sysmon_envsys
166attach	sdtemp at iic
167file	dev/i2c/sdtemp.c		sdtemp
168
169# DS1672 Real Time Clock
170device	ds1672rtc
171attach	ds1672rtc at iic
172file	dev/i2c/ds1672.c		ds1672rtc
173
174# ADM1021
175device	admtemp: sysmon_envsys
176attach	admtemp at iic
177file	dev/i2c/adm1021.c		admtemp
178
179# ADM1026 hardware monitor
180device	adm1026hm: sysmon_envsys
181attach	adm1026hm at iic
182file	dev/i2c/adm1026.c		adm1026hm
183
184# SMSC LPC47M192 hardware monitor
185device	smscmon: sysmon_envsys
186attach	smscmon at iic
187file	dev/i2c/smscmon.c		smscmon
188
189# G760a FAN controller
190device	g760a: sysmon_envsys
191attach	g760a at iic
192file	dev/i2c/g760a.c			g760a
193
194# IBM Hawk Integrated Systems Management Processor
195device	ibmhawk: sysmon_envsys
196attach	ibmhawk at iic
197file	dev/i2c/ibmhawk.c		ibmhawk
198
199# TI TPS65217
200device	tps65217pmic { }: fdt_regulator, sysmon_envsys
201device	tps65217reg: tps65217pmic
202attach	tps65217pmic at iic
203attach	tps65217reg at tps65217pmic
204file	dev/i2c/tps65217pmic.c 		tps65217pmic	needs-flag
205
206# Microchip MCP23008 / MCP23017 I/O Expander
207attach	mcpgpio at iic with mcpgpio_i2c
208file	dev/i2c/mcp23xxxgpio_i2c.c	mcpgpio_i2c
209
210# Microchip MCP980x
211device	mcp980x: sysmon_envsys
212attach	mcp980x at iic
213file	dev/i2c/mcp980x.c 		mcp980x
214
215# Nuvoton W83795G/ADG Hardware Monitor
216device	w83795g: gpiobus, sysmon_envsys, sysmon_wdog
217attach	w83795g at iic
218file	dev/i2c/w83795g.c 		w83795g
219
220# Freescale MPL115A2
221device  mpl115a: sysmon_envsys
222attach  mpl115a at iic
223file    dev/i2c/mpl115a.c		mpl115a
224
225# AXP20x Power Management Unit
226device	axp20x { }: fdt_power, fdt_regulator, sysmon_envsys
227device	axp20xreg: axp20x
228attach	axp20x at iic
229attach	axp20xreg at axp20x
230file	dev/i2c/axp20x.c			axp20x		needs-flag
231
232# AXP22x Power Management Unit
233device	axp22x: sysmon_envsys
234attach	axp22x at iic
235file	dev/i2c/axp22x.c			axp22x
236
237# X-Powers AXP Power Management IC
238device	axppmic { }: fdt_gpio, fdt_power, fdt_regulator, sysmon_envsys, sysmon_taskq
239device	axpreg: axppmic
240attach	axppmic at iic
241attach	axpreg at axppmic
242file	dev/i2c/axppmic.c			axppmic
243
244# AXP809 Power Management Unit
245device	axp809pm
246attach	axp809pm at iic
247file	dev/i2c/axp809.c			axp809pm	needs-flag
248
249# AC100 integrated audio codec and RTC
250device	ac100ic { }: fdt
251attach	ac100ic at iic
252device	ac100rtc
253attach	ac100rtc at ac100ic
254file	dev/i2c/ac100.c				ac100ic		needs-flag
255
256# ACT8846 Power Management Unit
257device	act8846pm
258attach	act8846pm at iic
259file	dev/i2c/act8846.c			act8846pm	needs-flag
260
261# Texas Instruments TMP451 Temperature Sensor
262device	titemp: sysmon_envsys
263attach	titemp at iic
264file	dev/i2c/titemp.c			titemp
265
266# AMS AS3722 Power Management IC
267device	as3722pmic { }: fdt_power, fdt_regulator, sysmon_wdog
268device	as3722reg: as3722pmic
269attach	as3722pmic at iic
270attach	as3722reg at as3722pmic
271file	dev/i2c/as3722.c			as3722pmic	needs-flag
272
273# Texas Instruments TCA8418 Keypad Scan IC
274device	tcakp: wskbddev, linux_keymap
275attach	tcakp at iic
276file	dev/i2c/tcakp.c				tcakp
277
278# MAXIM MAX77620 Power Management IC
279device	max77620pmic: fdt_gpio
280attach	max77620pmic at iic
281file	dev/i2c/max77620.c			max77620pmic
282
283# Texas Instruments TCA9539 I/O Expander
284device	tcagpio: fdt_gpio
285attach	tcagpio at iic
286file	dev/i2c/tcagpio.c			tcagpio
287
288# Silicon Lab SI7013/SI7020/SI7021 Temperature and Humidity sensor
289device si70xxtemp
290attach si70xxtemp at iic
291file dev/i2c/si70xx.c				si70xxtemp
292
293# Aosong AM2315 Temperature and Humidity sensor
294device am2315temp
295attach am2315temp at iic
296file dev/i2c/am2315.c				am2315temp
297
298# Silergy SY8106A regulator
299device	sy8106a: fdt_regulator
300attach	sy8106a at iic
301file	dev/i2c/sy8106a.c			sy8106a
302
303# Maxim DS1631 High-Precision Digital Thermometer and Thermostat
304device	dstemp: sysmon_envsys
305attach	dstemp at iic
306file	dev/i2c/dstemp.c			dstemp
307
308# EM3027 Real Time Clock and Temperature Sensor
309device	em3027rtc: sysmon_envsys
310attach	em3027rtc at iic
311file	dev/i2c/em3027.c			em3027rtc
312
313# Analog Devices AD7417 thermometer and ADC
314device	adadc: sysmon_envsys
315attach	adadc at iic
316file	dev/i2c/adadc.c				adadc
317
318# Apple Sudden Motion Sensor
319device	asms: sysmon_envsys
320attach	asms at iic
321file	dev/i2c/asms.c				asms
322
323# HID over i2c
324# HID "bus"
325define  ihidbus {[ reportid = -1 ]}
326
327# HID root device for multiple report IDs
328device  ihidev: hid, ihidbus
329attach  ihidev at iic
330file    dev/i2c/ihidev.c			ihidev
331
332# HID mice
333device	ims: hid, hidms, wsmousedev
334attach	ims at ihidbus
335file	dev/i2c/ims.c				ims
336
337# HID multitouch
338device	imt: hid, hidmt, wsmousedev
339attach	imt at ihidbus
340file	dev/i2c/imt.c				imt
341
342# HID keyboard
343device	ikbd: hid, hidkbd, wskbddev
344attach	ikbd at ihidbus
345file	dev/i2c/ikbd.c				ikbd
346
347# Taos TSL256x ambient light sensor
348device	tsllux: sysmon_envsys
349attach	tsllux at iic
350file	dev/i2c/tsllux.c			tsllux
351
352# Philips/NXP TEA5767 
353device tea5767radio : radiodev
354attach tea5767radio at iic
355file dev/i2c/tea5767.c				tea5767radio
356
357# Fairchild FAN53555 / Silergy SY82x regulator
358device	fan53555reg: fdt_regulator
359attach	fan53555reg at iic
360file	dev/i2c/fan53555.c			fan53555reg
361
362# Rockchip Power Management IC
363device	rkpmic { }: fdt_clock, fdt_power, fdt_regulator
364device	rkreg: rkpmic
365attach	rkpmic at iic
366attach	rkreg at rkpmic
367file	dev/i2c/rkpmic.c			rkpmic
368
369# SSD1306 or SH1106 OLED/PLED display
370attach	ssdfb at iic with ssdfb_iic
371file	dev/i2c/ssdfb_i2c.c			ssdfb_iic
372
373# Analogix ANX6345 eDP transmitter
374device	anxedp: edid, videomode, drmkms, drmkms_i2c
375attach	anxedp at iic
376file	dev/i2c/anxedp.c			anxedp
377makeoptions	anxedp	"CPPFLAGS.anxedp"+="${CPPFLAGS.drmkms}"
378
379# NXP PCA954x / PCA984x I2C switch / mux controllers
380device	pcaiicmux: fdt_gpio, i2cbus, i2cmux
381attach	pcaiicmux at iic
382file	dev/i2c/pcai2cmux.c			pcaiicmux
383
384# NXP PCA9685 16-channel, 12-bit PWM Fm+ LED controller
385device	pcapwm: fdt_clock, fdt_pwm
386attach	pcapwm at iic
387file	dev/i2c/pca9685.c			pcapwm
388
389# TI TWL4030 Power Management IC
390device	twl: fdt_gpio
391attach	twl at iic
392file	dev/i2c/twl4030.c			twl
393
394# NXP TDA19988 HDMI encoder
395device	tdahdmi: fdt_pinctrl, edid, videomode, drmkms, drmkms_i2c
396attach	tdahdmi at iic
397file	dev/i2c/tda19988.c			tdahdmi
398makeoptions	tdahdmi	"CPPFLAGS.tdahdmi"+="${CPPFLAGS.drmkms}"
399
400# Everest Semi ES8316 Low Power Audio CODEC
401device	es8316ac: fdt_dai
402attach	es8316ac at iic
403file	dev/i2c/es8316ac.c			es8316ac
404
405# CellWise CW2015 Fuel Gauge IC
406device	cwfg: sysmon_envsys
407attach	cwfg at iic
408file	dev/i2c/cwfg.c				cwfg
409
410# Sensirion SHT30/SHT31/SHT35 Temperature and Humidity sensor
411device sht3xtemp
412attach sht3xtemp at iic
413file dev/i2c/sht3x.c				sht3xtemp
414
415# Sensirion SHT40/SHT41/SHT45 Temperature and Humidity sensor
416device sht4xtemp
417attach sht4xtemp at iic
418file dev/i2c/sht4x.c				sht4xtemp
419
420# Sensirion SGP40 MOx gas sensor
421device sgp40mox
422attach sgp40mox at iic
423file dev/i2c/sgp40.c				sgp40mox
424file dev/i2c/sensirion_voc_algorithm.c		sgp40mox
425
426# Philips PCA955x GPIO
427device	pcagpio: leds
428attach	pcagpio at iic
429file	dev/i2c/pcagpio.c			pcagpio
430
431# Philips PCF8574 IO expander
432device	pcf8574io: leds, sysmon_envsys
433attach	pcf8574io at iic
434file	dev/i2c/pcf8574.c			pcf8574io
435
436# Sparkfun Serial motor controller
437attach  scmd at iic with scmdi2c
438file	dev/i2c/scmdi2c.c			scmdi2c
439
440# Aosong AHT20 Temperature and Humidity sensor
441device aht20temp
442attach aht20temp at iic
443file dev/i2c/aht20.c				aht20temp
444
445# Bosch Sensortec BMP280/BME280 Temperature, Humidity and Pressure sensor
446attach	bmx280thp at iic with bmx280thpi2c
447file dev/i2c/bmx280thpi2c.c			bmx280thpi2c
448
449# Maxim DS2482-100 and DS2482-800 I2C to Onewire bridge
450device ds2482ow: onewirebus
451attach ds2482ow at iic
452file dev/i2c/ds2482ow.c				ds2482ow
453
454# Onsemi FUSB302B USB-C power controller
455device fusbtc: fdt_regulator
456attach fusbtc at iic
457file dev/i2c/fusbtc.c				fusbtc
458
459# EMC-210x and EMC-230x fan controllers
460device emcfan: fdt_clock, gpiobus, sysmon_envsys
461attach emcfan at iic
462file dev/i2c/emcfan.c				emcfan
463
464# NXP SC16IS7xx UART bridge
465attach sc16is7xx at iic with sc16is7xxi2c
466file dev/i2c/sc16is7xxi2c.c			sc16is7xxi2c
467