On 17.01.18 21:06, Simon Glass wrote: > Hi Alex, > > On 16 January 2018 at 05:46, Alexander Graf <ag...@suse.de> wrote: >> The bcm2835 firmware provided device trees expect device tree users >> to support pin muxing for the SD devices to work properly. >> >> This patch adds pin muxing support to the sdhci based SD controller >> on said family of SoCs, so that its pins are getting configured >> correctly on boot. >> >> Signed-off-by: Alexander Graf <ag...@suse.de> >> --- >> drivers/mmc/bcm2835_sdhci.c | 11 +++++++++++ >> 1 file changed, 11 insertions(+) >> >> diff --git a/drivers/mmc/bcm2835_sdhci.c b/drivers/mmc/bcm2835_sdhci.c >> index 3157354d2a..62ad109361 100644 >> --- a/drivers/mmc/bcm2835_sdhci.c >> +++ b/drivers/mmc/bcm2835_sdhci.c >> @@ -45,6 +45,7 @@ >> #include <asm/arch/mbox.h> >> #include <mach/sdhci.h> >> #include <mach/timer.h> >> +#include <mach/gpio.h> >> >> /* 400KHz is max freq for card ID etc. Use that as min */ >> #define MIN_FREQ 400000 >> @@ -178,6 +179,7 @@ static int bcm2835_sdhci_probe(struct udevice *dev) >> fdt_addr_t base; >> int emmc_freq; >> int ret; >> + int pinctrl_handle; >> >> base = devfdt_get_addr(dev); >> if (base == FDT_ADDR_T_NONE) >> @@ -190,6 +192,15 @@ static int bcm2835_sdhci_probe(struct udevice *dev) >> } >> emmc_freq = ret; >> >> + pinctrl_handle = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev), >> "pinctrl-0", -1); > > You can't do this sort of thing :-) > > This should go in a pinctrl driver. The clue is that you are having to > look up things manually here. You can create a basic driver very > easily.
Yup, that's basically what I've spent today on :). Unfortunately my RPi seems to corrupt its U-Boot binary on boot every so often, so some times I end up with an unbootable system and I've been unable to actually trace it down for real yet. For example some times I get weird corruptions in the .dyn.rel section. Either way, I've switched to network boot now, let's hope that makes life easier. If things work out I'll send a new version tomorrow with an actual pinmux driver that then instantiates the existing GPIO one as a child (so that the pinmux one gets autoloaded). Alex _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot