[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 06/11] ppc/pnv: PNV I2C engines assigned incorrect XSCOM addre
From: |
Glenn Miles |
Subject: |
[PATCH v4 06/11] ppc/pnv: PNV I2C engines assigned incorrect XSCOM addresses |
Date: |
Mon, 20 Nov 2023 17:51:07 -0600 |
The PNV I2C engines for power9 and power10 were being assigned a base
XSCOM address that was off by one I2C engine's address range such
that engine 0 had engine 1's address and so on. The xscom address
assignment was being based on the device tree engine numbering, which
starts at 1. Rather than changing the device tree numbering to start
with 0, the addressing was changed to be based on the existing device
tree numbers minus one.
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Fixes: 1ceda19c28a1 ("ppc/pnv: Connect PNV I2C controller to powernv10)
Signed-off-by: Glenn Miles <milesg@linux.vnet.ibm.com>
---
No changes from previous version
hw/ppc/pnv.c | 6 ++++--
hw/ppc/pnv_i2c.c | 2 +-
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index 80d25fc1bd..c29a136465 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -1631,7 +1631,8 @@ static void pnv_chip_power9_realize(DeviceState *dev,
Error **errp)
return;
}
pnv_xscom_add_subregion(chip, PNV9_XSCOM_I2CM_BASE +
- chip9->i2c[i].engine * PNV9_XSCOM_I2CM_SIZE,
+ (chip9->i2c[i].engine - 1) *
+ PNV9_XSCOM_I2CM_SIZE,
&chip9->i2c[i].xscom_regs);
qdev_connect_gpio_out(DEVICE(&chip9->i2c[i]), 0,
qdev_get_gpio_in(DEVICE(&chip9->psi),
@@ -1879,7 +1880,8 @@ static void pnv_chip_power10_realize(DeviceState *dev,
Error **errp)
return;
}
pnv_xscom_add_subregion(chip, PNV10_XSCOM_I2CM_BASE +
- chip10->i2c[i].engine * PNV10_XSCOM_I2CM_SIZE,
+ (chip10->i2c[i].engine - 1) *
+ PNV10_XSCOM_I2CM_SIZE,
&chip10->i2c[i].xscom_regs);
qdev_connect_gpio_out(DEVICE(&chip10->i2c[i]), 0,
qdev_get_gpio_in(DEVICE(&chip10->psi),
diff --git a/hw/ppc/pnv_i2c.c b/hw/ppc/pnv_i2c.c
index f75e59e709..b2c738da50 100644
--- a/hw/ppc/pnv_i2c.c
+++ b/hw/ppc/pnv_i2c.c
@@ -593,7 +593,7 @@ static int pnv_i2c_dt_xscom(PnvXScomInterface *dev, void
*fdt,
int i2c_offset;
const char i2c_compat[] = "ibm,power8-i2cm\0ibm,power9-i2cm";
uint32_t i2c_pcba = PNV9_XSCOM_I2CM_BASE +
- i2c->engine * PNV9_XSCOM_I2CM_SIZE;
+ (i2c->engine - 1) * PNV9_XSCOM_I2CM_SIZE;
uint32_t reg[2] = {
cpu_to_be32(i2c_pcba),
cpu_to_be32(PNV9_XSCOM_I2CM_SIZE)
--
2.31.1
- [PATCH v4 03/11] ppc/pnv: New powernv10-rainier machine type, (continued)
- [PATCH v4 03/11] ppc/pnv: New powernv10-rainier machine type, Glenn Miles, 2023/11/20
- Re: [PATCH v4 03/11] ppc/pnv: New powernv10-rainier machine type, Nicholas Piggin, 2023/11/20
- Re: [PATCH v4 03/11] ppc/pnv: New powernv10-rainier machine type, Cédric Le Goater, 2023/11/21
- Re: [PATCH v4 03/11] ppc/pnv: New powernv10-rainier machine type, Miles Glenn, 2023/11/21
- Re: [PATCH v4 03/11] ppc/pnv: New powernv10-rainier machine type, Cédric Le Goater, 2023/11/21
- Re: [PATCH v4 03/11] ppc/pnv: New powernv10-rainier machine type, Cédric Le Goater, 2023/11/21
- Re: [PATCH v4 03/11] ppc/pnv: New powernv10-rainier machine type, Miles Glenn, 2023/11/21
- Re: [PATCH v4 03/11] ppc/pnv: New powernv10-rainier machine type, Nicholas Piggin, 2023/11/22
Re: [PATCH v4 03/11] ppc/pnv: New powernv10-rainier machine type, Cédric Le Goater, 2023/11/21
[PATCH v4 06/11] ppc/pnv: PNV I2C engines assigned incorrect XSCOM addresses,
Glenn Miles <=
[PATCH v4 07/11] ppc/pnv: Fix PNV I2C invalid status after reset, Glenn Miles, 2023/11/20
[PATCH v4 09/11] misc: Add a pca9554 GPIO device model, Glenn Miles, 2023/11/20
[PATCH v4 04/11] ppc/pnv: Add pca9552 to powernv10-rainier for PCIe hotplug power control, Glenn Miles, 2023/11/20
[PATCH v4 10/11] ppc/pnv: Add a pca9554 I2C device to powernv10-rainier, Glenn Miles, 2023/11/20
[PATCH v4 11/11] ppc/pnv: Test pnv i2c master and connected devices, Glenn Miles, 2023/11/20