diff mbox series

[6/6] dt-bindings: power: mfd: ab8500: Convert to DT schema format

Message ID 20210412230320.382885-7-sebastian.reichel@collabora.com (mailing list archive)
State Not Applicable, archived
Headers show
Series Convert remaining power-supply DT bindings to YAML | expand

Commit Message

Sebastian Reichel April 12, 2021, 11:03 p.m. UTC
Convert the binding to DT schema format.

I slightly modified the binding by renaming the gpio node from
ab8500-gpio to ab8500-gpiocontroller, since the -gpio suffix
is used for gpio consumers.

Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
---
 .../devicetree/bindings/mfd/ab8500.txt        | 280 -------
 .../bindings/mfd/stericsson,ab8500.yaml       | 696 ++++++++++++++++++
 .../bindings/pinctrl/ste,abx500.txt           | 318 --------
 .../supply/stericsson,ab8500-battery.txt      |  34 -
 4 files changed, 696 insertions(+), 632 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/mfd/ab8500.txt
 create mode 100644 Documentation/devicetree/bindings/mfd/stericsson,ab8500.yaml
 delete mode 100644 Documentation/devicetree/bindings/pinctrl/ste,abx500.txt
 delete mode 100644 Documentation/devicetree/bindings/power/supply/stericsson,ab8500-battery.txt

Comments

Rob Herring (Arm) April 13, 2021, 3:57 p.m. UTC | #1
On Tue, Apr 13, 2021 at 01:03:20AM +0200, Sebastian Reichel wrote:
> Convert the binding to DT schema format.
> 
> I slightly modified the binding by renaming the gpio node from
> ab8500-gpio to ab8500-gpiocontroller, since the -gpio suffix
> is used for gpio consumers.
> 
> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> ---
>  .../devicetree/bindings/mfd/ab8500.txt        | 280 -------
>  .../bindings/mfd/stericsson,ab8500.yaml       | 696 ++++++++++++++++++
>  .../bindings/pinctrl/ste,abx500.txt           | 318 --------
>  .../supply/stericsson,ab8500-battery.txt      |  34 -
>  4 files changed, 696 insertions(+), 632 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/mfd/ab8500.txt
>  create mode 100644 Documentation/devicetree/bindings/mfd/stericsson,ab8500.yaml
>  delete mode 100644 Documentation/devicetree/bindings/pinctrl/ste,abx500.txt
>  delete mode 100644 Documentation/devicetree/bindings/power/supply/stericsson,ab8500-battery.txt


> diff --git a/Documentation/devicetree/bindings/mfd/stericsson,ab8500.yaml b/Documentation/devicetree/bindings/mfd/stericsson,ab8500.yaml
> new file mode 100644
> index 000000000000..80d33f21d72f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/stericsson,ab8500.yaml
> @@ -0,0 +1,696 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/mfd/stericsson,ab8500.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: AB8500 Multi-Functional Device
> +
> +maintainers:
> +  - Linus Walleij <linus.walleij@linaro.org>
> +  - Lee Jones <lee.jones@linaro.org>
> +
> +properties:
> +  compatible:
> +    enum:
> +      - stericsson,ab8500
> +      - stericsson,ab8505
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  interrupt-controller: true
> +
> +  "#interrupt-cells":
> +    description: First cell is IRQ number, second cell is flags
> +    const: 2
> +
> +  clock-controller:
> +    type: object
> +    properties:
> +      compatible:
> +        const: stericsson,ab8500-clk
> +
> +      "#clock-cells":
> +        const: 1
> +
> +    required:
> +      - compatible
> +      - "#clock-cells"
> +
> +    additionalProperties: false
> +
> +  ab8500-rtc:
> +    type: object
> +    properties:
> +      compatible:
> +        const: stericsson,ab8500-rtc
> +
> +      interrupts:
> +        maxItems: 2
> +
> +      interrupt-names:
> +        items:
> +          - const: 60S
> +          - const: ALARM
> +
> +    required:
> +      - compatible
> +      - interrupts
> +      - interrupt-names
> +
> +    additionalProperties: false
> +
> +  ab8500-gpadc:
> +    type: object
> +    properties:
> +      compatible:
> +        const: stericsson,ab8500-gpadc
> +
> +      interrupts:
> +        minItems: 1
> +        maxItems: 2
> +
> +      interrupt-names:
> +        minItems: 1
> +        maxItems: 2
> +        items:
> +          anyOf:
> +            - const: HW_CONV_END
> +            - const: SW_CONV_END
> +
> +      vddadc-supply:
> +        description: analog supply
> +
> +      "#address-cells":
> +        const: 1
> +
> +      "#size-cells":
> +        const: 0
> +
> +      "#io-channel-cells":
> +        const: 1
> +
> +    required:
> +      - compatible
> +
> +    patternProperties:
> +      "^channel@[0-9a-f]+$":
> +        type: object
> +        properties:
> +          reg:
> +            maxItems: 1

maximum: 0x1f ?

> +
> +        required:
> +          - reg
> +
> +        additionalProperties: false
> +
> +    additionalProperties: false
> +
> +  ab8500_temp:
> +    type: object
> +    properties:
> +      compatible:
> +        const: stericsson,abx500-temp
> +
> +      interrupts:
> +        maxItems: 1
> +
> +      interrupt-names:
> +        items:
> +          - const: ABX500_TEMP_WARM
> +
> +      io-channels:
> +        maxItems: 2
> +
> +      io-channel-names:
> +        items:
> +          - const: aux1
> +          - const: aux2
> +
> +    required:
> +      - compatible
> +
> +    additionalProperties: false
> +
> +  ab8500_btemp:
> +    type: object
> +    $ref: ../power/supply/stericsson,ab8500-btemp.yaml
> +
> +  ab8500_charger:
> +    type: object
> +    $ref: ../power/supply/stericsson,ab8500-charger.yaml
> +
> +  ab8500_fg:
> +    type: object
> +    $ref: ../power/supply/stericsson,ab8500-fg.yaml
> +
> +  ab8500_chargalg:
> +    type: object
> +    $ref: ../power/supply/stericsson,ab8500-chargalg.yaml
> +
> +  ab8500_battery:
> +    type: object
> +    properties:
> +      stericsson,battery-type:
> +        description: battery chemistry
> +        enum:
> +          - UNKNOWN
> +          - NiMH
> +          - LION
> +          - LIPO
> +          - LiFe
> +          - NiCd
> +          - LiMn
> +
> +      thermistor-on-batctrl:
> +        type: boolean
> +        description:
> +          if set 'batctrl' is used for thermal measurement, otherwise 'btemp'
> +          is used for thermal measurement.
> +
> +    additionalProperties: false
> +
> +  ab8500_usb:
> +    type: object
> +    properties:
> +      compatible:
> +        const: stericsson,ab8500-usb
> +
> +      interrupts:
> +        maxItems: 7
> +
> +      interrupt-names:
> +        items:
> +          - const: ID_WAKEUP_R
> +          - const: ID_WAKEUP_F
> +          - const: VBUS_DET_F
> +          - const: VBUS_DET_R
> +          - const: USB_LINK_STATUS
> +          - const: USB_ADP_PROBE_PLUG
> +          - const: USB_ADP_PROBE_UNPLUG
> +
> +      vddulpivio18-supply:
> +        description: 1.8V VIO
> +
> +      v-ape-supply:
> +        description: V-APE
> +
> +      musb_1v8-supply:
> +        description: MUSB 1.8V
> +
> +      clocks:
> +        maxItems: 1
> +
> +      clock-names:
> +        items:
> +          - const: sysclk
> +
> +    additionalProperties: false
> +
> +  ab8500-ponkey:
> +    type: object
> +    properties:
> +      compatible:
> +        const: stericsson,ab8500-poweron-key
> +
> +      interrupts:
> +        maxItems: 2
> +
> +      interrupt-names:
> +        items:
> +          - const: ONKEY_DBF
> +          - const: ONKEY_DBR
> +
> +    additionalProperties: false
> +
> +  ab8500-sysctrl:
> +    type: object
> +    properties:
> +      compatible:
> +        const: stericsson,ab8500-sysctrl
> +
> +    additionalProperties: false
> +
> +  ab8500-debugfs:
> +    type: object
> +    properties:
> +      compatible:
> +        const: stericsson,ab8500-debug
> +
> +    additionalProperties: false
> +
> +  ab8500-codec:
> +    type: object
> +    properties:
> +      compatible:
> +        const: stericsson,ab8500-codec
> +
> +      V-AUD-supply:
> +        description: V-AUD supply
> +
> +      V-AMIC1-supply:
> +        description: V-AMIC1 supply
> +
> +      V-AMIC2-supply:
> +        description: V-AMIC2 supply
> +
> +      V-DMIC-supply:
> +        description: V-DMIC supply
> +
> +      clocks:
> +        maxItems: 1
> +
> +      clock-names:
> +        items:
> +          - const: audioclk
> +
> +      stericsson,earpeice-cmv:
> +        description: earpiece voltage in mV
> +        enum: [950, 1100, 1270, 1580]
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +
> +    additionalProperties: false
> +
> +  ab8500-ext-regulators:
> +    type: object
> +    properties:
> +      compatible:
> +        const: stericsson,ab8500-ext-regulator
> +
> +    patternProperties:
> +      "^ab8500_ext[1-3]$":
> +        $ref: /schemas/regulator/regulator.yaml
> +
> +    additionalProperties: false
> +
> +patternProperties:
> +  "^ab8500-pwm(-[1-3])?$":
> +    type: object
> +    properties:
> +      compatible:
> +        const: stericsson,ab8500-pwm
> +
> +      clocks:
> +        maxItems: 1
> +
> +      clock-names:
> +        items:
> +          - const: intclk
> +
> +    additionalProperties: false
> +  "^ab850[05]-gpiocontroller$":
> +    type: object
> +    properties:
> +      compatible:
> +        enum:
> +          - stericsson,ab8500-gpio
> +          - stericsson,ab8505-gpio
> +          - stericsson,ab8540-gpio
> +          - stericsson,ab9540-gpio
> +
> +      gpio-controller: true
> +
> +      "#gpio-cells":
> +        const: 2
> +
> +    required:
> +      - compatible
> +      - gpio-controller
> +      - "#gpio-cells"
> +
> +    patternProperties:
> +      "^.*$":
> +        $ref: "/schemas/pinctrl/pincfg-node.yaml"

This is going to match on all properties. Ideally, we'd have some 
pattern to match on, but you can do this instead:

additionalProperties:
  type: object
  $ref: "/schemas/pinctrl/pincfg-node.yaml"


> +
> +    additionalProperties: false
> +
> +  "^ab850[05]-regulators$":
> +    type: object
> +    properties:
> +      compatible:
> +        enum:
> +          - stericsson,ab8500-regulator
> +          - stericsson,ab8505-regulator
> +
> +      vin-supply:
> +        description: input supply
> +
> +    patternProperties:
> +      "^ab8500_ldo_adc$|^ab8500_ldo_aux[1-8]$|^ab8500_ldo_intcore$|^ab8500_ldo_tvout$|^ab8500_ldo_audio$|^ab8500_ldo_anamic[12]$|^ab8500_ldo_dmic$|^ab8500_ldo_ana$":

Can't you factor out 'ab8500_ldo_'?

> +        $ref: /schemas/regulator/regulator.yaml
> +
> +    additionalProperties: false
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +    #include <dt-bindings/mfd/dbx500-prcmu.h>
> +    #include <dt-bindings/clock/ste-ab8500.h>
> +    ab8500 {
> +        compatible = "stericsson,ab8500";
> +        interrupt-parent = <&intc>;
> +        interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
> +        interrupt-controller;
> +        #interrupt-cells = <2>;
> +
> +        ab8500_clock: clock-controller {
> +            compatible = "stericsson,ab8500-clk";
> +            #clock-cells = <1>;
> +        };
> +
> +        ab8500_gpio: ab8500-gpiocontroller {
> +            compatible = "stericsson,ab8500-gpio";
> +            gpio-controller;
> +            #gpio-cells = <2>;
> +        };
> +
> +        ab8500-rtc {
> +            compatible = "stericsson,ab8500-rtc";
> +            interrupts = <17 IRQ_TYPE_LEVEL_HIGH>,
> +                         <18 IRQ_TYPE_LEVEL_HIGH>;
> +            interrupt-names = "60S", "ALARM";
> +        };
> +
> +        gpadc: ab8500-gpadc {
> +            compatible = "stericsson,ab8500-gpadc";
> +            interrupts = <32 IRQ_TYPE_LEVEL_HIGH>,
> +                         <39 IRQ_TYPE_LEVEL_HIGH>;
> +            interrupt-names = "HW_CONV_END", "SW_CONV_END";
> +            vddadc-supply = <&ab8500_ldo_tvout_reg>;
> +            #address-cells = <1>;
> +            #size-cells = <0>;
> +            #io-channel-cells = <1>;
> +
> +            /* GPADC channels */
> +            bat_ctrl: channel@1 {
> +                reg = <0x01>;
> +            };
> +            btemp_ball: channel@2 {
> +                reg = <0x02>;
> +            };
> +            main_charger_v: channel@3 {
> +                reg = <0x03>;
> +            };
> +            acc_detect1: channel@4 {
> +                reg = <0x04>;
> +            };
> +            acc_detect2: channel@5 {
> +                reg = <0x05>;
> +            };
> +            adc_aux1: channel@6 {
> +                reg = <0x06>;
> +            };
> +            adc_aux2: channel@7 {
> +                reg = <0x07>;
> +            };
> +            main_batt_v: channel@8 {
> +                reg = <0x08>;
> +            };
> +            vbus_v: channel@9 {
> +                reg = <0x09>;
> +            };
> +            main_charger_c: channel@a {
> +                reg = <0x0a>;
> +            };
> +            usb_charger_c: channel@b {
> +                reg = <0x0b>;
> +            };
> +            bk_bat_v: channel@c {
> +                reg = <0x0c>;
> +            };
> +            die_temp: channel@d {
> +                reg = <0x0d>;
> +            };
> +            usb_id: channel@e {
> +                reg = <0x0e>;
> +            };
> +            xtal_temp: channel@12 {
> +                reg = <0x12>;
> +            };
> +            vbat_true_meas: channel@13 {
> +                reg = <0x13>;
> +            };
> +            bat_ctrl_and_ibat: channel@1c {
> +                reg = <0x1c>;
> +            };
> +            vbat_meas_and_ibat: channel@1d {
> +                reg = <0x1d>;
> +            };
> +            vbat_true_meas_and_ibat: channel@1e {
> +                reg = <0x1e>;
> +            };
> +            bat_temp_and_ibat: channel@1f {
> +                reg = <0x1f>;
> +            };
> +        };
> +
> +        ab8500_temp {
> +            compatible = "stericsson,abx500-temp";
> +            interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
> +            interrupt-names = "ABX500_TEMP_WARM";
> +            io-channels = <&gpadc 0x06>,
> +                          <&gpadc 0x07>;
> +            io-channel-names = "aux1", "aux2";
> +        };
> +
> +        ab8500_battery: ab8500_battery {
> +            stericsson,battery-type = "LIPO";
> +            thermistor-on-batctrl;
> +        };
> +
> +        ab8500_fg {
> +            compatible = "stericsson,ab8500-fg";
> +            interrupts = <24 IRQ_TYPE_LEVEL_HIGH>,
> +                         <8 IRQ_TYPE_LEVEL_HIGH>,
> +                         <28 IRQ_TYPE_LEVEL_HIGH>,
> +                         <27 IRQ_TYPE_LEVEL_HIGH>,
> +                         <26 IRQ_TYPE_LEVEL_HIGH>;
> +            interrupt-names = "NCONV_ACCU",
> +                              "BATT_OVV",
> +                              "LOW_BAT_F",
> +                              "CC_INT_CALIB",
> +                              "CCEOC";
> +            battery = <&ab8500_battery>;
> +            io-channels = <&gpadc 0x08>;
> +            io-channel-names = "main_bat_v";
> +        };
> +
> +        ab8500_btemp {
> +            compatible = "stericsson,ab8500-btemp";
> +            interrupts = <20 IRQ_TYPE_LEVEL_HIGH>,
> +                         <80 IRQ_TYPE_LEVEL_HIGH>,
> +                         <83 IRQ_TYPE_LEVEL_HIGH>,
> +                         <81 IRQ_TYPE_LEVEL_HIGH>,
> +                         <82 IRQ_TYPE_LEVEL_HIGH>;
> +            interrupt-names = "BAT_CTRL_INDB",
> +                              "BTEMP_LOW",
> +                              "BTEMP_HIGH",
> +                              "BTEMP_LOW_MEDIUM",
> +                              "BTEMP_MEDIUM_HIGH";
> +            battery = <&ab8500_battery>;
> +            io-channels = <&gpadc 0x02>,
> +                          <&gpadc 0x01>;
> +            io-channel-names = "btemp_ball",
> +                            "bat_ctrl";
> +        };
> +
> +        ab8500_charger {
> +            compatible = "stericsson,ab8500-charger";
> +            interrupts = <10 IRQ_TYPE_LEVEL_HIGH>,
> +                         <11 IRQ_TYPE_LEVEL_HIGH>,
> +                         <0 IRQ_TYPE_LEVEL_HIGH>,
> +                         <107 IRQ_TYPE_LEVEL_HIGH>,
> +                         <106 IRQ_TYPE_LEVEL_HIGH>,
> +                         <14 IRQ_TYPE_LEVEL_HIGH>,
> +                         <15 IRQ_TYPE_LEVEL_HIGH>,
> +                         <79 IRQ_TYPE_LEVEL_HIGH>,
> +                         <105 IRQ_TYPE_LEVEL_HIGH>,
> +                         <104 IRQ_TYPE_LEVEL_HIGH>,
> +                         <89 IRQ_TYPE_LEVEL_HIGH>,
> +                         <22 IRQ_TYPE_LEVEL_HIGH>,
> +                         <21 IRQ_TYPE_LEVEL_HIGH>,
> +                         <16 IRQ_TYPE_LEVEL_HIGH>;
> +            interrupt-names = "MAIN_CH_UNPLUG_DET",
> +                              "MAIN_CHARGE_PLUG_DET",
> +                              "MAIN_EXT_CH_NOT_OK",
> +                              "MAIN_CH_TH_PROT_R",
> +                              "MAIN_CH_TH_PROT_F",
> +                              "VBUS_DET_F",
> +                              "VBUS_DET_R",
> +                              "USB_LINK_STATUS",
> +                              "USB_CH_TH_PROT_R",
> +                              "USB_CH_TH_PROT_F",
> +                              "USB_CHARGER_NOT_OKR",
> +                              "VBUS_OVV",
> +                              "CH_WD_EXP",
> +                              "VBUS_CH_DROP_END";
> +            battery = <&ab8500_battery>;
> +            vddadc-supply = <&ab8500_ldo_tvout_reg>;
> +            io-channels = <&gpadc 0x03>,
> +                          <&gpadc 0x0a>,
> +                          <&gpadc 0x09>,
> +                          <&gpadc 0x0b>;
> +            io-channel-names = "main_charger_v",
> +                            "main_charger_c",
> +                            "vbus_v",
> +                            "usb_charger_c";
> +        };
> +
> +        ab8500_chargalg {
> +            compatible = "stericsson,ab8500-chargalg";
> +            battery = <&ab8500_battery>;
> +        };
> +
> +        ab8500_usb {
> +            compatible = "stericsson,ab8500-usb";
> +            interrupts = <90 IRQ_TYPE_LEVEL_HIGH>,
> +                         <96 IRQ_TYPE_LEVEL_HIGH>,
> +                         <14 IRQ_TYPE_LEVEL_HIGH>,
> +                         <15 IRQ_TYPE_LEVEL_HIGH>,
> +                         <79 IRQ_TYPE_LEVEL_HIGH>,
> +                         <74 IRQ_TYPE_LEVEL_HIGH>,
> +                         <75 IRQ_TYPE_LEVEL_HIGH>;
> +            interrupt-names = "ID_WAKEUP_R",
> +                              "ID_WAKEUP_F",
> +                              "VBUS_DET_F",
> +                              "VBUS_DET_R",
> +                              "USB_LINK_STATUS",
> +                              "USB_ADP_PROBE_PLUG",
> +                              "USB_ADP_PROBE_UNPLUG";
> +            vddulpivio18-supply = <&ab8500_ldo_intcore_reg>;
> +            v-ape-supply = <&db8500_vape_reg>;
> +            musb_1v8-supply = <&db8500_vsmps2_reg>;
> +            clocks = <&prcmu_clk PRCMU_SYSCLK>;
> +            clock-names = "sysclk";
> +        };
> +
> +        ab8500-ponkey {
> +            compatible = "stericsson,ab8500-poweron-key";
> +            interrupts = <6 IRQ_TYPE_LEVEL_HIGH>,
> +                         <7 IRQ_TYPE_LEVEL_HIGH>;
> +            interrupt-names = "ONKEY_DBF", "ONKEY_DBR";
> +        };
> +
> +        ab8500-sysctrl {
> +            compatible = "stericsson,ab8500-sysctrl";
> +        };
> +
> +        ab8500-pwm-1 {
> +            compatible = "stericsson,ab8500-pwm";
> +            clocks = <&ab8500_clock AB8500_SYSCLK_INT>;
> +            clock-names = "intclk";
> +        };
> +
> +        ab8500-pwm-2 {
> +            compatible = "stericsson,ab8500-pwm";
> +            clocks = <&ab8500_clock AB8500_SYSCLK_INT>;
> +            clock-names = "intclk";
> +        };
> +
> +        ab8500-pwm-3 {
> +            compatible = "stericsson,ab8500-pwm";
> +            clocks = <&ab8500_clock AB8500_SYSCLK_INT>;
> +            clock-names = "intclk";
> +        };
> +
> +        ab8500-debugfs {
> +            compatible = "stericsson,ab8500-debug";
> +        };
> +
> +        codec: ab8500-codec {
> +            compatible = "stericsson,ab8500-codec";
> +
> +            V-AUD-supply = <&ab8500_ldo_audio_reg>;
> +            V-AMIC1-supply = <&ab8500_ldo_anamic1_reg>;
> +            V-AMIC2-supply = <&ab8500_ldo_anamic2_reg>;
> +            V-DMIC-supply = <&ab8500_ldo_dmic_reg>;
> +
> +            clocks = <&ab8500_clock AB8500_SYSCLK_AUDIO>;
> +            clock-names = "audioclk";
> +
> +            stericsson,earpeice-cmv = <950>; /* Units in mV. */
> +        };
> +
> +        ext_regulators: ab8500-ext-regulators {
> +            compatible = "stericsson,ab8500-ext-regulator";
> +
> +            ab8500_ext1_reg: ab8500_ext1 {
> +                regulator-min-microvolt = <1800000>;
> +                regulator-max-microvolt = <1800000>;
> +                regulator-boot-on;
> +                regulator-always-on;
> +            };
> +
> +            ab8500_ext2_reg: ab8500_ext2 {
> +                regulator-min-microvolt = <1360000>;
> +                regulator-max-microvolt = <1360000>;
> +                regulator-boot-on;
> +                regulator-always-on;
> +            };
> +
> +            ab8500_ext3_reg: ab8500_ext3 {
> +                regulator-min-microvolt = <3400000>;
> +                regulator-max-microvolt = <3400000>;
> +                regulator-boot-on;
> +            };
> +        };
> +
> +        ab8500-regulators {
> +            compatible = "stericsson,ab8500-regulator";
> +            vin-supply = <&ab8500_ext3_reg>;
> +
> +            // supplies to the display/camera
> +            ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
> +                regulator-min-microvolt = <2500000>;
> +                regulator-max-microvolt = <2900000>;
> +                regulator-boot-on;
> +                /* BUG: If turned off MMC will be affected. */
> +                regulator-always-on;
> +            };
> +
> +            // supplies to the on-board eMMC
> +            ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
> +                regulator-min-microvolt = <1100000>;
> +                regulator-max-microvolt = <3300000>;
> +            };
> +
> +            // supply for VAUX3; SDcard slots
> +            ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
> +                regulator-min-microvolt = <1100000>;
> +                regulator-max-microvolt = <3300000>;
> +            };
> +
> +            // supply for v-intcore12; VINTCORE12 LDO
> +            ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
> +            };
> +
> +            // supply for tvout; gpadc; TVOUT LDO
> +            ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
> +            };
> +
> +            // supply for ab8500-vaudio; VAUDIO LDO
> +            ab8500_ldo_audio_reg: ab8500_ldo_audio {
> +            };
> +
> +            // supply for v-anamic1 VAMIC1 LDO
> +            ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
> +            };
> +
> +            // supply for v-amic2; VAMIC2 LDO; reuse constants for AMIC1
> +            ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
> +            };
> +
> +            // supply for v-dmic; VDMIC LDO
> +            ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
> +            };
> +
> +            // supply for U8500 CSI/DSI; VANA LDO
> +            ab8500_ldo_ana_reg: ab8500_ldo_ana {
> +            };
> +        };
> +    };
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/mfd/ab8500.txt b/Documentation/devicetree/bindings/mfd/ab8500.txt
deleted file mode 100644
index d2a6e835c257..000000000000
--- a/Documentation/devicetree/bindings/mfd/ab8500.txt
+++ /dev/null
@@ -1,280 +0,0 @@ 
-* AB8500 Multi-Functional Device (MFD)
-
-Required parent device properties:
-- compatible             : contains "stericsson,ab8500" or "stericsson,ab8505";
-- interrupts             : contains the IRQ line for the AB8500
-- interrupt-controller   : describes the AB8500 as an Interrupt Controller (has its own domain)
-- #interrupt-cells       : should be 2, for 2-cell format
-                            - The first cell is the AB8500 local IRQ number
-                            - The second cell is used to specify optional parameters
-                              - bits[3:0] trigger type and level flags:
-                                  1 = low-to-high edge triggered
-                                  2 = high-to-low edge triggered
-                                  4 = active high level-sensitive
-                                  8 = active low level-sensitive
-
-The AB8500 consists of a large and varied group of sub-devices:
-
-Device                     IRQ Names              Supply Names   Description
-------                     ---------              ------------   -----------
-ab8500-bm                :                      :              : Battery Manager
-ab8500-btemp             :                      :              : Battery Temperature
-ab8500-charger           :                      :              : Battery Charger
-ab8500-codec             :                      :              : Audio Codec
-ab8500-fg                : 			: vddadc       : Fuel Gauge
-			 : NCONV_ACCU           :	       : Accumulate N Sample Conversion
-			 : BATT_OVV		:	       : Battery Over Voltage
-			 : LOW_BAT_F		:	       : LOW threshold battery voltage
-			 : CC_INT_CALIB		:	       : Coulomb Counter Internal Calibration
-			 : CCEOC		:	       : Coulomb Counter End of Conversion
-ab8500-btemp		 :			: vtvout       : Battery Temperature
-			 : BAT_CTRL_INDB        :              : Battery Removal Indicator
-			 : BTEMP_LOW            :              : Btemp < BtempLow, if battery temperature is lower than -10°C
-			 : BTEMP_LOW_MEDIUM     :              : BtempLow < Btemp < BtempMedium,if battery temperature is between -10 and 0°C
-			 : BTEMP_MEDIUM_HIGH    :	       : BtempMedium < Btemp < BtempHigh,if battery temperature is between 0°C and MaxTemp
-			 : BTEMP_HIGH           :              : Btemp > BtempHigh, if battery temperature is higher than MaxTemp
-ab8500-charger		 :			: vddadc       : Charger interface
-			 : MAIN_CH_UNPLUG_DET	:	       : main charger unplug detection management (not in 8505)
-			 : MAIN_CHARGE_PLUG_DET	:	       : main charger plug detection management (not in 8505)
-			 : MAIN_EXT_CH_NOT_OK	:	       : main charger not OK
-			 : MAIN_CH_TH_PROT_R	:	       : Die temp is above main charger
-			 : MAIN_CH_TH_PROT_F	:	       : Die temp is below main charger
-			 : VBUS_DET_F		:	       : VBUS falling detected
-			 : VBUS_DET_R		:	       : VBUS rising detected
-			 : USB_LINK_STATUS	:	       : USB link status has changed
-			 : USB_CH_TH_PROT_R	:	       : Die temp is above usb charger
-			 : USB_CH_TH_PROT_F	:	       : Die temp is below usb charger
-			 : USB_CHARGER_NOT_OKR	:	       : allowed USB charger not ok detection
-			 : VBUS_OVV		:	       : Overvoltage on Vbus ball detected (USB charge is stopped)
-			 : CH_WD_EXP		:	       : Charger watchdog detected
-ab8500-gpadc             : HW_CONV_END          : vddadc       : Analogue to Digital Converter
-                           SW_CONV_END          :              :
-ab8500-gpio              :                      :              : GPIO Controller (AB8500)
-ab8505-gpio              :                      :              : GPIO Controller (AB8505)
-ab8500-ponkey            : ONKEY_DBF            :              : Power-on Key
-                           ONKEY_DBR            :              :
-ab8500-pwm               :                      :              : Pulse Width Modulator
-ab8500-regulator         :                      :              : Regulators (AB8500)
-ab8505-regulator         :                      :              : Regulators (AB8505)
-ab8500-rtc               : 60S                  :              : Real Time Clock
-                         : ALARM                :              :
-ab8500-sysctrl           :                      :              : System Control
-ab8500-usb               : ID_WAKEUP_R          : vddulpivio18 : Universal Serial Bus
-                         : ID_WAKEUP_F          : v-ape        :
-                         : VBUS_DET_F           : musb_1v8     :
-                         : VBUS_DET_R           :              :
-                         : USB_LINK_STATUS      :              :
-                         : USB_ADP_PROBE_PLUG   :              :
-                         : USB_ADP_PROBE_UNPLUG :              :
-
-Required child device properties:
-- compatible             : "stericsson,ab8500-[bm|btemp|charger|fg|gpadc|gpio|ponkey|
-                                               pwm|regulator|rtc|sysctrl|usb]";
-
-  A few child devices require ADC channels from the GPADC node. Those follow the
-  standard bindings from iio/iio-bindings.txt and iio/adc/adc.txt
-
-  abx500-temp		 : io-channels "aux1" and "aux2" for measuring external
-			   temperatures.
-  ab8500-fg		 : io-channel "main_bat_v" for measuring main battery voltage,
-  ab8500-btemp		 : io-channels "btemp_ball" and "bat_ctrl" for measuring the
-			   battery voltage.
-  ab8500-charger	 : io-channels "main_charger_v", "main_charger_c", "vbus_v",
-			   "usb_charger_c" for measuring voltage and current of the
-			   different charging supplies.
-
-Optional child device properties:
-- interrupts             : contains the device IRQ(s) using the 2-cell format (see above)
-- interrupt-names        : contains names of IRQ resource in the order in which they were
-                           supplied in the interrupts property
-- <supply_name>-supply   : contains a phandle to the regulator supply node in Device Tree
-
-Non-standard child device properties:
- - Audio CODEC:
-   - stericsson,amic[1|2]-type-single-ended : Single-ended Analoge Mic (default: differential)
-   - stericsson,amic1a-bias-vamic2          : Analoge Mic wishes to use a non-standard Vamic
-   - stericsson,amic1b-bias-vamic2          : Analoge Mic wishes to use a non-standard Vamic
-   - stericsson,amic2-bias-vamic1           : Analoge Mic wishes to use a non-standard Vamic
-   - stericsson,earpeice-cmv                : Earpeice voltage (only: 950 | 1100 | 1270 | 1580)
-
-ab8500 {
-         compatible = "stericsson,ab8500";
-         interrupts = <0 40 0x4>;
-         interrupt-controller;
-         #interrupt-cells = <2>;
-
-         ab8500-rtc {
-                 compatible = "stericsson,ab8500-rtc";
-                 interrupts = <17 0x4
-                               18 0x4>;
-                 interrupt-names = "60S", "ALARM";
-         };
-
-        ab8500-gpadc {
-                compatible = "stericsson,ab8500-gpadc";
-                interrupts = <32 0x4
-                              39 0x4>;
-                interrupt-names = "HW_CONV_END", "SW_CONV_END";
-                vddadc-supply = <&ab8500_ldo_tvout_reg>;
-		#address-cells = <1>;
-		#size-cells = <0>;
-		#io-channel-cells = <1>;
-
-		/* GPADC channels */
-		bat_ctrl: channel@1 {
-			reg = <0x01>;
-		};
-		btemp_ball: channel@2 {
-			reg = <0x02>;
-		};
-		main_charger_v: channel@3 {
-			reg = <0x03>;
-		};
-		acc_detect1: channel@4 {
-			reg = <0x04>;
-		};
-		acc_detect2: channel@5 {
-			reg = <0x05>;
-		};
-		adc_aux1: channel@6 {
-			reg = <0x06>;
-		};
-		adc_aux2: channel@7 {
-			reg = <0x07>;
-		};
-		main_batt_v: channel@8 {
-			reg = <0x08>;
-		};
-		vbus_v: channel@9 {
-			reg = <0x09>;
-		};
-		main_charger_c: channel@a {
-			reg = <0x0a>;
-		};
-		usb_charger_c: channel@b {
-			reg = <0x0b>;
-		};
-		bk_bat_v: channel@c {
-			reg = <0x0c>;
-		};
-		die_temp: channel@d {
-			reg = <0x0d>;
-		};
-		usb_id: channel@e {
-			reg = <0x0e>;
-		};
-		xtal_temp: channel@12 {
-			reg = <0x12>;
-		};
-		vbat_true_meas: channel@13 {
-			reg = <0x13>;
-		};
-		bat_ctrl_and_ibat: channel@1c {
-			reg = <0x1c>;
-		};
-		vbat_meas_and_ibat: channel@1d {
-			reg = <0x1d>;
-		};
-		vbat_true_meas_and_ibat: channel@1e {
-			reg = <0x1e>;
-		};
-		bat_temp_and_ibat: channel@1f {
-			reg = <0x1f>;
-		};
-        };
-
-	ab8500_temp {
-		compatible = "stericsson,abx500-temp";
-		io-channels = <&gpadc 0x06>,
-			      <&gpadc 0x07>;
-		io-channel-name = "aux1", "aux2";
-	};
-
-	ab8500_battery: ab8500_battery {
-		stericsson,battery-type = "LIPO";
-		thermistor-on-batctrl;
-	};
-
-	ab8500_fg {
-		compatible = "stericsson,ab8500-fg";
-		battery	   = <&ab8500_battery>;
-		io-channels = <&gpadc 0x08>;
-		io-channel-name = "main_bat_v";
-	};
-
-	ab8500_btemp {
-		compatible = "stericsson,ab8500-btemp";
-		battery	   = <&ab8500_battery>;
-		io-channels = <&gpadc 0x02>,
-			      <&gpadc 0x01>;
-		io-channel-name = "btemp_ball",
-				"bat_ctrl";
-	};
-
-	ab8500_charger {
-		compatible	= "stericsson,ab8500-charger";
-		battery		= <&ab8500_battery>;
-		vddadc-supply	= <&ab8500_ldo_tvout_reg>;
-		io-channels = <&gpadc 0x03>,
-			      <&gpadc 0x0a>,
-			      <&gpadc 0x09>,
-			      <&gpadc 0x0b>;
-		io-channel-name = "main_charger_v",
-				"main_charger_c",
-				"vbus_v",
-				"usb_charger_c";
-	};
-
-        ab8500-usb {
-                compatible = "stericsson,ab8500-usb";
-                interrupts = < 90 0x4
-                               96 0x4
-                               14 0x4
-                               15 0x4
-                               79 0x4
-                               74 0x4
-                               75 0x4>;
-                interrupt-names = "ID_WAKEUP_R",
-                                  "ID_WAKEUP_F",
-                                  "VBUS_DET_F",
-                                  "VBUS_DET_R",
-                                  "USB_LINK_STATUS",
-                                  "USB_ADP_PROBE_PLUG",
-                                  "USB_ADP_PROBE_UNPLUG";
-                vddulpivio18-supply = <&ab8500_ldo_intcore_reg>;
-                v-ape-supply = <&db8500_vape_reg>;
-                musb_1v8-supply = <&db8500_vsmps2_reg>;
-        };
-
-        ab8500-ponkey {
-                compatible = "stericsson,ab8500-ponkey";
-                interrupts = <6 0x4
-                              7 0x4>;
-                interrupt-names = "ONKEY_DBF", "ONKEY_DBR";
-        };
-
-        ab8500-sysctrl {
-                compatible = "stericsson,ab8500-sysctrl";
-        };
-
-        ab8500-pwm {
-                compatible = "stericsson,ab8500-pwm";
-        };
-
-	codec: ab8500-codec {
-		compatible = "stericsson,ab8500-codec";
-
-		stericsson,earpeice-cmv = <950>; /* Units in mV. */
-	};
-
-        ab8500-regulators {
-                compatible = "stericsson,ab8500-regulator";
-
-                ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
-                        /*
-                         * See: Documentation/devicetree/bindings/regulator/regulator.txt
-                         * for more information on regulators
-                         */
-                };
-        };
-};
diff --git a/Documentation/devicetree/bindings/mfd/stericsson,ab8500.yaml b/Documentation/devicetree/bindings/mfd/stericsson,ab8500.yaml
new file mode 100644
index 000000000000..80d33f21d72f
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/stericsson,ab8500.yaml
@@ -0,0 +1,696 @@ 
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/mfd/stericsson,ab8500.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: AB8500 Multi-Functional Device
+
+maintainers:
+  - Linus Walleij <linus.walleij@linaro.org>
+  - Lee Jones <lee.jones@linaro.org>
+
+properties:
+  compatible:
+    enum:
+      - stericsson,ab8500
+      - stericsson,ab8505
+
+  interrupts:
+    maxItems: 1
+
+  interrupt-controller: true
+
+  "#interrupt-cells":
+    description: First cell is IRQ number, second cell is flags
+    const: 2
+
+  clock-controller:
+    type: object
+    properties:
+      compatible:
+        const: stericsson,ab8500-clk
+
+      "#clock-cells":
+        const: 1
+
+    required:
+      - compatible
+      - "#clock-cells"
+
+    additionalProperties: false
+
+  ab8500-rtc:
+    type: object
+    properties:
+      compatible:
+        const: stericsson,ab8500-rtc
+
+      interrupts:
+        maxItems: 2
+
+      interrupt-names:
+        items:
+          - const: 60S
+          - const: ALARM
+
+    required:
+      - compatible
+      - interrupts
+      - interrupt-names
+
+    additionalProperties: false
+
+  ab8500-gpadc:
+    type: object
+    properties:
+      compatible:
+        const: stericsson,ab8500-gpadc
+
+      interrupts:
+        minItems: 1
+        maxItems: 2
+
+      interrupt-names:
+        minItems: 1
+        maxItems: 2
+        items:
+          anyOf:
+            - const: HW_CONV_END
+            - const: SW_CONV_END
+
+      vddadc-supply:
+        description: analog supply
+
+      "#address-cells":
+        const: 1
+
+      "#size-cells":
+        const: 0
+
+      "#io-channel-cells":
+        const: 1
+
+    required:
+      - compatible
+
+    patternProperties:
+      "^channel@[0-9a-f]+$":
+        type: object
+        properties:
+          reg:
+            maxItems: 1
+
+        required:
+          - reg
+
+        additionalProperties: false
+
+    additionalProperties: false
+
+  ab8500_temp:
+    type: object
+    properties:
+      compatible:
+        const: stericsson,abx500-temp
+
+      interrupts:
+        maxItems: 1
+
+      interrupt-names:
+        items:
+          - const: ABX500_TEMP_WARM
+
+      io-channels:
+        maxItems: 2
+
+      io-channel-names:
+        items:
+          - const: aux1
+          - const: aux2
+
+    required:
+      - compatible
+
+    additionalProperties: false
+
+  ab8500_btemp:
+    type: object
+    $ref: ../power/supply/stericsson,ab8500-btemp.yaml
+
+  ab8500_charger:
+    type: object
+    $ref: ../power/supply/stericsson,ab8500-charger.yaml
+
+  ab8500_fg:
+    type: object
+    $ref: ../power/supply/stericsson,ab8500-fg.yaml
+
+  ab8500_chargalg:
+    type: object
+    $ref: ../power/supply/stericsson,ab8500-chargalg.yaml
+
+  ab8500_battery:
+    type: object
+    properties:
+      stericsson,battery-type:
+        description: battery chemistry
+        enum:
+          - UNKNOWN
+          - NiMH
+          - LION
+          - LIPO
+          - LiFe
+          - NiCd
+          - LiMn
+
+      thermistor-on-batctrl:
+        type: boolean
+        description:
+          if set 'batctrl' is used for thermal measurement, otherwise 'btemp'
+          is used for thermal measurement.
+
+    additionalProperties: false
+
+  ab8500_usb:
+    type: object
+    properties:
+      compatible:
+        const: stericsson,ab8500-usb
+
+      interrupts:
+        maxItems: 7
+
+      interrupt-names:
+        items:
+          - const: ID_WAKEUP_R
+          - const: ID_WAKEUP_F
+          - const: VBUS_DET_F
+          - const: VBUS_DET_R
+          - const: USB_LINK_STATUS
+          - const: USB_ADP_PROBE_PLUG
+          - const: USB_ADP_PROBE_UNPLUG
+
+      vddulpivio18-supply:
+        description: 1.8V VIO
+
+      v-ape-supply:
+        description: V-APE
+
+      musb_1v8-supply:
+        description: MUSB 1.8V
+
+      clocks:
+        maxItems: 1
+
+      clock-names:
+        items:
+          - const: sysclk
+
+    additionalProperties: false
+
+  ab8500-ponkey:
+    type: object
+    properties:
+      compatible:
+        const: stericsson,ab8500-poweron-key
+
+      interrupts:
+        maxItems: 2
+
+      interrupt-names:
+        items:
+          - const: ONKEY_DBF
+          - const: ONKEY_DBR
+
+    additionalProperties: false
+
+  ab8500-sysctrl:
+    type: object
+    properties:
+      compatible:
+        const: stericsson,ab8500-sysctrl
+
+    additionalProperties: false
+
+  ab8500-debugfs:
+    type: object
+    properties:
+      compatible:
+        const: stericsson,ab8500-debug
+
+    additionalProperties: false
+
+  ab8500-codec:
+    type: object
+    properties:
+      compatible:
+        const: stericsson,ab8500-codec
+
+      V-AUD-supply:
+        description: V-AUD supply
+
+      V-AMIC1-supply:
+        description: V-AMIC1 supply
+
+      V-AMIC2-supply:
+        description: V-AMIC2 supply
+
+      V-DMIC-supply:
+        description: V-DMIC supply
+
+      clocks:
+        maxItems: 1
+
+      clock-names:
+        items:
+          - const: audioclk
+
+      stericsson,earpeice-cmv:
+        description: earpiece voltage in mV
+        enum: [950, 1100, 1270, 1580]
+        $ref: /schemas/types.yaml#/definitions/uint32
+
+    additionalProperties: false
+
+  ab8500-ext-regulators:
+    type: object
+    properties:
+      compatible:
+        const: stericsson,ab8500-ext-regulator
+
+    patternProperties:
+      "^ab8500_ext[1-3]$":
+        $ref: /schemas/regulator/regulator.yaml
+
+    additionalProperties: false
+
+patternProperties:
+  "^ab8500-pwm(-[1-3])?$":
+    type: object
+    properties:
+      compatible:
+        const: stericsson,ab8500-pwm
+
+      clocks:
+        maxItems: 1
+
+      clock-names:
+        items:
+          - const: intclk
+
+    additionalProperties: false
+  "^ab850[05]-gpiocontroller$":
+    type: object
+    properties:
+      compatible:
+        enum:
+          - stericsson,ab8500-gpio
+          - stericsson,ab8505-gpio
+          - stericsson,ab8540-gpio
+          - stericsson,ab9540-gpio
+
+      gpio-controller: true
+
+      "#gpio-cells":
+        const: 2
+
+    required:
+      - compatible
+      - gpio-controller
+      - "#gpio-cells"
+
+    patternProperties:
+      "^.*$":
+        $ref: "/schemas/pinctrl/pincfg-node.yaml"
+
+    additionalProperties: false
+
+  "^ab850[05]-regulators$":
+    type: object
+    properties:
+      compatible:
+        enum:
+          - stericsson,ab8500-regulator
+          - stericsson,ab8505-regulator
+
+      vin-supply:
+        description: input supply
+
+    patternProperties:
+      "^ab8500_ldo_adc$|^ab8500_ldo_aux[1-8]$|^ab8500_ldo_intcore$|^ab8500_ldo_tvout$|^ab8500_ldo_audio$|^ab8500_ldo_anamic[12]$|^ab8500_ldo_dmic$|^ab8500_ldo_ana$":
+        $ref: /schemas/regulator/regulator.yaml
+
+    additionalProperties: false
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/mfd/dbx500-prcmu.h>
+    #include <dt-bindings/clock/ste-ab8500.h>
+    ab8500 {
+        compatible = "stericsson,ab8500";
+        interrupt-parent = <&intc>;
+        interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-controller;
+        #interrupt-cells = <2>;
+
+        ab8500_clock: clock-controller {
+            compatible = "stericsson,ab8500-clk";
+            #clock-cells = <1>;
+        };
+
+        ab8500_gpio: ab8500-gpiocontroller {
+            compatible = "stericsson,ab8500-gpio";
+            gpio-controller;
+            #gpio-cells = <2>;
+        };
+
+        ab8500-rtc {
+            compatible = "stericsson,ab8500-rtc";
+            interrupts = <17 IRQ_TYPE_LEVEL_HIGH>,
+                         <18 IRQ_TYPE_LEVEL_HIGH>;
+            interrupt-names = "60S", "ALARM";
+        };
+
+        gpadc: ab8500-gpadc {
+            compatible = "stericsson,ab8500-gpadc";
+            interrupts = <32 IRQ_TYPE_LEVEL_HIGH>,
+                         <39 IRQ_TYPE_LEVEL_HIGH>;
+            interrupt-names = "HW_CONV_END", "SW_CONV_END";
+            vddadc-supply = <&ab8500_ldo_tvout_reg>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+            #io-channel-cells = <1>;
+
+            /* GPADC channels */
+            bat_ctrl: channel@1 {
+                reg = <0x01>;
+            };
+            btemp_ball: channel@2 {
+                reg = <0x02>;
+            };
+            main_charger_v: channel@3 {
+                reg = <0x03>;
+            };
+            acc_detect1: channel@4 {
+                reg = <0x04>;
+            };
+            acc_detect2: channel@5 {
+                reg = <0x05>;
+            };
+            adc_aux1: channel@6 {
+                reg = <0x06>;
+            };
+            adc_aux2: channel@7 {
+                reg = <0x07>;
+            };
+            main_batt_v: channel@8 {
+                reg = <0x08>;
+            };
+            vbus_v: channel@9 {
+                reg = <0x09>;
+            };
+            main_charger_c: channel@a {
+                reg = <0x0a>;
+            };
+            usb_charger_c: channel@b {
+                reg = <0x0b>;
+            };
+            bk_bat_v: channel@c {
+                reg = <0x0c>;
+            };
+            die_temp: channel@d {
+                reg = <0x0d>;
+            };
+            usb_id: channel@e {
+                reg = <0x0e>;
+            };
+            xtal_temp: channel@12 {
+                reg = <0x12>;
+            };
+            vbat_true_meas: channel@13 {
+                reg = <0x13>;
+            };
+            bat_ctrl_and_ibat: channel@1c {
+                reg = <0x1c>;
+            };
+            vbat_meas_and_ibat: channel@1d {
+                reg = <0x1d>;
+            };
+            vbat_true_meas_and_ibat: channel@1e {
+                reg = <0x1e>;
+            };
+            bat_temp_and_ibat: channel@1f {
+                reg = <0x1f>;
+            };
+        };
+
+        ab8500_temp {
+            compatible = "stericsson,abx500-temp";
+            interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
+            interrupt-names = "ABX500_TEMP_WARM";
+            io-channels = <&gpadc 0x06>,
+                          <&gpadc 0x07>;
+            io-channel-names = "aux1", "aux2";
+        };
+
+        ab8500_battery: ab8500_battery {
+            stericsson,battery-type = "LIPO";
+            thermistor-on-batctrl;
+        };
+
+        ab8500_fg {
+            compatible = "stericsson,ab8500-fg";
+            interrupts = <24 IRQ_TYPE_LEVEL_HIGH>,
+                         <8 IRQ_TYPE_LEVEL_HIGH>,
+                         <28 IRQ_TYPE_LEVEL_HIGH>,
+                         <27 IRQ_TYPE_LEVEL_HIGH>,
+                         <26 IRQ_TYPE_LEVEL_HIGH>;
+            interrupt-names = "NCONV_ACCU",
+                              "BATT_OVV",
+                              "LOW_BAT_F",
+                              "CC_INT_CALIB",
+                              "CCEOC";
+            battery = <&ab8500_battery>;
+            io-channels = <&gpadc 0x08>;
+            io-channel-names = "main_bat_v";
+        };
+
+        ab8500_btemp {
+            compatible = "stericsson,ab8500-btemp";
+            interrupts = <20 IRQ_TYPE_LEVEL_HIGH>,
+                         <80 IRQ_TYPE_LEVEL_HIGH>,
+                         <83 IRQ_TYPE_LEVEL_HIGH>,
+                         <81 IRQ_TYPE_LEVEL_HIGH>,
+                         <82 IRQ_TYPE_LEVEL_HIGH>;
+            interrupt-names = "BAT_CTRL_INDB",
+                              "BTEMP_LOW",
+                              "BTEMP_HIGH",
+                              "BTEMP_LOW_MEDIUM",
+                              "BTEMP_MEDIUM_HIGH";
+            battery = <&ab8500_battery>;
+            io-channels = <&gpadc 0x02>,
+                          <&gpadc 0x01>;
+            io-channel-names = "btemp_ball",
+                            "bat_ctrl";
+        };
+
+        ab8500_charger {
+            compatible = "stericsson,ab8500-charger";
+            interrupts = <10 IRQ_TYPE_LEVEL_HIGH>,
+                         <11 IRQ_TYPE_LEVEL_HIGH>,
+                         <0 IRQ_TYPE_LEVEL_HIGH>,
+                         <107 IRQ_TYPE_LEVEL_HIGH>,
+                         <106 IRQ_TYPE_LEVEL_HIGH>,
+                         <14 IRQ_TYPE_LEVEL_HIGH>,
+                         <15 IRQ_TYPE_LEVEL_HIGH>,
+                         <79 IRQ_TYPE_LEVEL_HIGH>,
+                         <105 IRQ_TYPE_LEVEL_HIGH>,
+                         <104 IRQ_TYPE_LEVEL_HIGH>,
+                         <89 IRQ_TYPE_LEVEL_HIGH>,
+                         <22 IRQ_TYPE_LEVEL_HIGH>,
+                         <21 IRQ_TYPE_LEVEL_HIGH>,
+                         <16 IRQ_TYPE_LEVEL_HIGH>;
+            interrupt-names = "MAIN_CH_UNPLUG_DET",
+                              "MAIN_CHARGE_PLUG_DET",
+                              "MAIN_EXT_CH_NOT_OK",
+                              "MAIN_CH_TH_PROT_R",
+                              "MAIN_CH_TH_PROT_F",
+                              "VBUS_DET_F",
+                              "VBUS_DET_R",
+                              "USB_LINK_STATUS",
+                              "USB_CH_TH_PROT_R",
+                              "USB_CH_TH_PROT_F",
+                              "USB_CHARGER_NOT_OKR",
+                              "VBUS_OVV",
+                              "CH_WD_EXP",
+                              "VBUS_CH_DROP_END";
+            battery = <&ab8500_battery>;
+            vddadc-supply = <&ab8500_ldo_tvout_reg>;
+            io-channels = <&gpadc 0x03>,
+                          <&gpadc 0x0a>,
+                          <&gpadc 0x09>,
+                          <&gpadc 0x0b>;
+            io-channel-names = "main_charger_v",
+                            "main_charger_c",
+                            "vbus_v",
+                            "usb_charger_c";
+        };
+
+        ab8500_chargalg {
+            compatible = "stericsson,ab8500-chargalg";
+            battery = <&ab8500_battery>;
+        };
+
+        ab8500_usb {
+            compatible = "stericsson,ab8500-usb";
+            interrupts = <90 IRQ_TYPE_LEVEL_HIGH>,
+                         <96 IRQ_TYPE_LEVEL_HIGH>,
+                         <14 IRQ_TYPE_LEVEL_HIGH>,
+                         <15 IRQ_TYPE_LEVEL_HIGH>,
+                         <79 IRQ_TYPE_LEVEL_HIGH>,
+                         <74 IRQ_TYPE_LEVEL_HIGH>,
+                         <75 IRQ_TYPE_LEVEL_HIGH>;
+            interrupt-names = "ID_WAKEUP_R",
+                              "ID_WAKEUP_F",
+                              "VBUS_DET_F",
+                              "VBUS_DET_R",
+                              "USB_LINK_STATUS",
+                              "USB_ADP_PROBE_PLUG",
+                              "USB_ADP_PROBE_UNPLUG";
+            vddulpivio18-supply = <&ab8500_ldo_intcore_reg>;
+            v-ape-supply = <&db8500_vape_reg>;
+            musb_1v8-supply = <&db8500_vsmps2_reg>;
+            clocks = <&prcmu_clk PRCMU_SYSCLK>;
+            clock-names = "sysclk";
+        };
+
+        ab8500-ponkey {
+            compatible = "stericsson,ab8500-poweron-key";
+            interrupts = <6 IRQ_TYPE_LEVEL_HIGH>,
+                         <7 IRQ_TYPE_LEVEL_HIGH>;
+            interrupt-names = "ONKEY_DBF", "ONKEY_DBR";
+        };
+
+        ab8500-sysctrl {
+            compatible = "stericsson,ab8500-sysctrl";
+        };
+
+        ab8500-pwm-1 {
+            compatible = "stericsson,ab8500-pwm";
+            clocks = <&ab8500_clock AB8500_SYSCLK_INT>;
+            clock-names = "intclk";
+        };
+
+        ab8500-pwm-2 {
+            compatible = "stericsson,ab8500-pwm";
+            clocks = <&ab8500_clock AB8500_SYSCLK_INT>;
+            clock-names = "intclk";
+        };
+
+        ab8500-pwm-3 {
+            compatible = "stericsson,ab8500-pwm";
+            clocks = <&ab8500_clock AB8500_SYSCLK_INT>;
+            clock-names = "intclk";
+        };
+
+        ab8500-debugfs {
+            compatible = "stericsson,ab8500-debug";
+        };
+
+        codec: ab8500-codec {
+            compatible = "stericsson,ab8500-codec";
+
+            V-AUD-supply = <&ab8500_ldo_audio_reg>;
+            V-AMIC1-supply = <&ab8500_ldo_anamic1_reg>;
+            V-AMIC2-supply = <&ab8500_ldo_anamic2_reg>;
+            V-DMIC-supply = <&ab8500_ldo_dmic_reg>;
+
+            clocks = <&ab8500_clock AB8500_SYSCLK_AUDIO>;
+            clock-names = "audioclk";
+
+            stericsson,earpeice-cmv = <950>; /* Units in mV. */
+        };
+
+        ext_regulators: ab8500-ext-regulators {
+            compatible = "stericsson,ab8500-ext-regulator";
+
+            ab8500_ext1_reg: ab8500_ext1 {
+                regulator-min-microvolt = <1800000>;
+                regulator-max-microvolt = <1800000>;
+                regulator-boot-on;
+                regulator-always-on;
+            };
+
+            ab8500_ext2_reg: ab8500_ext2 {
+                regulator-min-microvolt = <1360000>;
+                regulator-max-microvolt = <1360000>;
+                regulator-boot-on;
+                regulator-always-on;
+            };
+
+            ab8500_ext3_reg: ab8500_ext3 {
+                regulator-min-microvolt = <3400000>;
+                regulator-max-microvolt = <3400000>;
+                regulator-boot-on;
+            };
+        };
+
+        ab8500-regulators {
+            compatible = "stericsson,ab8500-regulator";
+            vin-supply = <&ab8500_ext3_reg>;
+
+            // supplies to the display/camera
+            ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
+                regulator-min-microvolt = <2500000>;
+                regulator-max-microvolt = <2900000>;
+                regulator-boot-on;
+                /* BUG: If turned off MMC will be affected. */
+                regulator-always-on;
+            };
+
+            // supplies to the on-board eMMC
+            ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
+                regulator-min-microvolt = <1100000>;
+                regulator-max-microvolt = <3300000>;
+            };
+
+            // supply for VAUX3; SDcard slots
+            ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
+                regulator-min-microvolt = <1100000>;
+                regulator-max-microvolt = <3300000>;
+            };
+
+            // supply for v-intcore12; VINTCORE12 LDO
+            ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
+            };
+
+            // supply for tvout; gpadc; TVOUT LDO
+            ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
+            };
+
+            // supply for ab8500-vaudio; VAUDIO LDO
+            ab8500_ldo_audio_reg: ab8500_ldo_audio {
+            };
+
+            // supply for v-anamic1 VAMIC1 LDO
+            ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
+            };
+
+            // supply for v-amic2; VAMIC2 LDO; reuse constants for AMIC1
+            ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
+            };
+
+            // supply for v-dmic; VDMIC LDO
+            ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
+            };
+
+            // supply for U8500 CSI/DSI; VANA LDO
+            ab8500_ldo_ana_reg: ab8500_ldo_ana {
+            };
+        };
+    };
diff --git a/Documentation/devicetree/bindings/pinctrl/ste,abx500.txt b/Documentation/devicetree/bindings/pinctrl/ste,abx500.txt
deleted file mode 100644
index 87697420439e..000000000000
--- a/Documentation/devicetree/bindings/pinctrl/ste,abx500.txt
+++ /dev/null
@@ -1,318 +0,0 @@ 
-ST Ericsson abx500 pinmux controller
-
-Required properties:
-- compatible: "stericsson,ab8500-gpio",  "stericsson,ab8540-gpio",
-	      "stericsson,ab8505-gpio", "stericsson,ab9540-gpio",
-
-Please refer to pinctrl-bindings.txt in this directory for details of the
-common pinctrl bindings used by client devices, including the meaning of the
-phrase "pin configuration node".
-
-ST Ericsson's pin configuration nodes use the generic pin multiplexing
-and pin configuration bindings, see pinctrl-bindings.txt
-
-Example board file extract:
-
-&pinctrl_abx500 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&sysclkreq2_default_mode>, <&sysclkreq3_default_mode>, <&gpio3_default_mode>, <&sysclkreq6_default_mode>, <&pwmout1_default_mode>, <&pwmout2_default_mode>, <&pwmout3_default_mode>, <&adi1_default_mode>, <&dmic12_default_mode>, <&dmic34_default_mode>, <&dmic56_default_mode>, <&sysclkreq5_default_mode>, <&batremn_default_mode>, <&service_default_mode>, <&pwrctrl0_default_mode>, <&pwrctrl1_default_mode>, <&pwmextvibra1_default_mode>, <&pwmextvibra2_default_mode>, <&gpio51_default_mode>, <&gpio52_default_mode>, <&gpio53_default_mode>, <&gpio54_default_mode>, <&pdmclkdat_default_mode>;
-
-	sysclkreq2 {
-		sysclkreq2_default_mode: sysclkreq2_default {
-			default_mux {
-				function = "sysclkreq";
-				groups = "sysclkreq2_d_1";
-			};
-			default_cfg {
-				pins = "GPIO1";
-				bias-disable;
-			};
-		};
-	};
-	sysclkreq3 {
-		sysclkreq3_default_mode: sysclkreq3_default {
-			default_mux {
-				function = "sysclkreq";
-				groups = "sysclkreq3_d_1";
-			};
-			default_cfg {
-				pins = "GPIO2";
-				output-low;
-			};
-		};
-	};
-	gpio3 {
-		gpio3_default_mode: gpio3_default {
-			default_mux {
-				function = "gpio";
-				groups = "gpio3_a_1";
-			};
-			default_cfg {
-				pins = "GPIO3";
-				output-low;
-			};
-		};
-	};
-	sysclkreq6 {
-		sysclkreq6_default_mode: sysclkreq6_default {
-			default_mux {
-				function = "sysclkreq";
-				groups = "sysclkreq6_d_1";
-			};
-			default_cfg {
-				pins = "GPIO4";
-				bias-disable;
-			};
-		};
-	};
-	pwmout1 {
-		pwmout1_default_mode: pwmout1_default {
-			default_mux {
-				function = "pwmout";
-				groups = "pwmout1_d_1";
-			};
-			default_cfg {
-				pins = "GPIO14";
-				output-low;
-			};
-		};
-	};
-	pwmout2 {
-		pwmout2_default_mode: pwmout2_default {
-			pwmout2_default_mux {
-				function = "pwmout";
-				groups = "pwmout2_d_1";
-			};
-			pwmout2_default_cfg {
-				pins = "GPIO15";
-				output-low;
-			};
-		};
-	};
-	pwmout3 {
-		pwmout3_default_mode: pwmout3_default {
-			pwmout3_default_mux {
-				function = "pwmout";
-				groups = "pwmout3_d_1";
-			};
-			pwmout3_default_cfg {
-				pins = "GPIO16";
-				output-low;
-			};
-		};
-	};
-	adi1 {
-
-		adi1_default_mode: adi1_default {
-			adi1_default_mux {
-				function = "adi1";
-				groups = "adi1_d_1";
-			};
-			adi1_default_cfg1 {
-				pins = "GPIO17","GPIO19","GPIO20";
-				bias-disable;
-			};
-			adi1_default_cfg2 {
-				pins = "GPIO18";
-				output-low;
-			};
-		};
-	};
-	dmic12 {
-		dmic12_default_mode: dmic12_default {
-			dmic12_default_mux {
-				function = "dmic";
-				groups = "dmic12_d_1";
-			};
-			dmic12_default_cfg1 {
-				pins = "GPIO27";
-				output-low;
-			};
-			dmic12_default_cfg2 {
-				pins = "GPIO28";
-				bias-disable;
-			};
-		};
-	};
-	dmic34 {
-		dmic34_default_mode: dmic34_default {
-			dmic34_default_mux {
-				function = "dmic";
-				groups = "dmic34_d_1";
-			};
-			dmic34_default_cfg1 {
-				pins = "GPIO29";
-				output-low;
-			};
-			dmic34_default_cfg2 {
-				pins = "GPIO30";
-				bias-disable;{
-
-			};
-		};
-	};
-	dmic56 {
-		dmic56_default_mode: dmic56_default {
-			dmic56_default_mux {
-				function = "dmic";
-				groups = "dmic56_d_1";
-			};
-			dmic56_default_cfg1 {
-				pins = "GPIO31";
-				output-low;
-			};
-			dmic56_default_cfg2 {
-				pins = "GPIO32";
-				bias-disable;
-			};
-		};
-	};
-	sysclkreq5 {
-		sysclkreq5_default_mode: sysclkreq5_default {
-			sysclkreq5_default_mux {
-				function = "sysclkreq";
-				groups = "sysclkreq5_d_1";
-			};
-			sysclkreq5_default_cfg {
-				pins = "GPIO42";
-				output-low;
-			};
-		};
-	};
-	batremn {
-		batremn_default_mode: batremn_default {
-			batremn_default_mux {
-				function = "batremn";
-				groups = "batremn_d_1";
-			};
-			batremn_default_cfg {
-				pins = "GPIO43";
-				bias-disable;
-			};
-		};
-	};
-	service {
-		service_default_mode: service_default {
-			service_default_mux {
-				function = "service";
-				groups = "service_d_1";
-			};
-			service_default_cfg {
-				pins = "GPIO44";
-				bias-disable;
-			};
-		};
-	};
-	pwrctrl0 {
-		pwrctrl0_default_mux: pwrctrl0_mux {
-			pwrctrl0_default_mux {
-				function = "pwrctrl";
-				groups = "pwrctrl0_d_1";
-			};
-		};
-		pwrctrl0_default_mode: pwrctrl0_default {
-			pwrctrl0_default_cfg {
-				pins = "GPIO45";
-				bias-disable;
-			};
-		};
-	};
-	pwrctrl1 {
-		pwrctrl1_default_mux: pwrctrl1_mux {
-			pwrctrl1_default_mux {
-				function = "pwrctrl";
-				groups = "pwrctrl1_d_1";
-			};
-		};
-		pwrctrl1_default_mode: pwrctrl1_default {
-			pwrctrl1_default_cfg {
-				pins = "GPIO46";
-				bias-disable;
-			};
-		};
-	};
-	pwmextvibra1 {
-		pwmextvibra1_default_mode: pwmextvibra1_default {
-			pwmextvibra1_default_mux {
-				function = "pwmextvibra";
-				groups = "pwmextvibra1_d_1";
-			};
-			pwmextvibra1_default_cfg {
-				pins = "GPIO47";
-				bias-disable;
-			};
-		};
-	};
-	pwmextvibra2 {
-		pwmextvibra2_default_mode: pwmextvibra2_default {
-			pwmextvibra2_default_mux {
-				function = "pwmextvibra";
-				groups = "pwmextvibra2_d_1";
-			};
-			pwmextvibra1_default_cfg {
-				pins = "GPIO48";
-				bias-disable;
-			};
-		};
-	};
-	gpio51 {
-		gpio51_default_mode: gpio51_default {
-				gpio51_default_mux {
-				function = "gpio";
-				groups = "gpio51_a_1";
-			};
-			gpio51_default_cfg {
-				pins = "GPIO51";
-				output-low;
-			};
-		};
-	};
-	gpio52 {
-		gpio52_default_mode: gpio52_default {
-			gpio52_default_mux {
-				function = "gpio";
-				groups = "gpio52_a_1";
-			};
-			gpio52_default_cfg {
-				pins = "GPIO52";
-				bias-pull-down;
-			};
-		};
-	};
-	gpio53 {
-		gpio53_default_mode: gpio53_default {
-			gpio53_default_mux {
-				function = "gpio";
-				groups = "gpio53_a_1";
-			};
-			gpio53_default_cfg {
-				pins = "GPIO53";
-				bias-pull-down;
-			};
-		};
-	};
-	gpio54 {
-		gpio54_default_mode: gpio54_default {
-			gpio54_default_mux {
-				function = "gpio";
-				groups = "gpio54_a_1";
-			};
-			gpio54_default_cfg {
-				pins = "GPIO54";
-				output-low;
-			};
-		};
-	};
-	pdmclkdat {
-		pdmclkdat_default_mode: pdmclkdat_default {
-			pdmclkdat_default_mux {
-				function = "pdm";
-				groups = "pdmclkdat_d_1";
-			};
-			pdmclkdat_default_cfg {
-				pins = "GPIO55", "GPIO56";
-				bias-disable;
-			};
-		};
-	};
-};
diff --git a/Documentation/devicetree/bindings/power/supply/stericsson,ab8500-battery.txt b/Documentation/devicetree/bindings/power/supply/stericsson,ab8500-battery.txt
deleted file mode 100644
index ee125cb0e46d..000000000000
--- a/Documentation/devicetree/bindings/power/supply/stericsson,ab8500-battery.txt
+++ /dev/null
@@ -1,34 +0,0 @@ 
-AB85000 PMIC contains a node, which contains shared
-information about the battery connected to the PMIC.
-The node has no compatible property.
-
-Properties of this node are:
-
-thermistor-on-batctrl:
-	A boolean value indicating thermistor interface	to battery
-
-	Note:
-	'btemp' and 'batctrl' are the pins interfaced for battery temperature
-	measurement, 'btemp' signal is used when NTC(negative temperature
-	coefficient) resister is interfaced external to battery whereas
-	'batctrl' pin is used when NTC resister is internal to battery.
-
-	Example:
-	ab8500_battery: ab8500_battery {
-		thermistor-on-batctrl;
-	};
-	indicates: NTC resister is internal to battery, 'batctrl' is used
-		for thermal measurement.
-
-	The absence of property 'thermal-on-batctrl' indicates
-	NTC resister is external to battery and  'btemp' signal is used
-	for thermal measurement.
-
-battery-type:
-	This shall be the battery manufacturing technology type,
-	allowed types are:
-		"UNKNOWN" "NiMH" "LION" "LIPO" "LiFe" "NiCd" "LiMn"
-	Example:
-	ab8500_battery: ab8500_battery {
-		stericsson,battery-type = "LIPO";
-	}