blob: ee79e843341d4cf249943de105d112c0d649a1d5 [file] [log] [blame]
Patrice Chotard0fc8afc2018-10-24 14:10:23 +02001# SPDX-License-Identifier: GPL-2.0
2
3import pytest
Simon Glassfb916372025-02-09 09:07:15 -07004import utils
Patrice Chotard0fc8afc2018-10-24 14:10:23 +02005
6@pytest.mark.buildconfigspec('cmd_pinmux')
Simon Glassddba5202025-02-09 09:07:14 -07007def test_pinmux_usage_1(ubman):
Patrice Chotard0fc8afc2018-10-24 14:10:23 +02008 """Test that 'pinmux' command without parameters displays
9 pinmux usage."""
Simon Glassddba5202025-02-09 09:07:14 -070010 output = ubman.run_command('pinmux')
Patrice Chotard0fc8afc2018-10-24 14:10:23 +020011 assert 'Usage:' in output
12
13@pytest.mark.buildconfigspec('cmd_pinmux')
Simon Glassddba5202025-02-09 09:07:14 -070014def test_pinmux_usage_2(ubman):
Patrice Chotard0fc8afc2018-10-24 14:10:23 +020015 """Test that 'pinmux status' executed without previous "pinmux dev"
Patrick Delaunayda453682021-05-21 09:47:31 +020016 command displays error message."""
Simon Glassddba5202025-02-09 09:07:14 -070017 output = ubman.run_command('pinmux status')
Patrick Delaunayda453682021-05-21 09:47:31 +020018 assert 'pin-controller device not selected' in output
Patrice Chotard0fc8afc2018-10-24 14:10:23 +020019
20@pytest.mark.buildconfigspec('cmd_pinmux')
21@pytest.mark.boardspec('sandbox')
Simon Glassddba5202025-02-09 09:07:14 -070022def test_pinmux_status_all(ubman):
Patrice Chotard0fc8afc2018-10-24 14:10:23 +020023 """Test that 'pinmux status -a' displays pin's muxing."""
Simon Glassddba5202025-02-09 09:07:14 -070024 output = ubman.run_command('pinmux status -a')
Patrick Delaunay1b4a22f2020-01-13 11:35:15 +010025
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)
Sean Anderson3438e3b2020-09-14 11:01:57 -040031 assert ('P0 : UART TX.' in output)
32 assert ('P1 : UART RX.' in output)
33 assert ('P2 : I2S SCK.' in output)
34 assert ('P3 : I2S SD.' in output)
35 assert ('P4 : I2S WS.' in output)
36 assert ('P5 : GPIO0 bias-pull-up input-disable.' in output)
37 assert ('P6 : GPIO1 drive-open-drain.' in output)
38 assert ('P7 : GPIO2 bias-pull-down input-enable.' in output)
39 assert ('P8 : GPIO3 bias-disable.' in output)
Patrice Chotard0fc8afc2018-10-24 14:10:23 +020040
41@pytest.mark.buildconfigspec('cmd_pinmux')
42@pytest.mark.boardspec('sandbox')
Simon Glassddba5202025-02-09 09:07:14 -070043def test_pinmux_list(ubman):
Patrice Chotard0fc8afc2018-10-24 14:10:23 +020044 """Test that 'pinmux list' returns the pin-controller list."""
Simon Glassddba5202025-02-09 09:07:14 -070045 output = ubman.run_command('pinmux list')
Patrice Chotard0fc8afc2018-10-24 14:10:23 +020046 assert 'sandbox_pinctrl' in output
47
48@pytest.mark.buildconfigspec('cmd_pinmux')
Simon Glassddba5202025-02-09 09:07:14 -070049def test_pinmux_dev_bad(ubman):
Patrice Chotard0fc8afc2018-10-24 14:10:23 +020050 """Test that 'pinmux dev' returns an error when trying to select a
51 wrong pin controller."""
52 pincontroller = 'bad_pin_controller_name'
Simon Glassddba5202025-02-09 09:07:14 -070053 output = ubman.run_command('pinmux dev ' + pincontroller)
Patrice Chotard0fc8afc2018-10-24 14:10:23 +020054 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')
Simon Glassddba5202025-02-09 09:07:14 -070059def test_pinmux_dev(ubman):
Patrice Chotard0fc8afc2018-10-24 14:10:23 +020060 """Test that 'pinmux dev' select the wanted pin controller."""
61 pincontroller = 'pinctrl'
Simon Glassddba5202025-02-09 09:07:14 -070062 output = ubman.run_command('pinmux dev ' + pincontroller)
Patrice Chotard0fc8afc2018-10-24 14:10:23 +020063 expected_output = 'dev: ' + pincontroller
64 assert (expected_output in output)
65
66@pytest.mark.buildconfigspec('cmd_pinmux')
67@pytest.mark.boardspec('sandbox')
Simon Glassddba5202025-02-09 09:07:14 -070068def test_pinmux_status(ubman):
Patrice Chotard0fc8afc2018-10-24 14:10:23 +020069 """Test that 'pinmux status' displays selected pincontroller's pin
70 muxing descriptions."""
Simon Glassddba5202025-02-09 09:07:14 -070071 ubman.run_command('pinmux dev pinctrl')
72 output = ubman.run_command('pinmux status')
Patrick Delaunay1b4a22f2020-01-13 11:35:15 +010073
74 assert (not 'pinctrl-gpio:' in output)
75 assert (not 'pinctrl:' in output)
76
Sean Anderson3438e3b2020-09-14 11:01:57 -040077 assert ('P0 : UART TX.' in output)
78 assert ('P1 : UART RX.' in output)
79 assert ('P2 : I2S SCK.' in output)
80 assert ('P3 : I2S SD.' in output)
81 assert ('P4 : I2S WS.' in output)
82 assert ('P5 : GPIO0 bias-pull-up input-disable.' in output)
83 assert ('P6 : GPIO1 drive-open-drain.' in output)
84 assert ('P7 : GPIO2 bias-pull-down input-enable.' in output)
85 assert ('P8 : GPIO3 bias-disable.' in output)