dm: pinctrl: Add pinctrl_get_pin_name and pinctrl_get_pins_count

Add pinctrl_get_pin_name() and pinctrl_get_pins_count() methods
to obtain pin's name and pin's muxing given a pin reference.

This will be used by the new pinmux command.

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Patrice Chotard 2018-10-24 14:10:14 +02:00 committed by Tom Rini
parent f55a0c0a20
commit 8bbb5b2085
2 changed files with 45 additions and 0 deletions

View file

@ -249,6 +249,29 @@ int pinctrl_get_gpio_mux(struct udevice *dev, int banknum, int index)
return ops->get_gpio_mux(dev, banknum, index); return ops->get_gpio_mux(dev, banknum, index);
} }
int pinctrl_get_pins_count(struct udevice *dev)
{
struct pinctrl_ops *ops = pinctrl_get_ops(dev);
if (!ops->get_pins_count)
return -ENOSYS;
return ops->get_pins_count(dev);
}
int pinctrl_get_pin_name(struct udevice *dev, int selector, char *buf,
int size)
{
struct pinctrl_ops *ops = pinctrl_get_ops(dev);
if (!ops->get_pin_name)
return -ENOSYS;
snprintf(buf, size, ops->get_pin_name(dev, selector));
return 0;
}
int pinctrl_get_pin_muxing(struct udevice *dev, int selector, char *buf, int pinctrl_get_pin_muxing(struct udevice *dev, int selector, char *buf,
int size) int size)
{ {

View file

@ -382,4 +382,26 @@ int pinctrl_get_gpio_mux(struct udevice *dev, int banknum, int index);
int pinctrl_get_pin_muxing(struct udevice *dev, int selector, char *buf, int pinctrl_get_pin_muxing(struct udevice *dev, int selector, char *buf,
int size); int size);
/**
* pinctrl_get_pins_count() - display pin-controller pins number
*
* This allows to know the number of pins owned by a given pin-controller
*
* @dev: Pinctrl device to use
* @return pins number if OK, -ve on error
*/
int pinctrl_get_pins_count(struct udevice *dev);
/**
* pinctrl_get_pin_name() - Returns the pin's name
*
* This allows to display the pin's name for debug purpose
*
* @dev: Pinctrl device to use
* @selector Pin index within pin-controller
* @buf Pin's name
* @return 0 if OK, -ve on error
*/
int pinctrl_get_pin_name(struct udevice *dev, int selector, char *buf,
int size);
#endif /* __PINCTRL_H */ #endif /* __PINCTRL_H */