Fix the gpio-specifier decoding by respecting the GPIO controller's
authorloos <loos@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sun, 27 Apr 2014 12:11:00 +0000 (12:11 +0000)
committerloos <loos@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sun, 27 Apr 2014 12:11:00 +0000 (12:11 +0000)
commit1fefd5a93a5a2dc3b5efcd61a74cf3aa62e26d95
treeab6c2cab6977035917d3b9b3e99633575078fb66
parentc2f458e2862798fe5dc4ba51e3dc529d93b0df71
Fix the gpio-specifier decoding by respecting the GPIO controller's
#gpio-cells property.

Add a new ofw_bus method (OFW_BUS_MAP_GPIOS()) that allows the GPIO
controller to implement its own mapping to deal with gpio-specifiers,
allowing the decoding of gpio-specifiers to be controller specific.

The default ofw_bus_map_gpios() decodes the linux standard (#gpio-cells =
<2>) and the FreeBSD standard (#gpio-cells = <3>).

It pass the gpio-specifier flag field to the children as an ivar variable so
they can act upon.

git-svn-id: svn://svn.freebsd.org/base/head@265012 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/dev/gpio/gpiobusvar.h
sys/dev/gpio/ofw_gpiobus.c
sys/dev/ofw/ofw_bus.h
sys/dev/ofw/ofw_bus_if.m