23 Mar, 2018

6 commits


02 Feb, 2018

1 commit

  • Pull input layer updates from Dmitry Torokhov:

    - evdev interface has been adjusted to extend the life of timestamps on
    32 bit systems to the year of 2108

    - Synaptics RMI4 driver's PS/2 guest handling ha beed updated to
    improve chances of detecting trackpoints on the pass-through port

    - mms114 touchcsreen controller driver has been updated to support
    generic device properties and work with mms152 cntrollers

    - Goodix driver now supports generic touchscreen properties

    - couple of drivers for AVR32 architecture are gone as the architecture
    support has been removed from the kernel

    - gpio-tilt driver has been removed as there are no mainline users and
    the driver itself is using legacy APIs and relies on platform data

    - MODULE_LINECSE/MODULE_VERSION cleanups

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (45 commits)
    Input: goodix - use generic touchscreen_properties
    Input: mms114 - fix typo in definition
    Input: mms114 - use BIT() macro instead of explicit shifting
    Input: mms114 - replace mdelay with msleep
    Input: mms114 - add support for mms152
    Input: mms114 - drop platform data and use generic APIs
    Input: mms114 - mark as direct input device
    Input: mms114 - do not clobber interrupt trigger
    Input: edt-ft5x06 - fix error handling for factory mode on non-M06
    Input: stmfts - set IRQ_NOAUTOEN to the irq flag
    Input: auo-pixcir-ts - delete an unnecessary return statement
    Input: auo-pixcir-ts - remove custom log for a failed memory allocation
    Input: da9052_tsi - remove unused mutex
    Input: docs - use PROPERTY_ENTRY_U32() directly
    Input: synaptics-rmi4 - log when we create a guest serio port
    Input: synaptics-rmi4 - unmask F03 interrupts when port is opened
    Input: synaptics-rmi4 - do not delete interrupt memory too early
    Input: ad7877 - use managed resource allocations
    Input: stmfts,s6sy671 - add SPDX identifier
    Input: remove atmel-wm97xx touchscreen driver
    ...

    Linus Torvalds
     

21 Jan, 2018

1 commit


18 Jan, 2018

1 commit

  • Update a slew of documentation files with the latest changes in the
    API/ABI. Again stress that sysfs is deprecated. Add all new flags and
    clean up and move some text.

    Signed-off-by: Linus Walleij

    Linus Walleij
     

09 Jan, 2018

1 commit


02 Jan, 2018

1 commit

  • This driver was merged in 2011 as a tool for detecting the orientation
    of a screen. The device driver assumes board file setup using the
    platform data from . But no boards in the
    kernel tree defines this platform data.

    As I am faced with refactoring drivers to use GPIO descriptors and
    pass decriptor tables from boards, or use the device tree device
    drivers like these creates a serious problem: I cannot fix them and
    cannot test them, not even compile-test them with a system actually
    using it (no in-tree boardfile).

    I suggest to delete this driver and rewrite it using device tree if
    it is still in use on actively maintained systems.

    I can also offer to rewrite it out of the blue using device tree if
    someone promise to test it and help me iterate it.

    Signed-off-by: Linus Walleij
    Acked-by: Heiko Stuebner
    Patchwork-Id: 10133609
    Signed-off-by: Dmitry Torokhov

    Linus Walleij
     

09 Nov, 2017

1 commit


08 Nov, 2017

2 commits


20 Oct, 2017

1 commit

  • SPI-attached GPIO controllers typically read out all inputs in one go.
    If callers desire the values of multipe inputs, ideally a single readout
    should take place to return the desired values. However the current
    driver API only offers a ->get callback but no ->get_multiple (unlike
    ->set_multiple, which is present). Thus, to read multiple inputs, a
    full readout needs to be performed for every single value (barring
    driver-internal caching), which is inefficient.

    In fact, the lack of a ->get_multiple callback has been bemoaned
    repeatedly by the gpio subsystem maintainer:
    http://www.spinics.net/lists/linux-gpio/msg10571.html
    http://www.spinics.net/lists/devicetree/msg121734.html

    Introduce the missing callback. Add corresponding consumer functions
    such as gpiod_get_array_value(). Amend linehandle_ioctl() to take
    advantage of the newly added infrastructure. Update the documentation.

    Cc: Rojhalat Ibrahim
    Signed-off-by: Lukas Wunner
    Signed-off-by: Linus Walleij

    Lukas Wunner
     

22 Sep, 2017

2 commits


19 Sep, 2017

1 commit


08 Sep, 2017

1 commit

  • Pull input updates from Dmitry Torokhov:

    - a new GPIO bit-banging driver implementing PS/2 protocol

    - a new power key driver for Rockchip RK805 PMIC

    - bunch of patches constifying various device ID structures

    - Elan I2C touchpad driver now supports devices with 2 buttons

    - other assorted fixes

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (76 commits)
    Input: byd - make array seq static, reduces object code size
    Input: xilinx_ps2 - fix multiline comment style
    Input: pxa27x_keypad - handle return value of clk_prepare_enable
    Input: tegra-kbc - handle return value of clk_prepare_enable
    Input: PS/2 gpio bit banging driver for serio bus
    Input: xen-kbdfront - enable auto repeat for xen keyboard frontend driver
    Input: ambakmi - constify amba_id
    Input: atmel_mxt_ts - add support for reset line
    Input: atmel_mxt_ts - use more managed resources
    Input: wacom_w8001 - constify serio_device_id
    Input: tsc40 - constify serio_device_id
    Input: touchwin - constify serio_device_id
    Input: touchright - constify serio_device_id
    Input: touchit213 - constify serio_device_id
    Input: penmount - constify serio_device_id
    Input: mtouch - constify serio_device_id
    Input: inexio - constify serio_device_id
    Input: hampshire - constify serio_device_id
    Input: gunze - constify serio_device_id
    Input: fujitsu_ts - constify serio_device_id
    ...

    Linus Torvalds
     

29 Aug, 2017

1 commit

  • This driver provides PS/2 serio bus support by implementing bit banging
    with the GPIO API. The GPIO pins, data and clock, can be configured with
    a node in the device tree or by generic device properties (GDP).

    Writing to a device is supported as well, though it is possible timings
    can not be halt as they are tough and difficult to reach with bit banging.
    Therefore it can be configured (also in DT and GDP) whether the serio
    write function should be available for clients.

    This driver is for development purposes and not recommended for productive
    use. However, this driver can be useful e.g. when no USB port is available
    or using old peripherals is desired as PS/2 controller chips getting rare.

    This driver was tested on bcm2825 and on Kirin 960 and it worked well
    together with the atkbd and psmouse driver.

    Signed-off-by: Danilo Krummrich
    Reviewed-by: Linus Walleij
    Acked-by: Rob Herring
    Signed-off-by: Dmitry Torokhov

    Danilo Krummrich
     

07 Aug, 2017

1 commit


15 Mar, 2017

1 commit

  • Given the intent behind gpiod_get_optional() and friends it does not make
    sense to return -ENOSYS when GPIOLIB is disabled: the driver is expected to
    work just fine without gpio so let's behave as if gpio was not found.
    Otherwise we have to special-case -ENOSYS in drivers.

    Note that there was objection that someone might forget to enable GPIOLIB
    when dealing with a platform that has device that actually specifies
    optional gpio and we'll break it. I find this unconvincing as that would
    have to be the *only GPIO* in the system, which is extremely unlikely.

    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Linus Walleij

    Dmitry Torokhov
     

31 Jan, 2017

1 commit


26 Jan, 2017

1 commit

  • Currently we already have two pin configuration related callbacks
    available for GPIO chips .set_single_ended() and .set_debounce(). In
    future we expect to have even more, which does not scale well if we need
    to add yet another callback to the GPIO chip structure for each possible
    configuration parameter.

    Better solution is to reuse what we already have available in the
    generic pinconf.

    To support this, we introduce a new .set_config() callback for GPIO
    chips. The callback takes a single packed pin configuration value as
    parameter. This can then be extended easily beyond what is currently
    supported by just adding new types to the generic pinconf enum.

    If the GPIO driver is backed up by a pinctrl driver the GPIO driver can
    just assign gpiochip_generic_config() (introduced in this patch) to
    .set_config and that will take care configuration requests are directed
    to the pinctrl driver.

    We then convert the existing drivers over .set_config() and finally
    remove the .set_single_ended() and .set_debounce() callbacks.

    Suggested-by: Linus Walleij
    Signed-off-by: Mika Westerberg
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Linus Walleij

    Mika Westerberg
     

13 Dec, 2016

1 commit

  • Pull GPIO updates from Luinus Walleij:
    "Bulk GPIO changes for the v4.10 kernel cycle:

    Core changes:

    - Simplify threaded interrupt handling: instead of passing numbed
    parameters to gpiochip_irqchip_add_chained() we create a new call:
    gpiochip_irqchip_add_nested() so the two types are clearly
    semantically different. Also make sure that all nested chips call
    gpiochip_set_nested_irqchip() which is necessary for IRQ resend to
    work properly if it happens.

    - Return error on seek operations for the chardev.

    - Clamp values set as part of gpio[d]_direction_output() so that
    anything != 0 will be send down to the driver as "1" not the value
    passed in.

    - ACPI can now support naming of GPIO lines, hogs and holes in the
    GPIO lists.

    New drivers:

    - The SX150x driver was deemed unfit for the GPIO subsystem and was
    moved over to a combined GPIO+pinctrl driver in the pinctrl
    subsystem.

    New features:

    - Various cleanups to various drivers"

    * tag 'gpio-v4.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (49 commits)
    gpio: merrifield: Implement gpio_get_direction callback
    gpio: merrifield: Add support for hardware debouncer
    gpio: chardev: Return error for seek operations
    gpio: arizona: Tidy up probe error path
    gpio: arizona: Remove pointless set of platform drvdata
    gpio: pl061: delete platform data handling
    gpio: pl061: move platform data into driver
    gpio: pl061: rename variable from chip to pl061
    gpio: pl061: rename state container struct
    gpio: pl061: use local state for parent IRQ storage
    gpio: set explicit nesting on drivers
    gpio: simplify adding threaded interrupts
    gpio: vf610: use builtin_platform_driver
    gpio: axp209: use correct register for GPIO input status
    gpio: stmpe: fix interrupt handling bug
    gpio: em: depnd on ARCH_SHMOBILE
    gpio: zx: depend on ARCH_ZX
    gpio: x86: update config dependencies for x86 specific hardware
    gpio: mb86s7x: use builtin_platform_driver
    gpio: etraxfs: use builtin_platform_driver
    ...

    Linus Torvalds
     

25 Nov, 2016

1 commit

  • This tries to simplify the use of CONFIG_GPIOLIB_IRQCHIP when
    using threaded interrupts: add a new call
    gpiochip_irqchip_add_nested() to indicate that we're dealing
    with a nested rather than a chained irqchip, then create a
    separate gpiochip_set_nested_irqchip() to mirror
    the gpiochip_set_chained_irqchip() call to connect the
    parent and child interrupts.

    In the nested case gpiochip_set_nested_irqchip() does nothing
    more than call irq_set_parent() on each valid child interrupt,
    which has little semantic effect in the kernel, but this is
    probably still formally correct.

    Update all drivers using nested interrupts to use
    gpiochip_irqchip_add_nested() so we can now see clearly
    which these users are.

    The DLN2 driver can drop its specific hack with
    .irq_not_threaded as we now recognize whether a chip is
    threaded or not from its use of gpiochip_irqchip_add_nested()
    signature rather than from inspecting .can_sleep.

    We rename the .irq_parent to .irq_chained_parent since this
    parent IRQ is only really kept around for the chained
    interrupt handlers.

    Cc: Lars Poeschel
    Cc: Octavian Purdila
    Cc: Daniel Baluta
    Cc: Bin Gao
    Cc: Mika Westerberg
    Cc: Ajay Thomas
    Cc: Semen Protsenko
    Cc: Alexander Stein
    Cc: Phil Reid
    Cc: Bartosz Golaszewski
    Cc: Patrice Chotard
    Signed-off-by: Linus Walleij

    Linus Walleij
     

20 Oct, 2016

1 commit


23 Sep, 2016

2 commits

  • Linus Walleij
     
  • When using GPIO irqchip helpers to setup irqchip for a gpiolib based
    driver, it is not possible to select which GPIOs to add to the IRQ domain.
    Instead it just adds all GPIOs which is not always desired. For example
    there might be GPIOs that for some reason cannot generated normal
    interrupts at all.

    To support this we add a flag irq_need_valid_mask to struct gpio_chip. When
    this flag is set the core allocates irq_valid_mask that holds one bit for
    each GPIO the chip has. By default all bits are set but drivers can
    manipulate this using set_bit() and clear_bit() accordingly.

    Then when gpiochip_irqchip_add() is called, this mask is checked and all
    GPIOs with bit is set are added to the IRQ domain created for the GPIO
    chip.

    Suggested-by: Linus Walleij
    Signed-off-by: Mika Westerberg
    Signed-off-by: Linus Walleij

    Mika Westerberg
     

08 Aug, 2016

1 commit


13 Jun, 2016

1 commit


27 Apr, 2016

1 commit


10 Apr, 2016

1 commit

  • This has been a totally undocumented feature for years so add some
    generic concepts and documentation about open drain/source, include
    some facts on how we now support for hardware.

    Cc: Michael Hennerich
    Cc: Nicolas Saenz Julienne
    Cc: H. Nikolaus Schaller
    Signed-off-by: Linus Walleij

    Linus Walleij
     

25 Feb, 2016

1 commit


21 Nov, 2015

1 commit


06 Nov, 2015

1 commit

  • Pull documentation update from Jon Corbet:
    "There is a nice new document from Neil on how pathname lookups work
    and some new CAN driver documentation. Beyond that, we have
    kernel-doc fixes, a bit more work to support reproducible builds, and
    the usual collection of small fixes"

    * tag 'docs-for-linus' of git://git.lwn.net/linux: (34 commits)
    Documentation: add new description of path-name lookup.
    Documentation/vm/slub.txt: document slabinfo-gnuplot.sh
    Doc: ABI/stable: Fix typo in ABI/stable
    doc: Clarify that nmi_watchdog param is for hardlockups
    Typo correction for description in gpio document.
    DocBook: Fix kernel-doc to be case-insensitive for private:
    kernel-docs.txt: update kernelnewbies reference
    Doc:kvm: Fix typo in Doc/virtual/kvm
    Documentation/Changes: Add bc in "Current Minimal Requirements" section
    Documentation/email-clients.txt: remove trailing whitespace
    DocBook: Use a fixed encoding for output
    MAINTAINERS: The docs tree has moved
    Docs/kernel-parameters: Add earlycon devicetree usage
    SubmittingPatches: make Subject examples match the de facto standard
    Documentation: gpio: mention that -gpio has been deprecated
    Documentation: cgroups: just fix a few typos
    Documentation: Update kselftest.txt
    Documentation: DMA API: Be more explicit that nents is always the same
    Documentation: Update the default value of crashkernel low
    zram: update documentation
    ...

    Linus Torvalds
     

27 Oct, 2015

2 commits


20 Oct, 2015

1 commit


12 Oct, 2015

1 commit