[Skiboot] [PATCH 02/13] i2c: Workaround bad clock-frequency property from HostBoot

Jeremy Kerr jk at ozlabs.org
Fri Feb 27 20:11:06 AEDT 2015


From: Benjamin Herrenschmidt <benh at kernel.crashing.org>

The cell clock is 50Mhz on P8, not 600Mhz ! Remove this when HB has
been fixed.

Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
Signed-off-by: Jeremy Kerr <jk at ozlabs.org>

---
 hw/p8-i2c.c |    6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/hw/p8-i2c.c b/hw/p8-i2c.c
index 061bdaf..52b9489 100644
--- a/hw/p8-i2c.c
+++ b/hw/p8-i2c.c
@@ -1173,6 +1173,12 @@ static void p8_i2c_init_one(struct dt_node *i2cm, enum p8_i2c_master_type type)
 	/* Local bus speed in Hz */
 	lb_freq = dt_prop_get_u32(i2cm, "clock-frequency");
 
+	/* XXX HACK for bad HB value */
+	if (lb_freq == 600000000) {
+		prlog(PR_ERR, "I2C: Fixing up HB bad clock freq !\n");
+		lb_freq = 50000000;
+	}
+
 	/* Initialise the i2c master structure */
 	master->state = state_idle;
 	master->chip_id = dt_get_chip_id(i2cm);


More information about the Skiboot mailing list