storcli can do it at the controller level, but this controller doesn’t seem to support it.
# /opt/45drives/tools/storcli64 /c0/p0 show
CLI Version = 007.1017.0000.0000 May 10, 2019
Operating system = Linux 4.18.0-513.9.1.el8_9.x86_64
Controller = 0
Status = Success
Description = None
Test Link State :
===============
------------------------------------
PhyNo SAS Link Speed PCIe Link Rate
------------------------------------
0 12.0 Gbps N/A
------------------------------------
# /opt/45drives/tools/storcli64 /c0/p0 set linkspeed=6
CLI Version = 007.1017.0000.0000 May 10, 2019
Operating system = Linux 4.18.0-513.9.1.el8_9.x86_64
Controller = 0
Status = Failure
Description = Un-supported command
Womp womp.