summaryrefslogtreecommitdiffstats
path: root/arch/blackfin/kernel/bfin_gpio.c
Commit message (Collapse)AuthorAgeFilesLines
* Blackfin arch: Fix bug - BF518 port F, G, and H have different mux offset ↵Graf Yang2009-02-041-5/+12
| | | | | | | | | | | compare to BF527 [Mike Frysinger <vapier.adi@gmail.com>: keep the ifdef nest down] Signed-off-by: Graf Yang <graf.yang@analog.com> Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: Fix bug - Run "reboot" hangs bf518-ezbrdSonic Zhang2009-02-041-3/+2
| | | | | | | | | | | | | | [Mike Frysinger <vapier.adi@gmail.com>: - setup P_DEFAULT_BOOT_SPI_CS for every arch based on the default bootrom behavior and convert all our boards to it - revert previous anomaly change ... bf51x is not affected by anomaly 05000353] Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: cleanup bf54x ifdef mess in gpio codeMike Frysinger2009-02-041-345/+202
| | | | | | | | | merge more of the bf54x and !bf54x gpio code together to cut down on #ifdef mess Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: explicit add a might sleep to gpio_freeUwe Kleine-Koenig2009-02-041-0/+2
| | | | | | | | | | | | | | | According to the documentation gpio_free should only be called from task context only. To make this more explicit add a might sleep to all implementations. This patch changes the gpio_free implementations for the blackfin architecture. Signed-off-by: Uwe Kleine-Koenig <ukleinek@strlen.de> Cc: David Brownell <david-b@pacbell.net> Acked-by: Bryan Wu <cooloney@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
* Blackfin arch: reset POLAR setting when acquiring a gpio for the first timeMichael Hennerich2009-02-041-1/+7
| | | | | | | | | | | | | | | | | | | | | when requesting a GPIO for the first time, the POLAR setting is not set to a sane state. this can lead to indeterminate behavior that cannot be resolved without an explicit write to the Blackfin port POLAR register. when requesting a GPIO for the first time via gpio_request(), the POLAR setting for the GPIO in question should be set to sane state. this should occur if the GPIO has not been allocated in any other way. some examples: - when doing something like "request_irq(); gpio_request();" on the same GPIO, the POLAR setting should not be reset. - when doing "gpio_request(); gpio_request();" on the same GPIO, the POLAR setting should be reset only the first time and not the second. Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: Fix Bug - request lines with peripheral_request_list, but ↵Michael Hennerich2009-02-041-3/+0
| | | | | | | | | | | don't get freed with peripheral_free_list Remove erroneous check_gpio(ident) in peripheral_free() Reported-by: Michael McTernan <mmcternan@airvana.com> Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: merge adeos blackfin part to arch/blackfin/Yi Li2009-01-071-50/+50
| | | | | | | | | | | | | | | | | | [Mike Frysinger <vapier.adi@gmail.com>: - handle bf531/bf532/bf534/bf536 variants in ipipe.h - cleanup IPIPE logic for bfin_set_irq_handler() - cleanup ipipe asm code a bit and add missing ENDPROC() - simplify IPIPE code in trap_c - unify some of the IPIPE code and fix style - simplify DO_IRQ_L1 handling with ipipe code - revert IRQ_SW_INT# addition from ipipe merge - remove duplicate get_{c,s}clk() prototypes ] Signed-off-by: Yi Li <yi.li@analog.com> Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: Allow a gpio pin be requested both as gpio and irq.Graf Yang2009-01-071-6/+76
| | | | | | | | | | | | [Mike Frysinger <vapier.adi@gmail.com>: - use KERN_NOTICE when using gpios as both irq and non rather than KERN_ERR - embedded newlines in printk() does not fly] Signed-off-by: Graf Yang <graf.yang@analog.com> Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: Request the gpio resource when making it as an irq pin, ↵Graf Yang2008-11-181-2/+2
| | | | | | | | avoiding override it. Signed-off-by: Graf Yang <graf.yang@analog.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: Convert Blackfin GPIO driver to use common gpiolib/gpiochip ↵Michael Hennerich2008-11-181-18/+72
| | | | | | | | | | | | infrastructure - This patch adds support for ARCH_WANT_OPTIONAL_GPIOLIB. - It may be changed in future to ARCH_REQUIRE_GPIOLIB. - Change GPIO_BANK_NUM use DIV_ROUND_UP( , ) macro Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: fix bug - gpio_bank() macros messed up bank number caculating ↵Bryan Wu2008-11-181-15/+15
| | | | | | | | | | | | | | | | | | | | with positioning a gpio The whole story: Before BF51x merged, all the MAX_BLACKFIN_GPIOS are integral multiple of GPIO_BANKSIZE (= 16). But BF51x provides MAX_BLACKFIN_GPIOS = 40 which includes 3 banks and the 3rd bank has only 8 GPIO pins. Therefore, gpio_bank() macros is correct when you try to find a GPIO in which bank (GPIO_35 is in bank 2). But on BF51x gpio_bank(MAX_BLACKFIN_GPIOS) only gives out 2 banks instead of 3 banks for some static array initialization. This patch add a new macros gpio_bank_n() and GPIO_BANK_NUM to do bank number caculating and remain the gpio_bank() macros for positioning a gpio in which bank. Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: refine the gpio checkMike Frysinger2008-10-281-5/+5
| | | | | | | | | refine the gpio check in peripheral_request() so that it only checks pins that can be used as both GPIO and a peripheral Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: unify port_setup() to reduce arch differencesMike Frysinger2008-10-281-14/+10
| | | | | | Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: unify peripheral_request() to reduce arch differencesMike Frysinger2008-10-281-78/+11
| | | | | | Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: fix cmp_label() so it doesnt incorrectly accept partial ↵Mike Frysinger2008-10-281-2/+1
| | | | | | | | leading matches Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: unify check_gpio() to reduce arch differencesMike Frysinger2008-10-281-9/+3
| | | | | | Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: add support for Blackfin latest processor family BF51xBryan Wu2008-11-181-11/+11
| | | | | Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: BF538/9 Linux kernel SupportMichael Hennerich2008-11-181-1/+5
| | | | | | | | Add supporing for Blackfin BF538 and BF539 processors. Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: fix incorrect limit check for bf54x check_gpioMike Frysinger2008-10-281-1/+1
| | | | | | Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: Fix bogus str_ident check in gpio codeMichael Hennerich2008-10-131-5/+2
| | | | | | Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: mark local gpio_error() as staticMike Frysinger2008-10-081-1/+1
| | | | | | Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: Functional power management supportMichael Hennerich2008-07-191-6/+112
| | | | | | | | | | Enable: PM_SUSPEND_MEM -> Blackfin Hibernate to SDRAM This feature requires a special bootloader (u-boot) supporting return from hibernate. Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* Blackfin arch: Add workaround to read edge triggered GPIOsMichael Hennerich2008-05-171-0/+19
| | | | | | Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* [Blackfin] arch: Allow concurrent use of GPIO and GPIO IRQMichael Hennerich2008-04-241-28/+17
| | | | | | | | | | | The irq setup code no longer calls gpio request and free. This patch also changes the default gpio_free behavior on Blackfin. A freed GPIO keeps it's last state, and is not defaulted back to an input. This is also what all other architectures do. Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* [Blackfin] arch: declare list of peripherals as const since we dont modify ↵Mike Frysinger2008-04-241-2/+2
| | | | | | | | the incoming array Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* [Blackfin] arch: Resolve the clash issue of UART defines between blackfin ↵Graf Yang2008-04-241-8/+8
| | | | | | | | | headers and include/linux/serial_reg. Signed-off-by: Graf Yang <graf.yang@analog.com> Cc: Robin Getz <rgetz@blackfin.uclinux.org> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* [Blackfin] arch: __FUNCTION__ is gcc-specific, use __func__Harvey Harrison2008-04-231-4/+4
| | | | | | | | | | Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Cc: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* [Blackfin] arch: fix up gpio code style -- no functional changesMike Frysinger2008-03-261-47/+39
| | | | | | Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* [Blackfin] arch: dump the stack before printing out an error otherwise the ↵Mike Frysinger2008-03-261-7/+7
| | | | | | | | stack dump is useless as it shows us tracing through printk Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
* [Blackfin] arch: hook up set_irq_wake in Blackfin's irq codeMichael Hennerich2008-02-091-12/+8
| | | | | | | | | | | - Add support for irq_wake on system and gpio interrupts - Remove outdated kernel options - Add option to select default PM mode - Fix various places where SIC_IWRx was only handled partially Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* [Blackfin] arch: GPIO API cleanup and anomaly updateMichael Hennerich2008-01-221-35/+28
| | | | | | | | | | | | | - Add anomaly workaround for bfin_gpio_reset_spi0_ssel1 - Fix style - Update copyright - Remove BUG_ON checks for functions intended to be used only by arch support. GPIO users should only access using the generic GPIO API - Make all GPIO identifier unsigned int Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* [Blackfin] arch: Fix BUG gpio_direction_output API is not compatitable with ↵Michael Hennerich2008-01-221-13/+42
| | | | | | | | GENERIC_GPIO API interface signef-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* [Blackfin] arch: Fix gpio label handlingMichael Hennerich2007-12-241-13/+18
| | | | | | | | | | | | | early serial init also utilizes the peripheral request api - however at this point bfin_gpio_init didn't allocate memory for the labels. So we always have two zombies (allocated pin functions without labels) This happens before the initcalls - We now allocate memory statically. Define MAX_RESOURCES individually for each cpu. Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* [Blackfin] arch: add support for BF523/BF524/BF526Mike Frysinger2007-12-241-0/+34
| | | | | | Signed-off-by: Mike Frysinger <michael.frysinger@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: add new processor ADSP-BF52x arch/mach supportMichael Hennerich2007-10-211-2/+33
| | | | | | Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: Comply with revised Anomaly Workarounds for BF533 05000311 ↵Michael Hennerich2007-10-101-70/+107
| | | | | | | | | | | and BF561 05000323 Comply with revised Anomaly Workarounds for BF533 05000311 and BF561 05000323 accoring to BF533 anomaly sheet Rev. A 09/04/07 Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: a few things still use bfin_read_PORT_FER()Michael Hennerich2007-10-111-0/+15
| | | | | | | | | | - Update gpio_request to allow multiple request with the same signature (label) - Use generic GPIO API where applicable - Update generic board support form stamp board Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: Merge GPIO/Peripheral Resource Allocation back into a single fileMichael Hennerich2007-08-281-11/+214
| | | | | | Signed-off-by: Michael Hennerich <michale.hennerich@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: extract gpio number from PIN functionMichael Hennerich2007-08-271-2/+4
| | | | | | Singed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: rewrite our reboot code in CMike Frysinger2007-10-111-0/+18
| | | | | | | | | | rewrite our reboot code in C rather than assembly to be like other architectures and to allow board maintainers to define custom behavior Signed-off-by: Mike Frysinger <michael.frysinger@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: Some cosmetics based on LKML feedback from Joe PerchesMichael Hennerich2007-08-031-36/+66
| | | | | | | Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Cc: Joe Perches <joe@perches.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: add missing gpio error handling to make sure we roll back ↵Michael Hennerich2007-07-241-2/+8
| | | | | | | | requests in case one fails Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: revise anomaly handling by basing things on the compiler not ↵Mike Frysinger2007-07-251-5/+5
| | | | | | | | | | | | | the kconfig defines revise anomaly handling by basing things on the compiler not the kconfig defines, so the header is stable and usable outside of the kernel. This also allows us to move some code from preprocessing to compiling (gcc culls dead code) which should help with code quality (readability, catch minor bugs, etc...). Signed-off-by: Mike Frysinger <michael.frysinger@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: fix PORT_J BUG for BF537/6 EMAC driver reported by Kalle ↵Michael Hennerich2007-10-041-8/+11
| | | | | | | | | Pokki <kalle.pokki@iki.fi> Cc: Kalle Pokki <kalle.pokki@iki.fi> Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: gpio pinmux and resource allocation API required by BF537 on ↵Michael Hennerich2007-10-041-31/+241
| | | | | | | | chip ethernet mac driver Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: cleanup warnings from checkpatch -- no functional changesMike Frysinger2007-07-121-7/+4
| | | | | | Signed-off-by: Mike Frysinger <michael.frysinger@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: fix bug can not wakeup from sleep via push buttonsMichael Hennerich2007-06-141-2/+10
| | | | | | Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: As Mike pointed out range goes form m..MAX_BLACKFIN_GPIO -1Michael Hennerich2007-06-111-1/+1
| | | | | | | Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Mike Frysinger <michael.frysinger@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
* Blackfin arch: Fix reserved map after we changed PORT_H definitionMichael Hennerich2007-05-211-2/+2
| | | | | | Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Blackfin arch: mark a bunch of local functions as staticMike Frysinger2007-05-211-4/+3
| | | | | | Signed-off-by: Mike Frysinger <michael.frysinger@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
OpenPOWER on IntegriCloud