qemu-arm
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-arm] [PATCH v4 8/8] arm: Add an RX8900 RTC to the ASpeed board


From: Andrew Jeffery
Subject: Re: [Qemu-arm] [PATCH v4 8/8] arm: Add an RX8900 RTC to the ASpeed board
Date: Wed, 04 Jan 2017 16:49:57 +1030

On Thu, 2016-12-15 at 16:48 +1100, Alastair D'Silva wrote:
> > From: Alastair D'Silva <address@hidden>
> 
> Connect an RX8900 RTC to i2c12 of the AST2500 SOC at address 0x32
> 
> > Signed-off-by: Alastair D'Silva <address@hidden>
> Signed-off-by: Chris Smart <address@hidden>

Reviewed-by: Andrew Jeffery <address@hidden>

> ---
>  hw/arm/aspeed.c | 29 +++++++++++++++++++++++++++++
>  1 file changed, 29 insertions(+)
> 
> diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
> index 40c1383..ef63fd0 100644
> --- a/hw/arm/aspeed.c
> +++ b/hw/arm/aspeed.c
> @@ -26,6 +26,12 @@ static struct arm_boot_info aspeed_board_binfo = {
>      .nb_cpus = 1,
>  };
>  
> +typedef struct AspeedI2CDevice {
> +    const char *type;
> +    uint8_t address;
> +    int bus;
> +} AspeedI2CDevice;
> +
>  typedef struct AspeedBoardState {
>      AspeedSoCState soc;
>      MemoryRegion ram;
> @@ -37,6 +43,7 @@ typedef struct AspeedBoardConfig {
>      const char *fmc_model;
>      const char *spi_model;
>      uint32_t num_cs;
> +    const AspeedI2CDevice *i2c_devices;
>  } AspeedBoardConfig;
>  
>  enum {
> @@ -80,6 +87,11 @@ enum {
>          SCU_AST2500_HW_STRAP_ACPI_ENABLE |                              \
>          SCU_HW_STRAP_SPI_MODE(SCU_HW_STRAP_SPI_MASTER))
>  
> +
> +static const AspeedI2CDevice ast2500_i2c_devices[] = {
> +        {"rx8900", 0x32, 11}
> +};
> +
>  static const AspeedBoardConfig aspeed_boards[] = {
>      [PALMETTO_BMC] = {
>          .soc_name  = "ast2400-a1",
> @@ -94,6 +106,7 @@ static const AspeedBoardConfig aspeed_boards[] = {
>          .fmc_model = "n25q256a",
>          .spi_model = "mx25l25635e",
>          .num_cs    = 1,
> +        .i2c_devices = ast2500_i2c_devices,
>      },
>      [ROMULUS_BMC]  = {
>          .soc_name  = "ast2500-a1",
> @@ -104,6 +117,7 @@ static const AspeedBoardConfig aspeed_boards[] = {
>      },
>  };
>  
> +
>  static void aspeed_board_init_flashes(AspeedSMCState *s, const char 
> *flashtype,
>                                        Error **errp)
>  {
> @@ -130,6 +144,19 @@ static void aspeed_board_init_flashes(AspeedSMCState *s, 
> const char *flashtype,
>      }
>  }
>  
> +static void aspeed_i2c_init(AspeedBoardState *bmc,
> +        const AspeedBoardConfig *cfg)
> +{
> +    AspeedSoCState *soc = &bmc->soc;
> +    const AspeedI2CDevice *dev;
> +
> +    for (dev = cfg->i2c_devices; dev != NULL && dev->type != NULL; dev++) {
> +        I2CBus *i2c_bus = aspeed_i2c_get_bus((DeviceState *)&soc->i2c,
> +                                             dev->bus);
> +        (void)i2c_create_slave(i2c_bus, dev->type, dev->address);
> +    }
> +}
> +
>  static void aspeed_board_init(MachineState *machine,
>                                const AspeedBoardConfig *cfg)
>  {
> @@ -174,6 +201,8 @@ static void aspeed_board_init(MachineState *machine,
>      aspeed_board_binfo.ram_size = ram_size;
>      aspeed_board_binfo.loader_start = sc->info->sdram_base;
>  
> +    aspeed_i2c_init(bmc, cfg);
> +
>      arm_load_kernel(ARM_CPU(first_cpu), &aspeed_board_binfo);
>  }
>  

Attachment: signature.asc
Description: This is a digitally signed message part


reply via email to

[Prev in Thread] Current Thread [Next in Thread]