Message ID | 1559156960-61184-1-git-send-email-anoo@linux.ibm.com |
---|---|
State | Not Applicable, archived |
Headers | show |
Series | [qemu] aspeed: Add support for the swift-bmc board | expand |
On 29/05/2019 21:09, Adriana Kobylak wrote: > From: Adriana Kobylak <anoo@us.ibm.com> > > The Swift board is an OpenPOWER system hosting POWER processors. > Add support for their BMC including the I2C devices as found on HW. > > Signed-off-by: Adriana Kobylak <anoo@us.ibm.com> This looks good ! Could you please run ./scripts/checkpatch.pl on your patch and send to mainline ? You will need to copy a few people and mailing lists. Run ./scripts/get_maintainer.pl to know who. When done, you can add : Reviewed-by: Cédric Le Goater <clg@kaod.org> Thanks, C. > --- > hw/arm/aspeed.c | 41 +++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 41 insertions(+) > > diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c > index 465e65f..db68bbf 100644 > --- a/hw/arm/aspeed.c > +++ b/hw/arm/aspeed.c > @@ -70,6 +70,9 @@ struct AspeedBoardState { > SCU_AST2500_HW_STRAP_ACPI_ENABLE | \ > SCU_HW_STRAP_SPI_MODE(SCU_HW_STRAP_SPI_MASTER)) > > +/* TODO: Swift hardware value: ? (use romulus definition for now) */ > +#define SWIFT_BMC_HW_STRAP1 ROMULUS_BMC_HW_STRAP1 > + > /* Witherspoon hardware value: 0xF10AD216 (but use romulus definition) */ > #define WITHERSPOON_BMC_HW_STRAP1 ROMULUS_BMC_HW_STRAP1 > > @@ -290,6 +293,35 @@ static void romulus_bmc_i2c_init(AspeedBoardState *bmc) > i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 11), "ds1338", 0x32); > } > > +static void swift_bmc_i2c_init(AspeedBoardState *bmc) > +{ > + AspeedSoCState *soc = &bmc->soc; > + > + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 3), "pca9552", 0x60); > + > + /* The swift board expects a TMP275 but a TMP105 is compatible */ > + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 7), "tmp105", 0x48); > + /* The swift board expects a pca9551 but a pca9552 is compatible */ > + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 7), "pca9552", 0x60); > + > + /* The swift board expects an Epson RX8900 I2C RTC but a ds1338 is > + * good enough */ > + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 8), "ds1338", 0x32); > + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 8), "pca9552", 0x60); > + > + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 9), "tmp423", 0x4c); > + /* The swift board expects a pca9539 but a pca9552 is compatible */ > + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 9), "pca9552", 0x74); > + > + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 10), "tmp423", 0x4c); > + /* The swift board expects a pca9539 but a pca9552 is compatible */ > + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 10), "pca9552", 0x74); > + > + /* The swift board expects a TMP275 but a TMP105 is compatible */ > + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 12), "tmp105", 0x48); > + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 12), "tmp105", 0x4a); > +} > + > static void witherspoon_bmc_i2c_init(AspeedBoardState *bmc) > { > AspeedSoCState *soc = &bmc->soc; > @@ -400,6 +432,15 @@ static const AspeedBoardConfig aspeed_boards[] = { > .num_cs = 2, > .i2c_init = romulus_bmc_i2c_init, > }, { > + .name = MACHINE_TYPE_NAME("swift-bmc"), > + .desc = "OpenPOWER Swift BMC (ARM1176)", > + .soc_name = "ast2500-a1", > + .hw_strap1 = SWIFT_BMC_HW_STRAP1, > + .fmc_model = "mx66l1g45g", > + .spi_model = "mx66l1g45g", > + .num_cs = 2, > + .i2c_init = swift_bmc_i2c_init, > + }, { > .name = MACHINE_TYPE_NAME("witherspoon-bmc"), > .desc = "OpenPOWER Witherspoon BMC (ARM1176)", > .soc_name = "ast2500-a1", >
diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c index 465e65f..db68bbf 100644 --- a/hw/arm/aspeed.c +++ b/hw/arm/aspeed.c @@ -70,6 +70,9 @@ struct AspeedBoardState { SCU_AST2500_HW_STRAP_ACPI_ENABLE | \ SCU_HW_STRAP_SPI_MODE(SCU_HW_STRAP_SPI_MASTER)) +/* TODO: Swift hardware value: ? (use romulus definition for now) */ +#define SWIFT_BMC_HW_STRAP1 ROMULUS_BMC_HW_STRAP1 + /* Witherspoon hardware value: 0xF10AD216 (but use romulus definition) */ #define WITHERSPOON_BMC_HW_STRAP1 ROMULUS_BMC_HW_STRAP1 @@ -290,6 +293,35 @@ static void romulus_bmc_i2c_init(AspeedBoardState *bmc) i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 11), "ds1338", 0x32); } +static void swift_bmc_i2c_init(AspeedBoardState *bmc) +{ + AspeedSoCState *soc = &bmc->soc; + + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 3), "pca9552", 0x60); + + /* The swift board expects a TMP275 but a TMP105 is compatible */ + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 7), "tmp105", 0x48); + /* The swift board expects a pca9551 but a pca9552 is compatible */ + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 7), "pca9552", 0x60); + + /* The swift board expects an Epson RX8900 I2C RTC but a ds1338 is + * good enough */ + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 8), "ds1338", 0x32); + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 8), "pca9552", 0x60); + + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 9), "tmp423", 0x4c); + /* The swift board expects a pca9539 but a pca9552 is compatible */ + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 9), "pca9552", 0x74); + + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 10), "tmp423", 0x4c); + /* The swift board expects a pca9539 but a pca9552 is compatible */ + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 10), "pca9552", 0x74); + + /* The swift board expects a TMP275 but a TMP105 is compatible */ + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 12), "tmp105", 0x48); + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 12), "tmp105", 0x4a); +} + static void witherspoon_bmc_i2c_init(AspeedBoardState *bmc) { AspeedSoCState *soc = &bmc->soc; @@ -400,6 +432,15 @@ static const AspeedBoardConfig aspeed_boards[] = { .num_cs = 2, .i2c_init = romulus_bmc_i2c_init, }, { + .name = MACHINE_TYPE_NAME("swift-bmc"), + .desc = "OpenPOWER Swift BMC (ARM1176)", + .soc_name = "ast2500-a1", + .hw_strap1 = SWIFT_BMC_HW_STRAP1, + .fmc_model = "mx66l1g45g", + .spi_model = "mx66l1g45g", + .num_cs = 2, + .i2c_init = swift_bmc_i2c_init, + }, { .name = MACHINE_TYPE_NAME("witherspoon-bmc"), .desc = "OpenPOWER Witherspoon BMC (ARM1176)", .soc_name = "ast2500-a1",