mirror of
https://github.com/qemu/qemu.git
synced 2024-11-28 22:33:36 +08:00
hw/i2c/pmbus: Add idle state to return 0xff's
Signed-off-by: Peter Delevoryas <pdel@fb.com> Reviewed-by: Titus Rwantare <titusr@google.com> Message-Id: <20220701000626.77395-2-me@pjd.dev> Signed-off-by: Cédric Le Goater <clg@kaod.org>
This commit is contained in:
parent
54ee564132
commit
d272d1410c
@ -261,6 +261,11 @@ void pmbus_check_limits(PMBusDevice *pmdev)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void pmbus_idle(PMBusDevice *pmdev)
|
||||||
|
{
|
||||||
|
pmdev->code = PMBUS_IDLE_STATE;
|
||||||
|
}
|
||||||
|
|
||||||
/* assert the status_cml error upon receipt of malformed command */
|
/* assert the status_cml error upon receipt of malformed command */
|
||||||
static void pmbus_cml_error(PMBusDevice *pmdev)
|
static void pmbus_cml_error(PMBusDevice *pmdev)
|
||||||
{
|
{
|
||||||
@ -980,6 +985,10 @@ static uint8_t pmbus_receive_byte(SMBusDevice *smd)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PMBUS_IDLE_STATE:
|
||||||
|
pmbus_send8(pmdev, PMBUS_ERR_BYTE);
|
||||||
|
break;
|
||||||
|
|
||||||
case PMBUS_CLEAR_FAULTS: /* Send Byte */
|
case PMBUS_CLEAR_FAULTS: /* Send Byte */
|
||||||
case PMBUS_PAGE_PLUS_WRITE: /* Block Write-only */
|
case PMBUS_PAGE_PLUS_WRITE: /* Block Write-only */
|
||||||
case PMBUS_STORE_DEFAULT_ALL: /* Send Byte */
|
case PMBUS_STORE_DEFAULT_ALL: /* Send Byte */
|
||||||
|
@ -155,6 +155,7 @@ enum pmbus_registers {
|
|||||||
PMBUS_MFR_MAX_TEMP_1 = 0xC0, /* R/W word */
|
PMBUS_MFR_MAX_TEMP_1 = 0xC0, /* R/W word */
|
||||||
PMBUS_MFR_MAX_TEMP_2 = 0xC1, /* R/W word */
|
PMBUS_MFR_MAX_TEMP_2 = 0xC1, /* R/W word */
|
||||||
PMBUS_MFR_MAX_TEMP_3 = 0xC2, /* R/W word */
|
PMBUS_MFR_MAX_TEMP_3 = 0xC2, /* R/W word */
|
||||||
|
PMBUS_IDLE_STATE = 0xFF,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* STATUS_WORD */
|
/* STATUS_WORD */
|
||||||
@ -527,6 +528,12 @@ int pmbus_page_config(PMBusDevice *pmdev, uint8_t page_index, uint64_t flags);
|
|||||||
*/
|
*/
|
||||||
void pmbus_check_limits(PMBusDevice *pmdev);
|
void pmbus_check_limits(PMBusDevice *pmdev);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enter an idle state where only the PMBUS_ERR_BYTE will be returned
|
||||||
|
* indefinitely until a new command is issued.
|
||||||
|
*/
|
||||||
|
void pmbus_idle(PMBusDevice *pmdev);
|
||||||
|
|
||||||
extern const VMStateDescription vmstate_pmbus_device;
|
extern const VMStateDescription vmstate_pmbus_device;
|
||||||
|
|
||||||
#define VMSTATE_PMBUS_DEVICE(_field, _state) { \
|
#define VMSTATE_PMBUS_DEVICE(_field, _state) { \
|
||||||
|
Loading…
Reference in New Issue
Block a user