Hi Andre, On 12/15/21 12:54 AM, Andre Przywara wrote:
> 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. yes, this was a RESEND. The original submission was rejected by the mailinglist because I wasn't a subscriber yet. You and the other CC'd people got the mail multiple times without an obvious reason, sorry. > 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. I'm not sure if implementing some magic here would be good. I did experiment with adapting the fdt in the u-boot shell, but if implemented correctly this would probably live in the board initialization code, right? I haven't looked for references of similar implementations in the u-boot tree yet. The sunxi mmc and spi driver both initialize the pins before starting a transfer, correct? So activating both in the u-boot fdt would probably work due to the single-threaded execution. But when that same fdt would be passed to the linux kernel (as with UEFI on U-Boot) it would cause conflict there. Like I mentioned above: I wouldn't want to implement too much magic here. > 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 That looks promising, [PATCH 22/23](https://lists.denx.de/pipermail/u-boot/2021-October/464267.html) defines the correct pinctrl value for spi0: > diff --git a/drivers/pinctrl/sunxi/pinctrl-sun50i-h6.c > b/drivers/pinctrl/sunxi/pinctrl-sun50i-h6.c > index d80886269c..b3b5228214 100644 > --- a/drivers/pinctrl/sunxi/pinctrl-sun50i-h6.c > +++ b/drivers/pinctrl/sunxi/pinctrl-sun50i-h6.c > @@ -15,6 +15,7 @@ static const struct sunxi_pinctrl_function > sun50i_h6_pinctrl_functions[] = { > { "mmc0", 2 }, /* PF0-PF5 */ > { "mmc1", 2 }, /* PG0-PG5 */ > { "mmc2", 3 }, /* PC1-PC14 */ > + { "spi0", 4 }, /* PC0-PC7 */ > #if IS_ENABLED(CONFIG_UART0_PORT_F) > { "uart0", 3 }, /* PF2-PF4 */ > #else I'll give it a try and provide feedback in that thread. If this get's included my fix becomes obsolete. >> >> - if (IS_ENABLED(CONFIG_MACH_SUN50I)) >> + if (IS_ENABLED(CONFIG_MACH_SUN50I) || >> + IS_ENABLED(CONFIG_MACH_SUN50I_H6)) > [...] > So please put CONFIG_SUN50I_GEN_H6 in there. I'll send a fixup anyhow! Best Wishes Daniel