13 Oct, 2012

3 commits


02 Jul, 2012

1 commit


01 Mar, 2012

7 commits

  • This patch adds the support for new PIO controller found on some
    at91sam SOCs.
    - more peripheral multiplexing
    - more features to configure on a PIO (pull-down, Schmitt trigger, debouncer)
    - support for several IRQ triggering features (type and polarity)

    Support for those new features are retrieved from the device tree
    compatibility string.

    Debugfs at91_gpio file is updated to monitor configuration.

    Signed-off-by: Nicolas Ferre

    Nicolas Ferre
     
  • Both AIC and GPIO controllers are now using the standard of_irq_init()
    function to initialize IRQs in case of DT use.
    The DT specific initialization functions are now separated from the
    non-DT case and are now using "linear" irq domains.
    The .map() irqdomain operation is responsible for positioning the IRQ
    handlers. In AIC case, the Linux IRQ number is directly programmed in
    the hardware to avoid an additional reverse mapping operation.
    The AIC position its irq domain as the "default" irq domain.

    For DT case, the priority is not yet filled in the SMR. It will be the
    subject of another patch.

    Signed-off-by: Nicolas Ferre

    Nicolas Ferre
     
  • This value is determined at runtime using device tree or platform data
    information.

    Signed-off-by: Nicolas Ferre
    Acked-by: Jean-Christophe PLAGNIOL-VILLARD

    Nicolas Ferre
     
  • Replace the gpio_to_irq() macro by a plain gpiolib .to_irq() handler.
    This call is using the irqdomain to translate hardware to Linux
    IRQ numbers.
    The irq_to_gpio() macro is completely removed.

    Signed-off-by: Nicolas Ferre
    Acked-by: Jean-Christophe PLAGNIOL-VILLARD

    Nicolas Ferre
     
  • Protect build failure in case of non-DT configuration: the
    gpio_chip structure does not have a of_node field in case of
    !CONFIG_OF_GPIO.

    Keep this in a separate patch as it can be reverted if the
    field is added for both DT/non-DT cases.

    Signed-off-by: Nicolas Ferre
    Acked-by: Jean-Christophe PLAGNIOL-VILLARD

    Nicolas Ferre
     
  • Add "legacy" type of irqdomain to preserve old-style numbering
    and allow smooth transition for both DT and non-DT cases.

    Original idea and code by Jean-Christophe Plagniol-Villard.

    Signed-off-by: Nicolas Ferre
    Acked-by: Jean-Christophe PLAGNIOL-VILLARD

    Nicolas Ferre
     
  • What was true only on at91sam9263 about the sharing of a single AIC
    IRQ line for several GPIO banks is now used by several Atmel SoCs.

    Change a variable name to allow better understanding while
    introducing IRQ domains in following patches.

    Signed-off-by: Nicolas Ferre
    Acked-by: Jean-Christophe PLAGNIOL-VILLARD

    Nicolas Ferre
     

29 Nov, 2011

4 commits


28 Nov, 2011

1 commit


08 Aug, 2011

2 commits


29 Mar, 2011

4 commits


14 Jan, 2011

1 commit


27 Jun, 2009

1 commit

  • Remove at91_gpiolib_request. It returns -EPERM if a request pin is not
    in GPIO mode, however we want to be able to gpio_request alternative
    function pins to reserve them, and in some cases we need to be able to
    use the gpiolib functions on alternative function pins.

    Signed-off-by: Ryan Mallon
    Acked-by: David Brownell
    Signed-off-by: Russell King

    Ryan Mallon
     

14 Mar, 2009

1 commit


15 Feb, 2009

1 commit


12 Feb, 2009

1 commit


23 Oct, 2008

1 commit

  • From: David Brownell

    The "5298/1: Drop desc_handle_irq()" patch went overboard
    and deleted an essential line of code, causing all AT91
    GPIO interrupts to oops (in irq). Trimmed example:

    Unable to handle kernel NULL pointer dereference at virtual address 000000c4
    ...
    PC is at gpio_irq_handler+0x78/0xd0
    LR is at gpio_irq_handler+0x38/0xd0
    ...
    Backtrace:
    [] (gpio_irq_handler+0x0/0xd0) from [] (__exception_text_start+0x54/0x7c)
    [] (__exception_text_start+0x0/0x7c) from [] (__irq_svc+0x2c/0x60)
    Exception stack(0xc1c1de00 to 0xc1c1de48)
    [] (_spin_unlock_irq+0x0/0x3c) from [] (at91ether_open+0x220/0x318)
    [] (at91ether_open+0x0/0x318) from [] (dev_open+0xa8/0x10c)
    [] (dev_open+0x0/0x10c) from [] (dev_change_flags+0x98/0x164)
    [] (dev_change_flags+0x0/0x164) from [] (ip_auto_config+0x164/0xe28)
    [] (ip_auto_config+0x0/0xe28) from [] (__exception_text_end+0x60/0x180)
    [] (__exception_text_end+0x0/0x180) from [] (kernel_init+0x70/0xd8)
    [] (kernel_init+0x0/0xd8) from [] (do_exit+0x0/0x6ac)

    This patch restores the missing line'o'code.

    Signed-off-by: David Brownell
    Acked-by: Andrew Victor
    Signed-off-by: Russell King

    David Brownell
     

10 Oct, 2008

1 commit


09 Oct, 2008

1 commit


06 Sep, 2008

1 commit


07 Aug, 2008

2 commits


06 Mar, 2008

1 commit

  • Remove false lockdep warnings about lock recursion when declaring
    IRQs as being wake-capable, by marking putting GPIO irq_desc locks
    into their own class.

    (Thanks to Peter Zijlstra for helping track down such a small
    fix to this problem.)

    Signed-off-by: David Brownell
    Acked-by: Andrew Victor
    Signed-off-by: Russell King

    David Brownell
     

04 Feb, 2008

1 commit

  • On the at91sam9263, IRQs for GPIO banks C and D don't currently work.
    This is because banks C, D, and E share one clock and toplevel IRQ, but
    the AT91 code setting up and handling GPIO IRQs expects no sharing.
    This patch:

    - Fixes GPIO IRQ setup and handling to cope with GPIO banks that are
    shared like on sam9263 chips, by setting up a list of those banks
    and making the IRQ dispatching logic scan that list.

    - Precomputes the address of each bank's registers, saving it with
    other per-bank data so that it no longer needs to be constantly
    recomputed during IRQs and other GPIO operations. That shrinks
    hot-path code, while helping the GPIO bank irq updates.

    - Fixes a minor bug where IRQ_TYPE_NONE was wrongly rejected (it just
    means "use the default", which is "both edges" here).

    Signed-off-by: David Brownell
    Acked-by: Andrew Victor
    Signed-off-by: Russell King

    David Brownell
     

26 Jan, 2008

1 commit


20 Oct, 2007

1 commit


17 Mar, 2007

1 commit

  • It's been pointed out that output GPIOs should have an initial value, to
    avoid signal glitching ... among other things, it can be some time before
    a driver is ready. This patch corrects that oversight, fixing

    - documentation
    - platforms supporting the GPIO interface
    - users of that call (just one for now, others are pending)

    There's only one user of this call for now since most platforms are still
    using non-generic GPIO setup code, which in most cases already couples the
    initial value with its "set output mode" request.

    Note that most platforms are clear about the hardware letting the output
    value be set before the pin direction is changed, but the s3c241x docs are
    vague on that topic ... so those chips might not avoid the glitches.

    Signed-off-by: David Brownell
    Acked-by: Andrew Victor
    Acked-by: Milan Svoboda
    Acked-by: Haavard Skinnemoen
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     

22 Feb, 2007

1 commit

  • The new gpio_direction_input() and gpio_direction_output() functions
    were both enabling output mode. When configuring a GPIO for input mode,
    you need to program the ODR (Output Disable Register).

    Signed-off-by: Andrew Victor
    Signed-off-by: Russell King

    Andrew Victor
     

20 Feb, 2007

1 commit

  • * 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: (117 commits)
    [ARM] 4058/2: iop32x: set ->broken_parity_status on n2100 onboard r8169 ports
    [ARM] 4140/1: AACI stability add ac97 timeout and retries
    [ARM] 4139/1: AACI record support
    [ARM] 4138/1: AACI: multiple channel support for IRQ handling
    [ARM] 4211/1: Provide a defconfig for ns9xxx
    [ARM] 4210/1: base for new machine type "NetSilicon NS9360"
    [ARM] 4222/1: S3C2443: Remove reference to missing S3C2443_PM
    [ARM] 4221/1: S3C2443: DMA support
    [ARM] 4220/1: S3C24XX: DMA system initialised from sysdev
    [ARM] 4219/1: S3C2443: DMA source definitions
    [ARM] 4218/1: S3C2412: fix CONFIG_CPU_S3C2412_ONLY wrt to S3C2443
    [ARM] 4217/1: S3C24XX: remove the dma channel show at startup
    [ARM] 4090/2: avoid clash between PXA and SA1111 defines
    [ARM] 4216/1: add .gitignore entries for ARM specific files
    [ARM] 4214/2: S3C2410: Add Armzone QT2410
    [ARM] 4215/1: s3c2410 usb device: per-platform vbus_draw
    [ARM] 4213/1: S3C2410 - Update definition of ADCTSC_XY_PST
    [ARM] 4098/1: ARM: rtc_lock only used with rtc_cmos
    [ARM] 4137/1: Add kexec support
    [ARM] 4201/1: SMP barriers pair needed for the secondary boot process
    ...

    Fix up conflict due to typedef removal in sound/arm/aaci.h

    Linus Torvalds