Re: [PATCH v6 1/8] binding-doc: power: pwrseq-generic: add binding doc for generic power sequence library

From: Peter Chen
Date: Thu Sep 01 2016 - 21:11:19 EST


On Thu, Sep 01, 2016 at 01:33:22PM +0530, Vaibhav Hiremath wrote:
>
>
> On Monday 15 August 2016 02:43 PM, Peter Chen wrote:
> >Add binding doc for generic power sequence library.
> >
> >Signed-off-by: Peter Chen <peter.chen@xxxxxxx>
> >Acked-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
> >Acked-by: Rob Herring <robh@xxxxxxxxxx>
> >---
> > .../bindings/power/pwrseq/pwrseq-generic.txt | 48 ++++++++++++++++++++++
> > 1 file changed, 48 insertions(+)
> > create mode 100644 Documentation/devicetree/bindings/power/pwrseq/pwrseq-generic.txt
> >
> >diff --git a/Documentation/devicetree/bindings/power/pwrseq/pwrseq-generic.txt b/Documentation/devicetree/bindings/power/pwrseq/pwrseq-generic.txt
> >new file mode 100644
> >index 0000000..ebf0d47
> >--- /dev/null
> >+++ b/Documentation/devicetree/bindings/power/pwrseq/pwrseq-generic.txt
> >@@ -0,0 +1,48 @@
> >+The generic power sequence library
> >+
> >+Some hard-wired devices (eg USB/MMC) need to do power sequence before
> >+the device can be enumerated on the bus, the typical power sequence
> >+like: enable USB PHY clock, toggle reset pin, etc. But current
> >+Linux device driver lacks of such code to do it, it may cause some
> >+hard-wired devices works abnormal or can't be recognized by
> >+controller at all. The power sequence will be done before this device
> >+can be found at the bus.
> >+
> >+The power sequence properties is under the device node.
> >+
> >+Optional properties:
> >+- clocks: the input clocks for device.
> >+- reset-gpios: Should specify the GPIO for reset.
> >+- reset-duration-us: the duration in microsecond for assert reset signal.
> >+
> >+Below is the example of USB power sequence properties on USB device
> >+nodes which have two level USB hubs.
> >+
> >+&usbotg1 {
> >+ vbus-supply = <&reg_usb_otg1_vbus>;
> >+ pinctrl-names = "default";
> >+ pinctrl-0 = <&pinctrl_usb_otg1_id>;
> >+ status = "okay";
> >+
> >+ #address-cells = <1>;
> >+ #size-cells = <0>;
> >+ genesys: hub@1 {
> >+ compatible = "usb5e3,608";
> >+ reg = <1>;
> >+
> >+ clocks = <&clks IMX6SX_CLK_CKO>;
> >+ reset-gpios = <&gpio4 5 GPIO_ACTIVE_LOW>; /* hub reset pin */
> >+ reset-duration-us = <10>;
> >+
> >+ #address-cells = <1>;
> >+ #size-cells = <0>;
> >+ asix: ethernet@1 {
> >+ compatible = "usbb95,1708";
>
> So I assume, with our recent discussion and the change
> we are proposing, the library would have some knowledge
> about this compatible string, right?

Yes

>
> what I was asking on other email was, how are you connecting
> multiple power sequence libraries to their respective consumers ?
>

The consumers has its of_node, then it can find related power sequence
library according to compatible string.

--

Best Regards,
Peter Chen