Re: [PATCH v2 0/3] Make fw_devlink=on more forgiving
From: Martin Kaiser
Date: Wed Feb 03 2021 - 16:58:58 EST
Thus wrote Saravana Kannan (saravanak@xxxxxxxxxx):
> > With modules disabled, the kernel boots but probe fails for some
> > (non-mainline) drivers in my tree.
> Thanks Martin!
> > All of those drivers have a gpio in
> > their device-tree node, such as
> > my_driver {
> > gpio_test1 = <&gpio1 0 0>;
> > ...
> > };
> > with gpio1 from arch/arm/boot/dts/imx25.dtsi.
> > The probe function calls
> > of_get_named_gpio(np, "gpio_test1", 0);
> > to get the gpio. This fails with -EINVAL.
> And you didn't see this issue with the fsl,avic patch?
No. With the fsl,avic patch in place, all drivers are probed correctly.
> The property you are using is not a standard GPIO binding (-gpios,
> gpio, gpios) and I'm not surprised it's not working.
I know that I should be using the gpiod API as suggested by Geert.
BTW is this definition ok? Could its driver be converted to using the
gpiod api?
rtc: rtc {
compatible = "moxa,moxart-rtc";
gpio-rtc-sclk = <&gpio 5 0>;
...
> The gpio1 is probably getting probe deferred and ends up running after
> "my_driver".
I added a debug print in the probe function. It turned out that the
driver for gpio1 is probed for the first time after my_driver.
I removed the interrupt-controller property for gpio2 for testing. gpio2
was then probed much earlier.
Best regards,
Martin