On Wed, Mar 09, 2022 at 04:28:30PM +0000, Mark Brown wrote:
On Wed, Mar 09, 2022 at 04:19:31PM +0000, John Keeping wrote:
On Wed, Mar 09, 2022 at 03:56:12PM +0000, Mark Brown wrote:
I'm still not seeing the functional change here. The actual state of the GPIO is identical in both cases, all that's changing is the logical view internally to the kernel.
Ah, sorry, I'm considering it functional since it changes the device tree ABI.
Used with the same device tree with, say, GPIO_ACTIVE_HIGH the physical state of the GPIO will change as a result of this patch and the device tree needs to be updated to use GPIO_ACTIVE_LOW.
I think the device tree binding needs to be clarified here to be explicit about this since there's obviously some room for user confusion here. We can probably get away with a change at this point since it's not hit a release but we do need to try to avoid the situation where any other implementations use active high polarity for the bindings.
Taking a quick survey of the other devices that have a pdn-gpios property:
- tvp5150 is correct with the driver setting 0 to make the device active
- tas571x also sets 0 to make the device active
- ak4375 uses the opposite sense setting PDN = 1 to make the device active; this has no in-tree users and was merged as part of v5.17-rc1 so it's not in a released kernel yet