13 Jun, 2016

1 commit

  • The Kconfig currently controlling compilation of this code is:

    config PINCTRL_LPC18XX
    bool "NXP LPC18XX/43XX SCU pinctrl driver"

    ...meaning that it currently is not being built as a module by anyone.

    Lets remove the modular code that is essentially orphaned, so that
    when reading the driver there is no doubt it is builtin-only.

    We explicitly disallow a driver unbind, since that doesn't have a
    sensible use case anyway, and it allows us to drop the ".remove"
    code for non-modular drivers.

    Since module_platform_driver() uses the same init level priority as
    builtin_platform_driver() the init ordering remains unchanged with
    this commit.

    Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.

    We also delete the MODULE_LICENSE tag etc. since all that information
    is already contained at the top of the file in the comments.

    Cc: Linus Walleij
    Cc: Joachim Eastwood
    Cc: linux-gpio@vger.kernel.org
    Signed-off-by: Paul Gortmaker
    Signed-off-by: Linus Walleij

    Paul Gortmaker
     

21 Apr, 2016

1 commit


01 Apr, 2016

1 commit


07 Mar, 2016

2 commits

  • Add support for setting up GPIO pin interrupts in the lpc18xx pinctrl
    driver. The LPC18xx SCU contain two registers that sets up the signal
    routing to the GPIO pin interrupt (PINT) block. The routing uses the
    GPIO namespace and not the pin namespace so a lookup is preformed on
    the pin.

    Routing configuration is done in the device tree by using the new
    nxp,gpio-pin-interrupt property. This property takes single parameter
    which sets the PINT hwirq for the GPIO.

    Signed-off-by: Joachim Eastwood
    Signed-off-by: Linus Walleij

    Joachim Eastwood
     
  • The initialization of ngroups is occurring at the end of the
    first iteration of the outer loop, which means that the
    assignment pins[ngroups++] = i is potentially indexing into
    a region outside of array pins because ngroups is not initialized.
    Instead, initialize ngroups in the inner loop before the first
    inner loop iteration.

    Signed-off-by: Colin Ian King
    Reviewed-by: Joachim Eastwood
    Signed-off-by: Linus Walleij

    Colin Ian King
     

05 Sep, 2015

1 commit

  • Pull pin control updates from Linus Walleij:
    "This is the bulk of pin control changes for the v4.3 development
    cycle.

    Like with GPIO it's a lot of stuff. If my subsystems are any sign of
    the overall tempo of the kernel v4.3 will be a gigantic diff.

    [ It looks like 4.3 is calmer than 4.2 in most other subsystems, but
    we'll see - Linus ]

    Core changes:

    - It is possible configure groups in debugfs.

    - Consolidation of chained IRQ handler install/remove replacing all
    call sites where irq_set_handler_data() and
    irq_set_chained_handler() were done in succession with a combined
    call to irq_set_chained_handler_and_data(). This series was
    created by Thomas Gleixner after the problem was observed by
    Russell King.

    - Tglx also made another series of patches switching
    __irq_set_handler_locked() for irq_set_handler_locked() which is
    way cleaner.

    - Tglx also wrote a good bunch of patches to make use of
    irq_desc_get_xxx() accessors and avoid looking up irq_descs from
    IRQ numbers. The goal is to get rid of the irq number from the
    handlers in the IRQ flow which is nice.

    Driver feature enhancements:

    - Power management support for the SiRF SoC Atlas 7.

    - Power down support for the Qualcomm driver.

    - Intel Cherryview and Baytrail: switch drivers to use raw spinlocks
    in IRQ handlers to play nice with the realtime patch set.

    - Rework and new modes handling for Qualcomm SPMI-MPP.

    - Pinconf power source config for SH PFC.

    New drivers and subdrivers:

    - A new driver for Conexant Digicolor CX92755.

    - A new driver for UniPhier PH1-LD4, PH1-Pro4, PH1-sLD8, PH1-Pro5,
    ProXtream2 and PH1-LD6b SoC pin control support.

    - Reverse-egineered the S/PDIF settings for the Allwinner sun4i
    driver.

    - Support for Qualcomm Technologies QDF2xxx ARM64 SoCs

    - A new Freescale i.mx6ul subdriver.

    Cleanup:

    - Remove platform data support in a number of SH PFC subdrivers"

    * tag 'pinctrl-v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (95 commits)
    pinctrl: at91: fix null pointer dereference
    pinctrl: mediatek: Implement wake handler and suspend resume
    pinctrl: mediatek: Fix multiple registration issue.
    pinctrl: sh-pfc: r8a7794: add USB pin groups
    pinctrl: at91: Use generic irq_{request,release}_resources()
    pinctrl: cherryview: Use raw_spinlock for locking
    pinctrl: baytrail: Use raw_spinlock for locking
    pinctrl: imx6ul: Remove .owner field
    pinctrl: zynq: Fix typos in smc0_nand_grp and smc0_nor_grp
    pinctrl: sh-pfc: Implement pinconf power-source param for voltage switching
    clk: rockchip: add pclk_pd_pmu to the list of rk3288 critical clocks
    pinctrl: sun4i: add spdif to pin description.
    pinctrl: atlas7: clear ugly branch statements for pull and drivestrength
    pinctrl: baytrail: Serialize all register access
    pinctrl: baytrail: Drop FSF mailing address
    pinctrl: rockchip: only enable gpio clock when it setting
    pinctrl/mediatek: fix spelling mistake in dev_err error message
    pinctrl: cherryview: Serialize all register access
    pinctrl: UniPhier: PH1-Pro5: add I2C ch6 pin-mux setting
    pinctrl: nomadik: reflect current input value
    ...

    Linus Torvalds
     

20 Jul, 2015

1 commit


17 Jul, 2015

1 commit


10 Jun, 2015

1 commit

  • Currently, pinctrl_register() just returns NULL on error, so the
    callers can not know the exact reason of the failure.

    Some of the pinctrl drivers return -EINVAL, some -ENODEV, and some
    -ENOMEM on error of pinctrl_register(), although the error code
    might be different from the real cause of the error.

    This commit reworks pinctrl_register() to return the appropriate
    error code and modifies all of the pinctrl drivers to use IS_ERR()
    for the error checking and PTR_ERR() for getting the error code.

    Signed-off-by: Masahiro Yamada
    Acked-by: Patrice Chotard
    Acked-by: Thierry Reding
    Acked-by: Heiko Stuebner
    Tested-by: Mika Westerberg
    Acked-by: Mika Westerberg
    Acked-by: Lee Jones
    Acked-by: Sören Brinkmann
    Acked-by: Laurent Pinchart
    Acked-by: Ray Jui
    Acked-by: Antoine Tenart
    Acked-by: Hongzhou Yang
    Acked-by: Wei Chen
    Signed-off-by: Linus Walleij

    Masahiro Yamada
     

19 May, 2015

1 commit


12 May, 2015

1 commit

  • Both pconf_get_pin and pconf_set_pin needs to lookup pin cap based
    on the pin number. Create a common helper function that both
    functions can use that also handles the case where no pin number is
    found in the pins array.

    This also fixes a small bug in pconf_get_pin where pconf_get_i2c0
    would use the pins array index rather than the pin number.

    Signed-off-by: Joachim Eastwood
    Signed-off-by: Linus Walleij

    Joachim Eastwood
     

06 May, 2015

1 commit