Commit cf0c97f1 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull pin control updates from Linus Walleij:
 "This is the bulk of pin control changes for the v5.8 kernel cycle.

  It's just really boring this time. Zero core changes. Just linear
  development, cleanups and misc noncritical fixes. Some new drivers for
  very new Qualcomm and Intel chips.

  New drivers:

   - Intel Jasper Lake support.

   - NXP Freescale i.MX8DXL support.

   - Qualcomm SM8250 support.

   - Renesas R8A7742 SH-PFC support.

  Driver improvements:

   - Severe cleanup and modernization of the MCP23s08 driver.

   - Mediatek driver modularized.

   - Setting config supported in the Meson driver.

   - Wakeup support for the Broadcom BCM7211"

* tag 'pinctrl-v5.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (72 commits)
  pinctrl: sprd: Fix the incorrect pull-up definition
  pinctrl: pxa: pxa2xx: Remove 'pxa2xx_pinctrl_exit()' which is unused and broken
  pinctrl: freescale: imx: Use 'devm_of_iomap()' to avoid a resource leak in case of error in 'imx_pinctrl_probe()'
  pinctrl: freescale: imx: Fix an error handling path in 'imx_pinctrl_probe()'
  pinctrl: sirf: add missing put_device() call in sirfsoc_gpio_probe()
  pinctrl: imxl: Fix an error handling path in 'imx1_pinctrl_core_probe()'
  pinctrl: bcm2835: Add support for wake-up interrupts
  pinctrl: bcm2835: Match BCM7211 compatible string
  dt-bindings: pinctrl: Document optional BCM7211 wake-up interrupts
  dt-bindings: pinctrl: Document 7211 compatible for brcm, bcm2835-gpio.txt
  dt-bindings: pinctrl: stm32: Add missing interrupts property
  pinctrl: at91-pio4: Add COMPILE_TEST support
  pinctrl: Fix return value about devm_platform_ioremap_resource()
  MAINTAINERS: Renesas Pin Controllers are supported
  dt-bindings: pinctrl: ocelot: Add Sparx5 SoC support
  pinctrl: ocelot: Fix GPIO interrupt decoding on Jaguar2
  pinctrl: ocelot: Remove instance number from pin functions
  pinctrl: ocelot: Always register GPIO driver
  dt-bindings: pinctrl: rockchip: update example
  pinctrl: amd: Add ACPI dependency
  ...
parents e8dff03a 94873f6b
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -108,7 +108,8 @@ This binding uses the i.MX common pinctrl binding[3].
Required properties:
- compatible:		Should be one of:
			"fsl,imx8qm-iomuxc",
			"fsl,imx8qxp-iomuxc".
			"fsl,imx8qxp-iomuxc",
			"fsl,imx8dxl-iomuxc".

Required properties for Pinctrl sub nodes:
- fsl,pins:		Each entry consists of 3 integers which represents
@@ -116,7 +117,8 @@ Required properties for Pinctrl sub nodes:
			integers <pin_id mux_mode> are specified using a
			PIN_FUNC_ID macro, which can be found in
			<dt-bindings/pinctrl/pads-imx8qm.h>,
			<dt-bindings/pinctrl/pads-imx8qxp.h>.
			<dt-bindings/pinctrl/pads-imx8qxp.h>,
			<dt-bindings/pinctrl/pads-imx8dxl.h>.
			The last integer CONFIG is the pad setting value like
			pull-up on this pin.

+4 −1
Original line number Diff line number Diff line
@@ -9,13 +9,16 @@ Required properties:
  "brcm,bcm2835-gpio" - BCM2835 compatible pinctrl
  "brcm,bcm7211-gpio" - BCM7211 compatible pinctrl
  "brcm,bcm2711-gpio" - BCM2711 compatible pinctrl
  "brcm,bcm7211-gpio" - BCM7211 compatible pinctrl
- reg: Should contain the physical address of the GPIO module's registers.
- gpio-controller: Marks the device node as a GPIO controller.
- #gpio-cells : Should be two. The first cell is the pin number and the
  second cell is used to specify optional parameters:
  - bit 0 specifies polarity (0 for normal, 1 for inverted)
- interrupts : The interrupt outputs from the controller. One interrupt per
  individual bank followed by the "all banks" interrupt.
  individual bank followed by the "all banks" interrupt. For BCM7211, an
  additional set of per-bank interrupt line and an "all banks" wake-up
  interrupt may be specified.
- interrupt-controller: Marks the device node as an interrupt controller.
- #interrupt-cells : Should be 2.
  The first cell is the GPIO number.
+2 −2
Original line number Diff line number Diff line
@@ -2,8 +2,8 @@ Microsemi Ocelot pin controller Device Tree Bindings
----------------------------------------------------

Required properties:
 - compatible		: Should be "mscc,ocelot-pinctrl" or
				"mscc,jaguar2-pinctrl"
 - compatible		: Should be "mscc,ocelot-pinctrl",
			  "mscc,jaguar2-pinctrl" or "microchip,sparx5-pinctrl"
 - reg			: Address and length of the register set for the device
 - gpio-controller	: Indicates this device is a GPIO controller
 - #gpio-cells		: Must be 2.
+147 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/pinctrl/qcom,sm8250-pinctrl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm Technologies, Inc. SM8250 TLMM block

maintainers:
  - Bjorn Andersson <bjorn.andersson@linaro.org>

description: |
  This binding describes the Top Level Mode Multiplexer block found in the
  SM8250 platform.

properties:
  compatible:
    const: qcom,sm8250-pinctrl

  reg:
    minItems: 3
    maxItems: 3

  reg-names:
    items:
      - const: "west"
      - const: "south"
      - const: "north"

  interrupts:
    description: Specifies the TLMM summary IRQ
    maxItems: 1

  interrupt-controller: true

  '#interrupt-cells':
    description:
      Specifies the PIN numbers and Flags, as defined in defined in
      include/dt-bindings/interrupt-controller/irq.h
    const: 2

  gpio-controller: true

  '#gpio-cells':
    description: Specifying the pin number and flags, as defined in
      include/dt-bindings/gpio/gpio.h
    const: 2

  gpio-ranges:
    maxItems: 1

  wakeup-parent:
    maxItems: 1

#PIN CONFIGURATION NODES
patternProperties:
  '^.*$':
    if:
      type: object
    then:
      properties:
        pins:
          description:
            List of gpio pins affected by the properties specified in this
            subnode.
          items:
            oneOf:
              - pattern: "^gpio([0-9]|[1-9][0-9]|1[0-7][0-9])$"
              - enum: [ sdc2_clk, sdc2_cmd, sdc2_data, ufs_reset ]
          minItems: 1
          maxItems: 36

        function:
          description:
            Specify the alternative function to be configured for the specified
            pins.

          enum: [ aoss_cti, atest, audio_ref, cam_mclk, cci_async, cci_i2c,
            cci_timer0, cci_timer1, cci_timer2, cci_timer3, cci_timer4, cri_trng,
            cri_trng0, cri_trng1, dbg_out, ddr_bist, ddr_pxi0, ddr_pxi1,
            ddr_pxi2, ddr_pxi3, dp_hot, dp_lcd, gcc_gp1, gcc_gp2, gcc_gp3, gpio,
            ibi_i3c, jitter_bist, lpass_slimbus, mdp_vsync, mdp_vsync0,
            mdp_vsync1, mdp_vsync2, mdp_vsync3, mi2s0_data0, mi2s0_data1,
            mi2s0_sck, mi2s0_ws, mi2s1_data0, mi2s1_data1, mi2s1_sck, mi2s1_ws,
            mi2s2_data0, mi2s2_data1, mi2s2_sck, mi2s2_ws, pci_e0, pci_e1,
            pci_e2, phase_flag, pll_bist, pll_bypassnl, pll_clk, pll_reset,
            pri_mi2s, prng_rosc, qdss_cti, qdss_gpio, qspi0, qspi1, qspi2, qspi3,
            qspi_clk, qspi_cs, qup0, qup1, qup10, qup11, qup12, qup13, qup14,
            qup15, qup16, qup17, qup18, qup19, qup2, qup3, qup4, qup5, qup6,
            qup7, qup8, qup9, qup_l4, qup_l5, qup_l6, sd_write, sdc40, sdc41,
            sdc42, sdc43, sdc4_clk, sdc4_cmd, sec_mi2s, sp_cmu, tgu_ch0, tgu_ch1,
            tgu_ch2, tgu_ch3, tsense_pwm1, tsense_pwm2, tsif0_clk, tsif0_data,
            tsif0_en, tsif0_error, tsif0_sync, tsif1_clk, tsif1_data, tsif1_en,
            tsif1_error, tsif1_sync, usb2phy_ac, usb_phy, vsense_trigger ]

        drive-strength:
          enum: [2, 4, 6, 8, 10, 12, 14, 16]
          default: 2
          description:
            Selects the drive strength for the specified pins, in mA.

        bias-pull-down: true

        bias-pull-up: true

        bias-disable: true

        output-high: true

        output-low: true

      required:
        - pins
        - function

      additionalProperties: false

required:
  - compatible
  - reg
  - reg-names
  - interrupts
  - interrupt-controller
  - '#interrupt-cells'
  - gpio-controller
  - '#gpio-cells'
  - gpio-ranges

additionalProperties: false

examples:
  - |
        #include <dt-bindings/interrupt-controller/arm-gic.h>
        pinctrl@1f00000 {
                compatible = "qcom,sm8250-pinctrl";
                reg = <0x0f100000 0x300000>,
                      <0x0f500000 0x300000>,
                      <0x0f900000 0x300000>;
                reg-names = "west", "south", "north";
                interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
                gpio-controller;
                #gpio-cells = <2>;
                interrupt-controller;
                #interrupt-cells = <2>;
                gpio-ranges = <&tlmm 0 0 180>;
                wakeup-parent = <&pdc>;
        };
+1 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@ Required Properties:
    - "renesas,pfc-emev2": for EMEV2 (EMMA Mobile EV2) compatible pin-controller.
    - "renesas,pfc-r8a73a4": for R8A73A4 (R-Mobile APE6) compatible pin-controller.
    - "renesas,pfc-r8a7740": for R8A7740 (R-Mobile A1) compatible pin-controller.
    - "renesas,pfc-r8a7742": for R8A7742 (RZ/G1H) compatible pin-controller.
    - "renesas,pfc-r8a7743": for R8A7743 (RZ/G1M) compatible pin-controller.
    - "renesas,pfc-r8a7744": for R8A7744 (RZ/G1N) compatible pin-controller.
    - "renesas,pfc-r8a7745": for R8A7745 (RZ/G1E) compatible pin-controller.
Loading