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

Merge branches 'ib-mfd-x86-usb-watchdog-5.8', 'ib-mfd-power-rtc-5.8',...

Merge branches 'ib-mfd-x86-usb-watchdog-5.8', 'ib-mfd-power-rtc-5.8', 'ib-mfd-iio-power-5.8' and 'ib-mfd-hwmon-5.8' into ibs-for-mfd-merged
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
What:		/sys/class/power_supply/mp2629_battery/batt_impedance_compen
Date:		April 2020
KernelVersion:	5.7
Description:
		Represents a battery impedance compensation to accelerate charging.

                Access: Read, Write
                Valid values: Represented in milli-ohms. Valid range is [0, 140].
+196 −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/gateworks-gsc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Gateworks System Controller

description: |
  The Gateworks System Controller (GSC) is a device present across various
  Gateworks product families that provides a set of system related features
  such as the following (refer to the board hardware user manuals to see what
  features are present)
   - Watchdog Timer
   - GPIO
   - Pushbutton controller
   - Hardware monitor with ADC's for temperature and voltage rails and
     fan controller

maintainers:
  - Tim Harvey <tharvey@gateworks.com>
  - Robert Jones <rjones@gateworks.com>

properties:
  $nodename:
    pattern: "gsc@[0-9a-f]{1,2}"
  compatible:
    const: gw,gsc

  reg:
    description: I2C device address
    maxItems: 1

  interrupts:
    maxItems: 1

  interrupt-controller: true

  "#interrupt-cells":
    const: 1

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

  adc:
    type: object
    description: Optional hardware monitoring module

    properties:
      compatible:
        const: gw,gsc-adc

      "#address-cells":
        const: 1

      "#size-cells":
        const: 0

    patternProperties:
      "^channel@[0-9]+$":
        type: object
        description: |
          Properties for a single ADC which can report cooked values
          (i.e. temperature sensor based on thermister), raw values
          (i.e. voltage rail with a pre-scaling resistor divider).

        properties:
          reg:
            description: Register of the ADC
            maxItems: 1

          label:
            description: Name of the ADC input

          gw,mode:
            description: |
              conversion mode:
                0 - temperature, in C*10
                1 - pre-scaled voltage value
                2 - scaled voltage based on an optional resistor divider
                    and optional offset
            $ref: /schemas/types.yaml#/definitions/uint32
            enum: [0, 1, 2]

          gw,voltage-divider-ohms:
            description: Values of resistors for divider on raw ADC input
            maxItems: 2
            items:
             minimum: 1000
             maximum: 1000000

          gw,voltage-offset-microvolt:
            description: |
              A positive voltage offset to apply to a raw ADC
              (i.e. to compensate for a diode drop).
            minimum: 0
            maximum: 1000000

        required:
          - gw,mode
          - reg
          - label

    required:
      - compatible
      - "#address-cells"
      - "#size-cells"

patternProperties:
  "^fan-controller@[0-9a-f]+$":
    type: object
    description: Optional fan controller

    properties:
      compatible:
        const: gw,gsc-fan

      "#address-cells":
        const: 1

      "#size-cells":
        const: 0

      reg:
        description: The fan controller base address
        maxItems: 1

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

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

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

        gsc@20 {
            compatible = "gw,gsc";
            reg = <0x20>;
            interrupt-parent = <&gpio1>;
            interrupts = <4 GPIO_ACTIVE_LOW>;
            interrupt-controller;
            #interrupt-cells = <1>;
            #address-cells = <1>;
            #size-cells = <0>;

            adc {
                compatible = "gw,gsc-adc";
                #address-cells = <1>;
                #size-cells = <0>;

                channel@0 { /* A0: Board Temperature */
                    reg = <0x00>;
                    label = "temp";
                    gw,mode = <0>;
                };

                channel@2 { /* A1: Input Voltage (raw ADC) */
                    reg = <0x02>;
                    label = "vdd_vin";
                    gw,mode = <1>;
                    gw,voltage-divider-ohms = <22100 1000>;
                    gw,voltage-offset-microvolt = <800000>;
                };

                channel@b { /* A2: Battery voltage */
                    reg = <0x0b>;
                    label = "vdd_bat";
                    gw,mode = <1>;
                };
            };

            fan-controller@2c {
                #address-cells = <1>;
                #size-cells = <0>;
                compatible = "gw,gsc-fan";
                reg = <0x2c>;
            };
        };
    };
+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/mfd/mps,mp2629.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MP2629 Battery Charger PMIC from Monolithic Power System.

maintainers:
  - Saravanan Sekar <sravanhome@gmail.com>

description: |
  MP2629 is a PMIC providing battery charging and power supply for smartphones,
  wireless camera and portable devices. Chip is controlled over I2C.

  The battery charge management device handles battery charger controller and
  ADC IIO device for battery, system voltage

properties:
  compatible:
    const: mps,mp2629

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  interrupt-controller: true

  "#interrupt-cells":
    const: 2
    description:
      The first cell is the IRQ number, the second cell is the trigger type.

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

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/input/linux-event-codes.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        pmic@4b {
            compatible = "mps,mp2629";
            reg = <0x4b>;

            interrupt-controller;
            interrupt-parent = <&gpio2>;
            #interrupt-cells = <2>;
            interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
        };
    };
+10 −4
Original line number Diff line number Diff line
@@ -18,24 +18,30 @@ See the following for pwarp node definitions:
This document describes the binding for MFD device and its sub module.

Required properties:
compatible: "mediatek,mt6397" or "mediatek,mt6323"
compatible:
	"mediatek,mt6323" for PMIC MT6323
	"mediatek,mt6358" for PMIC MT6358
	"mediatek,mt6397" for PMIC MT6397

Optional subnodes:

- rtc
	Required properties: Should be one of follows
		- compatible: "mediatek,mt6323-rtc"
		- compatible: "mediatek,mt6358-rtc"
		- compatible: "mediatek,mt6397-rtc"
	For details, see ../rtc/rtc-mt6397.txt
- regulators
	Required properties:
		- compatible: "mediatek,mt6397-regulator"
	see ../regulator/mt6397-regulator.txt
		- compatible: "mediatek,mt6323-regulator"
	see ../regulator/mt6323-regulator.txt
		- compatible: "mediatek,mt6358-regulator"
	see ../regulator/mt6358-regulator.txt
		- compatible: "mediatek,mt6397-regulator"
	see ../regulator/mt6397-regulator.txt
- codec
	Required properties:
		- compatible: "mediatek,mt6397-codec"
		- compatible: "mediatek,mt6397-codec" or "mediatek,mt6358-sound"
- clk
	Required properties:
		- compatible: "mediatek,mt6397-clk"
+53 −0
Original line number Diff line number Diff line
.. SPDX-License-Identifier: GPL-2.0

Kernel driver gsc-hwmon
=======================

Supported chips: Gateworks GSC
Datasheet: http://trac.gateworks.com/wiki/gsc
Author: Tim Harvey <tharvey@gateworks.com>

Description:
------------

This driver supports hardware monitoring for the temperature sensor,
various ADC's connected to the GSC, and optional FAN controller available
on some boards.


Voltage Monitoring
------------------

The voltage inputs are scaled either internally or by the driver depending
on the GSC version and firmware. The values returned by the driver do not need
further scaling. The voltage input labels provide the voltage rail name:

inX_input                  Measured voltage (mV).
inX_label                  Name of voltage rail.


Temperature Monitoring
----------------------

Temperatures are measured with 12-bit or 10-bit resolution and are scaled
either internally or by the driver depending on the GSC version and firmware.
The values returned by the driver reflect millidegree Celcius:

tempX_input                Measured temperature.
tempX_label                Name of temperature input.


PWM Output Control
------------------

The GSC features 1 PWM output that operates in automatic mode where the
PWM value will be scalled depending on 6 temperature boundaries.
The tempeature boundaries are read-write and in millidegree Celcius and the
read-only PWM values range from 0 (off) to 255 (full speed).
Fan speed will be set to minimum (off) when the temperature sensor reads
less than pwm1_auto_point1_temp and maximum when the temperature sensor
equals or exceeds pwm1_auto_point6_temp.

pwm1_auto_point[1-6]_pwm       PWM value.
pwm1_auto_point[1-6]_temp      Temperature boundary.
Loading