---
# System prepended metadata

title: RX680R I2C Linux Guide
tags: [i2c, RX680R, Linux]

---

RX680R I2C Linux Guide
=
### 1. I2C Header of [RX680R](https://www.bcmcom.com/bcm_product_RX680R.html)

|Pin   |Function   |
| :---:   | :---:    |
|1    |+3V_DUAL    | 
|2    |I2C1_SCL    | 
|3    |I2C1_SDA    |
|4    |GND    | 

### 2. Linux Driver support
Debian 12.5 kernel 6.1.76, [drivers/mfd/intel-lpss-pci.c](https://elixir.bootlin.com/linux/v6.1.76/source/drivers/mfd/intel-lpss-pci.c#L427)
```clike=
	{ PCI_VDEVICE(INTEL, 0x7acc), (kernel_ulong_t)&bxt_i2c_info },
	{ PCI_VDEVICE(INTEL, 0x7acd), (kernel_ulong_t)&bxt_i2c_info },
	{ PCI_VDEVICE(INTEL, 0x7ace), (kernel_ulong_t)&bxt_i2c_info },
	{ PCI_VDEVICE(INTEL, 0x7acf), (kernel_ulong_t)&bxt_i2c_info },
	{ PCI_VDEVICE(INTEL, 0x7afc), (kernel_ulong_t)&bxt_i2c_info },
	{ PCI_VDEVICE(INTEL, 0x7afd), (kernel_ulong_t)&bxt_i2c_info },
```
Check driver status:
```bash=
lsmod | grep lpss
intel_lpss_pci         28672  2
intel_lpss             16384  1 intel_lpss_pci
```

### 3. Use i2c-tools to check
#### Install i2c-tools
```bash=
apt install i2c_tools
```
#### Load i2c_dev driver
```bash=
/usr/sbin/modprobe i2c-dev
lsmod | grep i2c
i2c_dev                24576  0
i2c_algo_bit           16384  1 i915
i2c_i801               36864  0
i2c_smbus              20480  1 i2c_i801
```

#### List all I2C interfaces
```bash=
/usr/sbin/i2cdetect -l
i2c-0   smbus           SMBus I801 adapter at efa0              SMBus adapter
i2c-1   i2c             Synopsys DesignWare I2C adapter         I2C adapter
i2c-2   i2c             Synopsys DesignWare I2C adapter         I2C adapter
i2c-3   i2c             Synopsys DesignWare I2C adapter         I2C adapter
i2c-4   i2c             Synopsys DesignWare I2C adapter         I2C adapter
i2c-5   i2c             Synopsys DesignWare I2C adapter         I2C adapter
i2c-6   i2c             Synopsys DesignWare I2C adapter         I2C adapter
i2c-7   i2c             i915 gmbus dpa                          I2C adapter
i2c-8   i2c             i915 gmbus dpb                          I2C adapter
i2c-9   i2c             i915 gmbus dpc                          I2C adapter
i2c-10  i2c             i915 gmbus tc1                          I2C adapter
i2c-11  i2c             i915 gmbus tc2                          I2C adapter
i2c-12  i2c             i915 gmbus tc3                          I2C adapter
i2c-13  i2c             i915 gmbus tc4                          I2C adapter
i2c-14  i2c             i915 gmbus tc5                          I2C adapter
i2c-15  i2c             i915 gmbus tc6                          I2C adapter
i2c-16  i2c             AUX USBC1/DDI TC1/PHY B                 I2C adapter
i2c-17  i2c             AUX USBC2/DDI TC2/PHY C                 I2C adapter
i2c-18  i2c             AUX USBC3/DDI TC3/PHY D                 I2C adapter
i2c-19  i2c             AUX USBC4/DDI TC4/PHY E                 I2C adapter
```
#### Detect I2C1 (i2c-2)
```bash=
/usr/sbin/i2cdetect -y -r 2
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
```
* Since there is no I2C device connected, I have verified the waveform using an oscilloscope.
