drivers: gpio: move non-standard dts flags to be soc specific
Reserve the upper 8 bits of gpio_dt_flags_t for SoC specific flags and move the non-standard, hardware-specific GPIO devicetree flags (IO voltage level, drive strength, debounce filter) from the generic dt-bindings/gpio/gpio.h header to SoC specific dt-bindings headers. Some of the SoC specific dt-bindings flags take up more bits than necessary in order to retain backwards compatibility with the deprecated GPIO flags. The width of these fields can be reduced/optimized once the deprecated flags are removed. Remove hardcoded use of GPIO_INT_DEBOUNCE in GPIO client drivers. This flag can now be set in the devicetree for boards/SoCs with debounce filter support. The SoC specific debounce flags have had the _INT part of their name removed since these flag must be passed to gpio_pin_configure(), not gpio_pin_interrupt_configure(). Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
This commit is contained in:
parent
a87c811ec9
commit
d4023b3c1b
34 changed files with 416 additions and 211 deletions
|
@ -192,21 +192,6 @@ static int gpio_pca953x_config(const struct device *dev, gpio_pin_t pin,
|
|||
return -EWOULDBLOCK;
|
||||
}
|
||||
|
||||
/* Zephyr currently defines drive strength support based on
|
||||
* the behavior and capabilities of the Nordic GPIO
|
||||
* peripheral: strength defaults to low but can be set high,
|
||||
* and is controlled independently for output levels.
|
||||
*
|
||||
* The PCA953X supports only high strength, and does not
|
||||
* support different strengths for different levels.
|
||||
*
|
||||
* Until something more general is available reject any
|
||||
* attempt to set a non-default drive strength.
|
||||
*/
|
||||
if ((flags & GPIO_DS_ALT) != 0) {
|
||||
return -ENOTSUP;
|
||||
}
|
||||
|
||||
/* Single Ended lines (Open drain and open source) not supported */
|
||||
if ((flags & GPIO_SINGLE_ENDED) != 0) {
|
||||
return -ENOTSUP;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue