linux/arch/mips/include/asm
Manuel Lauss 51e02b02e6 MIPS: Alchemy: Rewrite GPIO support.
The current in-kernel Alchemy GPIO support is far too inflexible for
all my use cases.  To address this, the following changes are made:

* create generic functions which deal with manipulating the on-chip
  GPIO1/2 blocks.  Such functions are universally useful.
* Macros for GPIO2 shared interrupt management and block control.
* support for both built-in CONFIG_GPIOLIB and fast, inlined GPIO macros.

  If CONFIG_GPIOLIB is not enabled, provide linux gpio framework
  compatibility by directly inlining the GPIO1/2 functions.  GPIO access
  is limited to on-chip ones and they can be accessed as documented in
  the datasheets (GPIO0-31 and 200-215).

  If CONFIG_GPIOLIB is selected, two (2) gpio_chip-s, one for GPIO1 and
  one for GPIO2, are registered.  GPIOs can still be accessed by using
  the numberspace established in the databooks.

  However this is not yet flexible enough for my uses:  My Alchemy
  systems have a documented "external" gpio interface (fixed, different
  numberspace) and can support a variety of baseboards, some of which
  are equipped with I2C gpio expanders.  I want to be able to provide
  the default 16 GPIOs of the CPU board numbered as 0..15 and also
  support gpio expanders, if present, starting as gpio16.

  To achieve this, a new Kconfig symbol for Alchemy is introduced,
  CONFIG_ALCHEMY_GPIO_INDIRECT, which boards can enable to signal
  that they don't want the Alchemy numberspace exposed to the outside
  world, but instead want to provide their own.  Boards are now respon-
  sible for providing the linux gpio interface glue code (either in a
  custom gpio.h header (in board include directory) or with gpio_chips).

  To make the board-specific inlined gpio functions work, the MIPS
  Makefile must be changed so that the mach-au1x00/gpio.h header is
  included _after_ the board headers, by moving the inclusion of
  the mach-au1x00/ to the end of the header list.

  See arch/mips/include/asm/mach-au1x00/gpio.h for more info.

Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
Acked-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2009-06-17 11:06:28 +01:00
..
dec
emma MIPS: EMMA2RH: Remove emma2rh_sync on read operation 2008-10-27 16:18:30 +00:00
fw
ip32
lasat
mach-au1x00 MIPS: Alchemy: Rewrite GPIO support. 2009-06-17 11:06:28 +01:00
mach-bcm47xx MIPS: BCM47xx: Fix gpio_direction_output 2009-06-17 11:06:28 +01:00
mach-cavium-octeon MIPS: Remove execution hazard barriers for Octeon. 2009-06-17 11:06:26 +01:00
mach-cobalt
mach-db1x00
mach-dec
mach-emma2rh
mach-excite
mach-generic MIPS: Pass struct device to plat_dma_addr_to_phys() 2009-06-17 11:06:24 +01:00
mach-ip22 MIPS: IP22/28: Switch over to RTC class driver 2008-10-15 12:46:51 +01:00
mach-ip27 MIPS: Pass struct device to plat_dma_addr_to_phys() 2009-06-17 11:06:24 +01:00
mach-ip28 MIPS: IP22/28: Switch over to RTC class driver 2008-10-15 12:46:51 +01:00
mach-ip32 MIPS: Pass struct device to plat_dma_addr_to_phys() 2009-06-17 11:06:24 +01:00
mach-jazz MIPS: Pass struct device to plat_dma_addr_to_phys() 2009-06-17 11:06:24 +01:00
mach-lasat
mach-lemote MIPS: Pass struct device to plat_dma_addr_to_phys() 2009-06-17 11:06:24 +01:00
mach-malta
mach-mipssim
mach-pb1x00
mach-pnx833x MIPS: Add support for NXP PNX833x (STB222/5) into linux kernel 2008-10-27 16:18:29 +00:00
mach-pnx8550
mach-rc32434 MIPS: RB532: Cleanup cpu-features-overrides 2009-06-17 11:06:26 +01:00
mach-rm
mach-sibyte
mach-tx39xx
mach-tx49xx MIPS: RBTX4939: Add smc91x support 2008-10-27 16:18:27 +00:00
mach-vr41xx
mach-wrppmc
mach-yosemite
mips-boards MIPS: Malta: make a needlessly global integer variable static 2009-03-30 14:49:45 +02:00
octeon MIPS: Add Cavium OCTEON PCI support. 2009-06-17 11:06:25 +01:00
pci
pmc-sierra/msp71xx
sgi
sibyte
sn MIPS: IP27: Get rid of #ident. Gcc 4.4.0 doesn't like it. 2009-05-14 13:50:28 +01:00
txx9 MIPS: TXx9: Add TX4939 RNG support 2009-06-17 11:06:27 +01:00
vr41xx
xtalk
abi.h
addrspace.h
asm.h
asmmacro-32.h
asmmacro-64.h
asmmacro.h MIPS: Use EI/DI for MIPS R2. 2008-12-12 18:12:23 +00:00
atomic.h asm-generic: rename atomic.h to atomic-long.h 2009-06-11 21:02:17 +02:00
auxvec.h
barrier.h
bcache.h
bitops.h MIPS: Enable CLO / CLZ instructions via separate CPU property 2009-05-14 13:50:26 +01:00
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
bootinfo.h
branch.h
break.h MIPS: Switch FPU emulator trap to BREAK instruction. 2008-10-30 14:44:34 +00:00
bug.h MIPS: Make BUG() __noreturn. 2008-11-24 16:35:07 +00:00
bugs.h
byteorder.h byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
cache.h
cachectl.h
cacheflush.h
cacheops.h
cevt-r4k.h MIPS: Have a heart for a lonely, lost header file ... 2008-10-15 12:46:49 +01:00
checksum.h MIPS: uaccess: Switch lock annotations to might_fault(). 2009-05-14 13:50:28 +01:00
cmp.h
cmpxchg.h
compat-signal.h
compat.h MIPS: Do not include seccomp.h from compat.h 2009-05-14 13:50:26 +01:00
compiler.h
cpu-features.h MIPS: Allow R2 CPUs to turn off generation of 'ehb' instructions. 2009-06-17 11:06:26 +01:00
cpu-info.h MIPS: Outline udelay and fix a few issues. 2009-06-08 16:57:51 +01:00
cpu.h MIPS: Alchemy: unify CPU model constants. 2009-03-30 14:49:45 +02:00
cputime.h
current.h
debug.h
delay.h MIPS: Fix typo resulting in far too long ndelay times. 2009-06-17 11:06:23 +01:00
device.h
div64.h MIPS: Rewrite <asm/div64.h> to work with gcc 4.4.0. 2009-05-14 13:50:29 +01:00
dma-mapping.h MIPS: Synchronize dma_map_page and dma_map_single 2009-05-14 13:50:26 +01:00
dma.h
ds1287.h
dsp.h
edac.h
elf.h MIPS: Fix preprocessor warnings flaged by GCC 4.4 2008-12-22 08:54:47 +00:00
emergency-restart.h
errno.h cfg80211: errno.h: define ERFKILL 2009-06-07 05:01:00 -07:00
fb.h
fcntl.h
fixmap.h MIPS: Fix highmem. 2009-05-14 13:50:29 +01:00
floppy.h
fpregdef.h
fpu.h
fpu_emulator.h MIPS: Switch FPU emulator trap to BREAK instruction. 2008-10-30 14:44:34 +00:00
ftrace.h tracing: make CALLER_ADDRx overwriteable 2009-03-02 16:49:37 -05:00
futex.h
gcmpregs.h
gic.h
gpio.h
gt64120.h
hardirq.h
hazards.h MIPS: Loongson 2 needs no hazard barriers. 2009-05-14 13:50:26 +01:00
highmem.h MIPS: Fix highmem. 2009-05-14 13:50:29 +01:00
hw_irq.h
i8253.h time: move PIT_TICK_RATE to linux/timex.h 2009-06-16 19:47:27 -07:00
i8259.h
ide.h
inst.h
io.h MIPS: Modify core io.h macros to account for the Octeon Errata Core-301. 2009-01-11 09:57:22 +00:00
ioctl.h MIPS: ioctl.h: Cleanup. 2009-06-17 11:06:28 +01:00
ioctls.h
ipcbuf.h
irq.h irq: change ->set_affinity() to return status 2009-04-28 12:21:16 +02:00
irq_cpu.h
irq_gt641xx.h
irq_regs.h
irqflags.h
isadep.h
jazz.h
jazzdma.h
Kbuild byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
kdebug.h
kexec.h
kgdb.h
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
kspd.h
linkage.h
local.h
m48t37.h
mc146818-time.h mips: use bcd2bin/bin2bcd 2008-10-20 08:52:41 -07:00
mc146818rtc.h
mips_mt.h
mipsmtregs.h
mipsprom.h
mipsregs.h MIPS: Fix sign-extension bug in 32-bit kernel on 32-bit hardware. 2009-05-14 13:50:29 +01:00
mman.h
mmu.h
mmu_context.h
mmzone.h
module.h MIPS: Add Cavium OCTEON processor constants and CPU probe. 2009-01-11 09:57:22 +00:00
msc01_ic.h
msgbuf.h
mutex.h
nile4.h
paccess.h
page.h asm-generic: rename page.h and uaccess.h 2009-06-11 21:02:17 +02:00
param.h
parport.h
pci.h MIPS: Better than nothing implementation of PCI mmap to fix X. 2008-12-09 21:55:43 +00:00
percpu.h
pgalloc.h
pgtable-32.h
pgtable-64.h MIPS: Cavium: Add support for 8k and 32k page sizes. 2009-05-14 13:50:27 +01:00
pgtable-bits.h
pgtable.h
pmon.h
poll.h
posix_types.h
prefetch.h MIPS: NEC VR5500 processor support fixup 2009-03-11 21:11:07 +01:00
processor.h MIPS: Add Cavium OCTEON cop2/cvmseg state entries to processor.h. 2009-01-11 09:57:22 +00:00
ptrace.h MIPS: Fix a typo in watchpoint register structure. 2009-01-30 21:32:58 +00:00
r4k-timer.h
r4kcache.h MIPS: Support 64-byte D-cache line size 2009-06-17 11:06:24 +01:00
reboot.h
reg.h
regdef.h
resource.h
rm9k-ocd.h
rtlx.h
scatterlist.h
seccomp.h MIPS: Fix TIF_32BIT undefined problem when seccomp is disabled 2009-03-13 23:07:59 +01:00
sections.h
segment.h
sembuf.h
serial.h
setup.h
sgialib.h
sgiarcs.h
sgidefs.h
shmbuf.h
shmparam.h
sigcontext.h headers_check fix: mips, sigcontext.h 2009-02-01 11:01:26 +05:30
siginfo.h
signal.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
sim.h
smp-ops.h MIPS: Forward declare struct task_struct to avoid potencial warning. 2009-03-30 14:49:39 +02:00
smp.h MIPS: Add SMP_ICACHE_FLUSH for the Cavium CPU family. 2009-01-11 09:57:24 +00:00
smtc.h
smtc_ipi.h
smtc_proc.h
smvp.h
sni.h
socket.h net: new user space API for time stamping of incoming and outgoing packets 2009-02-15 22:43:33 -08:00
sockios.h
sparsemem.h
spinlock.h Allow rwlocks to re-enable interrupts 2009-04-02 19:05:11 -07:00
spinlock_types.h
stackframe.h MIPS: Cavium OCTEON multiplier state preservation. 2009-01-11 09:57:24 +00:00
stacktrace.h
stat.h
statfs.h
string.h
swab.h headers_check fix: mips, swab.h 2009-02-01 11:01:27 +05:30
sysmips.h
system.h
termbits.h
termios.h MIPS: Add return value checks to user_termio_to_kernel_termios() 2009-01-30 21:32:57 +00:00
thread_info.h MIPS: Cavium: Add support for 8k and 32k page sizes. 2009-05-14 13:50:27 +01:00
time.h MIPS: Fix build error if CONFIG_CEVT_R4K is undefined. 2009-05-14 13:50:25 +01:00
timex.h
titan_dep.h
tlb.h
tlbdebug.h
tlbflush.h
topology.h
traps.h
txx9irq.h
txx9pio.h
txx9tmr.h
types.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
uaccess.h MIPS: Fix sparse warning in incompatiable argument type of clear_user. 2009-05-22 13:52:05 +01:00
ucontext.h
unaligned.h
unistd.h preadv/pwritev: MIPS: Add preadv(2) and pwritev(2) syscalls. 2009-04-02 19:05:08 -07:00
user.h
vga.h
vpe.h
war.h
watch.h
wbflush.h
xor.h