Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
695a9d23
Commit
695a9d23
authored
Jun 20, 2006
by
Russell King
Committed by
Russell King
Jun 20, 2006
Browse files
Options
Browse Files
Download
Plain Diff
Merge AT91 branch
parents
c322e24b
55c20c0a
Changes
40
Show whitespace changes
Inline
Side-by-side
Showing
40 changed files
with
5881 additions
and
461 deletions
+5881
-461
arch/arm/boot/compressed/head-at91rm9200.S
arch/arm/boot/compressed/head-at91rm9200.S
+12
-0
arch/arm/configs/ateb9200_defconfig
arch/arm/configs/ateb9200_defconfig
+1312
-0
arch/arm/configs/carmeva_defconfig
arch/arm/configs/carmeva_defconfig
+723
-0
arch/arm/configs/kafa_defconfig
arch/arm/configs/kafa_defconfig
+884
-0
arch/arm/configs/kb9202_defconfig
arch/arm/configs/kb9202_defconfig
+780
-0
arch/arm/mach-at91rm9200/Kconfig
arch/arm/mach-at91rm9200/Kconfig
+12
-0
arch/arm/mach-at91rm9200/Makefile
arch/arm/mach-at91rm9200/Makefile
+13
-4
arch/arm/mach-at91rm9200/board-carmeva.c
arch/arm/mach-at91rm9200/board-carmeva.c
+131
-0
arch/arm/mach-at91rm9200/board-csb337.c
arch/arm/mach-at91rm9200/board-csb337.c
+25
-18
arch/arm/mach-at91rm9200/board-csb637.c
arch/arm/mach-at91rm9200/board-csb637.c
+14
-16
arch/arm/mach-at91rm9200/board-dk.c
arch/arm/mach-at91rm9200/board-dk.c
+41
-16
arch/arm/mach-at91rm9200/board-eb9200.c
arch/arm/mach-at91rm9200/board-eb9200.c
+130
-0
arch/arm/mach-at91rm9200/board-ek.c
arch/arm/mach-at91rm9200/board-ek.c
+31
-16
arch/arm/mach-at91rm9200/board-kafa.c
arch/arm/mach-at91rm9200/board-kafa.c
+116
-0
arch/arm/mach-at91rm9200/board-kb9202.c
arch/arm/mach-at91rm9200/board-kb9202.c
+125
-0
arch/arm/mach-at91rm9200/clock.c
arch/arm/mach-at91rm9200/clock.c
+1
-4
arch/arm/mach-at91rm9200/common.c
arch/arm/mach-at91rm9200/common.c
+6
-11
arch/arm/mach-at91rm9200/devices.c
arch/arm/mach-at91rm9200/devices.c
+389
-17
arch/arm/mach-at91rm9200/generic.h
arch/arm/mach-at91rm9200/generic.h
+7
-0
arch/arm/mach-at91rm9200/gpio.c
arch/arm/mach-at91rm9200/gpio.c
+84
-3
arch/arm/mach-at91rm9200/irq.c
arch/arm/mach-at91rm9200/irq.c
+40
-4
arch/arm/mach-at91rm9200/pm.c
arch/arm/mach-at91rm9200/pm.c
+225
-0
arch/arm/mach-at91rm9200/time.c
arch/arm/mach-at91rm9200/time.c
+36
-21
drivers/serial/Kconfig
drivers/serial/Kconfig
+9
-8
drivers/serial/at91_serial.c
drivers/serial/at91_serial.c
+280
-183
include/asm-arm/arch-at91rm9200/at91rm9200_spi.h
include/asm-arm/arch-at91rm9200/at91rm9200_spi.h
+81
-0
include/asm-arm/arch-at91rm9200/at91rm9200_ssc.h
include/asm-arm/arch-at91rm9200/at91rm9200_ssc.h
+96
-0
include/asm-arm/arch-at91rm9200/at91rm9200_sys.h
include/asm-arm/arch-at91rm9200/at91rm9200_sys.h
+10
-1
include/asm-arm/arch-at91rm9200/at91rm9200_tc.h
include/asm-arm/arch-at91rm9200/at91rm9200_tc.h
+146
-0
include/asm-arm/arch-at91rm9200/at91rm9200_udp.h
include/asm-arm/arch-at91rm9200/at91rm9200_udp.h
+77
-0
include/asm-arm/arch-at91rm9200/board.h
include/asm-arm/arch-at91rm9200/board.h
+20
-10
include/asm-arm/arch-at91rm9200/gpio.h
include/asm-arm/arch-at91rm9200/gpio.h
+5
-0
include/asm-arm/arch-at91rm9200/hardware.h
include/asm-arm/arch-at91rm9200/hardware.h
+6
-3
include/asm-arm/arch-at91rm9200/io.h
include/asm-arm/arch-at91rm9200/io.h
+0
-1
include/asm-arm/arch-at91rm9200/irqs.h
include/asm-arm/arch-at91rm9200/irqs.h
+0
-2
include/asm-arm/arch-at91rm9200/pio.h
include/asm-arm/arch-at91rm9200/pio.h
+0
-115
include/asm-arm/arch-at91rm9200/system.h
include/asm-arm/arch-at91rm9200/system.h
+8
-0
include/asm-arm/arch-at91rm9200/vmalloc.h
include/asm-arm/arch-at91rm9200/vmalloc.h
+1
-1
include/asm-arm/mach/serial_at91.h
include/asm-arm/mach/serial_at91.h
+3
-5
include/linux/serial_core.h
include/linux/serial_core.h
+2
-2
No files found.
arch/arm/boot/compressed/head-at91rm9200.S
View file @
695a9d23
...
@@ -49,6 +49,18 @@
...
@@ -49,6 +49,18 @@
cmp
r7
,
r3
cmp
r7
,
r3
beq
99
f
beq
99
f
@
Embest
ATEB9200
:
923
mov
r3
,
#(
MACH_TYPE_ATEB9200
&
0xff
)
orr
r3
,
r3
,
#(
MACH_TYPE_ATEB9200
&
0xff00
)
cmp
r7
,
r3
beq
99
f
@
Sperry
-
Sun
KAFA
:
662
mov
r3
,
#(
MACH_TYPE_KAFA
&
0xff
)
orr
r3
,
r3
,
#(
MACH_TYPE_KAFA
&
0xff00
)
cmp
r7
,
r3
beq
99
f
@
Unknown
board
,
use
the
AT91RM9200DK
board
@
Unknown
board
,
use
the
AT91RM9200DK
board
@
mov
r7
,
#
MACH_TYPE_AT91RM9200
@
mov
r7
,
#
MACH_TYPE_AT91RM9200
mov
r7
,
#(
MACH_TYPE_AT91RM9200DK
&
0xff
)
mov
r7
,
#(
MACH_TYPE_AT91RM9200DK
&
0xff
)
...
...
arch/arm/configs/ateb9200_defconfig
0 → 100644
View file @
695a9d23
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.17-rc3
# Sun May 7 16:53:18 2006
#
CONFIG_ARM=y
CONFIG_MMU=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_VECTORS_BASE=0xffff0000
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
#
# General setup
#
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
# CONFIG_AUDIT is not set
# CONFIG_IKCONFIG is not set
# CONFIG_RELAY is not set
CONFIG_INITRAMFS_SOURCE=""
CONFIG_UID16=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SHMEM=y
CONFIG_SLAB=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
# CONFIG_SLOB is not set
#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
#
# Block layer
#
# CONFIG_BLK_DEV_IO_TRACE is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
#
# System Type
#
# CONFIG_ARCH_CLPS7500 is not set
# CONFIG_ARCH_CLPS711X is not set
# CONFIG_ARCH_CO285 is not set
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_ARCH_EP93XX is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_IOP3XX is not set
# CONFIG_ARCH_IXP4XX is not set
# CONFIG_ARCH_IXP2000 is not set
# CONFIG_ARCH_IXP23XX is not set
# CONFIG_ARCH_L7200 is not set
# CONFIG_ARCH_PXA is not set
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_OMAP is not set
# CONFIG_ARCH_VERSATILE is not set
# CONFIG_ARCH_REALVIEW is not set
# CONFIG_ARCH_IMX is not set
# CONFIG_ARCH_H720X is not set
# CONFIG_ARCH_AAEC2000 is not set
CONFIG_ARCH_AT91RM9200=y
#
# AT91RM9200 Implementations
#
#
# AT91RM9200 Board Type
#
# CONFIG_ARCH_AT91RM9200DK is not set
# CONFIG_MACH_AT91RM9200EK is not set
# CONFIG_MACH_CSB337 is not set
# CONFIG_MACH_CSB637 is not set
# CONFIG_MACH_CARMEVA is not set
# CONFIG_MACH_KB9200 is not set
CONFIG_MACH_ATEB9200=y
# CONFIG_MACH_KAFA is not set
#
# AT91 Feature Selections
#
# CONFIG_AT91_PROGRAMMABLE_CLOCKS is not set
#
# Processor Type
#
CONFIG_CPU_32=y
CONFIG_CPU_ARM920T=y
CONFIG_CPU_32v4=y
CONFIG_CPU_ABRT_EV4T=y
CONFIG_CPU_CACHE_V4WT=y
CONFIG_CPU_CACHE_VIVT=y
CONFIG_CPU_COPY_V4WB=y
CONFIG_CPU_TLB_V4WBI=y
#
# Processor Features
#
CONFIG_ARM_THUMB=y
# CONFIG_CPU_ICACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
#
# Bus support
#
#
# PCCARD (PCMCIA/CardBus) support
#
CONFIG_PCCARD=m
# CONFIG_PCMCIA_DEBUG is not set
CONFIG_PCMCIA=m
CONFIG_PCMCIA_LOAD_CIS=y
CONFIG_PCMCIA_IOCTL=y
#
# PC-card bridges
#
CONFIG_AT91_CF=m
#
# Kernel Features
#
CONFIG_PREEMPT=y
CONFIG_NO_IDLE_HZ=y
CONFIG_HZ=100
# CONFIG_AEABI is not set
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_SPLIT_PTLOCK_CPUS=4096
# CONFIG_LEDS is not set
CONFIG_ALIGNMENT_TRAP=y
#
# Boot options
#
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE=""
# CONFIG_XIP_KERNEL is not set
#
# Floating point emulation
#
#
# At least one emulation must be selected
#
CONFIG_FPE_NWFPE=y
# CONFIG_FPE_NWFPE_XP is not set
# CONFIG_FPE_FASTFPE is not set
#
# Userspace binary formats
#
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_AOUT is not set
# CONFIG_BINFMT_MISC is not set
# CONFIG_ARTHUR is not set
#
# Power management options
#
CONFIG_PM=y
CONFIG_PM_LEGACY=y
# CONFIG_PM_DEBUG is not set
# CONFIG_APM is not set
#
# Networking
#
CONFIG_NET=y
#
# Networking options
#
# CONFIG_NETDEBUG is not set
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
CONFIG_XFRM=y
# CONFIG_XFRM_USER is not set
CONFIG_NET_KEY=y
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_FIB_HASH=y
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
# CONFIG_INET_TUNNEL is not set
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_BIC=y
# CONFIG_IPV6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
# CONFIG_NETFILTER is not set
#
# DCCP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_DCCP is not set
#
# SCTP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_SCTP is not set
#
# TIPC Configuration (EXPERIMENTAL)
#
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
CONFIG_BRIDGE=m
CONFIG_VLAN_8021Q=m
# CONFIG_DECNET is not set
CONFIG_LLC=m
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
CONFIG_IEEE80211=m
# CONFIG_IEEE80211_DEBUG is not set
CONFIG_IEEE80211_CRYPT_WEP=m
CONFIG_IEEE80211_CRYPT_CCMP=m
CONFIG_IEEE80211_CRYPT_TKIP=m
# CONFIG_IEEE80211_SOFTMAC is not set
CONFIG_WIRELESS_EXT=y
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
#
# Connector - unified userspace <-> kernelspace linker
#
# CONFIG_CONNECTOR is not set
#
# Memory Technology Devices (MTD)
#
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
# CONFIG_MTD_CONCAT is not set
CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_REDBOOT_PARTS is not set
CONFIG_MTD_CMDLINE_PARTS=y
# CONFIG_MTD_AFS_PARTS is not set
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=y
# CONFIG_MTD_BLOCK is not set
CONFIG_MTD_BLOCK_RO=y
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
# CONFIG_RFD_FTL is not set
#
# RAM/ROM/Flash chip drivers
#
# CONFIG_MTD_CFI is not set
# CONFIG_MTD_JEDECPROBE is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_OBSOLETE_CHIPS is not set
#
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
# CONFIG_MTD_PLATRAM is not set
#
# Self-contained MTD device drivers
#
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
# CONFIG_MTD_BLOCK2MTD is not set
#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
CONFIG_MTD_AT91_DATAFLASH=y
# CONFIG_MTD_AT91_DATAFLASH_CARD is not set
#
# NAND Flash Device Drivers
#
# CONFIG_MTD_NAND is not set
#
# OneNAND Flash Device Drivers
#
# CONFIG_MTD_ONENAND is not set
#
# Parallel port support
#
# CONFIG_PARPORT is not set
#
# Plug and Play support
#
#
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
CONFIG_BLK_DEV_NBD=m
# CONFIG_BLK_DEV_UB is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_BLK_DEV_INITRD is not set
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
#
# ATA/ATAPI/MFM/RLL support
#
# CONFIG_IDE is not set
#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=m
CONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=m
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=m
# CONFIG_CHR_DEV_SCH is not set
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
CONFIG_SCSI_MULTI_LUN=y
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
#
# SCSI Transport Attributes
#
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_ATTRS is not set
#
# SCSI low-level drivers
#
# CONFIG_ISCSI_TCP is not set
# CONFIG_SCSI_SATA is not set
# CONFIG_SCSI_DEBUG is not set
#
# PCMCIA SCSI adapter support
#
# CONFIG_PCMCIA_AHA152X is not set
# CONFIG_PCMCIA_FDOMAIN is not set
# CONFIG_PCMCIA_NINJA_SCSI is not set
# CONFIG_PCMCIA_QLOGIC is not set
# CONFIG_PCMCIA_SYM53C500 is not set
#
# Multi-device support (RAID and LVM)
#
# CONFIG_MD is not set
#
# Fusion MPT device support
#
# CONFIG_FUSION is not set
#
# IEEE 1394 (FireWire) support
#
#
# I2O device support
#
#
# Network device support
#
CONFIG_NETDEVICES=y
CONFIG_DUMMY=m
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
CONFIG_TUN=m
#
# PHY device support
#
CONFIG_PHYLIB=y
#
# MII PHY device drivers
#
# CONFIG_MARVELL_PHY is not set
CONFIG_DAVICOM_PHY=y
# CONFIG_QSEMI_PHY is not set
# CONFIG_LXT_PHY is not set
# CONFIG_CICADA_PHY is not set
#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
CONFIG_ARM_AT91_ETHER=y
# CONFIG_SMC91X is not set
# CONFIG_DM9000 is not set
#
# Ethernet (1000 Mbit)
#
#
# Ethernet (10000 Mbit)
#
#
# Token Ring devices
#
#
# Wireless LAN (non-hamradio)
#
CONFIG_NET_RADIO=y
# CONFIG_NET_WIRELESS_RTNETLINK is not set
#
# Obsolete Wireless cards support (pre-802.11)
#
# CONFIG_STRIP is not set
# CONFIG_PCMCIA_WAVELAN is not set
# CONFIG_PCMCIA_NETWAVE is not set
#
# Wireless 802.11 Frequency Hopping cards support
#
# CONFIG_PCMCIA_RAYCS is not set
#
# Wireless 802.11b ISA/PCI cards support
#
# CONFIG_HERMES is not set
# CONFIG_ATMEL is not set
#
# Wireless 802.11b Pcmcia/Cardbus cards support
#
# CONFIG_AIRO_CS is not set
# CONFIG_PCMCIA_WL3501 is not set
# CONFIG_HOSTAP is not set
CONFIG_NET_WIRELESS=y
#
# PCMCIA network device support
#
# CONFIG_NET_PCMCIA is not set
#
# Wan interfaces
#
# CONFIG_WAN is not set
CONFIG_PPP=m
# CONFIG_PPP_MULTILINK is not set
# CONFIG_PPP_FILTER is not set
CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
# CONFIG_PPP_MPPE is not set
CONFIG_PPPOE=m
# CONFIG_SLIP is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
#
# ISDN subsystem
#
# CONFIG_ISDN is not set
#
# Input device support
#
CONFIG_INPUT=y
#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_TSDEV is not set
# CONFIG_INPUT_EVDEV is not set
# CONFIG_INPUT_EVBUG is not set
#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set
#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_SERPORT=y
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
# CONFIG_GAMEPORT is not set
#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_SERIAL_NONSTANDARD is not set
#
# Serial drivers
#
# CONFIG_SERIAL_8250 is not set
#
# Non-8250 serial port support
#
CONFIG_SERIAL_AT91=y
CONFIG_SERIAL_AT91_CONSOLE=y
# CONFIG_SERIAL_AT91_TTYAT is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
#
# IPMI
#
# CONFIG_IPMI_HANDLER is not set
#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_NVRAM is not set
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
#
# Ftape, the floppy tape device driver
#
#
# PCMCIA character devices
#
# CONFIG_SYNCLINK_CS is not set
# CONFIG_CARDMAN_4000 is not set
# CONFIG_CARDMAN_4040 is not set
# CONFIG_RAW_DRIVER is not set
#
# TPM devices
#
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
CONFIG_AT91_SPI=y
CONFIG_AT91_SPIDEV=y
#
# I2C support
#
CONFIG_I2C=m
CONFIG_I2C_CHARDEV=m
#
# I2C Algorithms
#
CONFIG_I2C_ALGOBIT=m
CONFIG_I2C_ALGOPCF=m
CONFIG_I2C_ALGOPCA=m
#
# I2C Hardware Bus support
#
CONFIG_I2C_AT91=m
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_PCA_ISA is not set
#
# Miscellaneous I2C Chip support
#
# CONFIG_SENSORS_DS1337 is not set
# CONFIG_SENSORS_DS1374 is not set
# CONFIG_SENSORS_EEPROM is not set
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_SENSORS_MAX6875 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set
#
# SPI support
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set
#
# Dallas's 1-wire bus
#
# CONFIG_W1 is not set
#
# Hardware Monitoring support
#
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
# CONFIG_SENSORS_ADM1021 is not set
# CONFIG_SENSORS_ADM1025 is not set
# CONFIG_SENSORS_ADM1026 is not set
# CONFIG_SENSORS_ADM1031 is not set
# CONFIG_SENSORS_ADM9240 is not set
# CONFIG_SENSORS_ASB100 is not set
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_DS1621 is not set
# CONFIG_SENSORS_F71805F is not set
# CONFIG_SENSORS_FSCHER is not set
# CONFIG_SENSORS_FSCPOS is not set
# CONFIG_SENSORS_GL518SM is not set
# CONFIG_SENSORS_GL520SM is not set
# CONFIG_SENSORS_IT87 is not set
# CONFIG_SENSORS_LM63 is not set
# CONFIG_SENSORS_LM75 is not set
# CONFIG_SENSORS_LM77 is not set
# CONFIG_SENSORS_LM78 is not set
# CONFIG_SENSORS_LM80 is not set
# CONFIG_SENSORS_LM83 is not set
# CONFIG_SENSORS_LM85 is not set
# CONFIG_SENSORS_LM87 is not set
# CONFIG_SENSORS_LM90 is not set
# CONFIG_SENSORS_LM92 is not set
# CONFIG_SENSORS_MAX1619 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83792D is not set
# CONFIG_SENSORS_W83L785TS is not set
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_HWMON_DEBUG_CHIP is not set
#
# Misc devices
#
#
# LED devices
#
# CONFIG_NEW_LEDS is not set
#
# LED drivers
#
#
# LED Triggers
#
#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
#
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
# CONFIG_USB_DABUSB is not set
#
# Graphics support
#
# CONFIG_FB is not set
#
# Console display driver support
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
#
# Sound
#
CONFIG_SOUND=y
#
# Advanced Linux Sound Architecture
#
# CONFIG_SND is not set
#
# Open Sound System
#
# CONFIG_SOUND_PRIME is not set
#
# USB support
#
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
# CONFIG_USB_ARCH_HAS_EHCI is not set
CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
# CONFIG_USB_BANDWIDTH is not set
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_SUSPEND is not set
# CONFIG_USB_OTG is not set
#
# USB Host Controller Drivers
#
# CONFIG_USB_ISP116X_HCD is not set
CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OHCI_BIG_ENDIAN is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
# CONFIG_USB_SL811_HCD is not set
#
# USB Device Class drivers
#
CONFIG_USB_ACM=m
CONFIG_USB_PRINTER=m
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#
#
# may also be needed; see USB_STORAGE Help for more information
#
CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_DEBUG is not set
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_DPCM=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
# CONFIG_USB_STORAGE_ALAUDA is not set
# CONFIG_USB_LIBUSUAL is not set
#
# USB Input Devices
#
CONFIG_USB_HID=m
CONFIG_USB_HIDINPUT=y
# CONFIG_USB_HIDINPUT_POWERBOOK is not set
CONFIG_HID_FF=y
CONFIG_HID_PID=y
CONFIG_LOGITECH_FF=y
CONFIG_THRUSTMASTER_FF=y
CONFIG_USB_HIDDEV=y
#
# USB HID Boot Protocol drivers
#
# CONFIG_USB_KBD is not set
# CONFIG_USB_MOUSE is not set
# CONFIG_USB_AIPTEK is not set
# CONFIG_USB_WACOM is not set
# CONFIG_USB_ACECAD is not set
# CONFIG_USB_KBTAB is not set
# CONFIG_USB_POWERMATE is not set
# CONFIG_USB_TOUCHSCREEN is not set
# CONFIG_USB_YEALINK is not set
# CONFIG_USB_XPAD is not set
# CONFIG_USB_ATI_REMOTE is not set
# CONFIG_USB_ATI_REMOTE2 is not set
# CONFIG_USB_KEYSPAN_REMOTE is not set
# CONFIG_USB_APPLETOUCH is not set
#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_MICROTEK is not set
#
# USB Network Adapters
#
# CONFIG_USB_CATC is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
CONFIG_USB_USBNET=y
CONFIG_USB_NET_AX8817X=y
CONFIG_USB_NET_CDCETHER=y
CONFIG_USB_NET_GL620A=y
CONFIG_USB_NET_NET1080=y
CONFIG_USB_NET_PLUSB=y
CONFIG_USB_NET_RNDIS_HOST=y
CONFIG_USB_NET_CDC_SUBSET=y
CONFIG_USB_ALI_M5632=y
CONFIG_USB_AN2720=y
CONFIG_USB_BELKIN=y
CONFIG_USB_ARMLINUX=y
CONFIG_USB_EPSON2888=y
CONFIG_USB_NET_ZAURUS=y
# CONFIG_USB_ZD1201 is not set
CONFIG_USB_MON=y
#
# USB port drivers
#
#
# USB Serial Converter support
#
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_GENERIC=y
# CONFIG_USB_SERIAL_AIRPRIME is not set
# CONFIG_USB_SERIAL_ANYDATA is not set
# CONFIG_USB_SERIAL_BELKIN is not set
# CONFIG_USB_SERIAL_WHITEHEAT is not set
# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
CONFIG_USB_SERIAL_CP2101=m
# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
# CONFIG_USB_SERIAL_EMPEG is not set
CONFIG_USB_SERIAL_FTDI_SIO=m
# CONFIG_USB_SERIAL_FUNSOFT is not set
# CONFIG_USB_SERIAL_VISOR is not set
# CONFIG_USB_SERIAL_IPAQ is not set
# CONFIG_USB_SERIAL_IR is not set
# CONFIG_USB_SERIAL_EDGEPORT is not set
# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
# CONFIG_USB_SERIAL_GARMIN is not set
# CONFIG_USB_SERIAL_IPW is not set
# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
# CONFIG_USB_SERIAL_KEYSPAN is not set
# CONFIG_USB_SERIAL_KLSI is not set
# CONFIG_USB_SERIAL_KOBIL_SCT is not set
# CONFIG_USB_SERIAL_MCT_U232 is not set
# CONFIG_USB_SERIAL_NAVMAN is not set
CONFIG_USB_SERIAL_PL2303=m
# CONFIG_USB_SERIAL_HP4X is not set
# CONFIG_USB_SERIAL_SAFE is not set
# CONFIG_USB_SERIAL_TI is not set
# CONFIG_USB_SERIAL_CYBERJACK is not set
# CONFIG_USB_SERIAL_XIRCOM is not set
# CONFIG_USB_SERIAL_OPTION is not set
# CONFIG_USB_SERIAL_OMNINET is not set
#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_LED is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_PHIDGETKIT is not set
# CONFIG_USB_PHIDGETSERVO is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TEST is not set
#
# USB DSL modem support
#
#
# USB Gadget Support
#
CONFIG_USB_GADGET=m
# CONFIG_USB_GADGET_DEBUG_FILES is not set
CONFIG_USB_GADGET_SELECTED=y
# CONFIG_USB_GADGET_NET2280 is not set
# CONFIG_USB_GADGET_PXA2XX is not set
# CONFIG_USB_GADGET_GOKU is not set
# CONFIG_USB_GADGET_LH7A40X is not set
# CONFIG_USB_GADGET_OMAP is not set
CONFIG_USB_GADGET_AT91=y
CONFIG_USB_AT91=m
# CONFIG_USB_GADGET_DUMMY_HCD is not set
# CONFIG_USB_GADGET_DUALSPEED is not set
# CONFIG_USB_ZERO is not set
CONFIG_USB_ETH=m
CONFIG_USB_ETH_RNDIS=y
CONFIG_USB_GADGETFS=m
CONFIG_USB_FILE_STORAGE=m
# CONFIG_USB_FILE_STORAGE_TEST is not set
CONFIG_USB_G_SERIAL=m
#
# MMC/SD Card support
#
CONFIG_MMC=m
CONFIG_MMC_DEBUG=y
CONFIG_MMC_BLOCK=m
CONFIG_MMC_AT91RM9200=m
#
# Real Time Clock
#
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
# CONFIG_RTC_HCTOSYS is not set
#
# RTC interfaces
#
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
#
# RTC drivers
#
# CONFIG_RTC_DRV_X1205 is not set
# CONFIG_RTC_DRV_DS1672 is not set
# CONFIG_RTC_DRV_PCF8563 is not set
# CONFIG_RTC_DRV_RS5C372 is not set
# CONFIG_RTC_DRV_M48T86 is not set
CONFIG_RTC_DRV_AT91=y
# CONFIG_RTC_DRV_TEST is not set
#
# File systems
#
CONFIG_EXT2_FS=m
# CONFIG_EXT2_FS_XATTR is not set
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=m
CONFIG_EXT3_FS_XATTR=y
# CONFIG_EXT3_FS_POSIX_ACL is not set
# CONFIG_EXT3_FS_SECURITY is not set
CONFIG_JBD=m
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=m
CONFIG_REISERFS_FS=m
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not set
# CONFIG_REISERFS_FS_XATTR is not set
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
# CONFIG_XFS_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_INOTIFY=y
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_FUSE_FS is not set
#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_ZISOFS_FS=m
CONFIG_UDF_FS=m
CONFIG_UDF_NLS=y
#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_NTFS_FS=m
# CONFIG_NTFS_DEBUG is not set
CONFIG_NTFS_RW=y
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
# CONFIG_CONFIGFS_FS is not set
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_JFFS_FS is not set
# CONFIG_JFFS2_FS is not set
CONFIG_CRAMFS=y
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
#
# Network File Systems
#
CONFIG_NFS_FS=m
CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
CONFIG_NFS_DIRECTIO=y
CONFIG_NFSD=m
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V3_ACL is not set
CONFIG_NFSD_V4=y
CONFIG_NFSD_TCP=y
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=m
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
CONFIG_RPCSEC_GSS_KRB5=m
# CONFIG_RPCSEC_GSS_SPKM3 is not set
# CONFIG_SMB_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
# CONFIG_9P_FS is not set
#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
# CONFIG_OSF_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
CONFIG_MAC_PARTITION=y
CONFIG_MSDOS_PARTITION=y
CONFIG_BSD_DISKLABEL=y
CONFIG_MINIX_SUBPARTITION=y
CONFIG_SOLARIS_X86_PARTITION=y
CONFIG_UNIXWARE_DISKLABEL=y
# CONFIG_LDM_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_KARMA_PARTITION is not set
# CONFIG_EFI_PARTITION is not set
#
# Native Language Support
#
CONFIG_NLS=m
CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_CODEPAGE_437 is not set
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
CONFIG_NLS_CODEPAGE_932=m
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
CONFIG_NLS_ASCII=m
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
CONFIG_NLS_ISO8859_15=m
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=m
#
# Profiling support
#
CONFIG_PROFILING=y
CONFIG_OPROFILE=m
#
# Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
# CONFIG_MAGIC_SYSRQ is not set
# CONFIG_DEBUG_KERNEL is not set
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_DEBUG_FS is not set
CONFIG_FRAME_POINTER=y
# CONFIG_UNWIND_INFO is not set
# CONFIG_DEBUG_USER is not set
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
#
# Cryptographic options
#
CONFIG_CRYPTO=y
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
CONFIG_CRYPTO_MD5=y
# CONFIG_CRYPTO_SHA1 is not set
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_TGR192 is not set
CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_SERPENT is not set
CONFIG_CRYPTO_AES=m
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_TEA is not set
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_DEFLATE is not set
CONFIG_CRYPTO_MICHAEL_MIC=m
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_TEST is not set
#
# Hardware crypto devices
#
#
# Library routines
#
CONFIG_CRC_CCITT=m
CONFIG_CRC16=m
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
arch/arm/configs/carmeva_defconfig
0 → 100644
View file @
695a9d23
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.12-rc4
# Tue Jun 14 12:05:24 2005
#
CONFIG_ARM=y
CONFIG_MMU=y
CONFIG_UID16=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_IOMAP=y
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
CONFIG_CLEAN_COMPILE=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
#
# General setup
#
CONFIG_LOCALVERSION=""
CONFIG_SWAP=y
# CONFIG_SYSVIPC is not set
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_SYSCTL is not set
# CONFIG_AUDIT is not set
# CONFIG_HOTPLUG is not set
CONFIG_KOBJECT_UEVENT=y
# CONFIG_IKCONFIG is not set
CONFIG_EMBEDDED=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_KMOD is not set
#
# System Type
#
# CONFIG_ARCH_CLPS7500 is not set
# CONFIG_ARCH_CLPS711X is not set
# CONFIG_ARCH_CO285 is not set
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_IOP3XX is not set
# CONFIG_ARCH_IXP4XX is not set
# CONFIG_ARCH_IXP2000 is not set
# CONFIG_ARCH_L7200 is not set
# CONFIG_ARCH_PXA is not set
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_OMAP is not set
# CONFIG_ARCH_VERSATILE is not set
# CONFIG_ARCH_IMX is not set
# CONFIG_ARCH_H720X is not set
CONFIG_ARCH_AT91RM9200=y
#
# AT91RM9200 Implementations
#
# CONFIG_ARCH_AT91RM9200DK is not set
# CONFIG_MACH_AT91RM9200EK is not set
# CONFIG_MACH_CSB337 is not set
# CONFIG_MACH_CSB637 is not set
CONFIG_MACH_CARMEVA=y
#
# Processor Type
#
CONFIG_CPU_32=y
CONFIG_CPU_ARM920T=y
CONFIG_CPU_32v4=y
CONFIG_CPU_ABRT_EV4T=y
CONFIG_CPU_CACHE_V4WT=y
CONFIG_CPU_CACHE_VIVT=y
CONFIG_CPU_COPY_V4WB=y
CONFIG_CPU_TLB_V4WBI=y
#
# Processor Features
#
CONFIG_ARM_THUMB=y
# CONFIG_CPU_ICACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
#
# Bus support
#
CONFIG_ISA_DMA_API=y
#
# PCCARD (PCMCIA/CardBus) support
#
# CONFIG_PCCARD is not set
#
# Kernel Features
#
# CONFIG_SMP is not set
# CONFIG_PREEMPT is not set
# CONFIG_DISCONTIGMEM is not set
# CONFIG_LEDS is not set
CONFIG_ALIGNMENT_TRAP=y
#
# Boot options
#
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE=""
# CONFIG_XIP_KERNEL is not set
#
# Floating point emulation
#
#
# At least one emulation must be selected
#
CONFIG_FPE_NWFPE=y
# CONFIG_FPE_NWFPE_XP is not set
# CONFIG_FPE_FASTFPE is not set
#
# Userspace binary formats
#
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_AOUT is not set
# CONFIG_BINFMT_MISC is not set
# CONFIG_ARTHUR is not set
#
# Power management options
#
# CONFIG_PM is not set
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
#
# Memory Technology Devices (MTD)
#
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
# CONFIG_MTD_CONCAT is not set
CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_REDBOOT_PARTS is not set
CONFIG_MTD_CMDLINE_PARTS=y
# CONFIG_MTD_AFS_PARTS is not set
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLOCK=y
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
#
# RAM/ROM/Flash chip drivers
#
# CONFIG_MTD_CFI is not set
# CONFIG_MTD_JEDECPROBE is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
#
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
#
# Self-contained MTD device drivers
#
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
# CONFIG_MTD_BLKMTD is not set
# CONFIG_MTD_BLOCK2MTD is not set
#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
CONFIG_MTD_AT91_DATAFLASH=y
# CONFIG_MTD_AT91_DATAFLASH_CARD is not set
#
# NAND Flash Device Drivers
#
# CONFIG_MTD_NAND is not set
#
# Parallel port support
#
# CONFIG_PARPORT is not set
#
# Plug and Play support
#
#
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_CDROM_PKTCDVD is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_ATA_OVER_ETH is not set
#
# SCSI device support
#
# CONFIG_SCSI is not set
#
# Multi-device support (RAID and LVM)
#
# CONFIG_MD is not set
#
# Fusion MPT device support
#
#
# IEEE 1394 (FireWire) support
#
#
# I2O device support
#
#
# Networking support
#
CONFIG_NET=y
#
# Networking options
#
# CONFIG_PACKET is not set
CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_PNP=y
# CONFIG_IP_PNP_DHCP is not set
# CONFIG_IP_PNP_BOOTP is not set
# CONFIG_IP_PNP_RARP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE is not set
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_TUNNEL is not set
CONFIG_IP_TCPDIAG=y
# CONFIG_IP_TCPDIAG_IPV6 is not set
# CONFIG_IPV6 is not set
# CONFIG_NETFILTER is not set
#
# SCTP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_SCTP is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
CONFIG_NETDEVICES=y
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
CONFIG_ARM_AT91_ETHER=y
CONFIG_ARM_AT91_ETHER_RMII=y
# CONFIG_SMC91X is not set
#
# Ethernet (1000 Mbit)
#
#
# Ethernet (10000 Mbit)
#
#
# Token Ring devices
#
#
# Wireless LAN (non-hamradio)
#
# CONFIG_NET_RADIO is not set
#
# Wan interfaces
#
# CONFIG_WAN is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
#
# ISDN subsystem
#
# CONFIG_ISDN is not set
#
# Input device support
#
CONFIG_INPUT=y
#
# Userland interfaces
#
# CONFIG_INPUT_MOUSEDEV is not set
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_TSDEV is not set
# CONFIG_INPUT_EVDEV is not set
# CONFIG_INPUT_EVBUG is not set
#
# Input Device Drivers
#
# CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set
#
# Hardware I/O ports
#
CONFIG_SERIO=m
CONFIG_SERIO_SERPORT=m
# CONFIG_SERIO_LIBPS2 is not set
# CONFIG_SERIO_RAW is not set
# CONFIG_GAMEPORT is not set
CONFIG_SOUND_GAMEPORT=y
#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_SERIAL_NONSTANDARD is not set
#
# Serial drivers
#
# CONFIG_SERIAL_8250 is not set
#
# Non-8250 serial port support
#
CONFIG_SERIAL_AT91=y
CONFIG_SERIAL_AT91_CONSOLE=y
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
#
# IPMI
#
# CONFIG_IPMI_HANDLER is not set
#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_NVRAM is not set
# CONFIG_RTC is not set
# CONFIG_AT91_RTC is not set
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
#
# Ftape, the floppy tape device driver
#
# CONFIG_DRM is not set
# CONFIG_RAW_DRIVER is not set
#
# TPM devices
#
CONFIG_AT91_SPI=y
CONFIG_AT91_SPIDEV=y
#
# I2C support
#
# CONFIG_I2C is not set
#
# Misc devices
#
#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
#
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
#
# Graphics support
#
# CONFIG_FB is not set
#
# Console display driver support
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
#
# Sound
#
# CONFIG_SOUND is not set
#
# USB support
#
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
# CONFIG_USB is not set
#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set
#
# MMC/SD Card support
#
CONFIG_MMC=m
CONFIG_MMC_DEBUG=y
CONFIG_MMC_BLOCK=m
CONFIG_MMC_AT91RM9200=m
#
# File systems
#
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
# CONFIG_EXT2_FS_POSIX_ACL is not set
# CONFIG_EXT2_FS_SECURITY is not set
# CONFIG_EXT3_FS is not set
# CONFIG_JBD is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
#
# XFS support
#
# CONFIG_XFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_QUOTA is not set
# CONFIG_DNOTIFY is not set
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
#
# CD-ROM/DVD Filesystems
#
# CONFIG_ISO9660_FS is not set
# CONFIG_UDF_FS is not set
#
# DOS/FAT/NT Filesystems
#
# CONFIG_MSDOS_FS is not set
# CONFIG_VFAT_FS is not set
# CONFIG_NTFS_FS is not set
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_SYSFS=y
# CONFIG_DEVFS_FS is not set
CONFIG_DEVPTS_FS_XATTR=y
CONFIG_DEVPTS_FS_SECURITY=y
# CONFIG_TMPFS is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
CONFIG_JFFS_FS=y
CONFIG_JFFS_FS_VERBOSE=0
CONFIG_JFFS_PROC_FS=y
CONFIG_JFFS2_FS=y
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_NAND=y
# CONFIG_JFFS2_FS_NOR_ECC is not set
CONFIG_JFFS2_COMPRESSION_OPTIONS=y
CONFIG_JFFS2_ZLIB=y
CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
# CONFIG_JFFS2_CMODE_NONE is not set
CONFIG_JFFS2_CMODE_PRIORITY=y
# CONFIG_JFFS2_CMODE_SIZE is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
#
# Network File Systems
#
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_NFS_V4=y
# CONFIG_NFS_DIRECTIO is not set
CONFIG_NFSD=y
# CONFIG_NFSD_V3 is not set
CONFIG_NFSD_TCP=y
CONFIG_ROOT_NFS=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=y
CONFIG_SUNRPC=y
CONFIG_SUNRPC_GSS=y
CONFIG_RPCSEC_GSS_KRB5=y
# CONFIG_RPCSEC_GSS_SPKM3 is not set
# CONFIG_SMB_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
#
# Native Language Support
#
# CONFIG_NLS is not set
#
# Profiling support
#
# CONFIG_PROFILING is not set
#
# Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
# CONFIG_DEBUG_KERNEL is not set
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_DEBUG_BUGVERBOSE is not set
CONFIG_FRAME_POINTER=y
# CONFIG_DEBUG_USER is not set
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
#
# Cryptographic options
#
CONFIG_CRYPTO=y
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
CONFIG_CRYPTO_MD5=y
# CONFIG_CRYPTO_SHA1 is not set
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_TGR192 is not set
CONFIG_CRYPTO_DES=y
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_SERPENT is not set
# CONFIG_CRYPTO_AES is not set
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_TEA is not set
# CONFIG_CRYPTO_ARC4 is not set
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_TEST is not set
#
# Hardware crypto devices
#
#
# Library routines
#
# CONFIG_CRC_CCITT is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
arch/arm/configs/kafa_defconfig
0 → 100644
View file @
695a9d23
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.17-rc3
# Sun May 7 16:54:53 2006
#
CONFIG_ARM=y
CONFIG_MMU=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_VECTORS_BASE=0xffff0000
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
#
# General setup
#
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
# CONFIG_AUDIT is not set
# CONFIG_IKCONFIG is not set
# CONFIG_RELAY is not set
CONFIG_INITRAMFS_SOURCE=""
CONFIG_UID16=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SHMEM=y
CONFIG_SLAB=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
# CONFIG_SLOB is not set
#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_KMOD is not set
#
# Block layer
#
# CONFIG_BLK_DEV_IO_TRACE is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
# CONFIG_IOSCHED_AS is not set
CONFIG_IOSCHED_DEADLINE=y
# CONFIG_IOSCHED_CFQ is not set
# CONFIG_DEFAULT_AS is not set
CONFIG_DEFAULT_DEADLINE=y
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="deadline"
#
# System Type
#
# CONFIG_ARCH_CLPS7500 is not set
# CONFIG_ARCH_CLPS711X is not set
# CONFIG_ARCH_CO285 is not set
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_ARCH_EP93XX is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_IOP3XX is not set
# CONFIG_ARCH_IXP4XX is not set
# CONFIG_ARCH_IXP2000 is not set
# CONFIG_ARCH_IXP23XX is not set
# CONFIG_ARCH_L7200 is not set
# CONFIG_ARCH_PXA is not set
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_OMAP is not set
# CONFIG_ARCH_VERSATILE is not set
# CONFIG_ARCH_REALVIEW is not set
# CONFIG_ARCH_IMX is not set
# CONFIG_ARCH_H720X is not set
# CONFIG_ARCH_AAEC2000 is not set
CONFIG_ARCH_AT91RM9200=y
#
# AT91RM9200 Implementations
#
#
# AT91RM9200 Board Type
#
# CONFIG_ARCH_AT91RM9200DK is not set
# CONFIG_MACH_AT91RM9200EK is not set
# CONFIG_MACH_CSB337 is not set
# CONFIG_MACH_CSB637 is not set
# CONFIG_MACH_CARMEVA is not set
# CONFIG_MACH_KB9200 is not set
# CONFIG_MACH_ATEB9200 is not set
CONFIG_MACH_KAFA=y
#
# AT91 Feature Selections
#
# CONFIG_AT91_PROGRAMMABLE_CLOCKS is not set
#
# Processor Type
#
CONFIG_CPU_32=y
CONFIG_CPU_ARM920T=y
CONFIG_CPU_32v4=y
CONFIG_CPU_ABRT_EV4T=y
CONFIG_CPU_CACHE_V4WT=y
CONFIG_CPU_CACHE_VIVT=y
CONFIG_CPU_COPY_V4WB=y
CONFIG_CPU_TLB_V4WBI=y
#
# Processor Features
#
# CONFIG_ARM_THUMB is not set
# CONFIG_CPU_ICACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
#
# Bus support
#
#
# PCCARD (PCMCIA/CardBus) support
#
# CONFIG_PCCARD is not set
#
# Kernel Features
#
CONFIG_PREEMPT=y
# CONFIG_NO_IDLE_HZ is not set
CONFIG_HZ=100
# CONFIG_AEABI is not set
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_SPLIT_PTLOCK_CPUS=4096
CONFIG_LEDS=y
# CONFIG_LEDS_TIMER is not set
CONFIG_LEDS_CPU=y
CONFIG_ALIGNMENT_TRAP=y
#
# Boot options
#
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="mem=32M console=ttyS0,115200 initrd=0x20800000,10M root=/dev/ram0 rw"
# CONFIG_XIP_KERNEL is not set
#
# Floating point emulation
#
#
# At least one emulation must be selected
#
CONFIG_FPE_NWFPE=y
# CONFIG_FPE_NWFPE_XP is not set
# CONFIG_FPE_FASTFPE is not set
#
# Userspace binary formats
#
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_AOUT is not set
CONFIG_BINFMT_MISC=y
# CONFIG_ARTHUR is not set
#
# Power management options
#
# CONFIG_PM is not set
# CONFIG_APM is not set
#
# Networking
#
CONFIG_NET=y
#
# Networking options
#
# CONFIG_NETDEBUG is not set
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_FIB_HASH=y
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
# CONFIG_INET_TUNNEL is not set
# CONFIG_INET_DIAG is not set
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_BIC=y
# CONFIG_IPV6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
# CONFIG_NETFILTER is not set
#
# DCCP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_DCCP is not set
#
# SCTP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_SCTP is not set
#
# TIPC Configuration (EXPERIMENTAL)
#
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_IEEE80211 is not set
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
#
# Connector - unified userspace <-> kernelspace linker
#
# CONFIG_CONNECTOR is not set
#
# Memory Technology Devices (MTD)
#
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
# CONFIG_MTD_CONCAT is not set
CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_REDBOOT_PARTS is not set
# CONFIG_MTD_CMDLINE_PARTS is not set
# CONFIG_MTD_AFS_PARTS is not set
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=y
# CONFIG_MTD_BLOCK is not set
CONFIG_MTD_BLOCK_RO=y
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
# CONFIG_RFD_FTL is not set
#
# RAM/ROM/Flash chip drivers
#
# CONFIG_MTD_CFI is not set
# CONFIG_MTD_JEDECPROBE is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_OBSOLETE_CHIPS is not set
#
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
# CONFIG_MTD_PLATRAM is not set
#
# Self-contained MTD device drivers
#
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
# CONFIG_MTD_BLOCK2MTD is not set
#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
CONFIG_MTD_AT91_DATAFLASH=y
# CONFIG_MTD_AT91_DATAFLASH_CARD is not set
#
# NAND Flash Device Drivers
#
# CONFIG_MTD_NAND is not set
#
# OneNAND Flash Device Drivers
#
# CONFIG_MTD_ONENAND is not set
#
# Parallel port support
#
# CONFIG_PARPORT is not set
#
# Plug and Play support
#
#
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_BLK_DEV_INITRD is not set
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
# CONFIG_SCSI is not set
#
# Multi-device support (RAID and LVM)
#
# CONFIG_MD is not set
#
# Fusion MPT device support
#
# CONFIG_FUSION is not set
#
# IEEE 1394 (FireWire) support
#
#
# I2O device support
#
#
# Network device support
#
CONFIG_NETDEVICES=y
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
#
# PHY device support
#
CONFIG_PHYLIB=y
#
# MII PHY device drivers
#
# CONFIG_MARVELL_PHY is not set
CONFIG_DAVICOM_PHY=y
# CONFIG_QSEMI_PHY is not set
# CONFIG_LXT_PHY is not set
# CONFIG_CICADA_PHY is not set
#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
CONFIG_ARM_AT91_ETHER=y
# CONFIG_SMC91X is not set
# CONFIG_DM9000 is not set
#
# Ethernet (1000 Mbit)
#
#
# Ethernet (10000 Mbit)
#
#
# Token Ring devices
#
#
# Wireless LAN (non-hamradio)
#
# CONFIG_NET_RADIO is not set
#
# Wan interfaces
#
# CONFIG_WAN is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
#
# ISDN subsystem
#
# CONFIG_ISDN is not set
#
# Input device support
#
CONFIG_INPUT=y
#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_TSDEV is not set
# CONFIG_INPUT_EVDEV is not set
# CONFIG_INPUT_EVBUG is not set
#
# Input Device Drivers
#
# CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set
#
# Hardware I/O ports
#
# CONFIG_SERIO is not set
# CONFIG_GAMEPORT is not set
#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_SERIAL_NONSTANDARD is not set
#
# Serial drivers
#
# CONFIG_SERIAL_8250 is not set
#
# Non-8250 serial port support
#
CONFIG_SERIAL_AT91=y
CONFIG_SERIAL_AT91_CONSOLE=y
# CONFIG_SERIAL_AT91_TTYAT is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=32
#
# IPMI
#
# CONFIG_IPMI_HANDLER is not set
#
# Watchdog Cards
#
CONFIG_WATCHDOG=y
CONFIG_WATCHDOG_NOWAYOUT=y
#
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
CONFIG_AT91_WATCHDOG=y
# CONFIG_NVRAM is not set
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
#
# Ftape, the floppy tape device driver
#
# CONFIG_RAW_DRIVER is not set
#
# TPM devices
#
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
CONFIG_AT91_SPI=y
CONFIG_AT91_SPIDEV=y
#
# I2C support
#
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
#
# I2C Algorithms
#
# CONFIG_I2C_ALGOBIT is not set
# CONFIG_I2C_ALGOPCF is not set
# CONFIG_I2C_ALGOPCA is not set
#
# I2C Hardware Bus support
#
CONFIG_I2C_AT91=y
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_PCA_ISA is not set
#
# Miscellaneous I2C Chip support
#
# CONFIG_SENSORS_DS1337 is not set
# CONFIG_SENSORS_DS1374 is not set
# CONFIG_SENSORS_EEPROM is not set
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_SENSORS_MAX6875 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set
#
# SPI support
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set
#
# Dallas's 1-wire bus
#
# CONFIG_W1 is not set
#
# Hardware Monitoring support
#
# CONFIG_HWMON is not set
# CONFIG_HWMON_VID is not set
#
# Misc devices
#
#
# LED devices
#
# CONFIG_NEW_LEDS is not set
#
# LED drivers
#
#
# LED Triggers
#
#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
#
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
#
# Graphics support
#
# CONFIG_FB is not set
#
# Console display driver support
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
#
# Sound
#
# CONFIG_SOUND is not set
#
# USB support
#
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
# CONFIG_USB_ARCH_HAS_EHCI is not set
# CONFIG_USB is not set
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#
#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set
#
# MMC/SD Card support
#
# CONFIG_MMC is not set
#
# Real Time Clock
#
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
# CONFIG_RTC_HCTOSYS is not set
#
# RTC interfaces
#
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
#
# RTC drivers
#
# CONFIG_RTC_DRV_X1205 is not set
# CONFIG_RTC_DRV_DS1672 is not set
# CONFIG_RTC_DRV_PCF8563 is not set
# CONFIG_RTC_DRV_RS5C372 is not set
# CONFIG_RTC_DRV_M48T86 is not set
CONFIG_RTC_DRV_AT91=y
# CONFIG_RTC_DRV_TEST is not set
#
# File systems
#
# CONFIG_EXT2_FS is not set
CONFIG_EXT3_FS=y
# CONFIG_EXT3_FS_XATTR is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_FS_POSIX_ACL is not set
# CONFIG_XFS_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_INOTIFY is not set
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_FUSE_FS is not set
#
# CD-ROM/DVD Filesystems
#
# CONFIG_ISO9660_FS is not set
# CONFIG_UDF_FS is not set
#
# DOS/FAT/NT Filesystems
#
# CONFIG_MSDOS_FS is not set
# CONFIG_VFAT_FS is not set
# CONFIG_NTFS_FS is not set
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
# CONFIG_CONFIGFS_FS is not set
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_JFFS_FS is not set
# CONFIG_JFFS2_FS is not set
CONFIG_CRAMFS=y
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
#
# Network File Systems
#
CONFIG_NFS_FS=m
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
# CONFIG_NFS_V4 is not set
# CONFIG_NFS_DIRECTIO is not set
# CONFIG_NFSD is not set
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=m
# CONFIG_RPCSEC_GSS_KRB5 is not set
# CONFIG_RPCSEC_GSS_SPKM3 is not set
# CONFIG_SMB_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
# CONFIG_9P_FS is not set
#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
#
# Native Language Support
#
# CONFIG_NLS is not set
#
# Profiling support
#
# CONFIG_PROFILING is not set
#
# Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
# CONFIG_MAGIC_SYSRQ is not set
# CONFIG_DEBUG_KERNEL is not set
CONFIG_LOG_BUF_SHIFT=14
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_FS is not set
CONFIG_FRAME_POINTER=y
# CONFIG_UNWIND_INFO is not set
# CONFIG_DEBUG_USER is not set
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
#
# Cryptographic options
#
CONFIG_CRYPTO=y
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
CONFIG_CRYPTO_MD5=y
# CONFIG_CRYPTO_SHA1 is not set
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_TGR192 is not set
CONFIG_CRYPTO_DES=y
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_SERPENT is not set
# CONFIG_CRYPTO_AES is not set
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_TEA is not set
# CONFIG_CRYPTO_ARC4 is not set
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_TEST is not set
#
# Hardware crypto devices
#
#
# Library routines
#
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
arch/arm/configs/kb9202_defconfig
0 → 100644
View file @
695a9d23
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.13-rc2
# Sun Aug 14 19:26:59 2005
#
CONFIG_ARM=y
CONFIG_MMU=y
CONFIG_UID16=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
#
# Code maturity level options
#
# CONFIG_EXPERIMENTAL is not set
CONFIG_CLEAN_COMPILE=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
#
# General setup
#
CONFIG_LOCALVERSION=""
# CONFIG_SWAP is not set
# CONFIG_SYSVIPC is not set
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
# CONFIG_AUDIT is not set
CONFIG_HOTPLUG=y
# CONFIG_KOBJECT_UEVENT is not set
# CONFIG_IKCONFIG is not set
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
#
# System Type
#
# CONFIG_ARCH_CLPS7500 is not set
# CONFIG_ARCH_CLPS711X is not set
# CONFIG_ARCH_CO285 is not set
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_IOP3XX is not set
# CONFIG_ARCH_IXP4XX is not set
# CONFIG_ARCH_IXP2000 is not set
# CONFIG_ARCH_L7200 is not set
# CONFIG_ARCH_PXA is not set
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_OMAP is not set
# CONFIG_ARCH_VERSATILE is not set
# CONFIG_ARCH_IMX is not set
# CONFIG_ARCH_H720X is not set
# CONFIG_ARCH_AAEC2000 is not set
CONFIG_ARCH_AT91RM9200=y
#
# AT91RM9200 Implementations
#
# CONFIG_ARCH_AT91RM9200DK is not set
# CONFIG_MACH_AT91RM9200EK is not set
# CONFIG_MACH_CSB337 is not set
# CONFIG_MACH_CSB637 is not set
# CONFIG_MACH_CARMEVA is not set
CONFIG_MACH_KB9200=y
#
# Processor Type
#
CONFIG_CPU_32=y
CONFIG_CPU_ARM920T=y
CONFIG_CPU_32v4=y
CONFIG_CPU_ABRT_EV4T=y
CONFIG_CPU_CACHE_V4WT=y
CONFIG_CPU_CACHE_VIVT=y
CONFIG_CPU_COPY_V4WB=y
CONFIG_CPU_TLB_V4WBI=y
#
# Processor Features
#
CONFIG_ARM_THUMB=y
# CONFIG_CPU_ICACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
#
# Bus support
#
CONFIG_ISA_DMA_API=y
#
# PCCARD (PCMCIA/CardBus) support
#
# CONFIG_PCCARD is not set
#
# Kernel Features
#
# CONFIG_NO_IDLE_HZ is not set
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_LEDS is not set
CONFIG_ALIGNMENT_TRAP=y
#
# Boot options
#
CONFIG_ZBOOT_ROM_TEXT=0x10000000
CONFIG_ZBOOT_ROM_BSS=0x20040000
CONFIG_ZBOOT_ROM=y
CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/ram rw initrd=0x20210000,654933"
#
# Floating point emulation
#
#
# At least one emulation must be selected
#
CONFIG_FPE_NWFPE=y
# CONFIG_FPE_NWFPE_XP is not set
#
# Userspace binary formats
#
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_MISC=y
# CONFIG_ARTHUR is not set
#
# Power management options
#
# CONFIG_PM is not set
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
CONFIG_DEBUG_DRIVER=y
#
# Memory Technology Devices (MTD)
#
# CONFIG_MTD is not set
#
# Parallel port support
#
# CONFIG_PARPORT is not set
#
# Plug and Play support
#
#
# Block devices
#
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
CONFIG_BLK_DEV_NBD=y
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_CDROM_PKTCDVD is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_ATA_OVER_ETH is not set
#
# SCSI device support
#
CONFIG_SCSI=y
CONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
# CONFIG_BLK_DEV_SR is not set
CONFIG_CHR_DEV_SG=y
# CONFIG_CHR_DEV_SCH is not set
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
# CONFIG_SCSI_MULTI_LUN is not set
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
#
# SCSI Transport Attributes
#
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set
#
# SCSI low-level drivers
#
# CONFIG_SCSI_SATA is not set
# CONFIG_SCSI_DEBUG is not set
#
# Multi-device support (RAID and LVM)
#
# CONFIG_MD is not set
#
# Fusion MPT device support
#
# CONFIG_FUSION is not set
#
# IEEE 1394 (FireWire) support
#
#
# I2O device support
#
#
# Networking support
#
CONFIG_NET=y
#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_FIB_HASH=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
# CONFIG_IP_PNP_BOOTP is not set
# CONFIG_IP_PNP_RARP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_TUNNEL is not set
# CONFIG_IP_TCPDIAG is not set
# CONFIG_IP_TCPDIAG_IPV6 is not set
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_BIC=y
# CONFIG_IPV6 is not set
# CONFIG_NETFILTER is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
CONFIG_NETDEVICES=y
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
CONFIG_ARM_AT91_ETHER=y
# CONFIG_SMC91X is not set
# CONFIG_DM9000 is not set
#
# Ethernet (1000 Mbit)
#
#
# Ethernet (10000 Mbit)
#
#
# Token Ring devices
#
#
# Wireless LAN (non-hamradio)
#
# CONFIG_NET_RADIO is not set
#
# Wan interfaces
#
# CONFIG_WAN is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
#
# ISDN subsystem
#
# CONFIG_ISDN is not set
#
# Input device support
#
CONFIG_INPUT=y
#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_TSDEV is not set
# CONFIG_INPUT_EVDEV is not set
# CONFIG_INPUT_EVBUG is not set
#
# Input Device Drivers
#
# CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set
#
# Hardware I/O ports
#
CONFIG_SERIO=y
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_RAW is not set
# CONFIG_GAMEPORT is not set
#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_SERIAL_NONSTANDARD is not set
#
# Serial drivers
#
# CONFIG_SERIAL_8250 is not set
#
# Non-8250 serial port support
#
CONFIG_SERIAL_AT91=y
CONFIG_SERIAL_AT91_CONSOLE=y
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
#
# IPMI
#
# CONFIG_IPMI_HANDLER is not set
#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_NVRAM is not set
# CONFIG_RTC is not set
# CONFIG_AT91_RTC is not set
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
#
# Ftape, the floppy tape device driver
#
# CONFIG_RAW_DRIVER is not set
#
# TPM devices
#
# CONFIG_AT91_SPI is not set
#
# I2C support
#
# CONFIG_I2C is not set
#
# Misc devices
#
#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
#
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
#
# Graphics support
#
# CONFIG_FB is not set
#
# Console display driver support
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
#
# Sound
#
# CONFIG_SOUND is not set
#
# USB support
#
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB=y
CONFIG_USB_DEBUG=y
#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
#
# USB Host Controller Drivers
#
# CONFIG_USB_ISP116X_HCD is not set
CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OHCI_BIG_ENDIAN is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
# CONFIG_USB_SL811_HCD is not set
#
# USB Device Class drivers
#
# CONFIG_USB_BLUETOOTH_TTY is not set
# CONFIG_USB_ACM is not set
# CONFIG_USB_PRINTER is not set
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
#
CONFIG_USB_STORAGE=y
CONFIG_USB_STORAGE_DEBUG=y
# CONFIG_USB_STORAGE_FREECOM is not set
# CONFIG_USB_STORAGE_DPCM is not set
#
# USB Input Devices
#
# CONFIG_USB_HID is not set
#
# USB HID Boot Protocol drivers
#
# CONFIG_USB_KBD is not set
# CONFIG_USB_MOUSE is not set
# CONFIG_USB_AIPTEK is not set
# CONFIG_USB_WACOM is not set
# CONFIG_USB_ACECAD is not set
# CONFIG_USB_KBTAB is not set
# CONFIG_USB_POWERMATE is not set
# CONFIG_USB_MTOUCH is not set
# CONFIG_USB_ITMTOUCH is not set
# CONFIG_USB_EGALAX is not set
# CONFIG_USB_XPAD is not set
# CONFIG_USB_ATI_REMOTE is not set
#
# USB Imaging devices
#
# CONFIG_USB_MICROTEK is not set
#
# USB Multimedia devices
#
# CONFIG_USB_DABUSB is not set
#
# Video4Linux support is needed for USB Multimedia device support
#
#
# USB Network Adapters
#
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_USBNET is not set
# CONFIG_USB_MON is not set
#
# USB port drivers
#
#
# USB Serial Converter support
#
# CONFIG_USB_SERIAL is not set
#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_LED is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_PHIDGETKIT is not set
# CONFIG_USB_PHIDGETSERVO is not set
# CONFIG_USB_IDMOUSE is not set
#
# USB DSL modem support
#
#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set
#
# MMC/SD Card support
#
# CONFIG_MMC is not set
#
# File systems
#
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
# CONFIG_EXT2_FS_POSIX_ACL is not set
# CONFIG_EXT2_FS_SECURITY is not set
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
# CONFIG_EXT3_FS_POSIX_ACL is not set
# CONFIG_EXT3_FS_SECURITY is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
#
# XFS support
#
# CONFIG_XFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=y
CONFIG_AUTOFS4_FS=y
#
# CD-ROM/DVD Filesystems
#
# CONFIG_ISO9660_FS is not set
# CONFIG_UDF_FS is not set
#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_SYSFS=y
CONFIG_DEVPTS_FS_XATTR=y
# CONFIG_DEVPTS_FS_SECURITY is not set
CONFIG_TMPFS=y
# CONFIG_TMPFS_XATTR is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
#
# Miscellaneous filesystems
#
# CONFIG_HFSPLUS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
#
# Network File Systems
#
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
# CONFIG_NFSD is not set
CONFIG_ROOT_NFS=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
# CONFIG_SMB_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
#
# Native Language Support
#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
CONFIG_NLS_ASCII=y
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_UTF8 is not set
#
# Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_MAGIC_SYSRQ is not set
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_INFO is not set
# CONFIG_DEBUG_FS is not set
CONFIG_FRAME_POINTER=y
CONFIG_DEBUG_USER=y
# CONFIG_DEBUG_WAITQ is not set
CONFIG_DEBUG_ERRORS=y
CONFIG_DEBUG_LL=y
# CONFIG_DEBUG_ICEDCC is not set
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
#
# Cryptographic options
#
# CONFIG_CRYPTO is not set
#
# Hardware crypto devices
#
#
# Library routines
#
# CONFIG_CRC_CCITT is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
arch/arm/mach-at91rm9200/Kconfig
View file @
695a9d23
...
@@ -40,6 +40,18 @@ config MACH_KB9200
...
@@ -40,6 +40,18 @@ config MACH_KB9200
help
help
Select this if you are using KwikByte's KB920x board
Select this if you are using KwikByte's KB920x board
config MACH_ATEB9200
bool "Embest's ATEB9200"
depends on ARCH_AT91RM9200
help
Select this if you are using Embest's ATEB9200 board
config MACH_KAFA
bool "Sperry-Sun KAFA board"
depends on ARCH_AT91RM9200
help
Select this if you are using Sperry-Sun's KAFA board
comment "AT91RM9200 Feature Selections"
comment "AT91RM9200 Feature Selections"
...
...
arch/arm/mach-at91rm9200/Makefile
View file @
695a9d23
...
@@ -7,22 +7,31 @@ obj-m :=
...
@@ -7,22 +7,31 @@ obj-m :=
obj-n
:=
obj-n
:=
obj-
:=
obj-
:=
obj-$(CONFIG_PM)
+=
pm.o
# Board-specific support
# Board-specific support
obj-$(CONFIG_ARCH_AT91RM9200DK)
+=
board-dk.o
obj-$(CONFIG_ARCH_AT91RM9200DK)
+=
board-dk.o
obj-$(CONFIG_MACH_AT91RM9200EK)
+=
board-ek.o
obj-$(CONFIG_MACH_AT91RM9200EK)
+=
board-ek.o
obj-$(CONFIG_MACH_CSB337)
+=
board-csb337.o
obj-$(CONFIG_MACH_CSB337)
+=
board-csb337.o
obj-$(CONFIG_MACH_CSB637)
+=
board-csb637.o
obj-$(CONFIG_MACH_CSB637)
+=
board-csb637.o
#obj-$(CONFIG_MACH_CARMEVA) += board-carmeva.o
obj-$(CONFIG_MACH_CARMEVA)
+=
board-carmeva.o
#obj-$(CONFIG_MACH_KB9200) += board-kb9202.o
obj-$(CONFIG_MACH_KB9200)
+=
board-kb9202.o
obj-$(CONFIG_MACH_ATEB9200)
+=
board-eb9200.o
obj-$(CONFIG_MACH_KAFA)
+=
board-kafa.o
# LEDs support
# LEDs support
led-$(CONFIG_ARCH_AT91RM9200DK)
+=
leds.o
led-$(CONFIG_ARCH_AT91RM9200DK)
+=
leds.o
led-$(CONFIG_MACH_AT91RM9200EK)
+=
leds.o
led-$(CONFIG_MACH_AT91RM9200EK)
+=
leds.o
led-$(CONFIG_MACH_CSB337)
+=
leds.o
led-$(CONFIG_MACH_CSB337)
+=
leds.o
led-$(CONFIG_MACH_CSB637)
+=
leds.o
led-$(CONFIG_MACH_CSB637)
+=
leds.o
#
led-$(CONFIG_MACH_KB9200) += leds.o
led-$(CONFIG_MACH_KB9200)
+=
leds.o
#led-$(CONFIG_MACH_KAFA)
+= leds.o
led-$(CONFIG_MACH_KAFA)
+=
leds.o
obj-$(CONFIG_LEDS)
+=
$
(
led-y
)
obj-$(CONFIG_LEDS)
+=
$
(
led-y
)
# VGA support
# VGA support
#obj-$(CONFIG_FB_S1D13XXX) += ics1523.o
#obj-$(CONFIG_FB_S1D13XXX) += ics1523.o
ifeq
($(CONFIG_PM_DEBUG),y)
CFLAGS_pm.o
+=
-DDEBUG
endif
arch/arm/mach-at91rm9200/board-carmeva.c
0 → 100644
View file @
695a9d23
/*
* linux/arch/arm/mach-at91rm9200/board-carmeva.c
*
* Copyright (c) 2005 Peer Georgi
* Conitec Datasystems
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <linux/config.h>
#include <linux/types.h>
#include <linux/init.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <asm/hardware.h>
#include <asm/setup.h>
#include <asm/mach-types.h>
#include <asm/irq.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <asm/mach/irq.h>
#include <asm/arch/hardware.h>
#include <asm/arch/board.h>
#include <asm/arch/gpio.h>
#include "generic.h"
static
void
__init
carmeva_init_irq
(
void
)
{
/* Initialize AIC controller */
at91rm9200_init_irq
(
NULL
);
/* Set up the GPIO interrupts */
at91_gpio_irq_setup
(
BGA_GPIO_BANKS
);
}
/*
* Serial port configuration.
* 0 .. 3 = USART0 .. USART3
* 4 = DBGU
*/
static
struct
at91_uart_config
__initdata
carmeva_uart_config
=
{
.
console_tty
=
0
,
/* ttyS0 */
.
nr_tty
=
2
,
.
tty_map
=
{
4
,
1
,
-
1
,
-
1
,
-
1
}
/* ttyS0, ..., ttyS4 */
};
static
void
__init
carmeva_map_io
(
void
)
{
at91rm9200_map_io
();
/* Initialize clocks: 20.000 MHz crystal */
at91_clock_init
(
20000000
);
/* Setup the serial ports and console */
at91_init_serial
(
&
carmeva_uart_config
);
}
static
struct
at91_eth_data
__initdata
carmeva_eth_data
=
{
.
phy_irq_pin
=
AT91_PIN_PC4
,
.
is_rmii
=
1
,
};
static
struct
at91_usbh_data
__initdata
carmeva_usbh_data
=
{
.
ports
=
2
,
};
static
struct
at91_udc_data
__initdata
carmeva_udc_data
=
{
.
vbus_pin
=
AT91_PIN_PD12
,
.
pullup_pin
=
AT91_PIN_PD9
,
};
/* FIXME: user dependend */
// static struct at91_cf_data __initdata carmeva_cf_data = {
// .det_pin = AT91_PIN_PB0,
// .rst_pin = AT91_PIN_PC5,
// .irq_pin = ... not connected
// .vcc_pin = ... always powered
// };
static
struct
at91_mmc_data
__initdata
carmeva_mmc_data
=
{
.
is_b
=
0
,
.
wire4
=
1
,
};
static
void
__init
carmeva_board_init
(
void
)
{
/* Serial */
at91_add_device_serial
();
/* Ethernet */
at91_add_device_eth
(
&
carmeva_eth_data
);
/* USB Host */
at91_add_device_usbh
(
&
carmeva_usbh_data
);
/* USB Device */
at91_add_device_udc
(
&
carmeva_udc_data
);
/* I2C */
at91_add_device_i2c
();
/* Compact Flash */
// at91_add_device_cf(&carmeva_cf_data);
/* SPI */
// at91_add_device_spi(NULL, 0);
/* MMC */
at91_add_device_mmc
(
&
carmeva_mmc_data
);
}
MACHINE_START
(
CARMEVA
,
"Carmeva"
)
/* Maintainer: Conitec Datasystems */
.
phys_io
=
AT91_BASE_SYS
,
.
io_pg_offst
=
(
AT91_VA_BASE_SYS
>>
18
)
&
0xfffc
,
.
boot_params
=
AT91_SDRAM_BASE
+
0x100
,
.
timer
=
&
at91rm9200_timer
,
.
map_io
=
carmeva_map_io
,
.
init_irq
=
carmeva_init_irq
,
.
init_machine
=
carmeva_board_init
,
MACHINE_END
arch/arm/mach-at91rm9200/board-csb337.c
View file @
695a9d23
...
@@ -24,6 +24,7 @@
...
@@ -24,6 +24,7 @@
#include <linux/mm.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/platform_device.h>
#include <linux/spi/spi.h>
#include <asm/hardware.h>
#include <asm/hardware.h>
#include <asm/setup.h>
#include <asm/setup.h>
...
@@ -35,8 +36,8 @@
...
@@ -35,8 +36,8 @@
#include <asm/mach/irq.h>
#include <asm/mach/irq.h>
#include <asm/arch/hardware.h>
#include <asm/arch/hardware.h>
#include <asm/mach/serial_at91rm9200.h>
#include <asm/arch/board.h>
#include <asm/arch/board.h>
#include <asm/arch/gpio.h>
#include "generic.h"
#include "generic.h"
...
@@ -54,32 +55,24 @@ static void __init csb337_init_irq(void)
...
@@ -54,32 +55,24 @@ static void __init csb337_init_irq(void)
* 0 .. 3 = USART0 .. USART3
* 0 .. 3 = USART0 .. USART3
* 4 = DBGU
* 4 = DBGU
*/
*/
#define CSB337_UART_MAP { 4, 1, -1, -1, -1 }
/* ttyS0, ..., ttyS4 */
static
struct
at91_uart_config
__initdata
csb337_uart_config
=
{
#define CSB337_SERIAL_CONSOLE 0
/* ttyS0 */
.
console_tty
=
0
,
/* ttyS0 */
.
nr_tty
=
2
,
.
tty_map
=
{
4
,
1
,
-
1
,
-
1
,
-
1
}
/* ttyS0, ..., ttyS4 */
};
static
void
__init
csb337_map_io
(
void
)
static
void
__init
csb337_map_io
(
void
)
{
{
int
serial
[
AT91_NR_UART
]
=
CSB337_UART_MAP
;
int
i
;
at91rm9200_map_io
();
at91rm9200_map_io
();
/* Initialize clocks: 3.6864 MHz crystal */
/* Initialize clocks: 3.6864 MHz crystal */
at91_clock_init
(
3686400
);
at91_clock_init
(
3686400
);
/* Setup the LEDs */
/* Setup the LEDs */
at91_init_leds
(
AT91_PIN_PB2
,
AT91_PIN_PB2
);
at91_init_leds
(
AT91_PIN_PB0
,
AT91_PIN_PB1
);
#ifdef CONFIG_SERIAL_AT91
/* Setup the serial ports and console */
at91_console_port
=
CSB337_SERIAL_CONSOLE
;
at91_init_serial
(
&
csb337_uart_config
);
memcpy
(
at91_serial_map
,
serial
,
sizeof
(
serial
));
/* Register UARTs */
for
(
i
=
0
;
i
<
AT91_NR_UART
;
i
++
)
{
if
(
serial
[
i
]
>=
0
)
at91_register_uart
(
i
,
serial
[
i
]);
}
#endif
}
}
static
struct
at91_eth_data
__initdata
csb337_eth_data
=
{
static
struct
at91_eth_data
__initdata
csb337_eth_data
=
{
...
@@ -118,17 +111,31 @@ static struct at91_mmc_data __initdata csb337_mmc_data = {
...
@@ -118,17 +111,31 @@ static struct at91_mmc_data __initdata csb337_mmc_data = {
.
wp_pin
=
AT91_PIN_PD6
,
.
wp_pin
=
AT91_PIN_PD6
,
};
};
static
struct
spi_board_info
csb337_spi_devices
[]
=
{
{
/* CAN controller */
.
modalias
=
"sak82c900"
,
.
chip_select
=
0
,
.
max_speed_hz
=
6
*
1000
*
1000
,
},
};
static
void
__init
csb337_board_init
(
void
)
static
void
__init
csb337_board_init
(
void
)
{
{
/* Serial */
at91_add_device_serial
();
/* Ethernet */
/* Ethernet */
at91_add_device_eth
(
&
csb337_eth_data
);
at91_add_device_eth
(
&
csb337_eth_data
);
/* USB Host */
/* USB Host */
at91_add_device_usbh
(
&
csb337_usbh_data
);
at91_add_device_usbh
(
&
csb337_usbh_data
);
/* USB Device */
/* USB Device */
at91_add_device_udc
(
&
csb337_udc_data
);
at91_add_device_udc
(
&
csb337_udc_data
);
/* I2C */
at91_add_device_i2c
();
/* Compact Flash */
/* Compact Flash */
at91_set_gpio_input
(
AT91_PIN_PB22
,
1
);
/* IOIS16 */
at91_set_gpio_input
(
AT91_PIN_PB22
,
1
);
/* IOIS16 */
at91_add_device_cf
(
&
csb337_cf_data
);
at91_add_device_cf
(
&
csb337_cf_data
);
/* SPI */
at91_add_device_spi
(
csb337_spi_devices
,
ARRAY_SIZE
(
csb337_spi_devices
));
/* MMC */
/* MMC */
at91_add_device_mmc
(
&
csb337_mmc_data
);
at91_add_device_mmc
(
&
csb337_mmc_data
);
}
}
...
...
arch/arm/mach-at91rm9200/board-csb637.c
View file @
695a9d23
...
@@ -35,8 +35,8 @@
...
@@ -35,8 +35,8 @@
#include <asm/mach/irq.h>
#include <asm/mach/irq.h>
#include <asm/arch/hardware.h>
#include <asm/arch/hardware.h>
#include <asm/mach/serial_at91rm9200.h>
#include <asm/arch/board.h>
#include <asm/arch/board.h>
#include <asm/arch/gpio.h>
#include "generic.h"
#include "generic.h"
...
@@ -54,14 +54,14 @@ static void __init csb637_init_irq(void)
...
@@ -54,14 +54,14 @@ static void __init csb637_init_irq(void)
* 0 .. 3 = USART0 .. USART3
* 0 .. 3 = USART0 .. USART3
* 4 = DBGU
* 4 = DBGU
*/
*/
#define CSB637_UART_MAP { 4, 1, -1, -1, -1 }
/* ttyS0, ..., ttyS4 */
static
struct
at91_uart_config
__initdata
csb637_uart_config
=
{
#define CSB637_SERIAL_CONSOLE 0
/* ttyS0 */
.
console_tty
=
0
,
/* ttyS0 */
.
nr_tty
=
2
,
.
tty_map
=
{
4
,
1
,
-
1
,
-
1
,
-
1
}
/* ttyS0, ..., ttyS4 */
};
static
void
__init
csb637_map_io
(
void
)
static
void
__init
csb637_map_io
(
void
)
{
{
int
serial
[
AT91_NR_UART
]
=
CSB637_UART_MAP
;
int
i
;
at91rm9200_map_io
();
at91rm9200_map_io
();
/* Initialize clocks: 3.6864 MHz crystal */
/* Initialize clocks: 3.6864 MHz crystal */
...
@@ -70,16 +70,8 @@ static void __init csb637_map_io(void)
...
@@ -70,16 +70,8 @@ static void __init csb637_map_io(void)
/* Setup the LEDs */
/* Setup the LEDs */
at91_init_leds
(
AT91_PIN_PB2
,
AT91_PIN_PB2
);
at91_init_leds
(
AT91_PIN_PB2
,
AT91_PIN_PB2
);
#ifdef CONFIG_SERIAL_AT91
/* Setup the serial ports and console */
at91_console_port
=
CSB637_SERIAL_CONSOLE
;
at91_init_serial
(
&
csb637_uart_config
);
memcpy
(
at91_serial_map
,
serial
,
sizeof
(
serial
));
/* Register UARTs */
for
(
i
=
0
;
i
<
AT91_NR_UART
;
i
++
)
{
if
(
serial
[
i
]
>=
0
)
at91_register_uart
(
i
,
serial
[
i
]);
}
#endif
}
}
static
struct
at91_eth_data
__initdata
csb637_eth_data
=
{
static
struct
at91_eth_data
__initdata
csb637_eth_data
=
{
...
@@ -98,12 +90,18 @@ static struct at91_udc_data __initdata csb637_udc_data = {
...
@@ -98,12 +90,18 @@ static struct at91_udc_data __initdata csb637_udc_data = {
static
void
__init
csb637_board_init
(
void
)
static
void
__init
csb637_board_init
(
void
)
{
{
/* Serial */
at91_add_device_serial
();
/* Ethernet */
/* Ethernet */
at91_add_device_eth
(
&
csb637_eth_data
);
at91_add_device_eth
(
&
csb637_eth_data
);
/* USB Host */
/* USB Host */
at91_add_device_usbh
(
&
csb637_usbh_data
);
at91_add_device_usbh
(
&
csb637_usbh_data
);
/* USB Device */
/* USB Device */
at91_add_device_udc
(
&
csb637_udc_data
);
at91_add_device_udc
(
&
csb637_udc_data
);
/* I2C */
at91_add_device_i2c
();
/* SPI */
at91_add_device_spi
(
NULL
,
0
);
}
}
MACHINE_START
(
CSB637
,
"Cogent CSB637"
)
MACHINE_START
(
CSB637
,
"Cogent CSB637"
)
...
...
arch/arm/mach-at91rm9200/board-dk.c
View file @
695a9d23
...
@@ -27,6 +27,7 @@
...
@@ -27,6 +27,7 @@
#include <linux/mm.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/platform_device.h>
#include <linux/spi/spi.h>
#include <asm/hardware.h>
#include <asm/hardware.h>
#include <asm/setup.h>
#include <asm/setup.h>
...
@@ -38,8 +39,8 @@
...
@@ -38,8 +39,8 @@
#include <asm/mach/irq.h>
#include <asm/mach/irq.h>
#include <asm/arch/hardware.h>
#include <asm/arch/hardware.h>
#include <asm/mach/serial_at91rm9200.h>
#include <asm/arch/board.h>
#include <asm/arch/board.h>
#include <asm/arch/gpio.h>
#include "generic.h"
#include "generic.h"
...
@@ -57,14 +58,14 @@ static void __init dk_init_irq(void)
...
@@ -57,14 +58,14 @@ static void __init dk_init_irq(void)
* 0 .. 3 = USART0 .. USART3
* 0 .. 3 = USART0 .. USART3
* 4 = DBGU
* 4 = DBGU
*/
*/
#define DK_UART_MAP { 4, 1, -1, -1, -1 }
/* ttyS0, ..., ttyS4 */
static
struct
at91_uart_config
__initdata
dk_uart_config
=
{
#define DK_SERIAL_CONSOLE 0
/* ttyS0 */
.
console_tty
=
0
,
/* ttyS0 */
.
nr_tty
=
2
,
.
tty_map
=
{
4
,
1
,
-
1
,
-
1
,
-
1
}
/* ttyS0, ..., ttyS4 */
};
static
void
__init
dk_map_io
(
void
)
static
void
__init
dk_map_io
(
void
)
{
{
int
serial
[
AT91_NR_UART
]
=
DK_UART_MAP
;
int
i
;
at91rm9200_map_io
();
at91rm9200_map_io
();
/* Initialize clocks: 18.432 MHz crystal */
/* Initialize clocks: 18.432 MHz crystal */
...
@@ -73,16 +74,8 @@ static void __init dk_map_io(void)
...
@@ -73,16 +74,8 @@ static void __init dk_map_io(void)
/* Setup the LEDs */
/* Setup the LEDs */
at91_init_leds
(
AT91_PIN_PB2
,
AT91_PIN_PB2
);
at91_init_leds
(
AT91_PIN_PB2
,
AT91_PIN_PB2
);
#ifdef CONFIG_SERIAL_AT91
/* Setup the serial ports and console */
at91_console_port
=
DK_SERIAL_CONSOLE
;
at91_init_serial
(
&
dk_uart_config
);
memcpy
(
at91_serial_map
,
serial
,
sizeof
(
serial
));
/* Register UARTs */
for
(
i
=
0
;
i
<
AT91_NR_UART
;
i
++
)
{
if
(
at91_serial_map
[
i
]
>=
0
)
at91_register_uart
(
i
,
at91_serial_map
[
i
]);
}
#endif
}
}
static
struct
at91_eth_data
__initdata
dk_eth_data
=
{
static
struct
at91_eth_data
__initdata
dk_eth_data
=
{
...
@@ -111,16 +104,48 @@ static struct at91_mmc_data __initdata dk_mmc_data = {
...
@@ -111,16 +104,48 @@ static struct at91_mmc_data __initdata dk_mmc_data = {
.
wire4
=
1
,
.
wire4
=
1
,
};
};
static
struct
spi_board_info
dk_spi_devices
[]
=
{
{
/* DataFlash chip */
.
modalias
=
"mtd_dataflash"
,
.
chip_select
=
0
,
.
max_speed_hz
=
15
*
1000
*
1000
,
},
{
/* UR6HCPS2-SP40 PS2-to-SPI adapter */
.
modalias
=
"ur6hcps2"
,
.
chip_select
=
1
,
.
max_speed_hz
=
250
*
1000
,
},
{
/* TLV1504 ADC, 4 channels, 10 bits; one is a temp sensor */
.
modalias
=
"tlv1504"
,
.
chip_select
=
2
,
.
max_speed_hz
=
20
*
1000
*
1000
,
},
#ifdef CONFIG_MTD_AT91_DATAFLASH_CARD
{
/* DataFlash card */
.
modalias
=
"mtd_dataflash"
,
.
chip_select
=
3
,
.
max_speed_hz
=
15
*
1000
*
1000
,
}
#endif
};
static
void
__init
dk_board_init
(
void
)
static
void
__init
dk_board_init
(
void
)
{
{
/* Serial */
at91_add_device_serial
();
/* Ethernet */
/* Ethernet */
at91_add_device_eth
(
&
dk_eth_data
);
at91_add_device_eth
(
&
dk_eth_data
);
/* USB Host */
/* USB Host */
at91_add_device_usbh
(
&
dk_usbh_data
);
at91_add_device_usbh
(
&
dk_usbh_data
);
/* USB Device */
/* USB Device */
at91_add_device_udc
(
&
dk_udc_data
);
at91_add_device_udc
(
&
dk_udc_data
);
at91_set_multi_drive
(
dk_udc_data
.
pullup_pin
,
1
);
/* pullup_pin is connected to reset */
/* Compact Flash */
/* Compact Flash */
at91_add_device_cf
(
&
dk_cf_data
);
at91_add_device_cf
(
&
dk_cf_data
);
/* I2C */
at91_add_device_i2c
();
/* SPI */
at91_add_device_spi
(
dk_spi_devices
,
ARRAY_SIZE
(
dk_spi_devices
));
#ifdef CONFIG_MTD_AT91_DATAFLASH_CARD
#ifdef CONFIG_MTD_AT91_DATAFLASH_CARD
/* DataFlash card */
/* DataFlash card */
at91_set_gpio_output
(
AT91_PIN_PB7
,
0
);
at91_set_gpio_output
(
AT91_PIN_PB7
,
0
);
...
...
arch/arm/mach-at91rm9200/board-eb9200.c
0 → 100644
View file @
695a9d23
/*
* linux/arch/arm/mach-at91rm9200/board-eb9200.c
*
* Copyright (C) 2005 SAN People, adapted for ATEB9200 from Embest
* by Andrew Patrikalakis
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <linux/config.h>
#include <linux/types.h>
#include <linux/init.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/device.h>
#include <asm/hardware.h>
#include <asm/setup.h>
#include <asm/mach-types.h>
#include <asm/irq.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <asm/mach/irq.h>
#include <asm/arch/hardware.h>
#include <asm/arch/board.h>
#include <asm/arch/gpio.h>
#include "generic.h"
static
void
__init
eb9200_init_irq
(
void
)
{
/* Initialize AIC controller */
at91rm9200_init_irq
(
NULL
);
/* Set up the GPIO interrupts */
at91_gpio_irq_setup
(
BGA_GPIO_BANKS
);
}
/*
* Serial port configuration.
* 0 .. 3 = USART0 .. USART3
* 4 = DBGU
*/
static
struct
at91_uart_config
__initdata
eb9200_uart_config
=
{
.
console_tty
=
0
,
/* ttyS0 */
.
nr_tty
=
2
,
.
tty_map
=
{
4
,
1
,
-
1
,
-
1
,
-
1
}
/* ttyS0, ..., ttyS4 */
};
static
void
__init
eb9200_map_io
(
void
)
{
at91rm9200_map_io
();
/* Initialize clocks: 18.432 MHz crystal */
at91_clock_init
(
18432000
);
/* Setup the serial ports and console */
at91_init_serial
(
&
eb9200_uart_config
);
}
static
struct
at91_eth_data
__initdata
eb9200_eth_data
=
{
.
phy_irq_pin
=
AT91_PIN_PC4
,
.
is_rmii
=
1
,
};
static
struct
at91_usbh_data
__initdata
eb9200_usbh_data
=
{
.
ports
=
2
,
};
static
struct
at91_udc_data
__initdata
eb9200_udc_data
=
{
.
vbus_pin
=
AT91_PIN_PD4
,
.
pullup_pin
=
AT91_PIN_PD5
,
};
static
struct
at91_cf_data
__initdata
eb9200_cf_data
=
{
.
det_pin
=
AT91_PIN_PB0
,
.
rst_pin
=
AT91_PIN_PC5
,
// .irq_pin = ... not connected
// .vcc_pin = ... always powered
};
static
struct
at91_mmc_data
__initdata
eb9200_mmc_data
=
{
.
is_b
=
0
,
.
wire4
=
1
,
};
static
void
__init
eb9200_board_init
(
void
)
{
/* Serial */
at91_add_device_serial
();
/* Ethernet */
at91_add_device_eth
(
&
eb9200_eth_data
);
/* USB Host */
at91_add_device_usbh
(
&
eb9200_usbh_data
);
/* USB Device */
at91_add_device_udc
(
&
eb9200_udc_data
);
/* I2C */
at91_add_device_i2c
();
/* Compact Flash */
at91_add_device_cf
(
&
eb9200_cf_data
);
/* SPI */
at91_add_device_spi
(
NULL
,
0
);
/* MMC */
/* only supports 1 or 4 bit interface, not wired through to SPI */
at91_add_device_mmc
(
&
eb9200_mmc_data
);
}
MACHINE_START
(
ATEB9200
,
"Embest ATEB9200"
)
.
phys_io
=
AT91_BASE_SYS
,
.
io_pg_offst
=
(
AT91_VA_BASE_SYS
>>
18
)
&
0xfffc
,
.
boot_params
=
AT91_SDRAM_BASE
+
0x100
,
.
timer
=
&
at91rm9200_timer
,
.
map_io
=
eb9200_map_io
,
.
init_irq
=
eb9200_init_irq
,
.
init_machine
=
eb9200_board_init
,
MACHINE_END
arch/arm/mach-at91rm9200/board-ek.c
View file @
695a9d23
...
@@ -27,6 +27,7 @@
...
@@ -27,6 +27,7 @@
#include <linux/mm.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/platform_device.h>
#include <linux/spi/spi.h>
#include <asm/hardware.h>
#include <asm/hardware.h>
#include <asm/setup.h>
#include <asm/setup.h>
...
@@ -38,8 +39,8 @@
...
@@ -38,8 +39,8 @@
#include <asm/mach/irq.h>
#include <asm/mach/irq.h>
#include <asm/arch/hardware.h>
#include <asm/arch/hardware.h>
#include <asm/mach/serial_at91rm9200.h>
#include <asm/arch/board.h>
#include <asm/arch/board.h>
#include <asm/arch/gpio.h>
#include "generic.h"
#include "generic.h"
...
@@ -57,14 +58,14 @@ static void __init ek_init_irq(void)
...
@@ -57,14 +58,14 @@ static void __init ek_init_irq(void)
* 0 .. 3 = USART0 .. USART3
* 0 .. 3 = USART0 .. USART3
* 4 = DBGU
* 4 = DBGU
*/
*/
#define EK_UART_MAP { 4, 1, -1, -1, -1 }
/* ttyS0, ..., ttyS4 */
static
struct
at91_uart_config
__initdata
ek_uart_config
=
{
#define EK_SERIAL_CONSOLE 0
/* ttyS0 */
.
console_tty
=
0
,
/* ttyS0 */
.
nr_tty
=
2
,
.
tty_map
=
{
4
,
1
,
-
1
,
-
1
,
-
1
}
/* ttyS0, ..., ttyS4 */
};
static
void
__init
ek_map_io
(
void
)
static
void
__init
ek_map_io
(
void
)
{
{
int
serial
[
AT91_NR_UART
]
=
EK_UART_MAP
;
int
i
;
at91rm9200_map_io
();
at91rm9200_map_io
();
/* Initialize clocks: 18.432 MHz crystal */
/* Initialize clocks: 18.432 MHz crystal */
...
@@ -73,16 +74,8 @@ static void __init ek_map_io(void)
...
@@ -73,16 +74,8 @@ static void __init ek_map_io(void)
/* Setup the LEDs */
/* Setup the LEDs */
at91_init_leds
(
AT91_PIN_PB1
,
AT91_PIN_PB2
);
at91_init_leds
(
AT91_PIN_PB1
,
AT91_PIN_PB2
);
#ifdef CONFIG_SERIAL_AT91
/* Setup the serial ports and console */
at91_console_port
=
EK_SERIAL_CONSOLE
;
at91_init_serial
(
&
ek_uart_config
);
memcpy
(
at91_serial_map
,
serial
,
sizeof
(
serial
));
/* Register UARTs */
for
(
i
=
0
;
i
<
AT91_NR_UART
;
i
++
)
{
if
(
serial
[
i
]
>=
0
)
at91_register_uart
(
i
,
serial
[
i
]);
}
#endif
}
}
static
struct
at91_eth_data
__initdata
ek_eth_data
=
{
static
struct
at91_eth_data
__initdata
ek_eth_data
=
{
...
@@ -106,14 +99,36 @@ static struct at91_mmc_data __initdata ek_mmc_data = {
...
@@ -106,14 +99,36 @@ static struct at91_mmc_data __initdata ek_mmc_data = {
.
wp_pin
=
AT91_PIN_PA17
,
.
wp_pin
=
AT91_PIN_PA17
,
};
};
static
struct
spi_board_info
ek_spi_devices
[]
=
{
{
/* DataFlash chip */
.
modalias
=
"mtd_dataflash"
,
.
chip_select
=
0
,
.
max_speed_hz
=
15
*
1000
*
1000
,
},
#ifdef CONFIG_MTD_AT91_DATAFLASH_CARD
{
/* DataFlash card */
.
modalias
=
"mtd_dataflash"
,
.
chip_select
=
3
,
.
max_speed_hz
=
15
*
1000
*
1000
,
},
#endif
};
static
void
__init
ek_board_init
(
void
)
static
void
__init
ek_board_init
(
void
)
{
{
/* Serial */
at91_add_device_serial
();
/* Ethernet */
/* Ethernet */
at91_add_device_eth
(
&
ek_eth_data
);
at91_add_device_eth
(
&
ek_eth_data
);
/* USB Host */
/* USB Host */
at91_add_device_usbh
(
&
ek_usbh_data
);
at91_add_device_usbh
(
&
ek_usbh_data
);
/* USB Device */
/* USB Device */
at91_add_device_udc
(
&
ek_udc_data
);
at91_add_device_udc
(
&
ek_udc_data
);
at91_set_multi_drive
(
ek_udc_data
.
pullup_pin
,
1
);
/* pullup_pin is connected to reset */
/* I2C */
at91_add_device_i2c
();
/* SPI */
at91_add_device_spi
(
ek_spi_devices
,
ARRAY_SIZE
(
ek_spi_devices
));
#ifdef CONFIG_MTD_AT91_DATAFLASH_CARD
#ifdef CONFIG_MTD_AT91_DATAFLASH_CARD
/* DataFlash card */
/* DataFlash card */
at91_set_gpio_output
(
AT91_PIN_PB22
,
0
);
at91_set_gpio_output
(
AT91_PIN_PB22
,
0
);
...
...
arch/arm/mach-at91rm9200/board-kafa.c
0 → 100644
View file @
695a9d23
/*
* linux/arch/arm/mach-at91rm9200/board-kafa.c
*
* Copyright (C) 2006 Sperry-Sun
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <linux/config.h>
#include <linux/types.h>
#include <linux/init.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <asm/hardware.h>
#include <asm/setup.h>
#include <asm/mach-types.h>
#include <asm/irq.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <asm/mach/irq.h>
#include <asm/arch/hardware.h>
#include <asm/arch/board.h>
#include <asm/arch/gpio.h>
#include "generic.h"
static
void
__init
kafa_init_irq
(
void
)
{
/* Initialize AIC controller */
at91rm9200_init_irq
(
NULL
);
/* Set up the GPIO interrupts */
at91_gpio_irq_setup
(
PQFP_GPIO_BANKS
);
}
/*
* Serial port configuration.
* 0 .. 3 = USART0 .. USART3
* 4 = DBGU
*/
static
struct
at91_uart_config
__initdata
kafa_uart_config
=
{
.
console_tty
=
0
,
/* ttyS0 */
.
nr_tty
=
2
,
.
tty_map
=
{
4
,
0
,
-
1
,
-
1
,
-
1
}
/* ttyS0, ..., ttyS4 */
};
static
void
__init
kafa_map_io
(
void
)
{
at91rm9200_map_io
();
/* Initialize clocks: 18.432 MHz crystal */
at91_clock_init
(
18432000
);
/* Set up the LEDs */
at91_init_leds
(
AT91_PIN_PB4
,
AT91_PIN_PB4
);
/* Setup the serial ports and console */
at91_init_serial
(
&
kafa_uart_config
);
}
static
struct
at91_eth_data
__initdata
kafa_eth_data
=
{
.
phy_irq_pin
=
AT91_PIN_PC4
,
.
is_rmii
=
0
,
};
static
struct
at91_usbh_data
__initdata
kafa_usbh_data
=
{
.
ports
=
1
,
};
static
struct
at91_udc_data
__initdata
kafa_udc_data
=
{
.
vbus_pin
=
AT91_PIN_PB6
,
.
pullup_pin
=
AT91_PIN_PB7
,
};
static
void
__init
kafa_board_init
(
void
)
{
/* Serial */
at91_add_device_serial
();
/* Ethernet */
at91_add_device_eth
(
&
kafa_eth_data
);
/* USB Host */
at91_add_device_usbh
(
&
kafa_usbh_data
);
/* USB Device */
at91_add_device_udc
(
&
kafa_udc_data
);
/* I2C */
at91_add_device_i2c
();
/* SPI */
at91_add_device_spi
(
NULL
,
0
);
}
MACHINE_START
(
KAFA
,
"Sperry-Sun KAFA"
)
/* Maintainer: Sergei Sharonov */
.
phys_io
=
AT91_BASE_SYS
,
.
io_pg_offst
=
(
AT91_VA_BASE_SYS
>>
18
)
&
0xfffc
,
.
boot_params
=
AT91_SDRAM_BASE
+
0x100
,
.
timer
=
&
at91rm9200_timer
,
.
map_io
=
kafa_map_io
,
.
init_irq
=
kafa_init_irq
,
.
init_machine
=
kafa_board_init
,
MACHINE_END
arch/arm/mach-at91rm9200/board-kb9202.c
0 → 100644
View file @
695a9d23
/*
* linux/arch/arm/mach-at91rm9200/board-kb9202.c
*
* Copyright (c) 2005 kb_admin
* KwikByte, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <linux/config.h>
#include <linux/types.h>
#include <linux/init.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <asm/hardware.h>
#include <asm/setup.h>
#include <asm/mach-types.h>
#include <asm/irq.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <asm/mach/irq.h>
#include <asm/arch/hardware.h>
#include <asm/arch/board.h>
#include <asm/arch/gpio.h>
#include "generic.h"
static
void
__init
kb9202_init_irq
(
void
)
{
/* Initialize AIC controller */
at91rm9200_init_irq
(
NULL
);
/* Set up the GPIO interrupts */
at91_gpio_irq_setup
(
PQFP_GPIO_BANKS
);
}
/*
* Serial port configuration.
* 0 .. 3 = USART0 .. USART3
* 4 = DBGU
*/
static
struct
at91_uart_config
__initdata
kb9202_uart_config
=
{
.
console_tty
=
0
,
/* ttyS0 */
.
nr_tty
=
3
,
.
tty_map
=
{
4
,
0
,
1
,
-
1
,
-
1
}
/* ttyS0, ..., ttyS4 */
};
static
void
__init
kb9202_map_io
(
void
)
{
at91rm9200_map_io
();
/* Initialize clocks: 10 MHz crystal */
at91_clock_init
(
10000000
);
/* Set up the LEDs */
at91_init_leds
(
AT91_PIN_PC19
,
AT91_PIN_PC18
);
/* Setup the serial ports and console */
at91_init_serial
(
&
kb9202_uart_config
);
}
static
struct
at91_eth_data
__initdata
kb9202_eth_data
=
{
.
phy_irq_pin
=
AT91_PIN_PB29
,
.
is_rmii
=
0
,
};
static
struct
at91_usbh_data
__initdata
kb9202_usbh_data
=
{
.
ports
=
1
,
};
static
struct
at91_udc_data
__initdata
kb9202_udc_data
=
{
.
vbus_pin
=
AT91_PIN_PB24
,
.
pullup_pin
=
AT91_PIN_PB22
,
};
static
struct
at91_mmc_data
__initdata
kb9202_mmc_data
=
{
.
det_pin
=
AT91_PIN_PB2
,
.
is_b
=
0
,
.
wire4
=
1
,
};
static
void
__init
kb9202_board_init
(
void
)
{
/* Serial */
at91_add_device_serial
();
/* Ethernet */
at91_add_device_eth
(
&
kb9202_eth_data
);
/* USB Host */
at91_add_device_usbh
(
&
kb9202_usbh_data
);
/* USB Device */
at91_add_device_udc
(
&
kb9202_udc_data
);
/* MMC */
at91_add_device_mmc
(
&
kb9202_mmc_data
);
/* I2C */
at91_add_device_i2c
();
/* SPI */
at91_add_device_spi
(
NULL
,
0
);
}
MACHINE_START
(
KB9200
,
"KB920x"
)
/* Maintainer: KwikByte, Inc. */
.
phys_io
=
AT91_BASE_SYS
,
.
io_pg_offst
=
(
AT91_VA_BASE_SYS
>>
18
)
&
0xfffc
,
.
boot_params
=
AT91_SDRAM_BASE
+
0x100
,
.
timer
=
&
at91rm9200_timer
,
.
map_io
=
kb9202_map_io
,
.
init_irq
=
kb9202_init_irq
,
.
init_machine
=
kb9202_board_init
,
MACHINE_END
arch/arm/mach-at91rm9200/clock.c
View file @
695a9d23
...
@@ -28,10 +28,10 @@
...
@@ -28,10 +28,10 @@
#include <asm/mach-types.h>
#include <asm/mach-types.h>
#include <asm/arch/hardware.h>
#include <asm/arch/hardware.h>
#include <asm/arch/board.h>
/* for master clock global */
#include "generic.h"
#include "generic.h"
/*
/*
* There's a lot more which can be done with clocks, including cpufreq
* There's a lot more which can be done with clocks, including cpufreq
* integration, slow clock mode support (for system suspend), letting
* integration, slow clock mode support (for system suspend), letting
...
@@ -722,9 +722,6 @@ int __init at91_clock_init(unsigned long main_clock)
...
@@ -722,9 +722,6 @@ int __init at91_clock_init(unsigned long main_clock)
(
unsigned
)
main_clock
/
1000000
,
(
unsigned
)
main_clock
/
1000000
,
((
unsigned
)
main_clock
%
1000000
)
/
1000
);
((
unsigned
)
main_clock
%
1000000
)
/
1000
);
/* FIXME get rid of master_clock global */
at91_master_clock
=
mck
.
rate_hz
;
#ifdef CONFIG_AT91_PROGRAMMABLE_CLOCKS
#ifdef CONFIG_AT91_PROGRAMMABLE_CLOCKS
/* establish PCK0..PCK3 parentage */
/* establish PCK0..PCK3 parentage */
for
(
tmp
=
0
;
tmp
<
ARRAY_SIZE
(
clock_list
);
tmp
++
)
{
for
(
tmp
=
0
;
tmp
<
ARRAY_SIZE
(
clock_list
);
tmp
++
)
{
...
...
arch/arm/mach-at91rm9200/common.c
View file @
695a9d23
...
@@ -17,6 +17,7 @@
...
@@ -17,6 +17,7 @@
#include <asm/mach/map.h>
#include <asm/mach/map.h>
#include <asm/arch/hardware.h>
#include <asm/arch/hardware.h>
#include "generic.h"
static
struct
map_desc
at91rm9200_io_desc
[]
__initdata
=
{
static
struct
map_desc
at91rm9200_io_desc
[]
__initdata
=
{
{
{
...
@@ -94,6 +95,11 @@ static struct map_desc at91rm9200_io_desc[] __initdata = {
...
@@ -94,6 +95,11 @@ static struct map_desc at91rm9200_io_desc[] __initdata = {
.
pfn
=
__phys_to_pfn
(
AT91_BASE_TCB0
),
.
pfn
=
__phys_to_pfn
(
AT91_BASE_TCB0
),
.
length
=
SZ_16K
,
.
length
=
SZ_16K
,
.
type
=
MT_DEVICE
,
.
type
=
MT_DEVICE
,
},
{
.
virtual
=
AT91_SRAM_VIRT_BASE
,
.
pfn
=
__phys_to_pfn
(
AT91_SRAM_BASE
),
.
length
=
AT91_SRAM_SIZE
,
.
type
=
MT_DEVICE
,
},
},
};
};
...
@@ -102,14 +108,3 @@ void __init at91rm9200_map_io(void)
...
@@ -102,14 +108,3 @@ void __init at91rm9200_map_io(void)
iotable_init
(
at91rm9200_io_desc
,
ARRAY_SIZE
(
at91rm9200_io_desc
));
iotable_init
(
at91rm9200_io_desc
,
ARRAY_SIZE
(
at91rm9200_io_desc
));
}
}
unsigned
long
at91_master_clock
;
EXPORT_SYMBOL
(
at91_master_clock
);
int
at91_serial_map
[
AT91_NR_UART
];
int
at91_console_port
;
EXPORT_SYMBOL
(
at91_serial_map
);
EXPORT_SYMBOL
(
at91_console_port
);
arch/arm/mach-at91rm9200/devices.c
View file @
695a9d23
...
@@ -16,9 +16,15 @@
...
@@ -16,9 +16,15 @@
#include <linux/config.h>
#include <linux/config.h>
#include <linux/platform_device.h>
#include <linux/platform_device.h>
#include <asm/arch/hardware.h>
#include <asm/arch/board.h>
#include <asm/arch/board.h>
#include <asm/arch/pio.h>
#include <asm/arch/
g
pio.h>
#include "generic.h"
#define SZ_512 0x00000200
#define SZ_256 0x00000100
#define SZ_16 0x00000010
/* --------------------------------------------------------------------
/* --------------------------------------------------------------------
* USB Host
* USB Host
...
@@ -28,7 +34,7 @@
...
@@ -28,7 +34,7 @@
static
u64
ohci_dmamask
=
0xffffffffUL
;
static
u64
ohci_dmamask
=
0xffffffffUL
;
static
struct
at91_usbh_data
usbh_data
;
static
struct
at91_usbh_data
usbh_data
;
static
struct
resource
at91_usbh_resource
[]
=
{
static
struct
resource
at91_usbh_resource
s
[]
=
{
[
0
]
=
{
[
0
]
=
{
.
start
=
AT91_UHP_BASE
,
.
start
=
AT91_UHP_BASE
,
.
end
=
AT91_UHP_BASE
+
SZ_1M
-
1
,
.
end
=
AT91_UHP_BASE
+
SZ_1M
-
1
,
...
@@ -42,15 +48,15 @@ static struct resource at91_usbh_resource[] = {
...
@@ -42,15 +48,15 @@ static struct resource at91_usbh_resource[] = {
};
};
static
struct
platform_device
at91rm9200_usbh_device
=
{
static
struct
platform_device
at91rm9200_usbh_device
=
{
.
name
=
"at91
rm9200-
ohci"
,
.
name
=
"at91
_
ohci"
,
.
id
=
-
1
,
.
id
=
-
1
,
.
dev
=
{
.
dev
=
{
.
dma_mask
=
&
ohci_dmamask
,
.
dma_mask
=
&
ohci_dmamask
,
.
coherent_dma_mask
=
0xffffffff
,
.
coherent_dma_mask
=
0xffffffff
,
.
platform_data
=
&
usbh_data
,
.
platform_data
=
&
usbh_data
,
},
},
.
resource
=
at91_usbh_resource
,
.
resource
=
at91_usbh_resource
s
,
.
num_resources
=
ARRAY_SIZE
(
at91_usbh_resource
),
.
num_resources
=
ARRAY_SIZE
(
at91_usbh_resource
s
),
};
};
void
__init
at91_add_device_usbh
(
struct
at91_usbh_data
*
data
)
void
__init
at91_add_device_usbh
(
struct
at91_usbh_data
*
data
)
...
@@ -74,11 +80,16 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {}
...
@@ -74,11 +80,16 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {}
static
struct
at91_udc_data
udc_data
;
static
struct
at91_udc_data
udc_data
;
static
struct
resource
at91_udc_resources
[]
=
{
static
struct
resource
at91_udc_resources
[]
=
{
{
[
0
]
=
{
.
start
=
AT91_BASE_UDP
,
.
start
=
AT91_BASE_UDP
,
.
end
=
AT91_BASE_UDP
+
SZ_16K
-
1
,
.
end
=
AT91_BASE_UDP
+
SZ_16K
-
1
,
.
flags
=
IORESOURCE_MEM
,
.
flags
=
IORESOURCE_MEM
,
}
},
[
1
]
=
{
.
start
=
AT91_ID_UDP
,
.
end
=
AT91_ID_UDP
,
.
flags
=
IORESOURCE_IRQ
,
},
};
};
static
struct
platform_device
at91rm9200_udc_device
=
{
static
struct
platform_device
at91rm9200_udc_device
=
{
...
@@ -100,10 +111,8 @@ void __init at91_add_device_udc(struct at91_udc_data *data)
...
@@ -100,10 +111,8 @@ void __init at91_add_device_udc(struct at91_udc_data *data)
at91_set_gpio_input
(
data
->
vbus_pin
,
0
);
at91_set_gpio_input
(
data
->
vbus_pin
,
0
);
at91_set_deglitch
(
data
->
vbus_pin
,
1
);
at91_set_deglitch
(
data
->
vbus_pin
,
1
);
}
}
if
(
data
->
pullup_pin
)
{
if
(
data
->
pullup_pin
)
at91_set_gpio_output
(
data
->
pullup_pin
,
0
);
at91_set_gpio_output
(
data
->
pullup_pin
,
0
);
at91_set_multi_drive
(
data
->
pullup_pin
,
1
);
}
udc_data
=
*
data
;
udc_data
=
*
data
;
platform_device_register
(
&
at91rm9200_udc_device
);
platform_device_register
(
&
at91rm9200_udc_device
);
...
@@ -197,7 +206,7 @@ static struct at91_cf_data cf_data;
...
@@ -197,7 +206,7 @@ static struct at91_cf_data cf_data;
static
struct
resource
at91_cf_resources
[]
=
{
static
struct
resource
at91_cf_resources
[]
=
{
[
0
]
=
{
[
0
]
=
{
.
start
=
AT91_CF_BASE
,
.
start
=
AT91_CF_BASE
,
/* ties up CS4, CS5
,
and CS6 */
/* ties up CS4, CS5 and CS6 */
.
end
=
AT91_CF_BASE
+
(
0x30000000
-
1
),
.
end
=
AT91_CF_BASE
+
(
0x30000000
-
1
),
.
flags
=
IORESOURCE_MEM
|
IORESOURCE_MEM_8AND16BIT
,
.
flags
=
IORESOURCE_MEM
|
IORESOURCE_MEM_8AND16BIT
,
},
},
...
@@ -231,6 +240,12 @@ void __init at91_add_device_cf(struct at91_cf_data *data)
...
@@ -231,6 +240,12 @@ void __init at91_add_device_cf(struct at91_cf_data *data)
at91_set_gpio_output
(
data
->
vcc_pin
,
0
);
at91_set_gpio_output
(
data
->
vcc_pin
,
0
);
at91_set_gpio_output
(
data
->
rst_pin
,
0
);
at91_set_gpio_output
(
data
->
rst_pin
,
0
);
/* force poweron defaults for these pins ... */
at91_set_A_periph
(
AT91_PIN_PC9
,
0
);
/* A25/CFRNW */
at91_set_A_periph
(
AT91_PIN_PC10
,
0
);
/* NCS4/CFCS */
at91_set_A_periph
(
AT91_PIN_PC11
,
0
);
/* NCS5/CFCE1 */
at91_set_A_periph
(
AT91_PIN_PC12
,
0
);
/* NCS6/CFCE2 */
cf_data
=
*
data
;
cf_data
=
*
data
;
platform_device_register
(
&
at91rm9200_cf_device
);
platform_device_register
(
&
at91rm9200_cf_device
);
}
}
...
@@ -319,6 +334,7 @@ void __init at91_add_device_mmc(struct at91_mmc_data *data)
...
@@ -319,6 +334,7 @@ void __init at91_add_device_mmc(struct at91_mmc_data *data)
void
__init
at91_add_device_mmc
(
struct
at91_mmc_data
*
data
)
{}
void
__init
at91_add_device_mmc
(
struct
at91_mmc_data
*
data
)
{}
#endif
#endif
/* --------------------------------------------------------------------
/* --------------------------------------------------------------------
* NAND / SmartMedia
* NAND / SmartMedia
* -------------------------------------------------------------------- */
* -------------------------------------------------------------------- */
...
@@ -399,23 +415,111 @@ void __init at91_add_device_i2c(void) {}
...
@@ -399,23 +415,111 @@ void __init at91_add_device_i2c(void) {}
#endif
#endif
/* --------------------------------------------------------------------
* SPI
* -------------------------------------------------------------------- */
#if defined(CONFIG_SPI_AT91) || defined(CONFIG_SPI_AT91_MODULE) || defined(CONFIG_AT91_SPI) || defined(CONFIG_AT91_SPI_MODULE)
static
u64
spi_dmamask
=
0xffffffffUL
;
static
struct
resource
at91_spi_resources
[]
=
{
[
0
]
=
{
.
start
=
AT91_BASE_SPI
,
.
end
=
AT91_BASE_SPI
+
SZ_16K
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
AT91_ID_SPI
,
.
end
=
AT91_ID_SPI
,
.
flags
=
IORESOURCE_IRQ
,
},
};
static
struct
platform_device
at91rm9200_spi_device
=
{
.
name
=
"at91_spi"
,
.
id
=
0
,
.
dev
=
{
.
dma_mask
=
&
spi_dmamask
,
.
coherent_dma_mask
=
0xffffffff
,
},
.
resource
=
at91_spi_resources
,
.
num_resources
=
ARRAY_SIZE
(
at91_spi_resources
),
};
static
const
unsigned
at91_spi_standard_cs
[
4
]
=
{
AT91_PIN_PA3
,
AT91_PIN_PA4
,
AT91_PIN_PA5
,
AT91_PIN_PA6
};
void
__init
at91_add_device_spi
(
struct
spi_board_info
*
devices
,
int
nr_devices
)
{
int
i
;
unsigned
long
cs_pin
;
at91_set_A_periph
(
AT91_PIN_PA0
,
0
);
/* MISO */
at91_set_A_periph
(
AT91_PIN_PA1
,
0
);
/* MOSI */
at91_set_A_periph
(
AT91_PIN_PA2
,
0
);
/* SPCK */
/* Enable SPI chip-selects */
for
(
i
=
0
;
i
<
nr_devices
;
i
++
)
{
if
(
devices
[
i
].
controller_data
)
cs_pin
=
(
unsigned
long
)
devices
[
i
].
controller_data
;
else
cs_pin
=
at91_spi_standard_cs
[
devices
[
i
].
chip_select
];
#ifdef CONFIG_SPI_AT91_MANUAL_CS
at91_set_gpio_output
(
cs_pin
,
1
);
#else
at91_set_A_periph
(
cs_pin
,
0
);
#endif
/* pass chip-select pin to driver */
devices
[
i
].
controller_data
=
(
void
*
)
cs_pin
;
}
spi_register_board_info
(
devices
,
nr_devices
);
at91_clock_associate
(
"spi0_clk"
,
&
at91rm9200_spi_device
.
dev
,
"spi"
);
platform_device_register
(
&
at91rm9200_spi_device
);
}
#else
void
__init
at91_add_device_spi
(
struct
spi_board_info
*
devices
,
int
nr_devices
)
{}
#endif
/* --------------------------------------------------------------------
/* --------------------------------------------------------------------
* RTC
* RTC
* -------------------------------------------------------------------- */
* -------------------------------------------------------------------- */
#if defined(CONFIG_
AT91_RTC) || defined(CONFIG_AT91_RTC
_MODULE)
#if defined(CONFIG_
RTC_DRV_AT91) || defined(CONFIG_RTC_DRV_AT91
_MODULE)
static
struct
platform_device
at91rm9200_rtc_device
=
{
static
struct
platform_device
at91rm9200_rtc_device
=
{
.
name
=
"at91_rtc"
,
.
name
=
"at91_rtc"
,
.
id
=
-
1
,
.
id
=
-
1
,
.
num_resources
=
0
,
.
num_resources
=
0
,
};
};
void
__init
at91_add_device_rtc
(
void
)
static
void
__init
at91_add_device_rtc
(
void
)
{
{
platform_device_register
(
&
at91rm9200_rtc_device
);
platform_device_register
(
&
at91rm9200_rtc_device
);
}
}
#else
#else
void
__init
at91_add_device_rtc
(
void
)
{}
static
void
__init
at91_add_device_rtc
(
void
)
{}
#endif
/* --------------------------------------------------------------------
* Watchdog
* -------------------------------------------------------------------- */
#if defined(CONFIG_AT91_WATCHDOG) || defined(CONFIG_AT91_WATCHDOG_MODULE)
static
struct
platform_device
at91rm9200_wdt_device
=
{
.
name
=
"at91_wdt"
,
.
id
=
-
1
,
.
num_resources
=
0
,
};
static
void
__init
at91_add_device_watchdog
(
void
)
{
platform_device_register
(
&
at91rm9200_wdt_device
);
}
#else
static
void
__init
at91_add_device_watchdog
(
void
)
{}
#endif
#endif
...
@@ -432,10 +536,278 @@ void __init at91_init_leds(u8 cpu_led, u8 timer_led)
...
@@ -432,10 +536,278 @@ void __init at91_init_leds(u8 cpu_led, u8 timer_led)
at91_leds_cpu
=
cpu_led
;
at91_leds_cpu
=
cpu_led
;
at91_leds_timer
=
timer_led
;
at91_leds_timer
=
timer_led
;
}
}
#else
#else
void
__init
at91_init_leds
(
u8
cpu_led
,
u8
timer_led
)
{}
void
__init
at91_init_leds
(
u8
cpu_led
,
u8
timer_led
)
{}
#endif
#endif
/* --------------------------------------------------------------------
* UART
* -------------------------------------------------------------------- */
#if defined(CONFIG_SERIAL_AT91)
static
struct
resource
dbgu_resources
[]
=
{
[
0
]
=
{
.
start
=
AT91_VA_BASE_SYS
+
AT91_DBGU
,
.
end
=
AT91_VA_BASE_SYS
+
AT91_DBGU
+
SZ_512
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
AT91_ID_SYS
,
.
end
=
AT91_ID_SYS
,
.
flags
=
IORESOURCE_IRQ
,
},
};
static
struct
at91_uart_data
dbgu_data
=
{
.
use_dma_tx
=
0
,
.
use_dma_rx
=
0
,
/* DBGU not capable of receive DMA */
};
static
struct
platform_device
at91rm9200_dbgu_device
=
{
.
name
=
"at91_usart"
,
.
id
=
0
,
.
dev
=
{
.
platform_data
=
&
dbgu_data
,
.
coherent_dma_mask
=
0xffffffff
,
},
.
resource
=
dbgu_resources
,
.
num_resources
=
ARRAY_SIZE
(
dbgu_resources
),
};
static
inline
void
configure_dbgu_pins
(
void
)
{
at91_set_A_periph
(
AT91_PIN_PA30
,
0
);
/* DRXD */
at91_set_A_periph
(
AT91_PIN_PA31
,
1
);
/* DTXD */
}
static
struct
resource
uart0_resources
[]
=
{
[
0
]
=
{
.
start
=
AT91_BASE_US0
,
.
end
=
AT91_BASE_US0
+
SZ_16K
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
AT91_ID_US0
,
.
end
=
AT91_ID_US0
,
.
flags
=
IORESOURCE_IRQ
,
},
};
static
struct
at91_uart_data
uart0_data
=
{
.
use_dma_tx
=
1
,
.
use_dma_rx
=
1
,
};
static
struct
platform_device
at91rm9200_uart0_device
=
{
.
name
=
"at91_usart"
,
.
id
=
1
,
.
dev
=
{
.
platform_data
=
&
uart0_data
,
.
coherent_dma_mask
=
0xffffffff
,
},
.
resource
=
uart0_resources
,
.
num_resources
=
ARRAY_SIZE
(
uart0_resources
),
};
static
inline
void
configure_usart0_pins
(
void
)
{
at91_set_A_periph
(
AT91_PIN_PA17
,
1
);
/* TXD0 */
at91_set_A_periph
(
AT91_PIN_PA18
,
0
);
/* RXD0 */
at91_set_A_periph
(
AT91_PIN_PA20
,
0
);
/* CTS0 */
/*
* AT91RM9200 Errata #39 - RTS0 is not internally connected to PA21.
* We need to drive the pin manually. Default is off (RTS is active low).
*/
at91_set_gpio_output
(
AT91_PIN_PA21
,
1
);
}
static
struct
resource
uart1_resources
[]
=
{
[
0
]
=
{
.
start
=
AT91_BASE_US1
,
.
end
=
AT91_BASE_US1
+
SZ_16K
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
AT91_ID_US1
,
.
end
=
AT91_ID_US1
,
.
flags
=
IORESOURCE_IRQ
,
},
};
static
struct
at91_uart_data
uart1_data
=
{
.
use_dma_tx
=
1
,
.
use_dma_rx
=
1
,
};
static
struct
platform_device
at91rm9200_uart1_device
=
{
.
name
=
"at91_usart"
,
.
id
=
2
,
.
dev
=
{
.
platform_data
=
&
uart1_data
,
.
coherent_dma_mask
=
0xffffffff
,
},
.
resource
=
uart1_resources
,
.
num_resources
=
ARRAY_SIZE
(
uart1_resources
),
};
static
inline
void
configure_usart1_pins
(
void
)
{
at91_set_A_periph
(
AT91_PIN_PB18
,
0
);
/* RI1 */
at91_set_A_periph
(
AT91_PIN_PB19
,
0
);
/* DTR1 */
at91_set_A_periph
(
AT91_PIN_PB20
,
1
);
/* TXD1 */
at91_set_A_periph
(
AT91_PIN_PB21
,
0
);
/* RXD1 */
at91_set_A_periph
(
AT91_PIN_PB23
,
0
);
/* DCD1 */
at91_set_A_periph
(
AT91_PIN_PB24
,
0
);
/* CTS1 */
at91_set_A_periph
(
AT91_PIN_PB25
,
0
);
/* DSR1 */
at91_set_A_periph
(
AT91_PIN_PB26
,
0
);
/* RTS1 */
}
static
struct
resource
uart2_resources
[]
=
{
[
0
]
=
{
.
start
=
AT91_BASE_US2
,
.
end
=
AT91_BASE_US2
+
SZ_16K
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
AT91_ID_US2
,
.
end
=
AT91_ID_US2
,
.
flags
=
IORESOURCE_IRQ
,
},
};
static
struct
at91_uart_data
uart2_data
=
{
.
use_dma_tx
=
1
,
.
use_dma_rx
=
1
,
};
static
struct
platform_device
at91rm9200_uart2_device
=
{
.
name
=
"at91_usart"
,
.
id
=
3
,
.
dev
=
{
.
platform_data
=
&
uart2_data
,
.
coherent_dma_mask
=
0xffffffff
,
},
.
resource
=
uart2_resources
,
.
num_resources
=
ARRAY_SIZE
(
uart2_resources
),
};
static
inline
void
configure_usart2_pins
(
void
)
{
at91_set_A_periph
(
AT91_PIN_PA22
,
0
);
/* RXD2 */
at91_set_A_periph
(
AT91_PIN_PA23
,
1
);
/* TXD2 */
}
static
struct
resource
uart3_resources
[]
=
{
[
0
]
=
{
.
start
=
AT91_BASE_US3
,
.
end
=
AT91_BASE_US3
+
SZ_16K
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
AT91_ID_US3
,
.
end
=
AT91_ID_US3
,
.
flags
=
IORESOURCE_IRQ
,
},
};
static
struct
at91_uart_data
uart3_data
=
{
.
use_dma_tx
=
1
,
.
use_dma_rx
=
1
,
};
static
struct
platform_device
at91rm9200_uart3_device
=
{
.
name
=
"at91_usart"
,
.
id
=
4
,
.
dev
=
{
.
platform_data
=
&
uart3_data
,
.
coherent_dma_mask
=
0xffffffff
,
},
.
resource
=
uart3_resources
,
.
num_resources
=
ARRAY_SIZE
(
uart3_resources
),
};
static
inline
void
configure_usart3_pins
(
void
)
{
at91_set_B_periph
(
AT91_PIN_PA5
,
1
);
/* TXD3 */
at91_set_B_periph
(
AT91_PIN_PA6
,
0
);
/* RXD3 */
}
struct
platform_device
*
at91_uarts
[
AT91_NR_UART
];
/* the UARTs to use */
struct
platform_device
*
at91_default_console_device
;
/* the serial console device */
void
__init
at91_init_serial
(
struct
at91_uart_config
*
config
)
{
int
i
;
/* Fill in list of supported UARTs */
for
(
i
=
0
;
i
<
config
->
nr_tty
;
i
++
)
{
switch
(
config
->
tty_map
[
i
])
{
case
0
:
configure_usart0_pins
();
at91_uarts
[
i
]
=
&
at91rm9200_uart0_device
;
at91_clock_associate
(
"usart0_clk"
,
&
at91rm9200_uart0_device
.
dev
,
"usart"
);
break
;
case
1
:
configure_usart1_pins
();
at91_uarts
[
i
]
=
&
at91rm9200_uart1_device
;
at91_clock_associate
(
"usart1_clk"
,
&
at91rm9200_uart1_device
.
dev
,
"usart"
);
break
;
case
2
:
configure_usart2_pins
();
at91_uarts
[
i
]
=
&
at91rm9200_uart2_device
;
at91_clock_associate
(
"usart2_clk"
,
&
at91rm9200_uart2_device
.
dev
,
"usart"
);
break
;
case
3
:
configure_usart3_pins
();
at91_uarts
[
i
]
=
&
at91rm9200_uart3_device
;
at91_clock_associate
(
"usart3_clk"
,
&
at91rm9200_uart3_device
.
dev
,
"usart"
);
break
;
case
4
:
configure_dbgu_pins
();
at91_uarts
[
i
]
=
&
at91rm9200_dbgu_device
;
at91_clock_associate
(
"mck"
,
&
at91rm9200_dbgu_device
.
dev
,
"usart"
);
break
;
default:
continue
;
}
at91_uarts
[
i
]
->
id
=
i
;
/* update ID number to mapped ID */
}
/* Set serial console device */
if
(
config
->
console_tty
<
AT91_NR_UART
)
at91_default_console_device
=
at91_uarts
[
config
->
console_tty
];
if
(
!
at91_default_console_device
)
printk
(
KERN_INFO
"AT91: No default serial console defined.
\n
"
);
}
void
__init
at91_add_device_serial
(
void
)
{
int
i
;
for
(
i
=
0
;
i
<
AT91_NR_UART
;
i
++
)
{
if
(
at91_uarts
[
i
])
platform_device_register
(
at91_uarts
[
i
]);
}
}
#else
void
__init
at91_init_serial
(
struct
at91_uart_config
*
config
)
{}
void
__init
at91_add_device_serial
(
void
)
{}
#endif
/* -------------------------------------------------------------------- */
/* -------------------------------------------------------------------- */
/*
* These devices are always present and don't need any board-specific
* setup.
*/
static
int
__init
at91_add_standard_devices
(
void
)
{
at91_add_device_rtc
();
at91_add_device_watchdog
();
return
0
;
}
arch_initcall
(
at91_add_standard_devices
);
arch/arm/mach-at91rm9200/generic.h
View file @
695a9d23
...
@@ -16,3 +16,10 @@ extern struct sys_timer at91rm9200_timer;
...
@@ -16,3 +16,10 @@ extern struct sys_timer at91rm9200_timer;
extern
void
__init
at91rm9200_map_io
(
void
);
extern
void
__init
at91rm9200_map_io
(
void
);
extern
int
__init
at91_clock_init
(
unsigned
long
main_clock
);
extern
int
__init
at91_clock_init
(
unsigned
long
main_clock
);
struct
device
;
extern
void
__init
at91_clock_associate
(
const
char
*
id
,
struct
device
*
dev
,
const
char
*
func
);
/* Power Management */
extern
void
at91_irq_suspend
(
void
);
extern
void
at91_irq_resume
(
void
);
arch/arm/mach-at91rm9200/gpio.c
View file @
695a9d23
...
@@ -213,6 +213,84 @@ EXPORT_SYMBOL(at91_get_gpio_value);
...
@@ -213,6 +213,84 @@ EXPORT_SYMBOL(at91_get_gpio_value);
/*--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
#ifdef CONFIG_PM
static
u32
wakeups
[
BGA_GPIO_BANKS
];
static
u32
backups
[
BGA_GPIO_BANKS
];
static
int
gpio_irq_set_wake
(
unsigned
pin
,
unsigned
state
)
{
unsigned
mask
=
pin_to_mask
(
pin
);
pin
-=
PIN_BASE
;
pin
/=
32
;
if
(
unlikely
(
pin
>=
BGA_GPIO_BANKS
))
return
-
EINVAL
;
if
(
state
)
wakeups
[
pin
]
|=
mask
;
else
wakeups
[
pin
]
&=
~
mask
;
return
0
;
}
void
at91_gpio_suspend
(
void
)
{
int
i
;
for
(
i
=
0
;
i
<
BGA_GPIO_BANKS
;
i
++
)
{
u32
pio
=
pio_controller_offset
[
i
];
/*
* Note: drivers should have disabled GPIO interrupts that
* aren't supposed to be wakeup sources.
* But that is not much good on ARM..... disable_irq() does
* not update the hardware immediately, so the hardware mask
* (IMR) has the wrong value (not current, too much is
* permitted).
*
* Our workaround is to disable all non-wakeup IRQs ...
* which is exactly what correct drivers asked for in the
* first place!
*/
backups
[
i
]
=
at91_sys_read
(
pio
+
PIO_IMR
);
at91_sys_write
(
pio_controller_offset
[
i
]
+
PIO_IDR
,
backups
[
i
]);
at91_sys_write
(
pio_controller_offset
[
i
]
+
PIO_IER
,
wakeups
[
i
]);
if
(
!
wakeups
[
i
])
{
disable_irq_wake
(
AT91_ID_PIOA
+
i
);
at91_sys_write
(
AT91_PMC_PCDR
,
1
<<
(
AT91_ID_PIOA
+
i
));
}
else
{
enable_irq_wake
(
AT91_ID_PIOA
+
i
);
#ifdef CONFIG_PM_DEBUG
printk
(
KERN_DEBUG
"GPIO-%c may wake for %08x
\n
"
,
"ABCD"
[
i
],
wakeups
[
i
]);
#endif
}
}
}
void
at91_gpio_resume
(
void
)
{
int
i
;
for
(
i
=
0
;
i
<
BGA_GPIO_BANKS
;
i
++
)
{
at91_sys_write
(
pio_controller_offset
[
i
]
+
PIO_IDR
,
wakeups
[
i
]);
at91_sys_write
(
pio_controller_offset
[
i
]
+
PIO_IER
,
backups
[
i
]);
}
at91_sys_write
(
AT91_PMC_PCER
,
(
1
<<
AT91_ID_PIOA
)
|
(
1
<<
AT91_ID_PIOB
)
|
(
1
<<
AT91_ID_PIOC
)
|
(
1
<<
AT91_ID_PIOD
));
}
#else
#define gpio_irq_set_wake NULL
#endif
/* Several AIC controller irqs are dispatched through this GPIO handler.
/* Several AIC controller irqs are dispatched through this GPIO handler.
* To use any AT91_PIN_* as an externally triggered IRQ, first call
* To use any AT91_PIN_* as an externally triggered IRQ, first call
...
@@ -252,6 +330,7 @@ static struct irqchip gpio_irqchip = {
...
@@ -252,6 +330,7 @@ static struct irqchip gpio_irqchip = {
.
mask
=
gpio_irq_mask
,
.
mask
=
gpio_irq_mask
,
.
unmask
=
gpio_irq_unmask
,
.
unmask
=
gpio_irq_unmask
,
.
set_type
=
gpio_irq_type
,
.
set_type
=
gpio_irq_type
,
.
set_wake
=
gpio_irq_set_wake
,
};
};
static
void
gpio_irq_handler
(
unsigned
irq
,
struct
irqdesc
*
desc
,
struct
pt_regs
*
regs
)
static
void
gpio_irq_handler
(
unsigned
irq
,
struct
irqdesc
*
desc
,
struct
pt_regs
*
regs
)
...
@@ -266,6 +345,7 @@ static void gpio_irq_handler(unsigned irq, struct irqdesc *desc, struct pt_regs
...
@@ -266,6 +345,7 @@ static void gpio_irq_handler(unsigned irq, struct irqdesc *desc, struct pt_regs
/* temporarily mask (level sensitive) parent IRQ */
/* temporarily mask (level sensitive) parent IRQ */
desc
->
chip
->
ack
(
irq
);
desc
->
chip
->
ack
(
irq
);
for
(;;)
{
for
(;;)
{
/* reading ISR acks the pending (edge triggered) GPIO interrupt */
isr
=
__raw_readl
(
pio
+
PIO_ISR
)
&
__raw_readl
(
pio
+
PIO_IMR
);
isr
=
__raw_readl
(
pio
+
PIO_ISR
)
&
__raw_readl
(
pio
+
PIO_IMR
);
if
(
!
isr
)
if
(
!
isr
)
break
;
break
;
...
@@ -315,15 +395,16 @@ void __init at91_gpio_irq_setup(unsigned banks)
...
@@ -315,15 +395,16 @@ void __init at91_gpio_irq_setup(unsigned banks)
set_irq_chipdata
(
id
,
controller
);
set_irq_chipdata
(
id
,
controller
);
for
(
i
=
0
;
i
<
32
;
i
++
,
pin
++
)
{
for
(
i
=
0
;
i
<
32
;
i
++
,
pin
++
)
{
/*
* Can use the "simple" and not "edge" handler since it's
* shorter, and the AIC handles interupts sanely.
*/
set_irq_chip
(
pin
,
&
gpio_irqchip
);
set_irq_chip
(
pin
,
&
gpio_irqchip
);
set_irq_handler
(
pin
,
do_simple_IRQ
);
set_irq_handler
(
pin
,
do_simple_IRQ
);
set_irq_flags
(
pin
,
IRQF_VALID
);
set_irq_flags
(
pin
,
IRQF_VALID
);
}
}
set_irq_chained_handler
(
id
,
gpio_irq_handler
);
set_irq_chained_handler
(
id
,
gpio_irq_handler
);
/* enable the PIO peripheral clock */
at91_sys_write
(
AT91_PMC_PCER
,
1
<<
id
);
}
}
pr_info
(
"AT91: %d gpio irqs in %d banks
\n
"
,
pin
-
PIN_BASE
,
banks
);
pr_info
(
"AT91: %d gpio irqs in %d banks
\n
"
,
pin
-
PIN_BASE
,
banks
);
}
}
arch/arm/mach-at91rm9200/irq.c
View file @
695a9d23
...
@@ -92,10 +92,6 @@ static int at91rm9200_irq_type(unsigned irq, unsigned type)
...
@@ -92,10 +92,6 @@ static int at91rm9200_irq_type(unsigned irq, unsigned type)
{
{
unsigned
int
smr
,
srctype
;
unsigned
int
smr
,
srctype
;
/* change triggering only for FIQ and external IRQ0..IRQ6 */
if
((
irq
<
AT91_ID_IRQ0
)
&&
(
irq
!=
AT91_ID_FIQ
))
return
-
EINVAL
;
switch
(
type
)
{
switch
(
type
)
{
case
IRQT_HIGH
:
case
IRQT_HIGH
:
srctype
=
AT91_AIC_SRCTYPE_HIGH
;
srctype
=
AT91_AIC_SRCTYPE_HIGH
;
...
@@ -104,9 +100,13 @@ static int at91rm9200_irq_type(unsigned irq, unsigned type)
...
@@ -104,9 +100,13 @@ static int at91rm9200_irq_type(unsigned irq, unsigned type)
srctype
=
AT91_AIC_SRCTYPE_RISING
;
srctype
=
AT91_AIC_SRCTYPE_RISING
;
break
;
break
;
case
IRQT_LOW
:
case
IRQT_LOW
:
if
((
irq
>
AT91_ID_FIQ
)
&&
(
irq
<
AT91_ID_IRQ0
))
/* only supported on external interrupts */
return
-
EINVAL
;
srctype
=
AT91_AIC_SRCTYPE_LOW
;
srctype
=
AT91_AIC_SRCTYPE_LOW
;
break
;
break
;
case
IRQT_FALLING
:
case
IRQT_FALLING
:
if
((
irq
>
AT91_ID_FIQ
)
&&
(
irq
<
AT91_ID_IRQ0
))
/* only supported on external interrupts */
return
-
EINVAL
;
srctype
=
AT91_AIC_SRCTYPE_FALLING
;
srctype
=
AT91_AIC_SRCTYPE_FALLING
;
break
;
break
;
default:
default:
...
@@ -118,11 +118,47 @@ static int at91rm9200_irq_type(unsigned irq, unsigned type)
...
@@ -118,11 +118,47 @@ static int at91rm9200_irq_type(unsigned irq, unsigned type)
return
0
;
return
0
;
}
}
#ifdef CONFIG_PM
static
u32
wakeups
;
static
u32
backups
;
static
int
at91rm9200_irq_set_wake
(
unsigned
irq
,
unsigned
value
)
{
if
(
unlikely
(
irq
>=
32
))
return
-
EINVAL
;
if
(
value
)
wakeups
|=
(
1
<<
irq
);
else
wakeups
&=
~
(
1
<<
irq
);
return
0
;
}
void
at91_irq_suspend
(
void
)
{
backups
=
at91_sys_read
(
AT91_AIC_IMR
);
at91_sys_write
(
AT91_AIC_IDCR
,
backups
);
at91_sys_write
(
AT91_AIC_IECR
,
wakeups
);
}
void
at91_irq_resume
(
void
)
{
at91_sys_write
(
AT91_AIC_IDCR
,
wakeups
);
at91_sys_write
(
AT91_AIC_IECR
,
backups
);
}
#else
#define at91rm9200_irq_set_wake NULL
#endif
static
struct
irqchip
at91rm9200_irq_chip
=
{
static
struct
irqchip
at91rm9200_irq_chip
=
{
.
ack
=
at91rm9200_mask_irq
,
.
ack
=
at91rm9200_mask_irq
,
.
mask
=
at91rm9200_mask_irq
,
.
mask
=
at91rm9200_mask_irq
,
.
unmask
=
at91rm9200_unmask_irq
,
.
unmask
=
at91rm9200_unmask_irq
,
.
set_type
=
at91rm9200_irq_type
,
.
set_type
=
at91rm9200_irq_type
,
.
set_wake
=
at91rm9200_irq_set_wake
,
};
};
/*
/*
...
...
arch/arm/mach-at91rm9200/pm.c
0 → 100644
View file @
695a9d23
/*
* arch/arm/mach-at91rm9200/pm.c
* AT91 Power Management
*
* Copyright (C) 2005 David Brownell
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*/
#include <linux/pm.h>
#include <linux/sched.h>
#include <linux/proc_fs.h>
#include <linux/pm.h>
#include <linux/interrupt.h>
#include <linux/sysfs.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/atomic.h>
#include <asm/mach/time.h>
#include <asm/mach/irq.h>
#include <asm/mach-types.h>
#include <asm/arch/gpio.h>
#include "generic.h"
static
int
at91_pm_valid_state
(
suspend_state_t
state
)
{
switch
(
state
)
{
case
PM_SUSPEND_ON
:
case
PM_SUSPEND_STANDBY
:
case
PM_SUSPEND_MEM
:
return
1
;
default:
return
0
;
}
}
static
suspend_state_t
target_state
;
/*
* Called after processes are frozen, but before we shutdown devices.
*/
static
int
at91_pm_prepare
(
suspend_state_t
state
)
{
target_state
=
state
;
return
0
;
}
/*
* Verify that all the clocks are correct before entering
* slow-clock mode.
*/
static
int
at91_pm_verify_clocks
(
void
)
{
unsigned
long
scsr
;
int
i
;
scsr
=
at91_sys_read
(
AT91_PMC_SCSR
);
/* USB must not be using PLLB */
if
((
scsr
&
(
AT91_PMC_UHP
|
AT91_PMC_UDP
))
!=
0
)
{
pr_debug
(
"AT91: PM - Suspend-to-RAM with USB still active
\n
"
);
return
0
;
}
#ifdef CONFIG_AT91_PROGRAMMABLE_CLOCKS
/* PCK0..PCK3 must be disabled, or configured to use clk32k */
for
(
i
=
0
;
i
<
4
;
i
++
)
{
u32
css
;
if
((
scsr
&
(
AT91_PMC_PCK0
<<
i
))
==
0
)
continue
;
css
=
at91_sys_read
(
AT91_PMC_PCKR
(
i
))
&
AT91_PMC_CSS
;
if
(
css
!=
AT91_PMC_CSS_SLOW
)
{
pr_debug
(
"AT91: PM - Suspend-to-RAM with PCK%d src %d
\n
"
,
i
,
css
);
return
0
;
}
}
#endif
return
1
;
}
/*
* Call this from platform driver suspend() to see how deeply to suspend.
* For example, some controllers (like OHCI) need one of the PLL clocks
* in order to act as a wakeup source, and those are not available when
* going into slow clock mode.
*
* REVISIT: generalize as clk_will_be_available(clk)? Other platforms have
* the very same problem (but not using at91 main_clk), and it'd be better
* to add one generic API rather than lots of platform-specific ones.
*/
int
at91_suspend_entering_slow_clock
(
void
)
{
return
(
target_state
==
PM_SUSPEND_MEM
);
}
EXPORT_SYMBOL
(
at91_suspend_entering_slow_clock
);
static
void
(
*
slow_clock
)(
void
);
static
int
at91_pm_enter
(
suspend_state_t
state
)
{
at91_gpio_suspend
();
at91_irq_suspend
();
pr_debug
(
"AT91: PM - wake mask %08x, pm state %d
\n
"
,
/* remember all the always-wake irqs */
(
at91_sys_read
(
AT91_PMC_PCSR
)
|
(
1
<<
AT91_ID_FIQ
)
|
(
1
<<
AT91_ID_SYS
)
|
(
1
<<
AT91_ID_IRQ0
)
|
(
1
<<
AT91_ID_IRQ1
)
|
(
1
<<
AT91_ID_IRQ2
)
|
(
1
<<
AT91_ID_IRQ3
)
|
(
1
<<
AT91_ID_IRQ4
)
|
(
1
<<
AT91_ID_IRQ5
)
|
(
1
<<
AT91_ID_IRQ6
))
&
at91_sys_read
(
AT91_AIC_IMR
),
state
);
switch
(
state
)
{
/*
* Suspend-to-RAM is like STANDBY plus slow clock mode, so
* drivers must suspend more deeply: only the master clock
* controller may be using the main oscillator.
*/
case
PM_SUSPEND_MEM
:
/*
* Ensure that clocks are in a valid state.
*/
if
(
!
at91_pm_verify_clocks
())
goto
error
;
/*
* Enter slow clock mode by switching over to clk32k and
* turning off the main oscillator; reverse on wakeup.
*/
if
(
slow_clock
)
{
slow_clock
();
break
;
}
else
{
/* DEVELOPMENT ONLY */
pr_info
(
"AT91: PM - no slow clock mode yet ...
\n
"
);
/* FALLTHROUGH leaving master clock alone */
}
/*
* STANDBY mode has *all* drivers suspended; ignores irqs not
* marked as 'wakeup' event sources; and reduces DRAM power.
* But otherwise it's identical to PM_SUSPEND_ON: cpu idle, and
* nothing fancy done with main or cpu clocks.
*/
case
PM_SUSPEND_STANDBY
:
/*
* NOTE: the Wait-for-Interrupt instruction needs to be
* in icache so the SDRAM stays in self-refresh mode until
* the wakeup IRQ occurs.
*/
asm
(
"b 1f; .align 5; 1:"
);
asm
(
"mcr p15, 0, r0, c7, c10, 4"
);
/* drain write buffer */
at91_sys_write
(
AT91_SDRAMC_SRR
,
1
);
/* self-refresh mode */
/* fall though to next state */
case
PM_SUSPEND_ON
:
asm
(
"mcr p15, 0, r0, c7, c0, 4"
);
/* wait for interrupt */
break
;
default:
pr_debug
(
"AT91: PM - bogus suspend state %d
\n
"
,
state
);
goto
error
;
}
pr_debug
(
"AT91: PM - wakeup %08x
\n
"
,
at91_sys_read
(
AT91_AIC_IPR
)
&
at91_sys_read
(
AT91_AIC_IMR
));
error:
target_state
=
PM_SUSPEND_ON
;
at91_irq_resume
();
at91_gpio_resume
();
return
0
;
}
static
struct
pm_ops
at91_pm_ops
=
{
.
pm_disk_mode
=
0
,
.
valid
=
at91_pm_valid_state
,
.
prepare
=
at91_pm_prepare
,
.
enter
=
at91_pm_enter
,
};
static
int
__init
at91_pm_init
(
void
)
{
printk
(
"AT91: Power Management
\n
"
);
#ifdef CONFIG_AT91_PM_SLOW_CLOCK
/* REVISIT allocations of SRAM should be dynamically managed.
* FIQ handlers and other components will want SRAM/TCM too...
*/
slow_clock
=
(
void
*
)
(
AT91_VA_BASE_SRAM
+
(
3
*
SZ_4K
));
memcpy
(
slow_clock
,
at91rm9200_slow_clock
,
at91rm9200_slow_clock_sz
);
#endif
/* Disable SDRAM low-power mode. Cannot be used with self-refresh. */
at91_sys_write
(
AT91_SDRAMC_LPR
,
0
);
pm_set_ops
(
&
at91_pm_ops
);
return
0
;
}
arch_initcall
(
at91_pm_init
);
arch/arm/mach-at91rm9200/time.c
View file @
695a9d23
...
@@ -31,6 +31,8 @@
...
@@ -31,6 +31,8 @@
#include <asm/irq.h>
#include <asm/irq.h>
#include <asm/mach/time.h>
#include <asm/mach/time.h>
static
unsigned
long
last_crtr
;
/*
/*
* The ST_CRTR is updated asynchronously to the master clock. It is therefore
* The ST_CRTR is updated asynchronously to the master clock. It is therefore
* necessary to read it twice (with the same value) to ensure accuracy.
* necessary to read it twice (with the same value) to ensure accuracy.
...
@@ -56,7 +58,7 @@ static unsigned long at91rm9200_gettimeoffset(void)
...
@@ -56,7 +58,7 @@ static unsigned long at91rm9200_gettimeoffset(void)
{
{
unsigned
long
elapsed
;
unsigned
long
elapsed
;
elapsed
=
(
read_CRTR
()
-
at91_sys_read
(
AT91_ST_RTAR
)
)
&
AT91_ST_ALMV
;
elapsed
=
(
read_CRTR
()
-
last_crtr
)
&
AT91_ST_ALMV
;
return
(
unsigned
long
)(
elapsed
*
(
tick_nsec
/
1000
))
/
LATCH
;
return
(
unsigned
long
)(
elapsed
*
(
tick_nsec
/
1000
))
/
LATCH
;
}
}
...
@@ -66,15 +68,12 @@ static unsigned long at91rm9200_gettimeoffset(void)
...
@@ -66,15 +68,12 @@ static unsigned long at91rm9200_gettimeoffset(void)
*/
*/
static
irqreturn_t
at91rm9200_timer_interrupt
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
at91rm9200_timer_interrupt
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
{
unsigned
long
rtar
;
if
(
at91_sys_read
(
AT91_ST_SR
)
&
AT91_ST_PITS
)
{
/* This is a shared interrupt */
if
(
at91_sys_read
(
AT91_ST_SR
)
&
AT91_ST_PITS
)
{
/* This is a shared interrupt */
write_seqlock
(
&
xtime_lock
);
write_seqlock
(
&
xtime_lock
);
while
(((
read_CRTR
()
-
at91_sys_read
(
AT91_ST_RTAR
)
)
&
AT91_ST_ALMV
)
>=
LATCH
)
{
while
(((
read_CRTR
()
-
last_crtr
)
&
AT91_ST_ALMV
)
>=
LATCH
)
{
timer_tick
(
regs
);
timer_tick
(
regs
);
rtar
=
(
at91_sys_read
(
AT91_ST_RTAR
)
+
LATCH
)
&
AT91_ST_ALMV
;
last_crtr
=
(
last_crtr
+
LATCH
)
&
AT91_ST_ALMV
;
at91_sys_write
(
AT91_ST_RTAR
,
rtar
);
}
}
write_sequnlock
(
&
xtime_lock
);
write_sequnlock
(
&
xtime_lock
);
...
@@ -87,10 +86,24 @@ static irqreturn_t at91rm9200_timer_interrupt(int irq, void *dev_id, struct pt_r
...
@@ -87,10 +86,24 @@ static irqreturn_t at91rm9200_timer_interrupt(int irq, void *dev_id, struct pt_r
static
struct
irqaction
at91rm9200_timer_irq
=
{
static
struct
irqaction
at91rm9200_timer_irq
=
{
.
name
=
"at91_tick"
,
.
name
=
"at91_tick"
,
.
flags
=
SA_SHIRQ
|
SA_INTERRUPT
,
.
flags
=
SA_SHIRQ
|
SA_INTERRUPT
|
SA_TIMER
,
.
handler
=
at91rm9200_timer_interrupt
.
handler
=
at91rm9200_timer_interrupt
};
};
void
at91rm9200_timer_reset
(
void
)
{
last_crtr
=
0
;
/* Real time counter incremented every 30.51758 microseconds */
at91_sys_write
(
AT91_ST_RTMR
,
1
);
/* Set Period Interval timer */
at91_sys_write
(
AT91_ST_PIMR
,
LATCH
);
/* Enable Period Interval Timer interrupt */
at91_sys_write
(
AT91_ST_IER
,
AT91_ST_PITS
);
}
/*
/*
* Set up timer interrupt.
* Set up timer interrupt.
*/
*/
...
@@ -100,28 +113,30 @@ void __init at91rm9200_timer_init(void)
...
@@ -100,28 +113,30 @@ void __init at91rm9200_timer_init(void)
at91_sys_write
(
AT91_ST_IDR
,
AT91_ST_PITS
|
AT91_ST_WDOVF
|
AT91_ST_RTTINC
|
AT91_ST_ALMS
);
at91_sys_write
(
AT91_ST_IDR
,
AT91_ST_PITS
|
AT91_ST_WDOVF
|
AT91_ST_RTTINC
|
AT91_ST_ALMS
);
(
void
)
at91_sys_read
(
AT91_ST_SR
);
/* Clear any pending interrupts */
(
void
)
at91_sys_read
(
AT91_ST_SR
);
/* Clear any pending interrupts */
/*
/* Make IRQs happen for the system timer */
* Make IRQs happen for the system timer.
*/
setup_irq
(
AT91_ID_SYS
,
&
at91rm9200_timer_irq
);
setup_irq
(
AT91_ID_SYS
,
&
at91rm9200_timer_irq
);
/* Set initial alarm to 0 */
at91_sys_write
(
AT91_ST_RTAR
,
0
);
/* Real time counter incremented every 30.51758 microseconds */
at91_sys_write
(
AT91_ST_RTMR
,
1
);
/* Set Period Interval timer */
at91_sys_write
(
AT91_ST_PIMR
,
LATCH
);
/* Change the kernel's 'tick' value to 10009 usec. (the default is 10000) */
/* Change the kernel's 'tick' value to 10009 usec. (the default is 10000) */
tick_usec
=
(
LATCH
*
1000000
)
/
CLOCK_TICK_RATE
;
tick_usec
=
(
LATCH
*
1000000
)
/
CLOCK_TICK_RATE
;
/*
Enable Period Interval T
imer interrupt */
/*
Initialize and enable the t
imer interrupt */
at91
_sys_write
(
AT91_ST_IER
,
AT91_ST_PITS
);
at91
rm9200_timer_reset
(
);
}
}
#ifdef CONFIG_PM
static
void
at91rm9200_timer_suspend
(
void
)
{
/* disable Period Interval Timer interrupt */
at91_sys_write
(
AT91_ST_IDR
,
AT91_ST_PITS
);
}
#else
#define at91rm9200_timer_suspend NULL
#endif
struct
sys_timer
at91rm9200_timer
=
{
struct
sys_timer
at91rm9200_timer
=
{
.
init
=
at91rm9200_timer_init
,
.
init
=
at91rm9200_timer_init
,
.
offset
=
at91rm9200_gettimeoffset
,
.
offset
=
at91rm9200_gettimeoffset
,
.
suspend
=
at91rm9200_timer_suspend
,
.
resume
=
at91rm9200_timer_reset
,
};
};
drivers/serial/Kconfig
View file @
695a9d23
...
@@ -300,21 +300,22 @@ config SERIAL_AMBA_PL011_CONSOLE
...
@@ -300,21 +300,22 @@ config SERIAL_AMBA_PL011_CONSOLE
kernel at boot time.)
kernel at boot time.)
config SERIAL_AT91
config SERIAL_AT91
bool "AT91RM9200 serial port support"
bool "AT91RM9200
/ AT91SAM9261
serial port support"
depends on ARM &&
ARCH_AT91RM9200
depends on ARM &&
(ARCH_AT91RM9200 || ARCH_AT91SAM9261)
select SERIAL_CORE
select SERIAL_CORE
help
help
This enables the driver for the on-chip UARTs of the A
T91RM9200
This enables the driver for the on-chip UARTs of the A
tmel
processor.
AT91RM9200 and AT91SAM926
processor.
config SERIAL_AT91_CONSOLE
config SERIAL_AT91_CONSOLE
bool "Support for console on AT91RM9200 serial port"
bool "Support for console on AT91RM9200
/ AT91SAM9261
serial port"
depends on SERIAL_AT91=y
depends on SERIAL_AT91=y
select SERIAL_CORE_CONSOLE
select SERIAL_CORE_CONSOLE
help
help
Say Y here if you wish to use a UART on the AT91RM9200 as the system
Say Y here if you wish to use a UART on the Atmel AT91RM9200 or
console (the system console is the device which receives all kernel
AT91SAM9261 as the system console (the system console is the device
messages and warnings and which allows logins in single user mode).
which receives all kernel messages and warnings and which allows
logins in single user mode).
config SERIAL_AT91_TTYAT
config SERIAL_AT91_TTYAT
bool "Install as device ttyAT0-4 instead of ttyS0-4"
bool "Install as device ttyAT0-4 instead of ttyS0-4"
...
...
drivers/serial/at91_serial.c
View file @
695a9d23
...
@@ -2,7 +2,6 @@
...
@@ -2,7 +2,6 @@
* linux/drivers/char/at91_serial.c
* linux/drivers/char/at91_serial.c
*
*
* Driver for Atmel AT91RM9200 Serial ports
* Driver for Atmel AT91RM9200 Serial ports
*
* Copyright (C) 2003 Rick Bronson
* Copyright (C) 2003 Rick Bronson
*
*
* Based on drivers/char/serial_sa1100.c, by Deep Blue Solutions Ltd.
* Based on drivers/char/serial_sa1100.c, by Deep Blue Solutions Ltd.
...
@@ -30,17 +29,19 @@
...
@@ -30,17 +29,19 @@
#include <linux/slab.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/serial.h>
#include <linux/serial.h>
#include <linux/clk.h>
#include <linux/console.h>
#include <linux/console.h>
#include <linux/sysrq.h>
#include <linux/sysrq.h>
#include <linux/tty_flip.h>
#include <linux/tty_flip.h>
#include <linux/platform_device.h>
#include <asm/io.h>
#include <asm/io.h>
#include <asm/arch/at91rm9200_usart.h>
#include <asm/arch/at91rm9200_usart.h>
#include <asm/mach/serial_at91rm9200.h>
#include <asm/arch/at91rm9200_pdc.h>
#include <asm/mach/serial_at91.h>
#include <asm/arch/board.h>
#include <asm/arch/board.h>
#include <asm/arch/pio.h>
#include <asm/arch/system.h>
#if defined(CONFIG_SERIAL_AT91_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
#if defined(CONFIG_SERIAL_AT91_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
#define SUPPORT_SYSRQ
#define SUPPORT_SYSRQ
...
@@ -67,7 +68,6 @@
...
@@ -67,7 +68,6 @@
#endif
#endif
#define AT91_VA_BASE_DBGU ((unsigned long) AT91_VA_BASE_SYS + AT91_DBGU)
#define AT91_ISR_PASS_LIMIT 256
#define AT91_ISR_PASS_LIMIT 256
#define UART_PUT_CR(port,v) writel(v, (port)->membase + AT91_US_CR)
#define UART_PUT_CR(port,v) writel(v, (port)->membase + AT91_US_CR)
...
@@ -87,16 +87,33 @@
...
@@ -87,16 +87,33 @@
/* PDC registers */
/* PDC registers */
#define UART_PUT_PTCR(port,v) writel(v, (port)->membase + AT91_PDC_PTCR)
#define UART_PUT_PTCR(port,v) writel(v, (port)->membase + AT91_PDC_PTCR)
#define UART_GET_PTSR(port) readl((port)->membase + AT91_PDC_PTSR)
#define UART_PUT_RPR(port,v) writel(v, (port)->membase + AT91_PDC_RPR)
#define UART_PUT_RPR(port,v) writel(v, (port)->membase + AT91_PDC_RPR)
#define UART_GET_RPR(port) readl((port)->membase + AT91_PDC_RPR)
#define UART_PUT_RCR(port,v) writel(v, (port)->membase + AT91_PDC_RCR)
#define UART_PUT_RCR(port,v) writel(v, (port)->membase + AT91_PDC_RCR)
#define UART_GET_RCR(port) readl((port)->membase + AT91_PDC_RCR)
#define UART_PUT_RNPR(port,v) writel(v, (port)->membase + AT91_PDC_RNPR)
#define UART_PUT_RNPR(port,v) writel(v, (port)->membase + AT91_PDC_RNPR)
#define UART_PUT_RNCR(port,v) writel(v, (port)->membase + AT91_PDC_RNCR)
#define UART_PUT_RNCR(port,v) writel(v, (port)->membase + AT91_PDC_RNCR)
#define UART_PUT_TPR(port,v) writel(v, (port)->membase + AT91_PDC_TPR)
#define UART_PUT_TCR(port,v) writel(v, (port)->membase + AT91_PDC_TCR)
//#define UART_PUT_TNPR(port,v) writel(v, (port)->membase + AT91_PDC_TNPR)
//#define UART_PUT_TNCR(port,v) writel(v, (port)->membase + AT91_PDC_TNCR)
static
int
(
*
at91_open
)(
struct
uart_port
*
);
static
int
(
*
at91_open
)(
struct
uart_port
*
);
static
void
(
*
at91_close
)(
struct
uart_port
*
);
static
void
(
*
at91_close
)(
struct
uart_port
*
);
/*
* We wrap our port structure around the generic uart_port.
*/
struct
at91_uart_port
{
struct
uart_port
uart
;
/* uart */
struct
clk
*
clk
;
/* uart clock */
unsigned
short
suspended
;
/* is port suspended? */
};
static
struct
at91_uart_port
at91_ports
[
AT91_NR_UART
];
#ifdef SUPPORT_SYSRQ
#ifdef SUPPORT_SYSRQ
static
struct
console
at91_console
;
static
struct
console
at91_console
;
#endif
#endif
...
@@ -115,17 +132,20 @@ static u_int at91_tx_empty(struct uart_port *port)
...
@@ -115,17 +132,20 @@ static u_int at91_tx_empty(struct uart_port *port)
static
void
at91_set_mctrl
(
struct
uart_port
*
port
,
u_int
mctrl
)
static
void
at91_set_mctrl
(
struct
uart_port
*
port
,
u_int
mctrl
)
{
{
unsigned
int
control
=
0
;
unsigned
int
control
=
0
;
unsigned
int
mode
;
if
(
arch_identify
()
==
ARCH_ID_AT91RM9200
)
{
/*
/*
* Errata #39: RTS0 is not internally connected to PA21. We need to drive
* AT91RM9200 Errata #39: RTS0 is not internally connected to PA21.
*
the pin manually.
* We need to drive
the pin manually.
*/
*/
if
(
port
->
mapbase
==
AT91_VA
_BASE_US0
)
{
if
(
port
->
mapbase
==
AT91
_BASE_US0
)
{
if
(
mctrl
&
TIOCM_RTS
)
if
(
mctrl
&
TIOCM_RTS
)
at91_sys_write
(
AT91_PIOA
+
PIO_CODR
,
AT91_PA21_RTS0
);
at91_sys_write
(
AT91_PIOA
+
PIO_CODR
,
AT91_PA21_RTS0
);
else
else
at91_sys_write
(
AT91_PIOA
+
PIO_SODR
,
AT91_PA21_RTS0
);
at91_sys_write
(
AT91_PIOA
+
PIO_SODR
,
AT91_PA21_RTS0
);
}
}
}
if
(
mctrl
&
TIOCM_RTS
)
if
(
mctrl
&
TIOCM_RTS
)
control
|=
AT91_US_RTSEN
;
control
|=
AT91_US_RTSEN
;
...
@@ -137,7 +157,15 @@ static void at91_set_mctrl(struct uart_port *port, u_int mctrl)
...
@@ -137,7 +157,15 @@ static void at91_set_mctrl(struct uart_port *port, u_int mctrl)
else
else
control
|=
AT91_US_DTRDIS
;
control
|=
AT91_US_DTRDIS
;
UART_PUT_CR
(
port
,
control
);
UART_PUT_CR
(
port
,
control
);
/* Local loopback mode? */
mode
=
UART_GET_MR
(
port
)
&
~
AT91_US_CHMODE
;
if
(
mctrl
&
TIOCM_LOOP
)
mode
|=
AT91_US_CHMODE_LOC_LOOP
;
else
mode
|=
AT91_US_CHMODE_NORMAL
;
UART_PUT_MR
(
port
,
mode
);
}
}
/*
/*
...
@@ -169,8 +197,9 @@ static u_int at91_get_mctrl(struct uart_port *port)
...
@@ -169,8 +197,9 @@ static u_int at91_get_mctrl(struct uart_port *port)
*/
*/
static
void
at91_stop_tx
(
struct
uart_port
*
port
)
static
void
at91_stop_tx
(
struct
uart_port
*
port
)
{
{
struct
at91_uart_port
*
at91_port
=
(
struct
at91_uart_port
*
)
port
;
UART_PUT_IDR
(
port
,
AT91_US_TXRDY
);
UART_PUT_IDR
(
port
,
AT91_US_TXRDY
);
port
->
read_status_mask
&=
~
AT91_US_TXRDY
;
}
}
/*
/*
...
@@ -178,7 +207,8 @@ static void at91_stop_tx(struct uart_port *port)
...
@@ -178,7 +207,8 @@ static void at91_stop_tx(struct uart_port *port)
*/
*/
static
void
at91_start_tx
(
struct
uart_port
*
port
)
static
void
at91_start_tx
(
struct
uart_port
*
port
)
{
{
port
->
read_status_mask
|=
AT91_US_TXRDY
;
struct
at91_uart_port
*
at91_port
=
(
struct
at91_uart_port
*
)
port
;
UART_PUT_IER
(
port
,
AT91_US_TXRDY
);
UART_PUT_IER
(
port
,
AT91_US_TXRDY
);
}
}
...
@@ -187,6 +217,8 @@ static void at91_start_tx(struct uart_port *port)
...
@@ -187,6 +217,8 @@ static void at91_start_tx(struct uart_port *port)
*/
*/
static
void
at91_stop_rx
(
struct
uart_port
*
port
)
static
void
at91_stop_rx
(
struct
uart_port
*
port
)
{
{
struct
at91_uart_port
*
at91_port
=
(
struct
at91_uart_port
*
)
port
;
UART_PUT_IDR
(
port
,
AT91_US_RXRDY
);
UART_PUT_IDR
(
port
,
AT91_US_RXRDY
);
}
}
...
@@ -195,7 +227,6 @@ static void at91_stop_rx(struct uart_port *port)
...
@@ -195,7 +227,6 @@ static void at91_stop_rx(struct uart_port *port)
*/
*/
static
void
at91_enable_ms
(
struct
uart_port
*
port
)
static
void
at91_enable_ms
(
struct
uart_port
*
port
)
{
{
port
->
read_status_mask
|=
(
AT91_US_RIIC
|
AT91_US_DSRIC
|
AT91_US_DCDIC
|
AT91_US_CTSIC
);
UART_PUT_IER
(
port
,
AT91_US_RIIC
|
AT91_US_DSRIC
|
AT91_US_DCDIC
|
AT91_US_CTSIC
);
UART_PUT_IER
(
port
,
AT91_US_RIIC
|
AT91_US_DSRIC
|
AT91_US_DCDIC
|
AT91_US_CTSIC
);
}
}
...
@@ -218,8 +249,8 @@ static void at91_rx_chars(struct uart_port *port, struct pt_regs *regs)
...
@@ -218,8 +249,8 @@ static void at91_rx_chars(struct uart_port *port, struct pt_regs *regs)
struct
tty_struct
*
tty
=
port
->
info
->
tty
;
struct
tty_struct
*
tty
=
port
->
info
->
tty
;
unsigned
int
status
,
ch
,
flg
;
unsigned
int
status
,
ch
,
flg
;
status
=
UART_GET_CSR
(
port
)
&
port
->
read_status_mask
;
status
=
UART_GET_CSR
(
port
);
while
(
status
&
(
AT91_US_RXRDY
)
)
{
while
(
status
&
AT91_US_RXRDY
)
{
ch
=
UART_GET_CHAR
(
port
);
ch
=
UART_GET_CHAR
(
port
);
port
->
icount
.
rx
++
;
port
->
icount
.
rx
++
;
...
@@ -230,40 +261,38 @@ static void at91_rx_chars(struct uart_port *port, struct pt_regs *regs)
...
@@ -230,40 +261,38 @@ static void at91_rx_chars(struct uart_port *port, struct pt_regs *regs)
* note that the error handling code is
* note that the error handling code is
* out of the main execution path
* out of the main execution path
*/
*/
if
(
unlikely
(
status
&
(
AT91_US_PARE
|
AT91_US_FRAME
|
AT91_US_OVRE
)))
{
if
(
unlikely
(
status
&
(
AT91_US_PARE
|
AT91_US_FRAME
|
AT91_US_OVRE
|
AT91_US_RXBRK
)))
{
UART_PUT_CR
(
port
,
AT91_US_RSTSTA
);
/* clear error */
UART_PUT_CR
(
port
,
AT91_US_RSTSTA
);
/* clear error */
if
(
status
&
(
AT91_US_PARE
))
if
(
status
&
AT91_US_RXBRK
)
{
status
&=
~
(
AT91_US_PARE
|
AT91_US_FRAME
);
/* ignore side-effect */
port
->
icount
.
brk
++
;
if
(
uart_handle_break
(
port
))
goto
ignore_char
;
}
if
(
status
&
AT91_US_PARE
)
port
->
icount
.
parity
++
;
port
->
icount
.
parity
++
;
if
(
status
&
(
AT91_US_FRAME
)
)
if
(
status
&
AT91_US_FRAME
)
port
->
icount
.
frame
++
;
port
->
icount
.
frame
++
;
if
(
status
&
(
AT91_US_OVRE
)
)
if
(
status
&
AT91_US_OVRE
)
port
->
icount
.
overrun
++
;
port
->
icount
.
overrun
++
;
if
(
status
&
AT91_US_PARE
)
status
&=
port
->
read_status_mask
;
if
(
status
&
AT91_US_RXBRK
)
flg
=
TTY_BREAK
;
else
if
(
status
&
AT91_US_PARE
)
flg
=
TTY_PARITY
;
flg
=
TTY_PARITY
;
else
if
(
status
&
AT91_US_FRAME
)
else
if
(
status
&
AT91_US_FRAME
)
flg
=
TTY_FRAME
;
flg
=
TTY_FRAME
;
if
(
status
&
AT91_US_OVRE
)
{
/*
* overrun does *not* affect the character
* we read from the FIFO
*/
tty_insert_flip_char
(
tty
,
ch
,
flg
);
ch
=
0
;
flg
=
TTY_OVERRUN
;
}
#ifdef SUPPORT_SYSRQ
port
->
sysrq
=
0
;
#endif
}
}
if
(
uart_handle_sysrq_char
(
port
,
ch
,
regs
))
if
(
uart_handle_sysrq_char
(
port
,
ch
,
regs
))
goto
ignore_char
;
goto
ignore_char
;
tty_insert_flip_char
(
tty
,
ch
,
flg
);
uart_insert_char
(
port
,
status
,
AT91_US_OVRE
,
ch
,
flg
);
ignore_char:
ignore_char:
status
=
UART_GET_CSR
(
port
)
&
port
->
read_status_mask
;
status
=
UART_GET_CSR
(
port
);
}
}
tty_flip_buffer_push
(
tty
);
tty_flip_buffer_push
(
tty
);
...
@@ -308,22 +337,16 @@ static void at91_tx_chars(struct uart_port *port)
...
@@ -308,22 +337,16 @@ static void at91_tx_chars(struct uart_port *port)
static
irqreturn_t
at91_interrupt
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
at91_interrupt
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
{
struct
uart_port
*
port
=
dev_id
;
struct
uart_port
*
port
=
dev_id
;
struct
at91_uart_port
*
at91_port
=
(
struct
at91_uart_port
*
)
port
;
unsigned
int
status
,
pending
,
pass_counter
=
0
;
unsigned
int
status
,
pending
,
pass_counter
=
0
;
status
=
UART_GET_CSR
(
port
);
status
=
UART_GET_CSR
(
port
);
pending
=
status
&
port
->
read_status_mask
;
pending
=
status
&
UART_GET_IMR
(
port
)
;
if
(
pending
)
{
while
(
pending
)
{
do
{
/* Interrupt receive */
if
(
pending
&
AT91_US_RXRDY
)
if
(
pending
&
AT91_US_RXRDY
)
at91_rx_chars
(
port
,
regs
);
at91_rx_chars
(
port
,
regs
);
/* Clear the relevent break bits */
if
(
pending
&
AT91_US_RXBRK
)
{
UART_PUT_CR
(
port
,
AT91_US_RSTSTA
);
port
->
icount
.
brk
++
;
uart_handle_break
(
port
);
}
// TODO: All reads to CSR will clear these interrupts!
// TODO: All reads to CSR will clear these interrupts!
if
(
pending
&
AT91_US_RIIC
)
port
->
icount
.
rng
++
;
if
(
pending
&
AT91_US_RIIC
)
port
->
icount
.
rng
++
;
if
(
pending
&
AT91_US_DSRIC
)
port
->
icount
.
dsr
++
;
if
(
pending
&
AT91_US_DSRIC
)
port
->
icount
.
dsr
++
;
...
@@ -334,14 +357,15 @@ static irqreturn_t at91_interrupt(int irq, void *dev_id, struct pt_regs *regs)
...
@@ -334,14 +357,15 @@ static irqreturn_t at91_interrupt(int irq, void *dev_id, struct pt_regs *regs)
if
(
pending
&
(
AT91_US_RIIC
|
AT91_US_DSRIC
|
AT91_US_DCDIC
|
AT91_US_CTSIC
))
if
(
pending
&
(
AT91_US_RIIC
|
AT91_US_DSRIC
|
AT91_US_DCDIC
|
AT91_US_CTSIC
))
wake_up_interruptible
(
&
port
->
info
->
delta_msr_wait
);
wake_up_interruptible
(
&
port
->
info
->
delta_msr_wait
);
/* Interrupt transmit */
if
(
pending
&
AT91_US_TXRDY
)
if
(
pending
&
AT91_US_TXRDY
)
at91_tx_chars
(
port
);
at91_tx_chars
(
port
);
if
(
pass_counter
++
>
AT91_ISR_PASS_LIMIT
)
if
(
pass_counter
++
>
AT91_ISR_PASS_LIMIT
)
break
;
break
;
status
=
UART_GET_CSR
(
port
);
status
=
UART_GET_CSR
(
port
);
pending
=
status
&
port
->
read_status_mask
;
pending
=
status
&
UART_GET_IMR
(
port
);
}
while
(
pending
);
}
}
return
IRQ_HANDLED
;
return
IRQ_HANDLED
;
}
}
...
@@ -351,6 +375,7 @@ static irqreturn_t at91_interrupt(int irq, void *dev_id, struct pt_regs *regs)
...
@@ -351,6 +375,7 @@ static irqreturn_t at91_interrupt(int irq, void *dev_id, struct pt_regs *regs)
*/
*/
static
int
at91_startup
(
struct
uart_port
*
port
)
static
int
at91_startup
(
struct
uart_port
*
port
)
{
{
struct
at91_uart_port
*
at91_port
=
(
struct
at91_uart_port
*
)
port
;
int
retval
;
int
retval
;
/*
/*
...
@@ -381,14 +406,14 @@ static int at91_startup(struct uart_port *port)
...
@@ -381,14 +406,14 @@ static int at91_startup(struct uart_port *port)
}
}
}
}
port
->
read_status_mask
=
AT91_US_RXRDY
|
AT91_US_TXRDY
|
AT91_US_OVRE
|
AT91_US_FRAME
|
AT91_US_PARE
|
AT91_US_RXBRK
;
/*
/*
* Finally, enable the serial port
* Finally, enable the serial port
*/
*/
UART_PUT_CR
(
port
,
AT91_US_RSTSTA
|
AT91_US_RSTRX
);
UART_PUT_CR
(
port
,
AT91_US_RSTSTA
|
AT91_US_RSTRX
);
UART_PUT_CR
(
port
,
AT91_US_TXEN
|
AT91_US_RXEN
);
/* enable xmit & rcvr */
UART_PUT_CR
(
port
,
AT91_US_TXEN
|
AT91_US_RXEN
);
/* enable xmit & rcvr */
UART_PUT_IER
(
port
,
AT91_US_RXRDY
);
/* do receive only */
UART_PUT_IER
(
port
,
AT91_US_RXRDY
);
/* enable receive only */
return
0
;
return
0
;
}
}
...
@@ -397,6 +422,8 @@ static int at91_startup(struct uart_port *port)
...
@@ -397,6 +422,8 @@ static int at91_startup(struct uart_port *port)
*/
*/
static
void
at91_shutdown
(
struct
uart_port
*
port
)
static
void
at91_shutdown
(
struct
uart_port
*
port
)
{
{
struct
at91_uart_port
*
at91_port
=
(
struct
at91_uart_port
*
)
port
;
/*
/*
* Disable all interrupts, port and break condition.
* Disable all interrupts, port and break condition.
*/
*/
...
@@ -421,21 +448,22 @@ static void at91_shutdown(struct uart_port *port)
...
@@ -421,21 +448,22 @@ static void at91_shutdown(struct uart_port *port)
*/
*/
static
void
at91_serial_pm
(
struct
uart_port
*
port
,
unsigned
int
state
,
unsigned
int
oldstate
)
static
void
at91_serial_pm
(
struct
uart_port
*
port
,
unsigned
int
state
,
unsigned
int
oldstate
)
{
{
struct
at91_uart_port
*
at91_port
=
(
struct
at91_uart_port
*
)
port
;
switch
(
state
)
{
switch
(
state
)
{
case
0
:
case
0
:
/*
/*
* Enable the peripheral clock for this serial port.
* Enable the peripheral clock for this serial port.
* This is called on uart_open() or a resume event.
* This is called on uart_open() or a resume event.
*/
*/
at91_sys_write
(
AT91_PMC_PCER
,
1
<<
port
->
irq
);
clk_enable
(
at91_port
->
clk
);
break
;
break
;
case
3
:
case
3
:
/*
/*
* Disable the peripheral clock for this serial port.
* Disable the peripheral clock for this serial port.
* This is called on uart_close() or a suspend event.
* This is called on uart_close() or a suspend event.
*/
*/
if
(
port
->
irq
!=
AT91_ID_SYS
)
/* is this a shared clock? */
clk_disable
(
at91_port
->
clk
);
at91_sys_write
(
AT91_PMC_PCDR
,
1
<<
port
->
irq
);
break
;
break
;
default:
default:
printk
(
KERN_ERR
"at91_serial: unknown pm %d
\n
"
,
state
);
printk
(
KERN_ERR
"at91_serial: unknown pm %d
\n
"
,
state
);
...
@@ -494,9 +522,9 @@ static void at91_set_termios(struct uart_port *port, struct termios * termios, s
...
@@ -494,9 +522,9 @@ static void at91_set_termios(struct uart_port *port, struct termios * termios, s
spin_lock_irqsave
(
&
port
->
lock
,
flags
);
spin_lock_irqsave
(
&
port
->
lock
,
flags
);
port
->
read_status_mask
|
=
AT91_US_OVRE
;
port
->
read_status_mask
=
AT91_US_OVRE
;
if
(
termios
->
c_iflag
&
INPCK
)
if
(
termios
->
c_iflag
&
INPCK
)
port
->
read_status_mask
|=
AT91_US_FRAME
|
AT91_US_PARE
;
port
->
read_status_mask
|=
(
AT91_US_FRAME
|
AT91_US_PARE
)
;
if
(
termios
->
c_iflag
&
(
BRKINT
|
PARMRK
))
if
(
termios
->
c_iflag
&
(
BRKINT
|
PARMRK
))
port
->
read_status_mask
|=
AT91_US_RXBRK
;
port
->
read_status_mask
|=
AT91_US_RXBRK
;
...
@@ -552,7 +580,7 @@ static void at91_set_termios(struct uart_port *port, struct termios * termios, s
...
@@ -552,7 +580,7 @@ static void at91_set_termios(struct uart_port *port, struct termios * termios, s
*/
*/
static
const
char
*
at91_type
(
struct
uart_port
*
port
)
static
const
char
*
at91_type
(
struct
uart_port
*
port
)
{
{
return
(
port
->
type
==
PORT_AT91
RM9200
)
?
"AT91_SERIAL"
:
NULL
;
return
(
port
->
type
==
PORT_AT91
)
?
"AT91_SERIAL"
:
NULL
;
}
}
/*
/*
...
@@ -560,8 +588,15 @@ static const char *at91_type(struct uart_port *port)
...
@@ -560,8 +588,15 @@ static const char *at91_type(struct uart_port *port)
*/
*/
static
void
at91_release_port
(
struct
uart_port
*
port
)
static
void
at91_release_port
(
struct
uart_port
*
port
)
{
{
release_mem_region
(
port
->
mapbase
,
struct
platform_device
*
pdev
=
to_platform_device
(
port
->
dev
);
(
port
->
mapbase
==
AT91_VA_BASE_DBGU
)
?
512
:
SZ_16K
);
int
size
=
pdev
->
resource
[
0
].
end
-
pdev
->
resource
[
0
].
start
+
1
;
release_mem_region
(
port
->
mapbase
,
size
);
if
(
port
->
flags
&
UPF_IOREMAP
)
{
iounmap
(
port
->
membase
);
port
->
membase
=
NULL
;
}
}
}
/*
/*
...
@@ -569,10 +604,21 @@ static void at91_release_port(struct uart_port *port)
...
@@ -569,10 +604,21 @@ static void at91_release_port(struct uart_port *port)
*/
*/
static
int
at91_request_port
(
struct
uart_port
*
port
)
static
int
at91_request_port
(
struct
uart_port
*
port
)
{
{
return
request_mem_region
(
port
->
mapbase
,
struct
platform_device
*
pdev
=
to_platform_device
(
port
->
dev
);
(
port
->
mapbase
==
AT91_VA_BASE_DBGU
)
?
512
:
SZ_16K
,
int
size
=
pdev
->
resource
[
0
].
end
-
pdev
->
resource
[
0
].
start
+
1
;
"at91_serial"
)
!=
NULL
?
0
:
-
EBUSY
;
if
(
!
request_mem_region
(
port
->
mapbase
,
size
,
"at91_serial"
))
return
-
EBUSY
;
if
(
port
->
flags
&
UPF_IOREMAP
)
{
port
->
membase
=
ioremap
(
port
->
mapbase
,
size
);
if
(
port
->
membase
==
NULL
)
{
release_mem_region
(
port
->
mapbase
,
size
);
return
-
ENOMEM
;
}
}
return
0
;
}
}
/*
/*
...
@@ -581,7 +627,7 @@ static int at91_request_port(struct uart_port *port)
...
@@ -581,7 +627,7 @@ static int at91_request_port(struct uart_port *port)
static
void
at91_config_port
(
struct
uart_port
*
port
,
int
flags
)
static
void
at91_config_port
(
struct
uart_port
*
port
,
int
flags
)
{
{
if
(
flags
&
UART_CONFIG_TYPE
)
{
if
(
flags
&
UART_CONFIG_TYPE
)
{
port
->
type
=
PORT_AT91
RM9200
;
port
->
type
=
PORT_AT91
;
at91_request_port
(
port
);
at91_request_port
(
port
);
}
}
}
}
...
@@ -592,7 +638,7 @@ static void at91_config_port(struct uart_port *port, int flags)
...
@@ -592,7 +638,7 @@ static void at91_config_port(struct uart_port *port, int flags)
static
int
at91_verify_port
(
struct
uart_port
*
port
,
struct
serial_struct
*
ser
)
static
int
at91_verify_port
(
struct
uart_port
*
port
,
struct
serial_struct
*
ser
)
{
{
int
ret
=
0
;
int
ret
=
0
;
if
(
ser
->
type
!=
PORT_UNKNOWN
&&
ser
->
type
!=
PORT_AT91
RM9200
)
if
(
ser
->
type
!=
PORT_UNKNOWN
&&
ser
->
type
!=
PORT_AT91
)
ret
=
-
EINVAL
;
ret
=
-
EINVAL
;
if
(
port
->
irq
!=
ser
->
irq
)
if
(
port
->
irq
!=
ser
->
irq
)
ret
=
-
EINVAL
;
ret
=
-
EINVAL
;
...
@@ -629,28 +675,42 @@ static struct uart_ops at91_pops = {
...
@@ -629,28 +675,42 @@ static struct uart_ops at91_pops = {
.
pm
=
at91_serial_pm
,
.
pm
=
at91_serial_pm
,
};
};
static
struct
uart_port
at91_ports
[
AT91_NR_UART
];
/*
* Configure the port from the platform device resource info.
void
__init
at91_init_ports
(
void
)
*/
static
void
__devinit
at91_init_port
(
struct
at91_uart_port
*
at91_port
,
struct
platform_device
*
pdev
)
{
{
static
int
first
=
1
;
struct
uart_port
*
port
=
&
at91_port
->
uart
;
int
i
;
struct
at91_uart_data
*
data
=
pdev
->
dev
.
platform_data
;
port
->
iotype
=
UPIO_MEM
;
port
->
flags
=
UPF_BOOT_AUTOCONF
;
port
->
ops
=
&
at91_pops
;
port
->
fifosize
=
1
;
port
->
line
=
pdev
->
id
;
port
->
dev
=
&
pdev
->
dev
;
port
->
mapbase
=
pdev
->
resource
[
0
].
start
;
port
->
irq
=
pdev
->
resource
[
1
].
start
;
if
(
port
->
mapbase
==
AT91_VA_BASE_SYS
+
AT91_DBGU
)
/* Part of system perpherals - already mapped */
port
->
membase
=
(
void
__iomem
*
)
port
->
mapbase
;
else
{
port
->
flags
|=
UPF_IOREMAP
;
port
->
membase
=
NULL
;
}
if
(
!
first
)
if
(
!
at91_port
->
clk
)
{
/* for console, the clock could already be configured */
return
;
at91_port
->
clk
=
clk_get
(
&
pdev
->
dev
,
"usart"
);
first
=
0
;
clk_enable
(
at91_port
->
clk
);
port
->
uartclk
=
clk_get_rate
(
at91_port
->
clk
);
for
(
i
=
0
;
i
<
AT91_NR_UART
;
i
++
)
{
at91_ports
[
i
].
iotype
=
UPIO_MEM
;
at91_ports
[
i
].
flags
=
UPF_BOOT_AUTOCONF
;
at91_ports
[
i
].
uartclk
=
at91_master_clock
;
at91_ports
[
i
].
ops
=
&
at91_pops
;
at91_ports
[
i
].
fifosize
=
1
;
at91_ports
[
i
].
line
=
i
;
}
}
}
}
void
__init
at91_register_uart_fns
(
struct
at91rm9200_port_fns
*
fns
)
/*
* Register board-specific modem-control line handlers.
*/
void
__init
at91_register_uart_fns
(
struct
at91_port_fns
*
fns
)
{
{
if
(
fns
->
enable_ms
)
if
(
fns
->
enable_ms
)
at91_pops
.
enable_ms
=
fns
->
enable_ms
;
at91_pops
.
enable_ms
=
fns
->
enable_ms
;
...
@@ -664,51 +724,6 @@ void __init at91_register_uart_fns(struct at91rm9200_port_fns *fns)
...
@@ -664,51 +724,6 @@ void __init at91_register_uart_fns(struct at91rm9200_port_fns *fns)
at91_pops
.
set_wake
=
fns
->
set_wake
;
at91_pops
.
set_wake
=
fns
->
set_wake
;
}
}
/*
* Setup ports.
*/
void
__init
at91_register_uart
(
int
idx
,
int
port
)
{
if
((
idx
<
0
)
||
(
idx
>=
AT91_NR_UART
))
{
printk
(
KERN_ERR
"%s: bad index number %d
\n
"
,
__FUNCTION__
,
idx
);
return
;
}
switch
(
port
)
{
case
0
:
at91_ports
[
idx
].
membase
=
(
void
__iomem
*
)
AT91_VA_BASE_US0
;
at91_ports
[
idx
].
mapbase
=
AT91_VA_BASE_US0
;
at91_ports
[
idx
].
irq
=
AT91_ID_US0
;
AT91_CfgPIO_USART0
();
break
;
case
1
:
at91_ports
[
idx
].
membase
=
(
void
__iomem
*
)
AT91_VA_BASE_US1
;
at91_ports
[
idx
].
mapbase
=
AT91_VA_BASE_US1
;
at91_ports
[
idx
].
irq
=
AT91_ID_US1
;
AT91_CfgPIO_USART1
();
break
;
case
2
:
at91_ports
[
idx
].
membase
=
(
void
__iomem
*
)
AT91_VA_BASE_US2
;
at91_ports
[
idx
].
mapbase
=
AT91_VA_BASE_US2
;
at91_ports
[
idx
].
irq
=
AT91_ID_US2
;
AT91_CfgPIO_USART2
();
break
;
case
3
:
at91_ports
[
idx
].
membase
=
(
void
__iomem
*
)
AT91_VA_BASE_US3
;
at91_ports
[
idx
].
mapbase
=
AT91_VA_BASE_US3
;
at91_ports
[
idx
].
irq
=
AT91_ID_US3
;
AT91_CfgPIO_USART3
();
break
;
case
4
:
at91_ports
[
idx
].
membase
=
(
void
__iomem
*
)
AT91_VA_BASE_DBGU
;
at91_ports
[
idx
].
mapbase
=
AT91_VA_BASE_DBGU
;
at91_ports
[
idx
].
irq
=
AT91_ID_SYS
;
AT91_CfgPIO_DBGU
();
break
;
default:
printk
(
KERN_ERR
"%s : bad port number %d
\n
"
,
__FUNCTION__
,
port
);
}
}
#ifdef CONFIG_SERIAL_AT91_CONSOLE
#ifdef CONFIG_SERIAL_AT91_CONSOLE
static
void
at91_console_putchar
(
struct
uart_port
*
port
,
int
ch
)
static
void
at91_console_putchar
(
struct
uart_port
*
port
,
int
ch
)
...
@@ -723,7 +738,7 @@ static void at91_console_putchar(struct uart_port *port, int ch)
...
@@ -723,7 +738,7 @@ static void at91_console_putchar(struct uart_port *port, int ch)
*/
*/
static
void
at91_console_write
(
struct
console
*
co
,
const
char
*
s
,
u_int
count
)
static
void
at91_console_write
(
struct
console
*
co
,
const
char
*
s
,
u_int
count
)
{
{
struct
uart_port
*
port
=
at91_ports
+
co
->
index
;
struct
uart_port
*
port
=
&
at91_ports
[
co
->
index
].
uart
;
unsigned
int
status
,
imr
;
unsigned
int
status
,
imr
;
/*
/*
...
@@ -778,23 +793,15 @@ static void __init at91_console_get_options(struct uart_port *port, int *baud, i
...
@@ -778,23 +793,15 @@ static void __init at91_console_get_options(struct uart_port *port, int *baud, i
static
int
__init
at91_console_setup
(
struct
console
*
co
,
char
*
options
)
static
int
__init
at91_console_setup
(
struct
console
*
co
,
char
*
options
)
{
{
struct
uart_port
*
port
;
struct
uart_port
*
port
=
&
at91_ports
[
co
->
index
].
uart
;
int
baud
=
115200
;
int
baud
=
115200
;
int
bits
=
8
;
int
bits
=
8
;
int
parity
=
'n'
;
int
parity
=
'n'
;
int
flow
=
'n'
;
int
flow
=
'n'
;
/*
if
(
port
->
membase
==
0
)
/* Port not initialized yet - delay setup */
* Check whether an invalid uart number has been specified, and
return
-
ENODEV
;
* if so, search for the first available port that does have
* console support.
*/
port
=
uart_get_console
(
at91_ports
,
AT91_NR_UART
,
co
);
/*
* Enable the serial console, in-case bootloader did not do it.
*/
at91_sys_write
(
AT91_PMC_PCER
,
1
<<
port
->
irq
);
/* enable clock */
UART_PUT_IDR
(
port
,
-
1
);
/* disable interrupts */
UART_PUT_IDR
(
port
,
-
1
);
/* disable interrupts */
UART_PUT_CR
(
port
,
AT91_US_RSTSTA
|
AT91_US_RSTRX
);
UART_PUT_CR
(
port
,
AT91_US_RSTSTA
|
AT91_US_RSTRX
);
UART_PUT_CR
(
port
,
AT91_US_TXEN
|
AT91_US_RXEN
);
UART_PUT_CR
(
port
,
AT91_US_TXEN
|
AT91_US_RXEN
);
...
@@ -821,23 +828,40 @@ static struct console at91_console = {
...
@@ -821,23 +828,40 @@ static struct console at91_console = {
#define AT91_CONSOLE_DEVICE &at91_console
#define AT91_CONSOLE_DEVICE &at91_console
/*
* Early console initialization (before VM subsystem initialized).
*/
static
int
__init
at91_console_init
(
void
)
static
int
__init
at91_console_init
(
void
)
{
{
at91_init_ports
();
if
(
at91_default_console_device
)
{
add_preferred_console
(
AT91_DEVICENAME
,
at91_default_console_device
->
id
,
NULL
);
at91_console
.
index
=
at91_console_port
;
at91_init_port
(
&
(
at91_ports
[
at91_default_console_device
->
id
]),
at91_default_console_device
)
;
register_console
(
&
at91_console
);
register_console
(
&
at91_console
);
}
return
0
;
return
0
;
}
}
console_initcall
(
at91_console_init
);
console_initcall
(
at91_console_init
);
/*
* Late console initialization.
*/
static
int
__init
at91_late_console_init
(
void
)
{
if
(
at91_default_console_device
&&
!
(
at91_console
.
flags
&
CON_ENABLED
))
register_console
(
&
at91_console
);
return
0
;
}
core_initcall
(
at91_late_console_init
);
#else
#else
#define AT91_CONSOLE_DEVICE NULL
#define AT91_CONSOLE_DEVICE NULL
#endif
#endif
static
struct
uart_driver
at91_uart
=
{
static
struct
uart_driver
at91_uart
=
{
.
owner
=
THIS_MODULE
,
.
owner
=
THIS_MODULE
,
.
driver_name
=
AT91_DEVICENAME
,
.
driver_name
=
"at91_serial"
,
.
dev_name
=
AT91_DEVICENAME
,
.
dev_name
=
AT91_DEVICENAME
,
.
devfs_name
=
AT91_DEVICENAME
,
.
devfs_name
=
AT91_DEVICENAME
,
.
major
=
SERIAL_AT91_MAJOR
,
.
major
=
SERIAL_AT91_MAJOR
,
...
@@ -846,33 +870,106 @@ static struct uart_driver at91_uart = {
...
@@ -846,33 +870,106 @@ static struct uart_driver at91_uart = {
.
cons
=
AT91_CONSOLE_DEVICE
,
.
cons
=
AT91_CONSOLE_DEVICE
,
};
};
static
int
__init
at91_serial_init
(
void
)
#ifdef CONFIG_PM
static
int
at91_serial_suspend
(
struct
platform_device
*
pdev
,
pm_message_t
state
)
{
{
int
ret
,
i
;
struct
uart_port
*
port
=
platform_get_drvdata
(
pdev
);
struct
at91_uart_port
*
at91_port
=
(
struct
at91_uart_port
*
)
port
;
if
(
device_may_wakeup
(
&
pdev
->
dev
)
&&
!
at91_suspend_entering_slow_clock
())
enable_irq_wake
(
port
->
irq
);
else
{
disable_irq_wake
(
port
->
irq
);
uart_suspend_port
(
&
at91_uart
,
port
);
at91_port
->
suspended
=
1
;
}
at91_init_ports
();
return
0
;
}
ret
=
uart_register_driver
(
&
at91_uart
);
static
int
at91_serial_resume
(
struct
platform_device
*
pdev
)
if
(
ret
)
{
return
ret
;
struct
uart_port
*
port
=
platform_get_drvdata
(
pdev
);
struct
at91_uart_port
*
at91_port
=
(
struct
at91_uart_port
*
)
port
;
for
(
i
=
0
;
i
<
AT91_NR_UART
;
i
++
)
{
if
(
at91_port
->
suspended
)
{
if
(
at91_serial_map
[
i
]
>=
0
)
uart_resume_port
(
&
at91_uart
,
port
);
uart_add_one_port
(
&
at91_uart
,
&
at91_ports
[
i
])
;
at91_port
->
suspended
=
0
;
}
}
return
0
;
return
0
;
}
}
#else
#define at91_serial_suspend NULL
#define at91_serial_resume NULL
#endif
static
void
__exit
at91_serial_exit
(
void
)
static
int
__devinit
at91_serial_probe
(
struct
platform_device
*
pdev
)
{
{
int
i
;
struct
at91_uart_port
*
port
;
int
ret
;
for
(
i
=
0
;
i
<
AT91_NR_UART
;
i
++
)
{
port
=
&
at91_ports
[
pdev
->
id
];
if
(
at91_serial_map
[
i
]
>=
0
)
at91_init_port
(
port
,
pdev
);
uart_remove_one_port
(
&
at91_uart
,
&
at91_ports
[
i
]);
ret
=
uart_add_one_port
(
&
at91_uart
,
&
port
->
uart
);
if
(
!
ret
)
{
device_init_wakeup
(
&
pdev
->
dev
,
1
);
platform_set_drvdata
(
pdev
,
port
);
}
return
ret
;
}
static
int
__devexit
at91_serial_remove
(
struct
platform_device
*
pdev
)
{
struct
uart_port
*
port
=
platform_get_drvdata
(
pdev
);
struct
at91_uart_port
*
at91_port
=
(
struct
at91_uart_port
*
)
port
;
int
ret
=
0
;
clk_disable
(
at91_port
->
clk
);
clk_put
(
at91_port
->
clk
);
device_init_wakeup
(
&
pdev
->
dev
,
0
);
platform_set_drvdata
(
pdev
,
NULL
);
if
(
port
)
{
ret
=
uart_remove_one_port
(
&
at91_uart
,
port
);
kfree
(
port
);
}
}
return
ret
;
}
static
struct
platform_driver
at91_serial_driver
=
{
.
probe
=
at91_serial_probe
,
.
remove
=
__devexit_p
(
at91_serial_remove
),
.
suspend
=
at91_serial_suspend
,
.
resume
=
at91_serial_resume
,
.
driver
=
{
.
name
=
"at91_usart"
,
.
owner
=
THIS_MODULE
,
},
};
static
int
__init
at91_serial_init
(
void
)
{
int
ret
;
ret
=
uart_register_driver
(
&
at91_uart
);
if
(
ret
)
return
ret
;
ret
=
platform_driver_register
(
&
at91_serial_driver
);
if
(
ret
)
uart_unregister_driver
(
&
at91_uart
);
return
ret
;
}
static
void
__exit
at91_serial_exit
(
void
)
{
platform_driver_unregister
(
&
at91_serial_driver
);
uart_unregister_driver
(
&
at91_uart
);
uart_unregister_driver
(
&
at91_uart
);
}
}
...
...
include/asm-arm/arch-at91rm9200/at91rm9200_spi.h
0 → 100644
View file @
695a9d23
/*
* include/asm-arm/arch-at91rm9200/at91rm9200_spi.h
*
* Copyright (C) 2005 Ivan Kokshaysky
* Copyright (C) SAN People
*
* Serial Peripheral Interface (SPI) registers.
* Based on AT91RM9200 datasheet revision E.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*/
#ifndef AT91RM9200_SPI_H
#define AT91RM9200_SPI_H
#define AT91_SPI_CR 0x00
/* Control Register */
#define AT91_SPI_SPIEN (1 << 0)
/* SPI Enable */
#define AT91_SPI_SPIDIS (1 << 1)
/* SPI Disable */
#define AT91_SPI_SWRST (1 << 7)
/* SPI Software Reset */
#define AT91_SPI_LASTXFER (1 << 24)
/* Last Transfer [SAM9261 only] */
#define AT91_SPI_MR 0x04
/* Mode Register */
#define AT91_SPI_MSTR (1 << 0)
/* Master/Slave Mode */
#define AT91_SPI_PS (1 << 1)
/* Peripheral Select */
#define AT91_SPI_PS_FIXED (0 << 1)
#define AT91_SPI_PS_VARIABLE (1 << 1)
#define AT91_SPI_PCSDEC (1 << 2)
/* Chip Select Decode */
#define AT91_SPI_DIV32 (1 << 3)
/* Clock Selection */
#define AT91_SPI_MODFDIS (1 << 4)
/* Mode Fault Detection */
#define AT91_SPI_LLB (1 << 7)
/* Local Loopback Enable */
#define AT91_SPI_PCS (0xf << 16)
/* Peripheral Chip Select */
#define AT91_SPI_DLYBCS (0xff << 24)
/* Delay Between Chip Selects */
#define AT91_SPI_RDR 0x08
/* Receive Data Register */
#define AT91_SPI_RD (0xffff << 0)
/* Receive Data */
#define AT91_SPI_PCS (0xf << 16)
/* Peripheral Chip Select */
#define AT91_SPI_TDR 0x0c
/* Transmit Data Register */
#define AT91_SPI_TD (0xffff << 0)
/* Transmit Data */
#define AT91_SPI_PCS (0xf << 16)
/* Peripheral Chip Select */
#define AT91_SPI_LASTXFER (1 << 24)
/* Last Transfer [SAM9261 only] */
#define AT91_SPI_SR 0x10
/* Status Register */
#define AT91_SPI_RDRF (1 << 0)
/* Receive Data Register Full */
#define AT91_SPI_TDRE (1 << 1)
/* Transmit Data Register Full */
#define AT91_SPI_MODF (1 << 2)
/* Mode Fault Error */
#define AT91_SPI_OVRES (1 << 3)
/* Overrun Error Status */
#define AT91_SPI_ENDRX (1 << 4)
/* End of RX buffer */
#define AT91_SPI_ENDTX (1 << 5)
/* End of TX buffer */
#define AT91_SPI_RXBUFF (1 << 6)
/* RX Buffer Full */
#define AT91_SPI_TXBUFE (1 << 7)
/* TX Buffer Empty */
#define AT91_SPI_NSSR (1 << 8)
/* NSS Rising [SAM9261 only] */
#define AT91_SPI_TXEMPTY (1 << 9)
/* Transmission Register Empty [SAM9261 only] */
#define AT91_SPI_SPIENS (1 << 16)
/* SPI Enable Status */
#define AT91_SPI_IER 0x14
/* Interrupt Enable Register */
#define AT91_SPI_IDR 0x18
/* Interrupt Disable Register */
#define AT91_SPI_IMR 0x1c
/* Interrupt Mask Register */
#define AT91_SPI_CSR(n) (0x30 + ((n) * 4))
/* Chip Select Registers 0-3 */
#define AT91_SPI_CPOL (1 << 0)
/* Clock Polarity */
#define AT91_SPI_NCPHA (1 << 1)
/* Clock Phase */
#define AT91_SPI_CSAAT (1 << 3)
/* Chip Select Active After Transfer [SAM9261 only] */
#define AT91_SPI_BITS (0xf << 4)
/* Bits Per Transfer */
#define AT91_SPI_BITS_8 (0 << 4)
#define AT91_SPI_BITS_9 (1 << 4)
#define AT91_SPI_BITS_10 (2 << 4)
#define AT91_SPI_BITS_11 (3 << 4)
#define AT91_SPI_BITS_12 (4 << 4)
#define AT91_SPI_BITS_13 (5 << 4)
#define AT91_SPI_BITS_14 (6 << 4)
#define AT91_SPI_BITS_15 (7 << 4)
#define AT91_SPI_BITS_16 (8 << 4)
#define AT91_SPI_SCBR (0xff << 8)
/* Serial Clock Baud Rate */
#define AT91_SPI_DLYBS (0xff << 16)
/* Delay before SPCK */
#define AT91_SPI_DLYBCT (0xff << 24)
/* Delay between Consecutive Transfers */
#endif
include/asm-arm/arch-at91rm9200/at91rm9200_ssc.h
0 → 100644
View file @
695a9d23
/*
* include/asm-arm/arch-at91rm9200/at91rm9200_ssc.h
*
* Copyright (C) SAN People
*
* Serial Synchronous Controller (SSC) registers.
* Based on AT91RM9200 datasheet revision E.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*/
#ifndef AT91RM9200_SSC_H
#define AT91RM9200_SSC_H
#define AT91_SSC_CR 0x00
/* Control Register */
#define AT91_SSC_RXEN (1 << 0)
/* Receive Enable */
#define AT91_SSC_RXDIS (1 << 1)
/* Receive Disable */
#define AT91_SSC_TXEN (1 << 8)
/* Transmit Enable */
#define AT91_SSC_TXDIS (1 << 9)
/* Transmit Disable */
#define AT91_SSC_SWRST (1 << 15)
/* Software Reset */
#define AT91_SSC_CMR 0x04
/* Clock Mode Register */
#define AT91_SSC_CMR_DIV (0xfff << 0)
/* Clock Divider */
#define AT91_SSC_RCMR 0x10
/* Receive Clock Mode Register */
#define AT91_SSC_CKS (3 << 0)
/* Clock Selection */
#define AT91_SSC_CKS_DIV (0 << 0)
#define AT91_SSC_CKS_CLOCK (1 << 0)
#define AT91_SSC_CKS_PIN (2 << 0)
#define AT91_SSC_CKO (7 << 2)
/* Clock Output Mode Selection */
#define AT91_SSC_CKO_NONE (0 << 2)
#define AT91_SSC_CKO_CONTINUOUS (1 << 2)
#define AT91_SSC_CKI (1 << 5)
/* Clock Inversion */
#define AT91_SSC_CKI_FALLING (0 << 5)
#define AT91_SSC_CK_RISING (1 << 5)
#define AT91_SSC_START (0xf << 8)
/* Start Selection */
#define AT91_SSC_START_CONTINUOUS (0 << 8)
#define AT91_SSC_START_TX_RX (1 << 8)
#define AT91_SSC_START_LOW_RF (2 << 8)
#define AT91_SSC_START_HIGH_RF (3 << 8)
#define AT91_SSC_START_FALLING_RF (4 << 8)
#define AT91_SSC_START_RISING_RF (5 << 8)
#define AT91_SSC_START_LEVEL_RF (6 << 8)
#define AT91_SSC_START_EDGE_RF (7 << 8)
#define AT91_SSC_STTDLY (0xff << 16)
/* Start Delay */
#define AT91_SSC_PERIOD (0xff << 24)
/* Period Divider Selection */
#define AT91_SSC_RFMR 0x14
/* Receive Frame Mode Register */
#define AT91_SSC_DATALEN (0x1f << 0)
/* Data Length */
#define AT91_SSC_LOOP (1 << 5)
/* Loop Mode */
#define AT91_SSC_MSBF (1 << 7)
/* Most Significant Bit First */
#define AT91_SSC_DATNB (0xf << 8)
/* Data Number per Frame */
#define AT91_SSC_FSLEN (0xf << 16)
/* Frame Sync Length */
#define AT91_SSC_FSOS (7 << 20)
/* Frame Sync Output Selection */
#define AT91_SSC_FSOS_NONE (0 << 20)
#define AT91_SSC_FSOS_NEGATIVE (1 << 20)
#define AT91_SSC_FSOS_POSITIVE (2 << 20)
#define AT91_SSC_FSOS_LOW (3 << 20)
#define AT91_SSC_FSOS_HIGH (4 << 20)
#define AT91_SSC_FSOS_TOGGLE (5 << 20)
#define AT91_SSC_FSEDGE (1 << 24)
/* Frame Sync Edge Detection */
#define AT91_SSC_FSEDGE_POSITIVE (0 << 24)
#define AT91_SSC_FSEDGE_NEGATIVE (1 << 24)
#define AT91_SSC_TCMR 0x18
/* Transmit Clock Mode Register */
#define AT91_SSC_TFMR 0x1c
/* Transmit Fram Mode Register */
#define AT91_SSC_DATDEF (1 << 5)
/* Data Default Value */
#define AT91_SSC_FSDEN (1 << 23)
/* Frame Sync Data Enable */
#define AT91_SSC_RHR 0x20
/* Receive Holding Register */
#define AT91_SSC_THR 0x24
/* Transmit Holding Register */
#define AT91_SSC_RSHR 0x30
/* Receive Sync Holding Register */
#define AT91_SSC_TSHR 0x34
/* Transmit Sync Holding Register */
#define AT91_SSC_SR 0x40
/* Status Register */
#define AT91_SSC_TXRDY (1 << 0)
/* Transmit Ready */
#define AT91_SSC_TXEMPTY (1 << 1)
/* Transmit Empty */
#define AT91_SSC_ENDTX (1 << 2)
/* End of Transmission */
#define AT91_SSC_TXBUFE (1 << 3)
/* Transmit Buffer Empty */
#define AT91_SSC_RXRDY (1 << 4)
/* Receive Ready */
#define AT91_SSC_OVRUN (1 << 5)
/* Receive Overrun */
#define AT91_SSC_ENDRX (1 << 6)
/* End of Reception */
#define AT91_SSC_RXBUFF (1 << 7)
/* Receive Buffer Full */
#define AT91_SSC_TXSYN (1 << 10)
/* Transmit Sync */
#define AT91_SSC_RXSYN (1 << 11)
/* Receive Sync */
#define AT91_SSC_TXENA (1 << 16)
/* Transmit Enable */
#define AT91_SSC_RXENA (1 << 17)
/* Receive Enable */
#define AT91_SSC_IER 0x44
/* Interrupt Enable Register */
#define AT91_SSC_IDR 0x48
/* Interrupt Disable Register */
#define AT91_SSC_IMR 0x4c
/* Interrupt Mask Register */
#endif
include/asm-arm/arch-at91rm9200/at91rm9200_sys.h
View file @
695a9d23
...
@@ -68,8 +68,17 @@
...
@@ -68,8 +68,17 @@
#define AT91_DBGU_RHR (AT91_DBGU + 0x18)
/* Receiver Holding Register */
#define AT91_DBGU_RHR (AT91_DBGU + 0x18)
/* Receiver Holding Register */
#define AT91_DBGU_THR (AT91_DBGU + 0x1c)
/* Transmitter Holding Register */
#define AT91_DBGU_THR (AT91_DBGU + 0x1c)
/* Transmitter Holding Register */
#define AT91_DBGU_BRGR (AT91_DBGU + 0x20)
/* Baud Rate Generator Register */
#define AT91_DBGU_BRGR (AT91_DBGU + 0x20)
/* Baud Rate Generator Register */
#define AT91_DBGU_CIDR (AT91_DBGU + 0x40)
/* Chip ID Register */
#define AT91_DBGU_CIDR (AT91_DBGU + 0x40)
/* Chip ID Register */
#define AT91_DBGU_EXID (AT91_DBGU + 0x44)
/* Chip ID Extension Register */
#define AT91_DBGU_EXID (AT91_DBGU + 0x44)
/* Chip ID Extension Register */
#define AT91_CIDR_VERSION (0x1f << 0)
/* Version of the Device */
#define AT91_CIDR_EPROC (7 << 5)
/* Embedded Processor */
#define AT91_CIDR_NVPSIZ (0xf << 8)
/* Nonvolatile Program Memory Size */
#define AT91_CIDR_NVPSIZ2 (0xf << 12)
/* Second Nonvolatile Program Memory Size */
#define AT91_CIDR_SRAMSIZ (0xf << 16)
/* Internal SRAM Size */
#define AT91_CIDR_ARCH (0xff << 20)
/* Architecture Identifier */
#define AT91_CIDR_NVPTYP (7 << 28)
/* Nonvolatile Program Memory Type */
#define AT91_CIDR_EXT (1 << 31)
/* Extension Flag */
/*
/*
...
@@ -241,7 +250,7 @@
...
@@ -241,7 +250,7 @@
#define AT91_RTC_SEC (0x7f << 0)
/* Current Second */
#define AT91_RTC_SEC (0x7f << 0)
/* Current Second */
#define AT91_RTC_MIN (0x7f << 8)
/* Current Minute */
#define AT91_RTC_MIN (0x7f << 8)
/* Current Minute */
#define AT91_RTC_HOUR (0x3f << 16)
/* Current Hour */
#define AT91_RTC_HOUR (0x3f << 16)
/* Current Hour */
#define A
t
91_RTC_AMPM (1 << 22)
/* Ante Meridiem Post Meridiem Indicator */
#define A
T
91_RTC_AMPM (1 << 22)
/* Ante Meridiem Post Meridiem Indicator */
#define AT91_RTC_CALR (AT91_RTC + 0x0c)
/* Calendar Register */
#define AT91_RTC_CALR (AT91_RTC + 0x0c)
/* Calendar Register */
#define AT91_RTC_CENT (0x7f << 0)
/* Current Century */
#define AT91_RTC_CENT (0x7f << 0)
/* Current Century */
...
...
include/asm-arm/arch-at91rm9200/at91rm9200_tc.h
0 → 100644
View file @
695a9d23
/*
* include/asm-arm/arch-at91rm9200/at91rm9200_tc.h
*
* Copyright (C) SAN People
*
* Timer/Counter Unit (TC) registers.
* Based on AT91RM9200 datasheet revision E.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*/
#ifndef AT91RM9200_TC_H
#define AT91RM9200_TC_H
#define AT91_TC_BCR 0xc0
/* TC Block Control Register */
#define AT91_TC_SYNC (1 << 0)
/* Synchro Command */
#define AT91_TC_BMR 0xc4
/* TC Block Mode Register */
#define AT91_TC_TC0XC0S (3 << 0)
/* External Clock Signal 0 Selection */
#define AT91_TC_TC0XC0S_TCLK0 (0 << 0)
#define AT91_TC_TC0XC0S_NONE (1 << 0)
#define AT91_TC_TC0XC0S_TIOA1 (2 << 0)
#define AT91_TC_TC0XC0S_TIOA2 (3 << 0)
#define AT91_TC_TC1XC1S (3 << 2)
/* External Clock Signal 1 Selection */
#define AT91_TC_TC1XC1S_TCLK1 (0 << 2)
#define AT91_TC_TC1XC1S_NONE (1 << 2)
#define AT91_TC_TC1XC1S_TIOA0 (2 << 2)
#define AT91_TC_TC1XC1S_TIOA2 (3 << 2)
#define AT91_TC_TC2XC2S (3 << 4)
/* External Clock Signal 2 Selection */
#define AT91_TC_TC2XC2S_TCLK2 (0 << 4)
#define AT91_TC_TC2XC2S_NONE (1 << 4)
#define AT91_TC_TC2XC2S_TIOA0 (2 << 4)
#define AT91_TC_TC2XC2S_TIOA1 (3 << 4)
#define AT91_TC_CCR 0x00
/* Channel Control Register */
#define AT91_TC_CLKEN (1 << 0)
/* Counter Clock Enable Command */
#define AT91_TC_CLKDIS (1 << 1)
/* Counter CLock Disable Command */
#define AT91_TC_SWTRG (1 << 2)
/* Software Trigger Command */
#define AT91_TC_CMR 0x04
/* Channel Mode Register */
#define AT91_TC_TCCLKS (7 << 0)
/* Capture/Waveform Mode: Clock Selection */
#define AT91_TC_TIMER_CLOCK1 (0 << 0)
#define AT91_TC_TIMER_CLOCK2 (1 << 0)
#define AT91_TC_TIMER_CLOCK3 (2 << 0)
#define AT91_TC_TIMER_CLOCK4 (3 << 0)
#define AT91_TC_TIMER_CLOCK5 (4 << 0)
#define AT91_TC_XC0 (5 << 0)
#define AT91_TC_XC1 (6 << 0)
#define AT91_TC_XC2 (7 << 0)
#define AT91_TC_CLKI (1 << 3)
/* Capture/Waveform Mode: Clock Invert */
#define AT91_TC_BURST (3 << 4)
/* Capture/Waveform Mode: Burst Signal Selection */
#define AT91_TC_LDBSTOP (1 << 6)
/* Capture Mode: Counter Clock Stopped with TB Loading */
#define AT91_TC_LDBDIS (1 << 7)
/* Capture Mode: Counter Clock Disable with RB Loading */
#define AT91_TC_ETRGEDG (3 << 8)
/* Capture Mode: External Trigger Edge Selection */
#define AT91_TC_ABETRG (1 << 10)
/* Capture Mode: TIOA or TIOB External Trigger Selection */
#define AT91_TC_CPCTRG (1 << 14)
/* Capture Mode: RC Compare Trigger Enable */
#define AT91_TC_WAVE (1 << 15)
/* Capture/Waveform mode */
#define AT91_TC_LDRA (3 << 16)
/* Capture Mode: RA Loading Selection */
#define AT91_TC_LDRB (3 << 18)
/* Capture Mode: RB Loading Selection */
#define AT91_TC_CPCSTOP (1 << 6)
/* Waveform Mode: Counter Clock Stopped with RC Compare */
#define AT91_TC_CPCDIS (1 << 7)
/* Waveform Mode: Counter Clock Disable with RC Compare */
#define AT91_TC_EEVTEDG (3 << 8)
/* Waveform Mode: External Event Edge Selection */
#define AT91_TC_EEVTEDG_NONE (0 << 8)
#define AT91_TC_EEVTEDG_RISING (1 << 8)
#define AT91_TC_EEVTEDG_FALLING (2 << 8)
#define AT91_TC_EEVTEDG_BOTH (3 << 8)
#define AT91_TC_EEVT (3 << 10)
/* Waveform Mode: External Event Selection */
#define AT91_TC_EEVT_TIOB (0 << 10)
#define AT91_TC_EEVT_XC0 (1 << 10)
#define AT91_TC_EEVT_XC1 (2 << 10)
#define AT91_TC_EEVT_XC2 (3 << 10)
#define AT91_TC_ENETRG (1 << 12)
/* Waveform Mode: External Event Trigger Enable */
#define AT91_TC_WAVESEL (3 << 13)
/* Waveform Mode: Waveform Selection */
#define AT91_TC_WAVESEL_UP (0 << 13)
#define AT91_TC_WAVESEL_UP_AUTO (2 << 13)
#define AT91_TC_WAVESEL_UPDOWN (1 << 13)
#define AT91_TC_WAVESEL_UPDOWN_AUTO (3 << 13)
#define AT91_TC_ACPA (3 << 16)
/* Waveform Mode: RA Compare Effect on TIOA */
#define AT91_TC_ACPA_NONE (0 << 16)
#define AT91_TC_ACPA_SET (1 << 16)
#define AT91_TC_ACPA_CLEAR (2 << 16)
#define AT91_TC_ACPA_TOGGLE (3 << 16)
#define AT91_TC_ACPC (3 << 18)
/* Waveform Mode: RC Compre Effect on TIOA */
#define AT91_TC_ACPC_NONE (0 << 18)
#define AT91_TC_ACPC_SET (1 << 18)
#define AT91_TC_ACPC_CLEAR (2 << 18)
#define AT91_TC_ACPC_TOGGLE (3 << 18)
#define AT91_TC_AEEVT (3 << 20)
/* Waveform Mode: External Event Effect on TIOA */
#define AT91_TC_AEEVT_NONE (0 << 20)
#define AT91_TC_AEEVT_SET (1 << 20)
#define AT91_TC_AEEVT_CLEAR (2 << 20)
#define AT91_TC_AEEVT_TOGGLE (3 << 20)
#define AT91_TC_ASWTRG (3 << 22)
/* Waveform Mode: Software Trigger Effect on TIOA */
#define AT91_TC_ASWTRG_NONE (0 << 22)
#define AT91_TC_ASWTRG_SET (1 << 22)
#define AT91_TC_ASWTRG_CLEAR (2 << 22)
#define AT91_TC_ASWTRG_TOGGLE (3 << 22)
#define AT91_TC_BCPB (3 << 24)
/* Waveform Mode: RB Compare Effect on TIOB */
#define AT91_TC_BCPB_NONE (0 << 24)
#define AT91_TC_BCPB_SET (1 << 24)
#define AT91_TC_BCPB_CLEAR (2 << 24)
#define AT91_TC_BCPB_TOGGLE (3 << 24)
#define AT91_TC_BCPC (3 << 26)
/* Waveform Mode: RC Compare Effect on TIOB */
#define AT91_TC_BCPC_NONE (0 << 26)
#define AT91_TC_BCPC_SET (1 << 26)
#define AT91_TC_BCPC_CLEAR (2 << 26)
#define AT91_TC_BCPC_TOGGLE (3 << 26)
#define AT91_TC_BEEVT (3 << 28)
/* Waveform Mode: External Event Effect on TIOB */
#define AT91_TC_BEEVT_NONE (0 << 28)
#define AT91_TC_BEEVT_SET (1 << 28)
#define AT91_TC_BEEVT_CLEAR (2 << 28)
#define AT91_TC_BEEVT_TOGGLE (3 << 28)
#define AT91_TC_BSWTRG (3 << 30)
/* Waveform Mode: Software Trigger Effect on TIOB */
#define AT91_TC_BSWTRG_NONE (0 << 30)
#define AT91_TC_BSWTRG_SET (1 << 30)
#define AT91_TC_BSWTRG_CLEAR (2 << 30)
#define AT91_TC_BSWTRG_TOGGLE (3 << 30)
#define AT91_TC_CV 0x10
/* Counter Value */
#define AT91_TC_RA 0x14
/* Register A */
#define AT91_TC_RB 0x18
/* Register B */
#define AT91_TC_RC 0x1c
/* Register C */
#define AT91_TC_SR 0x20
/* Status Register */
#define AT91_TC_COVFS (1 << 0)
/* Counter Overflow Status */
#define AT91_TC_LOVRS (1 << 1)
/* Load Overrun Status */
#define AT91_TC_CPAS (1 << 2)
/* RA Compare Status */
#define AT91_TC_CPBS (1 << 3)
/* RB Compare Status */
#define AT91_TC_CPCS (1 << 4)
/* RC Compare Status */
#define AT91_TC_LDRAS (1 << 5)
/* RA Loading Status */
#define AT91_TC_LDRBS (1 << 6)
/* RB Loading Status */
#define AT91_TC_ETRGS (1 << 7)
/* External Trigger Status */
#define AT91_TC_CLKSTA (1 << 16)
/* Clock Enabling Status */
#define AT91_TC_MTIOA (1 << 17)
/* TIOA Mirror */
#define AT91_TC_MTIOB (1 << 18)
/* TIOB Mirror */
#define AT91_TC_IER 0x24
/* Interrupt Enable Register */
#define AT91_TC_IDR 0x28
/* Interrupt Disable Register */
#define AT91_TC_IMR 0x2c
/* Interrupt Mask Register */
#endif
include/asm-arm/arch-at91rm9200/at91rm9200_udp.h
0 → 100644
View file @
695a9d23
/*
* include/asm-arm/arch-at91rm9200/at91rm9200_udp.h
*
* Copyright (C) 2005 Ivan Kokshaysky
* Copyright (C) SAN People
*
* USB Device Port (UDP) registers.
* Based on AT91RM9200 datasheet revision E.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*/
#ifndef AT91RM9200_UDP_H
#define AT91RM9200_UDP_H
#define AT91_UDP_FRM_NUM 0x00
/* Frame Number Register */
#define AT91_UDP_NUM (0x7ff << 0)
/* Frame Number */
#define AT91_UDP_FRM_ERR (1 << 16)
/* Frame Error */
#define AT91_UDP_FRM_OK (1 << 17)
/* Frame OK */
#define AT91_UDP_GLB_STAT 0x04
/* Global State Register */
#define AT91_UDP_FADDEN (1 << 0)
/* Function Address Enable */
#define AT91_UDP_CONFG (1 << 1)
/* Configured */
#define AT91_UDP_ESR (1 << 2)
/* Enable Send Resume */
#define AT91_UDP_RSMINPR (1 << 3)
/* Resume has been sent */
#define AT91_UDP_RMWUPE (1 << 4)
/* Remote Wake Up Enable */
#define AT91_UDP_FADDR 0x08
/* Function Address Register */
#define AT91_UDP_FADD (0x7f << 0)
/* Function Address Value */
#define AT91_UDP_FEN (1 << 8)
/* Function Enable */
#define AT91_UDP_IER 0x10
/* Interrupt Enable Register */
#define AT91_UDP_IDR 0x14
/* Interrupt Disable Register */
#define AT91_UDP_IMR 0x18
/* Interrupt Mask Register */
#define AT91_UDP_ISR 0x1c
/* Interrupt Status Register */
#define AT91_UDP_EP(n) (1 << (n))
/* Endpoint Interrupt Status */
#define AT91_UDP_RXSUSP (1 << 8)
/* USB Suspend Interrupt Status */
#define AT91_UDP_RXRSM (1 << 9)
/* USB Resume Interrupt Status */
#define AT91_UDP_EXTRSM (1 << 10)
/* External Resume Interrupt Status */
#define AT91_UDP_SOFINT (1 << 11)
/* Start of Frame Interrupt Status */
#define AT91_UDP_ENDBUSRES (1 << 12)
/* End of Bus Reset Interrpt Status */
#define AT91_UDP_WAKEUP (1 << 13)
/* USB Wakeup Interrupt Status */
#define AT91_UDP_ICR 0x20
/* Interrupt Clear Register */
#define AT91_UDP_RST_EP 0x28
/* Reset Endpoint Register */
#define AT91_UDP_CSR(n) (0x30 + ((n) * 4))
/* Endpoint Control/Status Registers 0-7 */
#define AT91_UDP_TXCOMP (1 << 0)
/* Generates IN packet with data previously written in DPR */
#define AT91_UDP_RX_DATA_BK0 (1 << 1)
/* Receive Data Bank 0 */
#define AT91_UDP_RXSETUP (1 << 2)
/* Send STALL to the host */
#define AT91_UDP_STALLSENT (1 << 3)
/* Stall Sent / Isochronous error (Isochronous endpoints) */
#define AT91_UDP_TXPKTRDY (1 << 4)
/* Transmit Packet Ready */
#define AT91_UDP_FORCESTALL (1 << 5)
/* Force Stall */
#define AT91_UDP_RX_DATA_BK1 (1 << 6)
/* Receive Data Bank 1 */
#define AT91_UDP_DIR (1 << 7)
/* Transfer Direction */
#define AT91_UDP_EPTYPE (7 << 8)
/* Endpoint Type */
#define AT91_UDP_EPTYPE_CTRL (0 << 8)
#define AT91_UDP_EPTYPE_ISO_OUT (1 << 8)
#define AT91_UDP_EPTYPE_BULK_OUT (2 << 8)
#define AT91_UDP_EPTYPE_INT_OUT (3 << 8)
#define AT91_UDP_EPTYPE_ISO_IN (5 << 8)
#define AT91_UDP_EPTYPE_BULK_IN (6 << 8)
#define AT91_UDP_EPTYPE_INT_IN (7 << 8)
#define AT91_UDP_DTGLE (1 << 11)
/* Data Toggle */
#define AT91_UDP_EPEDS (1 << 15)
/* Endpoint Enable/Disable */
#define AT91_UDP_RXBYTECNT (0x7ff << 16)
/* Number of bytes in FIFO */
#define AT91_UDP_FDR(n) (0x50 + ((n) * 4))
/* Endpoint FIFO Data Registers 0-7 */
#define AT91_UDP_TXVC 0x74
/* Transceiver Control Register */
#define AT91_UDP_TXVC_TXVDIS (1 << 8)
/* Transceiver Disable */
#endif
include/asm-arm/arch-at91rm9200/board.h
View file @
695a9d23
...
@@ -31,14 +31,9 @@
...
@@ -31,14 +31,9 @@
#ifndef __ASM_ARCH_BOARD_H
#ifndef __ASM_ARCH_BOARD_H
#define __ASM_ARCH_BOARD_H
#define __ASM_ARCH_BOARD_H
/* Clocks */
extern
unsigned
long
at91_master_clock
;
/* Serial Port */
extern
int
at91_serial_map
[
AT91_NR_UART
];
extern
int
at91_console_port
;
#include <linux/mtd/partitions.h>
#include <linux/mtd/partitions.h>
#include <linux/device.h>
#include <linux/spi/spi.h>
/* USB Device */
/* USB Device */
struct
at91_udc_data
{
struct
at91_udc_data
{
...
@@ -91,10 +86,25 @@ struct at91_nand_data {
...
@@ -91,10 +86,25 @@ struct at91_nand_data {
extern
void
__init
at91_add_device_nand
(
struct
at91_nand_data
*
data
);
extern
void
__init
at91_add_device_nand
(
struct
at91_nand_data
*
data
);
/* I2C*/
/* I2C*/
void
__init
at91_add_device_i2c
(
void
);
extern
void
__init
at91_add_device_i2c
(
void
);
/* SPI */
extern
void
__init
at91_add_device_spi
(
struct
spi_board_info
*
devices
,
int
nr_devices
);
/* RTC */
/* Serial */
void
__init
at91_add_device_rtc
(
void
);
struct
at91_uart_config
{
unsigned
short
console_tty
;
/* tty number of serial console */
unsigned
short
nr_tty
;
/* number of serial tty's */
short
tty_map
[];
/* map UART to tty number */
};
extern
struct
platform_device
*
at91_default_console_device
;
extern
void
__init
at91_init_serial
(
struct
at91_uart_config
*
config
);
struct
at91_uart_data
{
short
use_dma_tx
;
/* use transmit DMA? */
short
use_dma_rx
;
/* use receive DMA? */
};
extern
void
__init
at91_add_device_serial
(
void
);
/* LEDs */
/* LEDs */
extern
u8
at91_leds_cpu
;
extern
u8
at91_leds_cpu
;
...
...
include/asm-arm/arch-at91rm9200/gpio.h
View file @
695a9d23
...
@@ -13,6 +13,8 @@
...
@@ -13,6 +13,8 @@
#ifndef __ASM_ARCH_AT91RM9200_GPIO_H
#ifndef __ASM_ARCH_AT91RM9200_GPIO_H
#define __ASM_ARCH_AT91RM9200_GPIO_H
#define __ASM_ARCH_AT91RM9200_GPIO_H
#include <asm/irq.h>
#define PIN_BASE NR_AIC_IRQS
#define PIN_BASE NR_AIC_IRQS
#define PQFP_GPIO_BANKS 3
/* PQFP package has 3 banks */
#define PQFP_GPIO_BANKS 3
/* PQFP package has 3 banks */
...
@@ -188,6 +190,9 @@ extern int at91_set_multi_drive(unsigned pin, int is_on);
...
@@ -188,6 +190,9 @@ extern int at91_set_multi_drive(unsigned pin, int is_on);
/* callable at any time */
/* callable at any time */
extern
int
at91_set_gpio_value
(
unsigned
pin
,
int
value
);
extern
int
at91_set_gpio_value
(
unsigned
pin
,
int
value
);
extern
int
at91_get_gpio_value
(
unsigned
pin
);
extern
int
at91_get_gpio_value
(
unsigned
pin
);
extern
void
at91_gpio_suspend
(
void
);
extern
void
at91_gpio_resume
(
void
);
#endif
#endif
#endif
#endif
...
...
include/asm-arm/arch-at91rm9200/hardware.h
View file @
695a9d23
...
@@ -50,9 +50,12 @@
...
@@ -50,9 +50,12 @@
#define AT91_VA_BASE_TCB0 AT91_IO_P2V(AT91_BASE_TCB0)
#define AT91_VA_BASE_TCB0 AT91_IO_P2V(AT91_BASE_TCB0)
/* Internal SRAM */
/* Internal SRAM */
#define AT91_
BASE_SRAM
0x00200000
/* Internal SRAM base address */
#define AT91_
SRAM_BASE
0x00200000
/* Internal SRAM base address */
#define AT91_SRAM_SIZE 0x00004000
/* Internal SRAM SIZE (16Kb) */
#define AT91_SRAM_SIZE 0x00004000
/* Internal SRAM SIZE (16Kb) */
/* Internal SRAM is mapped below the IO devices */
#define AT91_SRAM_VIRT_BASE (AT91_IO_VIRT_BASE - AT91_SRAM_SIZE)
/* Serial ports */
/* Serial ports */
#define AT91_NR_UART 5
/* 4 USART3's and one DBGU port */
#define AT91_NR_UART 5
/* 4 USART3's and one DBGU port */
...
@@ -81,14 +84,14 @@ static inline unsigned int at91_sys_read(unsigned int reg_offset)
...
@@ -81,14 +84,14 @@ static inline unsigned int at91_sys_read(unsigned int reg_offset)
{
{
void
__iomem
*
addr
=
(
void
__iomem
*
)
AT91_VA_BASE_SYS
;
void
__iomem
*
addr
=
(
void
__iomem
*
)
AT91_VA_BASE_SYS
;
return
readl
(
addr
+
reg_offset
);
return
__raw_
readl
(
addr
+
reg_offset
);
}
}
static
inline
void
at91_sys_write
(
unsigned
int
reg_offset
,
unsigned
long
value
)
static
inline
void
at91_sys_write
(
unsigned
int
reg_offset
,
unsigned
long
value
)
{
{
void
__iomem
*
addr
=
(
void
__iomem
*
)
AT91_VA_BASE_SYS
;
void
__iomem
*
addr
=
(
void
__iomem
*
)
AT91_VA_BASE_SYS
;
writel
(
value
,
addr
+
reg_offset
);
__raw_
writel
(
value
,
addr
+
reg_offset
);
}
}
#endif
#endif
...
...
include/asm-arm/arch-at91rm9200/io.h
View file @
695a9d23
...
@@ -21,7 +21,6 @@
...
@@ -21,7 +21,6 @@
#ifndef __ASM_ARCH_IO_H
#ifndef __ASM_ARCH_IO_H
#define __ASM_ARCH_IO_H
#define __ASM_ARCH_IO_H
#include <asm/arch/at91rm9200.h>
#include <asm/io.h>
#include <asm/io.h>
#define IO_SPACE_LIMIT 0xFFFFFFFF
#define IO_SPACE_LIMIT 0xFFFFFFFF
...
...
include/asm-arm/arch-at91rm9200/irqs.h
View file @
695a9d23
...
@@ -37,8 +37,6 @@
...
@@ -37,8 +37,6 @@
* symbols in gpio.h for ones handled indirectly as GPIOs.
* symbols in gpio.h for ones handled indirectly as GPIOs.
* We make provision for 4 banks of GPIO.
* We make provision for 4 banks of GPIO.
*/
*/
#include <asm/arch/gpio.h>
#define NR_IRQS (NR_AIC_IRQS + (4 * 32))
#define NR_IRQS (NR_AIC_IRQS + (4 * 32))
...
...
include/asm-arm/arch-at91rm9200/pio.h
deleted
100644 → 0
View file @
c322e24b
/*
* include/asm-arm/arch-at91rm9200/pio.h
*
* Copyright (C) 2003 SAN People
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
*/
#ifndef __ASM_ARCH_PIO_H
#define __ASM_ARCH_PIO_H
#include <asm/arch/hardware.h>
static
inline
void
AT91_CfgPIO_USART0
(
void
)
{
at91_sys_write
(
AT91_PIOA
+
PIO_PDR
,
AT91_PA17_TXD0
|
AT91_PA18_RXD0
|
AT91_PA20_CTS0
);
/*
* Errata #39 - RTS0 is not internally connected to PA21. We need to drive
* the pin manually. Default is off (RTS is active low).
*/
at91_sys_write
(
AT91_PIOA
+
PIO_PER
,
AT91_PA21_RTS0
);
at91_sys_write
(
AT91_PIOA
+
PIO_OER
,
AT91_PA21_RTS0
);
at91_sys_write
(
AT91_PIOA
+
PIO_SODR
,
AT91_PA21_RTS0
);
}
static
inline
void
AT91_CfgPIO_USART1
(
void
)
{
at91_sys_write
(
AT91_PIOB
+
PIO_PDR
,
AT91_PB18_RI1
|
AT91_PB19_DTR1
|
AT91_PB20_TXD1
|
AT91_PB21_RXD1
|
AT91_PB23_DCD1
|
AT91_PB24_CTS1
|
AT91_PB25_DSR1
|
AT91_PB26_RTS1
);
}
static
inline
void
AT91_CfgPIO_USART2
(
void
)
{
at91_sys_write
(
AT91_PIOA
+
PIO_PDR
,
AT91_PA22_RXD2
|
AT91_PA23_TXD2
);
}
static
inline
void
AT91_CfgPIO_USART3
(
void
)
{
at91_sys_write
(
AT91_PIOA
+
PIO_PDR
,
AT91_PA5_TXD3
|
AT91_PA6_RXD3
);
at91_sys_write
(
AT91_PIOA
+
PIO_BSR
,
AT91_PA5_TXD3
|
AT91_PA6_RXD3
);
}
static
inline
void
AT91_CfgPIO_DBGU
(
void
)
{
at91_sys_write
(
AT91_PIOA
+
PIO_PDR
,
AT91_PA31_DTXD
|
AT91_PA30_DRXD
);
}
/*
* Enable the Two-Wire interface.
*/
static
inline
void
AT91_CfgPIO_TWI
(
void
)
{
at91_sys_write
(
AT91_PIOA
+
PIO_PDR
,
AT91_PA25_TWD
|
AT91_PA26_TWCK
);
at91_sys_write
(
AT91_PIOA
+
PIO_ASR
,
AT91_PA25_TWD
|
AT91_PA26_TWCK
);
at91_sys_write
(
AT91_PIOA
+
PIO_MDER
,
AT91_PA25_TWD
|
AT91_PA26_TWCK
);
/* open drain */
}
/*
* Enable the Serial Peripheral Interface.
*/
static
inline
void
AT91_CfgPIO_SPI
(
void
)
{
at91_sys_write
(
AT91_PIOA
+
PIO_PDR
,
AT91_PA0_MISO
|
AT91_PA1_MOSI
|
AT91_PA2_SPCK
);
}
static
inline
void
AT91_CfgPIO_SPI_CS0
(
void
)
{
at91_sys_write
(
AT91_PIOA
+
PIO_PDR
,
AT91_PA3_NPCS0
);
}
static
inline
void
AT91_CfgPIO_SPI_CS1
(
void
)
{
at91_sys_write
(
AT91_PIOA
+
PIO_PDR
,
AT91_PA4_NPCS1
);
}
static
inline
void
AT91_CfgPIO_SPI_CS2
(
void
)
{
at91_sys_write
(
AT91_PIOA
+
PIO_PDR
,
AT91_PA5_NPCS2
);
}
static
inline
void
AT91_CfgPIO_SPI_CS3
(
void
)
{
at91_sys_write
(
AT91_PIOA
+
PIO_PDR
,
AT91_PA6_NPCS3
);
}
/*
* Select the DataFlash card.
*/
static
inline
void
AT91_CfgPIO_DataFlashCard
(
void
)
{
at91_sys_write
(
AT91_PIOB
+
PIO_PER
,
AT91_PIO_P
(
7
));
at91_sys_write
(
AT91_PIOB
+
PIO_OER
,
AT91_PIO_P
(
7
));
at91_sys_write
(
AT91_PIOB
+
PIO_CODR
,
AT91_PIO_P
(
7
));
}
/*
* Enable NAND Flash (SmartMedia) interface.
*/
static
inline
void
AT91_CfgPIO_SmartMedia
(
void
)
{
/* enable PC0=SMCE, PC1=SMOE, PC3=SMWE, A21=CLE, A22=ALE */
at91_sys_write
(
AT91_PIOC
+
PIO_ASR
,
AT91_PC0_BFCK
|
AT91_PC1_BFRDY_SMOE
|
AT91_PC3_BFBAA_SMWE
);
at91_sys_write
(
AT91_PIOC
+
PIO_PDR
,
AT91_PC0_BFCK
|
AT91_PC1_BFRDY_SMOE
|
AT91_PC3_BFBAA_SMWE
);
/* Configure PC2 as input (signal READY of the SmartMedia) */
at91_sys_write
(
AT91_PIOC
+
PIO_PER
,
AT91_PC2_BFAVD
);
/* enable direct output enable */
at91_sys_write
(
AT91_PIOC
+
PIO_ODR
,
AT91_PC2_BFAVD
);
/* disable output */
/* Configure PB1 as input (signal Card Detect of the SmartMedia) */
at91_sys_write
(
AT91_PIOB
+
PIO_PER
,
AT91_PIO_P
(
1
));
/* enable direct output enable */
at91_sys_write
(
AT91_PIOB
+
PIO_ODR
,
AT91_PIO_P
(
1
));
/* disable output */
}
static
inline
int
AT91_PIO_SmartMedia_RDY
(
void
)
{
return
(
at91_sys_read
(
AT91_PIOC
+
PIO_PDSR
)
&
AT91_PIO_P
(
2
))
?
1
:
0
;
}
static
inline
int
AT91_PIO_SmartMedia_CardDetect
(
void
)
{
return
(
at91_sys_read
(
AT91_PIOB
+
PIO_PDSR
)
&
AT91_PIO_P
(
1
))
?
1
:
0
;
}
#endif
include/asm-arm/arch-at91rm9200/system.h
View file @
695a9d23
...
@@ -48,4 +48,12 @@ static inline void arch_reset(char mode)
...
@@ -48,4 +48,12 @@ static inline void arch_reset(char mode)
at91_sys_write
(
AT91_ST_CR
,
AT91_ST_WDRST
);
at91_sys_write
(
AT91_ST_CR
,
AT91_ST_WDRST
);
}
}
#define ARCH_ID_AT91RM9200 0x09200080
#define ARCH_ID_AT91SAM9261 0x019000a0
static
inline
unsigned
long
arch_identify
(
void
)
{
return
at91_sys_read
(
AT91_DBGU_CIDR
)
&
(
AT91_CIDR_EPROC
|
AT91_CIDR_ARCH
);
}
#endif
#endif
include/asm-arm/arch-at91rm9200/vmalloc.h
View file @
695a9d23
...
@@ -21,6 +21,6 @@
...
@@ -21,6 +21,6 @@
#ifndef __ASM_ARCH_VMALLOC_H
#ifndef __ASM_ARCH_VMALLOC_H
#define __ASM_ARCH_VMALLOC_H
#define __ASM_ARCH_VMALLOC_H
#define VMALLOC_END (AT91_
IO
_VIRT_BASE & PGDIR_MASK)
#define VMALLOC_END (AT91_
SRAM
_VIRT_BASE & PGDIR_MASK)
#endif
#endif
include/asm-arm/mach/serial_at91
rm9200
.h
→
include/asm-arm/mach/serial_at91.h
View file @
695a9d23
/*
/*
* linux/include/asm-arm/mach/serial_at91
rm9200
.h
* linux/include/asm-arm/mach/serial_at91.h
*
*
* Based on serial_sa1100.h by Nicolas Pitre
* Based on serial_sa1100.h by Nicolas Pitre
*
*
...
@@ -15,7 +15,7 @@ struct uart_port;
...
@@ -15,7 +15,7 @@ struct uart_port;
* This is a temporary structure for registering these
* This is a temporary structure for registering these
* functions; it is intended to be discarded after boot.
* functions; it is intended to be discarded after boot.
*/
*/
struct
at91
rm9200
_port_fns
{
struct
at91_port_fns
{
void
(
*
set_mctrl
)(
struct
uart_port
*
,
u_int
);
void
(
*
set_mctrl
)(
struct
uart_port
*
,
u_int
);
u_int
(
*
get_mctrl
)(
struct
uart_port
*
);
u_int
(
*
get_mctrl
)(
struct
uart_port
*
);
void
(
*
enable_ms
)(
struct
uart_port
*
);
void
(
*
enable_ms
)(
struct
uart_port
*
);
...
@@ -26,11 +26,9 @@ struct at91rm9200_port_fns {
...
@@ -26,11 +26,9 @@ struct at91rm9200_port_fns {
};
};
#if defined(CONFIG_SERIAL_AT91)
#if defined(CONFIG_SERIAL_AT91)
void
at91_register_uart_fns
(
struct
at91rm9200_port_fns
*
fns
);
void
at91_register_uart_fns
(
struct
at91_port_fns
*
fns
);
void
at91_register_uart
(
int
idx
,
int
port
);
#else
#else
#define at91_register_uart_fns(fns) do { } while (0)
#define at91_register_uart_fns(fns) do { } while (0)
#define at91_register_uart(idx,port) do { } while (0)
#endif
#endif
include/linux/serial_core.h
View file @
695a9d23
...
@@ -67,8 +67,8 @@
...
@@ -67,8 +67,8 @@
/* Parisc type numbers. */
/* Parisc type numbers. */
#define PORT_MUX 48
#define PORT_MUX 48
/* Atmel AT91
RM9200
SoC */
/* Atmel AT91
xxx
SoC */
#define PORT_AT91
RM9200
49
#define PORT_AT91
49
/* Macintosh Zilog type numbers */
/* Macintosh Zilog type numbers */
#define PORT_MAC_ZILOG 50
/* m68k : not yet implemented */
#define PORT_MAC_ZILOG 50
/* m68k : not yet implemented */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment