Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
OpenBMC Firmware
talos-obmc-linux
Commits
5ccf1978
Commit
5ccf1978
authored
15 years ago
by
Tony Lindgren
Browse files
Options
Download
Plain Diff
Merge branch 'for-next' into omap-for-linus
parents
24ed45aa
435bb827
Changes
72
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
3449 additions
and
120 deletions
+3449
-120
Documentation/kernel-parameters.txt
Documentation/kernel-parameters.txt
+5
-0
arch/arm/configs/htcherald_defconfig
arch/arm/configs/htcherald_defconfig
+6
-3
arch/arm/configs/omap3_touchbook_defconfig
arch/arm/configs/omap3_touchbook_defconfig
+2431
-0
arch/arm/configs/omap_4430sdp_defconfig
arch/arm/configs/omap_4430sdp_defconfig
+84
-62
arch/arm/configs/omap_zoom2_defconfig
arch/arm/configs/omap_zoom2_defconfig
+2
-1
arch/arm/configs/omap_zoom3_defconfig
arch/arm/configs/omap_zoom3_defconfig
+2
-1
arch/arm/mach-omap1/Makefile
arch/arm/mach-omap1/Makefile
+7
-0
arch/arm/mach-omap1/board-fsample.c
arch/arm/mach-omap1/board-fsample.c
+47
-13
arch/arm/mach-omap1/board-h2.c
arch/arm/mach-omap1/board-h2.c
+49
-10
arch/arm/mach-omap1/board-h3.c
arch/arm/mach-omap1/board-h3.c
+50
-16
arch/arm/mach-omap1/board-htcherald.c
arch/arm/mach-omap1/board-htcherald.c
+64
-0
arch/arm/mach-omap1/board-innovator.c
arch/arm/mach-omap1/board-innovator.c
+12
-0
arch/arm/mach-omap1/board-osk.c
arch/arm/mach-omap1/board-osk.c
+10
-0
arch/arm/mach-omap1/board-perseus2.c
arch/arm/mach-omap1/board-perseus2.c
+46
-12
arch/arm/mach-omap1/board-voiceblue.c
arch/arm/mach-omap1/board-voiceblue.c
+10
-0
arch/arm/mach-omap1/clock_data.c
arch/arm/mach-omap1/clock_data.c
+2
-2
arch/arm/mach-omap1/i2c.c
arch/arm/mach-omap1/i2c.c
+39
-0
arch/arm/mach-omap1/include/mach/lcd_dma.h
arch/arm/mach-omap1/include/mach/lcd_dma.h
+78
-0
arch/arm/mach-omap1/include/mach/lcdc.h
arch/arm/mach-omap1/include/mach/lcdc.h
+57
-0
arch/arm/mach-omap1/lcd_dma.c
arch/arm/mach-omap1/lcd_dma.c
+448
-0
No files found.
Documentation/kernel-parameters.txt
View file @
5ccf1978
...
...
@@ -1787,6 +1787,11 @@ and is between 256 and 4096 characters. It is defined in the file
waiting for the ACK, so if this is set too high
interrupts *may* be lost!
omap_mux= [OMAP] Override bootloader pin multiplexing.
Format: <mux_mode0.mode_name=value>...
For example, to override I2C bus2:
omap_mux=i2c2_scl.i2c2_scl=0x100,i2c2_sda.i2c2_sda=0x100
opl3= [HW,OSS]
Format: <io>
...
...
This diff is collapsed.
Click to expand it.
arch/arm/configs/htcherald_defconfig
View file @
5ccf1978
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.32-rc
6
# Sat
Nov 14 10:56:01
2009
# Linux kernel version: 2.6.32-rc
8
# Sat
Dec 5 12:16:24
2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
...
...
@@ -198,7 +198,9 @@ CONFIG_ARCH_OMAP1=y
# OMAP Feature Selections
#
# CONFIG_OMAP_RESET_CLOCKS is not set
# CONFIG_OMAP_MUX is not set
CONFIG_OMAP_MUX=y
# CONFIG_OMAP_MUX_DEBUG is not set
CONFIG_OMAP_MUX_WARNINGS=y
CONFIG_OMAP_MCBSP=y
# CONFIG_OMAP_MBOX_FWK is not set
CONFIG_OMAP_MPU_TIMER=y
...
...
@@ -207,6 +209,7 @@ CONFIG_OMAP_LL_DEBUG_UART1=y
# CONFIG_OMAP_LL_DEBUG_UART2 is not set
# CONFIG_OMAP_LL_DEBUG_UART3 is not set
# CONFIG_OMAP_LL_DEBUG_NONE is not set
CONFIG_OMAP_SERIAL_WAKE=y
# CONFIG_OMAP_PM_NONE is not set
CONFIG_OMAP_PM_NOOP=y
...
...
This diff is collapsed.
Click to expand it.
arch/arm/configs/omap3_touchbook_defconfig
0 → 100644
View file @
5ccf1978
This diff is collapsed.
Click to expand it.
arch/arm/configs/omap_4430sdp_defconfig
View file @
5ccf1978
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.3
0-rc7
#
Tue Jun 9 12:36:23
2009
# Linux kernel version: 2.6.3
2
#
Sun Dec 6 23:37:45
2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_
MMU
=y
CONFIG_
GENERIC_CLOCKEVENTS_BROADCAST
=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_LOCKBREAK=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_ARCH_HAS_CPUFREQ=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
CONFIG_VECTORS_BASE=0xffff0000
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_CONSTRUCTORS=y
#
# General setup
...
...
@@ -39,11 +42,12 @@ CONFIG_BSD_PROCESS_ACCT=y
#
# RCU Subsystem
#
CONFIG_CLASSIC_RCU=y
# CONFIG_TREE_RCU is not set
# CONFIG_PREEMPT_RCU is not set
CONFIG_TREE_RCU=y
# CONFIG_TREE_PREEMPT_RCU is not set
# CONFIG_RCU_TRACE is not set
CONFIG_RCU_FANOUT=32
# CONFIG_RCU_FANOUT_EXACT is not set
# CONFIG_TREE_RCU_TRACE is not set
# CONFIG_PREEMPT_RCU_TRACE is not set
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=14
CONFIG_GROUP_SCHED=y
...
...
@@ -52,8 +56,7 @@ CONFIG_FAIR_GROUP_SCHED=y
CONFIG_USER_SCHED=y
# CONFIG_CGROUP_SCHED is not set
# CONFIG_CGROUPS is not set
# CONFIG_SYSFS_DEPRECATED=y is not set
# CONFIG_SYSFS_DEPRECATED_V2=y is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
# CONFIG_RELAY is not set
# CONFIG_NAMESPACES is not set
CONFIG_BLK_DEV_INITRD=y
...
...
@@ -70,7 +73,6 @@ CONFIG_UID16=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
# CONFIG_STRIP_ASM_SYMS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
...
...
@@ -83,6 +85,10 @@ CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
#
# Kernel Performance Events And Counters
#
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
CONFIG_COMPAT_BRK=y
...
...
@@ -90,13 +96,16 @@ CONFIG_COMPAT_BRK=y
CONFIG_SLUB=y
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
# CONFIG_MARKERS is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_USE_GENERIC_SMP_HELPERS=y
CONFIG_HAVE_CLK=y
#
# GCOV-based kernel profiling
#
# CONFIG_SLOW_WORK is not set
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_SLABINFO=y
...
...
@@ -110,7 +119,7 @@ CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
#
CONFIG_LBD
is not set
CONFIG_LBD
AF=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_BLK_DEV_INTEGRITY is not set
...
...
@@ -131,6 +140,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
#
# System Type
#
CONFIG_MMU=y
# CONFIG_ARCH_AAEC2000 is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_REALVIEW is not set
...
...
@@ -142,8 +152,10 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_EP93XX is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
# CONFIG_ARCH_MXC is not set
# CONFIG_ARCH_STMP3XXX is not set
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_H720X is not set
# CONFIG_ARCH_NOMADIK is not set
# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
# CONFIG_ARCH_IOP33X is not set
...
...
@@ -166,10 +178,13 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_S3C64XX is not set
# CONFIG_ARCH_S5PC1XX is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_U300 is not set
# CONFIG_ARCH_DAVINCI is not set
CONFIG_ARCH_OMAP=y
# CONFIG_ARCH_BCMRING is not set
#
# TI OMAP Implementations
...
...
@@ -190,9 +205,12 @@ CONFIG_ARCH_OMAP4=y
CONFIG_OMAP_32K_TIMER=y
CONFIG_OMAP_32K_TIMER_HZ=128
CONFIG_OMAP_DM_TIMER=y
CONFIG_OMAP_LL_DEBUG_UART1
=y
#
CONFIG_OMAP_LL_DEBUG_UART1
is not set
# CONFIG_OMAP_LL_DEBUG_UART2 is not set
# CONFIG_OMAP_LL_DEBUG_UART3 is not set
CONFIG_OMAP_LL_DEBUG_UART3=y
# CONFIG_OMAP_LL_DEBUG_NONE is not set
# CONFIG_OMAP_PM_NONE is not set
CONFIG_OMAP_PM_NOOP=y
#
# OMAP Board Type
...
...
@@ -207,7 +225,7 @@ CONFIG_CPU_32v6K=y
CONFIG_CPU_V7=y
CONFIG_CPU_32v7=y
CONFIG_CPU_ABRT_EV7=y
CONFIG_CPU_PABRT_
IFAR
=y
CONFIG_CPU_PABRT_
V7
=y
CONFIG_CPU_CACHE_V7=y
CONFIG_CPU_CACHE_VIPT=y
CONFIG_CPU_COPY_V6=y
...
...
@@ -222,9 +240,10 @@ CONFIG_CPU_CP15_MMU=y
# CONFIG_ARM_THUMB is not set
# CONFIG_ARM_THUMBEE is not set
# CONFIG_CPU_ICACHE_DISABLE is not set
CONFIG_CPU_DCACHE_DISABLE
=y
#
CONFIG_CPU_DCACHE_DISABLE
is not set
# CONFIG_CPU_BPREDICT_DISABLE is not set
CONFIG_HAS_TLS_REG=y
CONFIG_ARM_L1_CACHE_SHIFT=5
# CONFIG_ARM_ERRATA_430973 is not set
# CONFIG_ARM_ERRATA_458693 is not set
# CONFIG_ARM_ERRATA_460075 is not set
...
...
@@ -245,18 +264,20 @@ CONFIG_ARM_GIC=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_SMP=y
CONFIG_HAVE_ARM_SCU=y
CONFIG_HAVE_ARM_TWD=y
CONFIG_VMSPLIT_3G=y
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_1G is not set
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_NR_CPUS=2
# CONFIG_HOTPLUG_CPU is not set
CONFIG_LOCAL_TIMERS=y
# CONFIG_PREEMPT is not set
# CONFIG_LOCAL_TIMERS is not set
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_HZ=128
# CONFIG_THUMB2_KERNEL is not set
CONFIG_AEABI=y
#
CONFIG_OABI_COMPAT
is not set
CONFIG_OABI_COMPAT
=y
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
# CONFIG_HIGHMEM is not set
...
...
@@ -271,10 +292,13 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_PHYS_ADDR_T_64BIT is not set
CONFIG_ZONE_DMA_FLAG=0
CONFIG_VIRT_TO_BUS=y
# CONFIG_UNEVICTABLE_LRU is not set
CONFIG_HAVE_MLOCK=y
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
# CONFIG_LEDS is not set
CONFIG_ALIGNMENT_TRAP=y
# CONFIG_UACCESS_WITH_MEMCPY is not set
#
# Boot options
...
...
@@ -298,9 +322,11 @@ CONFIG_CMDLINE="root=/dev/ram0 rw mem=128M console=ttyS0,115200n8 initrd=0x81600
#
# At least one emulation must be selected
#
# CONFIG_FPE_NWFPE is not set
# CONFIG_FPE_FASTFPE is not set
CONFIG_VFP=y
CONFIG_VFPv3=y
#
CONFIG_NEON
is not set
CONFIG_NEON
=y
#
# Userspace binary formats
...
...
@@ -325,6 +351,7 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
# CONFIG_DEVTMPFS is not set
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
...
...
@@ -342,6 +369,7 @@ CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=16384
# CONFIG_BLK_DEV_XIP is not set
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_MG_DISK is not set
# CONFIG_MISC_DEVICES is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
...
...
@@ -355,6 +383,7 @@ CONFIG_HAVE_IDE=y
# CONFIG_SCSI_NETLINK is not set
# CONFIG_ATA is not set
# CONFIG_MD is not set
# CONFIG_PHONE is not set
#
# Input device support
...
...
@@ -427,6 +456,11 @@ CONFIG_HW_RANDOM=y
# CONFIG_TCG_TPM is not set
# CONFIG_I2C is not set
# CONFIG_SPI is not set
#
# PPS support
#
# CONFIG_PPS is not set
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_DEBUG_GPIO is not set
...
...
@@ -447,11 +481,14 @@ CONFIG_GPIOLIB=y
#
# SPI GPIO expanders:
#
#
# AC97 GPIO expanders:
#
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
# CONFIG_HWMON is not set
# CONFIG_THERMAL is not set
# CONFIG_THERMAL_HWMON is not set
# CONFIG_WATCHDOG is not set
CONFIG_SSB_POSSIBLE=y
...
...
@@ -472,21 +509,8 @@ CONFIG_SSB_POSSIBLE=y
# CONFIG_MFD_T7L66XB is not set
# CONFIG_MFD_TC6387XB is not set
# CONFIG_MFD_TC6393XB is not set
#
# Multimedia devices
#
#
# Multimedia core support
#
# CONFIG_VIDEO_DEV is not set
# CONFIG_VIDEO_MEDIA is not set
#
# Multimedia drivers
#
CONFIG_DAB=y
# CONFIG_REGULATOR is not set
# CONFIG_MEDIA_SUPPORT is not set
#
# Graphics support
...
...
@@ -511,14 +535,17 @@ CONFIG_DUMMY_CONSOLE=y
# CONFIG_USB_SUPPORT is not set
# CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set
# CONFIG_ACCESSIBILITY is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_ACCESSIBILITY is not set
CONFIG_RTC_LIB=y
# CONFIG_RTC_CLASS is not set
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
# CONFIG_REGULATOR is not set
# CONFIG_UIO is not set
#
# TI VLYNQ
#
# CONFIG_STAGING is not set
#
...
...
@@ -535,9 +562,12 @@ CONFIG_JBD=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_FS_POSIX_ACL is not set
CONFIG_FILE_LOCKING=y
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_BTRFS_FS is not set
# CONFIG_NILFS2_FS is not set
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
...
...
@@ -601,7 +631,6 @@ CONFIG_MISC_FILESYSTEMS=y
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
# CONFIG_NILFS2_FS is not set
#
# Partition Types
...
...
@@ -673,23 +702,24 @@ CONFIG_NLS_ISO8859_1=y
# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_FRAME_WARN=1024
CONFIG_MAGIC_SYSRQ=y
# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_DEBUG_FS is not set
# CONFIG_HEADERS_CHECK is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
# CONFIG_DETECT_SOFTLOCKUP is not set
CONFIG_DETECT_HUNG_TASK=y
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
CONFIG_SCHED_DEBUG
=y
#
CONFIG_SCHED_DEBUG
is not set
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_SLUB_STATS is not set
# CONFIG_DEBUG_KMEMLEAK is not set
# CONFIG_DEBUG_PREEMPT is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
...
...
@@ -708,31 +738,22 @@ CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
# CONFIG_DEBUG_CREDENTIALS is not set
CONFIG_FRAME_POINTER=y
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_PAGE_POISONING is not set
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_TRACING_SUPPORT=y
#
# Tracers
#
# CONFIG_FUNCTION_TRACER is not set
# CONFIG_IRQSOFF_TRACER is not set
# CONFIG_SCHED_TRACER is not set
# CONFIG_CONTEXT_SWITCH_TRACER is not set
# CONFIG_EVENT_TRACER is not set
# CONFIG_BOOT_TRACER is not set
# CONFIG_TRACE_BRANCH_PROFILING is not set
# CONFIG_STACK_TRACER is not set
# CONFIG_KMEMTRACE is not set
# CONFIG_WORKQUEUE_TRACER is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_FTRACE is not set
# CONFIG_BRANCH_PROFILE_NONE is not set
# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
# CONFIG_PROFILE_ALL_BRANCHES is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
...
...
@@ -754,7 +775,6 @@ CONFIG_CRYPTO=y
#
# Crypto core or helper
#
# CONFIG_CRYPTO_FIPS is not set
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD2=y
...
...
@@ -796,11 +816,13 @@ CONFIG_CRYPTO_PCBC=m
#
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_VMAC is not set
#
# Digest
#
CONFIG_CRYPTO_CRC32C=y
# CONFIG_CRYPTO_GHASH is not set
# CONFIG_CRYPTO_MD4 is not set
CONFIG_CRYPTO_MD5=y
# CONFIG_CRYPTO_MICHAEL_MIC is not set
...
...
This diff is collapsed.
Click to expand it.
arch/arm/configs/omap_zoom2_defconfig
View file @
5ccf1978
...
...
@@ -610,7 +610,8 @@ CONFIG_INPUT_EVDEV=y
#
# Input Device Drivers
#
# CONFIG_INPUT_KEYBOARD is not set
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_TWL4030=y
# CONFIG_INPUT_MOUSE is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
...
...
This diff is collapsed.
Click to expand it.
arch/arm/configs/omap_zoom3_defconfig
View file @
5ccf1978
...
...
@@ -629,7 +629,8 @@ CONFIG_INPUT_EVDEV=y
#
# Input Device Drivers
#
# CONFIG_INPUT_KEYBOARD is not set
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_TWL4030=y
# CONFIG_INPUT_MOUSE is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap1/Makefile
View file @
5ccf1978
...
...
@@ -18,6 +18,9 @@ obj-$(CONFIG_PM) += pm.o sleep.o
obj-$(CONFIG_OMAP_MBOX_FWK)
+=
mailbox_mach.o
mailbox_mach-objs
:=
mailbox.o
i2c-omap-$(CONFIG_I2C_OMAP)
:=
i2c.o
obj-y
+=
$
(
i2c-omap-m
)
$
(
i2c-omap-y
)
led-y
:=
leds.o
# Specific board support
...
...
@@ -49,3 +52,7 @@ led-$(CONFIG_MACH_OMAP_INNOVATOR) += leds-innovator.o
led-$(CONFIG_MACH_OMAP_PERSEUS2)
+=
leds-h2p2-debug.o
led-$(CONFIG_MACH_OMAP_OSK)
+=
leds-osk.o
obj-$(CONFIG_LEDS)
+=
$
(
led-y
)
ifneq
($(CONFIG_FB_OMAP),)
obj-y
+=
lcd_dma.o
endif
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap1/board-fsample.c
View file @
5ccf1978
...
...
@@ -19,6 +19,7 @@
#include <linux/mtd/nand.h>
#include <linux/mtd/partitions.h>
#include <linux/input.h>
#include <linux/smc91x.h>
#include <mach/hardware.h>
#include <asm/mach-types.h>
...
...
@@ -30,7 +31,6 @@
#include <mach/gpio.h>
#include <plat/mux.h>
#include <plat/fpga.h>
#include <plat/nand.h>
#include <plat/keypad.h>
#include <plat/common.h>
#include <plat/board.h>
...
...
@@ -100,6 +100,12 @@ static int fsample_keymap[] = {
0
};
static
struct
smc91x_platdata
smc91x_info
=
{
.
flags
=
SMC91X_USE_16BIT
|
SMC91X_NOWAIT
,
.
leda
=
RPC_LED_100_10
,
.
ledb
=
RPC_LED_TX_RX
,
};
static
struct
resource
smc91x_resources
[]
=
{
[
0
]
=
{
.
start
=
H2P2_DBG_FPGA_ETHR_START
,
/* Physical */
...
...
@@ -167,8 +173,40 @@ static struct platform_device nor_device = {
.
resource
=
&
nor_resource
,
};
static
struct
omap_nand_platform_data
nand_data
=
{
.
options
=
NAND_SAMSUNG_LP_OPTIONS
,
static
void
nand_cmd_ctl
(
struct
mtd_info
*
mtd
,
int
cmd
,
unsigned
int
ctrl
)
{
struct
nand_chip
*
this
=
mtd
->
priv
;
unsigned
long
mask
;
if
(
cmd
==
NAND_CMD_NONE
)
return
;
mask
=
(
ctrl
&
NAND_CLE
)
?
0x02
:
0
;
if
(
ctrl
&
NAND_ALE
)
mask
|=
0x04
;
writeb
(
cmd
,
(
unsigned
long
)
this
->
IO_ADDR_W
|
mask
);
}
#define FSAMPLE_NAND_RB_GPIO_PIN 62
static
int
nand_dev_ready
(
struct
mtd_info
*
mtd
)
{
return
gpio_get_value
(
FSAMPLE_NAND_RB_GPIO_PIN
);
}
static
const
char
*
part_probes
[]
=
{
"cmdlinepart"
,
NULL
};
static
struct
platform_nand_data
nand_data
=
{
.
chip
=
{
.
nr_chips
=
1
,
.
chip_offset
=
0
,
.
options
=
NAND_SAMSUNG_LP_OPTIONS
,
.
part_probe_types
=
part_probes
,
},
.
ctrl
=
{
.
cmd_ctrl
=
nand_cmd_ctl
,
.
dev_ready
=
nand_dev_ready
,
},
};
static
struct
resource
nand_resource
=
{
...
...
@@ -178,7 +216,7 @@ static struct resource nand_resource = {
};
static
struct
platform_device
nand_device
=
{
.
name
=
"
omap
nand"
,
.
name
=
"
gen_
nand"
,
.
id
=
0
,
.
dev
=
{
.
platform_data
=
&
nand_data
,
...
...
@@ -190,6 +228,9 @@ static struct platform_device nand_device = {
static
struct
platform_device
smc91x_device
=
{
.
name
=
"smc91x"
,
.
id
=
0
,
.
dev
=
{
.
platform_data
=
&
smc91x_info
,
},
.
num_resources
=
ARRAY_SIZE
(
smc91x_resources
),
.
resource
=
smc91x_resources
,
};
...
...
@@ -233,13 +274,6 @@ static struct platform_device *devices[] __initdata = {
&
lcd_device
,
};
#define P2_NAND_RB_GPIO_PIN 62
static
int
nand_dev_ready
(
struct
omap_nand_platform_data
*
data
)
{
return
gpio_get_value
(
P2_NAND_RB_GPIO_PIN
);
}
static
struct
omap_lcd_config
fsample_lcd_config
__initdata
=
{
.
ctrl_name
=
"internal"
,
};
...
...
@@ -250,9 +284,9 @@ static struct omap_board_config_kernel fsample_config[] = {
static
void
__init
omap_fsample_init
(
void
)
{
if
(
gpio_request
(
P2
_NAND_RB_GPIO_PIN
,
"NAND ready"
)
<
0
)
if
(
gpio_request
(
FSAMPLE
_NAND_RB_GPIO_PIN
,
"NAND ready"
)
<
0
)
BUG
();
nand_data
.
dev_ready
=
nand_dev_ready
;
gpio_direction_input
(
FSAMPLE_NAND_RB_GPIO_PIN
)
;
omap_cfg_reg
(
L3_1610_FLASH_CS2B_OE
);
omap_cfg_reg
(
M8_1610_FLASH_CS2B_WE
);
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap1/board-h2.c
View file @
5ccf1978
...
...
@@ -28,6 +28,7 @@
#include <linux/mtd/partitions.h>
#include <linux/input.h>
#include <linux/i2c/tps65010.h>
#include <linux/smc91x.h>
#include <mach/hardware.h>
#include <asm/gpio.h>
...
...
@@ -40,7 +41,6 @@
#include <plat/mux.h>
#include <plat/dma.h>
#include <plat/tc.h>
#include <plat/nand.h>
#include <plat/irda.h>
#include <plat/usb.h>
#include <plat/keypad.h>
...
...
@@ -179,11 +179,43 @@ static struct mtd_partition h2_nand_partitions[] = {
},
};
/* dip switches control NAND chip access: 8 bit, 16 bit, or neither */
static
struct
omap_nand_platform_data
h2_nand_data
=
{
.
options
=
NAND_SAMSUNG_LP_OPTIONS
,
.
parts
=
h2_nand_partitions
,
.
nr_parts
=
ARRAY_SIZE
(
h2_nand_partitions
),
static
void
h2_nand_cmd_ctl
(
struct
mtd_info
*
mtd
,
int
cmd
,
unsigned
int
ctrl
)
{
struct
nand_chip
*
this
=
mtd
->
priv
;
unsigned
long
mask
;
if
(
cmd
==
NAND_CMD_NONE
)
return
;
mask
=
(
ctrl
&
NAND_CLE
)
?
0x02
:
0
;
if
(
ctrl
&
NAND_ALE
)
mask
|=
0x04
;
writeb
(
cmd
,
(
unsigned
long
)
this
->
IO_ADDR_W
|
mask
);
}
#define H2_NAND_RB_GPIO_PIN 62
static
int
h2_nand_dev_ready
(
struct
mtd_info
*
mtd
)
{
return
gpio_get_value
(
H2_NAND_RB_GPIO_PIN
);
}
static
const
char
*
h2_part_probes
[]
=
{
"cmdlinepart"
,
NULL
};
struct
platform_nand_data
h2_nand_platdata
=
{
.
chip
=
{
.
nr_chips
=
1
,
.
chip_offset
=
0
,
.
nr_partitions
=
ARRAY_SIZE
(
h2_nand_partitions
),
.
partitions
=
h2_nand_partitions
,
.
options
=
NAND_SAMSUNG_LP_OPTIONS
,
.
part_probe_types
=
h2_part_probes
,
},
.
ctrl
=
{
.
cmd_ctrl
=
h2_nand_cmd_ctl
,
.
dev_ready
=
h2_nand_dev_ready
,
},
};
static
struct
resource
h2_nand_resource
=
{
...
...
@@ -191,15 +223,21 @@ static struct resource h2_nand_resource = {
};
static
struct
platform_device
h2_nand_device
=
{
.
name
=
"
omap
nand"
,
.
name
=
"
gen_
nand"
,
.
id
=
0
,
.
dev
=
{
.
platform_data
=
&
h2_nand_data
,
.
platform_data
=
&
h2_nand_
plat
data
,
},
.
num_resources
=
1
,
.
resource
=
&
h2_nand_resource
,
};
static
struct
smc91x_platdata
h2_smc91x_info
=
{
.
flags
=
SMC91X_USE_16BIT
|
SMC91X_NOWAIT
,
.
leda
=
RPC_LED_100_10
,
.
ledb
=
RPC_LED_TX_RX
,
};
static
struct
resource
h2_smc91x_resources
[]
=
{
[
0
]
=
{
.
start
=
OMAP1610_ETHR_START
,
/* Physical */
...
...
@@ -216,6 +254,9 @@ static struct resource h2_smc91x_resources[] = {
static
struct
platform_device
h2_smc91x_device
=
{
.
name
=
"smc91x"
,
.
id
=
0
,
.
dev
=
{
.
platform_data
=
&
h2_smc91x_info
,
},
.
num_resources
=
ARRAY_SIZE
(
h2_smc91x_resources
),
.
resource
=
h2_smc91x_resources
,
};
...
...
@@ -368,8 +409,6 @@ static struct omap_board_config_kernel h2_config[] __initdata = {
{
OMAP_TAG_LCD
,
&
h2_lcd_config
},
};
#define H2_NAND_RB_GPIO_PIN 62
static
void
__init
h2_init
(
void
)
{
/* Here we assume the NOR boot config: NOR on CS3 (possibly swapped
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap1/board-h3.c
View file @
5ccf1978
...
...
@@ -28,6 +28,7 @@
#include <linux/input.h>
#include <linux/spi/spi.h>
#include <linux/i2c/tps65010.h>
#include <linux/smc91x.h>
#include <asm/setup.h>
#include <asm/page.h>
...
...
@@ -42,7 +43,6 @@
#include <mach/irqs.h>
#include <plat/mux.h>
#include <plat/tc.h>
#include <plat/nand.h>
#include <plat/usb.h>
#include <plat/keypad.h>
#include <plat/dma.h>
...
...
@@ -181,11 +181,43 @@ static struct mtd_partition nand_partitions[] = {
},
};
/* dip switches control NAND chip access: 8 bit, 16 bit, or neither */
static
struct
omap_nand_platform_data
nand_data
=
{
.
options
=
NAND_SAMSUNG_LP_OPTIONS
,
.
parts
=
nand_partitions
,
.
nr_parts
=
ARRAY_SIZE
(
nand_partitions
),
static
void
nand_cmd_ctl
(
struct
mtd_info
*
mtd
,
int
cmd
,
unsigned
int
ctrl
)
{
struct
nand_chip
*
this
=
mtd
->
priv
;
unsigned
long
mask
;
if
(
cmd
==
NAND_CMD_NONE
)
return
;
mask
=
(
ctrl
&
NAND_CLE
)
?
0x02
:
0
;
if
(
ctrl
&
NAND_ALE
)
mask
|=
0x04
;
writeb
(
cmd
,
(
unsigned
long
)
this
->
IO_ADDR_W
|
mask
);
}
#define H3_NAND_RB_GPIO_PIN 10
static
int
nand_dev_ready
(
struct
mtd_info
*
mtd
)
{
return
gpio_get_value
(
H3_NAND_RB_GPIO_PIN
);
}
static
const
char
*
part_probes
[]
=
{
"cmdlinepart"
,
NULL
};
struct
platform_nand_data
nand_platdata
=
{
.
chip
=
{
.
nr_chips
=
1
,
.
chip_offset
=
0
,
.
nr_partitions
=
ARRAY_SIZE
(
nand_partitions
),
.
partitions
=
nand_partitions
,
.
options
=
NAND_SAMSUNG_LP_OPTIONS
,
.
part_probe_types
=
part_probes
,
},
.
ctrl
=
{
.
cmd_ctrl
=
nand_cmd_ctl
,
.
dev_ready
=
nand_dev_ready
,
},
};
static
struct
resource
nand_resource
=
{
...
...
@@ -193,15 +225,21 @@ static struct resource nand_resource = {
};
static
struct
platform_device
nand_device
=
{
.
name
=
"
omap
nand"
,
.
name
=
"
gen_
nand"
,
.
id
=
0
,
.
dev
=
{
.
platform_data
=
&
nand_data
,
.
platform_data
=
&
nand_
plat
data
,
},
.
num_resources
=
1
,
.
resource
=
&
nand_resource
,
};
static
struct
smc91x_platdata
smc91x_info
=
{
.
flags
=
SMC91X_USE_16BIT
|
SMC91X_NOWAIT
,
.
leda
=
RPC_LED_100_10
,
.
ledb
=
RPC_LED_TX_RX
,
};
static
struct
resource
smc91x_resources
[]
=
{
[
0
]
=
{
.
start
=
OMAP1710_ETHR_START
,
/* Physical */
...
...
@@ -218,6 +256,9 @@ static struct resource smc91x_resources[] = {
static
struct
platform_device
smc91x_device
=
{
.
name
=
"smc91x"
,
.
id
=
0
,
.
dev
=
{
.
platform_data
=
&
smc91x_info
,
},
.
num_resources
=
ARRAY_SIZE
(
smc91x_resources
),
.
resource
=
smc91x_resources
,
};
...
...
@@ -332,13 +373,6 @@ static struct i2c_board_info __initdata h3_i2c_board_info[] = {
},
};
#define H3_NAND_RB_GPIO_PIN 10
static
int
nand_dev_ready
(
struct
omap_nand_platform_data
*
data
)
{
return
gpio_get_value
(
H3_NAND_RB_GPIO_PIN
);
}
static
void
__init
h3_init
(
void
)
{
/* Here we assume the NOR boot config: NOR on CS3 (possibly swapped
...
...
@@ -356,7 +390,7 @@ static void __init h3_init(void)
nand_resource
.
end
+=
SZ_4K
-
1
;
if
(
gpio_request
(
H3_NAND_RB_GPIO_PIN
,
"NAND ready"
)
<
0
)
BUG
();
nand_data
.
dev_ready
=
nand_dev_ready
;
gpio_direction_input
(
H3_NAND_RB_GPIO_PIN
)
;
/* GPIO10 Func_MUX_CTRL reg bit 29:27, Configure V2 to mode1 as GPIO */
/* GPIO10 pullup/down register, Enable pullup on GPIO10 */
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap1/board-htcherald.c
View file @
5ccf1978
...
...
@@ -39,6 +39,7 @@
#include <plat/common.h>
#include <plat/board.h>
#include <plat/keypad.h>
#include <plat/usb.h>
#include <mach/irqs.h>
...
...
@@ -140,6 +141,15 @@ static struct platform_device kp_device = {
.
resource
=
kp_resources
,
};
/* USB Device */
static
struct
omap_usb_config
htcherald_usb_config
__initdata
=
{
.
otg
=
0
,
.
register_host
=
0
,
.
register_dev
=
1
,
.
hmc_mode
=
4
,
.
pins
[
0
]
=
2
,
};
/* LCD Device resources */
static
struct
platform_device
lcd_device
=
{
.
name
=
"lcd_htcherald"
,
...
...
@@ -214,6 +224,57 @@ static void __init htcherald_disable_watchdog(void)
}
}
#define HTCHERALD_GPIO_USB_EN1 33
#define HTCHERALD_GPIO_USB_EN2 73
#define HTCHERALD_GPIO_USB_DM 35
#define HTCHERALD_GPIO_USB_DP 36
static
void
__init
htcherald_usb_enable
(
void
)
{
unsigned
int
tries
=
20
;
unsigned
int
value
=
0
;
/* Request the GPIOs we need to control here */
if
(
gpio_request
(
HTCHERALD_GPIO_USB_EN1
,
"herald_usb"
)
<
0
)
goto
err1
;
if
(
gpio_request
(
HTCHERALD_GPIO_USB_EN2
,
"herald_usb"
)
<
0
)
goto
err2
;
if
(
gpio_request
(
HTCHERALD_GPIO_USB_DM
,
"herald_usb"
)
<
0
)
goto
err3
;
if
(
gpio_request
(
HTCHERALD_GPIO_USB_DP
,
"herald_usb"
)
<
0
)
goto
err4
;
/* force USB_EN GPIO to 0 */
do
{
/* output low */
gpio_direction_output
(
HTCHERALD_GPIO_USB_EN1
,
0
);
}
while
((
value
=
gpio_get_value
(
HTCHERALD_GPIO_USB_EN1
))
==
1
&&
--
tries
);
if
(
value
==
1
)
printk
(
KERN_WARNING
"Unable to reset USB, trying to continue
\n
"
);
gpio_direction_output
(
HTCHERALD_GPIO_USB_EN2
,
0
);
/* output low */
gpio_direction_input
(
HTCHERALD_GPIO_USB_DM
);
/* input */
gpio_direction_input
(
HTCHERALD_GPIO_USB_DP
);
/* input */
goto
done
;
err4:
gpio_free
(
HTCHERALD_GPIO_USB_DM
);
err3:
gpio_free
(
HTCHERALD_GPIO_USB_EN2
);
err2:
gpio_free
(
HTCHERALD_GPIO_USB_EN1
);
err1:
printk
(
KERN_ERR
"Unabled to request GPIO for USB
\n
"
);
done:
printk
(
KERN_INFO
"USB setup complete.
\n
"
);
}
static
void
__init
htcherald_init
(
void
)
{
printk
(
KERN_INFO
"HTC Herald init.
\n
"
);
...
...
@@ -225,6 +286,9 @@ static void __init htcherald_init(void)
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
htcherald_disable_watchdog
();
htcherald_usb_enable
();
omap_usb_init
(
&
htcherald_usb_config
);
}
static
void
__init
htcherald_init_irq
(
void
)
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap1/board-innovator.c
View file @
5ccf1978
...
...
@@ -23,6 +23,7 @@
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
#include <linux/input.h>
#include <linux/smc91x.h>
#include <mach/hardware.h>
#include <asm/mach-types.h>
...
...
@@ -142,6 +143,11 @@ static struct platform_device innovator_kp_device = {
.
resource
=
innovator_kp_resources
,
};
static
struct
smc91x_platdata
innovator_smc91x_info
=
{
.
flags
=
SMC91X_USE_16BIT
|
SMC91X_NOWAIT
,
.
leda
=
RPC_LED_100_10
,
.
ledb
=
RPC_LED_TX_RX
,
};
#ifdef CONFIG_ARCH_OMAP15XX
...
...
@@ -175,6 +181,9 @@ static struct resource innovator1510_smc91x_resources[] = {
static
struct
platform_device
innovator1510_smc91x_device
=
{
.
name
=
"smc91x"
,
.
id
=
0
,
.
dev
=
{
.
platform_data
=
&
innovator_smc91x_info
,
},
.
num_resources
=
ARRAY_SIZE
(
innovator1510_smc91x_resources
),
.
resource
=
innovator1510_smc91x_resources
,
};
...
...
@@ -241,6 +250,9 @@ static struct resource innovator1610_smc91x_resources[] = {
static
struct
platform_device
innovator1610_smc91x_device
=
{
.
name
=
"smc91x"
,
.
id
=
0
,
.
dev
=
{
.
platform_data
=
&
innovator_smc91x_info
,
},
.
num_resources
=
ARRAY_SIZE
(
innovator1610_smc91x_resources
),
.
resource
=
innovator1610_smc91x_resources
,
};
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap1/board-osk.c
View file @
5ccf1978
...
...
@@ -33,6 +33,7 @@
#include <linux/irq.h>
#include <linux/i2c.h>
#include <linux/leds.h>
#include <linux/smc91x.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
...
...
@@ -115,6 +116,12 @@ static struct platform_device osk5912_flash_device = {
.
resource
=
&
osk_flash_resource
,
};
static
struct
smc91x_platdata
osk5912_smc91x_info
=
{
.
flags
=
SMC91X_USE_16BIT
|
SMC91X_NOWAIT
,
.
leda
=
RPC_LED_100_10
,
.
ledb
=
RPC_LED_TX_RX
,
};
static
struct
resource
osk5912_smc91x_resources
[]
=
{
[
0
]
=
{
.
start
=
OMAP_OSK_ETHR_START
,
/* Physical */
...
...
@@ -131,6 +138,9 @@ static struct resource osk5912_smc91x_resources[] = {
static
struct
platform_device
osk5912_smc91x_device
=
{
.
name
=
"smc91x"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
osk5912_smc91x_info
,
},
.
num_resources
=
ARRAY_SIZE
(
osk5912_smc91x_resources
),
.
resource
=
osk5912_smc91x_resources
,
};
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap1/board-perseus2.c
View file @
5ccf1978
...
...
@@ -19,6 +19,7 @@
#include <linux/mtd/nand.h>
#include <linux/mtd/partitions.h>
#include <linux/input.h>
#include <linux/smc91x.h>
#include <mach/hardware.h>
#include <asm/mach-types.h>
...
...
@@ -30,7 +31,6 @@
#include <mach/gpio.h>
#include <plat/mux.h>
#include <plat/fpga.h>
#include <plat/nand.h>
#include <plat/keypad.h>
#include <plat/common.h>
#include <plat/board.h>
...
...
@@ -67,6 +67,12 @@ static int p2_keymap[] = {
0
};
static
struct
smc91x_platdata
smc91x_info
=
{
.
flags
=
SMC91X_USE_16BIT
|
SMC91X_NOWAIT
,
.
leda
=
RPC_LED_100_10
,
.
ledb
=
RPC_LED_TX_RX
,
};
static
struct
resource
smc91x_resources
[]
=
{
[
0
]
=
{
.
start
=
H2P2_DBG_FPGA_ETHR_START
,
/* Physical */
...
...
@@ -134,8 +140,40 @@ static struct platform_device nor_device = {
.
resource
=
&
nor_resource
,
};
static
struct
omap_nand_platform_data
nand_data
=
{
.
options
=
NAND_SAMSUNG_LP_OPTIONS
,
static
void
nand_cmd_ctl
(
struct
mtd_info
*
mtd
,
int
cmd
,
unsigned
int
ctrl
)
{
struct
nand_chip
*
this
=
mtd
->
priv
;
unsigned
long
mask
;
if
(
cmd
==
NAND_CMD_NONE
)
return
;
mask
=
(
ctrl
&
NAND_CLE
)
?
0x02
:
0
;
if
(
ctrl
&
NAND_ALE
)
mask
|=
0x04
;
writeb
(
cmd
,
(
unsigned
long
)
this
->
IO_ADDR_W
|
mask
);
}
#define P2_NAND_RB_GPIO_PIN 62
static
int
nand_dev_ready
(
struct
mtd_info
*
mtd
)
{
return
gpio_get_value
(
P2_NAND_RB_GPIO_PIN
);
}
static
const
char
*
part_probes
[]
=
{
"cmdlinepart"
,
NULL
};
static
struct
platform_nand_data
nand_data
=
{
.
chip
=
{
.
nr_chips
=
1
,
.
chip_offset
=
0
,
.
options
=
NAND_SAMSUNG_LP_OPTIONS
,
.
part_probe_types
=
part_probes
,
},
.
ctrl
=
{
.
cmd_ctrl
=
nand_cmd_ctl
,
.
dev_ready
=
nand_dev_ready
,
},
};
static
struct
resource
nand_resource
=
{
...
...
@@ -145,7 +183,7 @@ static struct resource nand_resource = {
};
static
struct
platform_device
nand_device
=
{
.
name
=
"
omap
nand"
,
.
name
=
"
gen_
nand"
,
.
id
=
0
,
.
dev
=
{
.
platform_data
=
&
nand_data
,
...
...
@@ -157,6 +195,9 @@ static struct platform_device nand_device = {
static
struct
platform_device
smc91x_device
=
{
.
name
=
"smc91x"
,
.
id
=
0
,
.
dev
=
{
.
platform_data
=
&
smc91x_info
,
},
.
num_resources
=
ARRAY_SIZE
(
smc91x_resources
),
.
resource
=
smc91x_resources
,
};
...
...
@@ -201,13 +242,6 @@ static struct platform_device *devices[] __initdata = {
&
lcd_device
,
};
#define P2_NAND_RB_GPIO_PIN 62
static
int
nand_dev_ready
(
struct
omap_nand_platform_data
*
data
)
{
return
gpio_get_value
(
P2_NAND_RB_GPIO_PIN
);
}
static
struct
omap_lcd_config
perseus2_lcd_config
__initdata
=
{
.
ctrl_name
=
"internal"
,
};
...
...
@@ -220,7 +254,7 @@ static void __init omap_perseus2_init(void)
{
if
(
gpio_request
(
P2_NAND_RB_GPIO_PIN
,
"NAND ready"
)
<
0
)
BUG
();
nand_data
.
dev_ready
=
nand_dev_ready
;
gpio_direction_input
(
P2_NAND_RB_GPIO_PIN
)
;
omap_cfg_reg
(
L3_1610_FLASH_CS2B_OE
);
omap_cfg_reg
(
M8_1610_FLASH_CS2B_WE
);
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap1/board-voiceblue.c
View file @
5ccf1978
...
...
@@ -22,6 +22,7 @@
#include <linux/reboot.h>
#include <linux/serial_8250.h>
#include <linux/serial_reg.h>
#include <linux/smc91x.h>
#include <mach/hardware.h>
#include <asm/mach-types.h>
...
...
@@ -106,6 +107,12 @@ static struct platform_device voiceblue_flash_device = {
.
resource
=
&
voiceblue_flash_resource
,
};
static
struct
smc91x_platdata
voiceblue_smc91x_info
=
{
.
flags
=
SMC91X_USE_16BIT
|
SMC91X_NOWAIT
,
.
leda
=
RPC_LED_100_10
,
.
ledb
=
RPC_LED_TX_RX
,
};
static
struct
resource
voiceblue_smc91x_resources
[]
=
{
[
0
]
=
{
.
start
=
OMAP_CS2_PHYS
+
0x300
,
...
...
@@ -122,6 +129,9 @@ static struct resource voiceblue_smc91x_resources[] = {
static
struct
platform_device
voiceblue_smc91x_device
=
{
.
name
=
"smc91x"
,
.
id
=
0
,
.
dev
=
{
.
platform_data
=
&
voiceblue_smc91x_info
,
},
.
num_resources
=
ARRAY_SIZE
(
voiceblue_smc91x_resources
),
.
resource
=
voiceblue_smc91x_resources
,
};
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap1/clock_data.c
View file @
5ccf1978
...
...
@@ -655,9 +655,9 @@ static struct omap_clk omap_clks[] = {
CLK
(
"mmci-omap.1"
,
"ick"
,
&
armper_ck
.
clk
,
CK_16XX
),
/* Virtual clocks */
CLK
(
NULL
,
"mpu"
,
&
virtual_ck_mpu
,
CK_16XX
|
CK_1510
|
CK_310
),
CLK
(
"i2c_omap.1"
,
"fck"
,
&
i2c_fck
,
CK_16XX
|
CK_1510
|
CK_310
),
CLK
(
"i2c_omap.1"
,
"fck"
,
&
i2c_fck
,
CK_16XX
|
CK_1510
|
CK_310
|
CK_7XX
),
CLK
(
"i2c_omap.1"
,
"ick"
,
&
i2c_ick
,
CK_16XX
),
CLK
(
"i2c_omap.1"
,
"ick"
,
&
dummy_ck
,
CK_1510
|
CK_310
),
CLK
(
"i2c_omap.1"
,
"ick"
,
&
dummy_ck
,
CK_1510
|
CK_310
|
CK_7XX
),
CLK
(
"omap_uwire"
,
"fck"
,
&
armxor_ck
.
clk
,
CK_16XX
|
CK_1510
|
CK_310
),
CLK
(
"omap-mcbsp.1"
,
"ick"
,
&
dspper_ck
,
CK_16XX
),
CLK
(
"omap-mcbsp.1"
,
"ick"
,
&
dummy_ck
,
CK_1510
|
CK_310
),
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap1/i2c.c
0 → 100644
View file @
5ccf1978
/*
* Helper module for board specific I2C bus registration
*
* Copyright (C) 2009 Nokia Corporation.
*
* 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.
*
* 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., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA
*
*/
#include <plat/i2c.h>
#include <plat/mux.h>
#include <plat/cpu.h>
int
__init
omap_register_i2c_bus
(
int
bus_id
,
u32
clkrate
,
struct
i2c_board_info
const
*
info
,
unsigned
len
)
{
if
(
cpu_is_omap7xx
())
{
omap_cfg_reg
(
I2C_7XX_SDA
);
omap_cfg_reg
(
I2C_7XX_SCL
);
}
else
{
omap_cfg_reg
(
I2C_SDA
);
omap_cfg_reg
(
I2C_SCL
);
}
return
omap_plat_register_i2c_bus
(
bus_id
,
clkrate
,
info
,
len
);
}
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap1/include/mach/lcd_dma.h
0 → 100644
View file @
5ccf1978
/*
* arch/arm/mach-omap1/include/mach/lcd_dma.h
*
* Extracted from arch/arm/plat-omap/include/plat/dma.h
* Copyright (C) 2003 Nokia Corporation
* Author: Juha Yrjölä <juha.yrjola@nokia.com>
*
* 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
*/
#ifndef __MACH_OMAP1_LCD_DMA_H__
#define __MACH_OMAP1_LCD_DMA_H__
/* Hardware registers for LCD DMA */
#define OMAP1510_DMA_LCD_BASE (0xfffedb00)
#define OMAP1510_DMA_LCD_CTRL (OMAP1510_DMA_LCD_BASE + 0x00)
#define OMAP1510_DMA_LCD_TOP_F1_L (OMAP1510_DMA_LCD_BASE + 0x02)
#define OMAP1510_DMA_LCD_TOP_F1_U (OMAP1510_DMA_LCD_BASE + 0x04)
#define OMAP1510_DMA_LCD_BOT_F1_L (OMAP1510_DMA_LCD_BASE + 0x06)
#define OMAP1510_DMA_LCD_BOT_F1_U (OMAP1510_DMA_LCD_BASE + 0x08)
#define OMAP1610_DMA_LCD_BASE (0xfffee300)
#define OMAP1610_DMA_LCD_CSDP (OMAP1610_DMA_LCD_BASE + 0xc0)
#define OMAP1610_DMA_LCD_CCR (OMAP1610_DMA_LCD_BASE + 0xc2)
#define OMAP1610_DMA_LCD_CTRL (OMAP1610_DMA_LCD_BASE + 0xc4)
#define OMAP1610_DMA_LCD_TOP_B1_L (OMAP1610_DMA_LCD_BASE + 0xc8)
#define OMAP1610_DMA_LCD_TOP_B1_U (OMAP1610_DMA_LCD_BASE + 0xca)
#define OMAP1610_DMA_LCD_BOT_B1_L (OMAP1610_DMA_LCD_BASE + 0xcc)
#define OMAP1610_DMA_LCD_BOT_B1_U (OMAP1610_DMA_LCD_BASE + 0xce)
#define OMAP1610_DMA_LCD_TOP_B2_L (OMAP1610_DMA_LCD_BASE + 0xd0)
#define OMAP1610_DMA_LCD_TOP_B2_U (OMAP1610_DMA_LCD_BASE + 0xd2)
#define OMAP1610_DMA_LCD_BOT_B2_L (OMAP1610_DMA_LCD_BASE + 0xd4)
#define OMAP1610_DMA_LCD_BOT_B2_U (OMAP1610_DMA_LCD_BASE + 0xd6)
#define OMAP1610_DMA_LCD_SRC_EI_B1 (OMAP1610_DMA_LCD_BASE + 0xd8)
#define OMAP1610_DMA_LCD_SRC_FI_B1_L (OMAP1610_DMA_LCD_BASE + 0xda)
#define OMAP1610_DMA_LCD_SRC_EN_B1 (OMAP1610_DMA_LCD_BASE + 0xe0)
#define OMAP1610_DMA_LCD_SRC_FN_B1 (OMAP1610_DMA_LCD_BASE + 0xe4)
#define OMAP1610_DMA_LCD_LCH_CTRL (OMAP1610_DMA_LCD_BASE + 0xea)
#define OMAP1610_DMA_LCD_SRC_FI_B1_U (OMAP1610_DMA_LCD_BASE + 0xf4)
/* LCD DMA block numbers */
enum
{
OMAP_LCD_DMA_B1_TOP
,
OMAP_LCD_DMA_B1_BOTTOM
,
OMAP_LCD_DMA_B2_TOP
,
OMAP_LCD_DMA_B2_BOTTOM
};
/* LCD DMA functions */
extern
int
omap_request_lcd_dma
(
void
(
*
callback
)(
u16
status
,
void
*
data
),
void
*
data
);
extern
void
omap_free_lcd_dma
(
void
);
extern
void
omap_setup_lcd_dma
(
void
);
extern
void
omap_enable_lcd_dma
(
void
);
extern
void
omap_stop_lcd_dma
(
void
);
extern
void
omap_set_lcd_dma_ext_controller
(
int
external
);
extern
void
omap_set_lcd_dma_single_transfer
(
int
single
);
extern
void
omap_set_lcd_dma_b1
(
unsigned
long
addr
,
u16
fb_xres
,
u16
fb_yres
,
int
data_type
);
extern
void
omap_set_lcd_dma_b1_rotation
(
int
rotate
);
extern
void
omap_set_lcd_dma_b1_vxres
(
unsigned
long
vxres
);
extern
void
omap_set_lcd_dma_b1_mirror
(
int
mirror
);
extern
void
omap_set_lcd_dma_b1_scale
(
unsigned
int
xscale
,
unsigned
int
yscale
);
extern
int
omap_lcd_dma_running
(
void
);
#endif
/* __MACH_OMAP1_LCD_DMA_H__ */
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap1/include/mach/lcdc.h
0 → 100644
View file @
5ccf1978
/*
* arch/arm/mach-omap1/include/mach/lcdc.h
*
* Extracted from drivers/video/omap/lcdc.c
* Copyright (C) 2004 Nokia Corporation
* Author: Imre Deak <imre.deak@nokia.com>
*
* 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.
*/
#ifndef __MACH_LCDC_H__
#define __MACH_LCDC_H__
#define OMAP_LCDC_BASE 0xfffec000
#define OMAP_LCDC_SIZE 256
#define OMAP_LCDC_IRQ INT_LCD_CTRL
#define OMAP_LCDC_CONTROL (OMAP_LCDC_BASE + 0x00)
#define OMAP_LCDC_TIMING0 (OMAP_LCDC_BASE + 0x04)
#define OMAP_LCDC_TIMING1 (OMAP_LCDC_BASE + 0x08)
#define OMAP_LCDC_TIMING2 (OMAP_LCDC_BASE + 0x0c)
#define OMAP_LCDC_STATUS (OMAP_LCDC_BASE + 0x10)
#define OMAP_LCDC_SUBPANEL (OMAP_LCDC_BASE + 0x14)
#define OMAP_LCDC_LINE_INT (OMAP_LCDC_BASE + 0x18)
#define OMAP_LCDC_DISPLAY_STATUS (OMAP_LCDC_BASE + 0x1c)
#define OMAP_LCDC_STAT_DONE (1 << 0)
#define OMAP_LCDC_STAT_VSYNC (1 << 1)
#define OMAP_LCDC_STAT_SYNC_LOST (1 << 2)
#define OMAP_LCDC_STAT_ABC (1 << 3)
#define OMAP_LCDC_STAT_LINE_INT (1 << 4)
#define OMAP_LCDC_STAT_FUF (1 << 5)
#define OMAP_LCDC_STAT_LOADED_PALETTE (1 << 6)
#define OMAP_LCDC_CTRL_LCD_EN (1 << 0)
#define OMAP_LCDC_CTRL_LCD_TFT (1 << 7)
#define OMAP_LCDC_CTRL_LINE_IRQ_CLR_SEL (1 << 10)
#define OMAP_LCDC_IRQ_VSYNC (1 << 2)
#define OMAP_LCDC_IRQ_DONE (1 << 3)
#define OMAP_LCDC_IRQ_LOADED_PALETTE (1 << 4)
#define OMAP_LCDC_IRQ_LINE_NIRQ (1 << 5)
#define OMAP_LCDC_IRQ_LINE (1 << 6)
#define OMAP_LCDC_IRQ_MASK (((1 << 5) - 1) << 2)
#endif
/* __MACH_LCDC_H__ */
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap1/lcd_dma.c
0 → 100644
View file @
5ccf1978
/*
* linux/arch/arm/mach-omap1/lcd_dma.c
*
* Extracted from arch/arm/plat-omap/dma.c
* Copyright (C) 2003 - 2008 Nokia Corporation
* Author: Juha Yrjölä <juha.yrjola@nokia.com>
* DMA channel linking for 1610 by Samuel Ortiz <samuel.ortiz@nokia.com>
* Graphics DMA and LCD DMA graphics tranformations
* by Imre Deak <imre.deak@nokia.com>
* OMAP2/3 support Copyright (C) 2004-2007 Texas Instruments, Inc.
* Merged to support both OMAP1 and OMAP2 by Tony Lindgren <tony@atomide.com>
* Some functions based on earlier dma-omap.c Copyright (C) 2001 RidgeRun, Inc.
*
* Copyright (C) 2009 Texas Instruments
* Added OMAP4 support - Santosh Shilimkar <santosh.shilimkar@ti.com>
*
* Support functions for the OMAP internal DMA channels.
*
* 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/module.h>
#include <linux/spinlock.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <mach/hardware.h>
#include <mach/lcdc.h>
#include <plat/dma.h>
int
omap_lcd_dma_running
(
void
)
{
/*
* On OMAP1510, internal LCD controller will start the transfer
* when it gets enabled, so assume DMA running if LCD enabled.
*/
if
(
cpu_is_omap1510
())
if
(
omap_readw
(
OMAP_LCDC_CONTROL
)
&
OMAP_LCDC_CTRL_LCD_EN
)
return
1
;
/* Check if LCD DMA is running */
if
(
cpu_is_omap16xx
())
if
(
omap_readw
(
OMAP1610_DMA_LCD_CCR
)
&
OMAP_DMA_CCR_EN
)
return
1
;
return
0
;
}
static
struct
lcd_dma_info
{
spinlock_t
lock
;
int
reserved
;
void
(
*
callback
)(
u16
status
,
void
*
data
);
void
*
cb_data
;
int
active
;
unsigned
long
addr
,
size
;
int
rotate
,
data_type
,
xres
,
yres
;
int
vxres
;
int
mirror
;
int
xscale
,
yscale
;
int
ext_ctrl
;
int
src_port
;
int
single_transfer
;
}
lcd_dma
;
void
omap_set_lcd_dma_b1
(
unsigned
long
addr
,
u16
fb_xres
,
u16
fb_yres
,
int
data_type
)
{
lcd_dma
.
addr
=
addr
;
lcd_dma
.
data_type
=
data_type
;
lcd_dma
.
xres
=
fb_xres
;
lcd_dma
.
yres
=
fb_yres
;
}
EXPORT_SYMBOL
(
omap_set_lcd_dma_b1
);
void
omap_set_lcd_dma_src_port
(
int
port
)
{
lcd_dma
.
src_port
=
port
;
}
void
omap_set_lcd_dma_ext_controller
(
int
external
)
{
lcd_dma
.
ext_ctrl
=
external
;
}
EXPORT_SYMBOL
(
omap_set_lcd_dma_ext_controller
);
void
omap_set_lcd_dma_single_transfer
(
int
single
)
{
lcd_dma
.
single_transfer
=
single
;
}
EXPORT_SYMBOL
(
omap_set_lcd_dma_single_transfer
);
void
omap_set_lcd_dma_b1_rotation
(
int
rotate
)
{
if
(
cpu_is_omap1510
())
{
printk
(
KERN_ERR
"DMA rotation is not supported in 1510 mode
\n
"
);
BUG
();
return
;
}
lcd_dma
.
rotate
=
rotate
;
}
EXPORT_SYMBOL
(
omap_set_lcd_dma_b1_rotation
);
void
omap_set_lcd_dma_b1_mirror
(
int
mirror
)
{
if
(
cpu_is_omap1510
())
{
printk
(
KERN_ERR
"DMA mirror is not supported in 1510 mode
\n
"
);
BUG
();
}
lcd_dma
.
mirror
=
mirror
;
}
EXPORT_SYMBOL
(
omap_set_lcd_dma_b1_mirror
);
void
omap_set_lcd_dma_b1_vxres
(
unsigned
long
vxres
)
{
if
(
cpu_is_omap1510
())
{
printk
(
KERN_ERR
"DMA virtual resulotion is not supported "
"in 1510 mode
\n
"
);
BUG
();
}
lcd_dma
.
vxres
=
vxres
;
}
EXPORT_SYMBOL
(
omap_set_lcd_dma_b1_vxres
);
void
omap_set_lcd_dma_b1_scale
(
unsigned
int
xscale
,
unsigned
int
yscale
)
{
if
(
cpu_is_omap1510
())
{
printk
(
KERN_ERR
"DMA scale is not supported in 1510 mode
\n
"
);
BUG
();
}
lcd_dma
.
xscale
=
xscale
;
lcd_dma
.
yscale
=
yscale
;
}
EXPORT_SYMBOL
(
omap_set_lcd_dma_b1_scale
);
static
void
set_b1_regs
(
void
)
{
unsigned
long
top
,
bottom
;
int
es
;
u16
w
;
unsigned
long
en
,
fn
;
long
ei
,
fi
;
unsigned
long
vxres
;
unsigned
int
xscale
,
yscale
;
switch
(
lcd_dma
.
data_type
)
{
case
OMAP_DMA_DATA_TYPE_S8
:
es
=
1
;
break
;
case
OMAP_DMA_DATA_TYPE_S16
:
es
=
2
;
break
;
case
OMAP_DMA_DATA_TYPE_S32
:
es
=
4
;
break
;
default:
BUG
();
return
;
}
vxres
=
lcd_dma
.
vxres
?
lcd_dma
.
vxres
:
lcd_dma
.
xres
;
xscale
=
lcd_dma
.
xscale
?
lcd_dma
.
xscale
:
1
;
yscale
=
lcd_dma
.
yscale
?
lcd_dma
.
yscale
:
1
;
BUG_ON
(
vxres
<
lcd_dma
.
xres
);
#define PIXADDR(x, y) (lcd_dma.addr + \
((y) * vxres * yscale + (x) * xscale) * es)
#define PIXSTEP(sx, sy, dx, dy) (PIXADDR(dx, dy) - PIXADDR(sx, sy) - es + 1)
switch
(
lcd_dma
.
rotate
)
{
case
0
:
if
(
!
lcd_dma
.
mirror
)
{
top
=
PIXADDR
(
0
,
0
);
bottom
=
PIXADDR
(
lcd_dma
.
xres
-
1
,
lcd_dma
.
yres
-
1
);
/* 1510 DMA requires the bottom address to be 2 more
* than the actual last memory access location. */
if
(
cpu_is_omap1510
()
&&
lcd_dma
.
data_type
==
OMAP_DMA_DATA_TYPE_S32
)
bottom
+=
2
;
ei
=
PIXSTEP
(
0
,
0
,
1
,
0
);
fi
=
PIXSTEP
(
lcd_dma
.
xres
-
1
,
0
,
0
,
1
);
}
else
{
top
=
PIXADDR
(
lcd_dma
.
xres
-
1
,
0
);
bottom
=
PIXADDR
(
0
,
lcd_dma
.
yres
-
1
);
ei
=
PIXSTEP
(
1
,
0
,
0
,
0
);
fi
=
PIXSTEP
(
0
,
0
,
lcd_dma
.
xres
-
1
,
1
);
}
en
=
lcd_dma
.
xres
;
fn
=
lcd_dma
.
yres
;
break
;
case
90
:
if
(
!
lcd_dma
.
mirror
)
{
top
=
PIXADDR
(
0
,
lcd_dma
.
yres
-
1
);
bottom
=
PIXADDR
(
lcd_dma
.
xres
-
1
,
0
);
ei
=
PIXSTEP
(
0
,
1
,
0
,
0
);
fi
=
PIXSTEP
(
0
,
0
,
1
,
lcd_dma
.
yres
-
1
);
}
else
{
top
=
PIXADDR
(
lcd_dma
.
xres
-
1
,
lcd_dma
.
yres
-
1
);
bottom
=
PIXADDR
(
0
,
0
);
ei
=
PIXSTEP
(
0
,
1
,
0
,
0
);
fi
=
PIXSTEP
(
1
,
0
,
0
,
lcd_dma
.
yres
-
1
);
}
en
=
lcd_dma
.
yres
;
fn
=
lcd_dma
.
xres
;
break
;
case
180
:
if
(
!
lcd_dma
.
mirror
)
{
top
=
PIXADDR
(
lcd_dma
.
xres
-
1
,
lcd_dma
.
yres
-
1
);
bottom
=
PIXADDR
(
0
,
0
);
ei
=
PIXSTEP
(
1
,
0
,
0
,
0
);
fi
=
PIXSTEP
(
0
,
1
,
lcd_dma
.
xres
-
1
,
0
);
}
else
{
top
=
PIXADDR
(
0
,
lcd_dma
.
yres
-
1
);
bottom
=
PIXADDR
(
lcd_dma
.
xres
-
1
,
0
);
ei
=
PIXSTEP
(
0
,
0
,
1
,
0
);
fi
=
PIXSTEP
(
lcd_dma
.
xres
-
1
,
1
,
0
,
0
);
}
en
=
lcd_dma
.
xres
;
fn
=
lcd_dma
.
yres
;
break
;
case
270
:
if
(
!
lcd_dma
.
mirror
)
{
top
=
PIXADDR
(
lcd_dma
.
xres
-
1
,
0
);
bottom
=
PIXADDR
(
0
,
lcd_dma
.
yres
-
1
);
ei
=
PIXSTEP
(
0
,
0
,
0
,
1
);
fi
=
PIXSTEP
(
1
,
lcd_dma
.
yres
-
1
,
0
,
0
);
}
else
{
top
=
PIXADDR
(
0
,
0
);
bottom
=
PIXADDR
(
lcd_dma
.
xres
-
1
,
lcd_dma
.
yres
-
1
);
ei
=
PIXSTEP
(
0
,
0
,
0
,
1
);
fi
=
PIXSTEP
(
0
,
lcd_dma
.
yres
-
1
,
1
,
0
);
}
en
=
lcd_dma
.
yres
;
fn
=
lcd_dma
.
xres
;
break
;
default:
BUG
();
return
;
/* Suppress warning about uninitialized vars */
}
if
(
cpu_is_omap1510
())
{
omap_writew
(
top
>>
16
,
OMAP1510_DMA_LCD_TOP_F1_U
);
omap_writew
(
top
,
OMAP1510_DMA_LCD_TOP_F1_L
);
omap_writew
(
bottom
>>
16
,
OMAP1510_DMA_LCD_BOT_F1_U
);
omap_writew
(
bottom
,
OMAP1510_DMA_LCD_BOT_F1_L
);
return
;
}
/* 1610 regs */
omap_writew
(
top
>>
16
,
OMAP1610_DMA_LCD_TOP_B1_U
);
omap_writew
(
top
,
OMAP1610_DMA_LCD_TOP_B1_L
);
omap_writew
(
bottom
>>
16
,
OMAP1610_DMA_LCD_BOT_B1_U
);
omap_writew
(
bottom
,
OMAP1610_DMA_LCD_BOT_B1_L
);
omap_writew
(
en
,
OMAP1610_DMA_LCD_SRC_EN_B1
);
omap_writew
(
fn
,
OMAP1610_DMA_LCD_SRC_FN_B1
);
w
=
omap_readw
(
OMAP1610_DMA_LCD_CSDP
);
w
&=
~
0x03
;
w
|=
lcd_dma
.
data_type
;
omap_writew
(
w
,
OMAP1610_DMA_LCD_CSDP
);
w
=
omap_readw
(
OMAP1610_DMA_LCD_CTRL
);
/* Always set the source port as SDRAM for now*/
w
&=
~
(
0x03
<<
6
);
if
(
lcd_dma
.
callback
!=
NULL
)
w
|=
1
<<
1
;
/* Block interrupt enable */
else
w
&=
~
(
1
<<
1
);
omap_writew
(
w
,
OMAP1610_DMA_LCD_CTRL
);
if
(
!
(
lcd_dma
.
rotate
||
lcd_dma
.
mirror
||
lcd_dma
.
vxres
||
lcd_dma
.
xscale
||
lcd_dma
.
yscale
))
return
;
w
=
omap_readw
(
OMAP1610_DMA_LCD_CCR
);
/* Set the double-indexed addressing mode */
w
|=
(
0x03
<<
12
);
omap_writew
(
w
,
OMAP1610_DMA_LCD_CCR
);
omap_writew
(
ei
,
OMAP1610_DMA_LCD_SRC_EI_B1
);
omap_writew
(
fi
>>
16
,
OMAP1610_DMA_LCD_SRC_FI_B1_U
);
omap_writew
(
fi
,
OMAP1610_DMA_LCD_SRC_FI_B1_L
);
}
static
irqreturn_t
lcd_dma_irq_handler
(
int
irq
,
void
*
dev_id
)
{
u16
w
;
w
=
omap_readw
(
OMAP1610_DMA_LCD_CTRL
);
if
(
unlikely
(
!
(
w
&
(
1
<<
3
))))
{
printk
(
KERN_WARNING
"Spurious LCD DMA IRQ
\n
"
);
return
IRQ_NONE
;
}
/* Ack the IRQ */
w
|=
(
1
<<
3
);
omap_writew
(
w
,
OMAP1610_DMA_LCD_CTRL
);
lcd_dma
.
active
=
0
;
if
(
lcd_dma
.
callback
!=
NULL
)
lcd_dma
.
callback
(
w
,
lcd_dma
.
cb_data
);
return
IRQ_HANDLED
;
}
int
omap_request_lcd_dma
(
void
(
*
callback
)(
u16
status
,
void
*
data
),
void
*
data
)
{
spin_lock_irq
(
&
lcd_dma
.
lock
);
if
(
lcd_dma
.
reserved
)
{
spin_unlock_irq
(
&
lcd_dma
.
lock
);
printk
(
KERN_ERR
"LCD DMA channel already reserved
\n
"
);
BUG
();
return
-
EBUSY
;
}
lcd_dma
.
reserved
=
1
;
spin_unlock_irq
(
&
lcd_dma
.
lock
);
lcd_dma
.
callback
=
callback
;
lcd_dma
.
cb_data
=
data
;
lcd_dma
.
active
=
0
;
lcd_dma
.
single_transfer
=
0
;
lcd_dma
.
rotate
=
0
;
lcd_dma
.
vxres
=
0
;
lcd_dma
.
mirror
=
0
;
lcd_dma
.
xscale
=
0
;
lcd_dma
.
yscale
=
0
;
lcd_dma
.
ext_ctrl
=
0
;
lcd_dma
.
src_port
=
0
;
return
0
;
}
EXPORT_SYMBOL
(
omap_request_lcd_dma
);
void
omap_free_lcd_dma
(
void
)
{
spin_lock
(
&
lcd_dma
.
lock
);
if
(
!
lcd_dma
.
reserved
)
{
spin_unlock
(
&
lcd_dma
.
lock
);
printk
(
KERN_ERR
"LCD DMA is not reserved
\n
"
);
BUG
();
return
;
}
if
(
!
cpu_is_omap1510
())
omap_writew
(
omap_readw
(
OMAP1610_DMA_LCD_CCR
)
&
~
1
,
OMAP1610_DMA_LCD_CCR
);
lcd_dma
.
reserved
=
0
;
spin_unlock
(
&
lcd_dma
.
lock
);
}
EXPORT_SYMBOL
(
omap_free_lcd_dma
);
void
omap_enable_lcd_dma
(
void
)
{
u16
w
;
/*
* Set the Enable bit only if an external controller is
* connected. Otherwise the OMAP internal controller will
* start the transfer when it gets enabled.
*/
if
(
cpu_is_omap1510
()
||
!
lcd_dma
.
ext_ctrl
)
return
;
w
=
omap_readw
(
OMAP1610_DMA_LCD_CTRL
);
w
|=
1
<<
8
;
omap_writew
(
w
,
OMAP1610_DMA_LCD_CTRL
);
lcd_dma
.
active
=
1
;
w
=
omap_readw
(
OMAP1610_DMA_LCD_CCR
);
w
|=
1
<<
7
;
omap_writew
(
w
,
OMAP1610_DMA_LCD_CCR
);
}
EXPORT_SYMBOL
(
omap_enable_lcd_dma
);
void
omap_setup_lcd_dma
(
void
)
{
BUG_ON
(
lcd_dma
.
active
);
if
(
!
cpu_is_omap1510
())
{
/* Set some reasonable defaults */
omap_writew
(
0x5440
,
OMAP1610_DMA_LCD_CCR
);
omap_writew
(
0x9102
,
OMAP1610_DMA_LCD_CSDP
);
omap_writew
(
0x0004
,
OMAP1610_DMA_LCD_LCH_CTRL
);
}
set_b1_regs
();
if
(
!
cpu_is_omap1510
())
{
u16
w
;
w
=
omap_readw
(
OMAP1610_DMA_LCD_CCR
);
/*
* If DMA was already active set the end_prog bit to have
* the programmed register set loaded into the active
* register set.
*/
w
|=
1
<<
11
;
/* End_prog */
if
(
!
lcd_dma
.
single_transfer
)
w
|=
(
3
<<
8
);
/* Auto_init, repeat */
omap_writew
(
w
,
OMAP1610_DMA_LCD_CCR
);
}
}
EXPORT_SYMBOL
(
omap_setup_lcd_dma
);
void
omap_stop_lcd_dma
(
void
)
{
u16
w
;
lcd_dma
.
active
=
0
;
if
(
cpu_is_omap1510
()
||
!
lcd_dma
.
ext_ctrl
)
return
;
w
=
omap_readw
(
OMAP1610_DMA_LCD_CCR
);
w
&=
~
(
1
<<
7
);
omap_writew
(
w
,
OMAP1610_DMA_LCD_CCR
);
w
=
omap_readw
(
OMAP1610_DMA_LCD_CTRL
);
w
&=
~
(
1
<<
8
);
omap_writew
(
w
,
OMAP1610_DMA_LCD_CTRL
);
}
EXPORT_SYMBOL
(
omap_stop_lcd_dma
);
static
int
__init
omap_init_lcd_dma
(
void
)
{
int
r
;
if
(
cpu_is_omap16xx
())
{
u16
w
;
/* this would prevent OMAP sleep */
w
=
omap_readw
(
OMAP1610_DMA_LCD_CTRL
);
w
&=
~
(
1
<<
8
);
omap_writew
(
w
,
OMAP1610_DMA_LCD_CTRL
);
}
spin_lock_init
(
&
lcd_dma
.
lock
);
r
=
request_irq
(
INT_DMA_LCD
,
lcd_dma_irq_handler
,
0
,
"LCD DMA"
,
NULL
);
if
(
r
!=
0
)
printk
(
KERN_ERR
"unable to request IRQ for LCD DMA "
"(error %d)
\n
"
,
r
);
return
r
;
}
arch_initcall
(
omap_init_lcd_dma
);
This diff is collapsed.
Click to expand it.
Prev
1
2
3
4
Next
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