On Tue, Mar 2, 2021 at 7:14 PM Álvaro Fernández Rojas <nolt...@gmail.com> wrote:
> I'm trying to add support for bcm63xx pin controllers, and Linus > suggested that I could use gpio regmap instead of adding duplicated code. > However, I need to access gpio_chip inside gpio_regmap to call > pinctrl_add_gpio_range() with gpio_chip.base. Can't you just put the ranges in the device tree using the standard property gpio-ranges? These will be added automatically after the chip is added. It is documented in Documentation/devicetree/bindings/gpio/gpio.txt a bit down the file. The code is in of_gpiochip_add_pin_range() in gpiolib-of.c called from of_gpiochip_add() which is always called when gpiochip_add_data_with_key(), the main gpiochip registering function is called. This would just do the work for you with no effort in the driver. It is a bit counterintuitive that this can be done in the device tree but the hierarchical IRQs cannot do the same clever manouver to map IRQs, sorry. Yours, Linus Walleij