]> git.proxmox.com Git - mirror_qemu.git/commit - hw/i2c/aspeed_i2c.c
hw/i2c/aspeed: add DEV_ADDR in old register mode
authorKlaus Jensen <k.jensen@samsung.com>
Mon, 13 Jun 2022 12:05:48 +0000 (14:05 +0200)
committerCédric Le Goater <clg@kaod.org>
Wed, 22 Jun 2022 07:49:34 +0000 (09:49 +0200)
commitd72a712ce038df621c227c0843354c553fe91b8a
treee0c2237d5c852114ad81705818639cc3ff2df2f7
parentb03ec4ff0621cc981238ca8531cd102eebd4da89
hw/i2c/aspeed: add DEV_ADDR in old register mode

Add support for writing and reading the device address register in old
register mode.

On the AST2400 (only 1 slave address)

  * no upper bits

On the AST2500 (2 possible slave addresses),

  * bit[31] : Slave Address match indicator
  * bit[30] : Slave Address Receiving pending

On the AST2600 (3 possible slave addresses),

  * bit[31-30] : Slave Address match indicator
  * bit[29] : Slave Address Receiving pending

The model could be more precise to take into account all fields but
since the Linux driver is masking the register value being set, it
should be fine. See commit 3fb2e2aeafb2 ("i2c: aspeed: disable
additional device addresses on ast2[56]xx") from Zeiv. This can be
addressed later.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
[ clg: add details to commit log ]
Message-Id: <20220601210831.67259-3-its@irrelevant.dk>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
hw/i2c/aspeed_i2c.c
include/hw/i2c/aspeed_i2c.h