On Sun, 12 Dec 2021 20:29:06 +0100 Daniel Wagenknecht <dwag...@mailbox.org> wrote:
Hi Daniel, please don't just resend without saying why. If you messed up the mail, or forgot to CC: the list, then please put "RESEND" in the subject, and briefly say why you resend. If you want to ping, please reply to the cover letter, but please give people some time to react. We are all volunteers, and not all patches seem immediately important to jump on them. Plus you might just annoy people ;-) If you are unsure whether your email made it out, check the mailing list archive. > The driver for SPI0 on Allwinner H6 SoCs did not use the correct define > SUN50I_GPC_SPI0 for the pin function, but one for a different Allwinner > SoC series. > > Fix the conditionals to use the correct define for H6 SoCs. This matches > the conditional logic in the SPL spi driver. > > Tested by probing the spi-flash on a pine64_h64-model-b board with > adapted device-tree (disable mmc2, enable spi0). Yeah, this was probably the reason no one noticed: It doesn't work without hacks, and also the PineH64 seems to be the only (supported) H6 board with SPI. If you have some spare cycles ;-) you can look whether we can fix up the DT when no eMMC is detected, and how to make this work so this not only applies to the kernel, but also to U-Boot itself. > > Signed-off-by: Daniel Wagenknecht <dwag...@mailbox.org> > --- > drivers/spi/spi-sunxi.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/spi/spi-sunxi.c b/drivers/spi/spi-sunxi.c > index bc2f544e86..6a8ee8d542 100644 > --- a/drivers/spi/spi-sunxi.c > +++ b/drivers/spi/spi-sunxi.c > @@ -249,7 +249,8 @@ static int sun4i_spi_parse_pins(struct udevice *dev) > if (pin < 0) > break; > > - if (IS_ENABLED(CONFIG_MACH_SUN50I)) > + if (IS_ENABLED(CONFIG_MACH_SUN50I) || > + IS_ENABLED(CONFIG_MACH_SUN50I_H6)) Indeed this was missing. And as you already figured, this applies to the H616 as well, where SPI is actually usable (just a clash with SDC2_DS, which is only needed for HS400). So please put CONFIG_SUN50I_GEN_H6 in there. Jernej, Samuel, can you please test this on the OPi Zero2? My board seems to be in a bad mood :-( But also please note that this is fragile anyway, as this only applies to SPI0, and other SoCs use many more multiplexes as well. Please have a look at Samuel's pinctrl series to see if it fixes your problem, and possibly help reviewing this: https://lists.denx.de/pipermail/u-boot/2021-October/464248.html Cheers, Andre > sunxi_gpio_set_cfgpin(pin, SUN50I_GPC_SPI0); > else > sunxi_gpio_set_cfgpin(pin, SUNXI_GPC_SPI0);