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

From: [email-masked] (Peter Chen)
Date: Fri, 2 Sep 2016 09:00:30 +0800

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 <[email-masked]>
> >Acked-by: Philipp Zabel <[email-masked]>
> >Acked-by: Rob Herring <[email-masked]>
> >---
> >  .../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 at 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 at 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