14 Dec, 2020

6 commits


29 Sep, 2020

3 commits

  • Change PINCTRL_IMX to tristate to support loadable module build.

    And i.MX common pinctrl driver should depend on CONFIG_OF to make sure
    no build error when i.MX common pinctrl driver is enabled for different
    architectures without CONFIG_OF.

    Also add module author, description and license.

    Signed-off-by: Anson Huang
    Reviewed-by: Dong Aisheng
    Link: https://lore.kernel.org/r/1599552721-24872-3-git-send-email-Anson.Huang@nxp.com
    Signed-off-by: Linus Walleij

    Anson Huang
     
  • Change PINCTR_IMX_SCU to tristate, add module author, description
    and license to support building SCU pinctrl core driver as module.

    Signed-off-by: Anson Huang
    Reviewed-by: Dong Aisheng
    Link: https://lore.kernel.org/r/1599552721-24872-2-git-send-email-Anson.Huang@nxp.com
    Signed-off-by: Linus Walleij

    Anson Huang
     
  • Use function callbacks for SCU related functions in pinctrl-imx.c
    in order to support the scenario of PINCTRL_IMX is built in while
    PINCTRL_IMX_SCU is built as module, all drivers using SCU pinctrl
    driver need to initialize the SCU related function callback, and
    no need to check CONFIG_PINCTRL_IMX_SCU anymore, hence stub functions
    also can be removed.

    Signed-off-by: Anson Huang
    Reviewed-by: Dong Aisheng
    Link: https://lore.kernel.org/r/1599552721-24872-1-git-send-email-Anson.Huang@nxp.com
    Signed-off-by: Linus Walleij

    Anson Huang
     

10 Aug, 2020

1 commit

  • Pull pin control updates from Linus Walleij:
    "This is the bulk of the pin control changes for the v5.9 kernel
    series:

    Core changes:

    - The GPIO patch "gpiolib: Introduce for_each_requested_gpio_in_range()
    macro" was put in an immutable branch and merged into the pinctrl
    tree as well. We see these changes also here.

    - Improved debug output for pins used as GPIO.

    New drivers:

    - Ocelot Sparx5 SoC driver.

    - Intel Emmitsburg SoC subdriver.

    - Intel Tiger Lake-H SoC subdriver.

    - Qualcomm PM660 SoC subdriver.

    - Renesas SH-PFC R8A774E1 subdriver.

    Driver improvements:

    - Linear improvement and cleanups of the Intel drivers for
    Cherryview, Lynxpoint, Baytrail etc. Improved locking among other
    things.

    - Renesas SH-PFC has added support for RPC pins, groups, and
    functions to r8a77970 and r8a77980.

    - The newere Freescale (now NXP) i.MX8 pin controllers have been
    modularized. This is driven by the Google Android GKI initiative I
    think.

    - Open drain support for pins on the Qualcomm IPQ4019.

    - The Ingenic driver can handle both edges IRQ detection.

    - A big slew of documentation fixes all over the place.

    - A few irqchip template conversions by yours truly.

    * tag 'pinctrl-v5.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (107 commits)
    dt-bindings: pinctrl: add bindings for MediaTek MT6779 SoC
    pinctrl: stmfx: Use irqchip template
    pinctrl: amd: Use irqchip template
    pinctrl: mediatek: fix build for tristate changes
    pinctrl: samsung: Use bank name as irqchip name
    pinctrl: core: print gpio in pins debugfs file
    pinctrl: mediatek: add mt6779 eint support
    pinctrl: mediatek: add pinctrl support for MT6779 SoC
    pinctrl: mediatek: avoid virtual gpio trying to set reg
    pinctrl: mediatek: update pinmux definitions for mt6779
    pinctrl: stm32: use the hwspin_lock_timeout_in_atomic() API
    pinctrl: mcp23s08: Use irqchip template
    pinctrl: sx150x: Use irqchip template
    dt-bindings: ingenic,pinctrl: Support pinmux/pinconf nodes
    pinctrl: intel: Add Intel Emmitsburg pin controller support
    pinctl: ti: iodelay: Replace HTTP links with HTTPS ones
    Revert "gpio: omap: handle pin config bias flags"
    pinctrl: single: Use fallthrough pseudo-keyword
    pinctrl: qcom: spmi-gpio: Use fallthrough pseudo-keyword
    pinctrl: baytrail: Use fallthrough pseudo-keyword
    ...

    Linus Torvalds
     

06 Jul, 2020

9 commits

  • Change configuration to "tristate", add module device table,
    author, description and license to support building i.MX8DXL
    pinctrl driver as module.

    Signed-off-by: Anson Huang
    Reviewed-by: Dong Aisheng
    Link: https://lore.kernel.org/r/1592979844-18833-10-git-send-email-Anson.Huang@nxp.com
    Signed-off-by: Linus Walleij

    Anson Huang
     
  • Change configuration to "tristate", add module device table,
    author, description and license to support building i.MX8QM
    pinctrl driver as module.

    Signed-off-by: Anson Huang
    Reviewed-by: Dong Aisheng
    Link: https://lore.kernel.org/r/1592979844-18833-9-git-send-email-Anson.Huang@nxp.com
    Signed-off-by: Linus Walleij

    Anson Huang
     
  • Change configuration to "tristate", add module device table,
    author, description and license to support building i.MX8QXP
    pinctrl driver as module.

    Signed-off-by: Anson Huang
    Reviewed-by: Dong Aisheng
    Link: https://lore.kernel.org/r/1592979844-18833-8-git-send-email-Anson.Huang@nxp.com
    Signed-off-by: Linus Walleij

    Anson Huang
     
  • Change configuration to "tristate", add module device table,
    author, description and license to support building i.MX8MP
    pinctrl driver as module.

    Signed-off-by: Anson Huang
    Reviewed-by: Dong Aisheng
    Link: https://lore.kernel.org/r/1592979844-18833-7-git-send-email-Anson.Huang@nxp.com
    Signed-off-by: Linus Walleij

    Anson Huang
     
  • Change configuration to "tristate", add module device table,
    author, description and license to support building i.MX8MQ
    pinctrl driver as module.

    Signed-off-by: Anson Huang
    Reviewed-by: Dong Aisheng
    Link: https://lore.kernel.org/r/1592979844-18833-6-git-send-email-Anson.Huang@nxp.com
    Signed-off-by: Linus Walleij

    Anson Huang
     
  • Change configuration to "tristate", add module device table,
    author, description and license to support building i.MX8MN
    pinctrl driver as module.

    Signed-off-by: Anson Huang
    Reviewed-by: Dong Aisheng
    Link: https://lore.kernel.org/r/1592979844-18833-5-git-send-email-Anson.Huang@nxp.com
    Signed-off-by: Linus Walleij

    Anson Huang
     
  • Change configuration to "tristate", add module device table,
    author, description and license to support building i.MX8MM
    pinctrl driver as module.

    Signed-off-by: Anson Huang
    Reviewed-by: Dong Aisheng
    Link: https://lore.kernel.org/r/1592979844-18833-4-git-send-email-Anson.Huang@nxp.com
    Signed-off-by: Linus Walleij

    Anson Huang
     
  • Export necessary APIs to support i.MX8 SCU SoCs pinctrl driver to be
    built as module.

    Signed-off-by: Anson Huang
    Reviewed-by: Dong Aisheng
    Link: https://lore.kernel.org/r/1592979844-18833-3-git-send-email-Anson.Huang@nxp.com
    Signed-off-by: Linus Walleij

    Anson Huang
     
  • Export necessary APIs to support i.MX8 SoCs pinctrl driver to be
    built as module.

    Signed-off-by: Anson Huang
    Reviewed-by: Dong Aisheng
    Link: https://lore.kernel.org/r/1592979844-18833-2-git-send-email-Anson.Huang@nxp.com
    Signed-off-by: Linus Walleij

    Anson Huang
     

21 Jun, 2020

1 commit

  • …in case of error in 'imx_pinctrl_probe()'"

    This reverts commit ba403242615c2c99e27af7984b1650771a2cc2c9.

    After commit 26d8cde5260b ("pinctrl: freescale: imx: add shared
    input select reg support"). i.MX7D has two iomux controllers
    iomuxc and iomuxc-lpsr which share select_input register for
    daisy chain settings.
    If use 'devm_of_iomap()', when probe the iomuxc-lpsr, will call
    devm_request_mem_region() for the region <0x30330000-0x3033ffff>
    for the first time. Then, next time when probe the iomuxc, API
    devm_platform_ioremap_resource() will also use the API
    devm_request_mem_region() for the share region <0x30330000-0x3033ffff>
    again, then cause issue, log like below:

    [ 0.179561] imx7d-pinctrl 302c0000.iomuxc-lpsr: initialized IMX pinctrl driver
    [ 0.191742] imx7d-pinctrl 30330000.pinctrl: can't request region for resource [mem 0x30330000-0x3033ffff]
    [ 0.191842] imx7d-pinctrl: probe of 30330000.pinctrl failed with error -16

    Fixes: ba403242615c ("pinctrl: freescale: imx: Use 'devm_of_iomap()' to avoid a resource leak in case of error in 'imx_pinctrl_probe()'")
    Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
    Reviewed-by: Dong Aisheng <aisheng.dong@nxp.com>
    Link: https://lore.kernel.org/r/1591673223-1680-1-git-send-email-haibo.chen@nxp.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

    Haibo Chen
     

03 Jun, 2020

3 commits

  • …of error in 'imx_pinctrl_probe()'

    Use 'devm_of_iomap()' instead 'of_iomap()' to avoid a resource leak in
    case of error.

    Update the error handling code accordingly.

    Fixes: 26d8cde5260b ("pinctrl: freescale: imx: add shared input select reg support")
    Suggested-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
    Link: https://lore.kernel.org/r/20200602200626.677981-1-christophe.jaillet@wanadoo.fr
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

    Christophe JAILLET
     
  • 'pinctrl_unregister()' should not be called to undo
    'devm_pinctrl_register_and_init()', it is already handled by the framework.

    This simplifies the error handling paths of the probe function.
    The 'imx_free_resources()' can be removed as well.

    Fixes: a51c158bf0f7 ("pinctrl: imx: use radix trees for groups and functions")
    Signed-off-by: Christophe JAILLET
    Reviewed-by: Dong Aisheng
    Link: https://lore.kernel.org/r/20200530204955.588962-1-christophe.jaillet@wanadoo.fr
    Signed-off-by: Linus Walleij

    Christophe JAILLET
     
  • When 'pinctrl_register()' has been turned into 'devm_pinctrl_register()',
    an error handling path has not been updated.

    Axe a now unneeded 'pinctrl_unregister()'.

    Fixes: e55e025d1687 ("pinctrl: imxl: Use devm_pinctrl_register() for pinctrl registration")
    Signed-off-by: Christophe JAILLET
    Link: https://lore.kernel.org/r/20200530201952.585798-1-christophe.jaillet@wanadoo.fr
    Signed-off-by: Linus Walleij

    Christophe JAILLET
     

28 Apr, 2020

1 commit

  • use codespell to fix lots of typos over frontends.

    Signed-off-by: Dejin Zheng
    Reviewed-by: Geert Uytterhoeven
    Acked-by: Geert Uytterhoeven
    CC: Andy Shevchenko
    Link: https://lore.kernel.org/r/20200421142402.9524-1-zhengdejin5@gmail.com
    Signed-off-by: Linus Walleij

    Dejin Zheng
     

16 Apr, 2020

1 commit

  • i.MX8DXL contains a system controller that is responsible for controlling
    the pad setting of the IPs that are present. Communication between the
    host processor running an OS and the system controller happens through
    a SCU protocol, add support for the SCU based i.MX8DXL pinctrl driver.

    Signed-off-by: Anson Huang
    Link: https://lore.kernel.org/r/1585306559-13973-2-git-send-email-Anson.Huang@nxp.com
    Signed-off-by: Linus Walleij

    Anson Huang
     

03 Apr, 2020

1 commit

  • Pull pin control updates from Linus Walleij:
    "This is the bulk of pin control changes for the v5.7 kernel cycle.

    There are no core changes this time, only driver developments:

    - New driver for the Dialog Semiconductor DA9062 Power Management
    Integrated Circuit (PMIC).

    - Renesas SH-PFC has improved consistency, with group and register
    checks in the configuration checker.

    - New subdriver for the Qualcomm IPQ6018.

    - Add the RGMII pin control functionality to Qualcomm IPQ8064.

    - Performance and code quality cleanups in the Mediatek driver.

    - Improve the Broadcom BCM2835 support to cover all the GPIOs that
    exist in it.

    - The Allwinner/Sunxi driver properly masks non-wakeup IRQs on
    suspend.

    - Add some missing groups and functions to the Ingenic driver.

    - Convert some of the Freescale device tree bindings to use the new
    and all improved JSON YAML markup.

    - Refactorings and support for the SFIO/GPIO in the Tegra194 SoC
    driver.

    - Support high impedance mode in the Spreadtrum/Unisoc driver"

    * tag 'pinctrl-v5.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (64 commits)
    pinctrl: qcom: fix compilation error
    pinctrl: qcom: use scm_call to route GPIO irq to Apps
    pinctrl: sprd: Add pin high impedance mode support
    pinctrl: sprd: Use the correct pin output configuration
    pinctrl: tegra: Add SFIO/GPIO programming on Tegra194
    pinctrl: tegra: Renumber the GG.0 and GG.1 pins
    pinctrl: tegra: Do not add default pin range on Tegra194
    pinctrl: tegra: Pass struct tegra_pmx for pin range check
    pinctrl: tegra: Fix "Scmitt" -> "Schmitt" typo
    pinctrl: tegra: Fix whitespace issues for improved readability
    pinctrl: mediatek: Use scnprintf() for avoiding potential buffer overflow
    pinctrl: freescale: drop the dependency on ARM64 for i.MX8M
    Revert "pinctrl: mvebu: armada-37xx: use use platform api"
    dt-bindings: pinctrl: at91: Fix a typo ("descibe")
    pinctrl: meson: add tsin pinctrl for meson gxbb/gxl/gxm
    pinctrl: sprd: Fix the kconfig warning
    pinctrl: ingenic: add hdmi-ddc pin control group
    pinctrl: sirf/atlas7: Replace zero-length array with flexible-array member
    pinctrl: sprd: Allow the SPRD pinctrl driver building into a module
    pinctrl: Export some needed symbols at module load time
    ...

    Linus Torvalds
     

26 Mar, 2020

1 commit


21 Feb, 2020

1 commit

  • The imx SC api strongly assumes that messages are composed out of
    4-bytes words but some of our message structs have odd sizeofs.

    This produces many oopses with CONFIG_KASAN=y.

    Fix by marking with __aligned(4).

    Fixes: b96eea718bf6 ("pinctrl: fsl: add scu based pinctrl support")
    Signed-off-by: Leonard Crestez
    Link: https://lore.kernel.org/r/bd7ad5fd755739a6d8d5f4f65e03b3ca4f457bd2.1582216144.git.leonard.crestez@nxp.com
    Signed-off-by: Linus Walleij

    Leonard Crestez
     

30 Jan, 2020

1 commit

  • Pull pin control updates from Linus Walleij:
    "This is the bulk of pin control changes, nothing too exciting about
    this.

    Some changes hit arch/sh and arch/arm but are well isolated and
    acknowledged by the respective arch maintainers.

    Core changes:

    - Dropped the chained IRQ setup callback into GPIOLIB as we got rid
    of the last users of that in this changeset.

    New drivers:

    - New driver for Ingenic X1830.

    - New driver for Freescale i.MX8MP.

    Driver enhancements:

    - Fix all remaining Intel drivers to pass their IRQ chips along with
    the GPIO chips.

    - Intel Baytrail allocates its irqchip dynamically.

    - Intel Lynxpoint is thoroughly rewritten and modernized.

    - Aspeed AST2600 pin muxing and configuration is much improved.

    - Qualcomm SC7180 functions are updated and wakeup interrupt map is
    provided.

    - A whole slew of Renesas SH-PFC cleanups and improvements.

    - Fix up the Intel DT bindings to use the generic YAML DT bindings
    schema (a first user of this)"

    * tag 'pinctrl-v5.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (99 commits)
    pinctrl: madera: Remove extra blank line
    pinctrl: qcom: Don't lock around irq_set_irq_wake()
    pinctrl: mvebu: armada-37xx: use use platform api
    gpio: Drop the chained IRQ handler assign function
    pinctrl: freescale: Add i.MX8MP pinctrl driver support
    dt-bindings: imx: Add pinctrl binding doc for i.MX8MP
    pinctrl: tigerlake: Tiger Lake uses _HID enumeration
    pinctrl: sunrisepoint: Add Coffee Lake-S ACPI ID
    pinctrl: iproc: Use platform_get_irq_optional() to avoid error message
    pinctrl: dt-bindings: Fix some errors in the lgm and pinmux schema
    pinctrl: intel: Pass irqchip when adding gpiochip
    pinctrl: intel: Add GPIO pin mapping ranges via callback
    pinctrl: baytrail: Replace WARN with dev_info_once when setting direct-irq pin to output
    pinctrl: baytrail: Do not clear IRQ flags on direct-irq enabled pins
    pinctrl: sunrisepoint: Add missing Interrupt Status register offset
    pinctrl: sh-pfc: Split R-Car H3 support in two independent drivers
    pinctrl: artpec6: fix __iomem on reg in set
    pinctrl: ingenic: Use devm_platform_ioremap_resource()
    pinctrl: ingenic: Factorize irq_set_type function
    pinctrl: ingenic: Remove duplicated ingenic_chip_info structures
    ...

    Linus Torvalds
     

23 Jan, 2020

1 commit


06 Jan, 2020

1 commit


21 Nov, 2019

1 commit

  • Adjust indentation from spaces to tab (+optional two spaces) as in
    coding style with command like:
    $ sed -e 's/^ /\t/' -i */Kconfig

    Signed-off-by: Krzysztof Kozlowski

    Link: https://lore.kernel.org/r/1574306382-32516-1-git-send-email-krzk@kernel.org
    Signed-off-by: Linus Walleij

    Krzysztof Kozlowski
     

10 Aug, 2019

1 commit

  • Each iteration of for_each_child_of_node() puts the previous node;
    however, in the case of a return from the middle of the loop, there is no
    put, thus causing a memory leak. Hence put of_node_put() statements as
    required before two mid-loop return statements.
    Issue found with Coccinelle.

    Signed-off-by: Nishka Dasgupta
    Link: https://lore.kernel.org/r/20190808074720.15754-1-nishkadg.linux@gmail.com
    Reviewed-by: Philipp Zabel
    Signed-off-by: Linus Walleij

    Nishka Dasgupta
     

06 Aug, 2019

1 commit

  • Each iteration of for_each_child_of_node puts the previous node, but in
    the case of a return from the middle of the loop, there is no put, thus
    causing a memory leak. Hence add an of_node_put before the return in
    three places.
    Issue found with Coccinelle.

    Signed-off-by: Nishka Dasgupta
    Link: https://lore.kernel.org/r/20190804160420.5309-1-nishkadg.linux@gmail.com
    Signed-off-by: Linus Walleij

    Nishka Dasgupta
     

14 Jul, 2019

1 commit

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

    Core changes:

    - Device links can optionally be added between a pin control producer
    and its consumers. This will affect how the system power management
    is handled: a pin controller will not suspend before all of its
    consumers have been suspended.

    This was necessary for the ST Microelectronics STMFX expander and
    need to be tested on other systems as well: it makes sense to make
    this default in the long run.

    Right now it is opt-in per driver.

    - Drive strength can be specified in microamps. With decreases in
    silicon technology, milliamps isn't granular enough, let's make it
    possible to select drive strengths in microamps.

    Right now the Meson (AMlogic) driver needs this.

    New drivers:

    - New subdriver for the Tegra 194 SoC.

    - New subdriver for the Qualcomm SDM845.

    - New subdriver for the Qualcomm SM8150.

    - New subdriver for the Freescale i.MX8MN (Freescale is now a product
    line of NXP).

    - New subdriver for Marvell MV98DX1135.

    Driver improvements:

    - The Bitmain BM1880 driver now supports pin config in addition to
    muxing.

    - The Qualcomm drivers can now reserve some GPIOs as taken aside and
    not usable for users. This is used in ACPI systems to take out some
    GPIO lines used by the BIOS so that noone else (neither kernel nor
    userspace) will play with them by mistake and crash the machine.

    - A slew of refurbishing around the Aspeed drivers (board management
    controllers for servers) in preparation for the new Aspeed AST2600
    SoC.

    - A slew of improvements over the SH PFC drivers as usual.

    - Misc cleanups and fixes"

    * tag 'pinctrl-v5.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (106 commits)
    pinctrl: aspeed: Strip moved macros and structs from private header
    pinctrl: aspeed: Fix missed include
    pinctrl: baytrail: Use GENMASK() consistently
    pinctrl: baytrail: Re-use data structures from pinctrl-intel.h
    pinctrl: baytrail: Use defined macro instead of magic in byt_get_gpio_mux()
    pinctrl: qcom: Add SM8150 pinctrl driver
    dt-bindings: pinctrl: qcom: Add SM8150 pinctrl binding
    dt-bindings: pinctrl: qcom: Document missing gpio nodes
    pinctrl: aspeed: Add implementation-related documentation
    pinctrl: aspeed: Split out pinmux from general pinctrl
    pinctrl: aspeed: Clarify comment about strapping W1C
    pinctrl: aspeed: Correct comment that is no longer true
    MAINTAINERS: Add entry for ASPEED pinctrl drivers
    dt-bindings: pinctrl: aspeed: Convert AST2500 bindings to json-schema
    dt-bindings: pinctrl: aspeed: Convert AST2400 bindings to json-schema
    dt-bindings: pinctrl: aspeed: Split bindings document in two
    pinctrl: qcom: Add irq_enable callback for msm gpio
    pinctrl: madera: Fixup SPDX headers
    pinctrl: qcom: sdm845: Fix CONFIG preprocessor guard
    pinctrl: tegra: Add bitmask support for parked bits
    ...

    Linus Torvalds
     

25 Jun, 2019

1 commit


21 May, 2019

1 commit


11 Apr, 2019

1 commit

  • To support pinctl hog restore after LPSR resume back,
    add the generic suspend/resume in pinctrl-imx along with the
    generic pm ops to be used by platform specific drivers. Then
    make use of the newly added ops in i.MX8MQ platform specific
    driver.

    Signed-off-by: Robin Gong
    Signed-off-by: Abel Vesa
    Acked-by: Dong Aisheng
    Signed-off-by: Linus Walleij

    Abel Vesa
     

08 Apr, 2019

2 commits