>> > All GPIOs are always controlled by HW by default. >> > FW_CONTROL_SET is used when we want to release control of the GPIO >> > by HW and give the control to software instead. >> >> What does that mean in practice? What way does hardware control a GPIO? >> >> It's not some way of remuxing the pins is it, so you what you are >> calling "controlled by hardware" is actually that it is controlled by >> e.g. I2C and other stuff that may be muxed in? > > Yes exactly. These GPIO pins are already assigned a specific HW > functionality like I2C SDA/SCL, MDIO etc... but we would like to > support the option to control them from software if desired. But how does that play with your pin controller? I mean: is the multiplexing of different other devices also software controlled, so this should have a proper pin control driver rather than just a GPIO driver? So these GPIO pins are assigned one specific HW functionality on the boards and software should never change them. By default, for security purposes, I think we shouldn't let the user have the option to control the GPIO pins since they have a specific HW functionality. But for bringup/debug purposes, we would like to support the option of software being able to change these pin values. We also might have customers that choose to change the default HW connection of a certain GPIO pin and connect it to control their LEDs for instance. Thanks. Asmaa