The datasheet (5.10.5) says that
The soft reset is triggered by sending CMD.cmd = 0xB6 followed by CMD.cmd = 0x0
I don't see that happening in the functions bmm350_init and bmm350_soft_reset.
In fact, I tested this with the real hardware and the soft reset logic doesn't seem to be working. The only way to reset the sensor is to switch it off.
The datasheet (5.10.5) says that
The soft reset is triggered by sending CMD.cmd = 0xB6 followed by CMD.cmd = 0x0
I don't see that happening in the functions bmm350_init and bmm350_soft_reset.
In fact, I tested this with the real hardware and the soft reset logic doesn't seem to be working. The only way to reset the sensor is to switch it off.