Update, I tinkered a bit more. I disconnected the line angle sensor, and just tried putting different signals into the MISO pin to try to debug my problem reading SPI1.
Attaching MISO to GND → 0x0000 as expected
Attaching MISO to 3.3V → 0xFFFF as expected
Leaving MISO free → 0xFFFF as expected, since it is configured with a pullup
Attaching MISO to CS → 0x5555 NOT expected! This should be 0x0000!
Any idea what could cause this? Maybe the input part of the SPI hardware is operating at a different clock rate than the output part?
Just to be safe I changed the max clock rates for SPI in my .dts file to be consistent with what I am setting in the ioctl call. Also, I am still getting the same behaviour with a read() as with an ioctl() calll.