DTB backward/forward compatibility with "pinctrl: bcm2835: Change init order for gpio hogs"

Phil Elwell phil at raspberrypi.com
Tue Jan 25 11:48:37 PST 2022


Florian,

On 25/01/2022 19:39, Florian Fainelli wrote:
> Hi,
> 
> I am a bit frustrated by this commit, we picked it up via the stable 5.10 and 
> 5.15 trees into our downstream tree, and in the absence of a suitable 
> 'gpio-ranges' property for the GPIO controller, the SPI controller keeps getting 
> -EPROBE_DEFER for its chip select. If the property is present, then all is well.
> 
> Now the problem in my case is that the boot loader is responsible for providing 
> the DTB to the kernel, and until recently, we did not update it to contain a 
> suitable 'gpio-ranges' property. Now that it has been updated however, older 
> kernels which *do not* have said change in the subject are also getting 
> -EPROBE_DEFER for the SPI chip select.
> 
> So this is just breaking backward/forward compatibility with the DTB unless both 
> are updated in lock steps which is *extremely* inconvenient.
> 
> This is death by a thousand cuts.
> 
> So how do we remedy this?

It's unfortunate that both the DTS and driver were incorrect, and that the fixes 
were inter-dependent. At Raspberry Pi we make a point of treating the DTBs as 
part of the kernel, updating them at the same time. Is that not possible in your 
situation? You don't specify which bootloader you are using (or even which 
platform), but U-boot can be configured to use the DTB loaded and adjusted by 
the firmware.

Phil



More information about the linux-arm-kernel mailing list