[PATCH] powerpc: mpc8xxx_gpio: Add ability to mask off unused GPIO pins
Anton Vorontsov
avorontsov at ru.mvista.com
Sun Dec 6 04:56:14 EST 2009
Hi Peter,
On Fri, Dec 04, 2009 at 01:43:40PM -0600, Peter Tyser wrote:
> This change resolves 2 issues:
> - Different chips have a different number of GPIO pins per controller.
> For example, the MPC8347 has 32, the P2020 16, and the mpc8572 8.
> Previously, the mpc8xxx_gpio driver assumed every chip had 32 GPIO
> pins which resulted in some processors reporting an incorrect 'ngpio'
> field in /sys. Additionally, users could export and "use" 32 GPIO
> pins, although in reality only a subset of the 32 pins had any real
> functionality.
>
> - Some boards don't utilize all available GPIO pins. Previously,
> unused GPIO pins could still be exported and "used", even though the
> pins had no real functionality. This is somewhat confusing to a user
> and also allow a user to do something "bad", like change an unused
> floating output into a floating input.
There are hundreds of other ways to screw things up.
Think of /dev/mem, you still able to change the registers.
Before changing any GPIO (whether it is a normal or reserved GPIO),
user has to consult with schematics/docs.
> Adding a new "fsl,gpio-mask" device tree property allows a dts file to
> accurately describe what GPIO pins are available for use on a given
> board.
I don't see any real usage for this. If device tree specifies a wrong
gpio in the gpios = <> property, then it's a bug in the device tree
and should be fixed (or workarounded in the platform code).
If a user fiddles with unknown gpios via sysfs interface, then it's
user's problem.
FWIW, we don't have any masks for reserved IRQs.
Thanks,
--
Anton Vorontsov
email: cbouatmailru at gmail.com
irc://irc.freenode.net/bd2
More information about the Linuxppc-dev
mailing list