歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Linux串口終端驅動——S3C6410平台

1、serial文件夾下Kconfig分析

config SERIAL_SAMSUNG 
tristate "Samsung SoC serial support"
depends on ARM && PLAT_S3C
select SERIAL_CORE
help
  Support for the on-chip UARTs on the Samsung S3C24XX series CPUs,為支持三星的片上UARTs控制器
  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.
config SERIAL_SAMSUNG_UARTS有多少個UART控制器
int
depends on SERIAL_SAMSUNG
default 2 if ARCH_S3C2400
default 4 if ARCH_S3C64XX || ARCH_S5P64XX || CPU_S3C2443 || ARCH_S5PC1XX
default 3
help
  Select the number of available UART ports for the Samsung S3C
  serial driver
config SERIAL_SAMSUNG_DEBUG 調試用
bool "Samsung SoC serial debug"
depends on SERIAL_SAMSUNG && DEBUG_LL
help
  Add support for debugging the serial driver. Since this is
  generally being used as a console, we use our own output
  routines that go via the low-level debug printascii()
  function.
config SERIAL_SAMSUNG_CONSOLE 用於定義串口為控制台終端
bool "Support for console on Samsung SoC serial port"
depends on SERIAL_SAMSUNG=y
select SERIAL_CORE_CONSOLE
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_S3C2400 用於S3C2400
tristate "Samsung S3C2410 Serial port support"
depends on ARM && SERIAL_SAMSUNG && CPU_S3C2400
default y if CPU_S3C2400
help
  Serial port support for the Samsung S3C2400 SoC
config SERIAL_S3C2410 用於S3C2410
tristate "Samsung S3C2410 Serial port support"
depends on SERIAL_SAMSUNG && CPU_S3C2410
default y if CPU_S3C2410
help
  Serial port support for the Samsung S3C2410 SoC
config SERIAL_S3C2412
tristate "Samsung S3C2412/S3C2413 Serial port support"
depends on SERIAL_SAMSUNG && CPU_S3C2412
default y if CPU_S3C2412
help
  Serial port support for the Samsung S3C2412 and S3C2413 SoC
config SERIAL_S3C2440
tristate "Samsung S3C2440/S3C2442 Serial port support"
depends on SERIAL_SAMSUNG && (CPU_S3C2440 || CPU_S3C2442)
default y if CPU_S3C2440
default y if CPU_S3C2442
help
  Serial port support for the Samsung S3C2440 and S3C2442 SoC
config SERIAL_S3C24A0
tristate "Samsung S3C24A0 Serial port support"
depends on SERIAL_SAMSUNG && CPU_S3C24A0
default y if CPU_S3C24A0
help
  Serial port support for the Samsung S3C24A0 SoC


config SERIAL_S3C6400 用於 (CPU_S3C6400 || CPU_S3C6410 || CPU_S5P6440)
tristate "Samsung S3C6400/S3C6410/S5P6440 Serial port support"
depends on SERIAL_SAMSUNG && (CPU_S3C6400 || CPU_S3C6410 || CPU_S5P6440)
default y
help
  Serial port support for the Samsung S3C6400, S3C6410 and S5P6440
  SoCs

2、serial文件夾下Makefile文件摘要

obj-$(CONFIG_SERIAL_CORE) += serial_core.o

obj-$(CONFIG_SERIAL_SAMSUNG) += samsung.o

obj-$(CONFIG_SERIAL_S3C2400) += s3c2400.o
obj-$(CONFIG_SERIAL_S3C2410) += s3c2410.o
obj-$(CONFIG_SERIAL_S3C2412) += s3c2412.o
obj-$(CONFIG_SERIAL_S3C2440) += s3c2440.o
obj-$(CONFIG_SERIAL_S3C24A0) += s3c24a0.o
obj-$(CONFIG_SERIAL_S3C6400) += s3c6400.o

3、頂層.config配置文件

CONFIG_SERIAL_SAMSUNG=y
CONFIG_SERIAL_SAMSUNG_UARTS=4
# CONFIG_SERIAL_SAMSUNG_DEBUG is not set
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
CONFIG_SERIAL_S3C6400=y
CONFIG_SERIAL_CORE=y

CONFIG_SERIAL_CORE_CONSOLE=y

4、從上面這些可知,serial串口驅動主要涉及的文件有

(1)、serial_core.c

(2)、samsung.c

(3)、s3c6400.c

Copyright © Linux教程網 All Rights Reserved