From: Laxman Dewangan <ldewangan@nvidia.com>
To: robh+dt@kernel.org, pawel.moll@arm.com, mark.rutland@arm.com,
ijc+devicetree@hellion.org.uk, galak@codeaurora.org,
linus.walleij@linaro.org, gnurou@gmail.com, lee.jones@linaro.org,
broonie@kernel.org, a.zummo@towertech.it,
alexandre.belloni@free-electrons.com
Cc: lgirdwood@gmail.com, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org,
rtc-linux@googlegroups.com, swarren@nvidia.com,
treding@nvidia.com, Laxman Dewangan <ldewangan@nvidia.com>
Subject: [PATCH 1/6] DT: mfd: add device-tree binding doc fro PMIC max77620/max20024
Date: Thu, 7 Jan 2016 20:08:39 +0530 [thread overview]
Message-ID: <1452177524-23192-2-git-send-email-ldewangan@nvidia.com> (raw)
In-Reply-To: <1452177524-23192-1-git-send-email-ldewangan@nvidia.com>
The MAXIM PMIC MAX77620 and MAX20024 are power management IC
which supports RTC, GPIO, DCDC/LDO regulators, interrupt,
watchdog etc.
Add DT binding document for the different functionality of
this device.
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
---
Documentation/devicetree/bindings/mfd/max77620.txt | 383 +++++++++++++++++++++
include/dt-bindings/mfd/max77620.h | 38 ++
2 files changed, 421 insertions(+)
create mode 100644 Documentation/devicetree/bindings/mfd/max77620.txt
create mode 100644 include/dt-bindings/mfd/max77620.h
diff --git a/Documentation/devicetree/bindings/mfd/max77620.txt b/Documentation/devicetree/bindings/mfd/max77620.txt
new file mode 100644
index 0000000..09cff4a
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/max77620.txt
@@ -0,0 +1,383 @@
+* MAX77620 Power management IC from Maxim Semiconductor.
+
+Required properties:
+-------------------
+- compatible: Must be one of
+ "maxim,max77620" or
+ "maxim,max20024".
+- reg: I2C device address.
+- interrupt-controller: MAX77620 has internal interrupt controller which
+ takes the interrupt request from internal sub-blocks like RTC,
+ regulators, GPIOs as well as external input.
+- #interrupt-cells: Should be set to 2 for IRQ number and flags.
+ The first cell is the IRQ number. IRQ numbers for different interrupt
+ source of MAX77620 are defined at dt-bindings/mfd/max77620.h
+ The second cell is the flags, encoded as the trigger masks from binding
+ document interrupts.txt, using dt-bindings/irq.
+
+Optional properties:
+-------------------
+This device also supports the power OFF of system.
+Following properties are used for this purpose:
+- system-power-controller: Boolean, This device will be use as
+ system power controller and used for power OFF of system.
+ Host issue necessary command to PMIC.
+
+
+Optional submodule and their properties:
+=======================================
+
+Flexible power sequence configuration
+====================================
+This sub-node configures the Flexible Power Sequnece(FPS) for power ON slot,
+power OFF slot and slot period of the device. Device has 3 FPS as FPS0,
+FPS1 and FPS2. The details of FPS configuration is provided through
+subnode "fps". The details of FPS0, FPS1, FPS2 are provided through the
+child node under this subnodes. The FPS number is provided via reg property.
+
+The property for fps child nodes as:
+Required properties:
+ -reg: FPS number like 0, 1, 2 for FPS0, FPS1 and FPS2 respectively.
+Optinal properties:
+ -maxim,active-fps-time-period: Active state FPS time period.
+ -maxim,suspend-fps-time-period: Suspend state FPS time period.
+ -maxim,fps-enable-input: FPS enable source like EN0, EN1 or SW. The
+ macros are defined on dt-bindings/mfd/max77620.h for
+ different enable source.
+ FPS_EN_SRC_EN0 for EN0 enable source.
+ FPS_EN_SRC_EN1 for En1 enable source.
+ FPS_EN_SRC_SW for SW based control.
+ -maxim,fps-sw-enable: Boolean, applicable if enable input is SW.
+ If this property present then enable the FPS else
+ disable FPS.
+ -maxim,enable-sleep: Enable sleep when the external control goes from
+ HIGH to LOW.
+ -maxim,enable-global-lpm: Enable global LPM when the external control
+ goes from HIGH to LOW.
+
+Pinmux and GPIO:
+===============
+Device has 8 GPIO pins which can be configured as GPIO as well as the
+special IO functions.
+
+Please refer to pinctrl-bindings.txt for details of the common pinctrl
+bindings used by client devices, including the meaning of the phrase
+"pin configuration node".
+
+Following are properties which is needed if GPIO and pinmux functionality
+is required:
+ Required properties:
+ -------------------
+ - gpio-controller: Marks the device node as a GPIO controller.
+ - #gpio-cells: Number of GPIO cells. Refer to binding document
+ gpio/gpio.txt
+
+ Optional properties:
+ --------------------
+ Following properties are require if pin control setting is required
+ at boot.
+ - pinctrl-names: A pinctrl state named "default" be defined, using
+ the bindings in pinctrl/pinctrl-binding.txt.
+ - pinctrl[0...n]: Properties to contain the phandle that refer to
+ different nodes of pin control settings. These nodes
+ represents the pin control setting of state 0 to state n.
+ Each of these nodes contains different subnodes to
+ represents some desired configuration for a list of pins.
+ This configuration can include the mux function to select
+ on those pin(s), and various pin configuration parameters,
+ such as pull-up, open drain.
+
+ Each subnode have following properties:
+ Required properties:
+ - pins: List of pins. Valid values of pins properties
+ are: gpio0, gpio1, gpio2, gpio3, gpio4,
+ gpio5, gpio6, gpio7
+
+ Optional properties:
+ function, drive-push-pull, drive-open-drain,
+ bias-pull-up, bias-pull-down.
+ Definitions are in the pinmux dt binding
+ devicetree/bindings/pinctrl/pinctrl-bindings.txt
+ Absence of properties will leave the configuration
+ on default.
+
+ Valid values for function properties are:
+ gpio, lpm-control-in, fps-out, 32k-out,
+ sd0-dvs-in, sd1-dvs-in, reference-out
+ Theres is also customised property for the GPIO1,
+ GPIO2 and GPIO3.
+ - maxim,active-fps-source: FPS source for the gpios in
+ active state of the GPIO. Valid values are
+ FPS_SRC_0, FPS_SRC_1, FPS_SRC_2 and
+ FPS_SRC_NONE. Absence of this property will
+ leave the pin on default.
+ - maxim,active-fps-power-up-slot: Power up slot on
+ given FPS for acive state.Valid values are 0
+ to 7.
+ - maxim,active-fps-power-down-slot: Power down slot
+ on given FPS for active state. Valid values
+ are 0 t 7.
+ - maxim,suspend-fps-source: Suspend state FPS source.
+ - maxim,suspend-fps-power-down-slot: Suspend state
+ power down slot.
+ - maxim,suspend-fps-power-up-slot: Suspend state power
+ up slot.
+
+Regulators:
+===========
+Device has multiple DCDC(sd[0-3] and LDOs(ldo[0-8]). The node "regulators"
+is require if regulator functionality is needed.
+
+Following are properties of regulator subnode.
+
+ Optional properties:
+ -------------------
+ The input supply of regulators are the optional properties on the
+ regulator node. The input supply of these regulators are provided
+ through following properties:
+ in-sd0-supply: Input supply for SD0, INA-SD0 or INB-SD0 pins.
+ in-sd1-supply: Input supply for SD1.
+ in-sd2-supply: Input supply for SD2.
+ in-sd3-supply: Input supply for SD3.
+ in-ldo0-1-supply: Input supply for LDO0 and LDO1.
+ in-ldo2-supply: Input supply for LDO2.
+ in-ldo3-5-supply: Input supply for LDO3 and LDO5
+ in-ldo4-6-supply: Input supply for LDO4 and LDO6.
+ in-ldo7-8-supply: Input supply for LDO7 and LDO8.
+
+
+ Optional sub nodes for regulators:
+ ---------------------------------
+ The subnodes name is the name of regulator and it must be one of:
+ sd[0-3], ldo[0-8]
+
+ Each sub-node should contain the constraints and initialization
+ information for that regulator. See regulator.txt for a description
+ of standard properties for these sub-nodes.
+ Additional optional custom properties are listed below.
+ maxim,active-fps-source: FPS source. The macros are defined at
+ dt-bindings/mfd/max77620.h
+ maxim,shutdown-fps-source: Same as maxim,fps-source, but it
+ will apply during shutdown of system.
+ maxim,active-fps-power-up-slot: Active state Power up slot for
+ rail on given FPS.
+ maxim,active-fps-power-down-slot: Active state Power down slot
+ for rail on given FPS.
+ maxim,suspend-fps-source: Suspend state FPS source of rail.
+ maxim,suspend-fps-power-up-slot: Suspend state FPS power
+ up slot.
+ maxim,suspend-fps-power-down-slot: Suspend state FPS power
+ down slot.
+ maxim,enable-group-low-power: Enable Group low power mode.
+ maxim,enable-sd0-en2-control: Enable EN2 pincontrol for SD0.
+ This property is only applicable for SD0.
+ maxim,disable-remote-sense-on-suspend: Boolean, disable
+ remote sense on suspend and re-enable on resume.
+ If this property is not there then no change on
+ configuration.
+
+Backup Battery:
+==============
+This sub-node configure charging backup battery of the device. Device
+has support of charging the backup battery. The subnode name is
+"backup-battery".
+
+The property for backup-battery child nodes as:
+Presense of this child node will enable the backup battery charging.
+
+Optinal properties:
+ -maxim,backup-battery-charging-current: Charging current setting.
+ The device supports 50/100/200/400/600/800uA.
+ If this property is unavailable then it will
+ charge with 50uA.
+ -maxim,backup-battery-charging-voltage: Charging Voltage Limit Setting.
+ Device supports 2500000/3000000/3300000/350000uV.
+ Default will be set to 2500mV. The voltage will be roundoff
+ to nearest lower side if other than above is configured.
+ -maxim,backup-battery-output-resister: Output resistor on Ohm.
+ Device supports 100/1000/3000/6000 Ohms.
+
+Low-Battery Monitor:
+==================
+This sub-node configure low battery monitor configuration registers.
+Device has support for low-battery monitor configuration through
+child DT node "low-battery-monitor".
+
+Optinal properties:
+ - maxim,low-battery-dac-enable: Enable low battery DAC.
+ - maxim,low-battery-dac-disable: Disable low battery DAC.
+ - maxim,low-battery-shutdown-enable: Enable low battery shutdown.
+ - maxim,low-battery-shutdown-disable: Disable low battery shutdown.
+ - maxim,low-battery-reset-enable: Enable low battery reset.
+ - maxim,low-battery-reset-disable: Disable low battery reset.
+
+Example:
+--------
+#include <dt-bindings/mfd/max77620.h>
+...
+max77620@3c {
+ compatible = "maxim,max77620";
+ reg = <0x3c>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <0 86 IRQ_TYPE_NONE>;
+
+
+Example:
+--------
+#include <dt-bindings/mfd/max77620.h>
+...
+max77620@3c {
+ compatible = "maxim,max77620";
+ reg = <0x3c>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <0 86 IRQ_TYPE_NONE>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ backup-battery {
+ maxim,backup-battery-charging-current = <100>;
+ maxim,backup-battery-charging-voltage = <3000000>;
+ maxim,backup-battery-output-resister = <100>;
+ };
+
+ fps {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ fps@0 {
+ reg = <0>;
+ maxim,fps-time-period = <100>;
+ maxim,fps-enable-input = <FPS_EN_SRC_EN0>;
+ };
+
+ fps@1 {
+ reg = <1>;
+ maxim,fps-time-period = <100>;
+ maxim,fps-enable-input = <FPS_EN_SRC_EN1>;
+ };
+
+ fps@2 {
+ reg = <2>;
+ maxim,fps-time-period = <100>;
+ maxim,fps-enable-input = <FPS_EN_SRC_SW>;
+ };
+ };
+
+ regulators {
+ in-ldo0-1-supply = <&max77620_sd2>;
+ in-ldo7-8-supply = <&max77620_sd2>;
+
+ max77620_sd0: sd0 {
+ regulator-name = "vdd-core";
+ regulator-min-microvolt = <600000>;
+ regulator-max-microvolt = <1400000>;
+ regulator-boot-on;
+ regulator-always-on;
+ maxim,fps-source = <FPS_SRC_1>;
+ regulator-init-mode = <REGULATOR_MODE_NORMAL>;
+ };
+
+ max77620_sd1: sd1 {
+ regulator-name = "vddio-ddr";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-init-mode = <REGULATOR_MODE_NORMAL>;
+ maxim,fps-source = <FPS_SRC_0>;
+ };
+
+ max77620_sd2: sd2 {
+ regulator-name = "vdd-pre-reg";
+ regulator-min-microvolt = <1350000>;
+ regulator-max-microvolt = <1350000>;
+ maxim,fps-source = <FPS_SRC_1>;
+ };
+
+ max77620_sd3: sd3 {
+ regulator-name = "vdd-1v8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ regulator-boot-on;
+ maxim,fps-source = <FPS_SRC_0>;
+ regulator-init-mode = <REGULATOR_MODE_NORMAL>;
+ };
+
+ max77620_ldo0: ldo0 {
+ regulator-name = "avdd-sys";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-always-on;
+ regulator-boot-on;
+ maxim,fps-source = <FPS_SRC_NONE>;
+ };
+
+ max77620_ldo1: ldo1 {
+ regulator-name = "vdd-pex";
+ regulator-min-microvolt = <1050000>;
+ regulator-max-microvolt = <1050000>;
+ maxim,fps-source = <FPS_SRC_NONE>;
+ };
+
+ max77620_ldo2: ldo2 {
+ regulator-name = "vddio-sdmmc3";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ maxim,fps-source = <FPS_SRC_NONE>;
+ };
+
+ max77620_ldo3: ldo3 {
+ regulator-name = "vdd-cam-hv";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ maxim,fps-source = <FPS_SRC_NONE>;
+ };
+
+ max77620_ldo4: ldo4 {
+ regulator-name = "vdd-rtc";
+ regulator-min-microvolt = <1250000>;
+ regulator-max-microvolt = <1250000>;
+ regulator-always-on;
+ regulator-boot-on;
+ maxim,fps-source = <FPS_SRC_0>;
+ };
+
+ max77620_ldo5: ldo5 {
+ regulator-name = "avdd-ts-hv";
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+ maxim,fps-source = <FPS_SRC_NONE>;
+ };
+
+ max77620_ldo6: ldo6 {
+ regulator-name = "vdd-ts";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ regulator-boot-on;
+ maxim,fps-source = <FPS_SRC_NONE>;
+ };
+
+ max77620_ldo7: ldo7 {
+ regulator-name = "vdd-gen-pll-edp";
+ regulator-min-microvolt = <1050000>;
+ regulator-max-microvolt = <1050000>;
+ regulator-always-on;
+ regulator-boot-on;
+ maxim,fps-source = <FPS_SRC_1>;
+ };
+
+ max77620_ldo8: ldo8 {
+ regulator-name = "vdd-hdmi-dp";
+ regulator-min-microvolt = <1050000>;
+ regulator-max-microvolt = <1050000>;
+ maxim,fps-source = <FPS_SRC_NONE>;
+ };
+ };
+};
diff --git a/include/dt-bindings/mfd/max77620.h b/include/dt-bindings/mfd/max77620.h
new file mode 100644
index 0000000..8423d1d
--- /dev/null
+++ b/include/dt-bindings/mfd/max77620.h
@@ -0,0 +1,38 @@
+/*
+ * This header provides macros for MAXIM MAX77620 device bindings.
+ *
+ * Copyright (c) 2016, NVIDIA Corporation.
+ *
+ * Author: Laxman Dewangan <ldewangan@nvidia.com>
+ *
+ */
+
+#ifndef _DT_BINDINGS_MFD_MAX77620_H
+#define _DT_BINDINGS_MFD_MAX77620_H
+
+/* MAX77620 interrupts */
+#define MAX77620_IRQ_TOP_GLBL 0 /* Low-Battery */
+#define MAX77620_IRQ_TOP_SD 1 /* SD power fail */
+#define MAX77620_IRQ_TOP_LDO 2 /* LDO power fail */
+#define MAX77620_IRQ_TOP_GPIO 3 /* GPIO internal int to MAX77620 */
+#define MAX77620_IRQ_TOP_RTC 4 /* RTC */
+#define MAX77620_IRQ_TOP_32K 5 /* 32kHz oscillator */
+#define MAX77620_IRQ_TOP_ONOFF 6 /* ON/OFF oscillator */
+#define MAX77620_IRQ_LBT_MBATLOW 7 /* Thermal alarm status, > 120C */
+#define MAX77620_IRQ_LBT_TJALRM1 8 /* Thermal alarm status, > 120C */
+#define MAX77620_IRQ_LBT_TJALRM2 9 /* Thermal alarm status, > 140C */
+
+/* FPS enable -inputs */
+#define FPS_EN_SRC_EN0 0
+#define FPS_EN_SRC_EN1 1
+#define FPS_EN_SRC_SW 2
+#define FPS_EN_SRC_RSVD 3
+
+/* FPS source */
+#define FPS_SRC_0 0
+#define FPS_SRC_1 1
+#define FPS_SRC_2 2
+#define FPS_SRC_NONE 3
+#define FPS_SRC_DEF 4
+
+#endif
--
2.1.4
next prev parent reply other threads:[~2016-01-07 14:49 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-07 14:38 [PATCH 0/6] Add support for MAXIM MAX77620/MAX20024 PMIC Laxman Dewangan
2016-01-07 14:38 ` Laxman Dewangan [this message]
2016-01-07 23:12 ` [PATCH 1/6] DT: mfd: add device-tree binding doc fro PMIC max77620/max20024 Rob Herring
2016-01-08 6:06 ` Laxman Dewangan
2016-01-08 14:19 ` Rob Herring
2016-01-07 14:38 ` [PATCH 2/6] mfd: max77620: add core driver for MAX77620/MAX20024 Laxman Dewangan
2016-01-07 15:56 ` kbuild test robot
2016-01-11 5:48 ` Lee Jones
2016-01-07 15:56 ` [PATCH] mfd: max77620: fix platform_no_drv_owner.cocci warnings kbuild test robot
2016-01-08 1:35 ` [rtc-linux] [PATCH 2/6] mfd: max77620: add core driver for MAX77620/MAX20024 Krzysztof Kozlowski
[not found] ` <CAJKOXPfa0jjRWE6LKvNmwCRcG9Es7=36_03kTqCx-aB1wENx0g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-01-08 9:16 ` Laxman Dewangan
2016-01-08 13:14 ` Krzysztof Kozlowski
2016-01-08 13:19 ` Laxman Dewangan
2016-01-08 13:32 ` Krzysztof Kozlowski
2016-01-11 5:46 ` Lee Jones
2016-01-11 6:26 ` Krzysztof Kozlowski
2016-01-11 9:05 ` Lee Jones
2016-01-07 14:38 ` [PATCH 3/6] pinctrl: max77620: add pincontrol " Laxman Dewangan
2016-01-07 14:38 ` [PATCH 4/6] gpio: max77620: add gpio " Laxman Dewangan
2016-01-07 14:38 ` [PATCH 5/6] rtc: max77620: add support for max77620/max20024 RTC driver Laxman Dewangan
2016-01-08 1:07 ` Linux Kernel
2016-01-11 5:46 ` Lee Jones
2016-01-14 9:06 ` Linus Walleij
2016-01-08 2:03 ` [rtc-linux] " Krzysztof Kozlowski
2016-01-08 10:20 ` Laxman Dewangan
2016-01-08 12:51 ` Mark Brown
2016-01-08 13:04 ` Laxman Dewangan
2016-01-08 13:36 ` Mark Brown
2016-01-08 13:36 ` Laxman Dewangan
2016-01-11 13:17 ` Laxman Dewangan
2016-01-11 16:04 ` Alexandre Belloni
2016-01-11 17:07 ` Laxman Dewangan
2016-01-12 0:13 ` Krzysztof Kozlowski
2016-01-12 2:32 ` Laxman Dewangan
2016-01-12 3:51 ` Krzysztof Kozlowski
2016-01-08 13:05 ` Krzysztof Kozlowski
[not found] ` <568FB423.7030108-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2016-01-08 13:13 ` Laxman Dewangan
2016-01-07 14:38 ` [PATCH 6/6] regulator: max77620: add regulator driver for max77620/max20024 Laxman Dewangan
2016-01-10 12:40 ` Mark Brown
[not found] ` <20160110124014.GZ6588-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2016-01-11 10:16 ` Laxman Dewangan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1452177524-23192-2-git-send-email-ldewangan@nvidia.com \
--to=ldewangan@nvidia.com \
--cc=a.zummo@towertech.it \
--cc=alexandre.belloni@free-electrons.com \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=galak@codeaurora.org \
--cc=gnurou@gmail.com \
--cc=ijc+devicetree@hellion.org.uk \
--cc=lee.jones@linaro.org \
--cc=lgirdwood@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=pawel.moll@arm.com \
--cc=robh+dt@kernel.org \
--cc=rtc-linux@googlegroups.com \
--cc=swarren@nvidia.com \
--cc=treding@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).