On Thu, Oct 23, 2008 at 04:32:49PM -0500, Matt Sealey wrote: > Hi guys, > > I'm a little perplexed as to how I would define a GPIO controller in a > device tree but mark off pins as available or not, so users can geek > around in their own drivers without defining in a device tree exactly > what they intend to use it for (especially if it's something really > weird). > > Easiest example - the Efika runs an MPC5200B has 3 GPIO pins on the > board. It's not much, but they're there for use. All the other GPIOs are > absolutely out of bounds, off limits and probably dangerous to touch, but > since each GPIO block has a 32-bit register to handle them, you can > twiddle any bit you like with impunity and cause all the damage you want. > A simple thought comes to mind in that the gpiolib should not allow a > request for one of these "bad" GPIO pins to succeed.
Well, the same applies to the IRQ controllers. I bet you can request a reserved IRQ on some particular board/CPU, but results would be unpredictable (the driver would touch reserved bits etc). The device tree should be sane for this particular platform and not specify bogus gpios/irqs/regs/sizes/etc. > So, how do we define in a bank of GPIOs, which ones are free for use, > without them being attached to a device and given as a "gpios" property? > > Would we suggest a node; > > gpio-header { > compatible = "bplan,efika-gpio"; > gpios = <&gpio-standard 16 0 17 0>; > }; > > gpio-header2 { > compatible = "bplan,efika-gpio-wkup"; > gpios = <&gpio-wkup 18 0>; > }; IMO this looks very reasonable. You properly describe the hardware: physical device (header) and its resources. -- Anton Vorontsov email: [EMAIL PROTECTED] irc://irc.freenode.net/bd2 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev