On 20 September 2017 at 08:01, Cédric Le Goater <c...@kaod.org> wrote:
> Specs are available here :
>
>   https://www.nxp.com/docs/en/data-sheet/PCA9552.pdf
>
> This is a simple model supporting the basic registers for led and GPIO
> mode. The device also supports two blinking rates but not the model
> yet.
>
> Signed-off-by: Cédric Le Goater <c...@kaod.org>


> --- /dev/null
> +++ b/include/hw/misc/pca9552.h
> @@ -0,0 +1,32 @@
> +/*
> + * PCA9552 I2C LED blinker
> + *
> + * Copyright (c) 2017, IBM Corporation.
> + *
> + * This work is licensed under the terms of the GNU GPL, version 2 or
> + * later. See the COPYING file in the top-level directory.
> + */
> +#ifndef PCA9552_H
> +#define PCA9552_H
> +
> +#include "hw/i2c/i2c.h"
> +
> +#define TYPE_PCA9552 "pca9552"
> +#define PCA9552(obj) OBJECT_CHECK(PCA9552State, (obj), TYPE_PCA9552)
> +
> +
> +#define PCA9552_NR_REGS 10
> +
> +typedef struct PCA9552State {
> +    /*< private >*/
> +    I2CSlave i2c;
> +    /*< public >*/
> +
> +    uint8_t len;
> +    uint8_t pointer;
> +    uint8_t buf[1]; /* just to remember how to handle a larger buffer */

Changing this later is going to be a migration compatibility break
(or at least a bit painful to keep compat).
Do we know how big the buffer is supposed to be? If so it would
be best to make it the correct size to start with.

> +
> +    uint8_t regs[PCA9552_NR_REGS];
> +} PCA9552State;

thanks
-- PMM

Reply via email to