Linux Audio

Check our new training course

Embedded Linux Audio

Check our new training course
with Creative Commons CC-BY-SA
lecture materials

Bootlin logo

Elixir Cross Referencer

Loading...
   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
# SPDX-License-Identifier: GPL-2.0
#
# Serial device configuration
#

menu "Serial drivers"
	depends on HAS_IOMEM

config SERIAL_EARLYCON
	bool
	depends on SERIAL_CORE
	help
	  Support for early consoles with the earlycon parameter. This enables
	  the console before standard serial driver is probed. The console is
	  enabled when early_param is processed.

source "drivers/tty/serial/8250/Kconfig"

comment "Non-8250 serial port support"

config SERIAL_AMBA_PL010
	tristate "ARM AMBA PL010 serial port support"
	depends on ARM_AMBA || COMPILE_TEST
	select SERIAL_CORE
	help
	  This selects the ARM(R) AMBA(R) PrimeCell PL010 UART.  If you have
	  an Integrator/AP or Integrator/PP2 platform, or if you have a
	  Cirrus Logic EP93xx CPU, say Y or M here.

	  If unsure, say N.

config SERIAL_AMBA_PL010_CONSOLE
	bool "Support for console on AMBA serial port"
	depends on SERIAL_AMBA_PL010=y
	select SERIAL_CORE_CONSOLE
	help
	  Say Y here if you wish to use an AMBA PrimeCell UART as the system
	  console (the system console is the device which receives all kernel
	  messages and warnings and which allows logins in single user mode).

	  Even if you say Y here, the currently visible framebuffer console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttyAM0". (Try "man bootparam" or see the documentation of
	  your boot loader (lilo or loadlin) about how to pass options to the
	  kernel at boot time.)

config SERIAL_AMBA_PL011
	tristate "ARM AMBA PL011 serial port support"
	depends on ARM_AMBA
	select SERIAL_CORE
	help
	  This selects the ARM(R) AMBA(R) PrimeCell PL011 UART.  If you have
	  an Integrator/PP2, Integrator/CP or Versatile platform, say Y or M
	  here.

	  If unsure, say N.

config SERIAL_AMBA_PL011_CONSOLE
	bool "Support for console on AMBA serial port"
	depends on SERIAL_AMBA_PL011=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Say Y here if you wish to use an AMBA PrimeCell UART as the system
	  console (the system console is the device which receives all kernel
	  messages and warnings and which allows logins in single user mode).

	  Even if you say Y here, the currently visible framebuffer console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttyAMA0". (Try "man bootparam" or see the documentation of
	  your boot loader (lilo or loadlin) about how to pass options to the
	  kernel at boot time.)

config SERIAL_EARLYCON_SEMIHOST
	bool "Early console using Arm compatible semihosting"
	depends on ARM64 || ARM || RISCV
	select SERIAL_CORE
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Support for early debug console using Arm compatible semihosting.
	  This enables the console before standard serial driver is probed.
	  This is enabled with "earlycon=smh" on the kernel command line.
	  The console is enabled when early_param is processed.

config SERIAL_EARLYCON_RISCV_SBI
	bool "Early console using RISC-V SBI"
	depends on RISCV_SBI
	select SERIAL_CORE
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Support for early debug console using RISC-V SBI. This enables
	  the console before standard serial driver is probed. This is enabled
	  with "earlycon=sbi" on the kernel command line. The console is
	  enabled when early_param is processed.

config SERIAL_SB1250_DUART
	tristate "BCM1xxx on-chip DUART serial support"
	depends on SIBYTE_SB1xxx_SOC=y
	select SERIAL_CORE
	default y
	help
	  Support for the asynchronous serial interface (DUART) included in
	  the BCM1250 and derived System-On-a-Chip (SOC) devices.  Note that
	  the letter D in DUART stands for "dual", which is how the device
	  is implemented.  Depending on the SOC configuration there may be
	  one or more DUARTs available of which all are handled.

	  If unsure, say Y.  To compile this driver as a module, choose M here:
	  the module will be called sb1250-duart.

config SERIAL_SB1250_DUART_CONSOLE
	bool "Support for console on a BCM1xxx DUART serial port"
	depends on SERIAL_SB1250_DUART=y
	select SERIAL_CORE_CONSOLE
	default y
	help
	  If you say Y here, it will be possible to use a serial port as the
	  system console (the system console is the device which receives all
	  kernel messages and warnings and which allows logins in single user
	  mode).

	  If unsure, say Y.

config SERIAL_ATMEL
	bool "AT91 on-chip serial port support"
	depends on COMMON_CLK
	depends on ARCH_AT91 || COMPILE_TEST
	select SERIAL_CORE
	select SERIAL_MCTRL_GPIO if GPIOLIB
	select MFD_AT91_USART
	help
	  This enables the driver for the on-chip UARTs of the Atmel
	  AT91 processors.

config SERIAL_ATMEL_CONSOLE
	bool "Support for console on AT91 serial port"
	depends on SERIAL_ATMEL=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Say Y here if you wish to use an on-chip UART on a Atmel
	  AT91 processor as the system console (the system
	  console is the device which receives all kernel messages and
	  warnings and which allows logins in single user mode).

config SERIAL_ATMEL_PDC
	bool "Support DMA transfers on AT91 serial port"
	depends on SERIAL_ATMEL
	default y
	help
	  Say Y here if you wish to use the PDC to do DMA transfers to
	  and from the Atmel AT91 serial port. In order to
	  actually use DMA transfers, make sure that the use_dma_tx
	  and use_dma_rx members in the atmel_uart_data struct is set
	  appropriately for each port.

	  Note that break and error handling currently doesn't work
	  properly when DMA is enabled. Make sure that ports where
	  this matters don't use DMA.

config SERIAL_ATMEL_TTYAT
	bool "Install as device ttyATn instead of ttySn"
	depends on SERIAL_ATMEL=y
	help
	  Say Y here if you wish to have the internal AT91 UARTs
	  appear as /dev/ttyATn (major 204, minor starting at 154)
	  instead of the normal /dev/ttySn (major 4, minor starting at
	  64). This is necessary if you also want other UARTs, such as
	  external 8250/16C550 compatible UARTs.
	  The ttySn nodes are legally reserved for the 8250 serial driver
	  but are often misused by other serial drivers.

	  To use this, you should create suitable ttyATn device nodes in
	  /dev/, and pass "console=ttyATn" to the kernel.

	  Say Y if you have an external 8250/16C550 UART.  If unsure, say N.

config SERIAL_KGDB_NMI
	bool "Serial console over KGDB NMI debugger port"
	depends on KGDB_SERIAL_CONSOLE
	help
	  This special driver allows you to temporary use NMI debugger port
	  as a normal console (assuming that the port is attached to KGDB).

	  Unlike KDB's disable_nmi command, with this driver you are always
	  able to go back to the debugger using KGDB escape sequence ($3#33).
	  This is because this console driver processes the input in NMI
	  context, and thus is able to intercept the magic sequence.

	  Note that since the console interprets input and uses polling
	  communication methods, for things like PPP you still must fully
	  detach debugger port from the KGDB NMI (i.e. disable_nmi), and
	  use raw console.

	  If unsure, say N.

config SERIAL_MESON
	tristate "Meson serial port support"
	depends on ARCH_MESON || COMPILE_TEST
	select SERIAL_CORE
	help
	  This enables the driver for the on-chip UARTs of the Amlogic
	  MesonX processors.

config SERIAL_MESON_CONSOLE
	bool "Support for console on meson"
	depends on SERIAL_MESON
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Say Y here if you wish to use a Amlogic MesonX UART as the
	  system console (the system console is the device which
	  receives all kernel messages and warnings and which allows
	  logins in single user mode) as /dev/ttyAMLx.

config SERIAL_CLPS711X
	tristate "CLPS711X serial port support"
	depends on ARCH_CLPS711X || COMPILE_TEST
	select SERIAL_CORE
	select SERIAL_MCTRL_GPIO if GPIOLIB
	help
	  This enables the driver for the on-chip UARTs of the Cirrus
	  Logic EP711x/EP721x/EP731x processors.

config SERIAL_CLPS711X_CONSOLE
	bool "Support for console on CLPS711X serial port"
	depends on SERIAL_CLPS711X=y
	select SERIAL_CORE_CONSOLE
	help
	  Even if you say Y here, the currently visible virtual console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttyCL1".

config SERIAL_SAMSUNG
	tristate "Samsung SoC serial support"
	depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || ARCH_APPLE || ARCH_ARTPEC || COMPILE_TEST
	select SERIAL_CORE
	help
	  Support for the on-chip UARTs on the Samsung
	  S3C64xx/S5Pv210/Exynos and Apple M1 SoCs, providing
	  /dev/ttySAC0, 1 and 2 (note, some machines may not provide all of
	  these ports, depending on how the serial port pins are configured.

	  Choose Y/M here only if you build for such SoC.

config SERIAL_SAMSUNG_UARTS
	int
	depends on SERIAL_SAMSUNG
	default 4
	help
	  Select the number of available UART ports for the Samsung S3C
	  serial driver

config SERIAL_SAMSUNG_CONSOLE
	bool "Support for console on Samsung SoC serial port"
	depends on SERIAL_SAMSUNG
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Allow selection of the S3C24XX on-board serial ports for use as
	  an virtual console.

	  Even if you say Y here, the currently visible virtual console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttySACx". (Try "man bootparam" or see the documentation of
	  your boot loader about how to pass options to the kernel at
	  boot time.)

config SERIAL_TEGRA
	tristate "NVIDIA Tegra20/30 SoC serial controller"
	depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST
	select SERIAL_CORE
	help
	  Support for the on-chip UARTs on the NVIDIA Tegra series SOCs
	  providing /dev/ttyTHS0, 1, 2, 3 and 4 (note, some machines may not
	  provide all of these ports, depending on how the serial port
	  are enabled). This driver uses the APB DMA to achieve higher baudrate
	  and better performance.

config SERIAL_TEGRA_TCU
	tristate "NVIDIA Tegra Combined UART"
	depends on MAILBOX
	depends on (ARCH_TEGRA && TEGRA_HSP_MBOX) || COMPILE_TEST
	select SERIAL_CORE
	help
	  Support for the mailbox-based TCU (Tegra Combined UART) serial port.
	  TCU is a virtual serial port that allows multiplexing multiple data
	  streams into a single hardware serial port.

config SERIAL_TEGRA_TCU_CONSOLE
	bool "Support for console on a Tegra TCU serial port"
	depends on SERIAL_TEGRA_TCU=y
	select SERIAL_CORE_CONSOLE
	default y
	help
	  If you say Y here, it will be possible to use a the Tegra TCU as the
	  system console (the system console is the device which receives all
	  kernel messages and warnings and which allows logins in single user
	  mode).

	  If unsure, say Y.

config SERIAL_MAX3100
	tristate "MAX3100/3110/3111/3222 support"
	depends on SPI
	select SERIAL_CORE
	help
	  This selects support for an advanced UART from Maxim.
	  Supported ICs are MAX3100, MAX3110, MAX3111, MAX3222.

	  Say Y here if you want to support these ICs.

config SERIAL_MAX310X
	tristate "MAX310X support"
	depends on SPI_MASTER
	select SERIAL_CORE
	select REGMAP_SPI if SPI_MASTER
	select REGMAP_I2C if I2C
	help
	  This selects support for an advanced UART from Maxim (Dallas).
	  Supported ICs are MAX3107, MAX3108, MAX3109, MAX14830.
	  Each IC contains 128 words each of receive and transmit FIFO
	  that can be controlled through I2C or high-speed SPI.

	  Say Y here if you want to support this ICs.

config SERIAL_DZ
	bool "DECstation DZ serial driver"
	depends on MACH_DECSTATION && 32BIT
	select SERIAL_CORE
	default y
	help
	  DZ11-family serial controllers for DECstations and VAXstations,
	  including the DC7085, M7814, and M7819.

config SERIAL_DZ_CONSOLE
	bool "Support console on DECstation DZ serial driver"
	depends on SERIAL_DZ=y
	select SERIAL_CORE_CONSOLE
	default y
	help
	  If you say Y here, it will be possible to use a serial port as the
	  system console (the system console is the device which receives all
	  kernel messages and warnings and which allows logins in single user
	  mode).

	  Note that the firmware uses ttyS3 as the serial console on
	  DECstations that use this driver.

	  If unsure, say Y.

config SERIAL_ZS
	tristate "DECstation Z85C30 serial support"
	depends on MACH_DECSTATION
	select SERIAL_CORE
	default y
	help
	  Support for the Zilog 85C350 serial communications controller used
	  for serial ports in newer DECstation systems.  These include the
	  DECsystem 5900 and all models of the DECstation and DECsystem 5000
	  systems except from model 200.

	  If unsure, say Y.  To compile this driver as a module, choose M here:
	  the module will be called zs.

config SERIAL_ZS_CONSOLE
	bool "Support for console on a DECstation Z85C30 serial port"
	depends on SERIAL_ZS=y
	select SERIAL_CORE_CONSOLE
	default y
	help
	  If you say Y here, it will be possible to use a serial port as the
	  system console (the system console is the device which receives all
	  kernel messages and warnings and which allows logins in single user
	  mode).

	  Note that the firmware uses ttyS1 as the serial console on the
	  Maxine and ttyS3 on the others using this driver.

	  If unsure, say Y.

config SERIAL_21285
	tristate "DC21285 serial port support"
	depends on FOOTBRIDGE
	select SERIAL_CORE
	help
	  If you have a machine based on a 21285 (Footbridge) StrongARM(R)/
	  PCI bridge you can enable its onboard serial port by enabling this
	  option.

config SERIAL_21285_CONSOLE
	bool "Console on DC21285 serial port"
	depends on SERIAL_21285=y
	select SERIAL_CORE_CONSOLE
	help
	  If you have enabled the serial port on the 21285 footbridge you can
	  make it the console by answering Y to this option.

	  Even if you say Y here, the currently visible virtual console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttyFB". (Try "man bootparam" or see the documentation of
	  your boot loader (lilo or loadlin) about how to pass options to the
	  kernel at boot time.)

config SERIAL_PXA
	bool "PXA serial port support (DEPRECATED)"
	depends on ARCH_PXA || ARCH_MMP
	select SERIAL_CORE
	select SERIAL_8250_PXA if SERIAL_8250=y
	select SERIAL_PXA_NON8250 if !SERIAL_8250=y
	help
	  If you have a machine based on an Intel XScale PXA2xx CPU you
	  can enable its onboard serial ports by enabling this option.

	  Unless you have a specific need, you should use SERIAL_8250_PXA
	  instead of this.

config SERIAL_PXA_NON8250
	bool
	depends on !SERIAL_8250 || COMPILE_TEST

config SERIAL_PXA_CONSOLE
	bool "Console on PXA serial port (DEPRECATED)"
	depends on SERIAL_PXA
	select SERIAL_CORE_CONSOLE
	select SERIAL_8250_CONSOLE if SERIAL_8250=y
	help
	  If you have enabled the serial port on the Intel XScale PXA
	  CPU you can make it the console by answering Y to this option.

	  Even if you say Y here, the currently visible virtual console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttySA0". (Try "man bootparam" or see the documentation of
	  your boot loader (lilo or loadlin) about how to pass options to the
	  kernel at boot time.)

	  Unless you have a specific need, you should use SERIAL_8250_PXA
	  and SERIAL_8250_CONSOLE instead of this.

config SERIAL_SA1100
	bool "SA1100 serial port support"
	depends on ARCH_SA1100
	select SERIAL_CORE
	select SERIAL_MCTRL_GPIO if GPIOLIB
	help
	  If you have a machine based on a SA1100/SA1110 StrongARM(R) CPU you
	  can enable its onboard serial port by enabling this option.
	  Please read <file:Documentation/arch/arm/sa1100/serial_uart.rst> for
	  further info.

config SERIAL_SA1100_CONSOLE
	bool "Console on SA1100 serial port"
	depends on SERIAL_SA1100
	select SERIAL_CORE_CONSOLE
	help
	  If you have enabled the serial port on the SA1100/SA1110 StrongARM
	  CPU you can make it the console by answering Y to this option.

	  Even if you say Y here, the currently visible virtual console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttySA0". (Try "man bootparam" or see the documentation of
	  your boot loader (lilo or loadlin) about how to pass options to the
	  kernel at boot time.)

config SERIAL_IMX
	tristate "IMX serial port support"
	depends on ARCH_MXC || COMPILE_TEST
	select SERIAL_CORE
	select RATIONAL
	select SERIAL_MCTRL_GPIO if GPIOLIB
	help
	  If you have a machine based on a Motorola IMX CPU you
	  can enable its onboard serial port by enabling this option.

config SERIAL_IMX_CONSOLE
	tristate "Console on IMX serial port"
	depends on SERIAL_IMX
	select SERIAL_CORE_CONSOLE
	help
	  If you have enabled the serial port on the Freescale IMX
	  CPU you can make it the console by answering Y/M to this option.

	  Even if you say Y/M here, the currently visible virtual console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttymxc0". (Try "man bootparam" or see the documentation of
	  your bootloader about how to pass options to the kernel at boot time.)

config SERIAL_IMX_EARLYCON
	bool "Earlycon on IMX serial port"
	depends on ARCH_MXC || COMPILE_TEST
	depends on OF
	select SERIAL_CORE
	select SERIAL_EARLYCON
	select SERIAL_CORE_CONSOLE
	default y if SERIAL_IMX_CONSOLE
	help
	  If you have enabled the earlycon on the Freescale IMX
	  CPU you can make it the earlycon by answering Y to this option.

config SERIAL_UARTLITE
	tristate "Xilinx uartlite serial port support"
	depends on HAS_IOMEM
	select SERIAL_CORE
	help
	  Say Y here if you want to use the Xilinx uartlite serial controller.

	  To compile this driver as a module, choose M here: the
	  module will be called uartlite.

config SERIAL_UARTLITE_CONSOLE
	bool "Support for console on Xilinx uartlite serial port"
	depends on SERIAL_UARTLITE=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Say Y here if you wish to use a Xilinx uartlite as the system
	  console (the system console is the device which receives all kernel
	  messages and warnings and which allows logins in single user mode).

config SERIAL_UARTLITE_NR_UARTS
	int "Maximum number of uartlite serial ports"
	depends on SERIAL_UARTLITE
	range 1 256
	default 1
	help
	  Set this to the number of uartlites in your system, or the number
	  you think you might implement.
	  If maximum number of uartlite serial ports is more than 4, then the
	  driver uses dynamic allocation instead of static allocation for major
	  number.

config SERIAL_SUNCORE
	bool
	depends on SPARC
	select SERIAL_CORE
	select SERIAL_CORE_CONSOLE
	default y

config SERIAL_SUNZILOG
	tristate "Sun Zilog8530 serial support"
	depends on SPARC
	help
	  This driver supports the Zilog8530 serial ports found on many Sparc
	  systems.  Say Y or M if you want to be able to these serial ports.

config SERIAL_SUNZILOG_CONSOLE
	bool "Console on Sun Zilog8530 serial port"
	depends on SERIAL_SUNZILOG=y
	help
	  If you would like to be able to use the Zilog8530 serial port
	  on your Sparc system as the console, you can do so by answering
	  Y to this option.

config SERIAL_SUNSU
	tristate "Sun SU serial support"
	depends on SPARC && PCI
	help
	  This driver supports the 8250 serial ports that run the keyboard and
	  mouse on (PCI) UltraSPARC systems.  Say Y or M if you want to be able
	  to these serial ports.

config SERIAL_SUNSU_CONSOLE
	bool "Console on Sun SU serial port"
	depends on SERIAL_SUNSU=y
	help
	  If you would like to be able to use the SU serial port
	  on your Sparc system as the console, you can do so by answering
	  Y to this option.

config SERIAL_MUX
	tristate "Serial MUX support"
	depends on GSC
	select SERIAL_CORE
	default y
	help
	  Saying Y here will enable the hardware MUX serial driver for
	  the Nova, K class systems and D class with a 'remote control card'.
	  The hardware MUX is not 8250/16550 compatible therefore the
	  /dev/ttyB0 device is shared between the Serial MUX and the PDC
	  software console. The following steps need to be completed to use
	  the Serial MUX:

	    1. create the device entry (mknod /dev/ttyB0 c 11 0)
	    2. Edit the /etc/inittab to start a getty listening on /dev/ttyB0
	    3. Add device ttyB0 to /etc/securetty (if you want to log on as
		 root on this console.)
	    4. Change the kernel command console parameter to: console=ttyB0

config SERIAL_MUX_CONSOLE
	bool "Support for console on serial MUX"
	depends on SERIAL_MUX=y
	select SERIAL_CORE_CONSOLE
	default y

config SERIAL_SUNSAB
	tristate "Sun Siemens SAB82532 serial support"
	depends on SPARC && PCI
	help
	  This driver supports the Siemens SAB82532 DUSCC serial ports on newer
	  (PCI) UltraSPARC systems.  Say Y or M if you want to be able to these
	  serial ports.

config SERIAL_SUNSAB_CONSOLE
	bool "Console on Sun Siemens SAB82532 serial port"
	depends on SERIAL_SUNSAB=y
	help
	  If you would like to be able to use the SAB82532 serial port
	  on your Sparc system as the console, you can do so by answering
	  Y to this option.

config SERIAL_SUNHV
	bool "Sun4v Hypervisor Console support"
	depends on SPARC64
	help
	  This driver supports the console device found on SUN4V Sparc
	  systems.  Say Y if you want to be able to use this device.

config SERIAL_IP22_ZILOG
	tristate "SGI Zilog8530 serial support"
	depends on SGI_HAS_ZILOG
	select SERIAL_CORE
	help
	  This driver supports the Zilog8530 serial ports found on SGI
	  systems.  Say Y or M if you want to be able to these serial ports.

config SERIAL_IP22_ZILOG_CONSOLE
	bool "Console on SGI Zilog8530 serial port"
	depends on SERIAL_IP22_ZILOG=y
	select SERIAL_CORE_CONSOLE

config SERIAL_SH_SCI
	tristate "SuperH SCI(F) serial port support"
	depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
	select SERIAL_CORE
	select SERIAL_MCTRL_GPIO if GPIOLIB

config SERIAL_SH_SCI_NR_UARTS
	int "Maximum number of SCI(F) serial ports" if EXPERT
	range 1 64 if 64BIT
	range 1 32 if !64BIT
	depends on SERIAL_SH_SCI
	default "10" if SUPERH
	default "18" if ARCH_RENESAS
	default "2"

config SERIAL_SH_SCI_CONSOLE
	bool "Support for console on SuperH SCI(F)" if EXPERT
	depends on SERIAL_SH_SCI=y
	select SERIAL_CORE_CONSOLE
	default y

config SERIAL_SH_SCI_EARLYCON
	bool "Support for early console on SuperH SCI(F)" if EXPERT
	depends on SERIAL_SH_SCI=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	default ARCH_RENESAS

config SERIAL_SH_SCI_DMA
	bool "DMA support" if EXPERT
	depends on SERIAL_SH_SCI && DMA_ENGINE
	default ARCH_RENESAS

config SERIAL_HS_LPC32XX
	tristate "LPC32XX high speed serial port support"
	depends on ARCH_LPC32XX || COMPILE_TEST
	depends on OF
	select SERIAL_CORE
	help
	  Support for the LPC32XX high speed serial ports (up to 900kbps).
	  Those are UARTs completely different from the Standard UARTs on the
	  LPC32XX SoC.
	  Choose M or Y here to build this driver.

config SERIAL_HS_LPC32XX_CONSOLE
	bool "Enable LPC32XX high speed UART serial console"
	depends on SERIAL_HS_LPC32XX=y
	select SERIAL_CORE_CONSOLE
	help
	  If you would like to be able to use one of the high speed serial
	  ports on the LPC32XX as the console, you can do so by answering
	  Y to this option.

config SERIAL_CORE
	tristate

config SERIAL_CORE_CONSOLE
	bool

config CONSOLE_POLL
	bool

config SERIAL_MCF
	bool "Coldfire serial support"
	depends on COLDFIRE
	select SERIAL_CORE
	help
	  This serial driver supports the Freescale Coldfire serial ports.

config SERIAL_MCF_BAUDRATE
	int "Default baudrate for Coldfire serial ports"
	depends on SERIAL_MCF
	default 19200
	help
	  This setting lets you define what the default baudrate is for the
	  ColdFire serial ports. The usual default varies from board to board,
	  and this setting is a way of catering for that.

config SERIAL_MCF_CONSOLE
	bool "Coldfire serial console support"
	depends on SERIAL_MCF
	select SERIAL_CORE_CONSOLE
	help
	  Enable a ColdFire internal serial port to be the system console.

config SERIAL_PMACZILOG
	tristate "Mac or PowerMac z85c30 ESCC support"
	depends on (M68K && MAC) || PPC_PMAC
	select SERIAL_CORE
	help
	  This driver supports the Zilog z85C30 serial ports found on
	  (Power)Mac machines.
	  Say Y or M if you want to be able to these serial ports.

config SERIAL_PMACZILOG_TTYS
	bool "Use ttySn device nodes for Zilog z85c30"
	depends on SERIAL_PMACZILOG
	help
	  The pmac_zilog driver for the z85C30 chip on many powermacs
	  historically used the device numbers for /dev/ttySn.  The
	  8250 serial port driver also uses these numbers, which means
	  the two drivers being unable to coexist; you could not use
	  both z85C30 and 8250 type ports at the same time.

	  If this option is not selected, the pmac_zilog driver will
	  use the device numbers allocated for /dev/ttyPZn.  This allows
	  the pmac_zilog and 8250 drivers to co-exist, but may cause
	  existing userspace setups to break.  Programs that need to
	  access the built-in serial ports on powermacs will need to
	  be reconfigured to use /dev/ttyPZn instead of /dev/ttySn.

	  If you enable this option, any z85c30 ports in the system will
	  be registered as ttyS0 onwards as in the past, and you will be
	  unable to use the 8250 module for PCMCIA or other 16C550-style
	  UARTs.

	  Say N unless you need the z85c30 ports on your (Power)Mac
	  to appear as /dev/ttySn.

config SERIAL_PMACZILOG_CONSOLE
	bool "Console on Mac or PowerMac z85c30 serial port"
	depends on SERIAL_PMACZILOG=y
	select SERIAL_CORE_CONSOLE
	help
	  If you would like to be able to use the z85c30 serial port
	  on your (Power)Mac as the console, you can do so by answering
	  Y to this option.

config SERIAL_CPM
	tristate "CPM SCC/SMC serial port support"
	depends on CPM2 || CPM1
	select SERIAL_CORE
	help
	  This driver supports the SCC and SMC serial ports on Motorola 
	  embedded PowerPC that contain a CPM1 (8xx) or CPM2 (8xxx)

config SERIAL_CPM_CONSOLE
	bool "Support for console on CPM SCC/SMC serial port"
	depends on SERIAL_CPM=y
	select SERIAL_CORE_CONSOLE
	help
	  Say Y here if you wish to use a SCC or SMC CPM UART as the system
	  console (the system console is the device which receives all kernel
	  messages and warnings and which allows logins in single user mode).

	  Even if you say Y here, the currently visible framebuffer console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttyCPM0". (Try "man bootparam" or see the documentation of
	  your boot loader (lilo or loadlin) about how to pass options to the
	  kernel at boot time.)

config SERIAL_PIC32
	tristate "Microchip PIC32 serial support"
	depends on MACH_PIC32 || (MIPS && COMPILE_TEST)
	select SERIAL_CORE
	help
	  If you have a PIC32, this driver supports the serial ports.

	  Say Y or M to use PIC32 serial ports, otherwise say N. Note that
	  to use a serial port as a console, this must be included in kernel and
	  not as a module.

config SERIAL_PIC32_CONSOLE
	bool "PIC32 serial console support"
	depends on SERIAL_PIC32=y
	select SERIAL_CORE_CONSOLE
	help
	  If you have a PIC32, this driver supports the putting a console on one
	  of the serial ports.

	  Say Y to use the PIC32 console, otherwise say N.

config SERIAL_MPC52xx
	tristate "Freescale MPC52xx/MPC512x family PSC serial support"
	depends on PPC_MPC52xx || PPC_MPC512x
	select SERIAL_CORE
	help
	  This driver supports MPC52xx and MPC512x PSC serial ports. If you would
	  like to use them, you must answer Y or M to this option. Note that
	  for use as console, it must be included in kernel and not as a
	  module.

config SERIAL_MPC52xx_CONSOLE
	bool "Console on a Freescale MPC52xx/MPC512x family PSC serial port"
	depends on SERIAL_MPC52xx=y
	select SERIAL_CORE_CONSOLE
	help
	  Select this options if you'd like to use one of the PSC serial port
	  of the Freescale MPC52xx family as a console.

config SERIAL_MPC52xx_CONSOLE_BAUD
	int "Freescale MPC52xx/MPC512x family PSC serial port baud"
	depends on SERIAL_MPC52xx_CONSOLE=y
	default "9600"
	help
	  Select the MPC52xx console baud rate.
	  This value is only used if the bootloader doesn't pass in the
	  console baudrate

config SERIAL_ICOM
	tristate "IBM Multiport Serial Adapter"
	depends on PCI
	depends on PPC_PSERIES || COMPILE_TEST
	select SERIAL_CORE
	select FW_LOADER
	help
	  This driver is for a family of multiport serial adapters
	  including 2 port RVX, 2 port internal modem, 4 port internal
	  modem and a split 1 port RVX and 1 port internal modem.

	  This driver can also be built as a module.  If so, the module
	  will be called icom.

config SERIAL_TXX9
	bool "TMPTX39XX/49XX SIO support"
	depends on HAS_TXX9_SERIAL
	select SERIAL_CORE
	default y

config HAS_TXX9_SERIAL
	bool

config SERIAL_TXX9_NR_UARTS
	int "Maximum number of TMPTX39XX/49XX SIO ports"
	depends on SERIAL_TXX9
	default "6"

config SERIAL_TXX9_CONSOLE
	bool "TMPTX39XX/49XX SIO Console support"
	depends on SERIAL_TXX9=y
	select SERIAL_CORE_CONSOLE

config SERIAL_TXX9_STDSERIAL
	bool "TX39XX/49XX SIO act as standard serial"
	depends on !SERIAL_8250 && SERIAL_TXX9

config SERIAL_JSM
	tristate "Digi International NEO and Classic PCI Support"
	depends on PCI
	select SERIAL_CORE
	help
	  This is a driver for Digi International's Neo and Classic series
	  of cards which provide multiple serial ports. You would need
	  something like this to connect more than two modems to your Linux
	  box, for instance in order to become a dial-in server. This driver
	  supports PCI boards only.

	  If you have a card like this, say Y here, otherwise say N.

	  To compile this driver as a module, choose M here: the
	  module will be called jsm.

config SERIAL_MSM
	tristate "MSM on-chip serial port support"
	depends on ARCH_QCOM || COMPILE_TEST
	select SERIAL_CORE

config SERIAL_MSM_CONSOLE
	bool "MSM serial console support"
	depends on SERIAL_MSM=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON

config SERIAL_QCOM_GENI
	tristate "QCOM on-chip GENI based serial port support"
	depends on ARCH_QCOM || COMPILE_TEST
	depends on QCOM_GENI_SE
	select SERIAL_CORE

config SERIAL_QCOM_GENI_CONSOLE
	bool "QCOM GENI Serial Console support"
	depends on SERIAL_QCOM_GENI
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Serial console driver for Qualcomm Technologies Inc's GENI based
	  QUP hardware.

config SERIAL_VT8500
	bool "VIA VT8500 on-chip serial port support"
	depends on ARCH_VT8500 || COMPILE_TEST
	select SERIAL_CORE

config SERIAL_VT8500_CONSOLE
	bool "VIA VT8500 serial console support"
	depends on SERIAL_VT8500=y
	select SERIAL_CORE_CONSOLE

config SERIAL_OMAP
	tristate "OMAP serial port support"
	depends on (ARCH_OMAP2PLUS && !SERIAL_8250_OMAP) || COMPILE_TEST
	select SERIAL_CORE
	help
	  If you have a machine based on an Texas Instruments OMAP CPU you
	  can enable its onboard serial ports by enabling this option.

	  By enabling this option you take advantage of dma feature available
	  with the omap-serial driver. DMA support can be enabled from platform
	  data.

config SERIAL_OMAP_CONSOLE
	bool "Console on OMAP serial port"
	depends on SERIAL_OMAP=y
	select SERIAL_CORE_CONSOLE
	help
	  Select this option if you would like to use omap serial port as
	  console.

	  Even if you say Y here, the currently visible virtual console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttyOx". (Try "man bootparam" or see the documentation of
	  your boot loader about how to pass options to the kernel at
	  boot time.)

config SERIAL_SIFIVE
	tristate "SiFive UART support"
	depends on OF
	default ARCH_SIFIVE || ARCH_CANAAN
	select SERIAL_CORE
	help
	  Select this option if you are building a kernel for a device that
	  contains a SiFive UART IP block.  This type of UART is present on
	  SiFive FU540 SoCs, among others.

config SERIAL_SIFIVE_CONSOLE
	bool "Console on SiFive UART"
	depends on SERIAL_SIFIVE=y
	default ARCH_SIFIVE || ARCH_CANAAN
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Select this option if you would like to use a SiFive UART as the
	  system console.

	  Even if you say Y here, the currently visible virtual console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttySIFx". (Try "man bootparam" or see the documentation of
	  your boot loader about how to pass options to the kernel at
	  boot time.)

config SERIAL_LANTIQ
	tristate "Lantiq serial driver"
	depends on (LANTIQ || X86) || COMPILE_TEST
	select SERIAL_CORE
	help
	  Support for UART on Lantiq and Intel SoCs.
	  To compile this driver as a module, select M here. The
	  module will be called lantiq.

config SERIAL_LANTIQ_CONSOLE
	bool "Console on Lantiq UART"
	depends on SERIAL_LANTIQ=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Select this option if you would like to use a Lantiq UART as the
	  system console.

config SERIAL_QE
	tristate "Freescale QUICC Engine serial port support"
	depends on QUICC_ENGINE
	select SERIAL_CORE
	select FW_LOADER
	help
	  This driver supports the QE serial ports on Freescale embedded
	  PowerPC that contain a QUICC Engine.

config SERIAL_SCCNXP
	tristate "SCCNXP serial port support"
	select SERIAL_CORE
	help
	  This selects support for an advanced UART from NXP (Philips).
	  Supported ICs are SCC2681, SCC2691, SCC2692, SC28L91, SC28L92,
	  SC28L202, SCC68681 and SCC68692.

config SERIAL_SCCNXP_CONSOLE
	bool "Console on SCCNXP serial port"
	depends on SERIAL_SCCNXP=y
	select SERIAL_CORE_CONSOLE
	help
	  Support for console on SCCNXP serial ports.

config SERIAL_SC16IS7XX
	tristate "NXP SC16IS7xx UART support"
	depends on SPI_MASTER || I2C
	select SERIAL_CORE
	select SERIAL_SC16IS7XX_SPI if SPI_MASTER
	select SERIAL_SC16IS7XX_I2C if I2C
	help
	  Core driver for NXP SC16IS7xx UARTs.
	  Supported ICs are:

	    SC16IS740
	    SC16IS741
	    SC16IS750
	    SC16IS752
	    SC16IS760
	    SC16IS762

	  The driver supports both I2C and SPI interfaces.

config SERIAL_SC16IS7XX_I2C
	tristate
	select REGMAP_I2C

config SERIAL_SC16IS7XX_SPI
	tristate
	select REGMAP_SPI

config SERIAL_TIMBERDALE
	tristate "Support for timberdale UART"
	select SERIAL_CORE
	depends on X86_32 || COMPILE_TEST
	help
	Add support for UART controller on timberdale.

config SERIAL_BCM63XX
	tristate "Broadcom BCM63xx/BCM33xx UART support"
	select SERIAL_CORE
	depends on ARCH_BCMBCA || BCM63XX || BMIPS_GENERIC || COMPILE_TEST
	default ARCH_BCMBCA || BCM63XX || BMIPS_GENERIC
	help
	  This enables the driver for the onchip UART core found on
	  the following chipsets:

	    BCM33xx (cable modem)
	    BCM63xx/BCM63xxx (DSL)
	    BCM68xx (PON)
	    BCM7xxx (STB) - DOCSIS console

config SERIAL_BCM63XX_CONSOLE
	bool "Console on BCM63xx serial port"
	depends on SERIAL_BCM63XX=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  If you have enabled the serial port on the BCM63xx CPU
	  you can make it the console by answering Y to this option.

config SERIAL_GRLIB_GAISLER_APBUART
	tristate "GRLIB APBUART serial support"
	depends on OF && SPARC
	select SERIAL_CORE
	help
	Add support for the GRLIB APBUART serial port.

config SERIAL_GRLIB_GAISLER_APBUART_CONSOLE
	bool "Console on GRLIB APBUART serial port"
	depends on SERIAL_GRLIB_GAISLER_APBUART=y
	select SERIAL_CORE_CONSOLE
	help
	Support for running a console on the GRLIB APBUART

config SERIAL_ALTERA_JTAGUART
	tristate "Altera JTAG UART support"
	select SERIAL_CORE
	help
	  This driver supports the Altera JTAG UART port.

config SERIAL_ALTERA_JTAGUART_CONSOLE
	bool "Altera JTAG UART console support"
	depends on SERIAL_ALTERA_JTAGUART=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Enable a Altera JTAG UART port to be the system console.

config SERIAL_ALTERA_JTAGUART_CONSOLE_BYPASS
	bool "Bypass output when no connection"
	depends on SERIAL_ALTERA_JTAGUART_CONSOLE
	select SERIAL_CORE_CONSOLE
	help
	  Bypass console output and keep going even if there is no
	  JTAG terminal connection with the host.

config SERIAL_ALTERA_UART
	tristate "Altera UART support"
	select SERIAL_CORE
	help
	  This driver supports the Altera softcore UART port.

config SERIAL_ALTERA_UART_MAXPORTS
	int "Maximum number of Altera UART ports"
	depends on SERIAL_ALTERA_UART
	default 4
	help
	  This setting lets you define the maximum number of the Altera
	  UART ports. The usual default varies from board to board, and
	  this setting is a way of catering for that.

config SERIAL_ALTERA_UART_BAUDRATE
	int "Default baudrate for Altera UART ports"
	depends on SERIAL_ALTERA_UART
	default 115200
	help
	  This setting lets you define what the default baudrate is for the
	  Altera UART ports. The usual default varies from board to board,
	  and this setting is a way of catering for that.

config SERIAL_ALTERA_UART_CONSOLE
	bool "Altera UART console support"
	depends on SERIAL_ALTERA_UART=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Enable a Altera UART port to be the system console.

config SERIAL_PCH_UART
	tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) UART"
	depends on PCI && (X86_32 || MIPS ||  COMPILE_TEST)
	select SERIAL_CORE
	help
	  This driver is for PCH(Platform controller Hub) UART of Intel EG20T
	  which is an IOH(Input/Output Hub) for x86 embedded processor.
	  Enabling PCH_DMA, this PCH UART works as DMA mode.

	  This driver also can be used for LAPIS Semiconductor IOH(Input/
	  Output Hub), ML7213, ML7223 and ML7831.
	  ML7213 IOH is for IVI(In-Vehicle Infotainment) use, ML7223 IOH is
	  for MP(Media Phone) use and ML7831 IOH is for general purpose use.
	  ML7213/ML7223/ML7831 is companion chip for Intel Atom E6xx series.
	  ML7213/ML7223/ML7831 is completely compatible for Intel EG20T PCH.

config SERIAL_PCH_UART_CONSOLE
	bool "Support for console on Intel EG20T PCH UART/OKI SEMICONDUCTOR ML7213 IOH"
	depends on SERIAL_PCH_UART=y
	select SERIAL_CORE_CONSOLE
	help
	  Say Y here if you wish to use the PCH UART as the system console
	  (the system  console is the device which receives all kernel messages and
	  warnings and which allows logins in single user mode).

config SERIAL_MXS_AUART
	tristate "MXS AUART support"
	depends on ARCH_MXS || MACH_ASM9260 || COMPILE_TEST
	select SERIAL_CORE
	select SERIAL_MCTRL_GPIO if GPIOLIB
	help
	  This driver supports the MXS and Alphascale ASM9260 Application
	  UART (AUART) port.

config SERIAL_MXS_AUART_CONSOLE
	bool "MXS AUART console support"
	depends on SERIAL_MXS_AUART=y
	select SERIAL_CORE_CONSOLE
	help
	  Enable a MXS AUART port to be the system console.

config SERIAL_XILINX_PS_UART
	tristate "Cadence (Xilinx Zynq) UART support"
	depends on OF
	select SERIAL_CORE
	help
	  This driver supports the Cadence UART. It is found e.g. in Xilinx
	  Zynq.

config SERIAL_XILINX_PS_UART_CONSOLE
	bool "Cadence UART console support"
	depends on SERIAL_XILINX_PS_UART=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Enable a Cadence UART port to be the system console.

config SERIAL_AR933X
	tristate "AR933X serial port support"
	depends on (HAVE_CLK && ATH79) || (MIPS && COMPILE_TEST)
	select SERIAL_CORE
	select SERIAL_MCTRL_GPIO if GPIOLIB
	help
	  If you have an Atheros AR933X SOC based board and want to use the
	  built-in UART of the SoC, say Y to this option.

	  To compile this driver as a module, choose M here: the
	  module will be called ar933x_uart.

config SERIAL_AR933X_CONSOLE
	bool "Console on AR933X serial port"
	depends on SERIAL_AR933X=y
	select SERIAL_CORE_CONSOLE
	help
	  Enable a built-in UART port of the AR933X to be the system console.

config SERIAL_AR933X_NR_UARTS
	int "Maximum number of AR933X serial ports"
	depends on SERIAL_AR933X
	default "2"
	help
	  Set this to the number of serial ports you want the driver
	  to support.

config SERIAL_MPS2_UART_CONSOLE
	bool "MPS2 UART console support"
	depends on SERIAL_MPS2_UART
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON

config SERIAL_MPS2_UART
	bool "MPS2 UART port"
	depends on ARCH_MPS2 || COMPILE_TEST
	select SERIAL_CORE
	help
	  This driver support the UART ports on ARM MPS2.

config SERIAL_ARC
	tristate "ARC UART driver support"
	select SERIAL_CORE
	help
	  Driver for on-chip UART for ARC(Synopsys) for the legacy
	  FPGA Boards (ML50x/ARCAngel4)

config SERIAL_ARC_CONSOLE
	bool "Console on ARC UART"
	depends on SERIAL_ARC=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Enable system Console on ARC UART

config SERIAL_ARC_NR_PORTS
	int "Number of ARC UART ports"
	depends on SERIAL_ARC
	range 1 3
	default "1"
	help
	  Set this to the number of serial ports you want the driver
	  to support.

config SERIAL_RP2
	tristate "Comtrol RocketPort EXPRESS/INFINITY support"
	depends on PCI
	select SERIAL_CORE
	help
	  This driver supports the Comtrol RocketPort EXPRESS and
	  RocketPort INFINITY families of PCI/PCIe multiport serial adapters.
	  These adapters use a "RocketPort 2" ASIC that is not compatible
	  with the original RocketPort driver (CONFIG_ROCKETPORT).

	  To compile this driver as a module, choose M here: the
	  module will be called rp2.

	  If you want to compile this driver into the kernel, say Y here.  If
	  you don't have a suitable RocketPort card installed, say N.

config SERIAL_RP2_NR_UARTS
	int "Maximum number of RocketPort EXPRESS/INFINITY ports"
	depends on SERIAL_RP2
	default "32"
	help
	  If multiple cards are present, the default limit of 32 ports may
	  need to be increased.

config SERIAL_FSL_LPUART
	tristate "Freescale lpuart serial port support"
	depends on HAS_DMA
	select SERIAL_CORE
	help
	  Support for the on-chip lpuart on some Freescale SOCs.

config SERIAL_FSL_LPUART_CONSOLE
	bool "Console on Freescale lpuart serial port"
	depends on SERIAL_FSL_LPUART=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  If you have enabled the lpuart serial port on the Freescale SoCs,
	  you can make it the console by answering Y to this option.

config SERIAL_FSL_LINFLEXUART
	tristate "Freescale LINFlexD UART serial port support"
	depends on PRINTK
	select SERIAL_CORE
	help
	  Support for the on-chip LINFlexD UART on some Freescale SOCs.

config SERIAL_FSL_LINFLEXUART_CONSOLE
	bool "Console on Freescale LINFlexD UART serial port"
	depends on SERIAL_FSL_LINFLEXUART=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  If you have enabled the LINFlexD UART serial port on the Freescale
	  SoCs, you can make it the console by answering Y to this option.

config SERIAL_CONEXANT_DIGICOLOR
	tristate "Conexant Digicolor CX92xxx USART serial port support"
	depends on OF
	select SERIAL_CORE
	help
	  Support for the on-chip USART on Conexant Digicolor SoCs.

config SERIAL_CONEXANT_DIGICOLOR_CONSOLE
	bool "Console on Conexant Digicolor serial port"
	depends on SERIAL_CONEXANT_DIGICOLOR=y
	select SERIAL_CORE_CONSOLE
	help
	  If you have enabled the USART serial port on Conexant Digicolor
	  SoCs, you can make it the console by answering Y to this option.

config SERIAL_ST_ASC
	tristate "ST ASC serial port support"
	select SERIAL_CORE
	depends on ARM || COMPILE_TEST
	help
	  This driver is for the on-chip Asynchronous Serial Controller on
	  STMicroelectronics STi SoCs.
	  ASC is embedded in ST COMMS IP block. It supports Rx & Tx functionality.
	  It support all industry standard baud rates.

	  If unsure, say N.

config SERIAL_ST_ASC_CONSOLE
	bool "Support for console on ST ASC"
	depends on SERIAL_ST_ASC=y
	select SERIAL_CORE_CONSOLE

config SERIAL_MEN_Z135
	tristate "MEN 16z135 Support"
	select SERIAL_CORE
	depends on MCB
	help
	  Say yes here to enable support for the MEN 16z135 High Speed UART IP-Core
	  on a MCB carrier.

	  This driver can also be build as a module. If so, the module will be called
	  men_z135_uart.ko

config SERIAL_SPRD
	tristate "Support for Spreadtrum serial"
	select SERIAL_CORE
	depends on COMMON_CLK
	help
	  This enables the driver for the Spreadtrum's serial.

config SERIAL_SPRD_CONSOLE
	bool "Spreadtrum UART console support"
	depends on SERIAL_SPRD=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Support for early debug console using Spreadtrum's serial. This enables
	  the console before standard serial driver is probed. This is enabled
	  with "earlycon" on the kernel command line. The console is
	  enabled when early_param is processed.

config SERIAL_STM32
	tristate "STMicroelectronics STM32 serial port support"
	select SERIAL_CORE
	depends on ARCH_STM32 || COMPILE_TEST
	select SERIAL_MCTRL_GPIO if GPIOLIB
	help
	  This driver is for the on-chip Serial Controller on
	  STMicroelectronics STM32 MCUs.
	  USART supports Rx & Tx functionality.
	  It support all industry standard baud rates.

	  If unsure, say N.

config SERIAL_STM32_CONSOLE
	bool "Support for console on STM32"
	depends on SERIAL_STM32=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON

config SERIAL_MVEBU_UART
	bool "Marvell EBU serial port support"
	depends on ARCH_MVEBU || COMPILE_TEST
	depends on COMMON_CLK
	select SERIAL_CORE
	help
	  This driver is for Marvell EBU SoC's UART. If you have a machine
	  based on the Armada-3700 SoC and wish to use the on-board serial
	  port,
	  say 'Y' here.
	  Otherwise, say 'N'.

config SERIAL_MVEBU_CONSOLE
	bool "Console on Marvell EBU serial port"
	depends on SERIAL_MVEBU_UART
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	default y
	help
	  Say 'Y' here if you wish to use Armada-3700 UART as the system console.
	  (the system console is the device which receives all kernel messages
	  and warnings and which allows logins in single user mode)
	  Otherwise, say 'N'.

config SERIAL_OWL
	tristate "Actions Semi Owl serial port support"
	depends on ARCH_ACTIONS || COMPILE_TEST
	select SERIAL_CORE
	help
	  This driver is for Actions Semiconductor S500/S900 SoC's UART.
	  Say 'Y' here if you wish to use the on-board serial port.
	  Otherwise, say 'N'.

config SERIAL_OWL_CONSOLE
	bool "Console on Actions Semi Owl serial port"
	depends on SERIAL_OWL=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	default y
	help
	  Say 'Y' here if you wish to use Actions Semiconductor S500/S900 UART
	  as the system console.

config SERIAL_RDA
	bool "RDA Micro serial port support"
	depends on ARCH_RDA || COMPILE_TEST
	select SERIAL_CORE
	help
	  This driver is for RDA8810PL SoC's UART.
	  Say 'Y' here if you wish to use the on-board serial port.
	  Otherwise, say 'N'.

config SERIAL_RDA_CONSOLE
	bool "Console on RDA Micro serial port"
	depends on SERIAL_RDA=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	default y
	help
	  Say 'Y' here if you wish to use the RDA8810PL UART as the system
	  console. Only earlycon is implemented currently.

config SERIAL_MILBEAUT_USIO
	tristate "Milbeaut USIO/UART serial port support"
	depends on ARCH_MILBEAUT || (COMPILE_TEST && OF)
	default ARCH_MILBEAUT
	select SERIAL_CORE
	help
	  This selects the USIO/UART IP found in Socionext Milbeaut SoCs.

config SERIAL_MILBEAUT_USIO_PORTS
	int "Maximum number of CSIO/UART ports (1-8)"
	range 1 8
	depends on SERIAL_MILBEAUT_USIO
	default "4"

config SERIAL_MILBEAUT_USIO_CONSOLE
	bool "Support for console on MILBEAUT USIO/UART serial port"
	depends on SERIAL_MILBEAUT_USIO=y
	default y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Say 'Y' here if you wish to use a USIO/UART of Socionext Milbeaut
	  SoCs as the system console (the system console is the device which
	  receives all kernel messages and warnings and which allows logins in
	  single user mode).

config SERIAL_LITEUART
	tristate "LiteUART serial port support"
	depends on HAS_IOMEM
	depends on OF
	depends on LITEX || COMPILE_TEST
	select SERIAL_CORE
	help
	  This driver is for the FPGA-based LiteUART serial controller from LiteX
	  SoC builder.

	  Say 'Y' or 'M' here if you wish to use the LiteUART serial controller.
	  Otherwise, say 'N'.

config SERIAL_LITEUART_MAX_PORTS
	int "Maximum number of LiteUART ports"
	depends on SERIAL_LITEUART
	default "1"
	help
	  Set this to the maximum number of serial ports you want the driver
	  to support.

config SERIAL_LITEUART_CONSOLE
	bool "LiteUART serial port console support"
	depends on SERIAL_LITEUART=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Say 'Y' or 'M' here if you wish to use the FPGA-based LiteUART serial
	  controller from LiteX SoC builder as the system console
	  (the system console is the device which receives all kernel messages
	  and warnings and which allows logins in single user mode).
	  Otherwise, say 'N'.

config SERIAL_SUNPLUS
	tristate "Sunplus UART support"
	depends on ARCH_SUNPLUS || COMPILE_TEST
	select SERIAL_CORE
	help
	  Select this option if you would like to use Sunplus serial port on
	  Sunplus SoC SP7021.
	  If you enable this option, Sunplus serial ports in the system will
	  be registered as ttySUPx.
	  This driver can also be built as a module. If so, the module will be
	  called sunplus-uart.

config SERIAL_SUNPLUS_CONSOLE
	bool "Console on Sunplus UART"
	depends on SERIAL_SUNPLUS
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Select this option if you would like to use a Sunplus UART as the
	  system console.
	  Even if you say Y here, the currently visible virtual console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttySUPx".

config SERIAL_NUVOTON_MA35D1
	tristate "Nuvoton MA35D1 family UART support"
	depends on ARCH_MA35 || COMPILE_TEST
	select SERIAL_CORE
	help
	  This driver supports Nuvoton MA35D1 family UART ports. If you would
	  like to use them, you must answer Y or M to this option. Note that
	  for use as console, it must be included in kernel and not as a
	  module. If you enable this option, Ma35D1 serial ports in the system
	  will be registered as ttyNVTx.

config SERIAL_NUVOTON_MA35D1_CONSOLE
	bool "Console on a Nuvotn MA35D1 family UART port"
	depends on SERIAL_NUVOTON_MA35D1=y
	select SERIAL_CORE_CONSOLE
	help
	  Select this options if you'd like to use the UART port0 of the
	  Nuvoton MA35D1 family as a console.
	  Even if you say Y here, the currently visible virtual console
	  (/dev/tty0) will still be used as the system console by default,
	  but you can alter that using a kernel command line option such as
	  "console=ttyNVTx".

config SERIAL_ESP32
	tristate "Espressif ESP32 UART support"
	depends on XTENSA_PLATFORM_ESP32 || (COMPILE_TEST && OF)
	select SERIAL_CORE
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Driver for the UART controllers of the Espressif ESP32xx SoCs.
	  When earlycon option is enabled the following kernel command line
	  snippets may be used:
	    earlycon=esp32s3uart,mmio32,0x60000000,115200n8,40000000
	    earlycon=esp32uart,mmio32,0x3ff40000,115200n8

config SERIAL_ESP32_ACM
	tristate "Espressif ESP32 USB ACM gadget support"
	depends on XTENSA_PLATFORM_ESP32 || (COMPILE_TEST && OF)
	select SERIAL_CORE
	select SERIAL_CORE_CONSOLE
	select SERIAL_EARLYCON
	help
	  Driver for the CDC ACM gadget controller of the Espressif ESP32S3
	  SoCs that share separate USB controller with the JTAG adapter.
	  When earlycon option is enabled the following kernel command line
	  snippet may be used:
	    earlycon=esp32s3acm,mmio32,0x60038000

endmenu

config SERIAL_MCTRL_GPIO
	tristate