Commit 8afa0dd8 authored by Adrian Hunter's avatar Adrian Hunter Committed by Alexandre Belloni
Browse files

i3c: mipi-i3c-hci: Add PIO suspend and resume support



Introduce helper functions to suspend and resume PIO operations.  These
are required to prepare for upcoming Runtime PM support, ensuring that
PIO state is properly managed during power transitions.

Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
Reviewed-by: default avatarFrank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20260113072702.16268-14-adrian.hunter@intel.com


Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
parent ca4d4682
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -190,6 +190,18 @@ static void __hci_pio_init(struct i3c_hci *hci, u32 *size_val_ptr)
	pio->enabled_irqs = STAT_ALL_ERRORS;
}

static void hci_pio_suspend(struct i3c_hci *hci)
{
	pio_reg_write(INTR_SIGNAL_ENABLE, 0);

	i3c_hci_sync_irq_inactive(hci);
}

static void hci_pio_resume(struct i3c_hci *hci)
{
	__hci_pio_init(hci, NULL);
}

static int hci_pio_init(struct i3c_hci *hci)
{
	struct hci_pio_data *pio;
@@ -1059,4 +1071,6 @@ const struct hci_io_ops mipi_i3c_hci_pio = {
	.request_ibi		= hci_pio_request_ibi,
	.free_ibi		= hci_pio_free_ibi,
	.recycle_ibi_slot	= hci_pio_recycle_ibi_slot,
	.suspend		= hci_pio_suspend,
	.resume			= hci_pio_resume,
};