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
Kirill Smelkov
linux
Commits
335611b8
Commit
335611b8
authored
Feb 25, 2002
by
Russell King
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add support for Stork machine type to ARM architecture.
parent
8afb2b63
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
1508 additions
and
0 deletions
+1508
-0
arch/arm/Config.help
arch/arm/Config.help
+4
-0
arch/arm/config.in
arch/arm/config.in
+1
-0
arch/arm/def-configs/stork
arch/arm/def-configs/stork
+976
-0
arch/arm/mach-sa1100/stork.c
arch/arm/mach-sa1100/stork.c
+361
-0
include/asm-arm/arch-sa1100/hardware.h
include/asm-arm/arch-sa1100/hardware.h
+2
-0
include/asm-arm/arch-sa1100/stork.h
include/asm-arm/arch-sa1100/stork.h
+164
-0
No files found.
arch/arm/Config.help
View file @
335611b8
...
@@ -657,6 +657,10 @@ CONFIG_SA1100_SHANNON
...
@@ -657,6 +657,10 @@ CONFIG_SA1100_SHANNON
platform with a 640x480 LCD, touchscreen, CIR keyboard, PCMCIA slots,
platform with a 640x480 LCD, touchscreen, CIR keyboard, PCMCIA slots,
and a telco interface.
and a telco interface.
CONFIG_SA1100_STORK
Say Y here if you intend to run this kernel on the Stork
handheld computer.
CONFIG_SA1100_VICTOR
CONFIG_SA1100_VICTOR
Say Y here if you are using a Visu Aide Intel(R) StrongARM(R)
Say Y here if you are using a Visu Aide Intel(R) StrongARM(R)
SA-1100 based Victor Digital Talking Book Reader. See
SA-1100 based Victor Digital Talking Book Reader. See
...
...
arch/arm/config.in
View file @
335611b8
...
@@ -108,6 +108,7 @@ dep_bool ' Tulsa' CONFIG_SA1100_PFS168 $CONFIG_ARCH_SA1100
...
@@ -108,6 +108,7 @@ dep_bool ' Tulsa' CONFIG_SA1100_PFS168 $CONFIG_ARCH_SA1100
dep_bool ' Victor' CONFIG_SA1100_VICTOR $CONFIG_ARCH_SA1100
dep_bool ' Victor' CONFIG_SA1100_VICTOR $CONFIG_ARCH_SA1100
dep_bool ' XP860' CONFIG_SA1100_XP860 $CONFIG_ARCH_SA1100
dep_bool ' XP860' CONFIG_SA1100_XP860 $CONFIG_ARCH_SA1100
dep_bool ' Yopy' CONFIG_SA1100_YOPY $CONFIG_ARCH_SA1100
dep_bool ' Yopy' CONFIG_SA1100_YOPY $CONFIG_ARCH_SA1100
dep_bool ' Stork' CONFIG_SA1100_STORK $CONFIG_ARCH_SA1100
# Determine if SA1111 support is required
# Determine if SA1111 support is required
if [ "$CONFIG_ASSABET_NEPONSET" = "y" -o \
if [ "$CONFIG_ASSABET_NEPONSET" = "y" -o \
...
...
arch/arm/def-configs/stork
0 → 100644
View file @
335611b8
#
# Automatically generated make config: don't edit
#
CONFIG_ARM=y
# CONFIG_EISA is not set
# CONFIG_SBUS is not set
# CONFIG_MCA is not set
CONFIG_UID16=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
# CONFIG_GENERIC_BUST_SPINLOCK is not set
# CONFIG_GENERIC_ISA_DMA is not set
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
# CONFIG_OBSOLETE is not set
#
# Loadable module support
#
CONFIG_MODULES=y
# CONFIG_MODVERSIONS is not set
CONFIG_KMOD=y
#
# System Type
#
# CONFIG_ARCH_ADIFCC is not set
# CONFIG_ARCH_ANAKIN is not set
# CONFIG_ARCH_ARCA5K is not set
# 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_CAMELOT is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_IOP310 is not set
# CONFIG_ARCH_L7200 is not set
# CONFIG_ARCH_RPC is not set
CONFIG_ARCH_SA1100=y
# CONFIG_ARCH_SHARK is not set
#
# Archimedes/A5000 Implementations
#
#
# Archimedes/A5000 Implementations (select only ONE)
#
# CONFIG_ARCH_ARC is not set
# CONFIG_ARCH_A5K is not set
#
# Footbridge Implementations
#
# CONFIG_ARCH_CATS is not set
# CONFIG_ARCH_PERSONAL_SERVER is not set
# CONFIG_ARCH_EBSA285_ADDIN is not set
# CONFIG_ARCH_EBSA285_HOST is not set
# CONFIG_ARCH_NETWINDER is not set
#
# SA11x0 Implementations
#
# CONFIG_SA1100_ASSABET is not set
# CONFIG_ASSABET_NEPONSET is not set
# CONFIG_SA1100_ADSBITSY is not set
# CONFIG_SA1100_BRUTUS is not set
# CONFIG_SA1100_CERF is not set
# CONFIG_SA1100_H3100 is not set
CONFIG_SA1100_H3600=y
# CONFIG_SA1100_H3800 is not set
CONFIG_SA1100_H3XXX=y
# CONFIG_SA1100_EXTENEX1 is not set
# CONFIG_SA1100_FLEXANET is not set
# CONFIG_SA1100_FREEBIRD is not set
# CONFIG_SA1100_GRAPHICSCLIENT is not set
# CONFIG_SA1100_GRAPHICSMASTER is not set
# CONFIG_SA1100_BADGE4 is not set
# CONFIG_SA1100_JORNADA720 is not set
# CONFIG_SA1100_HUW_WEBPANEL is not set
# CONFIG_SA1100_ITSY is not set
# CONFIG_SA1100_LART is not set
# CONFIG_SA1100_NANOENGINE is not set
# CONFIG_SA1100_OMNIMETER is not set
# CONFIG_SA1100_PANGOLIN is not set
# CONFIG_SA1100_PLEB is not set
# CONFIG_SA1100_PT_SYSTEM3 is not set
# CONFIG_SA1100_SHANNON is not set
# CONFIG_SA1100_SHERMAN is not set
# CONFIG_SA1100_SIMPAD is not set
# CONFIG_SA1100_PFS168 is not set
# CONFIG_SA1100_VICTOR is not set
# CONFIG_SA1100_XP860 is not set
# CONFIG_SA1100_YOPY is not set
CONFIG_SA1100_USB=m
CONFIG_SA1100_USB_NETLINK=m
# CONFIG_SA1100_USB_CHAR is not set
CONFIG_H3600_SLEEVE=m
#
# CLPS711X/EP721X Implementations
#
# CONFIG_ARCH_AUTCPU12 is not set
# CONFIG_ARCH_CDB89712 is not set
# CONFIG_ARCH_CLEP7312 is not set
# CONFIG_ARCH_EDB7211 is not set
# CONFIG_ARCH_P720T is not set
# CONFIG_ARCH_FORTUNET is not set
# CONFIG_ARCH_EP7211 is not set
# CONFIG_ARCH_EP7212 is not set
# CONFIG_ARCH_ACORN is not set
# CONFIG_FOOTBRIDGE is not set
# CONFIG_FOOTBRIDGE_HOST is not set
# CONFIG_FOOTBRIDGE_ADDIN is not set
CONFIG_CPU_32=y
# CONFIG_CPU_26 is not set
#
# Processor Type
#
# CONFIG_CPU_32v3 is not set
CONFIG_CPU_32v4=y
# CONFIG_CPU_ARM610 is not set
# CONFIG_CPU_ARM710 is not set
# CONFIG_CPU_ARM720T is not set
# CONFIG_CPU_ARM920T is not set
# CONFIG_CPU_ARM922T is not set
# CONFIG_CPU_ARM926T is not set
# CONFIG_CPU_ARM1020 is not set
# CONFIG_CPU_SA110 is not set
CONFIG_CPU_SA1100=y
# CONFIG_XSCALE_PMU is not set
# CONFIG_ARM_THUMB is not set
CONFIG_DISCONTIGMEM=y
#
# General setup
#
# CONFIG_PCI is not set
CONFIG_ISA=y
# CONFIG_ISA_DMA is not set
# CONFIG_FIQ is not set
CONFIG_CPU_FREQ=y
CONFIG_HOTPLUG=y
#
# PCMCIA/CardBus support
#
CONFIG_PCMCIA=m
CONFIG_PCMCIA_PROBE=y
# CONFIG_I82092 is not set
# CONFIG_I82365 is not set
# CONFIG_TCIC is not set
# CONFIG_PCMCIA_CLPS6700 is not set
CONFIG_PCMCIA_SA1100=m
CONFIG_NET=y
CONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
#
# At least one math emulation must be selected
#
CONFIG_FPE_NWFPE=m
CONFIG_FPE_FASTFPE=y
CONFIG_KCORE_ELF=y
# CONFIG_KCORE_AOUT is not set
# CONFIG_BINFMT_AOUT is not set
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_PM=y
# CONFIG_APM is not set
# CONFIG_ARTHUR is not set
CONFIG_CMDLINE="N"
# CONFIG_LEDS is not set
CONFIG_ALIGNMENT_TRAP=y
#
# Parallel port support
#
# CONFIG_PARPORT is not set
#
# Memory Technology Devices (MTD)
#
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
CONFIG_MTD_PARTITIONS=y
CONFIG_MTD_REDBOOT_PARTS=y
CONFIG_MTD_BOOTLDR_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
#
# RAM/ROM/Flash chip drivers
#
CONFIG_MTD_CFI=y
# CONFIG_MTD_JEDECPROBE is not set
CONFIG_MTD_GEN_PROBE=y
CONFIG_MTD_CFI_ADV_OPTIONS=y
CONFIG_MTD_CFI_NOSWAP=y
# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
# CONFIG_MTD_CFI_GEOMETRY is not set
CONFIG_MTD_CFI_INTELEXT=y
# CONFIG_MTD_CFI_AMDSTD 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
# CONFIG_MTD_AMDSTD is not set
# CONFIG_MTD_SHARP is not set
# CONFIG_MTD_JEDEC is not set
#
# Mapping drivers for chip access
#
# CONFIG_MTD_PHYSMAP is not set
# CONFIG_MTD_NORA is not set
# CONFIG_MTD_ARM_INTEGRATOR is not set
# CONFIG_MTD_CDB89712 is not set
CONFIG_MTD_SA1100=y
# CONFIG_MTD_DC21285 is not set
# CONFIG_MTD_IQ80310 is not set
# CONFIG_MTD_EPXA10DB is not set
# CONFIG_MTD_PCI is not set
#
# Self-contained MTD device drivers
#
# CONFIG_MTD_PMC551 is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_MTDRAM is not set
# CONFIG_MTD_BLKMTD is not set
#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOC1000 is not set
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOCPROBE is not set
#
# NAND Flash Device Drivers
#
# CONFIG_MTD_NAND is not set
#
# Plug and Play configuration
#
# CONFIG_PNP is not set
# CONFIG_ISAPNP is not set
#
# Block devices
#
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_CISS_SCSI_TAPE is not set
# CONFIG_BLK_DEV_DAC960 is not set
CONFIG_BLK_DEV_LOOP=m
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_BLK_DEV_INITRD is not set
#
# Multi-device support (RAID and LVM)
#
# CONFIG_MD is not set
# CONFIG_BLK_DEV_MD is not set
# CONFIG_MD_LINEAR is not set
# CONFIG_MD_RAID0 is not set
# CONFIG_MD_RAID1 is not set
# CONFIG_MD_RAID5 is not set
# CONFIG_MD_MULTIPATH is not set
# CONFIG_BLK_DEV_LVM is not set
#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_NETLINK=y
CONFIG_RTNETLINK=y
# CONFIG_NETLINK_DEV is not set
# CONFIG_NETFILTER is not set
# CONFIG_FILTER is not set
CONFIG_UNIX=y
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
# CONFIG_IP_ADVANCED_ROUTER is not set
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_ARPD is not set
# CONFIG_INET_ECN is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_IPV6 is not set
# CONFIG_KHTTPD is not set
# CONFIG_ATM is not set
# CONFIG_VLAN_8021Q is not set
#
#
#
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_DECNET is not set
# CONFIG_BRIDGE is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_LLC is not set
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_FASTROUTE is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
#
# Network device support
#
CONFIG_NETDEVICES=y
#
# ARCnet devices
#
# CONFIG_ARCNET is not set
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_ETHERTAP is not set
#
# Ethernet (10 or 100Mbit)
#
# CONFIG_NET_ETHERNET is not set
#
# Ethernet (1000 Mbit)
#
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_MYRI_SBUS is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_SK98LIN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PLIP 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 is not set
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
# CONFIG_PPPOE is not set
# CONFIG_SLIP is not set
#
# Wireless LAN (non-hamradio)
#
CONFIG_NET_RADIO=y
# CONFIG_STRIP is not set
CONFIG_WAVELAN=m
# CONFIG_ARLAN is not set
# CONFIG_AIRONET4500 is not set
# CONFIG_AIRONET4500_NONCS is not set
# CONFIG_AIRONET4500_PROC is not set
# CONFIG_AIRO is not set
CONFIG_HERMES=m
#
# Wireless Pcmcia cards support
#
CONFIG_PCMCIA_HERMES=m
# CONFIG_AIRO_CS is not set
CONFIG_NET_WIRELESS=y
#
# Token Ring devices
#
# CONFIG_TR is not set
# CONFIG_NET_FC is not set
# CONFIG_RCPCI is not set
# CONFIG_SHAPER is not set
#
# Wan interfaces
#
# CONFIG_WAN is not set
#
# PCMCIA network device support
#
CONFIG_NET_PCMCIA=y
CONFIG_PCMCIA_3C589=m
# CONFIG_PCMCIA_3C574 is not set
# CONFIG_PCMCIA_FMVJ18X is not set
CONFIG_PCMCIA_PCNET=m
# CONFIG_PCMCIA_NMCLAN is not set
# CONFIG_PCMCIA_SMC91C92 is not set
CONFIG_PCMCIA_XIRC2PS=m
# CONFIG_PCMCIA_AXNET is not set
# CONFIG_ARCNET_COM20020_CS is not set
# CONFIG_PCMCIA_IBMTR is not set
# CONFIG_NET_PCMCIA_RADIO is not set
#
# Amateur Radio support
#
# CONFIG_HAMRADIO is not set
#
# IrDA (infrared) support
#
# CONFIG_IRDA is not set
#
# ATA/IDE/MFM/RLL support
#
CONFIG_IDE=m
#
# IDE, ATA and ATAPI Block devices
#
CONFIG_BLK_DEV_IDE=m
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_HD_IDE is not set
# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_IDEDISK=m
# CONFIG_IDEDISK_MULTI_MODE is not set
# CONFIG_BLK_DEV_IDEDISK_VENDOR is not set
# CONFIG_BLK_DEV_IDEDISK_FUJITSU is not set
# CONFIG_BLK_DEV_IDEDISK_IBM is not set
# CONFIG_BLK_DEV_IDEDISK_MAXTOR is not set
# CONFIG_BLK_DEV_IDEDISK_QUANTUM is not set
# CONFIG_BLK_DEV_IDEDISK_SEAGATE is not set
# CONFIG_BLK_DEV_IDEDISK_WD is not set
# CONFIG_BLK_DEV_COMMERIAL is not set
# CONFIG_BLK_DEV_TIVO is not set
CONFIG_BLK_DEV_IDECS=m
CONFIG_BLK_DEV_IDECD=m
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDESCSI is not set
#
# IDE chipset support/bugfixes
#
# CONFIG_BLK_DEV_CMD640 is not set
# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
# CONFIG_BLK_DEV_ISAPNP is not set
# CONFIG_IDE_CHIPSETS is not set
# CONFIG_IDEDMA_AUTO is not set
# CONFIG_DMA_NONPCI is not set
# CONFIG_BLK_DEV_IDE_MODES is not set
# CONFIG_BLK_DEV_ATARAID is not set
# CONFIG_BLK_DEV_ATARAID_PDC is not set
# CONFIG_BLK_DEV_ATARAID_HPT is not set
#
# SCSI support
#
# CONFIG_SCSI is not set
#
# I2O device support
#
# CONFIG_I2O is not set
# CONFIG_I2O_BLOCK is not set
# CONFIG_I2O_LAN is not set
# CONFIG_I2O_SCSI is not set
# CONFIG_I2O_PROC is not set
#
# ISDN subsystem
#
# CONFIG_ISDN is not set
#
# Input core support
#
# CONFIG_INPUT is not set
# CONFIG_INPUT_KEYBDEV is not set
# CONFIG_INPUT_MOUSEDEV is not set
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_EVDEV is not set
#
# Character devices
#
CONFIG_VT=y
# CONFIG_VT_CONSOLE is not set
CONFIG_SERIAL=y
CONFIG_SERIAL_CONSOLE=y
# CONFIG_SERIAL_EXTENDED is not set
# CONFIG_SERIAL_NONSTANDARD is not set
#
# Serial drivers
#
# CONFIG_SERIAL_ANAKIN is not set
# CONFIG_SERIAL_ANAKIN_CONSOLE is not set
# CONFIG_SERIAL_AMBA is not set
# CONFIG_SERIAL_AMBA_CONSOLE is not set
# CONFIG_SERIAL_CLPS711X is not set
# CONFIG_SERIAL_CLPS711X_CONSOLE is not set
# CONFIG_SERIAL_21285 is not set
# CONFIG_SERIAL_21285_OLD is not set
# CONFIG_SERIAL_21285_CONSOLE is not set
# CONFIG_SERIAL_UART00 is not set
# CONFIG_SERIAL_UART00_CONSOLE is not set
CONFIG_SERIAL_SA1100=y
CONFIG_SERIAL_SA1100_CONSOLE=y
CONFIG_SA1100_DEFAULT_BAUDRATE=115200
CONFIG_SERIAL_8250=m
# CONFIG_SERIAL_8250_CONSOLE is not set
# CONFIG_ATOMWIDE_SERIAL is not set
# CONFIG_DUALSP_SERIAL is not set
# CONFIG_SERIAL_8250_EXTENDED is not set
# CONFIG_SERIAL_8250_MANY_PORTS is not set
# CONFIG_SERIAL_8250_SHARE_IRQ is not set
# CONFIG_SERIAL_8250_DETECT_IRQ is not set
# CONFIG_SERIAL_8250_MULTIPORT is not set
# CONFIG_SERIAL_8250_RSA is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX98_PTY_COUNT=32
#
# I2C support
#
# CONFIG_I2C is not set
#
# L3 serial bus support
#
CONFIG_L3=y
CONFIG_L3_ALGOBIT=y
CONFIG_L3_BIT_SA1100_GPIO=y
#
# Other L3 adapters
#
# CONFIG_L3_SA1111 is not set
CONFIG_BIT_SA1100_GPIO=y
#
# Mice
#
# CONFIG_BUSMOUSE is not set
CONFIG_MOUSE=m
# CONFIG_PSMOUSE is not set
# CONFIG_82C710_MOUSE is not set
# CONFIG_PC110_PAD is not set
#
# Joysticks
#
# CONFIG_INPUT_GAMEPORT is not set
#
# Input core support is needed for gameports
#
#
# Input core support is needed for joysticks
#
# CONFIG_QIC02_TAPE is not set
#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_INTEL_RNG is not set
# CONFIG_NVRAM is not set
# CONFIG_RTC is not set
CONFIG_SA1100_RTC=m
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
#
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not set
# CONFIG_AGP is not set
# CONFIG_DRM is not set
#
# PCMCIA character devices
#
# CONFIG_PCMCIA_SERIAL_CS is not set
#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
#
# File systems
#
# CONFIG_QUOTA is not set
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_REISERFS_FS is not set
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not set
# CONFIG_ADFS_FS is not set
# CONFIG_ADFS_FS_RW is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EXT3_FS is not set
# CONFIG_JBD is not set
# CONFIG_JBD_DEBUG is not set
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
# CONFIG_UMSDOS_FS is not set
CONFIG_VFAT_FS=m
# CONFIG_EFS_FS is not set
# CONFIG_JFFS_FS is not set
CONFIG_JFFS2_FS=y
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_CRAMFS=y
# CONFIG_TMPFS is not set
CONFIG_RAMFS=y
# CONFIG_ISO9660_FS is not set
# CONFIG_JOLIET is not set
# CONFIG_ZISOFS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_NTFS_FS is not set
# CONFIG_NTFS_RW is not set
# CONFIG_HPFS_FS is not set
CONFIG_PROC_FS=y
CONFIG_DEVFS_FS=y
CONFIG_DEVFS_MOUNT=y
# CONFIG_DEVFS_DEBUG is not set
CONFIG_DEVPTS_FS=y
# CONFIG_QNX4FS_FS is not set
# CONFIG_QNX4FS_RW is not set
# CONFIG_ROMFS_FS is not set
CONFIG_EXT2_FS=y
# CONFIG_SYSV_FS is not set
# CONFIG_UDF_FS is not set
# CONFIG_UDF_RW is not set
# CONFIG_UFS_FS is not set
# CONFIG_UFS_FS_WRITE is not set
#
# Network File Systems
#
# CONFIG_CODA_FS is not set
# CONFIG_INTERMEZZO_FS is not set
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
# CONFIG_ROOT_NFS is not set
CONFIG_NFSD=m
CONFIG_NFSD_V3=y
CONFIG_SUNRPC=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_SMB_FS=m
# CONFIG_SMB_NLS_DEFAULT is not set
# CONFIG_NCP_FS is not set
# CONFIG_NCPFS_PACKET_SIGNING is not set
# CONFIG_NCPFS_IOCTL_LOCKING is not set
# CONFIG_NCPFS_STRONG is not set
# CONFIG_NCPFS_NFS_NS is not set
# CONFIG_NCPFS_OS2_NS is not set
# CONFIG_NCPFS_SMALLDOS is not set
# CONFIG_NCPFS_NLS is not set
# CONFIG_NCPFS_EXTRAS is not set
# CONFIG_ZISOFS_FS is not set
CONFIG_ZLIB_FS_INFLATE=y
#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
CONFIG_SMB_NLS=y
CONFIG_NLS=y
#
# Native Language Support
#
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 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_1251 is not set
# 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
#
# Console drivers
#
CONFIG_PC_KEYMAP=y
# CONFIG_VGA_CONSOLE is not set
#
# Frame-buffer support
#
CONFIG_FB=y
CONFIG_DUMMY_CONSOLE=y
# CONFIG_FB_ACORN is not set
# CONFIG_FB_ANAKIN is not set
# CONFIG_FB_CLPS711X is not set
CONFIG_FB_SA1100=y
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_VIRTUAL is not set
CONFIG_FBCON_ADVANCED=y
# CONFIG_FBCON_MFB is not set
# CONFIG_FBCON_CFB2 is not set
# CONFIG_FBCON_CFB4 is not set
# CONFIG_FBCON_CFB8 is not set
CONFIG_FBCON_CFB16=y
# CONFIG_FBCON_CFB24 is not set
# CONFIG_FBCON_CFB32 is not set
# CONFIG_FBCON_AFB is not set
# CONFIG_FBCON_ILBM is not set
# CONFIG_FBCON_IPLAN2P2 is not set
# CONFIG_FBCON_IPLAN2P4 is not set
# CONFIG_FBCON_IPLAN2P8 is not set
# CONFIG_FBCON_MAC is not set
# CONFIG_FBCON_VGA_PLANES is not set
# CONFIG_FBCON_VGA is not set
# CONFIG_FBCON_HGA is not set
CONFIG_FBCON_FONTWIDTH8_ONLY=y
CONFIG_FBCON_FONTS=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
# CONFIG_FONT_SUN8x16 is not set
# CONFIG_FONT_PEARL_8x8 is not set
# CONFIG_FONT_ACORN_8x8 is not set
#
# Sound
#
CONFIG_SOUND=y
# CONFIG_SOUND_BT878 is not set
# CONFIG_SOUND_CMPCI is not set
# CONFIG_SOUND_EMU10K1 is not set
# CONFIG_MIDI_EMU10K1 is not set
# CONFIG_SOUND_FUSION is not set
# CONFIG_SOUND_CS4281 is not set
# CONFIG_SOUND_ES1370 is not set
# CONFIG_SOUND_ES1371 is not set
# CONFIG_SOUND_ESSSOLO1 is not set
# CONFIG_SOUND_MAESTRO is not set
# CONFIG_SOUND_MAESTRO3 is not set
# CONFIG_SOUND_ICH is not set
# CONFIG_SOUND_RME96XX is not set
# CONFIG_SOUND_SONICVIBES is not set
# CONFIG_SOUND_TRIDENT is not set
# CONFIG_SOUND_MSNDCLAS is not set
# CONFIG_SOUND_MSNDPIN is not set
# CONFIG_SOUND_VIA82CXXX is not set
# CONFIG_MIDI_VIA82CXXX is not set
CONFIG_SOUND_SA1100=y
CONFIG_SOUND_UDA1341=m
# CONFIG_SOUND_ASSABET_UDA1341 is not set
CONFIG_SOUND_H3600_UDA1341=m
# CONFIG_SOUND_PANGOLIN_UDA1341 is not set
# CONFIG_SOUND_SA1111_UDA1341 is not set
# CONFIG_SOUND_SA1100SSP is not set
# CONFIG_SOUND_OSS is not set
# CONFIG_SOUND_WAVEARTIST is not set
# CONFIG_SOUND_TVMIXER is not set
#
# Multimedia Capabilities Port drivers
#
# CONFIG_MCP is not set
# CONFIG_MCP_SA1100 is not set
# CONFIG_MCP_UCB1200 is not set
# CONFIG_MCP_UCB1200_AUDIO is not set
# CONFIG_MCP_UCB1200_TS is not set
#
# USB support
#
# CONFIG_USB is not set
#
# USB Host Controller Drivers
#
# CONFIG_USB_EHCI_HCD is not set
# CONFIG_USB_UHCI is not set
# CONFIG_USB_UHCI_ALT is not set
# CONFIG_USB_OHCI is not set
# CONFIG_USB_OHCI_SA1111 is not set
#
# USB Device Class drivers
#
# CONFIG_USB_AUDIO is not set
# CONFIG_USB_BLUETOOTH is not set
#
# SCSI support is needed for USB Storage
#
# CONFIG_USB_STORAGE is not set
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
# CONFIG_USB_STORAGE_ISD200 is not set
# CONFIG_USB_STORAGE_DPCM is not set
# CONFIG_USB_STORAGE_HP8200e is not set
# CONFIG_USB_STORAGE_SDDR09 is not set
# CONFIG_USB_STORAGE_JUMPSHOT is not set
# CONFIG_USB_ACM is not set
# CONFIG_USB_PRINTER is not set
#
# USB Human Interface Devices (HID)
#
#
# Input core support is needed for USB HID
#
#
# USB Imaging devices
#
# CONFIG_USB_DC2XX is not set
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_SCANNER is not set
# CONFIG_USB_MICROTEK is not set
# CONFIG_USB_HPUSBSCSI is not set
#
# USB Multimedia devices
#
#
# Video4Linux support is needed for USB Multimedia device support
#
#
# USB Network adaptors
#
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_CATC is not set
# CONFIG_USB_CDCETHER is not set
# CONFIG_USB_USBNET is not set
#
# USB port drivers
#
# CONFIG_USB_USS720 is not set
#
# USB Serial Converter support
#
# CONFIG_USB_SERIAL is not set
# CONFIG_USB_SERIAL_GENERIC 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_EMPEG is not set
# CONFIG_USB_SERIAL_FTDI_SIO 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_KEYSPAN_PDA is not set
# CONFIG_USB_SERIAL_KEYSPAN is not set
# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set
# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set
# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set
# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set
# CONFIG_USB_SERIAL_MCT_U232 is not set
# CONFIG_USB_SERIAL_KLSI is not set
# CONFIG_USB_SERIAL_PL2303 is not set
# CONFIG_USB_SERIAL_CYBERJACK is not set
# CONFIG_USB_SERIAL_XIRCOM is not set
# CONFIG_USB_SERIAL_OMNINET is not set
#
# USB Miscellaneous drivers
#
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_AUERSWALD is not set
#
# Bluetooth support
#
# CONFIG_BLUEZ is not set
#
# Kernel hacking
#
# CONFIG_NO_FRAME_POINTER is not set
# CONFIG_DEBUG_USER is not set
# CONFIG_DEBUG_INFO is not set
# CONFIG_NO_PGT_CACHE is not set
# CONFIG_DEBUG_KERNEL is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_MAGIC_SYSRQ is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_WAITQ is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_DEBUG_ERRORS is not set
# CONFIG_DEBUG_LL is not set
# CONFIG_DEBUG_DC21285_PORT is not set
# CONFIG_DEBUG_CLPS711X_UART2 is not set
#
# Library routines
#
# CONFIG_CRC32 is not set
arch/arm/mach-sa1100/stork.c
0 → 100644
View file @
335611b8
/*
* linux/arch/arm/mach-sa1100/stork.c
*
* Copyright (C) 2001 Ken Gordon
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
*/
#include <linux/config.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/tty.h>
#include <linux/sched.h>
#include <linux/delay.h>
#include <asm/hardware.h>
#include <asm/setup.h>
#include <asm/keyboard.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <asm/mach/serial_sa1100.h>
#include <linux/serial_core.h>
#include "generic.h"
#define STORK_VM_BASE_CS1 0xf0000000
/* where we get mapped (virtual) */
#define STORK_VM_OFF_CS1 0x08000000
/* where we started mapping (physical) */
#define STORK_VM_ADJUST_CS1 (STORK_VM_BASE_CS1-STORK_VM_OFF_CS1)
/* add to the phys to get virt */
#define STORK_VM_BASE_CS2 0xf1000000
/* where we get mapped (virtual) */
#define STORK_VM_OFF_CS2 0x10000000
/* where we started mapping (physical) */
#define STORK_VM_ADJUST_CS2 (STORK_VM_BASE_CS2-STORK_VM_OFF_CS2)
/* add to the phys to get virt */
static
int
debug
=
0
;
static
int
storkLatchA
=
0
;
static
int
storkLatchB
=
0
;
static
int
storkLCDCPLD
[
4
]
=
{
0
,
0
,
0
,
0
};
int
storkSetLatchA
(
int
bits
)
{
int
ret
=
storkLatchA
;
volatile
unsigned
int
*
latch
=
(
unsigned
int
*
)(
STORK_LATCH_A_ADDR
+
STORK_VM_ADJUST_CS1
);
storkLatchA
|=
bits
;
*
latch
=
storkLatchA
;
return
ret
;
}
int
storkClearLatchA
(
int
bits
)
{
int
ret
=
storkLatchA
;
volatile
unsigned
int
*
latch
=
(
unsigned
int
*
)(
STORK_LATCH_A_ADDR
+
STORK_VM_ADJUST_CS1
);
storkLatchA
&=
~
bits
;
*
latch
=
storkLatchA
;
return
ret
;
}
int
storkSetLCDCPLD
(
int
which
,
int
bits
)
{
int
ret
=
storkLCDCPLD
[
which
];
volatile
unsigned
int
*
latch
=
(
unsigned
int
*
)(
STORK_LCDCPLD_BASE_ADDR
+
STORK_VM_ADJUST_CS2
+
0x20
*
which
);
storkLCDCPLD
[
which
]
|=
bits
;
*
latch
=
storkLCDCPLD
[
which
];
return
ret
;
}
/* NB we don't shadow these 'cos there is no relation between the data written and the data read */
/* ie the read registers are read only and the write registers write only */
int
storkGetLCDCPLD
(
int
which
)
{
volatile
unsigned
int
*
latch
=
(
unsigned
int
*
)(
STORK_LCDCPLD_BASE_ADDR
+
STORK_VM_ADJUST_CS2
+
0x20
*
which
);
return
*
latch
;
}
int
storkClearLCDCPLD
(
int
which
,
int
bits
)
{
int
ret
=
storkLCDCPLD
[
which
];
volatile
unsigned
int
*
latch
=
(
unsigned
int
*
)(
STORK_LCDCPLD_BASE_ADDR
+
STORK_VM_ADJUST_CS2
+
0x20
*
which
);
storkLCDCPLD
[
which
]
&=
~
bits
;
*
latch
=
storkLCDCPLD
[
which
];
return
ret
;
}
int
storkSetLatchB
(
int
bits
)
{
int
ret
=
storkLatchB
;
char
buf
[
100
];
volatile
unsigned
int
*
latch
=
(
unsigned
int
*
)(
STORK_LATCH_B_ADDR
+
STORK_VM_ADJUST_CS1
);
sprintf
(
buf
,
"%s: bits %04x
\n
"
,
__FUNCTION__
,
bits
);
if
(
debug
)
printk
(
buf
);
storkLatchB
|=
bits
;
*
latch
=
storkLatchB
;
return
ret
;
}
int
storkClearLatchB
(
int
bits
)
{
int
ret
=
storkLatchB
;
char
buf
[
100
];
volatile
unsigned
int
*
latch
=
(
unsigned
int
*
)(
STORK_LATCH_B_ADDR
+
STORK_VM_ADJUST_CS1
);
sprintf
(
buf
,
"%s: bits %04x
\n
"
,
__FUNCTION__
,
bits
);
if
(
debug
)
printk
(
buf
);
storkLatchB
&=
~
bits
;
*
latch
=
storkLatchB
;
return
ret
;
}
void
storkSetGPIO
(
int
bits
)
{
char
buf
[
100
];
sprintf
(
buf
,
"%s: bits %04x
\n
"
,
__FUNCTION__
,
bits
);
if
(
debug
)
printk
(
buf
);
GPSR
=
bits
;
}
void
storkClearGPIO
(
int
bits
)
{
char
buf
[
100
];
sprintf
(
buf
,
"%s: bits %04x
\n
"
,
__FUNCTION__
,
bits
);
if
(
debug
)
printk
(
buf
);
GPCR
=
bits
;
}
int
storkGetGPIO
()
{
char
buf
[
100
];
int
bits
=
GPLR
;
sprintf
(
buf
,
"%s: bits %04x
\n
"
,
__FUNCTION__
,
bits
);
if
(
debug
)
printk
(
buf
);
return
bits
;
}
/* this will return the current state of the hardware ANDED with the given bits
so NE => at least one bit was set, but maybe not all of them! */
int
storkTestGPIO
(
int
bits
)
{
int
val
=
storkGetGPIO
();
char
buf
[
100
];
sprintf
(
buf
,
"%s: bits %04x val %04x
\n
"
,
__FUNCTION__
,
bits
,
val
);
if
(
debug
)
printk
(
buf
);
return
(
val
&
bits
);
}
/* NB the touch screen and the d to a use the same data and clock out pins */
static
void
storkClockTS
(
void
)
{
storkSetLatchB
(
STORK_TOUCH_SCREEN_DCLK
);
udelay
(
10
);
/* hmm wait 200ns (min) - ok this ought to be udelay(1) but that doesn't get */
/* consistant values so I'm using 10 (urgh) */
storkClearLatchB
(
STORK_TOUCH_SCREEN_DCLK
);
udelay
(
10
);
}
int
/* there is always a 12 bit read after the write! */
storkClockByteToTS
(
int
byte
)
{
int
timeout
=
10000
;
/* stuff is meant to happen in 60ns */
int
bit
;
int
result
=
0
;
if
(
debug
)
printk
(
"storkClockByteToTS: %02x
\n
"
,
byte
);
storkClearLatchB
(
STORK_TOUCH_SCREEN_CS
);
/* slect touch screen */
while
(
timeout
--
>
0
)
if
(
storkTestGPIO
(
GPIO_STORK_TOUCH_SCREEN_BUSY
)
==
0
)
break
;
if
(
timeout
<
0
)
{
printk
(
"storkClockBitToTS: GPIO_STORK_TOUCH_SCREEN_BUSY didn't go low!
\n\r
"
);
/* ignore error for now return; */
}
/* clock out the given byte */
for
(
bit
=
0x80
;
bit
>
0
;
bit
=
bit
>>
1
)
{
if
((
bit
&
byte
)
==
0
)
storkClearLatchB
(
STORK_TOUCH_SCREEN_DIN
);
else
storkSetLatchB
(
STORK_TOUCH_SCREEN_DIN
);
storkClockTS
();
}
storkClockTS
();
/* will be busy for at a clock (at least) */
for
(
timeout
=
10000
;
timeout
>=
0
;
timeout
--
)
if
(
storkTestGPIO
(
GPIO_STORK_TOUCH_SCREEN_BUSY
)
==
0
)
break
;
if
(
timeout
<
0
)
{
printk
(
"storkClockBitToTS: 2nd GPIO_STORK_TOUCH_SCREEN_BUSY didn't go low!
\n\r
"
);
/* ignore error for now return; */
}
/* clock in the result */
for
(
bit
=
0x0800
;
bit
>
0
;
bit
=
bit
>>
1
)
{
if
(
storkTestGPIO
(
GPIO_STORK_TOUCH_SCREEN_DATA
))
result
|=
bit
;
storkClockTS
();
}
storkSetLatchB
(
STORK_TOUCH_SCREEN_CS
);
/* unselect touch screen */
return
result
;
}
void
storkClockShortToDtoA
(
int
word
)
{
int
bit
;
storkClearLatchB
(
STORK_DA_CS
);
/* select D to A */
/* clock out the given byte */
for
(
bit
=
0x8000
;
bit
>
0
;
bit
=
bit
>>
1
)
{
if
((
bit
&
word
)
==
0
)
storkClearLatchB
(
STORK_TOUCH_SCREEN_DIN
);
else
storkSetLatchB
(
STORK_TOUCH_SCREEN_DIN
);
storkClockTS
();
}
storkSetLatchB
(
STORK_DA_CS
);
/* unselect D to A */
/* set DTOA#_LOAD low then high (min 20ns) to transfer value to D to A */
storkClearLatchB
(
STORK_DA_LD
);
storkSetLatchB
(
STORK_DA_LD
);
}
void
storkInitTSandDtoA
(
void
)
{
storkClearLatchB
(
STORK_TOUCH_SCREEN_DCLK
|
STORK_TOUCH_SCREEN_DIN
);
storkSetLatchB
(
STORK_TOUCH_SCREEN_CS
|
STORK_DA_CS
|
STORK_DA_LD
);
storkClockByteToTS
(
0xE2
);
/* turn on the reference */
storkClockShortToDtoA
(
0x8D00
);
/* turn on the contrast */
storkClockShortToDtoA
(
0x0A00
);
/* turn on the brightness */
}
/* see asm-arm/keyboard.h - there are a bunch of basically virtual functions required */
/* we have to fill in for them or else we can't call handle_scancode when we see a button pressed */
static
int
stork_kbd_translate
(
unsigned
char
scancode
,
unsigned
char
*
keycode
,
char
rawmode
)
{
if
(
keycode
)
*
keycode
=
scancode
;
return
1
;
}
static
char
stork_kbd_unexpected_up
(
unsigned
char
code
)
{
return
0
;
}
struct
map_desc
stork_io_desc
[]
__initdata
=
{
/* virtual physical length domain r w c b */
{
0xe8000000
,
0x00000000
,
0x02000000
,
DOMAIN_IO
,
1
,
1
,
0
,
0
},
/* Flash bank 0 */
{
STORK_VM_BASE_CS1
,
STORK_VM_OFF_CS1
,
0x01000000
,
DOMAIN_IO
,
1
,
1
,
0
,
0
},
/* EGPIO 0 */
{
0xf1000000
,
0x10000000
,
0x02800000
,
DOMAIN_IO
,
1
,
1
,
0
,
0
},
/* static memory bank 2 */
{
0xf3800000
,
0x40000000
,
0x00800000
,
DOMAIN_IO
,
1
,
1
,
0
,
0
},
/* static memory bank 4 */
LAST_DESC
};
int
__init
stork_map_io
(
void
)
{
sa1100_map_io
();
iotable_init
(
stork_io_desc
);
sa1100_register_uart
(
0
,
1
);
/* com port */
sa1100_register_uart
(
1
,
2
);
sa1100_register_uart
(
2
,
3
);
printk
(
"Stork driver initing latches
\r\n
"
);
storkClearLatchB
(
STORK_RED_LED
);
/* let's have the red LED on please */
storkSetLatchB
(
STORK_YELLOW_LED
);
storkSetLatchB
(
STORK_GREEN_LED
);
storkSetLatchA
(
STORK_BATTERY_CHARGER_ON
);
storkSetLatchA
(
STORK_LCD_5V_POWER_ON
);
storkSetLatchA
(
STORK_LCD_3V3_POWER_ON
);
storkInitTSandDtoA
();
k_translate
=
stork_kbd_translate
;
k_unexpected_up
=
stork_kbd_unexpected_up
;
return
0
;
}
MACHINE_START
(
STORK
,
"Stork Technologies prototype"
)
BOOT_MEM
(
0xc0000000
,
0x80000000
,
0xf8000000
)
BOOT_PARAMS
(
0xc0000100
)
MAPIO
(
stork_map_io
)
INITIRQ
(
sa1100_init_irq
)
MACHINE_END
EXPORT_SYMBOL
(
storkTestGPIO
);
EXPORT_SYMBOL
(
storkSetGPIO
);
EXPORT_SYMBOL
(
storkClearGPIO
);
EXPORT_SYMBOL
(
storkSetLatchA
);
EXPORT_SYMBOL
(
storkClearLatchA
);
EXPORT_SYMBOL
(
storkSetLatchB
);
EXPORT_SYMBOL
(
storkClearLatchB
);
EXPORT_SYMBOL
(
storkClockByteToTS
);
EXPORT_SYMBOL
(
storkClockShortToDtoA
);
EXPORT_SYMBOL
(
storkGetLCDCPLD
);
EXPORT_SYMBOL
(
storkSetLCDCPLD
);
include/asm-arm/arch-sa1100/hardware.h
View file @
335611b8
...
@@ -165,6 +165,8 @@ typedef struct { volatile u32 offset[4096]; } __regbase;
...
@@ -165,6 +165,8 @@ typedef struct { volatile u32 offset[4096]; } __regbase;
#include "adsbitsy.h"
#include "adsbitsy.h"
#endif
#endif
#include "stork.h"
#include "system3.h"
#include "system3.h"
#ifdef CONFIG_SA1101
#ifdef CONFIG_SA1101
...
...
include/asm-arm/arch-sa1100/stork.h
0 → 100644
View file @
335611b8
/*
stork.h
*/
#ifndef STORK_SA1100_H
#define STORK_SA1100_H
/* ugly - this will make sure we build sa1100fb for the Nec display not the Kyocera */
#define STORK_TFT 1
#define GPIO_STORK_SWITCH_1 (1 << 0)
/* Switch 1 - input */
#define GPIO_STORK_SWITCH_2 (1 << 1)
/* Switch 2 - input */
#define GPIO_STORK_TOUCH_SCREEN_BUSY (1 << 10)
/* TOUCH_SCREEN_BUSY - input */
#define GPIO_STORK_TOUCH_SCREEN_DATA (1 << 11)
/* TOUCH_SCREEN_DATA - input */
#define GPIO_STORK_CODEC_AGCSTAT (1 << 12)
/* CODEC_AGCSTAT -input */
#define GPIO_STORK_RS232_ON (1 << 13)
/* enable RS232 (UART1) */
#define GPIO_STORK_TEST_POINT (1 << 14)
/* to test point */
#define GPIO_STORK_L3_I2C_SDA (1 << 15)
/* L3_I2C_SDA - bidirectional */
#define GPIO_STORK_PSU_SYNC_MODE (1 << 16)
/* PSU_SYNC_MODE - output */
#define GPIO_STORK_L3_MODE (1 << 17)
/* L3 mode - output (??) */
#define GPIO_STORK_L3_I2C_SCL (1 << 18)
/* L3_I2C_SCL - bidirectional */
#define GPIO_STORK_AUDIO_CLK (1 << 19)
/* SSP external clock (Audio clock) - input */
#define GPIO_STORK_PCMCIA_A_CARD_DETECT (1 << 20)
/* PCMCIA_A_CARD_DETECT - input */
#define GPIO_STORK_PCMCIA_B_CARD_DETECT (1 << 21)
/* PCMCIA_B_CARD_DETECT - input */
#define GPIO_STORK_PCMCIA_A_RDY (1 << 22)
/* PCMCIA_A_RDY - input */
#define GPIO_STORK_PCMCIA_B_RDY (1 << 23)
/* PCMCIA_B_RDY - input */
#define GPIO_STORK_SWITCH_EXTRA_IRQ (1 << 24)
/* Extra IRQ from switch detect logic - input */
#define GPIO_STORK_SWITCH_IRQ (1 << 25)
/* Sitch irq - input */
#define GPIO_STORK_BATTERY_LOW_IRQ (1 << 26)
/* BATTERY_LOW_IRQ - input */
#define GPIO_STORK_TOUCH_SCREEN_PEN_IRQ (1 << 27)
/* TOUCH_SCREEN_PEN_IRQ -input */
#define IRQ_GPIO_STORK_PCMCIA_A_CARD_DETECT IRQ_GPIO20
/* PCMCIA_A_CARD_DETECT - input */
#define IRQ_GPIO_STORK_PCMCIA_B_CARD_DETECT IRQ_GPIO21
/* PCMCIA_B_CARD_DETECT - input */
#define IRQ_GPIO_STORK_SWITCH_1 IRQ_GPIO0
/* Switch 1 - input - active low */
#define IRQ_GPIO_STORK_SWITCH_2 IRQ_GPIO1
/* Switch 2 - input - active low */
#define IRQ_GPIO_STORK_SWITCH_EXTRA_IRQ IRQ_GPIO24
/* Extra IRQ from switch detect logic - input - active low */
#define IRQ_GPIO_STORK_SWITCH_IRQ IRQ_GPIO25
/* Switch irq - input- active low */
#define IRQ_GPIO_STORK_BATTERY_LOW_IRQ IRQ_GPIO26
/* BATTERY_LOW_IRQ - input - active low */
#define IRQ_GPIO_STORK_TOUCH_SCREEN_PEN_IRQ IRQ_GPIO27
/* TOUCH_SCREEN_PEN_IRQ -input - goes low when it happens */
/* this may be bogus - no it's not the RDY line becomes the IRQ line when we're up as an IO device */
#define IRQ_GPIO_STORK_PCMCIA_A_RDY IRQ_GPIO22
/* PCMCIA_A_RDY - input */
#define IRQ_GPIO_STORK_PCMCIA_B_RDY IRQ_GPIO23
/* PCMCIA_B_RDY - input */
/* the default outputs, others are optional - I'll set these in the bootldr for now */
#define GPIO_STORK_OUTPUT_BITS (GPIO_STORK_RS232_ON | GPIO_STORK_PSU_SYNC_MODE | GPIO_STORK_L3_MODE)
#define STORK_LATCH_A_ADDR 0x08000000
/* cs1 A5 = 0 */
#define STORK_LATCH_B_ADDR 0x08000020
/* cs1 A5 = 1 */
#define STORK_LCDCPLD_BASE_ADDR 0x10000000
/* cs2 A5 = 0 */
/* bit defs for latch A - these are write only and will need to be mirrored! */
#define STORK_TEMP_IC_POWER_ON (1 << 0)
#define STORK_SED1386_POWER_ON (1 << 1)
#define STORK_LCD_3V3_POWER_ON (1 << 2)
#define STORK_LCD_5V_POWER_ON (1 << 3)
#define STORK_LCD_BACKLIGHT_INVERTER_ON (1 << 4)
#define STORK_PCMCIA_PULL_UPS_POWER_ON (1 << 5)
#define STORK_PCMCIA_A_POWER_ON (1 << 6)
#define STORK_PCMCIA_B_POWER_ON (1 << 7)
#define STORK_AUDIO_POWER_ON (1 << 8)
#define STORK_AUDIO_AMP_ON (1 << 9)
#define STORK_BAR_CODE_POWER_ON (1 << 10)
#define STORK_BATTERY_CHARGER_ON (1 << 11)
#define STORK_SED1386_RESET (1 << 12)
#define STORK_IRDA_FREQUENCY_SELECT (1 << 13)
#define STORK_IRDA_MODE_0 (1 << 14)
#define STORK_IRDA_MODE_1 (1 << 15)
/* and for B */
#define STORK_AUX_AD_SEL_0 (1 << 0)
#define STORK_AUX_AD_SEL_1 (1 << 1)
#define STORK_TOUCH_SCREEN_DCLK (1 << 2)
#define STORK_TOUCH_SCREEN_DIN (1 << 3)
#define STORK_TOUCH_SCREEN_CS (1 << 4)
#define STORK_DA_CS (1 << 5)
#define STORK_DA_LD (1 << 6)
#define STORK_RED_LED (1 << 7)
/* active LOW */
#define STORK_GREEN_LED (1 << 8)
/* active LOW */
#define STORK_YELLOW_LED (1 << 9)
/* active LOW */
#define STORK_PCMCIA_B_RESET (1 << 10)
#define STORK_PCMCIA_A_RESET (1 << 11)
#define STORK_AUDIO_CODEC_RESET (1 << 12)
#define STORK_CODEC_QMUTE (1 << 13)
#define STORK_AUDIO_CLOCK_SEL0 (1 << 14)
#define STORK_AUDIO_CLOCK_SEL1 (1 << 15)
/*
There are 8 control bits in the touch screen controller (AD7873)
S A2 A1 A0 MODE SER/DFR# PD1 PD0
S Start bit, always one.
A2 - A0 Channel select bits
MODE 0 => 12 bit resolution, 1 => 8 bit
SER/DFR# Single ender/Differential Reference Select bit
PD1, PD0 Power management bits (usually 10)
From Table 1.
A2-A0
0 Temp0 (SER must be 1)
1 X+ (is this a typo? - is this X- really?)
2 VBAT,
3 read X+ (Z1),
4 read Y- (Z2), 5 => read Y+,
*/
#define AD7873_START 0x80
/* all commands need this to be set */
#define AD7873_ADDR_BITS 4
/* ie shift by this */
#define AD7873_8BITMODE 0x08
/* 0 => 12 bit convertions */
#define AD7873_SER_DFR 0x04
#define AD7873_PD1 0x02
#define AD7873_PD0 0x01
#define AD7873_TEMP0 AD7873_SER_DFR
#define AD7873_X (1 << AD7873_ADDR_BITS)
#define AD7873_VBAT ((2 << AD7873_ADDR_BITS) | AD7873_SER_DFR)
#define AD7873_X_Z1 (3 << AD7873_ADDR_BITS)
#define AD7873_Y_Z2 (4 << AD7873_ADDR_BITS)
#define AD7873_Y (5 << AD7873_ADDR_BITS)
#define AD7873_AUX ((6 << AD7873_ADDR_BITS) | AD7873_SER_DFR)
#define AD7873_TEMP1 ((7 << AD7873_ADDR_BITS) | AD7873_SER_DFR)
#ifndef __ASSEMBLY__
extern
int
storkSetLatchA
(
int
bits
);
extern
int
storkClearLatchA
(
int
bits
);
extern
int
storkSetLatchB
(
int
bits
);
extern
int
storkClearLatchB
(
int
bits
);
extern
int
storkSetLCDCPLD
(
int
which
,
int
bits
);
extern
int
storkClearLCDCPLD
(
int
which
,
int
bits
);
extern
void
storkSetGPIO
(
int
bits
);
extern
void
storkClearGPIO
(
int
bits
);
extern
int
storkGetGPIO
(
void
);
extern
void
storkClockShortToDtoA
(
int
word
);
extern
int
storkClockByteToTS
(
int
byte
);
/* this will return the current state of the hardware ANDED with the given bits
so NE => at least one bit was set, but maybe not all of them! */
extern
int
storkTestGPIO
(
int
bits
);
#endif
#endif
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