[prev in list] [next in list] [prev in thread] [next in thread]
List: qemu-arm
Subject: Re: [PATCH v3 09/14] hw/sensor: Add IC_DEVICE_ID to ISL voltage regulators
From: Titus Rwantare <titusr () google ! com>
Date: 2022-06-30 19:20:03
Message-ID: CAMvPwGogaMiSdS5dbrqLRSqUvGmtic1nxKqHBedVNhnW4ja50g () mail ! gmail ! com
[Download RAW message or body]
On Wed, 29 Jun 2022 at 21:52, Peter Delevoryas <me@pjd.dev> wrote:
>
> From: Peter Delevoryas <pdel@fb.com>
>
> This commit adds a passthrough for PMBUS_IC_DEVICE_ID to allow Renesas
> voltage regulators to return the integrated circuit device ID if they
> would like to.
>
> The behavior is very device specific, so it hasn't been added to the
> general PMBUS model. Additionally, if the device ID hasn't been set,
> then the voltage regulator will respond with the error byte value. The
> guest error message will change slightly for IC_DEVICE_ID with this
> commit.
>
> Signed-off-by: Peter Delevoryas <pdel@fb.com>
> ---
> hw/sensor/isl_pmbus_vr.c | 12 ++++++++++++
> include/hw/sensor/isl_pmbus_vr.h | 5 +++++
> 2 files changed, 17 insertions(+)
>
> diff --git a/hw/sensor/isl_pmbus_vr.c b/hw/sensor/isl_pmbus_vr.c
> index e11e028884..799ea9d89e 100644
> --- a/hw/sensor/isl_pmbus_vr.c
> +++ b/hw/sensor/isl_pmbus_vr.c
> @@ -15,6 +15,18 @@
>
> static uint8_t isl_pmbus_vr_read_byte(PMBusDevice *pmdev)
> {
> + ISLState *s = ISL69260(pmdev);
> +
> + switch (pmdev->code) {
> + case PMBUS_IC_DEVICE_ID:
> + if (!s->ic_device_id_len) {
> + break;
> + }
> + pmbus_send(pmdev, s->ic_device_id, s->ic_device_id_len);
> + pmbus_idle(pmdev);
> + return 0;
> + }
> +
> qemu_log_mask(LOG_GUEST_ERROR,
> "%s: reading from unsupported register: 0x%02x\n",
> __func__, pmdev->code);
> diff --git a/include/hw/sensor/isl_pmbus_vr.h b/include/hw/sensor/isl_pmbus_vr.h
> index 3e47ff7e48..aa2c2767df 100644
> --- a/include/hw/sensor/isl_pmbus_vr.h
> +++ b/include/hw/sensor/isl_pmbus_vr.h
> @@ -12,12 +12,17 @@
> #include "hw/i2c/pmbus_device.h"
> #include "qom/object.h"
>
> +#define TYPE_ISL69259 "isl69259"
> #define TYPE_ISL69260 "isl69260"
> #define TYPE_RAA228000 "raa228000"
> #define TYPE_RAA229004 "raa229004"
> +#define ISL_MAX_IC_DEVICE_ID_LEN 16
>
> struct ISLState {
> PMBusDevice parent;
> +
> + uint8_t ic_device_id[ISL_MAX_IC_DEVICE_ID_LEN];
> + uint8_t ic_device_id_len;
> };
>
> OBJECT_DECLARE_SIMPLE_TYPE(ISLState, ISL69260)
> --
> 2.37.0
>
Reviewed-by: Titus Rwantare <titusr@google.com>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic