test: pinmux: add pincontrol-gpio for pin configuration
[platform/kernel/u-boot.git] / test / py / tests / test_pinmux.py
1 # SPDX-License-Identifier: GPL-2.0
2
3 import pytest
4 import u_boot_utils
5
6 @pytest.mark.buildconfigspec('cmd_pinmux')
7 def test_pinmux_usage_1(u_boot_console):
8     """Test that 'pinmux' command without parameters displays
9     pinmux usage."""
10     output = u_boot_console.run_command('pinmux')
11     assert 'Usage:' in output
12
13 @pytest.mark.buildconfigspec('cmd_pinmux')
14 def test_pinmux_usage_2(u_boot_console):
15     """Test that 'pinmux status' executed without previous "pinmux dev"
16     command displays pinmux usage."""
17     output = u_boot_console.run_command('pinmux status')
18     assert 'Usage:' in output
19
20 @pytest.mark.buildconfigspec('cmd_pinmux')
21 @pytest.mark.boardspec('sandbox')
22 def test_pinmux_status_all(u_boot_console):
23     """Test that 'pinmux status -a' displays pin's muxing."""
24     output = u_boot_console.run_command('pinmux status -a')
25
26     assert ('pinctrl-gpio:' in output)
27     assert ('a5        : gpio output .' in output)
28     assert ('a6        : gpio output .' in output)
29
30     assert ('pinctrl:' in output)
31     assert ('SCL       : I2C SCL.' in output)
32     assert ('SDA       : I2C SDA.' in output)
33     assert ('TX        : Uart TX.' in output)
34     assert ('RX        : Uart RX.' in output)
35     assert ('W1        : 1-wire gpio.' in output)
36     assert ('GPIO0     : gpio bias-pull-up input-disable.' in output)
37     assert ('GPIO1     : gpio drive-open-drain.' in output)
38     assert ('GPIO2     : gpio bias-pull-down input-enable.' in output)
39     assert ('GPIO3     : gpio bias-disable.' in output)
40
41 @pytest.mark.buildconfigspec('cmd_pinmux')
42 @pytest.mark.boardspec('sandbox')
43 def test_pinmux_list(u_boot_console):
44     """Test that 'pinmux list' returns the pin-controller list."""
45     output = u_boot_console.run_command('pinmux list')
46     assert 'sandbox_pinctrl' in output
47
48 @pytest.mark.buildconfigspec('cmd_pinmux')
49 def test_pinmux_dev_bad(u_boot_console):
50     """Test that 'pinmux dev' returns an error when trying to select a
51     wrong pin controller."""
52     pincontroller = 'bad_pin_controller_name'
53     output = u_boot_console.run_command('pinmux dev ' + pincontroller)
54     expected_output = 'Can\'t get the pin-controller: ' + pincontroller + '!'
55     assert (expected_output in output)
56
57 @pytest.mark.buildconfigspec('cmd_pinmux')
58 @pytest.mark.boardspec('sandbox')
59 def test_pinmux_dev(u_boot_console):
60     """Test that 'pinmux dev' select the wanted pin controller."""
61     pincontroller = 'pinctrl'
62     output = u_boot_console.run_command('pinmux dev ' + pincontroller)
63     expected_output = 'dev: ' + pincontroller
64     assert (expected_output in output)
65
66 @pytest.mark.buildconfigspec('cmd_pinmux')
67 @pytest.mark.boardspec('sandbox')
68 def test_pinmux_status(u_boot_console):
69     """Test that 'pinmux status' displays selected pincontroller's pin
70     muxing descriptions."""
71     output = u_boot_console.run_command('pinmux status')
72
73     assert (not 'pinctrl-gpio:' in output)
74     assert (not 'pinctrl:' in output)
75
76     assert ('SCL       : I2C SCL.' in output)
77     assert ('SDA       : I2C SDA.' in output)
78     assert ('TX        : Uart TX.' in output)
79     assert ('RX        : Uart RX.' in output)
80     assert ('W1        : 1-wire gpio.' in output)
81     assert ('GPIO0     : gpio bias-pull-up input-disable.' in output)
82     assert ('GPIO1     : gpio drive-open-drain.' in output)
83     assert ('GPIO2     : gpio bias-pull-down input-enable.' in output)
84     assert ('GPIO3     : gpio bias-disable.' in output)