mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
dm: pinctrl: Add a function to parse PIN_CONFIG flags
Add a function which produces a flags word from a few common PIN_CONFIG settings. This is useful for simple pinctrl drivers that don't need to worry about drive strength, etc. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
0379597e55
commit
52db39a22b
2 changed files with 25 additions and 0 deletions
|
@ -15,6 +15,18 @@
|
|||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
int pinctrl_decode_pin_config(const void *blob, int node)
|
||||
{
|
||||
int flags = 0;
|
||||
|
||||
if (fdtdec_get_bool(blob, node, "bias-pull-up"))
|
||||
flags |= 1 << PIN_CONFIG_BIAS_PULL_UP;
|
||||
else if (fdtdec_get_bool(blob, node, "bias-pull-down"))
|
||||
flags |= 1 << PIN_CONFIG_BIAS_PULL_DOWN;
|
||||
|
||||
return flags;
|
||||
}
|
||||
|
||||
#if CONFIG_IS_ENABLED(PINCTRL_FULL)
|
||||
/**
|
||||
* pinctrl_config_one() - apply pinctrl settings for a single node
|
||||
|
|
|
@ -284,4 +284,17 @@ int pinctrl_request_noflags(struct udevice *dev, int func);
|
|||
*/
|
||||
int pinctrl_get_periph_id(struct udevice *dev, struct udevice *periph);
|
||||
|
||||
/**
|
||||
* pinctrl_decode_pin_config() - decode pin configuration flags
|
||||
*
|
||||
* This decodes some of the PIN_CONFIG values into flags, with each value
|
||||
* being (1 << pin_cfg). This does not support things with values like the
|
||||
* slew rate.
|
||||
*
|
||||
* @blob: Device tree blob
|
||||
* @node: Node containing the PIN_CONFIG values
|
||||
* @return decoded flag value, or -ve on error
|
||||
*/
|
||||
int pinctrl_decode_pin_config(const void *blob, int node);
|
||||
|
||||
#endif /* __PINCTRL_H */
|
||||
|
|
Loading…
Reference in a new issue