[PATCH 13/17] i3c: mipi-i3c-hci: Add PIO suspend and resume support

Frank Li Frank.li at nxp.com
Fri Dec 19 08:46:57 PST 2025


On Fri, Dec 19, 2025 at 04:45:30PM +0200, Adrian Hunter wrote:
> 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: Adrian Hunter <adrian.hunter at intel.com>
> ---

Reviewed-by: Frank Li <Frank.Li at nxp.com>

>  drivers/i3c/master/mipi-i3c-hci/pio.c | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
>
> diff --git a/drivers/i3c/master/mipi-i3c-hci/pio.c b/drivers/i3c/master/mipi-i3c-hci/pio.c
> index 52d9f01d9ca9..8e868e81acda 100644
> --- a/drivers/i3c/master/mipi-i3c-hci/pio.c
> +++ b/drivers/i3c/master/mipi-i3c-hci/pio.c
> @@ -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,
>  };
> --
> 2.51.0
>
>
> --
> linux-i3c mailing list
> linux-i3c at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-i3c



More information about the linux-i3c mailing list