Commit 3521fa63 authored by Jarkko Nikula's avatar Jarkko Nikula Committed by Alexandre Belloni

i3c: mipi-i3c-hci: Resume controller explicitly

On an HW I'm using in enabling work the RESUME bit is not set in the
HC_CONTROLLER register when Host Controller goes to halt state. Value 1
should mean controller is suspended when reading and writing 1 resumes it.

Because of this erratic behaviour plain HC_CONTROL read and write back
won't resume the controller. Therefore do it by setting the RESUME bit
explicitly.
Signed-off-by: default avatarJarkko Nikula <jarkko.nikula@linux.intel.com>
Link: https://lore.kernel.org/r/20230921055704.1087277-12-jarkko.nikula@linux.intel.comSigned-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
parent 4c36f656
...@@ -174,8 +174,7 @@ static void i3c_hci_bus_cleanup(struct i3c_master_controller *m) ...@@ -174,8 +174,7 @@ static void i3c_hci_bus_cleanup(struct i3c_master_controller *m)
void mipi_i3c_hci_resume(struct i3c_hci *hci) void mipi_i3c_hci_resume(struct i3c_hci *hci)
{ {
/* the HC_CONTROL_RESUME bit is R/W1C so just read and write back */ reg_set(HC_CONTROL, HC_CONTROL_RESUME);
reg_write(HC_CONTROL, reg_read(HC_CONTROL));
} }
/* located here rather than pio.c because needed bits are in core reg space */ /* located here rather than pio.c because needed bits are in core reg space */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment