On 10/4/23 14:56, Biju Das wrote:

[...]

+               return -EINVAL;
+       }
+
+       uc_priv->gpio_count = args.args[2];
+       return rzg2l_pfc_enable(dev);
+}
+
+U_BOOT_DRIVER(rzg2l_pfc_gpio) = {
+       .name           = "rzg2l-pfc-gpio",
+       .id             = UCLASS_GPIO,
+       .ops            = &rzg2l_gpio_ops,
+       .probe          = rzg2l_gpio_probe,
+};

Can you please split the GPIO and PFC drivers into separate files ?

I assume you mean gpio and pinctrl here - the PFC handles both. I can
move the gpio driver out to drivers/gpio.

Thanks. R-Car already does it that way.

RCar has separate GPIO block and Pin control block
So we have separate drivers.

On RZ/G2L we have only pinctrl block, ie, the reason it is
integrated driver in linux.

If you make separate driver, how do you plan to share resources in u-boot. For 
eg: register/clock/reset??

Clock and reset are easy, just grab them twice, once in each driver.

Registers, well ... have a look at gen3_cpg_bind() in drivers/clk/renesas/clk-rcar-gen3.c . Specifically, see device_bind_with_driver_data() and how one common "superdriver" can get bound to an IP, and then instantiate and bind two "subdrivers" which each obtain resources claimed by the "superdriver" via (in this case) the 'info' parameter. That should work, right ?

Reply via email to