---
name: "struct_i2c_board_info"
section: "9"
platform: "linux"
package: "linux-manual-3.16"
version: "3.16.56-1+deb8u1"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/struct_i2c_board_info"
---

# struct\_i2c\_board\_info(9)

template for device creation

## NAME

struct\_i2c\_board\_info - template for device creation

## SYNOPSIS

```
struct i2c_board_info {
  char type[I2C_NAME_SIZE];
  unsigned short flags;
  unsigned short addr;
  void * platform_data;
  struct dev_archdata * archdata;
  struct device_node * of_node;
  struct acpi_dev_node acpi_node;
  int irq;
};
```

## MEMBERS

type\[I2C\_NAME\_SIZE\]

chip type, to initialize i2c\_client.name

flags

to initialize i2c\_client.flags

addr

stored in i2c\_client.addr

platform\_data

stored in i2c\_client.dev.platform\_data

archdata

copied into i2c\_client.dev.archdata

of\_node

pointer to OpenFirmware device node

acpi\_node

ACPI device node

irq

stored in i2c\_client.irq

## DESCRIPTION

I2C doesn't actually support hardware probing, although controllers and devices may be able to use I2C\_SMBUS\_QUICK to tell whether or not there's a device at a given address. Drivers commonly need more information than that, such as chip type, configuration, associated IRQ, and so on.

i2c\_board\_info is used to build tables of information listing I2C devices that are present. This information is used to grow the driver model tree. For mainboards this is done statically using **i2c\_register\_board\_info**; bus numbers identify adapters that aren't yet available. For add-on boards, **i2c\_new\_device** does this dynamically with the adapter already known.

## COPYRIGHT
