android_kernel_xiaomi_sm8350/include
Andres Salomon ade761496d x86: GEODE: update GPIO API to support setting multiple GPIOs at once
The existing Geode GPIO API only allows for updating one GPIO at once.  There
are instances where users want to update multiple GPIOs at once.  With the
current API, they are given two choices; either ignore the GPIO API:

      outl(0xc000, gpio_base + GPIO_OUTPUT_VAL);
      outl(0xc000, gpio_base + GPIO_OUTPUT_ENABLE);

Alternatively, call each GPIO update separately:

      geode_gpio_set(14, GPIO_OUTPUT_VAL);
      geode_gpio_set(15, GPIO_OUTPUT_VAL);
      geode_gpio_set(14, GPIO_OUTPUT_ENABLE);
      geode_gpio_set(15, GPIO_OUTPUT_ENABLE);

Neither are desirable.  This patch changes the GPIO API to allow for setting
of multiple GPIOs at once; rather than being passed an integer, we pass
a bitmask and provide a translation function.  The above code would now
look like this:

      geode_gpio_set(geode_gpio(14)|geode_gpio(15), GPIO_OUTPUT_VAL);
      geode_gpio_set(geode_gpio(14)|geode_gpio(15), GPIO_OUTPUT_ENABLE);

Since there are no upstream users of the GPIO API yet (afaik), best to
change this now.  This also adds a bit of sanity checking; it is no
longer possible to use a GPIO above 28.

Note the semantics of geode_gpio_isset() have changed:
geode_gpio_isset(geode_gpio(3)|geode_gpio(4), ...)
will only return true iff both GPIOs are set.

Signed-off-by: Andres Salomon <dilinger@debian.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-01-30 13:33:35 +01:00
..
acpi x86: dummy placeholder for acpi/reboot.h 2008-01-30 13:31:17 +01:00
asm-alpha
asm-arm
asm-avr32
asm-blackfin
asm-cris
asm-frv
asm-generic x86/non-x86: percpu, node ids, apic ids x86.git fixup 2008-01-30 13:33:32 +01:00
asm-h8300
asm-ia64 percpu: move arch XX_PER_CPU_XX definitions into linux/percpu.h 2008-01-30 13:32:52 +01:00
asm-m32r core: remove last users of empty FASTCALL macro 2008-01-30 13:31:17 +01:00
asm-m68k
asm-m68knommu
asm-mips
asm-parisc
asm-powerpc percpu: move arch XX_PER_CPU_XX definitions into linux/percpu.h 2008-01-30 13:32:52 +01:00
asm-ppc
asm-s390 percpu: move arch XX_PER_CPU_XX definitions into linux/percpu.h 2008-01-30 13:32:52 +01:00
asm-sh
asm-sparc
asm-sparc64 percpu: move arch XX_PER_CPU_XX definitions into linux/percpu.h 2008-01-30 13:32:52 +01:00
asm-um git-x86: unbreak UML 2008-01-30 13:32:38 +01:00
asm-v850
asm-x86 x86: GEODE: update GPIO API to support setting multiple GPIOs at once 2008-01-30 13:33:35 +01:00
asm-xtensa
crypto
keys
linux x86: print which shared library/executable faulted in segfault etc. messages v3 2008-01-30 13:33:18 +01:00
math-emu
media
mtd
net
pcmcia
rdma
rxrpc
scsi
sound
video
xen x86: page.h: make pte_t a union to always include 2008-01-30 13:32:57 +01:00
Kbuild