[RESEND PATCH v10 1/8] drivers: phy: add generic PHY framework
From: Kishon Vijay Abraham I <hidden>
Date: 2013-07-29 15:31:47
Also in:
linux-fbdev, linux-media, linux-omap, linux-samsung-soc, lkml
On Monday 29 July 2013 08:58 PM, Kamil Debski wrote:
Hi Kishon, A small fix follows inline.quoted
From: linux-media-owner at vger.kernel.org [mailto:linux-media- owner at vger.kernel.org] On Behalf Of Kishon Vijay Abraham I Sent: Friday, July 26, 2013 2:49 PM The PHY framework provides a set of APIs for the PHY drivers to create/destroy a PHY and APIs for the PHY users to obtain a reference to the PHY with or without using phandle. For dt-boot, the PHY drivers should also register *PHY provider* with the framework. PHY drivers should create the PHY by passing id and ops like init, exit, power_on and power_off. This framework is also pm runtime enabled. The documentation for the generic PHY framework is added in Documentation/phy.txt and the documentation for dt binding can be found at Documentation/devicetree/bindings/phy/phy-bindings.txt Cc: Tomasz Figa <redacted> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Kishon Vijay Abraham I <redacted> Acked-by: Felipe Balbi <redacted> Tested-by: Sylwester Nawrocki <s.nawrocki@samsung.com> --- .../devicetree/bindings/phy/phy-bindings.txt | 66 ++ Documentation/phy.txt | 166 +++++ MAINTAINERS | 8 + drivers/Kconfig | 2 + drivers/Makefile | 2 + drivers/phy/Kconfig | 18 + drivers/phy/Makefile | 5 + drivers/phy/phy-core.c | 714 ++++++++++++++++++++ include/linux/phy/phy.h | 270 ++++++++ 9 files changed, 1251 insertions(+) create mode 100644 Documentation/devicetree/bindings/phy/phy- bindings.txt create mode 100644 Documentation/phy.txt create mode 100644 drivers/phy/Kconfig create mode 100644 drivers/phy/Makefile create mode 100644 drivers/phy/phy-core.c create mode 100644 include/linux/phy/phy.h[snip]quoted
diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h new filemode 100644 index 0000000..e444b23--- /dev/null +++ b/include/linux/phy/phy.h@@ -0,0 +1,270 @@[snip]quoted
+struct phy_init_data { + unsigned int num_consumers; + struct phy_consumer *consumers; +}; + +#define PHY_CONSUMER(_dev_name, _port) \ +{ \ + .dev_name = _dev_name, \ + .port = _port, \ +} + +#define to_phy(dev) (container_of((dev), struct phy, dev)) + +#define of_phy_provider_register(dev, xlate) \ + __of_phy_provider_register((dev), THIS_MODULE, (xlate)) + +#define devm_of_phy_provider_register(dev, xlate) \ + __of_phy_provider_register((dev), THIS_MODULE, (xlate))I think this should be: + __devm_of_phy_provider_register((dev), THIS_MODULE, (xlate)) Right?
right.. thanks for spotting this. Regards Kishon