| 443 | | /* |
| 444 | | * ---- Driver types ----------------------------------------------------- |
| 445 | | * device id name + number function description, i2c address(es) |
| 446 | | * |
| 447 | | * Range 1000-1999 range is defined in sensors/sensors.h |
| 448 | | * Range 0x100 - 0x1ff is for V4L2 Common Components |
| 449 | | * Range 0xf000 - 0xffff is reserved for local experimentation, and should |
| 450 | | * never be used in official drivers |
| 451 | | */ |
| 452 | | |
| 453 | | #if 0 // v4l2-cc |
| 454 | | #define I2C_DRIVERID_MSP3400 1 |
| 455 | | #define I2C_DRIVERID_TUNER 2 |
| 456 | | #define I2C_DRIVERID_TDA8425 4 /* stereo sound processor */ |
| 457 | | #define I2C_DRIVERID_TDA9840 7 /* stereo sound processor */ |
| 458 | | #define I2C_DRIVERID_BT829 19 /* pc to tv encoder */ |
| 459 | | #endif |
| 460 | | |
| 461 | | /* Seems as we have drivers for the following devices too, |
| 462 | | I'd like to get hold of the source files -- Kyosti */ |
| 463 | | |
| 464 | | #define I2C_DRIVERID_VIDEOTEXT 3 |
| 465 | | #define I2C_DRIVERID_TEA6420 5 /* audio matrix switch */ |
| 466 | | #define I2C_DRIVERID_TEA6415C 6 /* video matrix switch */ |
| 467 | | #define I2C_DRIVERID_SAA7111A 8 /* video input processor */ |
| 468 | | #define I2C_DRIVERID_SAA5281 9 /* videotext decoder */ |
| 469 | | #define I2C_DRIVERID_SAA7112 10 /* video decoder, image scaler */ |
| 470 | | #define I2C_DRIVERID_SAA7120 11 /* video encoder */ |
| 471 | | #define I2C_DRIVERID_SAA7121 12 /* video encoder */ |
| 472 | | #define I2C_DRIVERID_SAA7185B 13 /* video encoder */ |
| 473 | | #define I2C_DRIVERID_CH7003 14 /* digital pc to tv encoder */ |
| 474 | | #define I2C_DRIVERID_PCF8574A 15 /* i2c expander - 8 bit in/out */ |
| 475 | | #define I2C_DRIVERID_PCF8582C 16 /* eeprom */ |
| 476 | | #define I2C_DRIVERID_AT24Cxx 17 /* eeprom 1/2/4/8/16 K */ |
| 477 | | |
| 478 | | #define I2C_DRIVERID_EXP0 0xF0 /* experimental use id's */ |
| 479 | | #define I2C_DRIVERID_EXP1 0xF1 |
| 480 | | #define I2C_DRIVERID_EXP2 0xF2 |
| 481 | | #define I2C_DRIVERID_EXP3 0xF3 |
| 482 | | |
| 483 | | #define I2C_DRIVERID_I2CDEV 900 |
| 484 | | #define I2C_DRIVERID_I2CPROC 901 |
| 485 | | |
| 486 | | /* |
| 487 | | * ---- Adapter types ---------------------------------------------------- |
| 488 | | * |
| 489 | | * First, we distinguish between several algorithms to access the hardware |
| 490 | | * interface types, as a PCF 8584 needs other care than a bit adapter. |
| 491 | | */ |
| 492 | | |
| 493 | | #define I2C_ALGO_NONE 0x000000 |
| 494 | | #define I2C_ALGO_BIT 0x010000 /* bit style adapters */ |
| 495 | | #define I2C_ALGO_PCF 0x020000 /* PCF 8584 style adapters */ |
| 496 | | #define I2C_ALGO_ATI 0x030000 /* ATI video card */ |
| 497 | | #define I2C_ALGO_SMBUS 0x040000 |
| 498 | | #define I2C_ALGO_ISA 0x050000 /* lm_sensors ISA pseudo-adapter */ |
| 499 | | #define I2C_ALGO_SAA7146 0x060000 /* SAA 7146 video decoder bus */ |
| 500 | | #define I2C_ALGO_SAA7146A 0x060001 /* SAA 7146A - enhanced version */ |
| 501 | | |
| 502 | | |
| 503 | | #define I2C_ALGO_EXP 0x800000 /* experimental */ |
| 504 | | |
| 505 | | #define I2C_ALGO_MASK 0xff0000 /* Mask for algorithms */ |
| 506 | | #define I2C_ALGO_SHIFT 0x10 /* right shift to get index values */ |
| 507 | | |
| 508 | | #define I2C_HW_ADAPS 0x10000 /* # adapter types */ |
| 509 | | #define I2C_HW_MASK 0xffff |
| 510 | | |
| 511 | | |
| 512 | | /* hw specific modules that are defined per algorithm layer |
| 513 | | */ |
| 514 | | |
| 515 | | /* --- Bit algorithm adapters */ |
| 516 | | #define I2C_HW_B_LP 0x00 /* Parallel port Philips style adapter */ |
| 517 | | #define I2C_HW_B_LPC 0x01 /* Parallel port, over control reg. */ |
| 518 | | #define I2C_HW_B_SER 0x02 /* Serial line interface */ |
| 519 | | #define I2C_HW_B_ELV 0x03 /* ELV Card */ |
| 520 | | #define I2C_HW_B_VELLE 0x04 /* Vellemann K8000 */ |
| 521 | | #define I2C_HW_B_BT848 0x05 /* BT848 video boards */ |
| 522 | | #define I2C_HW_B_WNV 0x06 /* Winnov Videums */ |
| 523 | | #define I2C_HW_B_VIA 0x07 /* Via vt82c586b */ |
| 524 | | #define I2C_HW_B_HYDRA 0x08 /* Apple Hydra Mac I/O */ |
| 525 | | |
| 526 | | /* --- PCF 8584 based algorithms */ |
| 527 | | #define I2C_HW_P_LP 0x00 /* Parallel port interface */ |
| 528 | | #define I2C_HW_P_ISA 0x01 /* generic ISA Bus inteface card */ |
| 529 | | #define I2C_HW_P_ELEK 0x02 /* Elektor ISA Bus inteface card */ |
| 530 | | |
| 531 | | /* --- SMBus only adapters */ |
| 532 | | #define I2C_HW_SMBUS_PIIX4 0x00 |
| 533 | | #define I2C_HW_SMBUS_ALI15X3 0x01 |
| 534 | | #define I2C_HW_SMBUS_VIA2 0x02 |
| 535 | | #define I2C_HW_SMBUS_VOODOO3 0x03 |
| 536 | | #define I2C_HW_SMBUS_I801 0x04 |
| 537 | | |
| 538 | | /* --- ISA pseudo-adapter */ |
| 539 | | #define I2C_HW_ISA 0x00 |
| 540 | | |