[PATCH v2 3/3] gpiolib: Add GPIO initialization
Uwe Kleine-König
u.kleine-koenig at pengutronix.de
Tue Feb 7 03:09:50 PST 2017
Hello,
(Markus left Pengutronix, so I dropped his non-working address from the
recipients and pick up his discussion.)
as far as I see, this topic isn't closed yet. I want something similar,
maybe even a bit more than this patch achieves:
Some gpios should get a fixed direction. If such a gpio is configured as
output, a value should be specified. This is already working today with
gpio-hogs.
Now additionally I want to initialize some gpios but allow them to be
grabbed later. IMHO there are the following new cases:
It should be possible to:
a) change the value of a gpio initially configured as output
b) change the direction of a gpio initially configured as output
c) change the direction of a gpio initially configured as input
IMHO the dts should describe which case should be applied to a given
gpio.
Is it a valid assumption that a gpio that can change direction is also
allowed to change value when configured as output? I assume this in the
following discussion, some details need to change if this shouldn't be
implied. (I think we need a d) then, not sure how this should look
though.)
I'd suggest the following description for these cases:
a)
/*
* initially configured as low output. Consumer can do
* gpio_set_value(..., 1); but not gpio_direction_input(...);
*/
nodename {
gpio-hog;
gpios = <...>;
output-low-init;
};
b)
/*
* initially configured as low output. Consumer can do
* gpio_set_value(..., 1); and gpio_direction_input(...);
*/
nodename {
gpio-hog;
gpios = <...>;
output-init-low;
};
c)
/*
* initially configured as input. Consumer can do
* gpio_direction_output(..., ...) and then set the value
* freely.
*/
nodename {
gpio-hog;
gpios = <...>;
input-init;
};
I don't like that "output-low-init" and "output-init-low" are so
similar, so if someone suggests a better naming scheme, that would be
great.
Does the idea (maybe apart from the naming) look good in general and/or
compared to Markus' suggestion?
(For those not having Markus' suggestion in mind any more. There we
could use "gpio-initval" instead of "gpio-hog" and then this had the
semantic of b) or c) using "input", "output-low" and "output-high". a)
wasn't possible to formalize.)
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |
More information about the linux-arm-kernel
mailing list