[U-Boot] [PATCH v4 00/11] Add pinmux command

Patrice Chotard patrice.chotard at st.com
Wed Oct 24 12:10:12 UTC 2018


For debug purpose, it's useful to know the pins muxing
to check if a pin is configured as a GPIO or as an alternate
function and to get information about this alternate function
configuration. For this purpose a new command pinmux is implemented.

This series adds:
  - Add get_pin_muxing ops to UCLASS pinctrl
  - Add pinmux command
  - Add get_function() support to stm32 gpio driver
  - Add get_pins_count() support to stm32 pinctrl driver
  - Add get_pin_name() support to stm32 pinctrl driver
  - Add get_pin_muxing() support to stm32 pinctrl driver
  - Add pinmux command test

Changes in v4:
 - Update get_pin_muxing() prototype by adding buffer and buffer's size
   parameters.
 - Replace respectively uclass_first_device() and uclass_next_device()
   by uclass_first_device_err() and uclass_next_device_err()
 - Update test return value of pinctrl_get_pin_muxing() due to ops get_pin_muxing()
   prototype update
 - Move defines PINNAME_SIZE and PINMUX_SIZE into include/dm/pinctrl.h in
   order to be used by pinctrl driver
 - Hardened test on argc value to avoid core dump during sandbox testing
 - Fix check of uclass_get_device_by_name() return value, in any error
   case, continue with the next child.
 - Use define PINNAME_SIZE from include/dm/pinctrl.h instead of
   driver's local one
 - Update get_pin_muxing() prototype by adding buffer and buffer's size as
   parameters
 - Update sandbox_get_pin_muxing() due to get_pin_muxing()
   prototype changes

Changes in v3:
 - Replace const char **buf parameter by char *buf, int size parameters
   for pinctrl_get_pin_muxing()
 - Replace const char **buf parameter by char *buf, int size parameters
   for pinctrl_get_pin_name()
 - Update calls to pinctrl_get_pin_name() and pinctrl_get_pin_muxing
   due to prototype update.
 - Fix typo

Changes in v2:
 - Replace pinmux_show ops which displayed the complete pin-controller
   muxing by get_pin_muxing ops which displays the muxing of one pin
 - In order to make pin muxing display less SoC specific,
   use pinctrl_pins_count(), pinctrl_get_pin_name() and
   pinctrl_get_pin_muxing() methods instead of
   previous pinctrl_pinmux_show() method.

Patrice Chotard (11):
  dm: pinctrl: Add get_pin_muxing() ops
  dm: pinctrl: Add pinctrl_get_pin_name and pinctrl_get_pins_count
  dm: uclass: Add uclass_next_device_err() to return a valid device
  dm: uclass: Add uclass_foreach_dev_probe
  cmd: pinmux: Add pinmux command
  pinctrl: stm32: Add get_pins_count() ops
  pinctrl: stm32: Add get_pin_name() ops
  pinctrl: stm32: Add get_pin_muxing() ops
  gpio: stm32f7: Add ops get_function
  pinctrl: sandbox: Add get_pin_muxing ops support
  test/py: test pinmux command

 arch/sandbox/dts/test.dts         |   4 +
 cmd/Kconfig                       |   8 ++
 cmd/Makefile                      |   1 +
 cmd/pinmux.c                      | 146 +++++++++++++++++++++++++++
 drivers/core/uclass.c             |  13 +++
 drivers/gpio/stm32f7_gpio.c       |  20 ++++
 drivers/pinctrl/pinctrl-sandbox.c |  18 ++++
 drivers/pinctrl/pinctrl-uclass.c  |  34 +++++++
 drivers/pinctrl/pinctrl_stm32.c   | 207 +++++++++++++++++++++++++++++++++++++-
 include/dm/pinctrl.h              |  59 +++++++++++
 include/dm/uclass.h               |  28 ++++++
 test/py/tests/test_pinmux.py      |  62 ++++++++++++
 12 files changed, 595 insertions(+), 5 deletions(-)
 create mode 100644 cmd/pinmux.c
 create mode 100644 test/py/tests/test_pinmux.py

-- 
1.9.1



More information about the U-Boot mailing list