On 10/11/2017 05:49 AM, Andrew Jeffery wrote: > On Tue, 2017-10-10 at 15:30 +0200, Cédric Le Goater wrote: >> On 10/09/2017 02:04 AM, Andrew Jeffery wrote: >>> On Wed, 2017-09-20 at 09:01 +0200, Cédric Le Goater wrote: >>>> The Witherspoon boards are OpenPOWER system hosting POWER9 Processors. >>>> Let's add support for their BMC including a couple of I2C devices as >>>> found on real HW. >>>> >>>>>>> Signed-off-by: Cédric Le Goater <c...@kaod.org> >>>> --- >>>> hw/arm/aspeed.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ >>>> 1 file changed, 49 insertions(+) >>>> >>>> diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c >>>> index ab895ad490af..81f522f711ae 100644 >>>> --- a/hw/arm/aspeed.c >>>> +++ b/hw/arm/aspeed.c >>>> @@ -46,6 +46,7 @@ enum { >>>> PALMETTO_BMC, >>>> AST2500_EVB, >>>> ROMULUS_BMC, >>>> + WITHERSPOON_BMC, >>>> }; >>>> >>>> /* Palmetto hardware value: 0x120CE416 */ >>>> @@ -83,8 +84,12 @@ enum { >>>> SCU_AST2500_HW_STRAP_ACPI_ENABLE | \ >>>> SCU_HW_STRAP_SPI_MODE(SCU_HW_STRAP_SPI_MASTER)) >>>> >>>> +/* Witherspoon hardware value: 0xF10AD216 (but use romulus definition) */ >>>> +#define WITHERSPOON_BMC_HW_STRAP1 ROMULUS_BMC_HW_STRAP1 >>>> + >>>> static void palmetto_bmc_i2c_init(AspeedBoardState *bmc); >>>> static void ast2500_evb_i2c_init(AspeedBoardState *bmc); >>>> +static void witherspoon_bmc_i2c_init(AspeedBoardState *bmc); >>>> >>>> static const AspeedBoardConfig aspeed_boards[] = { >>>> [PALMETTO_BMC] = { >>>> @@ -110,6 +115,14 @@ static const AspeedBoardConfig aspeed_boards[] = { >>>> .spi_model = "mx66l1g45g", >>>> .num_cs = 2, >>>> }, >>>> + [WITHERSPOON_BMC] = { >>>> + .soc_name = "ast2500-a1", >>>> + .hw_strap1 = WITHERSPOON_BMC_HW_STRAP1, >>>> + .fmc_model = "mx25l25635e", >>>> + .spi_model = "mx66l1g45g", >>>> + .num_cs = 2, >>>> + .i2c_init = witherspoon_bmc_i2c_init, >>>> + }, >>>> }; >>>> >>>> #define FIRMWARE_ADDR 0x0 >>>> @@ -337,11 +350,47 @@ static const TypeInfo romulus_bmc_type = { >>>> .class_init = romulus_bmc_class_init, >>>> }; >>>> >>>> +static void witherspoon_bmc_i2c_init(AspeedBoardState *bmc) >>>> +{ >>>> + AspeedSoCState *soc = &bmc->soc; >>>> + >>>> + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 4), "tmp423", >>>> 0x4c); >>>> + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 5), "tmp423", >>>> 0x4c); >>>> + >>>> + i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 9), "tmp105", >>>> 0x4a); >>> >>> Looks like I need to track down newer versions of the schematics I have. >> >> the device on the board is a tmp275 but the tmp105 model is compatible. > > It neither device is listed in the version I have :)
Here is my source : https://github.com/openbmc/linux/blob/dev-4.10/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts#L504 C.