xref: /freebsd/sys/contrib/device-tree/Bindings/i2c/i2c-atr.yaml (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1*aa1a8ff2SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*aa1a8ff2SEmmanuel Vadot%YAML 1.2
3*aa1a8ff2SEmmanuel Vadot---
4*aa1a8ff2SEmmanuel Vadot$id: http://devicetree.org/schemas/i2c/i2c-atr.yaml#
5*aa1a8ff2SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*aa1a8ff2SEmmanuel Vadot
7*aa1a8ff2SEmmanuel Vadottitle: Common i2c address translator properties
8*aa1a8ff2SEmmanuel Vadot
9*aa1a8ff2SEmmanuel Vadotmaintainers:
10*aa1a8ff2SEmmanuel Vadot  - Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
11*aa1a8ff2SEmmanuel Vadot
12*aa1a8ff2SEmmanuel Vadotdescription:
13*aa1a8ff2SEmmanuel Vadot  An I2C Address Translator (ATR) is a device with an I2C slave parent
14*aa1a8ff2SEmmanuel Vadot  ("upstream") port and N I2C master child ("downstream") ports, and
15*aa1a8ff2SEmmanuel Vadot  forwards transactions from upstream to the appropriate downstream port
16*aa1a8ff2SEmmanuel Vadot  with a modified slave address. The address used on the parent bus is
17*aa1a8ff2SEmmanuel Vadot  called the "alias" and is (potentially) different from the physical
18*aa1a8ff2SEmmanuel Vadot  slave address of the child bus. Address translation is done by the
19*aa1a8ff2SEmmanuel Vadot  hardware.
20*aa1a8ff2SEmmanuel Vadot
21*aa1a8ff2SEmmanuel Vadotproperties:
22*aa1a8ff2SEmmanuel Vadot  i2c-alias-pool:
23*aa1a8ff2SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
24*aa1a8ff2SEmmanuel Vadot    description:
25*aa1a8ff2SEmmanuel Vadot      I2C alias pool is a pool of I2C addresses on the main I2C bus that can be
26*aa1a8ff2SEmmanuel Vadot      used to access the remote peripherals on the serializer's I2C bus. The
27*aa1a8ff2SEmmanuel Vadot      addresses must be available, not used by any other peripheral. Each
28*aa1a8ff2SEmmanuel Vadot      remote peripheral is assigned an alias from the pool, and transactions to
29*aa1a8ff2SEmmanuel Vadot      that address will be forwarded to the remote peripheral, with the address
30*aa1a8ff2SEmmanuel Vadot      translated to the remote peripheral's real address. This property is not
31*aa1a8ff2SEmmanuel Vadot      needed if there are no I2C addressable remote peripherals.
32*aa1a8ff2SEmmanuel Vadot
33*aa1a8ff2SEmmanuel VadotadditionalProperties: true
34*aa1a8ff2SEmmanuel Vadot...
35