Re: FDT access from a driver during attach

Nick Hudson <[email protected]> Tue, 29 Jul 2025 19:12:29 +0100
Newsgroups gmane.os.netbsd.ports.arm
Message-ID <[email protected]>
On 28/07/2025 16:53, Robert Swindells wrote:
> 
> Vincent DEFERT <[email protected]> wrote:
>> I want to add interrupt handling to the Meson pinctrl driver.
>> I have seen that this is handled by attaching gpioirq to the desired pin
>> with gpioctl(8) and there's an example of how to implement the
>> underlying capability in sunxi_gpio.c.
>> I also have the S905 documentation and the source code of the vendor
>> Linux driver as reference. So far, so good.
> 
> You could also look at rk_gpio.c and sys/dev/i2c/fusbtc.c, combined
> with a dump of the dtb for the Pinebook Pro.
> 
>> The only thing I don't know is how to retrieve the GPIO interrupt
>> controller configuration.
>> It is stored in a gpio_intc node with the "amlogic,meson-gpio-intc"
>> compatible string, but none of the 2 gpio instances reference it.
>> How can I search the full FDT to find this node?
> 
> I don't think you should need to search the device tree for this.
> 
> I would expect you to write a driver that matches on that compat
> string, it would map the registers of the interrupt controller
> and hook up this interrupt controller to the main one.

Correct.

> 
> Then your device tree overlay to go with a driver for whatever you are
> planning to connect to the gpio would specify an interrupt-parent that
> points to the meson-gpio-intc node.

Not sure why you mention overlay here, but I'm not clear on what is 
expecting to use the gpio pin as an interrupt source.

Nick