bcm2835_pinctrl: Probe pre-reloc

The serial drivers now depend on the pinctrl driver to determine whether
they are enabled. That means if a serial device wants to be used pre-reloc,
we also need the pinctrl device pre-reloc.

Adapt the pinctrl driver as well as dts overlay accordingly.

Signed-off-by: Alexander Graf <agraf@suse.de>
diff --git a/arch/arm/dts/bcm283x-uboot.dtsi b/arch/arm/dts/bcm283x-uboot.dtsi
index 8e4231a..21d038a 100644
--- a/arch/arm/dts/bcm283x-uboot.dtsi
+++ b/arch/arm/dts/bcm283x-uboot.dtsi
@@ -20,3 +20,7 @@
 	skip-init;
 	u-boot,dm-pre-reloc;
 };
+
+&gpio {
+	u-boot,dm-pre-reloc;
+};
diff --git a/drivers/pinctrl/broadcom/pinctrl-bcm283x.c b/drivers/pinctrl/broadcom/pinctrl-bcm283x.c
index 83dde23..6fbd6ef 100644
--- a/drivers/pinctrl/broadcom/pinctrl-bcm283x.c
+++ b/drivers/pinctrl/broadcom/pinctrl-bcm283x.c
@@ -148,5 +148,6 @@
 	.of_match	= of_match_ptr(bcm2835_pinctrl_id),
 	.priv_auto_alloc_size = sizeof(struct bcm283x_pinctrl_priv),
 	.ops		= &bcm283x_pinctrl_ops,
-	.probe		= bcm283x_pinctl_probe
+	.probe		= bcm283x_pinctl_probe,
+	.flags		= DM_FLAG_PRE_RELOC,
 };