Skip to content
Permalink
Branch: sunxi-devel
Commits on Jun 13, 2014
  1. pinctrl: sunxi: Define enable / disable irq callbacks for level trigg…

    jwrdegoede committed May 24, 2014
    …ered irqs
    
    Some drivers use disable_irq / enable_irq and do the work clearing the source
    in another thread instead of using a threaded interrupt handler.
    
    The irqchip used not having irq_disable and irq_enable callbacks in this case,
    will lead to unnecessary spurious interrupts:
    
    On a disable_irq in a chip without a handller for this, the irq core will
    remember the disable, but not actually call into the irqchip. With a level
    triggered interrupt (where the source has not been cleared) this will lead
    to an immediate retrigger, at which point the irq-core will mask the irq.
    So having an irq_disable callback in the irqchip will save us the interrupt
    firing a 2nd time for nothing.
    
    Drivers using disable / enable_irq like this, will call enable_irq when
    they finally have cleared the interrupt source, without an enable_irq callback,
    this will turn into an unmask, at which point the irq will trigger immediately
    because when it was originally acked the level was still high, so the ack was
    a nop.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
  2. pinctrl: sunxi: Properly handle level triggered gpio interrupts

    jwrdegoede committed May 22, 2014
    For level triggered gpio interrupts we need to use handle_fasteoi_irq,
    like we do with the irq-sunxi-nmi driver. This is necessary to give threaded
    interrupt handlers a chance to actuall clear the source of the interrupt
    (which may involve sleeping waiting for i2c / spi / mmc transfers), before
    acknowledging the interrupt.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
  3. pinctrl: sunxi: Move setting of mux to irq type from unmask to reques…

    jwrdegoede committed May 31, 2014
    …t_resources
    
    With level triggered interrupt mask / unmask will get called for each
    interrupt, doing the somewhat expensive mux setting on each unmask thus is
    not a good idea. Instead add a request_resources callback and do it there.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
  4. pinctrl: sunxi: Add IRQCHIP_SKIP_SET_WAKE flag for pinctrl irq chip

    wens authored and jwrdegoede committed Jan 7, 2014
    The sunxi pinctrl irq chip driver does not support wakeup at the
    moment. Adding IRQCHIP_SKIP_SET_WAKE lets the irqs work with drivers
    using wakeup.
    
    Signed-off-by: Chen-Yu Tsai <wens@csie.org>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
  5. pinctrl: sunxi: Implement multiple interrupt banks support

    mripard authored and jwrdegoede committed Jun 5, 2014
    The A23 and A31 support multiple interrupt banks. Support it by adding a linear
    domain covering all the banks. It's trickier than it should because there's an
    interrupt per bank, so we have multiple interrupts using the same domain.
    
    Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
  6. pinctrl: sunxi: Declare the interrupt function for the A31

    mripard authored and jwrdegoede committed Jun 5, 2014
    The primary pinctrl device has 4 interrupt banks. As usual, to be able to
    generate interrupts, the pins supporting it need to be muxed to a special
    function. Declare these functions in the pins array.
    
    Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
  7. pinctrl: sunxi: Declare the number of interrupt banks in the descriptor

    mripard authored and jwrdegoede committed Jun 5, 2014
    Declare in the description structure associated to the compatible the number of
    interrupt banks the device has. For now, we're not doing anything with it.
    
    Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
  8. pinctrl: sunxi: Add macro definition for pinctrl with more than one i…

    mripard authored and jwrdegoede committed Jun 5, 2014
    …nterrupt
    
    The A31 and A23, unlike the other Allwinner SoCs, have several interrupts banks
    and parent interrupts, while the other only have up to 32 interrupts in a
    single bank and a single parent interrupt.
    
    Start supporting it by introducing a function macro to declare irq functions
    and their banks.
    
    Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
  9. pinctrl: sunxi: Remove irq_mask_ack and use irq_ack instead

    mripard authored and jwrdegoede committed Jun 5, 2014
    If irq_mask_ack is not defined, mask_ack_irq will call irq_mask and then
    irq_ack. In order to avoid code duplication, between irq_mask_ack and irq_mask,
    just declare irq_ack.
    
    Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
  10. ARM: dts: sun7i-a20-i12-tvbox: Add ir receiver support

    jwrdegoede committed May 21, 2014
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
  11. ARM: dts: sun5i: Add new auxtek-t004 board file

    jwrdegoede committed May 25, 2014
    The auxtek-t004:
    http://www.fasttech.com/products/1110/10004200/1318603-auxtek-t004-allwinner-a10s-single-core-android-ics
    
    Is an Allwinner A10s based hdmi tv stick with with 512M RAM, 4G nand flash,
    toc9002 (bcm43362) sdio wifi, 1 USB host ports using an USB-A receptacle and
    a 2 micro-usb receptacles, one for power and one for USB OTG.
    
    The sdio wifi appears to not have an oob irq hooked up, so we rely on sdio-irq
    support for it.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
  12. mmc: Add SDIO function devicetree subnode parsing

    saschahauer authored and jwrdegoede committed May 21, 2014
    This adds SDIO devicetree subnode parsing to the mmc core. While
    SDIO devices are runtime probable they sometimes need nonprobable
    additional information on embedded systems, like an additional gpio
    interrupt or a clock. This patch makes it possible to supply this
    information from the devicetree. SDIO drivers will find a pointer
    to the devicenode in their devices of_node pointer.
    
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    [hdegoede@redhat.com: Misc. cleanups]
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
  13. dt: bindings: mmc: Add sdio function subnode documentation

    saschahauer authored and jwrdegoede committed May 31, 2014
    While SDIO devices are runtime probable they sometimes need nonprobable
    additional information on embedded systems, like an additional gpio
    interrupt or a clock. This binding describes how to add child nodes to the
    devicetree to supply this information.
    
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    [hdegoede@redhat.com: Documented the need for #address- and #size-cells]
    [hdegoede@redhat.com: Added a real world example]
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
  14. brcmfmac: Fix OOB interrupt not working for BCM43362

    jwrdegoede committed May 24, 2014
    It has taken me a long long time to get the OOB interrupt working on the
    AP6210 sdio wifi/bt module found on various Allwinner A20 boards. In the
    end I found these magic register pokes in the cubietruck kernel tree:
    https://github.com/cubieboard2/linux-sunxi/commit/7f08ba395617d17e7a711507503d89a50406fe7a
    
    I'm not entirely sure if this specific to the AP6210 module, or if this
    should be done for all BCM43362 sdio devices.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
  15. brcmfmac: Fix some wrong register defines

    jwrdegoede committed May 31, 2014
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
  16. brcmfmac: add device tree support for SDIO devices

    wens authored and jwrdegoede committed Jan 7, 2014
    brcmfmac devices can use an out-of-band interrupt on a GPIO line.
    Currently this is specified using platform data. Add support for
    specifying out-of-band interrupt via device tree.
    
    Signed-off-by: Chen-Yu Tsai <wens@csie.org>
    [arend@broadcom.com: conditionalize more of-code, use driver debug routines]
    Signed-off-by: Arend van Spriel <arend@broadcom.com>
    [hdegoede@redhat.com: drop clk / reg_on gpio handling, as there is no consensus
     on how to handle this yet]
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
  17. ARM: dts: sun7i: Add OOB irq support to boards with broadcom sdio wifi

    jwrdegoede committed May 24, 2014
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
  18. ARM: dts: sun7i: Add #interrupt-cells to pinctrl node

    wens authored and jwrdegoede committed Jan 7, 2014
    The pinctrl device is also an interrupt controller for external
    interrupts. Add the missing #interrupt-cells property.
    
    Also remove the unused #address-cells property.
    
    Signed-off-by: Chen-Yu Tsai <wens@csie.org>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
  19. dt: bindings: add bindings for Broadcom bcm43xx sdio devices

    arend authored and jwrdegoede committed Jan 31, 2014
    The Broadcom bcm43xx sdio devices are fullmac devices that may be
    integrated in ARM platforms. Currently, the brcmfmac driver for
    these devices support use of platform data. This patch specifies
    the bindings that allow this platform data to be expressed in the
    devicetree.
    
    Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
    Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
    Reviewed-by: Daniel (Deognyoun) Kim <dekim@broadcom.com>
    Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
    Signed-off-by: Arend van Spriel <arend@broadcom.com>
    [hdegoede@redhat.com: drop clk / reg_on gpio handling, as there is no consensus
     on how to handle this yet]
    [hdegoede@redhat.com: move from bindings/staging to bindings]
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
  20. i2c: sunxi: add P2WI (Push/Pull 2 Wire Interface) controller support

    Boris BREZILLON authored and jwrdegoede committed Jun 11, 2014
    The P2WI controller looks like an SMBus controller which only supports byte
    data transfers. But, it differs from standard SMBus protocol on several
    aspects:
    - it supports only one slave device, and thus drop the address field
    - it adds a parity bit every 8bits of data
    - only one read access is required to read a byte (instead of a write
      followed by a read access in standard SMBus protocol)
    - there's no Ack bit after each byte transfer
    
    This means this bus cannot be used to interface with standard SMBus
    devices (the only known device to support this interface is the AXP221
    PMIC).
    However the P2WI protocol is close enough to SMBus to be integrated in
    the I2C subsystem (see this thread [1] for detailed reasons that led to
    integrating this driver in the I2C subsystem).
    
    [1] http://www.spinics.net/lists/linux-i2c/msg15066.html
    
    Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com>
    Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
    Acked-by: Arnd Bergmann <arnd@arndb.de>
  21. i2c: sunxi: add P2WI DT bindings documentation

    Boris BREZILLON authored and jwrdegoede committed Jun 11, 2014
    P2WI (Push/Pull 2 Wire Interface) is an SMBus like bus used to communicate
    with some PMICs (like the AXP221).
    
    Document P2WI DT bindings which are pretty much the same as the one defined
    for the marvell's mv64xxx controller.
    
    Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com>
  22. ARM: sunxi: dt: Add DT bindings documentation for SUNXI Security System

    montjoie authored and jwrdegoede committed Jun 10, 2014
    This patch adds documentation for Device-Tree bindings for the Security
    System cryptographic accelerator driver.
    
    Signed-off-by: LABBE Corentin <clabbe.montjoie@gmail.com>
  23. ARM: sun7i: dt: Add Security System to A20 SoC DTS

    montjoie authored and jwrdegoede committed Jun 10, 2014
    The Security System is a hardware cryptographic accelerator that support
    AES/MD5/SHA1/DES/3DES/PRNG algorithms.
    It could be found on many Allwinner SoC.
    
    This patch enable the Security System on the Allwinner A20 SoC Device-tree.
    
    Signed-off-by: LABBE Corentin <clabbe.montjoie@gmail.com>
  24. crypto: Update makefile and Kconfig for Security System

    montjoie authored and jwrdegoede committed Jun 10, 2014
    Add necessary changes for configuring and compiling the Security System driver.
    
    Signed-off-by: LABBE Corentin <clabbe.montjoie@gmail.com>
  25. crypto: Add Allwinner Security System crypto accelerator

    montjoie authored and jwrdegoede committed Jun 10, 2014
    Add support for the Security System included in Allwinner SoC A20.
    The Security System is a hardware cryptographic accelerator that support AES/MD5/SHA1/DES/3DES/PRNG algorithms.
    
    Signed-off-by: LABBE Corentin <clabbe.montjoie@gmail.com>
  26. ARM: sunxi: Enable IR controller on cubieboard 2 and cubietruck in dts

    alexbers authored and jwrdegoede committed Jun 8, 2014
    This patch enables two IR devices in dts:
    - One IR device physically found on Cubieboard 2
    - One IR device physically found on Cubietruck
    
    Signed-off-by: Alexander Bersenev <bay@hackerdom.ru>
    Signed-off-by: Alexsey Shestacov <wingrime@linux-sunxi.org>
  27. ARM: sunxi: Add IR controllers on A20 to dtsi

    alexbers authored and jwrdegoede committed Jun 8, 2014
    This patch adds records for two IR controllers on A20
    
    Signed-off-by: Alexander Bersenev <bay@hackerdom.ru>
    Signed-off-by: Alexsey Shestacov <wingrime@linux-sunxi.org>
  28. ARM: sunxi: Add pins for IR controller on A20 to dtsi

    alexbers authored and jwrdegoede committed Jun 8, 2014
    This patch adds pins for two IR controllers on A20
    
    Signed-off-by: Alexander Bersenev <bay@hackerdom.ru>
    Signed-off-by: Alexsey Shestacov <wingrime@linux-sunxi.org>
  29. rc: add sunxi-ir driver

    alexbers authored and jwrdegoede committed Jun 8, 2014
    This patch adds driver for sunxi IR controller.
    It is based on Alexsey Shestacov's work based on the original driver
    supplied by Allwinner.
    
    Signed-off-by: Alexander Bersenev <bay@hackerdom.ru>
    Signed-off-by: Alexsey Shestacov <wingrime@linux-sunxi.org>
  30. ARM: sunxi: Add documentation for sunxi consumer infrared devices

    alexbers authored and jwrdegoede committed Jun 8, 2014
    This patch adds documentation for Device-Tree bindings for sunxi IR
    controller.
    
    Signed-off-by: Alexander Bersenev <bay@hackerdom.ru>
    Signed-off-by: Alexsey Shestacov <wingrime@linux-sunxi.org>
  31. regulator: axp20x: resolve self dependency issue

    Boris BREZILLON authored and jwrdegoede committed May 26, 2014
    Some regulators might take their power supply from other regulators defined
    by the same PMIC.
    
    Retry regulators registration until all regulators are registered or the
    last iteration didn't manage to register any new regulator (which means
    there's an external dependency missing and we can thus return
    EPROBE_DEFER).
    
    Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com>
  32. regulator: axp20x: reset probe data before each probe

    Boris BREZILLON authored and jwrdegoede committed May 26, 2014
    The init_data and of_node fields of the axp2xx_matches tables are filled
    at each device probe by the axp20x_regulator_parse_dt function (which then
    calls the of_regulator_match function).
    This means we can probe a new device and consider data initialized during
    the probe of another device as valid.
    
    Reset init_data and of_node field to NULL before each probe in order to
    avoid this kind of issue.
    
    Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com>
  33. regulator: axp20x: add support for AXP221 regulators

    Boris BREZILLON authored and jwrdegoede committed May 26, 2014
    Add AXP221 regulator definitions and choose the appropriate definitions
    according to the variant id passed by the MFD device.
    
    Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com>
  34. regulator: axp20x: prepare support for multiple AXP chip families

    Boris BREZILLON authored and jwrdegoede committed May 26, 2014
    Rework the AXP20X_ macros to support the several chip families, so that
    each family can define it's own set of regulators, and regulator matches.
    
    Pass a match table to the axp20x_regulator_parse_dt function instead of
    statically using the axp20x match table.
    
    Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com>
  35. mfd: axp20x: add AXP221 PMIC support

    Boris BREZILLON authored and jwrdegoede committed May 26, 2014
    Add support for the AXP221 PMIC device to the existing AXP20x driver.
    
    The AXP221 defines a new set of registers, power supplies and regulators,
    but most of the API is similar to the AXP20x ones.
    The AXP20x irq chip definition is reused, though some interrupts are not
    available in the AXP221.
    
    Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com>
Older
You can’t perform that action at this time.