qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Cédric Le Goater" <clg@kaod.org>
To: "Philippe Mathieu-Daudé" <f4bug@amsat.org>, qemu-devel@nongnu.org
Cc: Andrew Jeffery <andrew@aj.id.au>,
	Peter Maydell <peter.maydell@linaro.org>,
	qemu-arm@nongnu.org, Joel Stanley <joel@jms.id.au>,
	Corey Minyard <cminyard@mvista.com>
Subject: Re: [PATCH v5 3/9] hw/misc/pca9552: Rename generic code as pca955x
Date: Tue, 23 Jun 2020 07:58:26 +0200	[thread overview]
Message-ID: <0b507b27-16ee-2e28-1838-7a06c30a1b87@kaod.org> (raw)
In-Reply-To: <20200622183428.12255-4-f4bug@amsat.org>

On 6/22/20 8:34 PM, Philippe Mathieu-Daudé wrote:
> Various code from the PCA9552 device model is generic to the
> PCA955X family. We'll split the generic code in a base class
> in the next commit. To ease review, first do a dumb renaming.
> 
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

Reviewed-by: Cédric Le Goater <clg@kaod.org>


> ---
>  include/hw/misc/pca9552.h | 10 ++---
>  hw/misc/pca9552.c         | 80 +++++++++++++++++++--------------------
>  2 files changed, 45 insertions(+), 45 deletions(-)
> 
> diff --git a/include/hw/misc/pca9552.h b/include/hw/misc/pca9552.h
> index bc5ed31087..db527595a3 100644
> --- a/include/hw/misc/pca9552.h
> +++ b/include/hw/misc/pca9552.h
> @@ -12,11 +12,11 @@
>  #include "hw/i2c/i2c.h"
>  
>  #define TYPE_PCA9552 "pca9552"
> -#define PCA9552(obj) OBJECT_CHECK(PCA9552State, (obj), TYPE_PCA9552)
> +#define PCA955X(obj) OBJECT_CHECK(PCA955xState, (obj), TYPE_PCA9552)
>  
> -#define PCA9552_NR_REGS 10
> +#define PCA955X_NR_REGS 10
>  
> -typedef struct PCA9552State {
> +typedef struct PCA955xState {
>      /*< private >*/
>      I2CSlave i2c;
>      /*< public >*/
> @@ -24,9 +24,9 @@ typedef struct PCA9552State {
>      uint8_t len;
>      uint8_t pointer;
>  
> -    uint8_t regs[PCA9552_NR_REGS];
> +    uint8_t regs[PCA955X_NR_REGS];
>      uint8_t max_reg;
>      uint8_t pin_count;
> -} PCA9552State;
> +} PCA955xState;
>  
>  #endif
> diff --git a/hw/misc/pca9552.c b/hw/misc/pca9552.c
> index 81da757a7e..5681ff3b22 100644
> --- a/hw/misc/pca9552.c
> +++ b/hw/misc/pca9552.c
> @@ -25,7 +25,7 @@
>  
>  static const char *led_state[] = {"on", "off", "pwm0", "pwm1"};
>  
> -static uint8_t pca9552_pin_get_config(PCA9552State *s, int pin)
> +static uint8_t pca955x_pin_get_config(PCA955xState *s, int pin)
>  {
>      uint8_t reg   = PCA9552_LS0 + (pin / 4);
>      uint8_t shift = (pin % 4) << 1;
> @@ -33,14 +33,14 @@ static uint8_t pca9552_pin_get_config(PCA9552State *s, int pin)
>      return extract32(s->regs[reg], shift, 2);
>  }
>  
> -static void pca9552_update_pin_input(PCA9552State *s)
> +static void pca955x_update_pin_input(PCA955xState *s)
>  {
>      int i;
>  
>      for (i = 0; i < s->pin_count; i++) {
>          uint8_t input_reg = PCA9552_INPUT0 + (i / 8);
>          uint8_t input_shift = (i % 8);
> -        uint8_t config = pca9552_pin_get_config(s, i);
> +        uint8_t config = pca955x_pin_get_config(s, i);
>  
>          switch (config) {
>          case PCA9552_LED_ON:
> @@ -58,7 +58,7 @@ static void pca9552_update_pin_input(PCA9552State *s)
>      }
>  }
>  
> -static uint8_t pca9552_read(PCA9552State *s, uint8_t reg)
> +static uint8_t pca955x_read(PCA955xState *s, uint8_t reg)
>  {
>      switch (reg) {
>      case PCA9552_INPUT0:
> @@ -79,7 +79,7 @@ static uint8_t pca9552_read(PCA9552State *s, uint8_t reg)
>      }
>  }
>  
> -static void pca9552_write(PCA9552State *s, uint8_t reg, uint8_t data)
> +static void pca955x_write(PCA955xState *s, uint8_t reg, uint8_t data)
>  {
>      switch (reg) {
>      case PCA9552_PSC0:
> @@ -94,7 +94,7 @@ static void pca9552_write(PCA9552State *s, uint8_t reg, uint8_t data)
>      case PCA9552_LS2:
>      case PCA9552_LS3:
>          s->regs[reg] = data;
> -        pca9552_update_pin_input(s);
> +        pca955x_update_pin_input(s);
>          break;
>  
>      case PCA9552_INPUT0:
> @@ -110,7 +110,7 @@ static void pca9552_write(PCA9552State *s, uint8_t reg, uint8_t data)
>   * after each byte is sent to or received by the device. The index
>   * rollovers to 0 when the maximum register address is reached.
>   */
> -static void pca9552_autoinc(PCA9552State *s)
> +static void pca955x_autoinc(PCA955xState *s)
>  {
>      if (s->pointer != 0xFF && s->pointer & PCA9552_AUTOINC) {
>          uint8_t reg = s->pointer & 0xf;
> @@ -120,12 +120,12 @@ static void pca9552_autoinc(PCA9552State *s)
>      }
>  }
>  
> -static uint8_t pca9552_recv(I2CSlave *i2c)
> +static uint8_t pca955x_recv(I2CSlave *i2c)
>  {
> -    PCA9552State *s = PCA9552(i2c);
> +    PCA955xState *s = PCA955X(i2c);
>      uint8_t ret;
>  
> -    ret = pca9552_read(s, s->pointer & 0xf);
> +    ret = pca955x_read(s, s->pointer & 0xf);
>  
>      /*
>       * From the Specs:
> @@ -143,40 +143,40 @@ static uint8_t pca9552_recv(I2CSlave *i2c)
>                        __func__);
>      }
>  
> -    pca9552_autoinc(s);
> +    pca955x_autoinc(s);
>  
>      return ret;
>  }
>  
> -static int pca9552_send(I2CSlave *i2c, uint8_t data)
> +static int pca955x_send(I2CSlave *i2c, uint8_t data)
>  {
> -    PCA9552State *s = PCA9552(i2c);
> +    PCA955xState *s = PCA955X(i2c);
>  
>      /* First byte sent by is the register address */
>      if (s->len == 0) {
>          s->pointer = data;
>          s->len++;
>      } else {
> -        pca9552_write(s, s->pointer & 0xf, data);
> +        pca955x_write(s, s->pointer & 0xf, data);
>  
> -        pca9552_autoinc(s);
> +        pca955x_autoinc(s);
>      }
>  
>      return 0;
>  }
>  
> -static int pca9552_event(I2CSlave *i2c, enum i2c_event event)
> +static int pca955x_event(I2CSlave *i2c, enum i2c_event event)
>  {
> -    PCA9552State *s = PCA9552(i2c);
> +    PCA955xState *s = PCA955X(i2c);
>  
>      s->len = 0;
>      return 0;
>  }
>  
> -static void pca9552_get_led(Object *obj, Visitor *v, const char *name,
> +static void pca955x_get_led(Object *obj, Visitor *v, const char *name,
>                              void *opaque, Error **errp)
>  {
> -    PCA9552State *s = PCA9552(obj);
> +    PCA955xState *s = PCA955X(obj);
>      int led, rc, reg;
>      uint8_t state;
>  
> @@ -195,7 +195,7 @@ static void pca9552_get_led(Object *obj, Visitor *v, const char *name,
>       * reading the INPUTx reg
>       */
>      reg = PCA9552_LS0 + led / 4;
> -    state = (pca9552_read(s, reg) >> (led % 8)) & 0x3;
> +    state = (pca955x_read(s, reg) >> (led % 8)) & 0x3;
>      visit_type_str(v, name, (char **)&led_state[state], errp);
>  }
>  
> @@ -209,10 +209,10 @@ static inline uint8_t pca955x_ledsel(uint8_t oldval, int led_num, int state)
>                  ((state & 0x3) << (led_num << 1));
>  }
>  
> -static void pca9552_set_led(Object *obj, Visitor *v, const char *name,
> +static void pca955x_set_led(Object *obj, Visitor *v, const char *name,
>                              void *opaque, Error **errp)
>  {
> -    PCA9552State *s = PCA9552(obj);
> +    PCA955xState *s = PCA955X(obj);
>      Error *local_err = NULL;
>      int led, rc, reg, val;
>      uint8_t state;
> @@ -244,9 +244,9 @@ static void pca9552_set_led(Object *obj, Visitor *v, const char *name,
>      }
>  
>      reg = PCA9552_LS0 + led / 4;
> -    val = pca9552_read(s, reg);
> +    val = pca955x_read(s, reg);
>      val = pca955x_ledsel(val, led % 4, state);
> -    pca9552_write(s, reg, val);
> +    pca955x_write(s, reg, val);
>  }
>  
>  static const VMStateDescription pca9552_vmstate = {
> @@ -254,17 +254,17 @@ static const VMStateDescription pca9552_vmstate = {
>      .version_id = 0,
>      .minimum_version_id = 0,
>      .fields = (VMStateField[]) {
> -        VMSTATE_UINT8(len, PCA9552State),
> -        VMSTATE_UINT8(pointer, PCA9552State),
> -        VMSTATE_UINT8_ARRAY(regs, PCA9552State, PCA9552_NR_REGS),
> -        VMSTATE_I2C_SLAVE(i2c, PCA9552State),
> +        VMSTATE_UINT8(len, PCA955xState),
> +        VMSTATE_UINT8(pointer, PCA955xState),
> +        VMSTATE_UINT8_ARRAY(regs, PCA955xState, PCA955X_NR_REGS),
> +        VMSTATE_I2C_SLAVE(i2c, PCA955xState),
>          VMSTATE_END_OF_LIST()
>      }
>  };
>  
>  static void pca9552_reset(DeviceState *dev)
>  {
> -    PCA9552State *s = PCA9552(dev);
> +    PCA955xState *s = PCA955X(dev);
>  
>      s->regs[PCA9552_PSC0] = 0xFF;
>      s->regs[PCA9552_PWM0] = 0x80;
> @@ -275,15 +275,15 @@ static void pca9552_reset(DeviceState *dev)
>      s->regs[PCA9552_LS2] = 0x55;
>      s->regs[PCA9552_LS3] = 0x55;
>  
> -    pca9552_update_pin_input(s);
> +    pca955x_update_pin_input(s);
>  
>      s->pointer = 0xFF;
>      s->len = 0;
>  }
>  
> -static void pca9552_initfn(Object *obj)
> +static void pca955x_initfn(Object *obj)
>  {
> -    PCA9552State *s = PCA9552(obj);
> +    PCA955xState *s = PCA955X(obj);
>      int led;
>  
>      /* If support for the other PCA955X devices are implemented, these
> @@ -297,7 +297,7 @@ static void pca9552_initfn(Object *obj)
>          char *name;
>  
>          name = g_strdup_printf("led%d", led);
> -        object_property_add(obj, name, "bool", pca9552_get_led, pca9552_set_led,
> +        object_property_add(obj, name, "bool", pca955x_get_led, pca955x_set_led,
>                              NULL, NULL);
>          g_free(name);
>      }
> @@ -308,9 +308,9 @@ static void pca9552_class_init(ObjectClass *klass, void *data)
>      DeviceClass *dc = DEVICE_CLASS(klass);
>      I2CSlaveClass *k = I2C_SLAVE_CLASS(klass);
>  
> -    k->event = pca9552_event;
> -    k->recv = pca9552_recv;
> -    k->send = pca9552_send;
> +    k->event = pca955x_event;
> +    k->recv = pca955x_recv;
> +    k->send = pca955x_send;
>      dc->reset = pca9552_reset;
>      dc->vmsd = &pca9552_vmstate;
>  }
> @@ -318,14 +318,14 @@ static void pca9552_class_init(ObjectClass *klass, void *data)
>  static const TypeInfo pca9552_info = {
>      .name          = TYPE_PCA9552,
>      .parent        = TYPE_I2C_SLAVE,
> -    .instance_init = pca9552_initfn,
> -    .instance_size = sizeof(PCA9552State),
> +    .instance_init = pca955x_initfn,
> +    .instance_size = sizeof(PCA955xState),
>      .class_init    = pca9552_class_init,
>  };
>  
> -static void pca9552_register_types(void)
> +static void pca955x_register_types(void)
>  {
>      type_register_static(&pca9552_info);
>  }
>  
> -type_init(pca9552_register_types)
> +type_init(pca955x_register_types)
> 



  reply	other threads:[~2020-06-23  5:59 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-22 18:34 [PATCH v5 0/9] hw/misc/pca9552: Trace GPIO change events Philippe Mathieu-Daudé
2020-06-22 18:34 ` [PATCH v5 1/9] hw/i2c/core: Add i2c_try_create_slave() and i2c_realize_and_unref() Philippe Mathieu-Daudé
2020-06-22 20:46   ` Corey Minyard
2020-06-23  6:06   ` Cédric Le Goater
2020-06-23  8:01   ` Markus Armbruster
2020-06-23 11:04     ` Philippe Mathieu-Daudé
2020-06-23 13:28       ` Markus Armbruster
2020-06-22 18:34 ` [PATCH v5 2/9] hw/misc/pca9552: Rename 'nr_leds' as 'pin_count' Philippe Mathieu-Daudé
2020-06-23  5:57   ` Cédric Le Goater
2020-06-22 18:34 ` [PATCH v5 3/9] hw/misc/pca9552: Rename generic code as pca955x Philippe Mathieu-Daudé
2020-06-23  5:58   ` Cédric Le Goater [this message]
2020-06-22 18:34 ` [PATCH v5 4/9] hw/misc/pca9552: Add generic PCA955xClass, parent of TYPE_PCA9552 Philippe Mathieu-Daudé
2020-06-23  6:02   ` Cédric Le Goater
2020-06-22 18:34 ` [PATCH v5 5/9] hw/misc/pca9552: Add a 'description' property for debugging purpose Philippe Mathieu-Daudé
2020-06-22 18:34 ` [PATCH v5 6/9] hw/misc/pca9552: Trace GPIO High/Low events Philippe Mathieu-Daudé
2020-06-23  6:03   ` Cédric Le Goater
2020-06-22 18:34 ` [PATCH v5 7/9] hw/arm/aspeed: Describe each PCA9552 device Philippe Mathieu-Daudé
2020-06-23  6:07   ` Cédric Le Goater
2020-06-23  8:43   ` Markus Armbruster
2020-06-22 18:34 ` [PATCH v5 8/9] hw/misc/pca9552: Trace GPIO change events Philippe Mathieu-Daudé
2020-06-23  6:04   ` Cédric Le Goater
2020-06-22 18:34 ` [PATCH v5 9/9] hw/misc/pca9552: Model qdev output GPIOs Philippe Mathieu-Daudé

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0b507b27-16ee-2e28-1838-7a06c30a1b87@kaod.org \
    --to=clg@kaod.org \
    --cc=andrew@aj.id.au \
    --cc=cminyard@mvista.com \
    --cc=f4bug@amsat.org \
    --cc=joel@jms.id.au \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).