xref: /openbmc/u-boot/test/dm/serial.c (revision 9865543a)
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Copyright (c) 2018, STMicroelectronics
4  */
5 
6 #include <common.h>
7 #include <serial.h>
8 #include <dm.h>
9 #include <dm/test.h>
10 #include <test/ut.h>
11 
12 static int dm_test_serial(struct unit_test_state *uts)
13 {
14 	struct udevice *dev_serial;
15 
16 	ut_assertok(uclass_get_device_by_name(UCLASS_SERIAL, "serial",
17 					      &dev_serial));
18 
19 	ut_assertok(serial_tstc());
20 	/*
21 	 * test with default config which is the only one supported by
22 	 * sandbox_serial driver
23 	 */
24 	ut_assertok(serial_setconfig(SERIAL_DEFAULT_CONFIG));
25 	/*
26 	 * test with a serial config which is not supported by
27 	 * sandbox_serial driver: test with wrong parity
28 	 */
29 	ut_asserteq(-ENOTSUPP,
30 		    serial_setconfig(SERIAL_CONFIG(SERIAL_PAR_ODD,
31 						   SERIAL_8_BITS,
32 						   SERIAL_ONE_STOP)));
33 	/*
34 	 * test with a serial config which is not supported by
35 	 * sandbox_serial driver: test with wrong bits number
36 	 */
37 	ut_asserteq(-ENOTSUPP,
38 		    serial_setconfig(SERIAL_CONFIG(SERIAL_PAR_NONE,
39 						   SERIAL_6_BITS,
40 						   SERIAL_ONE_STOP)));
41 
42 	/*
43 	 * test with a serial config which is not supported by
44 	 * sandbox_serial driver: test with wrong stop bits number
45 	 */
46 	ut_asserteq(-ENOTSUPP,
47 		    serial_setconfig(SERIAL_CONFIG(SERIAL_PAR_NONE,
48 						   SERIAL_8_BITS,
49 						   SERIAL_TWO_STOP)));
50 
51 	return 0;
52 }
53 
54 DM_TEST(dm_test_serial, DM_TESTF_SCAN_FDT);
55