Add binding doc for generic power sequence library.

Signed-off-by: Peter Chen <peter.c...@nxp.com>
Acked-by: Philipp Zabel <p.za...@pengutronix.de>
Acked-by: Rob Herring <r...@kernel.org>
---
 .../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";
+                       reg = <1>;
+
+                       clocks = <&clks IMX6SX_CLK_IPG>;
+                       reset-gpios = <&gpio4 6 GPIO_ACTIVE_LOW>; /* 
ethernet_rst */
+                       reset-duration-us = <15>;
+               };
+       };
+};
-- 
2.7.4

Reply via email to