Thread (12 messages) 12 messages, 4 authors, 2016-01-27

Re: [PATCH V3 1/5] DT: mfd: add device-tree binding doc fro PMIC max77620/max20024

From: Linus Walleij <hidden>
Date: 2016-01-27 09:42:55
Also in: linux-gpio, linux-rtc, lkml

On Thu, Jan 14, 2016 at 12:32 PM, Laxman Dewangan [off-list ref] wrote:
+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.
This is ambitiously custom. Isn't power sequencing a generic problem?
The MMC subsystem has some power sequencing for example.
+Optinal properties:
+       -maxim,active-fps-time-period-us: Active state FPS time period in
+               microseconds.
+       -maxim,suspend-fps-time-period-us: Suspend state FPS time period in
+               microseconds.
Define the "active state" and "suspend state" in the initial paragraph
under FPS so we can understand what these things are.
+       -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.
Is SW software? And EN0 and EN1 two different lines into the PMIC?
In that case describe that somewhere.
+       -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: Boolean, enable sleep when the external control
+                       goes from HIGH to LOW.
+       -maxim,enable-global-lpm: Boolean, enable global LPM when the external
+                       control goes from HIGH to LOW.
First *what* is it that will sleep? The PMIC? The whole system? Or
does this simply mean that this will start the state machine? Elaborate.

This is confusing since for example there is a generic "wakeup-enable;"
property you can set on any device, therfore these things must be very
precisely defined.

What is "external control"? Is that a line into the PMIC?
+    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:
Optional properties under optional properties?
This is getting confusing.

Write "Optional pin configurations"
+                       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.
Thanks for using standardized bindings.
+                       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.

Define closer what an FPS source is. What is the effect on the pin?
+                       - 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.

These two also have to be explained and connected back under the FPS
heading and explained. I guess it is impossible to understand this
without an accurate understanding of the FPS state machine, so provide
such a description in the document.
+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: Tristate, enable/disable low battery DAC.
+                       0 for disable,
+                       1 for enable,
+                       absence will left configuration to default.
+       - maxim,low-battery-shutdown: Tristate, enable/disable low battery
+               shutdown.
+                       0 for disable,
+                       1 for enable,
+                       absence will left configuration to default.
+       - maxim,low-battery-reset: Tristate, enable/disable low battery reset.
+                       0 for disable,
+                       1 for enable,
+                       absence will left configuration to default.
I guess this should be reviewed by the drivers/power maintainers?
Added on the To: line.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help