test_pinmux.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. # SPDX-License-Identifier: GPL-2.0
  2. import pytest
  3. import u_boot_utils
  4. @pytest.mark.buildconfigspec('cmd_pinmux')
  5. def test_pinmux_usage_1(u_boot_console):
  6. """Test that 'pinmux' command without parameters displays
  7. pinmux usage."""
  8. output = u_boot_console.run_command('pinmux')
  9. assert 'Usage:' in output
  10. @pytest.mark.buildconfigspec('cmd_pinmux')
  11. def test_pinmux_usage_2(u_boot_console):
  12. """Test that 'pinmux status' executed without previous "pinmux dev"
  13. command displays error message."""
  14. output = u_boot_console.run_command('pinmux status')
  15. assert 'pin-controller device not selected' in output
  16. @pytest.mark.buildconfigspec('cmd_pinmux')
  17. @pytest.mark.boardspec('sandbox')
  18. def test_pinmux_status_all(u_boot_console):
  19. """Test that 'pinmux status -a' displays pin's muxing."""
  20. output = u_boot_console.run_command('pinmux status -a')
  21. assert ('pinctrl-gpio:' in output)
  22. assert ('a5 : gpio output .' in output)
  23. assert ('a6 : gpio output .' in output)
  24. assert ('pinctrl:' in output)
  25. assert ('P0 : UART TX.' in output)
  26. assert ('P1 : UART RX.' in output)
  27. assert ('P2 : I2S SCK.' in output)
  28. assert ('P3 : I2S SD.' in output)
  29. assert ('P4 : I2S WS.' in output)
  30. assert ('P5 : GPIO0 bias-pull-up input-disable.' in output)
  31. assert ('P6 : GPIO1 drive-open-drain.' in output)
  32. assert ('P7 : GPIO2 bias-pull-down input-enable.' in output)
  33. assert ('P8 : GPIO3 bias-disable.' in output)
  34. @pytest.mark.buildconfigspec('cmd_pinmux')
  35. @pytest.mark.boardspec('sandbox')
  36. def test_pinmux_list(u_boot_console):
  37. """Test that 'pinmux list' returns the pin-controller list."""
  38. output = u_boot_console.run_command('pinmux list')
  39. assert 'sandbox_pinctrl' in output
  40. @pytest.mark.buildconfigspec('cmd_pinmux')
  41. def test_pinmux_dev_bad(u_boot_console):
  42. """Test that 'pinmux dev' returns an error when trying to select a
  43. wrong pin controller."""
  44. pincontroller = 'bad_pin_controller_name'
  45. output = u_boot_console.run_command('pinmux dev ' + pincontroller)
  46. expected_output = 'Can\'t get the pin-controller: ' + pincontroller + '!'
  47. assert (expected_output in output)
  48. @pytest.mark.buildconfigspec('cmd_pinmux')
  49. @pytest.mark.boardspec('sandbox')
  50. def test_pinmux_dev(u_boot_console):
  51. """Test that 'pinmux dev' select the wanted pin controller."""
  52. pincontroller = 'pinctrl'
  53. output = u_boot_console.run_command('pinmux dev ' + pincontroller)
  54. expected_output = 'dev: ' + pincontroller
  55. assert (expected_output in output)
  56. @pytest.mark.buildconfigspec('cmd_pinmux')
  57. @pytest.mark.boardspec('sandbox')
  58. def test_pinmux_status(u_boot_console):
  59. """Test that 'pinmux status' displays selected pincontroller's pin
  60. muxing descriptions."""
  61. output = u_boot_console.run_command('pinmux status')
  62. assert (not 'pinctrl-gpio:' in output)
  63. assert (not 'pinctrl:' in output)
  64. assert ('P0 : UART TX.' in output)
  65. assert ('P1 : UART RX.' in output)
  66. assert ('P2 : I2S SCK.' in output)
  67. assert ('P3 : I2S SD.' in output)
  68. assert ('P4 : I2S WS.' in output)
  69. assert ('P5 : GPIO0 bias-pull-up input-disable.' in output)
  70. assert ('P6 : GPIO1 drive-open-drain.' in output)
  71. assert ('P7 : GPIO2 bias-pull-down input-enable.' in output)
  72. assert ('P8 : GPIO3 bias-disable.' in output)