| bd34cdd6 | 18-Mar-2026 |
Conor Dooley <conor.dooley@microchip.com> |
soc: microchip: add mpfs gpio interrupt mux driver
On PolarFire SoC there are more GPIO interrupts than there are interrupt lines available on the PLIC, and a runtime configurable mux is used to dec
soc: microchip: add mpfs gpio interrupt mux driver
On PolarFire SoC there are more GPIO interrupts than there are interrupt lines available on the PLIC, and a runtime configurable mux is used to decide which interrupts are assigned direct connections to the PLIC & which are relegated to sharing a line.
Add a driver so that Linux can set the mux based on the interrupt mapping in the devicetree.
Reviewed-by: Herve Codina <herve.codina@bootlin.com> Reviewed-by: Linus Walleij <linusw@kernel.org> Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
show more ...
|
| 3bfc213d | 09-Mar-2026 |
Felix Gu <ustc.gu@gmail.com> |
soc: microchip: mpfs-mss-top-sysreg: Fix resource leak on driver unbind
Use devm_mfd_add_devices() instead of mfd_add_devices() to ensure child devices are properly removed when the driver unbinds.
soc: microchip: mpfs-mss-top-sysreg: Fix resource leak on driver unbind
Use devm_mfd_add_devices() instead of mfd_add_devices() to ensure child devices are properly removed when the driver unbinds.
Fixes: 4aac11c9a6e7 ("soc: microchip: add mfd drivers for two syscon regions on PolarFire SoC") Signed-off-by: Felix Gu <ustc.gu@gmail.com> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
show more ...
|
| fad13b5b | 20-Oct-2023 |
Conor Dooley <conor.dooley@microchip.com> |
soc: microchip: mpfs: add auto-update subdev to system controller
The PolarFire SoC's system controller offers the ability to re-program the FPGA from a user application via two, related, mechanisms
soc: microchip: mpfs: add auto-update subdev to system controller
The PolarFire SoC's system controller offers the ability to re-program the FPGA from a user application via two, related, mechanisms. In-Application Programming (IAP) is not ideal for use in Linux, as it will immediately take down the system when requested. Auto Update is preferred, as it will only take affect at device power up*, allowing the OS (and potential applications in AMP) to be shut down gracefully.
* Auto Update occurs at device initialisation, which can also be triggered by device reset - possible with the v2023.02 version of the Hart Software Services (HSS) and reference design.
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
show more ...
|
| a8f00589 | 20-Oct-2023 |
Conor Dooley <conor.dooley@microchip.com> |
soc: microchip: mpfs: print service status in warning message
Now that resp_status is set for failed services, print the status in the error path's warning.
Signed-off-by: Conor Dooley <conor.doole
soc: microchip: mpfs: print service status in warning message
Now that resp_status is set for failed services, print the status in the error path's warning.
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
show more ...
|
| 8f943dd1 | 07-Mar-2023 |
Conor Dooley <conor.dooley@microchip.com> |
soc: microchip: mpfs: handle timeouts and failed services differently
The system controller will only deliver an interrupt if a service succeeds. This leaves us in the unfortunate position with curr
soc: microchip: mpfs: handle timeouts and failed services differently
The system controller will only deliver an interrupt if a service succeeds. This leaves us in the unfortunate position with current code where there is no way to differentiate between a legitimate timeout where the service has not completed & where it has completed, but failed.
mbox_send_message() has its own completion, and it will time out of the system controller does not lower the busy flag. In this case, a timeout has occurred and the error can be propagated back to the caller.
If the busy flag is lowered, but no interrupt has arrived to trigger the rx callback, the service can be deemed to have failed. Report -EBADMSG in this case so that callers can differentiate.
Tested-by: Valentina Fernandez <valentina.fernandezalanis@microchip.com> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
show more ...
|
| 7606f4df | 07-Mar-2023 |
Conor Dooley <conor.dooley@microchip.com> |
soc: microchip: mpfs: simplify error handling in mpfs_blocking_transaction()
The error handling has a kinda weird nested-if setup that is not really adding anything. Switch it to more of an early re
soc: microchip: mpfs: simplify error handling in mpfs_blocking_transaction()
The error handling has a kinda weird nested-if setup that is not really adding anything. Switch it to more of an early return arrangement as a predatory step for adding different handing for timeouts and failed services.
Tested-by: Valentina Fernandez <valentina.fernandezalanis@microchip.com> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
show more ...
|
| 4f739af1 | 07-Mar-2023 |
Conor Dooley <conor.dooley@microchip.com> |
soc: microchip: mpfs: use a consistent completion timeout
Completion timeouts use jiffies, so passing a number directly will produce inconsistent timeouts depending on config. Define the timeout in
soc: microchip: mpfs: use a consistent completion timeout
Completion timeouts use jiffies, so passing a number directly will produce inconsistent timeouts depending on config. Define the timeout in ms and convert it to jiffies instead.
Tested-by: Valentina Fernandez <valentina.fernandezalanis@microchip.com> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
show more ...
|