On 2024/11/28 0:29, Hector Martin wrote: > > > On 2024/11/27 17:29, Sasha Finkelstein wrote: >> On Wed, 27 Nov 2024 at 02:51, Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> wrote: >>> I believe this needs to be done at the SPI controller level. See >>> "cs-gpiods" property in >>> Documentation/devicetree/bindings/spi/spi-controller.yaml that, as far >>> as I understand, allows overriding controller's native CS handling with >>> a GPIO when needed. >> >> I have already tried doing that (adding the relevant gpio as cs-gpios >> on the controller) >> and for some reason none of my attempts worked. Since there is no hardware >> documentation, I can't really tell why, could be possible that we need both >> native CS and that gpio, could be memory barrier issues somewhere in >> the driver core, >> but the method above is the only one i could get to work. > > Are you sure this isn't just a pinmux problem, i.e. the bootloader > initializes the pinmux for hardware CS only on one device and not the other? > > See spi3_pins in the DTS in our downstream tree (and the reference from > the SPI controller). If the rest of the SPI pins are already working > properly you can just try with the CS pin (same index as on the gpio > spec). Ideally we'd list the 4 pins, but someone needs to reverse > engineer the mapping with m1n1 gpiola since we don't know what it is. > > If it really doesn't work with native CS and proper pinmux then cs-gpios > on the controller should work. If it doesn't something weird is going on > elsewhere. There's only one CS line, needing both makes no sense. > Looked into this. The pins are 67=CLK, 68=MOSI, 69=MISO for spi0 on t8103 (they should be added to pinctrl even though they are already configured by iBoot, ping Janne). It does sound like there's no hardware CS for SPI0, so the referenced GPIO 109 is probably just a GPIO. In that case it should work when declared as a cs for the SPI controller node. If that doesn't work we need to figure out why and fix it, not add it into the z2 driver. - Hector