linux/include/asm-mips
Jan Nikitenko 63bd23591e au1550 SPI controller driver
Here is a driver for the Alchemy au1550 PSC (Programmable Serial
Controller) in SPI master mode.

It supports dma transfers using the Alchemy descriptor based dma controller
for 4-8 bits per word SPI transfers.  For 9-24 bits per word transfers, pio
irq based mode is used to avoid setup of dma channels from scratch on each
number of bits per word change.

Tested with au1550; this may also work on other MIPS Alchemy cpus, like
au1200/au1210/au1250.  Used extensively with SD card connected via SPI;
this handles 8.1MHz SPI clock transfers using dma without any problem (the
highest SPI clock freq possible with au1550 running on 324MHz).

The driver supports sharing of SPI bus by multiple devices.  All features
of Alchemy SPI mode are supported (all SPI modes, msb/lsb first, bits per
word in 4-24 range).

As the SPI clock of the controller depends on main input clock that shall
be configured externally, platform data structure for au1550 SPI controller
driver contains mainclk_hz attribute to define the input clock rate.  From
this value, dividers of the controller for SPI clock are set up for
required frequency.

Signed-off-by: Jan Nikitenko <jan.nikitenko@gmail.com>

Whitespace and section fixups.  Remove partial workaround for platform
setup bug in dma_mask setup; it couldn't work with multiple controllers.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08 11:15:16 -07:00
..
arc
ddb5xxx [MIPS] Make I8259A_IRQ_BASE customizable 2007-02-06 16:53:09 +00:00
dec [TC] TURBOchannel support for the DECstation 2007-02-09 16:23:16 +00:00
emma2rh [MIPS] Define MIPS_CPU_IRQ_BASE in generic header 2007-02-06 16:53:08 +00:00
ip32
jmr3927 [MIPS] JMR3927 cleanup 2007-04-27 16:20:23 +01:00
lasat [MIPS] Fix and cleanup the mess that a dozen prom_printf variants are. 2007-03-04 19:02:37 +00:00
mach-atlas [MIPS] SNI: Fix mc146818_decode_year 2007-03-04 19:02:31 +00:00
mach-au1x00 au1550 SPI controller driver 2007-05-08 11:15:16 -07:00
mach-cobalt [MIPS] Define MIPS_CPU_IRQ_BASE in generic header 2007-02-06 16:53:08 +00:00
mach-db1x00
mach-dec
mach-emma2rh [MIPS] Define MIPS_CPU_IRQ_BASE in generic header 2007-02-06 16:53:08 +00:00
mach-ev64120
mach-excite
mach-generic [MIPS] DMA: Fix a bunch of warnings due to missing inline keywords. 2007-03-04 19:02:39 +00:00
mach-ip22
mach-ip27 [MIPS] IP27, IP35: Fix warnings. 2007-03-17 01:03:24 +00:00
mach-ip32 [MIPS] IP27, IP35: Fix warnings. 2007-03-17 01:03:24 +00:00
mach-ja
mach-jazz [MIPS] Unify dma-{coherent,noncoherent.ip27,ip32} 2007-02-13 22:40:50 +00:00
mach-jmr3927 [MIPS] Convert to RTC-class ds1742 driver 2007-03-04 19:02:34 +00:00
mach-lasat
mach-mips [MIPS] SNI: Fix mc146818_decode_year 2007-03-04 19:02:31 +00:00
mach-ocelot
mach-ocelot3
mach-pb1x00
mach-pnx8550
mach-qemu
mach-rm [MIPS] RM: It should be #ifdef CONFIG_FOO not #if CONFIG_FOO ... 2007-03-04 19:02:38 +00:00
mach-sibyte
mach-sim
mach-vr41xx [MIPS] Make I8259A_IRQ_BASE customizable 2007-02-06 16:53:09 +00:00
mach-wrppmc
mach-yosemite
mips-boards [MIPS] Fix and cleanup the mess that a dozen prom_printf variants are. 2007-03-04 19:02:37 +00:00
pci
sgi [MIPS] IP22: Get rid of volatile in IP22 core code. 2007-04-27 16:20:23 +01:00
sibyte [MIPS] Updated Sibyte headers 2007-04-27 16:20:24 +01:00
sn [MIPS] IP27: Move definition of nic_t to its sole user. 2006-12-12 01:46:24 +00:00
tx4927
tx4938
vr41xx [MIPS] Make I8259A_IRQ_BASE customizable 2007-02-06 16:53:09 +00:00
xtalk
8253pit.h
a.out.h
abi.h [MIPS] signals: Share even more code. 2007-02-18 21:31:35 +00:00
addrspace.h [MIPS] Use "long" for 64-bit values on 64-bit kernel. 2006-11-30 01:14:43 +00:00
asm.h [MIPS] 16K & 64K page size fixes 2006-11-01 17:46:09 +00:00
asmmacro-32.h
asmmacro-64.h
asmmacro.h
atomic.h [MIPS] Lockdep: Fix recursion bug. 2007-03-17 01:03:29 +00:00
auxvec.h
barrier.h [MIPS] Cleanup memory barriers for weakly ordered systems. 2006-12-04 22:43:14 +00:00
bcache.h
bitops.h [MIPS] Lockdep: Fix recursion bug. 2007-03-17 01:03:29 +00:00
bootinfo.h [MIPS] prom_free_prom_memory cleanup 2007-02-06 16:53:09 +00:00
branch.h
break.h
bug.h [MIPS] Fix BUG(), BUG_ON() handling 2007-04-20 14:58:37 +01:00
bugs.h
byteorder.h
cache.h
cachectl.h
cacheflush.h [MIPS] Remove unused argument from kunmap_coherent(). 2007-04-27 16:20:24 +01:00
cacheops.h
checksum.h [MIPS] Fix wrong checksum for split TCP packets on 64-bit MIPS 2007-04-20 14:58:37 +01:00
compat-signal.h [MIPS] signals: Share even more code. 2007-02-18 21:31:35 +00:00
compat.h [MIPS] compat.h uses struct pt_regs so needs to include ptrace.h. 2006-12-12 01:46:24 +00:00
compiler.h
cpu-features.h [MIPS] FPU ownership management & preemption fixes 2007-03-17 01:03:26 +00:00
cpu-info.h [MIPS] FPU ownership management & preemption fixes 2007-03-17 01:03:26 +00:00
cpu.h
cputime.h
current.h
debug.h
delay.h [MIPS] Make MIPS udelay() preempt safe under DEBUG_PREEMPT 2007-03-24 17:01:49 +00:00
device.h Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
div64.h [NET]: div64_64 consolidate (rev3) 2007-04-25 22:23:33 -07:00
dma-mapping.h [MIPS] Don't claim we support dma_declare_coherent_memory - we don't. 2007-02-13 22:40:50 +00:00
dma.h [MIPS] ISA: Fix typo 2007-03-08 01:10:30 +00:00
ds1216.h [MIPS] Support for several more SNI RM models. 2007-02-18 21:31:37 +00:00
ds1286.h
dsp.h
elf.h
emergency-restart.h
errno.h
fcntl.h
fixmap.h [MIPS] Fix aliasing bug in copy_to_user_page / copy_from_user_page 2006-10-21 23:17:35 +01:00
floppy.h
fpregdef.h
fpu_emulator.h
fpu.h [MIPS] Retry {save,restore}_fp_context if failed in atomic context. 2007-04-20 14:58:37 +01:00
futex.h [PATCH] mm: pagefault_{disable,enable}() 2006-12-07 08:39:21 -08:00
gdb-stub.h
gfx.h
gt64120.h [MIPS] Rewrite GALILEO_INL/GALILEO_OUTL to GT_READ/GT_WRITE 2006-11-30 01:14:43 +00:00
gt64240.h
hardirq.h
hazards.h [MIPS] Fix pipeline hazard. 2007-03-24 17:01:49 +00:00
highmem.h [PATCH] mm: k{,um}map_atomic() vs in_atomic() 2006-12-07 08:39:21 -08:00
hw_irq.h
i8259.h [MIPS] Make I8259A_IRQ_BASE customizable 2007-02-06 16:53:09 +00:00
ide.h
inst.h
inventory.h
io.h [MIPS] Iomap implementation. 2007-02-18 21:31:34 +00:00
ioctl.h [MIPS] Remove unreferenced _IOC_SLMASK macro in ioctl.h. 2007-02-26 23:06:06 +00:00
ioctls.h
ipc.h
ipcbuf.h
irq_cpu.h [MIPS] Define MIPS_CPU_IRQ_BASE in generic header 2007-02-06 16:53:08 +00:00
irq_regs.h
irq.h [MIPS] Make I8259A_IRQ_BASE customizable 2007-02-06 16:53:09 +00:00
irqflags.h [MIPS] SMTC: Fix recursion in instant IPI replay code. 2007-03-29 23:46:36 +01:00
isadep.h
jazz.h
jazzdma.h
Kbuild
kdebug.h move die notifier handling to common code 2007-05-08 11:15:04 -07:00
kexec.h kdump/kexec: calculate note size at compile time 2007-05-08 11:15:07 -07:00
kmap_types.h
kspd.h
linkage.h
local.h
m48t35.h
m48t37.h
marvell.h [MIPS] MV64340: Add missing prototype for mv64340_irq_init(). 2007-03-29 23:46:35 +01:00
mc146818-time.h
mc146818rtc.h
mips_mt.h [MIPS] SMTC: <asm/mips_mt.h> must include <linux/cpumask.h> 2007-03-07 00:07:15 +00:00
mipsmtregs.h [MIPS] MT: Nuke duplicate mips_mt_regdump() prototype. 2007-02-06 16:53:24 +00:00
mipsprom.h
mipsregs.h [MIPS] Remove unused R10000 performance counter definitions. 2006-11-30 01:14:45 +00:00
mman.h [PATCH] Remove final references to deprecated "MAP_ANON" page protection flag 2007-02-11 10:51:17 -08:00
mmu_context.h [PATCH] x86: PARAVIRT: add hooks to intercept mm creation and destruction 2007-05-02 19:27:14 +02:00
mmu.h
mmzone.h
module.h
msc01_ic.h
msgbuf.h
mutex.h
namei.h
nile4.h
paccess.h [MIPS] Replace old fashioned "__typeof" with "__typeof__". 2007-04-27 16:20:25 +01:00
page.h [MIPS] FLATMEM: introduce PHYS_OFFSET. 2007-02-06 16:53:13 +00:00
param.h
parport.h
pci.h [MIPS] Iomap implementation. 2007-02-18 21:31:34 +00:00
percpu.h
pgalloc.h [MIPS] Add external declaration of pagetable_init() to pgalloc.h 2007-02-18 21:31:36 +00:00
pgtable-32.h [MIPS] pte_offset(dir,addr): parenthesis fix 2006-12-06 20:16:08 +00:00
pgtable-64.h [MIPS] Always use virt_to_phys() when translating kernel addresses 2007-03-24 17:01:49 +00:00
pgtable-bits.h
pgtable.h Clean up mostly unused IOSPACE macros 2007-05-08 11:15:13 -07:00
pmon.h
poll.h
posix_types.h
prctl.h
prefetch.h
processor.h
ptrace.h [MIPS] Add basic SMARTMIPS ASE support 2007-02-22 00:50:44 +00:00
qemu.h
r4kcache.h
reboot.h
reg.h
regdef.h
resource.h
rm9k-ocd.h
rtc.h
rtlx.h [MIPS] RTLX: Handle copy_*_user return values. 2007-03-17 01:03:29 +00:00
scatterlist.h PCI: scatterlist.h needs types.h 2007-05-02 19:02:34 -07:00
sections.h [MIPS] Remove _fdata from asm-mips/sections.h 2007-02-06 16:53:15 +00:00
segment.h
semaphore.h
sembuf.h
serial.h
setup.h [PATCH] cleanup asm/setup.h userspace visibility 2006-12-07 08:39:46 -08:00
sgialib.h [MIPS] Fix and cleanup the mess that a dozen prom_printf variants are. 2007-03-04 19:02:37 +00:00
sgiarcs.h [MIPS] ARC: Fix warning. 2007-03-24 17:01:49 +00:00
sgidefs.h
shmbuf.h
shmparam.h
sigcontext.h [MIPS] Add basic SMARTMIPS ASE support 2007-02-22 00:50:44 +00:00
siginfo.h
signal.h [MIPS] signals: Share even more code. 2007-02-18 21:31:35 +00:00
sim.h
smp.h
smtc_ipi.h [MIPS] SMTC: Fix recursion in instant IPI replay code. 2007-03-29 23:46:36 +01:00
smtc_proc.h
smtc.h [MIPS] SMTC: Add fordward declarations for mm_struct and task_struct. 2007-03-07 00:07:16 +00:00
sni.h [MIPS] SNI: MIPS_CPU_IRQ_BASE cleanup 2007-02-26 23:06:06 +00:00
socket.h [NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support 2007-04-25 22:24:21 -07:00
sockios.h [NET]: Introduce SIOCGSTAMPNS ioctl to get timestamps with nanosec resolution 2007-04-25 22:24:04 -07:00
sparsemem.h
spinlock_types.h
spinlock.h [MIPS] Fix __raw_read_trylock() to allow multiple readers 2007-03-07 00:07:17 +00:00
stackframe.h [MIPS] Add basic SMARTMIPS ASE support 2007-02-22 00:50:44 +00:00
stacktrace.h
stat.h
statfs.h
string.h
suspend.h
sysmips.h
system.h [MIPS] Lockdep: Fix recursion bug. 2007-03-17 01:03:29 +00:00
termbits.h [PATCH] tty: preparatory structures for termios revamp 2006-12-08 08:28:56 -08:00
termios.h [PATCH] consolidate line discipline number definitions 2007-02-11 10:51:26 -08:00
thread_info.h [MIPS] Disallow CpU exception in kernel again. 2007-04-20 14:58:37 +01:00
time.h [MIPS] mips HPT cleanup: make clocksource_mips public 2006-11-30 01:14:49 +00:00
timex.h
titan_dep.h
tlb.h
tlbdebug.h
tlbflush.h
topology.h
traps.h
tx3912.h
types.h [PATCH] Centralise definitions of sector_t and blkcnt_t 2006-12-04 19:41:15 -08:00
uaccess.h [MIPS] Export __copy_user_inatomic. 2007-03-07 00:07:17 +00:00
ucontext.h
unaligned.h
unistd.h [MIPS] Wire up ioprio_set and ioprio_get. 2007-03-07 00:07:18 +00:00
user.h
vga.h
vpe.h
war.h [MIPS] Rename SNI_RM200_PCI to just SNI_RM preparing for more RM machines 2006-12-09 01:03:58 +00:00
watch.h
wbflush.h
xor.h
xxs1500.h