Commit e8c81284 authored by Lee Jones's avatar Lee Jones
Browse files

Merge branches 'ib-mfd-char-crypto-6.18', 'ib-mfd-gpio-6.18',...

Merge branches 'ib-mfd-char-crypto-6.18', 'ib-mfd-gpio-6.18', 'ib-mfd-gpio-hwmon-i2c-can-rtc-watchdog-6.18', 'ib-mfd-gpio-input-pinctrl-pwm-6.18', 'ib-mfd-input-6.18', 'ib-mfd-input-rtc-6.18' and 'ib-mfd-power-regulator-6.18' into ibs-for-mfd-merged
Loading
Loading
Loading
Loading
+83 −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/gpio/maxim,max7360-gpio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Maxim MAX7360 GPIO controller

maintainers:
  - Kamel Bouhara <kamel.bouhara@bootlin.com>
  - Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>

description: |
  Maxim MAX7360 GPIO controller, in MAX7360 chipset
  https://www.analog.com/en/products/max7360.html

  The device provides two series of GPIOs, referred here as GPIOs and GPOs.

  PORT0 to PORT7 pins can be used as GPIOs, with support for interrupts and
  constant-current mode. These pins will also be used by the rotary encoder and
  PWM functionalities.

  COL2 to COL7 pins can be used as GPOs, there is no input capability. COL pins
  will be partitioned, with the first pins being affected to the keypad
  functionality and the last ones as GPOs.

properties:
  compatible:
    enum:
      - maxim,max7360-gpio
      - maxim,max7360-gpo

  gpio-controller: true

  "#gpio-cells":
    const: 2

  interrupt-controller: true

  "#interrupt-cells":
    const: 2

  maxim,constant-current-disable:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      Bit field, each bit disables constant-current output of the associated
      GPIO, starting from the least significant bit for the first GPIO.
    maximum: 0xff

required:
  - compatible
  - gpio-controller

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - maxim,max7360-gpio
        ngpios: false
    then:
      required:
        - interrupt-controller
    else:
      properties:
        interrupt-controller: false
        maxim,constant-current-disable: false

additionalProperties: false

examples:
  - |
    gpio {
      compatible = "maxim,max7360-gpio";

      gpio-controller;
      #gpio-cells = <2>;
      maxim,constant-current-disable = <0x06>;

      interrupt-controller;
      #interrupt-cells = <2>;
    };
+191 −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/mfd/maxim,max7360.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Maxim MAX7360 Keypad, Rotary encoder, PWM and GPIO controller

maintainers:
  - Kamel Bouhara <kamel.bouhara@bootlin.com>
  - Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>

description: |
  Maxim MAX7360 device, with following functions:
    - keypad controller
    - rotary controller
    - GPIO and GPO controller
    - PWM controller

  https://www.analog.com/en/products/max7360.html

allOf:
  - $ref: /schemas/input/matrix-keymap.yaml#
  - $ref: /schemas/input/input.yaml#

properties:
  compatible:
    enum:
      - maxim,max7360

  reg:
    maxItems: 1

  interrupts:
    maxItems: 2

  interrupt-names:
    items:
      - const: inti
      - const: intk

  keypad-debounce-delay-ms:
    description: Keypad debounce delay in ms
    minimum: 9
    maximum: 40
    default: 9

  rotary-debounce-delay-ms:
    description: Rotary encoder debounce delay in ms
    minimum: 0
    maximum: 15
    default: 0

  linux,axis:
    $ref: /schemas/input/rotary-encoder.yaml#/properties/linux,axis

  rotary-encoder,relative-axis:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Register a relative axis rather than an absolute one.

  rotary-encoder,steps:
    $ref: /schemas/types.yaml#/definitions/uint32
    default: 24
    description:
      Number of steps in a full turnaround of the
      encoder. Only relevant for absolute axis. Defaults to 24 which is a
      typical value for such devices.

  rotary-encoder,rollover:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Automatic rollover when the rotary value becomes
      greater than the specified steps or smaller than 0. For absolute axis only.

  "#pwm-cells":
    const: 3

  gpio:
    $ref: /schemas/gpio/maxim,max7360-gpio.yaml#
    description:
      PORT0 to PORT7 general purpose input/output pins configuration.

  gpo:
    $ref: /schemas/gpio/maxim,max7360-gpio.yaml#
    description: >
      COL2 to COL7 general purpose output pins configuration. Allows to use
      unused keypad columns as outputs.

      The MAX7360 has 8 column lines and 6 of them can be used as GPOs. GPIOs
      numbers used for this gpio-controller node do correspond to the column
      numbers: values 0 and 1 are never valid, values from 2 to 7 might be valid
      depending on the value of the keypad,num-column property.

patternProperties:
  '-pins$':
    type: object
    description:
      Pinctrl node's client devices use subnodes for desired pin configuration.
      Client device subnodes use below standard properties.
    $ref: /schemas/pinctrl/pincfg-node.yaml

    properties:
      pins:
        description:
          List of gpio pins affected by the properties specified in this
          subnode.
        items:
          pattern: '^(PORT[0-7]|ROTARY)$'
        minItems: 1
        maxItems: 8

      function:
        description:
          Specify the alternative function to be configured for the specified
          pins.
        enum: [gpio, pwm, rotary]

    additionalProperties: false

required:
  - compatible
  - reg
  - interrupts
  - interrupt-names
  - linux,keymap
  - linux,axis
  - "#pwm-cells"
  - gpio
  - gpo

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/input/input.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    i2c {
      #address-cells = <1>;
      #size-cells = <0>;

      io-expander@38 {
        compatible = "maxim,max7360";
        reg = <0x38>;

        interrupt-parent = <&gpio1>;
        interrupts = <23 IRQ_TYPE_LEVEL_LOW>,
                     <24 IRQ_TYPE_LEVEL_LOW>;
        interrupt-names = "inti", "intk";

        keypad,num-rows = <8>;
        keypad,num-columns = <4>;
        linux,keymap = <
          MATRIX_KEY(0x00, 0x00, KEY_F5)
          MATRIX_KEY(0x01, 0x00, KEY_F4)
          MATRIX_KEY(0x02, 0x01, KEY_F6)
          >;
        keypad-debounce-delay-ms = <10>;
        autorepeat;

        rotary-debounce-delay-ms = <2>;
        linux,axis = <0>; /* REL_X */
        rotary-encoder,relative-axis;

        #pwm-cells = <3>;

        max7360_gpio: gpio {
          compatible = "maxim,max7360-gpio";

          gpio-controller;
          #gpio-cells = <2>;
          maxim,constant-current-disable = <0x06>;

          interrupt-controller;
          #interrupt-cells = <0x2>;
        };

        max7360_gpo: gpo {
          compatible = "maxim,max7360-gpo";

          gpio-controller;
          #gpio-cells = <2>;
        };

        backlight_pins: backlight-pins {
          pins = "PORT2";
          function = "pwm";
        };
      };
    };
+117 −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/mfd/ti,bq25703a.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: BQ25703A Charger Manager/Buck/Boost Converter

maintainers:
  - Chris Morgan <macromorgan@hotmail.com>

allOf:
  - $ref: /schemas/power/supply/power-supply.yaml#

properties:
  compatible:
    const: ti,bq25703a

  reg:
    const: 0x6b

  input-current-limit-microamp:
    description:
      Maximum total input current allowed used for both charging and
      powering the device.
    minimum: 50000
    maximum: 6400000
    default: 3250000

  interrupts:
    maxItems: 1

  monitored-battery:
    description:
      A minimum of constant-charge-current-max-microamp,
      constant-charge-voltage-max-microvolt, and
      voltage-min-design-microvolt are required.

  regulators:
    type: object
    additionalProperties: false
    description:
      Boost converter regulator output of bq257xx.

    properties:
      vbus:
        type: object
        $ref: /schemas/regulator/regulator.yaml
        additionalProperties: false

        properties:
          regulator-name: true
          regulator-min-microamp:
            minimum: 0
            maximum: 6350000
          regulator-max-microamp:
            minimum: 0
            maximum: 6350000
          regulator-min-microvolt:
            minimum: 4480000
            maximum: 20800000
          regulator-max-microvolt:
            minimum: 4480000
            maximum: 20800000
          enable-gpios:
            description:
              The BQ25703 may require both a register write and a GPIO
              toggle to enable the boost regulator.

        required:
          - regulator-name
          - regulator-min-microamp
          - regulator-max-microamp
          - regulator-min-microvolt
          - regulator-max-microvolt

unevaluatedProperties: false

required:
  - compatible
  - reg
  - input-current-limit-microamp
  - monitored-battery
  - power-supplies

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/pinctrl/rockchip.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        bq25703: charger@6b {
            compatible = "ti,bq25703a";
            reg = <0x6b>;
            input-current-limit-microamp = <5000000>;
            interrupt-parent = <&gpio0>;
            interrupts = <RK_PD5 IRQ_TYPE_LEVEL_LOW>;
            monitored-battery = <&battery>;
            power-supplies = <&fusb302>;

            regulators {
                usb_otg_vbus: vbus {
                    enable-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>;
                    regulator-max-microamp = <960000>;
                    regulator-max-microvolt = <5088000>;
                    regulator-min-microamp = <512000>;
                    regulator-min-microvolt = <4992000>;
                    regulator-name = "usb_otg_vbus";
                };
            };
        };
    };

...
+25 −0
Original line number Diff line number Diff line
@@ -15022,6 +15022,19 @@ L: linux-iio@vger.kernel.org
S:	Maintained
F:	drivers/iio/temperature/max30208.c
MAXIM MAX7360 KEYPAD LED MFD DRIVER
M:	Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
S:	Maintained
F:	Documentation/devicetree/bindings/gpio/maxim,max7360-gpio.yaml
F:	Documentation/devicetree/bindings/mfd/maxim,max7360.yaml
F:	drivers/gpio/gpio-max7360.c
F:	drivers/input/keyboard/max7360-keypad.c
F:	drivers/input/misc/max7360-rotary.c
F:	drivers/mfd/max7360.c
F:	drivers/pinctrl/pinctrl-max7360.c
F:	drivers/pwm/pwm-max7360.c
F:	include/linux/mfd/max7360.h
MAXIM MAX77650 PMIC MFD DRIVER
M:	Bartosz Golaszewski <brgl@bgdev.pl>
L:	linux-kernel@vger.kernel.org
@@ -18091,6 +18104,18 @@ F: drivers/nubus/
F:	include/linux/nubus.h
F:	include/uapi/linux/nubus.h
NUVOTON NCT6694 MFD DRIVER
M:	Ming Yu <tmyu0@nuvoton.com>
S:	Supported
F:	drivers/gpio/gpio-nct6694.c
F:	drivers/hwmon/nct6694-hwmon.c
F:	drivers/i2c/busses/i2c-nct6694.c
F:	drivers/mfd/nct6694.c
F:	drivers/net/can/usb/nct6694_canfd.c
F:	drivers/rtc/rtc-nct6694.c
F:	drivers/watchdog/nct6694_wdt.c
F:	include/linux/mfd/nct6694.h
NUVOTON NCT7201 IIO DRIVER
M:	Eason Yang <j2anfernee@gmail.com>
L:	linux-iio@vger.kernel.org
+24 −0
Original line number Diff line number Diff line
@@ -1492,6 +1492,18 @@ config GPIO_MADERA
	help
	  Support for GPIOs on Cirrus Logic Madera class codecs.

config GPIO_MAX7360
	tristate "MAX7360 GPIO support"
	depends on MFD_MAX7360
	select GPIO_REGMAP
	select REGMAP_IRQ
	help
	  Allows to use MAX7360 I/O Expander PWM lines as GPIO and keypad COL
	  lines as GPO.

	  This driver can also be built as a module. If so, the module will be
	  called gpio-max7360.

config GPIO_MAX77620
	tristate "GPIO support for PMIC MAX77620 and MAX20024"
	depends on MFD_MAX77620
@@ -1522,6 +1534,18 @@ config GPIO_MAX77759
	  This driver can also be built as a module. If so, the module will be
	  called gpio-max77759.

config GPIO_NCT6694
	tristate "Nuvoton NCT6694 GPIO controller support"
	depends on MFD_NCT6694
	select GENERIC_IRQ_CHIP
	select GPIOLIB_IRQCHIP
	help
	  This driver supports 8 GPIO pins per bank that can all be interrupt
	  sources.

	  This driver can also be built as a module. If so, the module will be
	  called gpio-nct6694.

config GPIO_PALMAS
	tristate "TI PALMAS series PMICs GPIO"
	depends on MFD_PALMAS
Loading