Commit 463c09d0 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull mfd updates from Lee Jones:
 "Core Frameworks:
   - Fix Software Node clean-up code

  New Drivers:
   - Add support for MediaTek MT6359 PMIC
   - Add support for Qualcomm PM8008 PMIC
   - Add support for Richtek RT4831

  New Device Support:
   - Add support for Audio CODECs to Rockchip RK817
   - Add support for Alder Lake-M to Intel LPSS PCI
   - Add support for Periph Device Charge to ChromeOS EC

  New Functionality:
   - Provide additional IRQs for wcd934x
   - Add optional Reset functionality to lp87565

  Fix-ups:
   - Namespacing & visibility fixes to lp87565
   - Differentiate between Power and Home key IRQs in mt6358
   - Export I2C device tables in da9052-i2c, stmpe-i2c
   - Adapt IRQ flags in max8907, rn5t61, max8907
   - Make some functions/devices optional in axp20x, cros_ec_dev
   - Explicitly include used header files in ioc3
   - Remove superfluous lines in MAINTAINERS, sec-core, st,stm32-timers
   - Resolve Kerneldoc issues in omap-usb-host, omap-usb-tll, si476x-cmd, si476x-i2c
   - Convert arizona-core to a module
   - Copyright changes in hi655x-pmic
   - Drop support for board file initialisation in sec-core
   - Trivial spelling, whitespace etc updates in lp87565, si476x-cmd,
     mt6360-core, wm831x-core, twl-core, db8500-prcmu
   - Simplify various implementations of wcd934x, mt6360-core, max8997,
     max8998, da9052-i2c, da9062-core, sec-core,
   - Device Tree binding changes in google,cros-ec,
     richtek,rt4831-backlight, db8500-prcmu, qcom,pm8008, qcom,spmi-pmic
   - Use provided APIs to simplify t7l66xb, as3722, da9055-core,
     tps80031, 88pm800, 88pm805, asic3, sun6i-prcm, wm831x-core,
     wm831x-otp, ucb1x00-assabet, timberdale, sm501, pcf50633-core,
     kempld-core, janz-cmodio, intel_soc_pmic_bxtwc, ab8500-core

  Bug Fixes:
   - Fix unused variable warning in rk817_codec
   - Fix regulator voltage configuration in rohm-bd71828
   - Fix ongoing freeing of regmap_config 'name' issue in syscon
   - Fix error handling path in da9063-i2c
   - Fix Kconfig issues in MFD_MP2629
   - Fix DMA mask warnings in motorola-cpcap"

* tag 'mfd-next-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (83 commits)
  mfd: cros_ec: Add peripheral device charger
  mfd: max8907: Remove IRQF_NO_AUTOEN flag
  mfd: ab8500-core: Use DEVICE_ATTR_RO/RW macro
  mfd: intel_soc_pmic_bxtwc: Use DEVICE_ATTR_ADMIN_RW macro
  mfd: janz-cmodio: Use DEVICE_ATTR_RO macro
  mfd: kempld-core: Use DEVICE_ATTR_RO macro
  mfd: pcf50633: Use DEVICE_ATTR_ADMIN_RO macro
  mfd: sm501: Use DEVICE_ATTR_RO macro
  mfd: timberdale: Use DEVICE_ATTR_RO macro
  mfd: ucb1x00-assabet: Use DEVICE_ATTR_RO macro
  mfd: wm831x: Use DEVICE_ATTR_RO macro
  mfd: wm831x: Use DEFINE_RES_IRQ_NAMED() and DEFINE_RES_IRQ() to simplify code
  dt-bindings: mfd: stm32-timers: Remove #address/size cells from required properties
  mfd: sun6i-prcm: Use DEFINE_RES_MEM() to simplify code
  mfd: asic3: Use DEFINE_RES_MEM() and DEFINE_RES_IRQ() to simplify code
  mfd: 88pm805: Use DEFINE_RES_IRQ_NAMED() to simplify code
  mfd: 88pm800: Use DEFINE_RES_IRQ_NAMED() to simplify code
  mfd: tps80031: Use DEFINE_RES_IRQ() to simplify code
  mfd: da9055: Use DEFINE_RES_IRQ_NAMED() to simplify code
  mfd: as3722: Use DEFINE_RES_IRQ_NAMED() to simplify code
  ...
parents 18ef0827 8a14ded5
Loading
Loading
Loading
Loading
+62 −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/leds/backlight/richtek,rt4831-backlight.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Richtek RT4831 Backlight

maintainers:
  - ChiYuan Huang <cy_huang@richtek.com>

description: |
  RT4831 is a mutifunctional device that can provide power to the LCD display
  and LCD backlight.

  For the LCD backlight, it can provide four channel WLED driving capability.
  Each channel driving current is up to 30mA

  Datasheet is available at
  https://www.richtek.com/assets/product_file/RT4831A/DS4831A-05.pdf

allOf:
  - $ref: common.yaml#

properties:
  compatible:
    const: richtek,rt4831-backlight

  default-brightness:
    minimum: 0
    maximum: 2048

  max-brightness:
    minimum: 0
    maximum: 2048

  richtek,pwm-enable:
    description: |
      Specify the backlight dimming following by PWM duty or by SW control.
    type: boolean

  richtek,bled-ovp-sel:
    description: |
      Backlight OVP level selection, currently support 17V/21V/25V/29V.
    $ref: /schemas/types.yaml#/definitions/uint8
    default: 1
    minimum: 0
    maximum: 3

  richtek,channel-use:
    description: |
      Backlight LED channel to be used.
      BIT 0/1/2/3 is used to indicate led channel 1/2/3/4 enable or disable.
    $ref: /schemas/types.yaml#/definitions/uint8
    minimum: 1
    maximum: 15

required:
  - compatible
  - richtek,channel-use

additionalProperties: false
+20 −0
Original line number Diff line number Diff line
@@ -117,6 +117,22 @@ properties:
      - "#address-cells"
      - "#size-cells"

  cbas:
    type: object

    description:
      This device is used to signal when a detachable base is attached
      to a Chrome OS tablet. This device cannot be detected at runtime.

    properties:
      compatible:
        const: google,cros-cbas

    required:
      - compatible

    additionalProperties: false

patternProperties:
  "^i2c-tunnel[0-9]*$":
    type: object
@@ -187,6 +203,10 @@ examples:
            proximity {
                    compatible = "google,cros-ec-mkbp-proximity";
            };

            cbas {
                compatible = "google,cros-cbas";
            };
        };
    };

+121 −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/qcom,pm8008.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm Technologies, Inc. PM8008 PMIC bindings

maintainers:
  - Guru Das Srinagesh <gurus@codeaurora.org>

description: |
  Qualcomm Technologies, Inc. PM8008 is a dedicated camera PMIC that integrates
  all the necessary power management, housekeeping, and interface support
  functions into a single IC.

properties:
  compatible:
    const: qcom,pm8008

  reg:
    description:
      I2C slave address.

    maxItems: 1

  interrupts:
    maxItems: 1

    description: Parent interrupt.

  "#interrupt-cells":
    const: 2

    description: |
      The first cell is the IRQ number, the second cell is the IRQ trigger
      flag. All interrupts are listed in include/dt-bindings/mfd/qcom-pm8008.h.

  interrupt-controller: true

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

patternProperties:
  "^gpio@[0-9a-f]+$":
    type: object

    description: |
      The GPIO peripheral. This node may be specified twice, one for each GPIO.

    properties:
      compatible:
        const: qcom,pm8008-gpio

      reg:
        description: Peripheral address of one of the two GPIO peripherals.
        maxItems: 1

      gpio-controller: true

      interrupt-controller: true

      "#interrupt-cells":
        const: 2

      "#gpio-cells":
        const: 2

    required:
      - compatible
      - reg
      - gpio-controller
      - interrupt-controller
      - "#gpio-cells"
      - "#interrupt-cells"

    additionalProperties: false

required:
  - compatible
  - reg
  - interrupts
  - "#address-cells"
  - "#size-cells"
  - "#interrupt-cells"

additionalProperties: false

examples:
  - |
    #include <dt-bindings/mfd/qcom-pm8008.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    qupv3_se13_i2c {
      #address-cells = <1>;
      #size-cells = <0>;
      pm8008i@8 {
        compatible = "qcom,pm8008";
        reg = <0x8>;
        #address-cells = <1>;
        #size-cells = <0>;
        interrupt-controller;
        #interrupt-cells = <2>;

        interrupt-parent = <&tlmm>;
        interrupts = <32 IRQ_TYPE_EDGE_RISING>;

        gpio@c000 {
          compatible = "qcom,pm8008-gpio";
          reg = <0xc000>;
          gpio-controller;
          #gpio-cells = <2>;
          interrupt-controller;
          #interrupt-cells = <2>;
        };
      };
    };

...
+4 −0
Original line number Diff line number Diff line
@@ -34,6 +34,10 @@ Required properties:
                   "qcom,pm8998",
                   "qcom,pmi8998",
                   "qcom,pm8005",
                   "qcom,pm8350c",
                   "qcom,pmk8350",
                   "qcom,pm7325",
                   "qcom,pmr735a",
                   or generalized "qcom,spmi-pmic".
- reg:             Specifies the SPMI USID slave address for this device.
                   For more information see:
+90 −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/richtek,rt4831.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Richtek RT4831 DSV and Backlight Integrated IC

maintainers:
  - ChiYuan Huang <cy_huang@richtek.com>

description: |
  RT4831 is a multifunctional device that can provide power to the LCD display
  and LCD backlight.

  For Display Bias Voltage DSVP and DSVN, the output range is about 4V to 6.5V.
  It's sufficient to meet the current LCD power requirement.

  For the LCD backlight, it can provide four channel WLED driving capability.
  Each channel driving current is up to 30mA

  Datasheet is available at
  https://www.richtek.com/assets/product_file/RT4831A/DS4831A-05.pdf

properties:
  compatible:
    const: richtek,rt4831

  reg:
    description: I2C device address.
    maxItems: 1

  enable-gpios:
    description: |
      GPIO to enable/disable the chip. It is optional.
      Some usage directly tied this pin to follow VIO 1.8V power on sequence.
    maxItems: 1

  regulators:
    $ref: ../regulator/richtek,rt4831-regulator.yaml

  backlight:
    $ref: ../leds/backlight/richtek,rt4831-backlight.yaml

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    #include <dt-bindings/leds/rt4831-backlight.h>
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;

      rt4831@11 {
        compatible = "richtek,rt4831";
        reg = <0x11>;

        regulators {
          DSVLCM {
            regulator-min-microvolt = <4000000>;
            regulator-max-microvolt = <7150000>;
            regulator-allow-bypass;
          };
          DSVP {
            regulator-name = "rt4831-dsvp";
            regulator-min-microvolt = <4000000>;
            regulator-max-microvolt = <6500000>;
            regulator-boot-on;
          };
          DSVN {
            regulator-name = "rt4831-dsvn";
            regulator-min-microvolt = <4000000>;
            regulator-max-microvolt = <6500000>;
            regulator-boot-on;
          };
        };

        backlight {
          compatible = "richtek,rt4831-backlight";
          default-brightness = <1024>;
          max-brightness = <2048>;
          richtek,bled-ovp-sel = /bits/ 8 <RT4831_BLOVPLVL_21V>;
          richtek,channel-use = /bits/ 8 <RT4831_BLED_ALLCHEN>;
        };
      };
    };
Loading