1# $NetBSD: files.i2c,v 1.126 2022/12/03 01:04:43 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 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# Taos TSL256x ambient light sensor 342device tsllux: sysmon_envsys 343attach tsllux at iic 344file dev/i2c/tsllux.c tsllux 345 346# Philips/NXP TEA5767 347device tea5767radio : radiodev 348attach tea5767radio at iic 349file dev/i2c/tea5767.c tea5767radio 350 351# Fairchild FAN53555 / Silergy SY82x regulator 352device fan53555reg 353attach fan53555reg at iic 354file dev/i2c/fan53555.c fan53555reg 355 356# Rockchip Power Management IC 357device rkpmic { } 358device rkreg: rkpmic 359attach rkpmic at iic 360attach rkreg at rkpmic 361file dev/i2c/rkpmic.c rkpmic 362 363# SSD1306 or SH1106 OLED/PLED display 364attach ssdfb at iic with ssdfb_iic 365file dev/i2c/ssdfb_i2c.c ssdfb_iic 366 367# Analogix ANX6345 eDP transmitter 368device anxedp: edid, videomode, drmkms, drmkms_i2c 369attach anxedp at iic 370file dev/i2c/anxedp.c anxedp 371makeoptions anxedp "CPPFLAGS.anxedp"+="${CPPFLAGS.drmkms}" 372 373# NXP PCA954x / PCA984x I2C switch / mux controllers 374device pcaiicmux: i2cbus, i2cmux 375attach pcaiicmux at iic 376file dev/i2c/pcai2cmux.c pcaiicmux 377 378# NXP PCA9685 16-channel, 12-bit PWM Fm+ LED controller 379device pcapwm: pwm 380attach pcapwm at iic 381file dev/i2c/pca9685.c pcapwm 382 383# TI TWL4030 Power Management IC 384device twl 385attach twl at iic 386file dev/i2c/twl4030.c twl 387 388# NXP TDA19988 HDMI encoder 389device tdahdmi: edid, videomode, drmkms, drmkms_i2c 390attach tdahdmi at iic 391file dev/i2c/tda19988.c tdahdmi 392makeoptions tdahdmi "CPPFLAGS.tdahdmi"+="${CPPFLAGS.drmkms}" 393 394# Everest Semi ES8316 Low Power Audio CODEC 395device es8316ac 396attach es8316ac at iic 397file dev/i2c/es8316ac.c es8316ac 398 399# CellWise CW2015 Fuel Gauge IC 400device cwfg: sysmon_envsys 401attach cwfg at iic 402file dev/i2c/cwfg.c cwfg 403 404# Sensirion SHT30/SHT31/SHT35 Temperature and Humidity sensor 405device sht3xtemp 406attach sht3xtemp at iic 407file dev/i2c/sht3x.c sht3xtemp 408 409# Sensirion SHT40/SHT41/SHT45 Temperature and Humidity sensor 410device sht4xtemp 411attach sht4xtemp at iic 412file dev/i2c/sht4x.c sht4xtemp 413 414# Sensirion SGP40 MOx gas sensor 415device sgp40mox 416attach sgp40mox at iic 417file dev/i2c/sgp40.c sgp40mox 418file dev/i2c/sensirion_voc_algorithm.c sgp40mox 419 420# Philips PCA955x GPIO 421device pcagpio: leds 422attach pcagpio at iic 423file dev/i2c/pcagpio.c pcagpio 424 425# Philips PCF8574 IO expander 426device pcf8574io: leds, sysmon_envsys 427attach pcf8574io at iic 428file dev/i2c/pcf8574.c pcf8574io 429 430# Sparkfun Serial motor controller 431attach scmd at iic with scmdi2c 432file dev/i2c/scmdi2c.c scmdi2c 433 434# Aosong AHT20 Temperature and Humidity sensor 435device aht20temp 436attach aht20temp at iic 437file dev/i2c/aht20.c aht20temp 438 439# Bosch Sensortec BMP280/BME280 Temperature, Humidity and Pressure sensor 440attach bmx280thp at iic with bmx280thpi2c 441file dev/i2c/bmx280thpi2c.c bmx280thpi2c 442