On 02.04.19 15:34, Marek Vasut wrote:
On 4/2/19 3:18 PM, Eugeniu Rosca wrote:
With CONFIG_PINCTRL_PFC=n, aarch64-linux-gnu-ld reports:
-----8<-----
LD u-boot
drivers/gpio/built-in.o: In function `rcar_gpio_request':
drivers/gpio/gpio-rcar.c:128: undefined reference to
`sh_pfc_config_mux_for_gpio'
-----8<-----
Fix it in the least intrusive way and *avoid* ifdefs in the *.c code.
Some recent Linux commits sharing the same approach:
-
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=23222f8f8dce
("acpi, nfit: Add function to look up nvdimm device and provide SMBIOS
handle")
-
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5f143af7501e
("spi: make OF helper available for others")
-
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bccd06223f21
("IB/uverbs: Add UVERBS_ATTR_FLAGS_IN to the specs language")
Fixes: f6e545a73f88 ("pfc: rmobile: Add hook to configure pin as GPIO")
Reported-by: Dirk Behme <dirk.be...@de.bosch.com>
Signed-off-by: Eugeniu Rosca <ero...@de.adit-jv.com>
Does CONFIG_PINCTRL_PFC=n produce a bootable binary ?
Why not? Main memory, boot device and UART are configured before
U-Boot, no?
Best regards
Dirk
What is the usecase of CONFIG_PINCTRL_PFC=n ?
I suspect we should rather make sure CONFIG_PINCTRL_PFC=y .
---
drivers/pinctrl/renesas/sh_pfc.h | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/pinctrl/renesas/sh_pfc.h b/drivers/pinctrl/renesas/sh_pfc.h
index b98c2f185d26..3d95d3c725cf 100644
--- a/drivers/pinctrl/renesas/sh_pfc.h
+++ b/drivers/pinctrl/renesas/sh_pfc.h
@@ -261,7 +261,15 @@ void sh_pfc_write(struct sh_pfc *pfc, u32 reg, u32 data);
const struct pinmux_bias_reg *
sh_pfc_pin_to_bias_reg(const struct sh_pfc *pfc, unsigned int pin,
unsigned int *bit);
+#if IS_ENABLED(CONFIG_PINCTRL_PFC)
int sh_pfc_config_mux_for_gpio(struct udevice *dev, unsigned pin_selector);
+#else
+static inline
+int sh_pfc_config_mux_for_gpio(struct udevice *dev, unsigned pin_selector)
+{
+ return -ENODEV;
+}
+#endif
extern const struct sh_pfc_soc_info r8a7790_pinmux_info;
extern const struct sh_pfc_soc_info r8a7791_pinmux_info;
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot