diff mbox

[1/2] phy: Group vendor specific phy drivers

Message ID 1459510156-9147-1-git-send-email-gautam.vivek@samsung.com (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Vivek Gautam April 1, 2016, 11:29 a.m. UTC
Adding vendor specific directories in phy to group
phy drivers under their respective vendor umbrella.

Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
---

With growing number of phy drivers, it makes sense to
group these drivers under their respective vendor/platform
umbrella directory.

Build-tested 'multi_v7_defconfig'.

 drivers/phy/Kconfig                               | 386 +---------------------
 drivers/phy/Makefile                              |  57 +---
 drivers/phy/bcom/Kconfig                          |  27 ++
 drivers/phy/bcom/Makefile                         |   3 +
 drivers/phy/{ => bcom}/phy-bcm-cygnus-pcie.c      |   0
 drivers/phy/{ => bcom}/phy-bcm-kona-usb2.c        |   0
 drivers/phy/{ => bcom}/phy-brcmstb-sata.c         |   0
 drivers/phy/hisi/Kconfig                          |  20 ++
 drivers/phy/hisi/Makefile                         |   2 +
 drivers/phy/{ => hisi}/phy-hi6220-usb.c           |   0
 drivers/phy/{ => hisi}/phy-hix5hd2-sata.c         |   0
 drivers/phy/marvell/Kconfig                       |  50 +++
 drivers/phy/marvell/Makefile                      |   6 +
 drivers/phy/{ => marvell}/phy-armada375-usb2.c    |   0
 drivers/phy/{ => marvell}/phy-berlin-sata.c       |   0
 drivers/phy/{ => marvell}/phy-berlin-usb.c        |   0
 drivers/phy/{ => marvell}/phy-mvebu-sata.c        |   0
 drivers/phy/{ => marvell}/phy-pxa-28nm-hsic.c     |   0
 drivers/phy/{ => marvell}/phy-pxa-28nm-usb2.c     |   0
 drivers/phy/qcom/Kconfig                          |  23 ++
 drivers/phy/qcom/Makefile                         |   5 +
 drivers/phy/{ => qcom}/phy-qcom-apq8064-sata.c    |   0
 drivers/phy/{ => qcom}/phy-qcom-ipq806x-sata.c    |   0
 drivers/phy/{ => qcom}/phy-qcom-ufs-i.h           |   0
 drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.c    |   0
 drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.h    |   0
 drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.c    |   0
 drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.h    |   0
 drivers/phy/{ => qcom}/phy-qcom-ufs.c             |   0
 drivers/phy/rcar/Kconfig                          |  16 +
 drivers/phy/rcar/Makefile                         |   2 +
 drivers/phy/{ => rcar}/phy-rcar-gen2.c            |   0
 drivers/phy/{ => rcar}/phy-rcar-gen3-usb2.c       |   0
 drivers/phy/rockchip/Kconfig                      |  23 ++
 drivers/phy/rockchip/Makefile                     |   3 +
 drivers/phy/{ => rockchip}/phy-rockchip-dp.c      |   0
 drivers/phy/{ => rockchip}/phy-rockchip-emmc.c    |   0
 drivers/phy/{ => rockchip}/phy-rockchip-usb.c     |   0
 drivers/phy/samsung/Kconfig                       |  87 +++++
 drivers/phy/samsung/Makefile                      |  10 +
 drivers/phy/{ => samsung}/phy-exynos-dp-video.c   |   0
 drivers/phy/{ => samsung}/phy-exynos-mipi-video.c |   0
 drivers/phy/{ => samsung}/phy-exynos4210-usb2.c   |   0
 drivers/phy/{ => samsung}/phy-exynos4x12-usb2.c   |   0
 drivers/phy/{ => samsung}/phy-exynos5-usbdrd.c    |   0
 drivers/phy/{ => samsung}/phy-exynos5250-sata.c   |   0
 drivers/phy/{ => samsung}/phy-exynos5250-usb2.c   |   0
 drivers/phy/{ => samsung}/phy-s5pv210-usb2.c      |   0
 drivers/phy/{ => samsung}/phy-samsung-usb2.c      |   0
 drivers/phy/{ => samsung}/phy-samsung-usb2.h      |   0
 drivers/phy/st/Kconfig                            |  51 +++
 drivers/phy/st/Makefile                           |   6 +
 drivers/phy/{ => st}/phy-miphy28lp.c              |   0
 drivers/phy/{ => st}/phy-miphy365x.c              |   0
 drivers/phy/{ => st}/phy-spear1310-miphy.c        |   0
 drivers/phy/{ => st}/phy-spear1340-miphy.c        |   0
 drivers/phy/{ => st}/phy-stih407-usb.c            |   0
 drivers/phy/{ => st}/phy-stih41x-usb.c            |   0
 drivers/phy/sunxi/Kconfig                         |  28 ++
 drivers/phy/sunxi/Makefile                        |   2 +
 drivers/phy/{ => sunxi}/phy-sun4i-usb.c           |   0
 drivers/phy/{ => sunxi}/phy-sun9i-usb.c           |   0
 drivers/phy/ti/Kconfig                            |  67 ++++
 drivers/phy/ti/Makefile                           |   6 +
 drivers/phy/{ => ti}/phy-dm816x-usb.c             |   0
 drivers/phy/{ => ti}/phy-omap-control.c           |   0
 drivers/phy/{ => ti}/phy-omap-usb2.c              |   0
 drivers/phy/{ => ti}/phy-ti-pipe3.c               |   0
 drivers/phy/{ => ti}/phy-tusb1210.c               |   0
 drivers/phy/{ => ti}/phy-twl4030-usb.c            |   0
 drivers/phy/{ => ti}/ulpi_phy.h                   |   0
 71 files changed, 464 insertions(+), 416 deletions(-)
 create mode 100644 drivers/phy/bcom/Kconfig
 create mode 100644 drivers/phy/bcom/Makefile
 rename drivers/phy/{ => bcom}/phy-bcm-cygnus-pcie.c (100%)
 rename drivers/phy/{ => bcom}/phy-bcm-kona-usb2.c (100%)
 rename drivers/phy/{ => bcom}/phy-brcmstb-sata.c (100%)
 create mode 100644 drivers/phy/hisi/Kconfig
 create mode 100644 drivers/phy/hisi/Makefile
 rename drivers/phy/{ => hisi}/phy-hi6220-usb.c (100%)
 rename drivers/phy/{ => hisi}/phy-hix5hd2-sata.c (100%)
 create mode 100644 drivers/phy/marvell/Kconfig
 create mode 100644 drivers/phy/marvell/Makefile
 rename drivers/phy/{ => marvell}/phy-armada375-usb2.c (100%)
 rename drivers/phy/{ => marvell}/phy-berlin-sata.c (100%)
 rename drivers/phy/{ => marvell}/phy-berlin-usb.c (100%)
 rename drivers/phy/{ => marvell}/phy-mvebu-sata.c (100%)
 rename drivers/phy/{ => marvell}/phy-pxa-28nm-hsic.c (100%)
 rename drivers/phy/{ => marvell}/phy-pxa-28nm-usb2.c (100%)
 create mode 100644 drivers/phy/qcom/Kconfig
 create mode 100644 drivers/phy/qcom/Makefile
 rename drivers/phy/{ => qcom}/phy-qcom-apq8064-sata.c (100%)
 rename drivers/phy/{ => qcom}/phy-qcom-ipq806x-sata.c (100%)
 rename drivers/phy/{ => qcom}/phy-qcom-ufs-i.h (100%)
 rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.c (100%)
 rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.h (100%)
 rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.c (100%)
 rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.h (100%)
 rename drivers/phy/{ => qcom}/phy-qcom-ufs.c (100%)
 create mode 100644 drivers/phy/rcar/Kconfig
 create mode 100644 drivers/phy/rcar/Makefile
 rename drivers/phy/{ => rcar}/phy-rcar-gen2.c (100%)
 rename drivers/phy/{ => rcar}/phy-rcar-gen3-usb2.c (100%)
 create mode 100644 drivers/phy/rockchip/Kconfig
 create mode 100644 drivers/phy/rockchip/Makefile
 rename drivers/phy/{ => rockchip}/phy-rockchip-dp.c (100%)
 rename drivers/phy/{ => rockchip}/phy-rockchip-emmc.c (100%)
 rename drivers/phy/{ => rockchip}/phy-rockchip-usb.c (100%)
 create mode 100644 drivers/phy/samsung/Kconfig
 create mode 100644 drivers/phy/samsung/Makefile
 rename drivers/phy/{ => samsung}/phy-exynos-dp-video.c (100%)
 rename drivers/phy/{ => samsung}/phy-exynos-mipi-video.c (100%)
 rename drivers/phy/{ => samsung}/phy-exynos4210-usb2.c (100%)
 rename drivers/phy/{ => samsung}/phy-exynos4x12-usb2.c (100%)
 rename drivers/phy/{ => samsung}/phy-exynos5-usbdrd.c (100%)
 rename drivers/phy/{ => samsung}/phy-exynos5250-sata.c (100%)
 rename drivers/phy/{ => samsung}/phy-exynos5250-usb2.c (100%)
 rename drivers/phy/{ => samsung}/phy-s5pv210-usb2.c (100%)
 rename drivers/phy/{ => samsung}/phy-samsung-usb2.c (100%)
 rename drivers/phy/{ => samsung}/phy-samsung-usb2.h (100%)
 create mode 100644 drivers/phy/st/Kconfig
 create mode 100644 drivers/phy/st/Makefile
 rename drivers/phy/{ => st}/phy-miphy28lp.c (100%)
 rename drivers/phy/{ => st}/phy-miphy365x.c (100%)
 rename drivers/phy/{ => st}/phy-spear1310-miphy.c (100%)
 rename drivers/phy/{ => st}/phy-spear1340-miphy.c (100%)
 rename drivers/phy/{ => st}/phy-stih407-usb.c (100%)
 rename drivers/phy/{ => st}/phy-stih41x-usb.c (100%)
 create mode 100644 drivers/phy/sunxi/Kconfig
 create mode 100644 drivers/phy/sunxi/Makefile
 rename drivers/phy/{ => sunxi}/phy-sun4i-usb.c (100%)
 rename drivers/phy/{ => sunxi}/phy-sun9i-usb.c (100%)
 create mode 100644 drivers/phy/ti/Kconfig
 create mode 100644 drivers/phy/ti/Makefile
 rename drivers/phy/{ => ti}/phy-dm816x-usb.c (100%)
 rename drivers/phy/{ => ti}/phy-omap-control.c (100%)
 rename drivers/phy/{ => ti}/phy-omap-usb2.c (100%)
 rename drivers/phy/{ => ti}/phy-ti-pipe3.c (100%)
 rename drivers/phy/{ => ti}/phy-tusb1210.c (100%)
 rename drivers/phy/{ => ti}/phy-twl4030-usb.c (100%)
 rename drivers/phy/{ => ti}/ulpi_phy.h (100%)

diff --git a/drivers/phy/phy-dm816x-usb.c b/drivers/phy/ti/phy-dm816x-usb.c
similarity index 100%
rename from drivers/phy/phy-dm816x-usb.c
rename to drivers/phy/ti/phy-dm816x-usb.c
diff --git a/drivers/phy/phy-omap-control.c b/drivers/phy/ti/phy-omap-control.c
similarity index 100%
rename from drivers/phy/phy-omap-control.c
rename to drivers/phy/ti/phy-omap-control.c
diff --git a/drivers/phy/phy-omap-usb2.c b/drivers/phy/ti/phy-omap-usb2.c
similarity index 100%
rename from drivers/phy/phy-omap-usb2.c
rename to drivers/phy/ti/phy-omap-usb2.c
diff --git a/drivers/phy/phy-ti-pipe3.c b/drivers/phy/ti/phy-ti-pipe3.c
similarity index 100%
rename from drivers/phy/phy-ti-pipe3.c
rename to drivers/phy/ti/phy-ti-pipe3.c
diff --git a/drivers/phy/phy-tusb1210.c b/drivers/phy/ti/phy-tusb1210.c
similarity index 100%
rename from drivers/phy/phy-tusb1210.c
rename to drivers/phy/ti/phy-tusb1210.c
diff --git a/drivers/phy/phy-twl4030-usb.c b/drivers/phy/ti/phy-twl4030-usb.c
similarity index 100%
rename from drivers/phy/phy-twl4030-usb.c
rename to drivers/phy/ti/phy-twl4030-usb.c
diff --git a/drivers/phy/ulpi_phy.h b/drivers/phy/ti/ulpi_phy.h
similarity index 100%
rename from drivers/phy/ulpi_phy.h
rename to drivers/phy/ti/ulpi_phy.h

Comments

Viresh Kumar April 1, 2016, 11:39 a.m. UTC | #1
On 01-04-16, 16:59, Vivek Gautam wrote:
> Adding vendor specific directories in phy to group
> phy drivers under their respective vendor umbrella.
> 
> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
> ---
>  drivers/phy/{ => st}/phy-spear1310-miphy.c        |   0
>  drivers/phy/{ => st}/phy-spear1340-miphy.c        |   0
>  rename drivers/phy/{ => st}/phy-spear1310-miphy.c (100%)
>  rename drivers/phy/{ => st}/phy-spear1340-miphy.c (100%)
> 

Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Maxime Ripard April 1, 2016, 11:42 a.m. UTC | #2
Hi,

On Fri, Apr 01, 2016 at 04:59:15PM +0530, Vivek Gautam wrote:
>  create mode 100644 drivers/phy/sunxi/Kconfig
>  create mode 100644 drivers/phy/sunxi/Makefile
>  rename drivers/phy/{ => sunxi}/phy-sun4i-usb.c (100%)
>  rename drivers/phy/{ => sunxi}/phy-sun9i-usb.c (100%)

That would be allwinner in this case, sunxi is the SoC family
Allwinner produces.

Maxime
Vivek Gautam April 1, 2016, 12:51 p.m. UTC | #3
Hi,


On Fri, Apr 1, 2016 at 4:42 AM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> Hi,
>
> On Fri, Apr 01, 2016 at 04:59:15PM +0530, Vivek Gautam wrote:
>>  create mode 100644 drivers/phy/sunxi/Kconfig
>>  create mode 100644 drivers/phy/sunxi/Makefile
>>  rename drivers/phy/{ => sunxi}/phy-sun4i-usb.c (100%)
>>  rename drivers/phy/{ => sunxi}/phy-sun9i-usb.c (100%)
>
> That would be allwinner in this case, sunxi is the SoC family
> Allwinner produces.

Sure, will change this.
I will change rcar --> renesas too. That should make the directory
names homogeneous (vendor-name).
Thanks for reviewing.

>
> Maxime
>
> --
> Maxime Ripard, Free Electrons
> Embedded Linux, Kernel and Android engineering
> http://free-electrons.com
Vivek Gautam April 1, 2016, 12:52 p.m. UTC | #4
On Fri, Apr 1, 2016 at 4:39 AM, Viresh Kumar <viresh.kumar@linaro.org> wrote:
> On 01-04-16, 16:59, Vivek Gautam wrote:
>> Adding vendor specific directories in phy to group
>> phy drivers under their respective vendor umbrella.
>>
>> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
>> ---
>>  drivers/phy/{ => st}/phy-spear1310-miphy.c        |   0
>>  drivers/phy/{ => st}/phy-spear1340-miphy.c        |   0
>>  rename drivers/phy/{ => st}/phy-spear1310-miphy.c (100%)
>>  rename drivers/phy/{ => st}/phy-spear1340-miphy.c (100%)
>>
>
> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Thanks Viresh.

>
> --
> viresh
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
Kishon Vijay Abraham I April 1, 2016, 1:05 p.m. UTC | #5
Hi,

On Friday 01 April 2016 04:59 PM, Vivek Gautam wrote:
> Adding vendor specific directories in phy to group
> phy drivers under their respective vendor umbrella.
> 
> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
> ---
> 
> With growing number of phy drivers, it makes sense to
> group these drivers under their respective vendor/platform
> umbrella directory.
> 
> Build-tested 'multi_v7_defconfig'.
> 
>  drivers/phy/Kconfig                               | 386 +---------------------
>  drivers/phy/Makefile                              |  57 +---
>  drivers/phy/bcom/Kconfig                          |  27 ++
>  drivers/phy/bcom/Makefile                         |   3 +
>  drivers/phy/{ => bcom}/phy-bcm-cygnus-pcie.c      |   0
>  drivers/phy/{ => bcom}/phy-bcm-kona-usb2.c        |   0
>  drivers/phy/{ => bcom}/phy-brcmstb-sata.c         |   0
>  drivers/phy/hisi/Kconfig                          |  20 ++
>  drivers/phy/hisi/Makefile                         |   2 +
>  drivers/phy/{ => hisi}/phy-hi6220-usb.c           |   0
>  drivers/phy/{ => hisi}/phy-hix5hd2-sata.c         |   0
>  drivers/phy/marvell/Kconfig                       |  50 +++
>  drivers/phy/marvell/Makefile                      |   6 +
>  drivers/phy/{ => marvell}/phy-armada375-usb2.c    |   0
>  drivers/phy/{ => marvell}/phy-berlin-sata.c       |   0
>  drivers/phy/{ => marvell}/phy-berlin-usb.c        |   0
>  drivers/phy/{ => marvell}/phy-mvebu-sata.c        |   0
>  drivers/phy/{ => marvell}/phy-pxa-28nm-hsic.c     |   0
>  drivers/phy/{ => marvell}/phy-pxa-28nm-usb2.c     |   0
>  drivers/phy/qcom/Kconfig                          |  23 ++
>  drivers/phy/qcom/Makefile                         |   5 +
>  drivers/phy/{ => qcom}/phy-qcom-apq8064-sata.c    |   0
>  drivers/phy/{ => qcom}/phy-qcom-ipq806x-sata.c    |   0
>  drivers/phy/{ => qcom}/phy-qcom-ufs-i.h           |   0
>  drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.c    |   0
>  drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.h    |   0
>  drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.c    |   0
>  drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.h    |   0
>  drivers/phy/{ => qcom}/phy-qcom-ufs.c             |   0
>  drivers/phy/rcar/Kconfig                          |  16 +
>  drivers/phy/rcar/Makefile                         |   2 +
>  drivers/phy/{ => rcar}/phy-rcar-gen2.c            |   0
>  drivers/phy/{ => rcar}/phy-rcar-gen3-usb2.c       |   0
>  drivers/phy/rockchip/Kconfig                      |  23 ++
>  drivers/phy/rockchip/Makefile                     |   3 +
>  drivers/phy/{ => rockchip}/phy-rockchip-dp.c      |   0
>  drivers/phy/{ => rockchip}/phy-rockchip-emmc.c    |   0
>  drivers/phy/{ => rockchip}/phy-rockchip-usb.c     |   0
>  drivers/phy/samsung/Kconfig                       |  87 +++++
>  drivers/phy/samsung/Makefile                      |  10 +
>  drivers/phy/{ => samsung}/phy-exynos-dp-video.c   |   0
>  drivers/phy/{ => samsung}/phy-exynos-mipi-video.c |   0
>  drivers/phy/{ => samsung}/phy-exynos4210-usb2.c   |   0
>  drivers/phy/{ => samsung}/phy-exynos4x12-usb2.c   |   0
>  drivers/phy/{ => samsung}/phy-exynos5-usbdrd.c    |   0
>  drivers/phy/{ => samsung}/phy-exynos5250-sata.c   |   0
>  drivers/phy/{ => samsung}/phy-exynos5250-usb2.c   |   0
>  drivers/phy/{ => samsung}/phy-s5pv210-usb2.c      |   0
>  drivers/phy/{ => samsung}/phy-samsung-usb2.c      |   0
>  drivers/phy/{ => samsung}/phy-samsung-usb2.h      |   0
>  drivers/phy/st/Kconfig                            |  51 +++
>  drivers/phy/st/Makefile                           |   6 +
>  drivers/phy/{ => st}/phy-miphy28lp.c              |   0
>  drivers/phy/{ => st}/phy-miphy365x.c              |   0
>  drivers/phy/{ => st}/phy-spear1310-miphy.c        |   0
>  drivers/phy/{ => st}/phy-spear1340-miphy.c        |   0
>  drivers/phy/{ => st}/phy-stih407-usb.c            |   0
>  drivers/phy/{ => st}/phy-stih41x-usb.c            |   0
>  drivers/phy/sunxi/Kconfig                         |  28 ++
>  drivers/phy/sunxi/Makefile                        |   2 +
>  drivers/phy/{ => sunxi}/phy-sun4i-usb.c           |   0
>  drivers/phy/{ => sunxi}/phy-sun9i-usb.c           |   0
>  drivers/phy/ti/Kconfig                            |  67 ++++
>  drivers/phy/ti/Makefile                           |   6 +
>  drivers/phy/{ => ti}/phy-dm816x-usb.c             |   0
>  drivers/phy/{ => ti}/phy-omap-control.c           |   0
>  drivers/phy/{ => ti}/phy-omap-usb2.c              |   0
>  drivers/phy/{ => ti}/phy-ti-pipe3.c               |   0
>  drivers/phy/{ => ti}/phy-tusb1210.c               |   0
>  drivers/phy/{ => ti}/phy-twl4030-usb.c            |   0
>  drivers/phy/{ => ti}/ulpi_phy.h                   |   0

ulpi_phy.h is not specific to TI though at this point tusb1210 is the only ULPI
driver.
>  71 files changed, 464 insertions(+), 416 deletions(-)
>  create mode 100644 drivers/phy/bcom/Kconfig
>  create mode 100644 drivers/phy/bcom/Makefile
>  rename drivers/phy/{ => bcom}/phy-bcm-cygnus-pcie.c (100%)
>  rename drivers/phy/{ => bcom}/phy-bcm-kona-usb2.c (100%)
>  rename drivers/phy/{ => bcom}/phy-brcmstb-sata.c (100%)
>  create mode 100644 drivers/phy/hisi/Kconfig
>  create mode 100644 drivers/phy/hisi/Makefile
>  rename drivers/phy/{ => hisi}/phy-hi6220-usb.c (100%)
>  rename drivers/phy/{ => hisi}/phy-hix5hd2-sata.c (100%)
>  create mode 100644 drivers/phy/marvell/Kconfig
>  create mode 100644 drivers/phy/marvell/Makefile
>  rename drivers/phy/{ => marvell}/phy-armada375-usb2.c (100%)
>  rename drivers/phy/{ => marvell}/phy-berlin-sata.c (100%)
>  rename drivers/phy/{ => marvell}/phy-berlin-usb.c (100%)
>  rename drivers/phy/{ => marvell}/phy-mvebu-sata.c (100%)
>  rename drivers/phy/{ => marvell}/phy-pxa-28nm-hsic.c (100%)
>  rename drivers/phy/{ => marvell}/phy-pxa-28nm-usb2.c (100%)
>  create mode 100644 drivers/phy/qcom/Kconfig
>  create mode 100644 drivers/phy/qcom/Makefile
>  rename drivers/phy/{ => qcom}/phy-qcom-apq8064-sata.c (100%)
>  rename drivers/phy/{ => qcom}/phy-qcom-ipq806x-sata.c (100%)
>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-i.h (100%)
>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.c (100%)
>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.h (100%)
>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.c (100%)
>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.h (100%)
>  rename drivers/phy/{ => qcom}/phy-qcom-ufs.c (100%)
>  create mode 100644 drivers/phy/rcar/Kconfig
>  create mode 100644 drivers/phy/rcar/Makefile
>  rename drivers/phy/{ => rcar}/phy-rcar-gen2.c (100%)
>  rename drivers/phy/{ => rcar}/phy-rcar-gen3-usb2.c (100%)
>  create mode 100644 drivers/phy/rockchip/Kconfig
>  create mode 100644 drivers/phy/rockchip/Makefile
>  rename drivers/phy/{ => rockchip}/phy-rockchip-dp.c (100%)
>  rename drivers/phy/{ => rockchip}/phy-rockchip-emmc.c (100%)
>  rename drivers/phy/{ => rockchip}/phy-rockchip-usb.c (100%)
>  create mode 100644 drivers/phy/samsung/Kconfig
>  create mode 100644 drivers/phy/samsung/Makefile
>  rename drivers/phy/{ => samsung}/phy-exynos-dp-video.c (100%)
>  rename drivers/phy/{ => samsung}/phy-exynos-mipi-video.c (100%)
>  rename drivers/phy/{ => samsung}/phy-exynos4210-usb2.c (100%)
>  rename drivers/phy/{ => samsung}/phy-exynos4x12-usb2.c (100%)
>  rename drivers/phy/{ => samsung}/phy-exynos5-usbdrd.c (100%)
>  rename drivers/phy/{ => samsung}/phy-exynos5250-sata.c (100%)
>  rename drivers/phy/{ => samsung}/phy-exynos5250-usb2.c (100%)
>  rename drivers/phy/{ => samsung}/phy-s5pv210-usb2.c (100%)
>  rename drivers/phy/{ => samsung}/phy-samsung-usb2.c (100%)
>  rename drivers/phy/{ => samsung}/phy-samsung-usb2.h (100%)
>  create mode 100644 drivers/phy/st/Kconfig
>  create mode 100644 drivers/phy/st/Makefile
>  rename drivers/phy/{ => st}/phy-miphy28lp.c (100%)
>  rename drivers/phy/{ => st}/phy-miphy365x.c (100%)
>  rename drivers/phy/{ => st}/phy-spear1310-miphy.c (100%)
>  rename drivers/phy/{ => st}/phy-spear1340-miphy.c (100%)
>  rename drivers/phy/{ => st}/phy-stih407-usb.c (100%)
>  rename drivers/phy/{ => st}/phy-stih41x-usb.c (100%)
>  create mode 100644 drivers/phy/sunxi/Kconfig
>  create mode 100644 drivers/phy/sunxi/Makefile
>  rename drivers/phy/{ => sunxi}/phy-sun4i-usb.c (100%)
>  rename drivers/phy/{ => sunxi}/phy-sun9i-usb.c (100%)
>  create mode 100644 drivers/phy/ti/Kconfig
>  create mode 100644 drivers/phy/ti/Makefile
>  rename drivers/phy/{ => ti}/phy-dm816x-usb.c (100%)
>  rename drivers/phy/{ => ti}/phy-omap-control.c (100%)
>  rename drivers/phy/{ => ti}/phy-omap-usb2.c (100%)
>  rename drivers/phy/{ => ti}/phy-ti-pipe3.c (100%)
>  rename drivers/phy/{ => ti}/phy-tusb1210.c (100%)
>  rename drivers/phy/{ => ti}/phy-twl4030-usb.c (100%)
>  rename drivers/phy/{ => ti}/ulpi_phy.h (100%)
> 
> diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig
> index 26566db..80c8c68 100644
> --- a/drivers/phy/Kconfig
> +++ b/drivers/phy/Kconfig
> @@ -15,45 +15,6 @@ config GENERIC_PHY
>  	  phy users can obtain reference to the PHY. All the users of this
>  	  framework should select this config.
>  

> +menuconfig PHY_PLAT
> +	bool "Platform Phy drivers"

Not really convinced about adding a new config here. This will create new
dependencies and will also start breaking users of oldconfig.

Also not all of them are platform drivers (e.g ULPI PHY drivers).

Thanks
Kishon
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Vivek Gautam April 1, 2016, 1:35 p.m. UTC | #6
Hi,


On Fri, Apr 1, 2016 at 6:05 AM, Kishon Vijay Abraham I <kishon@ti.com> wrote:
> Hi,
>
> On Friday 01 April 2016 04:59 PM, Vivek Gautam wrote:
>> Adding vendor specific directories in phy to group
>> phy drivers under their respective vendor umbrella.
>>
>> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
>> ---
>>
>> With growing number of phy drivers, it makes sense to
>> group these drivers under their respective vendor/platform
>> umbrella directory.
>>
>> Build-tested 'multi_v7_defconfig'.
>>
>>  drivers/phy/Kconfig                               | 386 +---------------------
>>  drivers/phy/Makefile                              |  57 +---
>>  drivers/phy/bcom/Kconfig                          |  27 ++
>>  drivers/phy/bcom/Makefile                         |   3 +
>>  drivers/phy/{ => bcom}/phy-bcm-cygnus-pcie.c      |   0
>>  drivers/phy/{ => bcom}/phy-bcm-kona-usb2.c        |   0
>>  drivers/phy/{ => bcom}/phy-brcmstb-sata.c         |   0
>>  drivers/phy/hisi/Kconfig                          |  20 ++
>>  drivers/phy/hisi/Makefile                         |   2 +
>>  drivers/phy/{ => hisi}/phy-hi6220-usb.c           |   0
>>  drivers/phy/{ => hisi}/phy-hix5hd2-sata.c         |   0
>>  drivers/phy/marvell/Kconfig                       |  50 +++
>>  drivers/phy/marvell/Makefile                      |   6 +
>>  drivers/phy/{ => marvell}/phy-armada375-usb2.c    |   0
>>  drivers/phy/{ => marvell}/phy-berlin-sata.c       |   0
>>  drivers/phy/{ => marvell}/phy-berlin-usb.c        |   0
>>  drivers/phy/{ => marvell}/phy-mvebu-sata.c        |   0
>>  drivers/phy/{ => marvell}/phy-pxa-28nm-hsic.c     |   0
>>  drivers/phy/{ => marvell}/phy-pxa-28nm-usb2.c     |   0
>>  drivers/phy/qcom/Kconfig                          |  23 ++
>>  drivers/phy/qcom/Makefile                         |   5 +
>>  drivers/phy/{ => qcom}/phy-qcom-apq8064-sata.c    |   0
>>  drivers/phy/{ => qcom}/phy-qcom-ipq806x-sata.c    |   0
>>  drivers/phy/{ => qcom}/phy-qcom-ufs-i.h           |   0
>>  drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.c    |   0
>>  drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.h    |   0
>>  drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.c    |   0
>>  drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.h    |   0
>>  drivers/phy/{ => qcom}/phy-qcom-ufs.c             |   0
>>  drivers/phy/rcar/Kconfig                          |  16 +
>>  drivers/phy/rcar/Makefile                         |   2 +
>>  drivers/phy/{ => rcar}/phy-rcar-gen2.c            |   0
>>  drivers/phy/{ => rcar}/phy-rcar-gen3-usb2.c       |   0
>>  drivers/phy/rockchip/Kconfig                      |  23 ++
>>  drivers/phy/rockchip/Makefile                     |   3 +
>>  drivers/phy/{ => rockchip}/phy-rockchip-dp.c      |   0
>>  drivers/phy/{ => rockchip}/phy-rockchip-emmc.c    |   0
>>  drivers/phy/{ => rockchip}/phy-rockchip-usb.c     |   0
>>  drivers/phy/samsung/Kconfig                       |  87 +++++
>>  drivers/phy/samsung/Makefile                      |  10 +
>>  drivers/phy/{ => samsung}/phy-exynos-dp-video.c   |   0
>>  drivers/phy/{ => samsung}/phy-exynos-mipi-video.c |   0
>>  drivers/phy/{ => samsung}/phy-exynos4210-usb2.c   |   0
>>  drivers/phy/{ => samsung}/phy-exynos4x12-usb2.c   |   0
>>  drivers/phy/{ => samsung}/phy-exynos5-usbdrd.c    |   0
>>  drivers/phy/{ => samsung}/phy-exynos5250-sata.c   |   0
>>  drivers/phy/{ => samsung}/phy-exynos5250-usb2.c   |   0
>>  drivers/phy/{ => samsung}/phy-s5pv210-usb2.c      |   0
>>  drivers/phy/{ => samsung}/phy-samsung-usb2.c      |   0
>>  drivers/phy/{ => samsung}/phy-samsung-usb2.h      |   0
>>  drivers/phy/st/Kconfig                            |  51 +++
>>  drivers/phy/st/Makefile                           |   6 +
>>  drivers/phy/{ => st}/phy-miphy28lp.c              |   0
>>  drivers/phy/{ => st}/phy-miphy365x.c              |   0
>>  drivers/phy/{ => st}/phy-spear1310-miphy.c        |   0
>>  drivers/phy/{ => st}/phy-spear1340-miphy.c        |   0
>>  drivers/phy/{ => st}/phy-stih407-usb.c            |   0
>>  drivers/phy/{ => st}/phy-stih41x-usb.c            |   0
>>  drivers/phy/sunxi/Kconfig                         |  28 ++
>>  drivers/phy/sunxi/Makefile                        |   2 +
>>  drivers/phy/{ => sunxi}/phy-sun4i-usb.c           |   0
>>  drivers/phy/{ => sunxi}/phy-sun9i-usb.c           |   0
>>  drivers/phy/ti/Kconfig                            |  67 ++++
>>  drivers/phy/ti/Makefile                           |   6 +
>>  drivers/phy/{ => ti}/phy-dm816x-usb.c             |   0
>>  drivers/phy/{ => ti}/phy-omap-control.c           |   0
>>  drivers/phy/{ => ti}/phy-omap-usb2.c              |   0
>>  drivers/phy/{ => ti}/phy-ti-pipe3.c               |   0
>>  drivers/phy/{ => ti}/phy-tusb1210.c               |   0
>>  drivers/phy/{ => ti}/phy-twl4030-usb.c            |   0
>>  drivers/phy/{ => ti}/ulpi_phy.h                   |   0
>
> ulpi_phy.h is not specific to TI though at this point tusb1210 is the only ULPI
> driver.

Yes, you are right. But i was hesitant to add a multi-level header
file include in the phy driver
which uses it.

Does it makes sense to move this ulpi_phy.h to include/linux/phy ?

>>  71 files changed, 464 insertions(+), 416 deletions(-)
>>  create mode 100644 drivers/phy/bcom/Kconfig
>>  create mode 100644 drivers/phy/bcom/Makefile
>>  rename drivers/phy/{ => bcom}/phy-bcm-cygnus-pcie.c (100%)
>>  rename drivers/phy/{ => bcom}/phy-bcm-kona-usb2.c (100%)
>>  rename drivers/phy/{ => bcom}/phy-brcmstb-sata.c (100%)
>>  create mode 100644 drivers/phy/hisi/Kconfig
>>  create mode 100644 drivers/phy/hisi/Makefile
>>  rename drivers/phy/{ => hisi}/phy-hi6220-usb.c (100%)
>>  rename drivers/phy/{ => hisi}/phy-hix5hd2-sata.c (100%)
>>  create mode 100644 drivers/phy/marvell/Kconfig
>>  create mode 100644 drivers/phy/marvell/Makefile
>>  rename drivers/phy/{ => marvell}/phy-armada375-usb2.c (100%)
>>  rename drivers/phy/{ => marvell}/phy-berlin-sata.c (100%)
>>  rename drivers/phy/{ => marvell}/phy-berlin-usb.c (100%)
>>  rename drivers/phy/{ => marvell}/phy-mvebu-sata.c (100%)
>>  rename drivers/phy/{ => marvell}/phy-pxa-28nm-hsic.c (100%)
>>  rename drivers/phy/{ => marvell}/phy-pxa-28nm-usb2.c (100%)
>>  create mode 100644 drivers/phy/qcom/Kconfig
>>  create mode 100644 drivers/phy/qcom/Makefile
>>  rename drivers/phy/{ => qcom}/phy-qcom-apq8064-sata.c (100%)
>>  rename drivers/phy/{ => qcom}/phy-qcom-ipq806x-sata.c (100%)
>>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-i.h (100%)
>>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.c (100%)
>>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.h (100%)
>>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.c (100%)
>>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.h (100%)
>>  rename drivers/phy/{ => qcom}/phy-qcom-ufs.c (100%)
>>  create mode 100644 drivers/phy/rcar/Kconfig
>>  create mode 100644 drivers/phy/rcar/Makefile
>>  rename drivers/phy/{ => rcar}/phy-rcar-gen2.c (100%)
>>  rename drivers/phy/{ => rcar}/phy-rcar-gen3-usb2.c (100%)
>>  create mode 100644 drivers/phy/rockchip/Kconfig
>>  create mode 100644 drivers/phy/rockchip/Makefile
>>  rename drivers/phy/{ => rockchip}/phy-rockchip-dp.c (100%)
>>  rename drivers/phy/{ => rockchip}/phy-rockchip-emmc.c (100%)
>>  rename drivers/phy/{ => rockchip}/phy-rockchip-usb.c (100%)
>>  create mode 100644 drivers/phy/samsung/Kconfig
>>  create mode 100644 drivers/phy/samsung/Makefile
>>  rename drivers/phy/{ => samsung}/phy-exynos-dp-video.c (100%)
>>  rename drivers/phy/{ => samsung}/phy-exynos-mipi-video.c (100%)
>>  rename drivers/phy/{ => samsung}/phy-exynos4210-usb2.c (100%)
>>  rename drivers/phy/{ => samsung}/phy-exynos4x12-usb2.c (100%)
>>  rename drivers/phy/{ => samsung}/phy-exynos5-usbdrd.c (100%)
>>  rename drivers/phy/{ => samsung}/phy-exynos5250-sata.c (100%)
>>  rename drivers/phy/{ => samsung}/phy-exynos5250-usb2.c (100%)
>>  rename drivers/phy/{ => samsung}/phy-s5pv210-usb2.c (100%)
>>  rename drivers/phy/{ => samsung}/phy-samsung-usb2.c (100%)
>>  rename drivers/phy/{ => samsung}/phy-samsung-usb2.h (100%)
>>  create mode 100644 drivers/phy/st/Kconfig
>>  create mode 100644 drivers/phy/st/Makefile
>>  rename drivers/phy/{ => st}/phy-miphy28lp.c (100%)
>>  rename drivers/phy/{ => st}/phy-miphy365x.c (100%)
>>  rename drivers/phy/{ => st}/phy-spear1310-miphy.c (100%)
>>  rename drivers/phy/{ => st}/phy-spear1340-miphy.c (100%)
>>  rename drivers/phy/{ => st}/phy-stih407-usb.c (100%)
>>  rename drivers/phy/{ => st}/phy-stih41x-usb.c (100%)
>>  create mode 100644 drivers/phy/sunxi/Kconfig
>>  create mode 100644 drivers/phy/sunxi/Makefile
>>  rename drivers/phy/{ => sunxi}/phy-sun4i-usb.c (100%)
>>  rename drivers/phy/{ => sunxi}/phy-sun9i-usb.c (100%)
>>  create mode 100644 drivers/phy/ti/Kconfig
>>  create mode 100644 drivers/phy/ti/Makefile
>>  rename drivers/phy/{ => ti}/phy-dm816x-usb.c (100%)
>>  rename drivers/phy/{ => ti}/phy-omap-control.c (100%)
>>  rename drivers/phy/{ => ti}/phy-omap-usb2.c (100%)
>>  rename drivers/phy/{ => ti}/phy-ti-pipe3.c (100%)
>>  rename drivers/phy/{ => ti}/phy-tusb1210.c (100%)
>>  rename drivers/phy/{ => ti}/phy-twl4030-usb.c (100%)
>>  rename drivers/phy/{ => ti}/ulpi_phy.h (100%)
>>
>> diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig
>> index 26566db..80c8c68 100644
>> --- a/drivers/phy/Kconfig
>> +++ b/drivers/phy/Kconfig
>> @@ -15,45 +15,6 @@ config GENERIC_PHY
>>         phy users can obtain reference to the PHY. All the users of this
>>         framework should select this config.
>>
>
>> +menuconfig PHY_PLAT
>> +     bool "Platform Phy drivers"
>
> Not really convinced about adding a new config here. This will create new
> dependencies and will also start breaking users of oldconfig.

This serves including all the directory paths in the 'make' for
driver/phy/Makefile.

Otherwise each directory will have to be built as per particular platform
And, not all drivers of a vendor are built for one-kind of platform,
for example, Samsung uses ARCH_EXYNOS, as well as ARCH_S5PV210
Similarly, Broadcom phy drivers are based on multiple platforms, and so
does Marvell's.

Please suggest a concise way to include the vendor directories in the build path
in drivers/phy/Makefile.

>
> Also not all of them are platform drivers (e.g ULPI PHY drivers).
I Think this applies to ulpi_phy only at this moment, which we can resolve
by moving that to include/linux path.

>
> Thanks
> Kishon
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
Heiko Stuebner April 1, 2016, 3:16 p.m. UTC | #7
Am Freitag, 1. April 2016, 16:59:15 schrieb Vivek Gautam:
> Adding vendor specific directories in phy to group
> phy drivers under their respective vendor umbrella.
> 
> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>

I don't have a preference about the phy-locations either way, so for 
Rockchip phys

Acked-by: Heiko Stuebner <heiko@sntech.de>

> ---
> 
> With growing number of phy drivers, it makes sense to
> group these drivers under their respective vendor/platform
> umbrella directory.
> 
> Build-tested 'multi_v7_defconfig'.
> 
>  drivers/phy/Kconfig                               | 386
> +--------------------- drivers/phy/Makefile                             
> |  57 +---
>  drivers/phy/bcom/Kconfig                          |  27 ++
>  drivers/phy/bcom/Makefile                         |   3 +
>  drivers/phy/{ => bcom}/phy-bcm-cygnus-pcie.c      |   0
>  drivers/phy/{ => bcom}/phy-bcm-kona-usb2.c        |   0
>  drivers/phy/{ => bcom}/phy-brcmstb-sata.c         |   0
>  drivers/phy/hisi/Kconfig                          |  20 ++
>  drivers/phy/hisi/Makefile                         |   2 +
>  drivers/phy/{ => hisi}/phy-hi6220-usb.c           |   0
>  drivers/phy/{ => hisi}/phy-hix5hd2-sata.c         |   0
>  drivers/phy/marvell/Kconfig                       |  50 +++
>  drivers/phy/marvell/Makefile                      |   6 +
>  drivers/phy/{ => marvell}/phy-armada375-usb2.c    |   0
>  drivers/phy/{ => marvell}/phy-berlin-sata.c       |   0
>  drivers/phy/{ => marvell}/phy-berlin-usb.c        |   0
>  drivers/phy/{ => marvell}/phy-mvebu-sata.c        |   0
>  drivers/phy/{ => marvell}/phy-pxa-28nm-hsic.c     |   0
>  drivers/phy/{ => marvell}/phy-pxa-28nm-usb2.c     |   0
>  drivers/phy/qcom/Kconfig                          |  23 ++
>  drivers/phy/qcom/Makefile                         |   5 +
>  drivers/phy/{ => qcom}/phy-qcom-apq8064-sata.c    |   0
>  drivers/phy/{ => qcom}/phy-qcom-ipq806x-sata.c    |   0
>  drivers/phy/{ => qcom}/phy-qcom-ufs-i.h           |   0
>  drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.c    |   0
>  drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.h    |   0
>  drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.c    |   0
>  drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.h    |   0
>  drivers/phy/{ => qcom}/phy-qcom-ufs.c             |   0
>  drivers/phy/rcar/Kconfig                          |  16 +
>  drivers/phy/rcar/Makefile                         |   2 +
>  drivers/phy/{ => rcar}/phy-rcar-gen2.c            |   0
>  drivers/phy/{ => rcar}/phy-rcar-gen3-usb2.c       |   0
>  drivers/phy/rockchip/Kconfig                      |  23 ++
>  drivers/phy/rockchip/Makefile                     |   3 +
>  drivers/phy/{ => rockchip}/phy-rockchip-dp.c      |   0
>  drivers/phy/{ => rockchip}/phy-rockchip-emmc.c    |   0
>  drivers/phy/{ => rockchip}/phy-rockchip-usb.c     |   0
>  drivers/phy/samsung/Kconfig                       |  87 +++++
>  drivers/phy/samsung/Makefile                      |  10 +
>  drivers/phy/{ => samsung}/phy-exynos-dp-video.c   |   0
>  drivers/phy/{ => samsung}/phy-exynos-mipi-video.c |   0
>  drivers/phy/{ => samsung}/phy-exynos4210-usb2.c   |   0
>  drivers/phy/{ => samsung}/phy-exynos4x12-usb2.c   |   0
>  drivers/phy/{ => samsung}/phy-exynos5-usbdrd.c    |   0
>  drivers/phy/{ => samsung}/phy-exynos5250-sata.c   |   0
>  drivers/phy/{ => samsung}/phy-exynos5250-usb2.c   |   0
>  drivers/phy/{ => samsung}/phy-s5pv210-usb2.c      |   0
>  drivers/phy/{ => samsung}/phy-samsung-usb2.c      |   0
>  drivers/phy/{ => samsung}/phy-samsung-usb2.h      |   0
>  drivers/phy/st/Kconfig                            |  51 +++
>  drivers/phy/st/Makefile                           |   6 +
>  drivers/phy/{ => st}/phy-miphy28lp.c              |   0
>  drivers/phy/{ => st}/phy-miphy365x.c              |   0
>  drivers/phy/{ => st}/phy-spear1310-miphy.c        |   0
>  drivers/phy/{ => st}/phy-spear1340-miphy.c        |   0
>  drivers/phy/{ => st}/phy-stih407-usb.c            |   0
>  drivers/phy/{ => st}/phy-stih41x-usb.c            |   0
>  drivers/phy/sunxi/Kconfig                         |  28 ++
>  drivers/phy/sunxi/Makefile                        |   2 +
>  drivers/phy/{ => sunxi}/phy-sun4i-usb.c           |   0
>  drivers/phy/{ => sunxi}/phy-sun9i-usb.c           |   0
>  drivers/phy/ti/Kconfig                            |  67 ++++
>  drivers/phy/ti/Makefile                           |   6 +
>  drivers/phy/{ => ti}/phy-dm816x-usb.c             |   0
>  drivers/phy/{ => ti}/phy-omap-control.c           |   0
>  drivers/phy/{ => ti}/phy-omap-usb2.c              |   0
>  drivers/phy/{ => ti}/phy-ti-pipe3.c               |   0
>  drivers/phy/{ => ti}/phy-tusb1210.c               |   0
>  drivers/phy/{ => ti}/phy-twl4030-usb.c            |   0
>  drivers/phy/{ => ti}/ulpi_phy.h                   |   0
>  71 files changed, 464 insertions(+), 416 deletions(-)
>  create mode 100644 drivers/phy/bcom/Kconfig
>  create mode 100644 drivers/phy/bcom/Makefile
>  rename drivers/phy/{ => bcom}/phy-bcm-cygnus-pcie.c (100%)
>  rename drivers/phy/{ => bcom}/phy-bcm-kona-usb2.c (100%)
>  rename drivers/phy/{ => bcom}/phy-brcmstb-sata.c (100%)
>  create mode 100644 drivers/phy/hisi/Kconfig
>  create mode 100644 drivers/phy/hisi/Makefile
>  rename drivers/phy/{ => hisi}/phy-hi6220-usb.c (100%)
>  rename drivers/phy/{ => hisi}/phy-hix5hd2-sata.c (100%)
>  create mode 100644 drivers/phy/marvell/Kconfig
>  create mode 100644 drivers/phy/marvell/Makefile
>  rename drivers/phy/{ => marvell}/phy-armada375-usb2.c (100%)
>  rename drivers/phy/{ => marvell}/phy-berlin-sata.c (100%)
>  rename drivers/phy/{ => marvell}/phy-berlin-usb.c (100%)
>  rename drivers/phy/{ => marvell}/phy-mvebu-sata.c (100%)
>  rename drivers/phy/{ => marvell}/phy-pxa-28nm-hsic.c (100%)
>  rename drivers/phy/{ => marvell}/phy-pxa-28nm-usb2.c (100%)
>  create mode 100644 drivers/phy/qcom/Kconfig
>  create mode 100644 drivers/phy/qcom/Makefile
>  rename drivers/phy/{ => qcom}/phy-qcom-apq8064-sata.c (100%)
>  rename drivers/phy/{ => qcom}/phy-qcom-ipq806x-sata.c (100%)
>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-i.h (100%)
>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.c (100%)
>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.h (100%)
>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.c (100%)
>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.h (100%)
>  rename drivers/phy/{ => qcom}/phy-qcom-ufs.c (100%)
>  create mode 100644 drivers/phy/rcar/Kconfig
>  create mode 100644 drivers/phy/rcar/Makefile
>  rename drivers/phy/{ => rcar}/phy-rcar-gen2.c (100%)
>  rename drivers/phy/{ => rcar}/phy-rcar-gen3-usb2.c (100%)
>  create mode 100644 drivers/phy/rockchip/Kconfig
>  create mode 100644 drivers/phy/rockchip/Makefile
>  rename drivers/phy/{ => rockchip}/phy-rockchip-dp.c (100%)
>  rename drivers/phy/{ => rockchip}/phy-rockchip-emmc.c (100%)
>  rename drivers/phy/{ => rockchip}/phy-rockchip-usb.c (100%)
>  create mode 100644 drivers/phy/samsung/Kconfig
>  create mode 100644 drivers/phy/samsung/Makefile
>  rename drivers/phy/{ => samsung}/phy-exynos-dp-video.c (100%)
>  rename drivers/phy/{ => samsung}/phy-exynos-mipi-video.c (100%)
>  rename drivers/phy/{ => samsung}/phy-exynos4210-usb2.c (100%)
>  rename drivers/phy/{ => samsung}/phy-exynos4x12-usb2.c (100%)
>  rename drivers/phy/{ => samsung}/phy-exynos5-usbdrd.c (100%)
>  rename drivers/phy/{ => samsung}/phy-exynos5250-sata.c (100%)
>  rename drivers/phy/{ => samsung}/phy-exynos5250-usb2.c (100%)
>  rename drivers/phy/{ => samsung}/phy-s5pv210-usb2.c (100%)
>  rename drivers/phy/{ => samsung}/phy-samsung-usb2.c (100%)
>  rename drivers/phy/{ => samsung}/phy-samsung-usb2.h (100%)
>  create mode 100644 drivers/phy/st/Kconfig
>  create mode 100644 drivers/phy/st/Makefile
>  rename drivers/phy/{ => st}/phy-miphy28lp.c (100%)
>  rename drivers/phy/{ => st}/phy-miphy365x.c (100%)
>  rename drivers/phy/{ => st}/phy-spear1310-miphy.c (100%)
>  rename drivers/phy/{ => st}/phy-spear1340-miphy.c (100%)
>  rename drivers/phy/{ => st}/phy-stih407-usb.c (100%)
>  rename drivers/phy/{ => st}/phy-stih41x-usb.c (100%)
>  create mode 100644 drivers/phy/sunxi/Kconfig
>  create mode 100644 drivers/phy/sunxi/Makefile
>  rename drivers/phy/{ => sunxi}/phy-sun4i-usb.c (100%)
>  rename drivers/phy/{ => sunxi}/phy-sun9i-usb.c (100%)
>  create mode 100644 drivers/phy/ti/Kconfig
>  create mode 100644 drivers/phy/ti/Makefile
>  rename drivers/phy/{ => ti}/phy-dm816x-usb.c (100%)
>  rename drivers/phy/{ => ti}/phy-omap-control.c (100%)
>  rename drivers/phy/{ => ti}/phy-omap-usb2.c (100%)
>  rename drivers/phy/{ => ti}/phy-ti-pipe3.c (100%)
>  rename drivers/phy/{ => ti}/phy-tusb1210.c (100%)
>  rename drivers/phy/{ => ti}/phy-twl4030-usb.c (100%)
>  rename drivers/phy/{ => ti}/ulpi_phy.h (100%)
> 
> diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig
> index 26566db..80c8c68 100644
> --- a/drivers/phy/Kconfig
> +++ b/drivers/phy/Kconfig
> @@ -15,45 +15,6 @@ config GENERIC_PHY
>  	  phy users can obtain reference to the PHY. All the users of this
>  	  framework should select this config.
> 
> -config PHY_BERLIN_USB
> -	tristate "Marvell Berlin USB PHY Driver"
> -	depends on ARCH_BERLIN && RESET_CONTROLLER && HAS_IOMEM && OF
> -	select GENERIC_PHY
> -	help
> -	  Enable this to support the USB PHY on Marvell Berlin SoCs.
> -
> -config PHY_BERLIN_SATA
> -	tristate "Marvell Berlin SATA PHY driver"
> -	depends on ARCH_BERLIN && HAS_IOMEM && OF
> -	select GENERIC_PHY
> -	help
> -	  Enable this to support the SATA PHY on Marvell Berlin SoCs.
> -
> -config ARMADA375_USBCLUSTER_PHY
> -	def_bool y
> -	depends on MACH_ARMADA_375 || COMPILE_TEST
> -	depends on OF && HAS_IOMEM
> -	select GENERIC_PHY
> -
> -config PHY_DM816X_USB
> -	tristate "TI dm816x USB PHY driver"
> -	depends on ARCH_OMAP2PLUS
> -	depends on USB_SUPPORT
> -	select GENERIC_PHY
> -	select USB_PHY
> -	help
> -	  Enable this for dm816x USB to work.
> -
> -config PHY_EXYNOS_MIPI_VIDEO
> -	tristate "S5P/EXYNOS SoC series MIPI CSI-2/DSI PHY driver"
> -	depends on HAS_IOMEM
> -	depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
> -	select GENERIC_PHY
> -	default y if ARCH_S5PV210 || ARCH_EXYNOS
> -	help
> -	  Support for MIPI CSI-2 and MIPI DSI DPHY found on Samsung S5P
> -	  and EXYNOS SoCs.
> -
>  config PHY_LPC18XX_USB_OTG
>  	tristate "NXP LPC18xx/43xx SoC USB OTG PHY driver"
>  	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
> @@ -65,154 +26,6 @@ config PHY_LPC18XX_USB_OTG
>  	  This driver is need for USB0 support on LPC18xx/43xx and takes
>  	  care of enabling and clock setup.
> 
> -config PHY_PXA_28NM_HSIC
> -	tristate "Marvell USB HSIC 28nm PHY Driver"
> -	depends on HAS_IOMEM
> -	select GENERIC_PHY
> -	help
> -	  Enable this to support Marvell USB HSIC PHY driver for Marvell
> -	  SoC. This driver will do the PHY initialization and shutdown.
> -	  The PHY driver will be used by Marvell ehci driver.
> -
> -	  To compile this driver as a module, choose M here.
> -
> -config PHY_PXA_28NM_USB2
> -	tristate "Marvell USB 2.0 28nm PHY Driver"
> -	depends on HAS_IOMEM
> -	select GENERIC_PHY
> -	help
> -	  Enable this to support Marvell USB 2.0 PHY driver for Marvell
> -	  SoC. This driver will do the PHY initialization and shutdown.
> -	  The PHY driver will be used by Marvell udc/ehci/otg driver.
> -
> -	  To compile this driver as a module, choose M here.
> -
> -config PHY_MVEBU_SATA
> -	def_bool y
> -	depends on ARCH_DOVE || MACH_DOVE || MACH_KIRKWOOD
> -	depends on OF
> -	select GENERIC_PHY
> -
> -config PHY_MIPHY28LP
> -	tristate "STMicroelectronics MIPHY28LP PHY driver for STiH407"
> -	depends on ARCH_STI
> -	select GENERIC_PHY
> -	help
> -	  Enable this to support the miphy transceiver (for SATA/PCIE/USB3)
> -	  that is part of STMicroelectronics STiH407 SoC.
> -
> -config PHY_MIPHY365X
> -	tristate "STMicroelectronics MIPHY365X PHY driver for STiH41x series"
> -	depends on ARCH_STI
> -	depends on HAS_IOMEM
> -	depends on OF
> -	select GENERIC_PHY
> -	help
> -	  Enable this to support the miphy transceiver (for SATA/PCIE)
> -	  that is part of STMicroelectronics STiH41x SoC series.
> -
> -config PHY_RCAR_GEN2
> -	tristate "Renesas R-Car generation 2 USB PHY driver"
> -	depends on ARCH_SHMOBILE
> -	depends on GENERIC_PHY
> -	help
> -	  Support for USB PHY found on Renesas R-Car generation 2 SoCs.
> -
> -config PHY_RCAR_GEN3_USB2
> -	tristate "Renesas R-Car generation 3 USB 2.0 PHY driver"
> -	depends on OF && ARCH_SHMOBILE
> -	select GENERIC_PHY
> -	help
> -	  Support for USB 2.0 PHY found on Renesas R-Car generation 3 SoCs.
> -
> -config OMAP_CONTROL_PHY
> -	tristate "OMAP CONTROL PHY Driver"
> -	depends on ARCH_OMAP2PLUS || COMPILE_TEST
> -	help
> -	  Enable this to add support for the PHY part present in the control
> -	  module. This driver has API to power on the USB2 PHY and to write to
> -	  the mailbox. The mailbox is present only in omap4 and the register to
> -	  power on the USB2 PHY is present in OMAP4 and OMAP5. OMAP5 has an
> -	  additional register to power on USB3 PHY/SATA PHY/PCIE PHY
> -	  (PIPE3 PHY).
> -
> -config OMAP_USB2
> -	tristate "OMAP USB2 PHY Driver"
> -	depends on ARCH_OMAP2PLUS
> -	depends on USB_SUPPORT
> -	select GENERIC_PHY
> -	select USB_PHY
> -	select OMAP_CONTROL_PHY
> -	depends on OMAP_OCP2SCP
> -	help
> -	  Enable this to support the transceiver that is part of SOC. This
> -	  driver takes care of all the PHY functionality apart from comparator.
> -	  The USB OTG controller communicates with the comparator using this
> -	  driver.
> -
> -config TI_PIPE3
> -	tristate "TI PIPE3 PHY Driver"
> -	depends on ARCH_OMAP2PLUS || COMPILE_TEST
> -	select GENERIC_PHY
> -	select OMAP_CONTROL_PHY
> -	depends on OMAP_OCP2SCP
> -	help
> -	  Enable this to support the PIPE3 PHY that is part of TI SOCs. This
> -	  driver takes care of all the PHY functionality apart from comparator.
> -	  This driver interacts with the "OMAP Control PHY Driver" to power
> -	  on/off the PHY.
> -
> -config TWL4030_USB
> -	tristate "TWL4030 USB Transceiver Driver"
> -	depends on TWL4030_CORE && REGULATOR_TWL4030 && USB_MUSB_OMAP2PLUS
> -	depends on USB_SUPPORT
> -	select GENERIC_PHY
> -	select USB_PHY
> -	help
> -	  Enable this to support the USB OTG transceiver on TWL4030
> -	  family chips (including the TWL5030 and TPS659x0 devices).
> -	  This transceiver supports high and full speed devices plus,
> -	  in host mode, low speed.
> -
> -config PHY_EXYNOS_DP_VIDEO
> -	tristate "EXYNOS SoC series Display Port PHY driver"
> -	depends on OF
> -	depends on ARCH_EXYNOS || COMPILE_TEST
> -	default ARCH_EXYNOS
> -	select GENERIC_PHY
> -	help
> -	  Support for Display Port PHY found on Samsung EXYNOS SoCs.
> -
> -config BCM_KONA_USB2_PHY
> -	tristate "Broadcom Kona USB2 PHY Driver"
> -	depends on HAS_IOMEM
> -	select GENERIC_PHY
> -	help
> -	  Enable this to support the Broadcom Kona USB 2.0 PHY.
> -
> -config PHY_EXYNOS5250_SATA
> -	tristate "Exynos5250 Sata SerDes/PHY driver"
> -	depends on SOC_EXYNOS5250
> -	depends on HAS_IOMEM
> -	depends on OF
> -	select GENERIC_PHY
> -	select I2C
> -	select I2C_S3C2410
> -	select MFD_SYSCON
> -	help
> -	  Enable this to support SATA SerDes/Phy found on Samsung's
> -	  Exynos5250 based SoCs.This SerDes/Phy supports SATA 1.5 Gb/s,
> -	  SATA 3.0 Gb/s, SATA 6.0 Gb/s speeds. It supports one SATA host
> -	  port to accept one SATA device.
> -
> -config PHY_HIX5HD2_SATA
> -	tristate "HIX5HD2 SATA PHY Driver"
> -	depends on ARCH_HIX5HD2 && OF && HAS_IOMEM
> -	select GENERIC_PHY
> -	select MFD_SYSCON
> -	help
> -	  Support for SATA PHY on Hisilicon hix5hd2 Soc.
> -
>  config PHY_MT65XX_USB3
>  	tristate "Mediatek USB3.0 PHY Driver"
>  	depends on ARCH_MEDIATEK && OF
> @@ -222,93 +35,6 @@ config PHY_MT65XX_USB3
>  	  for mt65xx SoCs. it supports two usb2.0 ports and
>  	  one usb3.0 port.
> 
> -config PHY_HI6220_USB
> -	tristate "hi6220 USB PHY support"
> -	depends on (ARCH_HISI && ARM64) || COMPILE_TEST
> -	select GENERIC_PHY
> -	select MFD_SYSCON
> -	help
> -	  Enable this to support the HISILICON HI6220 USB PHY.
> -
> -	  To compile this driver as a module, choose M here.
> -
> -config PHY_SUN4I_USB
> -	tristate "Allwinner sunxi SoC USB PHY driver"
> -	depends on ARCH_SUNXI && HAS_IOMEM && OF
> -	depends on RESET_CONTROLLER
> -	depends on EXTCON
> -	depends on POWER_SUPPLY
> -	select GENERIC_PHY
> -	help
> -	  Enable this to support the transceiver that is part of Allwinner
> -	  sunxi SoCs.
> -
> -	  This driver controls the entire USB PHY block, both the USB OTG
> -	  parts, as well as the 2 regular USB 2 host PHYs.
> -
> -config PHY_SUN9I_USB
> -	tristate "Allwinner sun9i SoC USB PHY driver"
> -	depends on ARCH_SUNXI && HAS_IOMEM && OF
> -	depends on RESET_CONTROLLER
> -	depends on USB_COMMON
> -	select GENERIC_PHY
> -	help
> -	  Enable this to support the transceiver that is part of Allwinner
> -	  sun9i SoCs.
> -
> -	  This driver controls each individual USB 2 host PHY.
> -
> -config PHY_SAMSUNG_USB2
> -	tristate "Samsung USB 2.0 PHY driver"
> -	depends on HAS_IOMEM
> -	depends on USB_EHCI_EXYNOS || USB_OHCI_EXYNOS || USB_DWC2
> -	select GENERIC_PHY
> -	select MFD_SYSCON
> -	default ARCH_EXYNOS
> -	help
> -	  Enable this to support the Samsung USB 2.0 PHY driver for Samsung
> -	  SoCs. This driver provides the interface for USB 2.0 PHY. Support
> -	  for particular PHYs will be enabled based on the SoC type in addition
> -	  to this driver.
> -
> -config PHY_S5PV210_USB2
> -	bool "Support for S5PV210"
> -	depends on PHY_SAMSUNG_USB2
> -	depends on ARCH_S5PV210
> -	help
> -	  Enable USB PHY support for S5PV210. This option requires that Samsung
> -	  USB 2.0 PHY driver is enabled and means that support for this
> -	  particular SoC is compiled in the driver. In case of S5PV210 two phys
> -	  are available - device and host.
> -
> -config PHY_EXYNOS4210_USB2
> -	bool
> -	depends on PHY_SAMSUNG_USB2
> -	default CPU_EXYNOS4210
> -
> -config PHY_EXYNOS4X12_USB2
> -	bool
> -	depends on PHY_SAMSUNG_USB2
> -	default SOC_EXYNOS3250 || SOC_EXYNOS4212 || SOC_EXYNOS4412
> -
> -config PHY_EXYNOS5250_USB2
> -	bool
> -	depends on PHY_SAMSUNG_USB2
> -	default SOC_EXYNOS5250 || SOC_EXYNOS5420
> -
> -config PHY_EXYNOS5_USBDRD
> -	tristate "Exynos5 SoC series USB DRD PHY driver"
> -	depends on ARCH_EXYNOS && OF
> -	depends on HAS_IOMEM
> -	depends on USB_DWC3_EXYNOS
> -	select GENERIC_PHY
> -	select MFD_SYSCON
> -	default y
> -	help
> -	  Enable USB DRD PHY support for Exynos 5 SoC series.
> -	  This driver provides PHY interface for USB 3.0 DRD controller
> -	  present on Exynos5 SoC series.
> -
>  config PHY_PISTACHIO_USB
>  	tristate "IMG Pistachio USB2.0 PHY driver"
>  	depends on MACH_PISTACHIO
> @@ -316,55 +42,6 @@ config PHY_PISTACHIO_USB
>  	help
>  	  Enable this to support the USB2.0 PHY on the IMG Pistachio SoC.
> 
> -config PHY_QCOM_APQ8064_SATA
> -	tristate "Qualcomm APQ8064 SATA SerDes/PHY driver"
> -	depends on ARCH_QCOM
> -	depends on HAS_IOMEM
> -	depends on OF
> -	select GENERIC_PHY
> -
> -config PHY_QCOM_IPQ806X_SATA
> -	tristate "Qualcomm IPQ806x SATA SerDes/PHY driver"
> -	depends on ARCH_QCOM
> -	depends on HAS_IOMEM
> -	depends on OF
> -	select GENERIC_PHY
> -
> -config PHY_ROCKCHIP_USB
> -	tristate "Rockchip USB2 PHY Driver"
> -	depends on ARCH_ROCKCHIP && OF
> -	select GENERIC_PHY
> -	help
> -	  Enable this to support the Rockchip USB 2.0 PHY.
> -
> -config PHY_ROCKCHIP_EMMC
> -	tristate "Rockchip EMMC PHY Driver"
> -	depends on ARCH_ROCKCHIP && OF
> -	select GENERIC_PHY
> -	help
> -	  Enable this to support the Rockchip EMMC PHY.
> -
> -config PHY_ROCKCHIP_DP
> -	tristate "Rockchip Display Port PHY Driver"
> -	depends on ARCH_ROCKCHIP && OF
> -	select GENERIC_PHY
> -	help
> -	  Enable this to support the Rockchip Display Port PHY.
> -
> -config PHY_ST_SPEAR1310_MIPHY
> -	tristate "ST SPEAR1310-MIPHY driver"
> -	select GENERIC_PHY
> -	depends on MACH_SPEAR1310 || COMPILE_TEST
> -	help
> -	  Support for ST SPEAr1310 MIPHY which can be used for PCIe and SATA.
> -
> -config PHY_ST_SPEAR1340_MIPHY
> -	tristate "ST SPEAR1340-MIPHY driver"
> -	select GENERIC_PHY
> -	depends on MACH_SPEAR1340 || COMPILE_TEST
> -	help
> -	  Support for ST SPEAr1340 MIPHY which can be used for PCIe and SATA.
> -
>  config PHY_XGENE
>  	tristate "APM X-Gene 15Gbps PHY support"
>  	depends on HAS_IOMEM && OF && (ARM64 || COMPILE_TEST)
> @@ -372,53 +49,20 @@ config PHY_XGENE
>  	help
>  	  This option enables support for APM X-Gene SoC multi-purpose PHY.
> 
> -config PHY_STIH407_USB
> -	tristate "STMicroelectronics USB2 picoPHY driver for STiH407 family"
> -	depends on RESET_CONTROLLER
> -	depends on ARCH_STI || COMPILE_TEST
> -	select GENERIC_PHY
> -	help
> -	  Enable this support to enable the picoPHY device used by USB2
> -	  and USB3 controllers on STMicroelectronics STiH407 SoC families.
> -
> -config PHY_STIH41X_USB
> -	tristate "STMicroelectronics USB2 PHY driver for STiH41x series"
> -	depends on ARCH_STI
> -	select GENERIC_PHY
> -	help
> -	  Enable this to support the USB transceiver that is part of
> -	  STMicroelectronics STiH41x SoC series.
> -
> -config PHY_QCOM_UFS
> -	tristate "Qualcomm UFS PHY driver"
> -	depends on OF && ARCH_QCOM
> -	select GENERIC_PHY
> -	help
> -	  Support for UFS PHY on QCOM chipsets.
> -
> -config PHY_TUSB1210
> -	tristate "TI TUSB1210 ULPI PHY module"
> -	depends on USB_ULPI_BUS
> -	select GENERIC_PHY
> -	help
> -	  Support for TI TUSB1210 USB ULPI PHY.
> -
> -config PHY_BRCMSTB_SATA
> -	tristate "Broadcom STB SATA PHY driver"
> -	depends on ARCH_BRCMSTB || BMIPS_GENERIC
> -	depends on OF
> -	select GENERIC_PHY
> -	help
> -	  Enable this to support the SATA3 PHY on 28nm or 40nm Broadcom STB
> SoCs. -	  Likely useful only with CONFIG_SATA_BRCMSTB enabled.
> -
> -config PHY_CYGNUS_PCIE
> -	tristate "Broadcom Cygnus PCIe PHY driver"
> -	depends on OF && (ARCH_BCM_CYGNUS || COMPILE_TEST)
> -	select GENERIC_PHY
> -	default ARCH_BCM_CYGNUS
> -	help
> -	  Enable this to support the Broadcom Cygnus PCIe PHY.
> -	  If unsure, say N.
> +menuconfig PHY_PLAT
> +	bool "Platform Phy drivers"
> +
> +if PHY_PLAT
> +source "drivers/phy/bcom/Kconfig"
> +source "drivers/phy/hisi/Kconfig"
> +source "drivers/phy/marvell/Kconfig"
> +source "drivers/phy/qcom/Kconfig"
> +source "drivers/phy/rcar/Kconfig"
> +source "drivers/phy/rockchip/Kconfig"
> +source "drivers/phy/samsung/Kconfig"
> +source "drivers/phy/st/Kconfig"
> +source "drivers/phy/sunxi/Kconfig"
> +source "drivers/phy/ti/Kconfig"
> +endif
> 
>  endmenu
> diff --git a/drivers/phy/Makefile b/drivers/phy/Makefile
> index 24596a9..73d563b 100644
> --- a/drivers/phy/Makefile
> +++ b/drivers/phy/Makefile
> @@ -3,52 +3,19 @@
>  #
> 
>  obj-$(CONFIG_GENERIC_PHY)		+= phy-core.o
> -obj-$(CONFIG_PHY_BERLIN_USB)		+= phy-berlin-usb.o
> -obj-$(CONFIG_PHY_BERLIN_SATA)		+= phy-berlin-sata.o
> -obj-$(CONFIG_PHY_DM816X_USB)		+= phy-dm816x-usb.o
> -obj-$(CONFIG_ARMADA375_USBCLUSTER_PHY)	+= phy-armada375-usb2.o
> -obj-$(CONFIG_BCM_KONA_USB2_PHY)		+= phy-bcm-kona-usb2.o
> -obj-$(CONFIG_PHY_EXYNOS_DP_VIDEO)	+= phy-exynos-dp-video.o
> -obj-$(CONFIG_PHY_EXYNOS_MIPI_VIDEO)	+= phy-exynos-mipi-video.o
>  obj-$(CONFIG_PHY_LPC18XX_USB_OTG)	+= phy-lpc18xx-usb-otg.o
> -obj-$(CONFIG_PHY_PXA_28NM_USB2)		+= phy-pxa-28nm-usb2.o
> -obj-$(CONFIG_PHY_PXA_28NM_HSIC)		+= phy-pxa-28nm-hsic.o
> -obj-$(CONFIG_PHY_MVEBU_SATA)		+= phy-mvebu-sata.o
> -obj-$(CONFIG_PHY_MIPHY28LP) 		+= phy-miphy28lp.o
> -obj-$(CONFIG_PHY_MIPHY365X)		+= phy-miphy365x.o
> -obj-$(CONFIG_PHY_RCAR_GEN2)		+= phy-rcar-gen2.o
> -obj-$(CONFIG_PHY_RCAR_GEN3_USB2)	+= phy-rcar-gen3-usb2.o
> -obj-$(CONFIG_OMAP_CONTROL_PHY)		+= phy-omap-control.o
> -obj-$(CONFIG_OMAP_USB2)			+= phy-omap-usb2.o
> -obj-$(CONFIG_TI_PIPE3)			+= phy-ti-pipe3.o
> -obj-$(CONFIG_TWL4030_USB)		+= phy-twl4030-usb.o
> -obj-$(CONFIG_PHY_EXYNOS5250_SATA)	+= phy-exynos5250-sata.o
> -obj-$(CONFIG_PHY_HIX5HD2_SATA)		+= phy-hix5hd2-sata.o
> -obj-$(CONFIG_PHY_HI6220_USB)		+= phy-hi6220-usb.o
>  obj-$(CONFIG_PHY_MT65XX_USB3)		+= phy-mt65xx-usb3.o
> -obj-$(CONFIG_PHY_SUN4I_USB)		+= phy-sun4i-usb.o
> -obj-$(CONFIG_PHY_SUN9I_USB)		+= phy-sun9i-usb.o
> -obj-$(CONFIG_PHY_SAMSUNG_USB2)		+= phy-exynos-usb2.o
> -phy-exynos-usb2-y			+= phy-samsung-usb2.o
> -phy-exynos-usb2-$(CONFIG_PHY_EXYNOS4210_USB2)	+= phy-exynos4210-usb2.o
> -phy-exynos-usb2-$(CONFIG_PHY_EXYNOS4X12_USB2)	+= phy-exynos4x12-usb2.o
> -phy-exynos-usb2-$(CONFIG_PHY_EXYNOS5250_USB2)	+= phy-exynos5250-usb2.o
> -phy-exynos-usb2-$(CONFIG_PHY_S5PV210_USB2)	+= phy-s5pv210-usb2.o
> -obj-$(CONFIG_PHY_EXYNOS5_USBDRD)	+= phy-exynos5-usbdrd.o
> -obj-$(CONFIG_PHY_QCOM_APQ8064_SATA)	+= phy-qcom-apq8064-sata.o
> -obj-$(CONFIG_PHY_ROCKCHIP_USB) += phy-rockchip-usb.o
> -obj-$(CONFIG_PHY_ROCKCHIP_EMMC) += phy-rockchip-emmc.o
> -obj-$(CONFIG_PHY_ROCKCHIP_DP)		+= phy-rockchip-dp.o
> -obj-$(CONFIG_PHY_QCOM_IPQ806X_SATA)	+= phy-qcom-ipq806x-sata.o
> -obj-$(CONFIG_PHY_ST_SPEAR1310_MIPHY)	+= phy-spear1310-miphy.o
> -obj-$(CONFIG_PHY_ST_SPEAR1340_MIPHY)	+= phy-spear1340-miphy.o
>  obj-$(CONFIG_PHY_XGENE)			+= phy-xgene.o
> -obj-$(CONFIG_PHY_STIH407_USB)		+= phy-stih407-usb.o
> -obj-$(CONFIG_PHY_STIH41X_USB)		+= phy-stih41x-usb.o
> -obj-$(CONFIG_PHY_QCOM_UFS) 	+= phy-qcom-ufs.o
> -obj-$(CONFIG_PHY_QCOM_UFS) 	+= phy-qcom-ufs-qmp-20nm.o
> -obj-$(CONFIG_PHY_QCOM_UFS) 	+= phy-qcom-ufs-qmp-14nm.o
> -obj-$(CONFIG_PHY_TUSB1210)		+= phy-tusb1210.o
> -obj-$(CONFIG_PHY_BRCMSTB_SATA)		+= phy-brcmstb-sata.o
>  obj-$(CONFIG_PHY_PISTACHIO_USB)		+= phy-pistachio-usb.o
> -obj-$(CONFIG_PHY_CYGNUS_PCIE)		+= phy-bcm-cygnus-pcie.o
> +
> +# Phy drivers for different platforms.
> +obj-$(CONFIG_PHY_PLAT)		+= bcom/	\
> +				   hisi/	\
> +				   marvell/	\
> +				   qcom/	\
> +				   rcar/	\
> +				   rockchip/	\
> +				   samsung/	\
> +				   st/		\
> +				   sunxi/	\
> +				   ti/
> diff --git a/drivers/phy/bcom/Kconfig b/drivers/phy/bcom/Kconfig
> new file mode 100644
> index 0000000..8243372
> --- /dev/null
> +++ b/drivers/phy/bcom/Kconfig
> @@ -0,0 +1,27 @@
> +#
> +# PHY drivers for Broadcom platforms
> +#
> +config PHY_CYGNUS_PCIE
> +	tristate "Broadcom Cygnus PCIe PHY driver"
> +	depends on OF && (ARCH_BCM_CYGNUS || COMPILE_TEST)
> +	select GENERIC_PHY
> +	default ARCH_BCM_CYGNUS
> +	help
> +	  Enable this to support the Broadcom Cygnus PCIe PHY.
> +	  If unsure, say N.
> +
> +config BCM_KONA_USB2_PHY
> +	tristate "Broadcom Kona USB2 PHY Driver"
> +	depends on HAS_IOMEM
> +	select GENERIC_PHY
> +	help
> +	  Enable this to support the Broadcom Kona USB 2.0 PHY.
> +
> +config PHY_BRCMSTB_SATA
> +	tristate "Broadcom STB SATA PHY driver"
> +	depends on ARCH_BRCMSTB || BMIPS_GENERIC
> +	depends on OF
> +	select GENERIC_PHY
> +	help
> +	  Enable this to support the SATA3 PHY on 28nm or 40nm Broadcom STB
> SoCs. +	  Likely useful only with CONFIG_SATA_BRCMSTB enabled.
> diff --git a/drivers/phy/bcom/Makefile b/drivers/phy/bcom/Makefile
> new file mode 100644
> index 0000000..f30fa76
> --- /dev/null
> +++ b/drivers/phy/bcom/Makefile
> @@ -0,0 +1,3 @@
> +obj-$(CONFIG_PHY_CYGNUS_PCIE)		+= phy-bcm-cygnus-pcie.o
> +obj-$(CONFIG_BCM_KONA_USB2_PHY)		+= phy-bcm-kona-usb2.o
> +obj-$(CONFIG_PHY_BRCMSTB_SATA)		+= phy-brcmstb-sata.o
> diff --git a/drivers/phy/phy-bcm-cygnus-pcie.c
> b/drivers/phy/bcom/phy-bcm-cygnus-pcie.c similarity index 100%
> rename from drivers/phy/phy-bcm-cygnus-pcie.c
> rename to drivers/phy/bcom/phy-bcm-cygnus-pcie.c
> diff --git a/drivers/phy/phy-bcm-kona-usb2.c
> b/drivers/phy/bcom/phy-bcm-kona-usb2.c similarity index 100%
> rename from drivers/phy/phy-bcm-kona-usb2.c
> rename to drivers/phy/bcom/phy-bcm-kona-usb2.c
> diff --git a/drivers/phy/phy-brcmstb-sata.c
> b/drivers/phy/bcom/phy-brcmstb-sata.c similarity index 100%
> rename from drivers/phy/phy-brcmstb-sata.c
> rename to drivers/phy/bcom/phy-brcmstb-sata.c
> diff --git a/drivers/phy/hisi/Kconfig b/drivers/phy/hisi/Kconfig
> new file mode 100644
> index 0000000..affa9ed
> --- /dev/null
> +++ b/drivers/phy/hisi/Kconfig
> @@ -0,0 +1,20 @@
> +#
> +# PHY drivers for HiSilicon platforms
> +#
> +config PHY_HIX5HD2_SATA
> +	tristate "HIX5HD2 SATA PHY Driver"
> +	depends on ARCH_HIX5HD2 && OF && HAS_IOMEM
> +	select GENERIC_PHY
> +	select MFD_SYSCON
> +	help
> +	  Support for SATA PHY on Hisilicon hix5hd2 Soc.
> +
> +config PHY_HI6220_USB
> +	tristate "hi6220 USB PHY support"
> +	depends on (ARCH_HISI && ARM64) || COMPILE_TEST
> +	select GENERIC_PHY
> +	select MFD_SYSCON
> +	help
> +	  Enable this to support the HISILICON HI6220 USB PHY.
> +
> +	  To compile this driver as a module, choose M here.
> diff --git a/drivers/phy/hisi/Makefile b/drivers/phy/hisi/Makefile
> new file mode 100644
> index 0000000..6059ed8
> --- /dev/null
> +++ b/drivers/phy/hisi/Makefile
> @@ -0,0 +1,2 @@
> +obj-$(CONFIG_PHY_HIX5HD2_SATA)		+= phy-hix5hd2-sata.o
> +obj-$(CONFIG_PHY_HI6220_USB)		+= phy-hi6220-usb.o
> diff --git a/drivers/phy/phy-hi6220-usb.c
> b/drivers/phy/hisi/phy-hi6220-usb.c similarity index 100%
> rename from drivers/phy/phy-hi6220-usb.c
> rename to drivers/phy/hisi/phy-hi6220-usb.c
> diff --git a/drivers/phy/phy-hix5hd2-sata.c
> b/drivers/phy/hisi/phy-hix5hd2-sata.c similarity index 100%
> rename from drivers/phy/phy-hix5hd2-sata.c
> rename to drivers/phy/hisi/phy-hix5hd2-sata.c
> diff --git a/drivers/phy/marvell/Kconfig b/drivers/phy/marvell/Kconfig
> new file mode 100644
> index 0000000..6c1576c
> --- /dev/null
> +++ b/drivers/phy/marvell/Kconfig
> @@ -0,0 +1,50 @@
> +#
> +# PHY drivers for Marvell platforms
> +#
> +config ARMADA375_USBCLUSTER_PHY
> +	def_bool y
> +	depends on MACH_ARMADA_375 || COMPILE_TEST
> +	depends on OF && HAS_IOMEM
> +	select GENERIC_PHY
> +
> +config PHY_BERLIN_USB
> +	tristate "Marvell Berlin USB PHY Driver"
> +	depends on ARCH_BERLIN && RESET_CONTROLLER && HAS_IOMEM && OF
> +	select GENERIC_PHY
> +	help
> +	  Enable this to support the USB PHY on Marvell Berlin SoCs.
> +
> +config PHY_BERLIN_SATA
> +	tristate "Marvell Berlin SATA PHY driver"
> +	depends on ARCH_BERLIN && HAS_IOMEM && OF
> +	select GENERIC_PHY
> +	help
> +	  Enable this to support the SATA PHY on Marvell Berlin SoCs.
> +
> +config PHY_MVEBU_SATA
> +	def_bool y
> +	depends on ARCH_DOVE || MACH_DOVE || MACH_KIRKWOOD
> +	depends on OF
> +	select GENERIC_PHY
> +
> +config PHY_PXA_28NM_HSIC
> +	tristate "Marvell USB HSIC 28nm PHY Driver"
> +	depends on HAS_IOMEM
> +	select GENERIC_PHY
> +	help
> +	  Enable this to support Marvell USB HSIC PHY driver for Marvell
> +	  SoC. This driver will do the PHY initialization and shutdown.
> +	  The PHY driver will be used by Marvell ehci driver.
> +
> +	  To compile this driver as a module, choose M here.
> +
> +config PHY_PXA_28NM_USB2
> +	tristate "Marvell USB 2.0 28nm PHY Driver"
> +	depends on HAS_IOMEM
> +	select GENERIC_PHY
> +	help
> +	  Enable this to support Marvell USB 2.0 PHY driver for Marvell
> +	  SoC. This driver will do the PHY initialization and shutdown.
> +	  The PHY driver will be used by Marvell udc/ehci/otg driver.
> +
> +	  To compile this driver as a module, choose M here.
> diff --git a/drivers/phy/marvell/Makefile b/drivers/phy/marvell/Makefile
> new file mode 100644
> index 0000000..f4fa255
> --- /dev/null
> +++ b/drivers/phy/marvell/Makefile
> @@ -0,0 +1,6 @@
> +obj-$(CONFIG_ARMADA375_USBCLUSTER_PHY)	+= phy-armada375-usb2.o
> +obj-$(CONFIG_PHY_BERLIN_USB)		+= phy-berlin-usb.o
> +obj-$(CONFIG_PHY_BERLIN_SATA)		+= phy-berlin-sata.o
> +obj-$(CONFIG_PHY_MVEBU_SATA)		+= phy-mvebu-sata.o
> +obj-$(CONFIG_PHY_PXA_28NM_USB2)		+= phy-pxa-28nm-usb2.o
> +obj-$(CONFIG_PHY_PXA_28NM_HSIC)		+= phy-pxa-28nm-hsic.o
> diff --git a/drivers/phy/phy-armada375-usb2.c
> b/drivers/phy/marvell/phy-armada375-usb2.c similarity index 100%
> rename from drivers/phy/phy-armada375-usb2.c
> rename to drivers/phy/marvell/phy-armada375-usb2.c
> diff --git a/drivers/phy/phy-berlin-sata.c
> b/drivers/phy/marvell/phy-berlin-sata.c similarity index 100%
> rename from drivers/phy/phy-berlin-sata.c
> rename to drivers/phy/marvell/phy-berlin-sata.c
> diff --git a/drivers/phy/phy-berlin-usb.c
> b/drivers/phy/marvell/phy-berlin-usb.c similarity index 100%
> rename from drivers/phy/phy-berlin-usb.c
> rename to drivers/phy/marvell/phy-berlin-usb.c
> diff --git a/drivers/phy/phy-mvebu-sata.c
> b/drivers/phy/marvell/phy-mvebu-sata.c similarity index 100%
> rename from drivers/phy/phy-mvebu-sata.c
> rename to drivers/phy/marvell/phy-mvebu-sata.c
> diff --git a/drivers/phy/phy-pxa-28nm-hsic.c
> b/drivers/phy/marvell/phy-pxa-28nm-hsic.c similarity index 100%
> rename from drivers/phy/phy-pxa-28nm-hsic.c
> rename to drivers/phy/marvell/phy-pxa-28nm-hsic.c
> diff --git a/drivers/phy/phy-pxa-28nm-usb2.c
> b/drivers/phy/marvell/phy-pxa-28nm-usb2.c similarity index 100%
> rename from drivers/phy/phy-pxa-28nm-usb2.c
> rename to drivers/phy/marvell/phy-pxa-28nm-usb2.c
> diff --git a/drivers/phy/qcom/Kconfig b/drivers/phy/qcom/Kconfig
> new file mode 100644
> index 0000000..9718d01
> --- /dev/null
> +++ b/drivers/phy/qcom/Kconfig
> @@ -0,0 +1,23 @@
> +#
> +# PHY drivers for Qualcomm platforms
> +#
> +config PHY_QCOM_APQ8064_SATA
> +	tristate "Qualcomm APQ8064 SATA SerDes/PHY driver"
> +	depends on ARCH_QCOM
> +	depends on HAS_IOMEM
> +	depends on OF
> +	select GENERIC_PHY
> +
> +config PHY_QCOM_IPQ806X_SATA
> +	tristate "Qualcomm IPQ806x SATA SerDes/PHY driver"
> +	depends on ARCH_QCOM
> +	depends on HAS_IOMEM
> +	depends on OF
> +	select GENERIC_PHY
> +
> +config PHY_QCOM_UFS
> +	tristate "Qualcomm UFS PHY driver"
> +	depends on OF && ARCH_QCOM
> +	select GENERIC_PHY
> +	help
> +	  Support for UFS PHY on QCOM chipsets.
> diff --git a/drivers/phy/qcom/Makefile b/drivers/phy/qcom/Makefile
> new file mode 100644
> index 0000000..2db3e77
> --- /dev/null
> +++ b/drivers/phy/qcom/Makefile
> @@ -0,0 +1,5 @@
> +obj-$(CONFIG_PHY_QCOM_APQ8064_SATA)	+= phy-qcom-apq8064-sata.o
> +obj-$(CONFIG_PHY_QCOM_IPQ806X_SATA)	+= phy-qcom-ipq806x-sata.o
> +obj-$(CONFIG_PHY_QCOM_UFS)		+= phy-qcom-ufs.o \
> +					+= phy-qcom-ufs-qmp-20nm.o \
> +					+= phy-qcom-ufs-qmp-14nm.o
> diff --git a/drivers/phy/phy-qcom-apq8064-sata.c
> b/drivers/phy/qcom/phy-qcom-apq8064-sata.c similarity index 100%
> rename from drivers/phy/phy-qcom-apq8064-sata.c
> rename to drivers/phy/qcom/phy-qcom-apq8064-sata.c
> diff --git a/drivers/phy/phy-qcom-ipq806x-sata.c
> b/drivers/phy/qcom/phy-qcom-ipq806x-sata.c similarity index 100%
> rename from drivers/phy/phy-qcom-ipq806x-sata.c
> rename to drivers/phy/qcom/phy-qcom-ipq806x-sata.c
> diff --git a/drivers/phy/phy-qcom-ufs-i.h
> b/drivers/phy/qcom/phy-qcom-ufs-i.h similarity index 100%
> rename from drivers/phy/phy-qcom-ufs-i.h
> rename to drivers/phy/qcom/phy-qcom-ufs-i.h
> diff --git a/drivers/phy/phy-qcom-ufs-qmp-14nm.c
> b/drivers/phy/qcom/phy-qcom-ufs-qmp-14nm.c similarity index 100%
> rename from drivers/phy/phy-qcom-ufs-qmp-14nm.c
> rename to drivers/phy/qcom/phy-qcom-ufs-qmp-14nm.c
> diff --git a/drivers/phy/phy-qcom-ufs-qmp-14nm.h
> b/drivers/phy/qcom/phy-qcom-ufs-qmp-14nm.h similarity index 100%
> rename from drivers/phy/phy-qcom-ufs-qmp-14nm.h
> rename to drivers/phy/qcom/phy-qcom-ufs-qmp-14nm.h
> diff --git a/drivers/phy/phy-qcom-ufs-qmp-20nm.c
> b/drivers/phy/qcom/phy-qcom-ufs-qmp-20nm.c similarity index 100%
> rename from drivers/phy/phy-qcom-ufs-qmp-20nm.c
> rename to drivers/phy/qcom/phy-qcom-ufs-qmp-20nm.c
> diff --git a/drivers/phy/phy-qcom-ufs-qmp-20nm.h
> b/drivers/phy/qcom/phy-qcom-ufs-qmp-20nm.h similarity index 100%
> rename from drivers/phy/phy-qcom-ufs-qmp-20nm.h
> rename to drivers/phy/qcom/phy-qcom-ufs-qmp-20nm.h
> diff --git a/drivers/phy/phy-qcom-ufs.c b/drivers/phy/qcom/phy-qcom-ufs.c
> similarity index 100%
> rename from drivers/phy/phy-qcom-ufs.c
> rename to drivers/phy/qcom/phy-qcom-ufs.c
> diff --git a/drivers/phy/rcar/Kconfig b/drivers/phy/rcar/Kconfig
> new file mode 100644
> index 0000000..169b5e2
> --- /dev/null
> +++ b/drivers/phy/rcar/Kconfig
> @@ -0,0 +1,16 @@
> +#
> +# PHY drivers for Renesas's r-car platforms
> +#
> +config PHY_RCAR_GEN2
> +	tristate "Renesas R-Car generation 2 USB PHY driver"
> +	depends on ARCH_SHMOBILE
> +	depends on GENERIC_PHY
> +	help
> +	  Support for USB PHY found on Renesas R-Car generation 2 SoCs.
> +
> +config PHY_RCAR_GEN3_USB2
> +	tristate "Renesas R-Car generation 3 USB 2.0 PHY driver"
> +	depends on OF && ARCH_SHMOBILE
> +	select GENERIC_PHY
> +	help
> +	  Support for USB 2.0 PHY found on Renesas R-Car generation 3 SoCs.
> diff --git a/drivers/phy/rcar/Makefile b/drivers/phy/rcar/Makefile
> new file mode 100644
> index 0000000..695241a
> --- /dev/null
> +++ b/drivers/phy/rcar/Makefile
> @@ -0,0 +1,2 @@
> +obj-$(CONFIG_PHY_RCAR_GEN2)		+= phy-rcar-gen2.o
> +obj-$(CONFIG_PHY_RCAR_GEN3_USB2)	+= phy-rcar-gen3-usb2.o
> diff --git a/drivers/phy/phy-rcar-gen2.c
> b/drivers/phy/rcar/phy-rcar-gen2.c similarity index 100%
> rename from drivers/phy/phy-rcar-gen2.c
> rename to drivers/phy/rcar/phy-rcar-gen2.c
> diff --git a/drivers/phy/phy-rcar-gen3-usb2.c
> b/drivers/phy/rcar/phy-rcar-gen3-usb2.c similarity index 100%
> rename from drivers/phy/phy-rcar-gen3-usb2.c
> rename to drivers/phy/rcar/phy-rcar-gen3-usb2.c
> diff --git a/drivers/phy/rockchip/Kconfig b/drivers/phy/rockchip/Kconfig
> new file mode 100644
> index 0000000..c575d1e
> --- /dev/null
> +++ b/drivers/phy/rockchip/Kconfig
> @@ -0,0 +1,23 @@
> +#
> +# PHY drivers for Rockchip platforms
> +#
> +config PHY_ROCKCHIP_USB
> +	tristate "Rockchip USB2 PHY Driver"
> +	depends on ARCH_ROCKCHIP && OF
> +	select GENERIC_PHY
> +	help
> +	  Enable this to support the Rockchip USB 2.0 PHY.
> +
> +config PHY_ROCKCHIP_EMMC
> +	tristate "Rockchip EMMC PHY Driver"
> +	depends on ARCH_ROCKCHIP && OF
> +	select GENERIC_PHY
> +	help
> +	  Enable this to support the Rockchip EMMC PHY.
> +
> +config PHY_ROCKCHIP_DP
> +	tristate "Rockchip Display Port PHY Driver"
> +	depends on ARCH_ROCKCHIP && OF
> +	select GENERIC_PHY
> +	help
> +	  Enable this to support the Rockchip Display Port PHY.
> diff --git a/drivers/phy/rockchip/Makefile b/drivers/phy/rockchip/Makefile
> new file mode 100644
> index 0000000..c15acc1
> --- /dev/null
> +++ b/drivers/phy/rockchip/Makefile
> @@ -0,0 +1,3 @@
> +obj-$(CONFIG_PHY_ROCKCHIP_DP)	+= phy-rockchip-dp.o
> +obj-$(CONFIG_PHY_ROCKCHIP_EMMC)	+= phy-rockchip-emmc.o
> +obj-$(CONFIG_PHY_ROCKCHIP_USB)	+= phy-rockchip-usb.o
> diff --git a/drivers/phy/phy-rockchip-dp.c
> b/drivers/phy/rockchip/phy-rockchip-dp.c similarity index 100%
> rename from drivers/phy/phy-rockchip-dp.c
> rename to drivers/phy/rockchip/phy-rockchip-dp.c
> diff --git a/drivers/phy/phy-rockchip-emmc.c
> b/drivers/phy/rockchip/phy-rockchip-emmc.c similarity index 100%
> rename from drivers/phy/phy-rockchip-emmc.c
> rename to drivers/phy/rockchip/phy-rockchip-emmc.c
> diff --git a/drivers/phy/phy-rockchip-usb.c
> b/drivers/phy/rockchip/phy-rockchip-usb.c similarity index 100%
> rename from drivers/phy/phy-rockchip-usb.c
> rename to drivers/phy/rockchip/phy-rockchip-usb.c
> diff --git a/drivers/phy/samsung/Kconfig b/drivers/phy/samsung/Kconfig
> new file mode 100644
> index 0000000..80bdea7
> --- /dev/null
> +++ b/drivers/phy/samsung/Kconfig
> @@ -0,0 +1,87 @@
> +#
> +# PHY drivers for Samsung platforms
> +#
> +config PHY_SAMSUNG_USB2
> +	tristate "Samsung USB 2.0 PHY driver"
> +	depends on HAS_IOMEM
> +	depends on USB_EHCI_EXYNOS || USB_OHCI_EXYNOS || USB_DWC2
> +	select GENERIC_PHY
> +	select MFD_SYSCON
> +	default ARCH_EXYNOS
> +	help
> +	  Enable this to support the Samsung USB 2.0 PHY driver for Samsung
> +	  SoCs. This driver provides the interface for USB 2.0 PHY. Support
> +	  for particular PHYs will be enabled based on the SoC type in addition
> +	  to this driver.
> +
> +config PHY_S5PV210_USB2
> +	bool "Support for S5PV210"
> +	depends on PHY_SAMSUNG_USB2
> +	depends on ARCH_S5PV210
> +	help
> +	  Enable USB PHY support for S5PV210. This option requires that Samsung
> +	  USB 2.0 PHY driver is enabled and means that support for this
> +	  particular SoC is compiled in the driver. In case of S5PV210 two phys
> +	  are available - device and host.
> +
> +config PHY_EXYNOS4210_USB2
> +	bool
> +	depends on PHY_SAMSUNG_USB2
> +	default CPU_EXYNOS4210
> +
> +config PHY_EXYNOS4X12_USB2
> +	bool
> +	depends on PHY_SAMSUNG_USB2
> +	default SOC_EXYNOS3250 || SOC_EXYNOS4212 || SOC_EXYNOS4412
> +
> +config PHY_EXYNOS5250_USB2
> +	bool
> +	depends on PHY_SAMSUNG_USB2
> +	default SOC_EXYNOS5250 || SOC_EXYNOS5420
> +
> +config PHY_EXYNOS5_USBDRD
> +	tristate "Exynos5 SoC series USB DRD PHY driver"
> +	depends on ARCH_EXYNOS && OF
> +	depends on HAS_IOMEM
> +	depends on USB_DWC3_EXYNOS
> +	select GENERIC_PHY
> +	select MFD_SYSCON
> +	default y
> +	help
> +	  Enable USB DRD PHY support for Exynos 5 SoC series.
> +	  This driver provides PHY interface for USB 3.0 DRD controller
> +	  present on Exynos5 SoC series.
> +
> +config PHY_EXYNOS_DP_VIDEO
> +	tristate "EXYNOS SoC series Display Port PHY driver"
> +	depends on OF
> +	depends on ARCH_EXYNOS || COMPILE_TEST
> +	default ARCH_EXYNOS
> +	select GENERIC_PHY
> +	help
> +	  Support for Display Port PHY found on Samsung EXYNOS SoCs.
> +
> +config PHY_EXYNOS_MIPI_VIDEO
> +	tristate "S5P/EXYNOS SoC series MIPI CSI-2/DSI PHY driver"
> +	depends on HAS_IOMEM
> +	depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
> +	select GENERIC_PHY
> +	default y if ARCH_S5PV210 || ARCH_EXYNOS
> +	help
> +	  Support for MIPI CSI-2 and MIPI DSI DPHY found on Samsung S5P
> +	  and EXYNOS SoCs.
> +
> +config PHY_EXYNOS5250_SATA
> +	tristate "Exynos5250 Sata SerDes/PHY driver"
> +	depends on SOC_EXYNOS5250
> +	depends on HAS_IOMEM
> +	depends on OF
> +	select GENERIC_PHY
> +	select I2C
> +	select I2C_S3C2410
> +	select MFD_SYSCON
> +	help
> +	  Enable this to support SATA SerDes/Phy found on Samsung's
> +	  Exynos5250 based SoCs.This SerDes/Phy supports SATA 1.5 Gb/s,
> +	  SATA 3.0 Gb/s, SATA 6.0 Gb/s speeds. It supports one SATA host
> +	  port to accept one SATA device.
> diff --git a/drivers/phy/samsung/Makefile b/drivers/phy/samsung/Makefile
> new file mode 100644
> index 0000000..585dbd7
> --- /dev/null
> +++ b/drivers/phy/samsung/Makefile
> @@ -0,0 +1,10 @@
> +obj-$(CONFIG_PHY_SAMSUNG_USB2)		+= phy-exynos-usb2.o
> +phy-exynos-usb2-y			+= phy-samsung-usb2.o
> +phy-exynos-usb2-$(CONFIG_PHY_S5PV210_USB2)	+= phy-s5pv210-usb2.o
> +phy-exynos-usb2-$(CONFIG_PHY_EXYNOS4210_USB2)	+= phy-exynos4210-usb2.o
> +phy-exynos-usb2-$(CONFIG_PHY_EXYNOS4X12_USB2)	+= phy-exynos4x12-usb2.o
> +phy-exynos-usb2-$(CONFIG_PHY_EXYNOS5250_USB2)	+= phy-exynos5250-usb2.o
> +obj-$(CONFIG_PHY_EXYNOS5_USBDRD)	+= phy-exynos5-usbdrd.o
> +obj-$(CONFIG_PHY_EXYNOS_DP_VIDEO)	+= phy-exynos-dp-video.o
> +obj-$(CONFIG_PHY_EXYNOS_MIPI_VIDEO)	+= phy-exynos-mipi-video.o
> +obj-$(CONFIG_PHY_EXYNOS5250_SATA)	+= phy-exynos5250-sata.o
> diff --git a/drivers/phy/phy-exynos-dp-video.c
> b/drivers/phy/samsung/phy-exynos-dp-video.c similarity index 100%
> rename from drivers/phy/phy-exynos-dp-video.c
> rename to drivers/phy/samsung/phy-exynos-dp-video.c
> diff --git a/drivers/phy/phy-exynos-mipi-video.c
> b/drivers/phy/samsung/phy-exynos-mipi-video.c similarity index 100%
> rename from drivers/phy/phy-exynos-mipi-video.c
> rename to drivers/phy/samsung/phy-exynos-mipi-video.c
> diff --git a/drivers/phy/phy-exynos4210-usb2.c
> b/drivers/phy/samsung/phy-exynos4210-usb2.c similarity index 100%
> rename from drivers/phy/phy-exynos4210-usb2.c
> rename to drivers/phy/samsung/phy-exynos4210-usb2.c
> diff --git a/drivers/phy/phy-exynos4x12-usb2.c
> b/drivers/phy/samsung/phy-exynos4x12-usb2.c similarity index 100%
> rename from drivers/phy/phy-exynos4x12-usb2.c
> rename to drivers/phy/samsung/phy-exynos4x12-usb2.c
> diff --git a/drivers/phy/phy-exynos5-usbdrd.c
> b/drivers/phy/samsung/phy-exynos5-usbdrd.c similarity index 100%
> rename from drivers/phy/phy-exynos5-usbdrd.c
> rename to drivers/phy/samsung/phy-exynos5-usbdrd.c
> diff --git a/drivers/phy/phy-exynos5250-sata.c
> b/drivers/phy/samsung/phy-exynos5250-sata.c similarity index 100%
> rename from drivers/phy/phy-exynos5250-sata.c
> rename to drivers/phy/samsung/phy-exynos5250-sata.c
> diff --git a/drivers/phy/phy-exynos5250-usb2.c
> b/drivers/phy/samsung/phy-exynos5250-usb2.c similarity index 100%
> rename from drivers/phy/phy-exynos5250-usb2.c
> rename to drivers/phy/samsung/phy-exynos5250-usb2.c
> diff --git a/drivers/phy/phy-s5pv210-usb2.c
> b/drivers/phy/samsung/phy-s5pv210-usb2.c similarity index 100%
> rename from drivers/phy/phy-s5pv210-usb2.c
> rename to drivers/phy/samsung/phy-s5pv210-usb2.c
> diff --git a/drivers/phy/phy-samsung-usb2.c
> b/drivers/phy/samsung/phy-samsung-usb2.c similarity index 100%
> rename from drivers/phy/phy-samsung-usb2.c
> rename to drivers/phy/samsung/phy-samsung-usb2.c
> diff --git a/drivers/phy/phy-samsung-usb2.h
> b/drivers/phy/samsung/phy-samsung-usb2.h similarity index 100%
> rename from drivers/phy/phy-samsung-usb2.h
> rename to drivers/phy/samsung/phy-samsung-usb2.h
> diff --git a/drivers/phy/st/Kconfig b/drivers/phy/st/Kconfig
> new file mode 100644
> index 0000000..651b2bf
> --- /dev/null
> +++ b/drivers/phy/st/Kconfig
> @@ -0,0 +1,51 @@
> +#
> +# PHY drivers for ST Micro platforms
> +#
> +config PHY_MIPHY28LP
> +	tristate "STMicroelectronics MIPHY28LP PHY driver for STiH407"
> +	depends on ARCH_STI
> +	select GENERIC_PHY
> +	help
> +	  Enable this to support the miphy transceiver (for SATA/PCIE/USB3)
> +	  that is part of STMicroelectronics STiH407 SoC.
> +
> +config PHY_MIPHY365X
> +	tristate "STMicroelectronics MIPHY365X PHY driver for STiH41x series"
> +	depends on ARCH_STI
> +	depends on HAS_IOMEM
> +	depends on OF
> +	select GENERIC_PHY
> +	help
> +	  Enable this to support the miphy transceiver (for SATA/PCIE)
> +	  that is part of STMicroelectronics STiH41x SoC series.
> +
> +config PHY_ST_SPEAR1310_MIPHY
> +	tristate "ST SPEAR1310-MIPHY driver"
> +	select GENERIC_PHY
> +	depends on MACH_SPEAR1310 || COMPILE_TEST
> +	help
> +	  Support for ST SPEAr1310 MIPHY which can be used for PCIe and SATA.
> +
> +config PHY_ST_SPEAR1340_MIPHY
> +	tristate "ST SPEAR1340-MIPHY driver"
> +	select GENERIC_PHY
> +	depends on MACH_SPEAR1340 || COMPILE_TEST
> +	help
> +	  Support for ST SPEAr1340 MIPHY which can be used for PCIe and SATA.
> +
> +config PHY_STIH407_USB
> +	tristate "STMicroelectronics USB2 picoPHY driver for STiH407 family"
> +	depends on RESET_CONTROLLER
> +	depends on ARCH_STI || COMPILE_TEST
> +	select GENERIC_PHY
> +	help
> +	  Enable this support to enable the picoPHY device used by USB2
> +	  and USB3 controllers on STMicroelectronics STiH407 SoC families.
> +
> +config PHY_STIH41X_USB
> +	tristate "STMicroelectronics USB2 PHY driver for STiH41x series"
> +	depends on ARCH_STI
> +	select GENERIC_PHY
> +	help
> +	  Enable this to support the USB transceiver that is part of
> +	  STMicroelectronics STiH41x SoC series.
> diff --git a/drivers/phy/st/Makefile b/drivers/phy/st/Makefile
> new file mode 100644
> index 0000000..907561b
> --- /dev/null
> +++ b/drivers/phy/st/Makefile
> @@ -0,0 +1,6 @@
> +obj-$(CONFIG_PHY_MIPHY28LP) 		+= phy-miphy28lp.o
> +obj-$(CONFIG_PHY_MIPHY365X)		+= phy-miphy365x.o
> +obj-$(CONFIG_PHY_ST_SPEAR1310_MIPHY)	+= phy-spear1310-miphy.o
> +obj-$(CONFIG_PHY_ST_SPEAR1340_MIPHY)	+= phy-spear1340-miphy.o
> +obj-$(CONFIG_PHY_STIH407_USB)		+= phy-stih407-usb.o
> +obj-$(CONFIG_PHY_STIH41X_USB)		+= phy-stih41x-usb.o
> diff --git a/drivers/phy/phy-miphy28lp.c b/drivers/phy/st/phy-miphy28lp.c
> similarity index 100%
> rename from drivers/phy/phy-miphy28lp.c
> rename to drivers/phy/st/phy-miphy28lp.c
> diff --git a/drivers/phy/phy-miphy365x.c b/drivers/phy/st/phy-miphy365x.c
> similarity index 100%
> rename from drivers/phy/phy-miphy365x.c
> rename to drivers/phy/st/phy-miphy365x.c
> diff --git a/drivers/phy/phy-spear1310-miphy.c
> b/drivers/phy/st/phy-spear1310-miphy.c similarity index 100%
> rename from drivers/phy/phy-spear1310-miphy.c
> rename to drivers/phy/st/phy-spear1310-miphy.c
> diff --git a/drivers/phy/phy-spear1340-miphy.c
> b/drivers/phy/st/phy-spear1340-miphy.c similarity index 100%
> rename from drivers/phy/phy-spear1340-miphy.c
> rename to drivers/phy/st/phy-spear1340-miphy.c
> diff --git a/drivers/phy/phy-stih407-usb.c
> b/drivers/phy/st/phy-stih407-usb.c similarity index 100%
> rename from drivers/phy/phy-stih407-usb.c
> rename to drivers/phy/st/phy-stih407-usb.c
> diff --git a/drivers/phy/phy-stih41x-usb.c
> b/drivers/phy/st/phy-stih41x-usb.c similarity index 100%
> rename from drivers/phy/phy-stih41x-usb.c
> rename to drivers/phy/st/phy-stih41x-usb.c
> diff --git a/drivers/phy/sunxi/Kconfig b/drivers/phy/sunxi/Kconfig
> new file mode 100644
> index 0000000..eb06427
> --- /dev/null
> +++ b/drivers/phy/sunxi/Kconfig
> @@ -0,0 +1,28 @@
> +#
> +# PHY drivers for Allwinner's sunxi platforms
> +#
> +config PHY_SUN4I_USB
> +	tristate "Allwinner sunxi SoC USB PHY driver"
> +	depends on ARCH_SUNXI && HAS_IOMEM && OF
> +	depends on RESET_CONTROLLER
> +	depends on EXTCON
> +	depends on POWER_SUPPLY
> +	select GENERIC_PHY
> +	help
> +	  Enable this to support the transceiver that is part of Allwinner
> +	  sunxi SoCs.
> +
> +	  This driver controls the entire USB PHY block, both the USB OTG
> +	  parts, as well as the 2 regular USB 2 host PHYs.
> +
> +config PHY_SUN9I_USB
> +	tristate "Allwinner sun9i SoC USB PHY driver"
> +	depends on ARCH_SUNXI && HAS_IOMEM && OF
> +	depends on RESET_CONTROLLER
> +	depends on USB_COMMON
> +	select GENERIC_PHY
> +	help
> +	  Enable this to support the transceiver that is part of Allwinner
> +	  sun9i SoCs.
> +
> +	  This driver controls each individual USB 2 host PHY.
> diff --git a/drivers/phy/sunxi/Makefile b/drivers/phy/sunxi/Makefile
> new file mode 100644
> index 0000000..8605529c
> --- /dev/null
> +++ b/drivers/phy/sunxi/Makefile
> @@ -0,0 +1,2 @@
> +obj-$(CONFIG_PHY_SUN4I_USB)		+= phy-sun4i-usb.o
> +obj-$(CONFIG_PHY_SUN9I_USB)		+= phy-sun9i-usb.o
> diff --git a/drivers/phy/phy-sun4i-usb.c
> b/drivers/phy/sunxi/phy-sun4i-usb.c similarity index 100%
> rename from drivers/phy/phy-sun4i-usb.c
> rename to drivers/phy/sunxi/phy-sun4i-usb.c
> diff --git a/drivers/phy/phy-sun9i-usb.c
> b/drivers/phy/sunxi/phy-sun9i-usb.c similarity index 100%
> rename from drivers/phy/phy-sun9i-usb.c
> rename to drivers/phy/sunxi/phy-sun9i-usb.c
> diff --git a/drivers/phy/ti/Kconfig b/drivers/phy/ti/Kconfig
> new file mode 100644
> index 0000000..1e3e307
> --- /dev/null
> +++ b/drivers/phy/ti/Kconfig
> @@ -0,0 +1,67 @@
> +#
> +# PHY drivers for TI platforms
> +#
> +config PHY_DM816X_USB
> +	tristate "TI dm816x USB PHY driver"
> +	depends on ARCH_OMAP2PLUS
> +	depends on USB_SUPPORT
> +	select GENERIC_PHY
> +	select USB_PHY
> +	help
> +	  Enable this for dm816x USB to work.
> +
> +config OMAP_CONTROL_PHY
> +	tristate "OMAP CONTROL PHY Driver"
> +	depends on ARCH_OMAP2PLUS || COMPILE_TEST
> +	help
> +	  Enable this to add support for the PHY part present in the control
> +	  module. This driver has API to power on the USB2 PHY and to write to
> +	  the mailbox. The mailbox is present only in omap4 and the register to
> +	  power on the USB2 PHY is present in OMAP4 and OMAP5. OMAP5 has an
> +	  additional register to power on USB3 PHY/SATA PHY/PCIE PHY
> +	  (PIPE3 PHY).
> +
> +config OMAP_USB2
> +	tristate "OMAP USB2 PHY Driver"
> +	depends on ARCH_OMAP2PLUS
> +	depends on USB_SUPPORT
> +	select GENERIC_PHY
> +	select USB_PHY
> +	select OMAP_CONTROL_PHY
> +	depends on OMAP_OCP2SCP
> +	help
> +	  Enable this to support the transceiver that is part of SOC. This
> +	  driver takes care of all the PHY functionality apart from comparator.
> +	  The USB OTG controller communicates with the comparator using this
> +	  driver.
> +
> +config TI_PIPE3
> +	tristate "TI PIPE3 PHY Driver"
> +	depends on ARCH_OMAP2PLUS || COMPILE_TEST
> +	select GENERIC_PHY
> +	select OMAP_CONTROL_PHY
> +	depends on OMAP_OCP2SCP
> +	help
> +	  Enable this to support the PIPE3 PHY that is part of TI SOCs. This
> +	  driver takes care of all the PHY functionality apart from comparator.
> +	  This driver interacts with the "OMAP Control PHY Driver" to power
> +	  on/off the PHY.
> +
> +config PHY_TUSB1210
> +	tristate "TI TUSB1210 ULPI PHY module"
> +	depends on USB_ULPI_BUS
> +	select GENERIC_PHY
> +	help
> +	  Support for TI TUSB1210 USB ULPI PHY.
> +
> +config TWL4030_USB
> +	tristate "TWL4030 USB Transceiver Driver"
> +	depends on TWL4030_CORE && REGULATOR_TWL4030 && USB_MUSB_OMAP2PLUS
> +	depends on USB_SUPPORT
> +	select GENERIC_PHY
> +	select USB_PHY
> +	help
> +	  Enable this to support the USB OTG transceiver on TWL4030
> +	  family chips (including the TWL5030 and TPS659x0 devices).
> +	  This transceiver supports high and full speed devices plus,
> +	  in host mode, low speed.
> diff --git a/drivers/phy/ti/Makefile b/drivers/phy/ti/Makefile
> new file mode 100644
> index 0000000..2d16f77
> --- /dev/null
> +++ b/drivers/phy/ti/Makefile
> @@ -0,0 +1,6 @@
> +obj-$(CONFIG_PHY_DM816X_USB)		+= phy-dm816x-usb.o
> +obj-$(CONFIG_OMAP_CONTROL_PHY)		+= phy-omap-control.o
> +obj-$(CONFIG_OMAP_USB2)			+= phy-omap-usb2.o
> +obj-$(CONFIG_TI_PIPE3)			+= phy-ti-pipe3.o
> +obj-$(CONFIG_PHY_TUSB1210)		+= phy-tusb1210.o
> +obj-$(CONFIG_TWL4030_USB)		+= phy-twl4030-usb.o
> diff --git a/drivers/phy/phy-dm816x-usb.c
> b/drivers/phy/ti/phy-dm816x-usb.c similarity index 100%
> rename from drivers/phy/phy-dm816x-usb.c
> rename to drivers/phy/ti/phy-dm816x-usb.c
> diff --git a/drivers/phy/phy-omap-control.c
> b/drivers/phy/ti/phy-omap-control.c similarity index 100%
> rename from drivers/phy/phy-omap-control.c
> rename to drivers/phy/ti/phy-omap-control.c
> diff --git a/drivers/phy/phy-omap-usb2.c b/drivers/phy/ti/phy-omap-usb2.c
> similarity index 100%
> rename from drivers/phy/phy-omap-usb2.c
> rename to drivers/phy/ti/phy-omap-usb2.c
> diff --git a/drivers/phy/phy-ti-pipe3.c b/drivers/phy/ti/phy-ti-pipe3.c
> similarity index 100%
> rename from drivers/phy/phy-ti-pipe3.c
> rename to drivers/phy/ti/phy-ti-pipe3.c
> diff --git a/drivers/phy/phy-tusb1210.c b/drivers/phy/ti/phy-tusb1210.c
> similarity index 100%
> rename from drivers/phy/phy-tusb1210.c
> rename to drivers/phy/ti/phy-tusb1210.c
> diff --git a/drivers/phy/phy-twl4030-usb.c
> b/drivers/phy/ti/phy-twl4030-usb.c similarity index 100%
> rename from drivers/phy/phy-twl4030-usb.c
> rename to drivers/phy/ti/phy-twl4030-usb.c
> diff --git a/drivers/phy/ulpi_phy.h b/drivers/phy/ti/ulpi_phy.h
> similarity index 100%
> rename from drivers/phy/ulpi_phy.h
> rename to drivers/phy/ti/ulpi_phy.h

--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
kernel test robot April 1, 2016, 3:31 p.m. UTC | #8
Hi Vivek,

[auto build test ERROR on rockchip/for-next]
[also build test ERROR on v4.6-rc1 next-20160401]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]

url:    https://github.com/0day-ci/linux/commits/Vivek-Gautam/phy-Group-vendor-specific-phy-drivers/20160401-192920
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git for-next
config: arm-allyesconfig (attached as .config)
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=arm 

All errors (new ones prefixed by >>):

>> make[4]: *** No rule to make target 'drivers/phy/qcom/+=', needed by 'drivers/phy/qcom/built-in.o'.
   make[4]: Target '__build' not remade because of errors.

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
Krzysztof Kozlowski April 3, 2016, 6:05 a.m. UTC | #9
On Fri, Apr 01, 2016 at 04:59:15PM +0530, Vivek Gautam wrote:
> Adding vendor specific directories in phy to group
> phy drivers under their respective vendor umbrella.
> 
> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
> ---
> 
> With growing number of phy drivers, it makes sense to
> group these drivers under their respective vendor/platform
> umbrella directory.
> 
> Build-tested 'multi_v7_defconfig'.

Please update also the MAINTAINERS file. For many entires the path won't
match anymore.

Best regards,
Krzysztof

--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Vivek Gautam April 5, 2016, 4:52 a.m. UTC | #10
Hi Krzysztof,


On Sat, Apr 2, 2016 at 11:05 PM, Krzysztof Kozlowski
<k.kozlowski@samsung.com> wrote:
> On Fri, Apr 01, 2016 at 04:59:15PM +0530, Vivek Gautam wrote:
>> Adding vendor specific directories in phy to group
>> phy drivers under their respective vendor umbrella.
>>
>> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
>> ---
>>
>> With growing number of phy drivers, it makes sense to
>> group these drivers under their respective vendor/platform
>> umbrella directory.
>>
>> Build-tested 'multi_v7_defconfig'.
>
> Please update also the MAINTAINERS file. For many entires the path won't
> match anymore.

Thanks for pointing out. I will update the MAINTAINERS file as well.

>
> Best regards,
> Krzysztof
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
Vivek Gautam April 5, 2016, 4:54 a.m. UTC | #11
On Fri, Apr 1, 2016 at 8:31 AM, kbuild test robot <lkp@intel.com> wrote:
> Hi Vivek,
>
> [auto build test ERROR on rockchip/for-next]
> [also build test ERROR on v4.6-rc1 next-20160401]
> [if your patch is applied to the wrong git tree, please drop us a note to help improving the system]
>
> url:    https://github.com/0day-ci/linux/commits/Vivek-Gautam/phy-Group-vendor-specific-phy-drivers/20160401-192920
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git for-next
> config: arm-allyesconfig (attached as .config)
> reproduce:
>         wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # save the attached .config to linux build tree
>         make.cross ARCH=arm
>
> All errors (new ones prefixed by >>):
>
>>> make[4]: *** No rule to make target 'drivers/phy/qcom/+=', needed by 'drivers/phy/qcom/built-in.o'.
>    make[4]: Target '__build' not remade because of errors.

will fix this.

>
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
Kishon Vijay Abraham I April 6, 2016, 12:51 p.m. UTC | #12
Hi,

On Friday 01 April 2016 07:05 PM, Vivek Gautam wrote:
> Hi,
> 
> 
> On Fri, Apr 1, 2016 at 6:05 AM, Kishon Vijay Abraham I <kishon@ti.com> wrote:
>> Hi,
>>
>> On Friday 01 April 2016 04:59 PM, Vivek Gautam wrote:
>>> Adding vendor specific directories in phy to group
>>> phy drivers under their respective vendor umbrella.
>>>
>>> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
>>> ---
>>>
>>> With growing number of phy drivers, it makes sense to
>>> group these drivers under their respective vendor/platform
>>> umbrella directory.
>>>
>>> Build-tested 'multi_v7_defconfig'.
>>>
>>>  drivers/phy/Kconfig                               | 386 +---------------------
>>>  drivers/phy/Makefile                              |  57 +---
>>>  drivers/phy/bcom/Kconfig                          |  27 ++
>>>  drivers/phy/bcom/Makefile                         |   3 +
>>>  drivers/phy/{ => bcom}/phy-bcm-cygnus-pcie.c      |   0
>>>  drivers/phy/{ => bcom}/phy-bcm-kona-usb2.c        |   0
>>>  drivers/phy/{ => bcom}/phy-brcmstb-sata.c         |   0
>>>  drivers/phy/hisi/Kconfig                          |  20 ++
>>>  drivers/phy/hisi/Makefile                         |   2 +
>>>  drivers/phy/{ => hisi}/phy-hi6220-usb.c           |   0
>>>  drivers/phy/{ => hisi}/phy-hix5hd2-sata.c         |   0
>>>  drivers/phy/marvell/Kconfig                       |  50 +++
>>>  drivers/phy/marvell/Makefile                      |   6 +
>>>  drivers/phy/{ => marvell}/phy-armada375-usb2.c    |   0
>>>  drivers/phy/{ => marvell}/phy-berlin-sata.c       |   0
>>>  drivers/phy/{ => marvell}/phy-berlin-usb.c        |   0
>>>  drivers/phy/{ => marvell}/phy-mvebu-sata.c        |   0
>>>  drivers/phy/{ => marvell}/phy-pxa-28nm-hsic.c     |   0
>>>  drivers/phy/{ => marvell}/phy-pxa-28nm-usb2.c     |   0
>>>  drivers/phy/qcom/Kconfig                          |  23 ++
>>>  drivers/phy/qcom/Makefile                         |   5 +
>>>  drivers/phy/{ => qcom}/phy-qcom-apq8064-sata.c    |   0
>>>  drivers/phy/{ => qcom}/phy-qcom-ipq806x-sata.c    |   0
>>>  drivers/phy/{ => qcom}/phy-qcom-ufs-i.h           |   0
>>>  drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.c    |   0
>>>  drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.h    |   0
>>>  drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.c    |   0
>>>  drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.h    |   0
>>>  drivers/phy/{ => qcom}/phy-qcom-ufs.c             |   0
>>>  drivers/phy/rcar/Kconfig                          |  16 +
>>>  drivers/phy/rcar/Makefile                         |   2 +
>>>  drivers/phy/{ => rcar}/phy-rcar-gen2.c            |   0
>>>  drivers/phy/{ => rcar}/phy-rcar-gen3-usb2.c       |   0
>>>  drivers/phy/rockchip/Kconfig                      |  23 ++
>>>  drivers/phy/rockchip/Makefile                     |   3 +
>>>  drivers/phy/{ => rockchip}/phy-rockchip-dp.c      |   0
>>>  drivers/phy/{ => rockchip}/phy-rockchip-emmc.c    |   0
>>>  drivers/phy/{ => rockchip}/phy-rockchip-usb.c     |   0
>>>  drivers/phy/samsung/Kconfig                       |  87 +++++
>>>  drivers/phy/samsung/Makefile                      |  10 +
>>>  drivers/phy/{ => samsung}/phy-exynos-dp-video.c   |   0
>>>  drivers/phy/{ => samsung}/phy-exynos-mipi-video.c |   0
>>>  drivers/phy/{ => samsung}/phy-exynos4210-usb2.c   |   0
>>>  drivers/phy/{ => samsung}/phy-exynos4x12-usb2.c   |   0
>>>  drivers/phy/{ => samsung}/phy-exynos5-usbdrd.c    |   0
>>>  drivers/phy/{ => samsung}/phy-exynos5250-sata.c   |   0
>>>  drivers/phy/{ => samsung}/phy-exynos5250-usb2.c   |   0
>>>  drivers/phy/{ => samsung}/phy-s5pv210-usb2.c      |   0
>>>  drivers/phy/{ => samsung}/phy-samsung-usb2.c      |   0
>>>  drivers/phy/{ => samsung}/phy-samsung-usb2.h      |   0
>>>  drivers/phy/st/Kconfig                            |  51 +++
>>>  drivers/phy/st/Makefile                           |   6 +
>>>  drivers/phy/{ => st}/phy-miphy28lp.c              |   0
>>>  drivers/phy/{ => st}/phy-miphy365x.c              |   0
>>>  drivers/phy/{ => st}/phy-spear1310-miphy.c        |   0
>>>  drivers/phy/{ => st}/phy-spear1340-miphy.c        |   0
>>>  drivers/phy/{ => st}/phy-stih407-usb.c            |   0
>>>  drivers/phy/{ => st}/phy-stih41x-usb.c            |   0
>>>  drivers/phy/sunxi/Kconfig                         |  28 ++
>>>  drivers/phy/sunxi/Makefile                        |   2 +
>>>  drivers/phy/{ => sunxi}/phy-sun4i-usb.c           |   0
>>>  drivers/phy/{ => sunxi}/phy-sun9i-usb.c           |   0
>>>  drivers/phy/ti/Kconfig                            |  67 ++++
>>>  drivers/phy/ti/Makefile                           |   6 +
>>>  drivers/phy/{ => ti}/phy-dm816x-usb.c             |   0
>>>  drivers/phy/{ => ti}/phy-omap-control.c           |   0
>>>  drivers/phy/{ => ti}/phy-omap-usb2.c              |   0
>>>  drivers/phy/{ => ti}/phy-ti-pipe3.c               |   0
>>>  drivers/phy/{ => ti}/phy-tusb1210.c               |   0
>>>  drivers/phy/{ => ti}/phy-twl4030-usb.c            |   0
>>>  drivers/phy/{ => ti}/ulpi_phy.h                   |   0
>>
>> ulpi_phy.h is not specific to TI though at this point tusb1210 is the only ULPI
>> driver.
> 
> Yes, you are right. But i was hesitant to add a multi-level header
> file include in the phy driver
> which uses it.
> 
> Does it makes sense to move this ulpi_phy.h to include/linux/phy ?

yeah.. that should be okay.
> 
>>>  71 files changed, 464 insertions(+), 416 deletions(-)
>>>  create mode 100644 drivers/phy/bcom/Kconfig
>>>  create mode 100644 drivers/phy/bcom/Makefile
>>>  rename drivers/phy/{ => bcom}/phy-bcm-cygnus-pcie.c (100%)
>>>  rename drivers/phy/{ => bcom}/phy-bcm-kona-usb2.c (100%)
>>>  rename drivers/phy/{ => bcom}/phy-brcmstb-sata.c (100%)
>>>  create mode 100644 drivers/phy/hisi/Kconfig
>>>  create mode 100644 drivers/phy/hisi/Makefile
>>>  rename drivers/phy/{ => hisi}/phy-hi6220-usb.c (100%)
>>>  rename drivers/phy/{ => hisi}/phy-hix5hd2-sata.c (100%)
>>>  create mode 100644 drivers/phy/marvell/Kconfig
>>>  create mode 100644 drivers/phy/marvell/Makefile
>>>  rename drivers/phy/{ => marvell}/phy-armada375-usb2.c (100%)
>>>  rename drivers/phy/{ => marvell}/phy-berlin-sata.c (100%)
>>>  rename drivers/phy/{ => marvell}/phy-berlin-usb.c (100%)
>>>  rename drivers/phy/{ => marvell}/phy-mvebu-sata.c (100%)
>>>  rename drivers/phy/{ => marvell}/phy-pxa-28nm-hsic.c (100%)
>>>  rename drivers/phy/{ => marvell}/phy-pxa-28nm-usb2.c (100%)
>>>  create mode 100644 drivers/phy/qcom/Kconfig
>>>  create mode 100644 drivers/phy/qcom/Makefile
>>>  rename drivers/phy/{ => qcom}/phy-qcom-apq8064-sata.c (100%)
>>>  rename drivers/phy/{ => qcom}/phy-qcom-ipq806x-sata.c (100%)
>>>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-i.h (100%)
>>>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.c (100%)
>>>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.h (100%)
>>>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.c (100%)
>>>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.h (100%)
>>>  rename drivers/phy/{ => qcom}/phy-qcom-ufs.c (100%)
>>>  create mode 100644 drivers/phy/rcar/Kconfig
>>>  create mode 100644 drivers/phy/rcar/Makefile
>>>  rename drivers/phy/{ => rcar}/phy-rcar-gen2.c (100%)
>>>  rename drivers/phy/{ => rcar}/phy-rcar-gen3-usb2.c (100%)
>>>  create mode 100644 drivers/phy/rockchip/Kconfig
>>>  create mode 100644 drivers/phy/rockchip/Makefile
>>>  rename drivers/phy/{ => rockchip}/phy-rockchip-dp.c (100%)
>>>  rename drivers/phy/{ => rockchip}/phy-rockchip-emmc.c (100%)
>>>  rename drivers/phy/{ => rockchip}/phy-rockchip-usb.c (100%)
>>>  create mode 100644 drivers/phy/samsung/Kconfig
>>>  create mode 100644 drivers/phy/samsung/Makefile
>>>  rename drivers/phy/{ => samsung}/phy-exynos-dp-video.c (100%)
>>>  rename drivers/phy/{ => samsung}/phy-exynos-mipi-video.c (100%)
>>>  rename drivers/phy/{ => samsung}/phy-exynos4210-usb2.c (100%)
>>>  rename drivers/phy/{ => samsung}/phy-exynos4x12-usb2.c (100%)
>>>  rename drivers/phy/{ => samsung}/phy-exynos5-usbdrd.c (100%)
>>>  rename drivers/phy/{ => samsung}/phy-exynos5250-sata.c (100%)
>>>  rename drivers/phy/{ => samsung}/phy-exynos5250-usb2.c (100%)
>>>  rename drivers/phy/{ => samsung}/phy-s5pv210-usb2.c (100%)
>>>  rename drivers/phy/{ => samsung}/phy-samsung-usb2.c (100%)
>>>  rename drivers/phy/{ => samsung}/phy-samsung-usb2.h (100%)
>>>  create mode 100644 drivers/phy/st/Kconfig
>>>  create mode 100644 drivers/phy/st/Makefile
>>>  rename drivers/phy/{ => st}/phy-miphy28lp.c (100%)
>>>  rename drivers/phy/{ => st}/phy-miphy365x.c (100%)
>>>  rename drivers/phy/{ => st}/phy-spear1310-miphy.c (100%)
>>>  rename drivers/phy/{ => st}/phy-spear1340-miphy.c (100%)
>>>  rename drivers/phy/{ => st}/phy-stih407-usb.c (100%)
>>>  rename drivers/phy/{ => st}/phy-stih41x-usb.c (100%)
>>>  create mode 100644 drivers/phy/sunxi/Kconfig
>>>  create mode 100644 drivers/phy/sunxi/Makefile
>>>  rename drivers/phy/{ => sunxi}/phy-sun4i-usb.c (100%)
>>>  rename drivers/phy/{ => sunxi}/phy-sun9i-usb.c (100%)
>>>  create mode 100644 drivers/phy/ti/Kconfig
>>>  create mode 100644 drivers/phy/ti/Makefile
>>>  rename drivers/phy/{ => ti}/phy-dm816x-usb.c (100%)
>>>  rename drivers/phy/{ => ti}/phy-omap-control.c (100%)
>>>  rename drivers/phy/{ => ti}/phy-omap-usb2.c (100%)
>>>  rename drivers/phy/{ => ti}/phy-ti-pipe3.c (100%)
>>>  rename drivers/phy/{ => ti}/phy-tusb1210.c (100%)
>>>  rename drivers/phy/{ => ti}/phy-twl4030-usb.c (100%)
>>>  rename drivers/phy/{ => ti}/ulpi_phy.h (100%)
>>>
>>> diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig
>>> index 26566db..80c8c68 100644
>>> --- a/drivers/phy/Kconfig
>>> +++ b/drivers/phy/Kconfig
>>> @@ -15,45 +15,6 @@ config GENERIC_PHY
>>>         phy users can obtain reference to the PHY. All the users of this
>>>         framework should select this config.
>>>
>>
>>> +menuconfig PHY_PLAT
>>> +     bool "Platform Phy drivers"
>>
>> Not really convinced about adding a new config here. This will create new
>> dependencies and will also start breaking users of oldconfig.
> 
> This serves including all the directory paths in the 'make' for
> driver/phy/Makefile.
> 
> Otherwise each directory will have to be built as per particular platform
> And, not all drivers of a vendor are built for one-kind of platform,
> for example, Samsung uses ARCH_EXYNOS, as well as ARCH_S5PV210
> Similarly, Broadcom phy drivers are based on multiple platforms, and so
> does Marvell's.
> 
> Please suggest a concise way to include the vendor directories in the build path
> in drivers/phy/Makefile.

obj-y	+= vendor/?

-Kishon

> 
>>
>> Also not all of them are platform drivers (e.g ULPI PHY drivers).
> I Think this applies to ulpi_phy only at this moment, which we can resolve
> by moving that to include/linux path.
> 
>>
>> Thanks
>> Kishon
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Vivek Gautam April 6, 2016, 1:48 p.m. UTC | #13
Hi Kishon,


On Wed, Apr 6, 2016 at 5:51 AM, Kishon Vijay Abraham I <kishon@ti.com> wrote:
> Hi,
>
> On Friday 01 April 2016 07:05 PM, Vivek Gautam wrote:
>> Hi,
>>
>>
>> On Fri, Apr 1, 2016 at 6:05 AM, Kishon Vijay Abraham I <kishon@ti.com> wrote:
>>> Hi,
>>>
>>> On Friday 01 April 2016 04:59 PM, Vivek Gautam wrote:
>>>> Adding vendor specific directories in phy to group
>>>> phy drivers under their respective vendor umbrella.
>>>>
>>>> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
>>>> ---
>>>>
>>>> With growing number of phy drivers, it makes sense to
>>>> group these drivers under their respective vendor/platform
>>>> umbrella directory.
>>>>
>>>> Build-tested 'multi_v7_defconfig'.
>>>>
>>>>  drivers/phy/Kconfig                               | 386 +---------------------
>>>>  drivers/phy/Makefile                              |  57 +---
>>>>  drivers/phy/bcom/Kconfig                          |  27 ++
>>>>  drivers/phy/bcom/Makefile                         |   3 +
>>>>  drivers/phy/{ => bcom}/phy-bcm-cygnus-pcie.c      |   0
>>>>  drivers/phy/{ => bcom}/phy-bcm-kona-usb2.c        |   0
>>>>  drivers/phy/{ => bcom}/phy-brcmstb-sata.c         |   0
>>>>  drivers/phy/hisi/Kconfig                          |  20 ++
>>>>  drivers/phy/hisi/Makefile                         |   2 +
>>>>  drivers/phy/{ => hisi}/phy-hi6220-usb.c           |   0
>>>>  drivers/phy/{ => hisi}/phy-hix5hd2-sata.c         |   0
>>>>  drivers/phy/marvell/Kconfig                       |  50 +++
>>>>  drivers/phy/marvell/Makefile                      |   6 +
>>>>  drivers/phy/{ => marvell}/phy-armada375-usb2.c    |   0
>>>>  drivers/phy/{ => marvell}/phy-berlin-sata.c       |   0
>>>>  drivers/phy/{ => marvell}/phy-berlin-usb.c        |   0
>>>>  drivers/phy/{ => marvell}/phy-mvebu-sata.c        |   0
>>>>  drivers/phy/{ => marvell}/phy-pxa-28nm-hsic.c     |   0
>>>>  drivers/phy/{ => marvell}/phy-pxa-28nm-usb2.c     |   0
>>>>  drivers/phy/qcom/Kconfig                          |  23 ++
>>>>  drivers/phy/qcom/Makefile                         |   5 +
>>>>  drivers/phy/{ => qcom}/phy-qcom-apq8064-sata.c    |   0
>>>>  drivers/phy/{ => qcom}/phy-qcom-ipq806x-sata.c    |   0
>>>>  drivers/phy/{ => qcom}/phy-qcom-ufs-i.h           |   0
>>>>  drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.c    |   0
>>>>  drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.h    |   0
>>>>  drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.c    |   0
>>>>  drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.h    |   0
>>>>  drivers/phy/{ => qcom}/phy-qcom-ufs.c             |   0
>>>>  drivers/phy/rcar/Kconfig                          |  16 +
>>>>  drivers/phy/rcar/Makefile                         |   2 +
>>>>  drivers/phy/{ => rcar}/phy-rcar-gen2.c            |   0
>>>>  drivers/phy/{ => rcar}/phy-rcar-gen3-usb2.c       |   0
>>>>  drivers/phy/rockchip/Kconfig                      |  23 ++
>>>>  drivers/phy/rockchip/Makefile                     |   3 +
>>>>  drivers/phy/{ => rockchip}/phy-rockchip-dp.c      |   0
>>>>  drivers/phy/{ => rockchip}/phy-rockchip-emmc.c    |   0
>>>>  drivers/phy/{ => rockchip}/phy-rockchip-usb.c     |   0
>>>>  drivers/phy/samsung/Kconfig                       |  87 +++++
>>>>  drivers/phy/samsung/Makefile                      |  10 +
>>>>  drivers/phy/{ => samsung}/phy-exynos-dp-video.c   |   0
>>>>  drivers/phy/{ => samsung}/phy-exynos-mipi-video.c |   0
>>>>  drivers/phy/{ => samsung}/phy-exynos4210-usb2.c   |   0
>>>>  drivers/phy/{ => samsung}/phy-exynos4x12-usb2.c   |   0
>>>>  drivers/phy/{ => samsung}/phy-exynos5-usbdrd.c    |   0
>>>>  drivers/phy/{ => samsung}/phy-exynos5250-sata.c   |   0
>>>>  drivers/phy/{ => samsung}/phy-exynos5250-usb2.c   |   0
>>>>  drivers/phy/{ => samsung}/phy-s5pv210-usb2.c      |   0
>>>>  drivers/phy/{ => samsung}/phy-samsung-usb2.c      |   0
>>>>  drivers/phy/{ => samsung}/phy-samsung-usb2.h      |   0
>>>>  drivers/phy/st/Kconfig                            |  51 +++
>>>>  drivers/phy/st/Makefile                           |   6 +
>>>>  drivers/phy/{ => st}/phy-miphy28lp.c              |   0
>>>>  drivers/phy/{ => st}/phy-miphy365x.c              |   0
>>>>  drivers/phy/{ => st}/phy-spear1310-miphy.c        |   0
>>>>  drivers/phy/{ => st}/phy-spear1340-miphy.c        |   0
>>>>  drivers/phy/{ => st}/phy-stih407-usb.c            |   0
>>>>  drivers/phy/{ => st}/phy-stih41x-usb.c            |   0
>>>>  drivers/phy/sunxi/Kconfig                         |  28 ++
>>>>  drivers/phy/sunxi/Makefile                        |   2 +
>>>>  drivers/phy/{ => sunxi}/phy-sun4i-usb.c           |   0
>>>>  drivers/phy/{ => sunxi}/phy-sun9i-usb.c           |   0
>>>>  drivers/phy/ti/Kconfig                            |  67 ++++
>>>>  drivers/phy/ti/Makefile                           |   6 +
>>>>  drivers/phy/{ => ti}/phy-dm816x-usb.c             |   0
>>>>  drivers/phy/{ => ti}/phy-omap-control.c           |   0
>>>>  drivers/phy/{ => ti}/phy-omap-usb2.c              |   0
>>>>  drivers/phy/{ => ti}/phy-ti-pipe3.c               |   0
>>>>  drivers/phy/{ => ti}/phy-tusb1210.c               |   0
>>>>  drivers/phy/{ => ti}/phy-twl4030-usb.c            |   0
>>>>  drivers/phy/{ => ti}/ulpi_phy.h                   |   0
>>>
>>> ulpi_phy.h is not specific to TI though at this point tusb1210 is the only ULPI
>>> driver.
>>
>> Yes, you are right. But i was hesitant to add a multi-level header
>> file include in the phy driver
>> which uses it.
>>
>> Does it makes sense to move this ulpi_phy.h to include/linux/phy ?
>
> yeah.. that should be okay.
Alright, i will move this file there then.

>>
>>>>  71 files changed, 464 insertions(+), 416 deletions(-)
>>>>  create mode 100644 drivers/phy/bcom/Kconfig
>>>>  create mode 100644 drivers/phy/bcom/Makefile
>>>>  rename drivers/phy/{ => bcom}/phy-bcm-cygnus-pcie.c (100%)
>>>>  rename drivers/phy/{ => bcom}/phy-bcm-kona-usb2.c (100%)
>>>>  rename drivers/phy/{ => bcom}/phy-brcmstb-sata.c (100%)
>>>>  create mode 100644 drivers/phy/hisi/Kconfig
>>>>  create mode 100644 drivers/phy/hisi/Makefile
>>>>  rename drivers/phy/{ => hisi}/phy-hi6220-usb.c (100%)
>>>>  rename drivers/phy/{ => hisi}/phy-hix5hd2-sata.c (100%)
>>>>  create mode 100644 drivers/phy/marvell/Kconfig
>>>>  create mode 100644 drivers/phy/marvell/Makefile
>>>>  rename drivers/phy/{ => marvell}/phy-armada375-usb2.c (100%)
>>>>  rename drivers/phy/{ => marvell}/phy-berlin-sata.c (100%)
>>>>  rename drivers/phy/{ => marvell}/phy-berlin-usb.c (100%)
>>>>  rename drivers/phy/{ => marvell}/phy-mvebu-sata.c (100%)
>>>>  rename drivers/phy/{ => marvell}/phy-pxa-28nm-hsic.c (100%)
>>>>  rename drivers/phy/{ => marvell}/phy-pxa-28nm-usb2.c (100%)
>>>>  create mode 100644 drivers/phy/qcom/Kconfig
>>>>  create mode 100644 drivers/phy/qcom/Makefile
>>>>  rename drivers/phy/{ => qcom}/phy-qcom-apq8064-sata.c (100%)
>>>>  rename drivers/phy/{ => qcom}/phy-qcom-ipq806x-sata.c (100%)
>>>>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-i.h (100%)
>>>>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.c (100%)
>>>>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-14nm.h (100%)
>>>>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.c (100%)
>>>>  rename drivers/phy/{ => qcom}/phy-qcom-ufs-qmp-20nm.h (100%)
>>>>  rename drivers/phy/{ => qcom}/phy-qcom-ufs.c (100%)
>>>>  create mode 100644 drivers/phy/rcar/Kconfig
>>>>  create mode 100644 drivers/phy/rcar/Makefile
>>>>  rename drivers/phy/{ => rcar}/phy-rcar-gen2.c (100%)
>>>>  rename drivers/phy/{ => rcar}/phy-rcar-gen3-usb2.c (100%)
>>>>  create mode 100644 drivers/phy/rockchip/Kconfig
>>>>  create mode 100644 drivers/phy/rockchip/Makefile
>>>>  rename drivers/phy/{ => rockchip}/phy-rockchip-dp.c (100%)
>>>>  rename drivers/phy/{ => rockchip}/phy-rockchip-emmc.c (100%)
>>>>  rename drivers/phy/{ => rockchip}/phy-rockchip-usb.c (100%)
>>>>  create mode 100644 drivers/phy/samsung/Kconfig
>>>>  create mode 100644 drivers/phy/samsung/Makefile
>>>>  rename drivers/phy/{ => samsung}/phy-exynos-dp-video.c (100%)
>>>>  rename drivers/phy/{ => samsung}/phy-exynos-mipi-video.c (100%)
>>>>  rename drivers/phy/{ => samsung}/phy-exynos4210-usb2.c (100%)
>>>>  rename drivers/phy/{ => samsung}/phy-exynos4x12-usb2.c (100%)
>>>>  rename drivers/phy/{ => samsung}/phy-exynos5-usbdrd.c (100%)
>>>>  rename drivers/phy/{ => samsung}/phy-exynos5250-sata.c (100%)
>>>>  rename drivers/phy/{ => samsung}/phy-exynos5250-usb2.c (100%)
>>>>  rename drivers/phy/{ => samsung}/phy-s5pv210-usb2.c (100%)
>>>>  rename drivers/phy/{ => samsung}/phy-samsung-usb2.c (100%)
>>>>  rename drivers/phy/{ => samsung}/phy-samsung-usb2.h (100%)
>>>>  create mode 100644 drivers/phy/st/Kconfig
>>>>  create mode 100644 drivers/phy/st/Makefile
>>>>  rename drivers/phy/{ => st}/phy-miphy28lp.c (100%)
>>>>  rename drivers/phy/{ => st}/phy-miphy365x.c (100%)
>>>>  rename drivers/phy/{ => st}/phy-spear1310-miphy.c (100%)
>>>>  rename drivers/phy/{ => st}/phy-spear1340-miphy.c (100%)
>>>>  rename drivers/phy/{ => st}/phy-stih407-usb.c (100%)
>>>>  rename drivers/phy/{ => st}/phy-stih41x-usb.c (100%)
>>>>  create mode 100644 drivers/phy/sunxi/Kconfig
>>>>  create mode 100644 drivers/phy/sunxi/Makefile
>>>>  rename drivers/phy/{ => sunxi}/phy-sun4i-usb.c (100%)
>>>>  rename drivers/phy/{ => sunxi}/phy-sun9i-usb.c (100%)
>>>>  create mode 100644 drivers/phy/ti/Kconfig
>>>>  create mode 100644 drivers/phy/ti/Makefile
>>>>  rename drivers/phy/{ => ti}/phy-dm816x-usb.c (100%)
>>>>  rename drivers/phy/{ => ti}/phy-omap-control.c (100%)
>>>>  rename drivers/phy/{ => ti}/phy-omap-usb2.c (100%)
>>>>  rename drivers/phy/{ => ti}/phy-ti-pipe3.c (100%)
>>>>  rename drivers/phy/{ => ti}/phy-tusb1210.c (100%)
>>>>  rename drivers/phy/{ => ti}/phy-twl4030-usb.c (100%)
>>>>  rename drivers/phy/{ => ti}/ulpi_phy.h (100%)
>>>>
>>>> diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig
>>>> index 26566db..80c8c68 100644
>>>> --- a/drivers/phy/Kconfig
>>>> +++ b/drivers/phy/Kconfig
>>>> @@ -15,45 +15,6 @@ config GENERIC_PHY
>>>>         phy users can obtain reference to the PHY. All the users of this
>>>>         framework should select this config.
>>>>
>>>
>>>> +menuconfig PHY_PLAT
>>>> +     bool "Platform Phy drivers"
>>>
>>> Not really convinced about adding a new config here. This will create new
>>> dependencies and will also start breaking users of oldconfig.
>>
>> This serves including all the directory paths in the 'make' for
>> driver/phy/Makefile.
>>
>> Otherwise each directory will have to be built as per particular platform
>> And, not all drivers of a vendor are built for one-kind of platform,
>> for example, Samsung uses ARCH_EXYNOS, as well as ARCH_S5PV210
>> Similarly, Broadcom phy drivers are based on multiple platforms, and so
>> does Marvell's.
>>
>> Please suggest a concise way to include the vendor directories in the build path
>> in drivers/phy/Makefile.
>
> obj-y   += vendor/?

Yea, correct. Thanks
Will respin the patch with all the comments.

>
> -Kishon
>
>>
>>>
>>> Also not all of them are platform drivers (e.g ULPI PHY drivers).
>> I Think this applies to ulpi_phy only at this moment, which we can resolve
>> by moving that to include/linux path.
>>
>>>
>>> Thanks
>>> Kishon
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
>>> the body of a message to majordomo@vger.kernel.org
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>>
>>
diff mbox

Patch

diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig
index 26566db..80c8c68 100644
--- a/drivers/phy/Kconfig
+++ b/drivers/phy/Kconfig
@@ -15,45 +15,6 @@  config GENERIC_PHY
 	  phy users can obtain reference to the PHY. All the users of this
 	  framework should select this config.
 
-config PHY_BERLIN_USB
-	tristate "Marvell Berlin USB PHY Driver"
-	depends on ARCH_BERLIN && RESET_CONTROLLER && HAS_IOMEM && OF
-	select GENERIC_PHY
-	help
-	  Enable this to support the USB PHY on Marvell Berlin SoCs.
-
-config PHY_BERLIN_SATA
-	tristate "Marvell Berlin SATA PHY driver"
-	depends on ARCH_BERLIN && HAS_IOMEM && OF
-	select GENERIC_PHY
-	help
-	  Enable this to support the SATA PHY on Marvell Berlin SoCs.
-
-config ARMADA375_USBCLUSTER_PHY
-	def_bool y
-	depends on MACH_ARMADA_375 || COMPILE_TEST
-	depends on OF && HAS_IOMEM
-	select GENERIC_PHY
-
-config PHY_DM816X_USB
-	tristate "TI dm816x USB PHY driver"
-	depends on ARCH_OMAP2PLUS
-	depends on USB_SUPPORT
-	select GENERIC_PHY
-	select USB_PHY
-	help
-	  Enable this for dm816x USB to work.
-
-config PHY_EXYNOS_MIPI_VIDEO
-	tristate "S5P/EXYNOS SoC series MIPI CSI-2/DSI PHY driver"
-	depends on HAS_IOMEM
-	depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
-	select GENERIC_PHY
-	default y if ARCH_S5PV210 || ARCH_EXYNOS
-	help
-	  Support for MIPI CSI-2 and MIPI DSI DPHY found on Samsung S5P
-	  and EXYNOS SoCs.
-
 config PHY_LPC18XX_USB_OTG
 	tristate "NXP LPC18xx/43xx SoC USB OTG PHY driver"
 	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
@@ -65,154 +26,6 @@  config PHY_LPC18XX_USB_OTG
 	  This driver is need for USB0 support on LPC18xx/43xx and takes
 	  care of enabling and clock setup.
 
-config PHY_PXA_28NM_HSIC
-	tristate "Marvell USB HSIC 28nm PHY Driver"
-	depends on HAS_IOMEM
-	select GENERIC_PHY
-	help
-	  Enable this to support Marvell USB HSIC PHY driver for Marvell
-	  SoC. This driver will do the PHY initialization and shutdown.
-	  The PHY driver will be used by Marvell ehci driver.
-
-	  To compile this driver as a module, choose M here.
-
-config PHY_PXA_28NM_USB2
-	tristate "Marvell USB 2.0 28nm PHY Driver"
-	depends on HAS_IOMEM
-	select GENERIC_PHY
-	help
-	  Enable this to support Marvell USB 2.0 PHY driver for Marvell
-	  SoC. This driver will do the PHY initialization and shutdown.
-	  The PHY driver will be used by Marvell udc/ehci/otg driver.
-
-	  To compile this driver as a module, choose M here.
-
-config PHY_MVEBU_SATA
-	def_bool y
-	depends on ARCH_DOVE || MACH_DOVE || MACH_KIRKWOOD
-	depends on OF
-	select GENERIC_PHY
-
-config PHY_MIPHY28LP
-	tristate "STMicroelectronics MIPHY28LP PHY driver for STiH407"
-	depends on ARCH_STI
-	select GENERIC_PHY
-	help
-	  Enable this to support the miphy transceiver (for SATA/PCIE/USB3)
-	  that is part of STMicroelectronics STiH407 SoC.
-
-config PHY_MIPHY365X
-	tristate "STMicroelectronics MIPHY365X PHY driver for STiH41x series"
-	depends on ARCH_STI
-	depends on HAS_IOMEM
-	depends on OF
-	select GENERIC_PHY
-	help
-	  Enable this to support the miphy transceiver (for SATA/PCIE)
-	  that is part of STMicroelectronics STiH41x SoC series.
-
-config PHY_RCAR_GEN2
-	tristate "Renesas R-Car generation 2 USB PHY driver"
-	depends on ARCH_SHMOBILE
-	depends on GENERIC_PHY
-	help
-	  Support for USB PHY found on Renesas R-Car generation 2 SoCs.
-
-config PHY_RCAR_GEN3_USB2
-	tristate "Renesas R-Car generation 3 USB 2.0 PHY driver"
-	depends on OF && ARCH_SHMOBILE
-	select GENERIC_PHY
-	help
-	  Support for USB 2.0 PHY found on Renesas R-Car generation 3 SoCs.
-
-config OMAP_CONTROL_PHY
-	tristate "OMAP CONTROL PHY Driver"
-	depends on ARCH_OMAP2PLUS || COMPILE_TEST
-	help
-	  Enable this to add support for the PHY part present in the control
-	  module. This driver has API to power on the USB2 PHY and to write to
-	  the mailbox. The mailbox is present only in omap4 and the register to
-	  power on the USB2 PHY is present in OMAP4 and OMAP5. OMAP5 has an
-	  additional register to power on USB3 PHY/SATA PHY/PCIE PHY
-	  (PIPE3 PHY).
-
-config OMAP_USB2
-	tristate "OMAP USB2 PHY Driver"
-	depends on ARCH_OMAP2PLUS
-	depends on USB_SUPPORT
-	select GENERIC_PHY
-	select USB_PHY
-	select OMAP_CONTROL_PHY
-	depends on OMAP_OCP2SCP
-	help
-	  Enable this to support the transceiver that is part of SOC. This
-	  driver takes care of all the PHY functionality apart from comparator.
-	  The USB OTG controller communicates with the comparator using this
-	  driver.
-
-config TI_PIPE3
-	tristate "TI PIPE3 PHY Driver"
-	depends on ARCH_OMAP2PLUS || COMPILE_TEST
-	select GENERIC_PHY
-	select OMAP_CONTROL_PHY
-	depends on OMAP_OCP2SCP
-	help
-	  Enable this to support the PIPE3 PHY that is part of TI SOCs. This
-	  driver takes care of all the PHY functionality apart from comparator.
-	  This driver interacts with the "OMAP Control PHY Driver" to power
-	  on/off the PHY.
-
-config TWL4030_USB
-	tristate "TWL4030 USB Transceiver Driver"
-	depends on TWL4030_CORE && REGULATOR_TWL4030 && USB_MUSB_OMAP2PLUS
-	depends on USB_SUPPORT
-	select GENERIC_PHY
-	select USB_PHY
-	help
-	  Enable this to support the USB OTG transceiver on TWL4030
-	  family chips (including the TWL5030 and TPS659x0 devices).
-	  This transceiver supports high and full speed devices plus,
-	  in host mode, low speed.
-
-config PHY_EXYNOS_DP_VIDEO
-	tristate "EXYNOS SoC series Display Port PHY driver"
-	depends on OF
-	depends on ARCH_EXYNOS || COMPILE_TEST
-	default ARCH_EXYNOS
-	select GENERIC_PHY
-	help
-	  Support for Display Port PHY found on Samsung EXYNOS SoCs.
-
-config BCM_KONA_USB2_PHY
-	tristate "Broadcom Kona USB2 PHY Driver"
-	depends on HAS_IOMEM
-	select GENERIC_PHY
-	help
-	  Enable this to support the Broadcom Kona USB 2.0 PHY.
-
-config PHY_EXYNOS5250_SATA
-	tristate "Exynos5250 Sata SerDes/PHY driver"
-	depends on SOC_EXYNOS5250
-	depends on HAS_IOMEM
-	depends on OF
-	select GENERIC_PHY
-	select I2C
-	select I2C_S3C2410
-	select MFD_SYSCON
-	help
-	  Enable this to support SATA SerDes/Phy found on Samsung's
-	  Exynos5250 based SoCs.This SerDes/Phy supports SATA 1.5 Gb/s,
-	  SATA 3.0 Gb/s, SATA 6.0 Gb/s speeds. It supports one SATA host
-	  port to accept one SATA device.
-
-config PHY_HIX5HD2_SATA
-	tristate "HIX5HD2 SATA PHY Driver"
-	depends on ARCH_HIX5HD2 && OF && HAS_IOMEM
-	select GENERIC_PHY
-	select MFD_SYSCON
-	help
-	  Support for SATA PHY on Hisilicon hix5hd2 Soc.
-
 config PHY_MT65XX_USB3
 	tristate "Mediatek USB3.0 PHY Driver"
 	depends on ARCH_MEDIATEK && OF
@@ -222,93 +35,6 @@  config PHY_MT65XX_USB3
 	  for mt65xx SoCs. it supports two usb2.0 ports and
 	  one usb3.0 port.
 
-config PHY_HI6220_USB
-	tristate "hi6220 USB PHY support"
-	depends on (ARCH_HISI && ARM64) || COMPILE_TEST
-	select GENERIC_PHY
-	select MFD_SYSCON
-	help
-	  Enable this to support the HISILICON HI6220 USB PHY.
-
-	  To compile this driver as a module, choose M here.
-
-config PHY_SUN4I_USB
-	tristate "Allwinner sunxi SoC USB PHY driver"
-	depends on ARCH_SUNXI && HAS_IOMEM && OF
-	depends on RESET_CONTROLLER
-	depends on EXTCON
-	depends on POWER_SUPPLY
-	select GENERIC_PHY
-	help
-	  Enable this to support the transceiver that is part of Allwinner
-	  sunxi SoCs.
-
-	  This driver controls the entire USB PHY block, both the USB OTG
-	  parts, as well as the 2 regular USB 2 host PHYs.
-
-config PHY_SUN9I_USB
-	tristate "Allwinner sun9i SoC USB PHY driver"
-	depends on ARCH_SUNXI && HAS_IOMEM && OF
-	depends on RESET_CONTROLLER
-	depends on USB_COMMON
-	select GENERIC_PHY
-	help
-	  Enable this to support the transceiver that is part of Allwinner
-	  sun9i SoCs.
-
-	  This driver controls each individual USB 2 host PHY.
-
-config PHY_SAMSUNG_USB2
-	tristate "Samsung USB 2.0 PHY driver"
-	depends on HAS_IOMEM
-	depends on USB_EHCI_EXYNOS || USB_OHCI_EXYNOS || USB_DWC2
-	select GENERIC_PHY
-	select MFD_SYSCON
-	default ARCH_EXYNOS
-	help
-	  Enable this to support the Samsung USB 2.0 PHY driver for Samsung
-	  SoCs. This driver provides the interface for USB 2.0 PHY. Support
-	  for particular PHYs will be enabled based on the SoC type in addition
-	  to this driver.
-
-config PHY_S5PV210_USB2
-	bool "Support for S5PV210"
-	depends on PHY_SAMSUNG_USB2
-	depends on ARCH_S5PV210
-	help
-	  Enable USB PHY support for S5PV210. This option requires that Samsung
-	  USB 2.0 PHY driver is enabled and means that support for this
-	  particular SoC is compiled in the driver. In case of S5PV210 two phys
-	  are available - device and host.
-
-config PHY_EXYNOS4210_USB2
-	bool
-	depends on PHY_SAMSUNG_USB2
-	default CPU_EXYNOS4210
-
-config PHY_EXYNOS4X12_USB2
-	bool
-	depends on PHY_SAMSUNG_USB2
-	default SOC_EXYNOS3250 || SOC_EXYNOS4212 || SOC_EXYNOS4412
-
-config PHY_EXYNOS5250_USB2
-	bool
-	depends on PHY_SAMSUNG_USB2
-	default SOC_EXYNOS5250 || SOC_EXYNOS5420
-
-config PHY_EXYNOS5_USBDRD
-	tristate "Exynos5 SoC series USB DRD PHY driver"
-	depends on ARCH_EXYNOS && OF
-	depends on HAS_IOMEM
-	depends on USB_DWC3_EXYNOS
-	select GENERIC_PHY
-	select MFD_SYSCON
-	default y
-	help
-	  Enable USB DRD PHY support for Exynos 5 SoC series.
-	  This driver provides PHY interface for USB 3.0 DRD controller
-	  present on Exynos5 SoC series.
-
 config PHY_PISTACHIO_USB
 	tristate "IMG Pistachio USB2.0 PHY driver"
 	depends on MACH_PISTACHIO
@@ -316,55 +42,6 @@  config PHY_PISTACHIO_USB
 	help
 	  Enable this to support the USB2.0 PHY on the IMG Pistachio SoC.
 
-config PHY_QCOM_APQ8064_SATA
-	tristate "Qualcomm APQ8064 SATA SerDes/PHY driver"
-	depends on ARCH_QCOM
-	depends on HAS_IOMEM
-	depends on OF
-	select GENERIC_PHY
-
-config PHY_QCOM_IPQ806X_SATA
-	tristate "Qualcomm IPQ806x SATA SerDes/PHY driver"
-	depends on ARCH_QCOM
-	depends on HAS_IOMEM
-	depends on OF
-	select GENERIC_PHY
-
-config PHY_ROCKCHIP_USB
-	tristate "Rockchip USB2 PHY Driver"
-	depends on ARCH_ROCKCHIP && OF
-	select GENERIC_PHY
-	help
-	  Enable this to support the Rockchip USB 2.0 PHY.
-
-config PHY_ROCKCHIP_EMMC
-	tristate "Rockchip EMMC PHY Driver"
-	depends on ARCH_ROCKCHIP && OF
-	select GENERIC_PHY
-	help
-	  Enable this to support the Rockchip EMMC PHY.
-
-config PHY_ROCKCHIP_DP
-	tristate "Rockchip Display Port PHY Driver"
-	depends on ARCH_ROCKCHIP && OF
-	select GENERIC_PHY
-	help
-	  Enable this to support the Rockchip Display Port PHY.
-
-config PHY_ST_SPEAR1310_MIPHY
-	tristate "ST SPEAR1310-MIPHY driver"
-	select GENERIC_PHY
-	depends on MACH_SPEAR1310 || COMPILE_TEST
-	help
-	  Support for ST SPEAr1310 MIPHY which can be used for PCIe and SATA.
-
-config PHY_ST_SPEAR1340_MIPHY
-	tristate "ST SPEAR1340-MIPHY driver"
-	select GENERIC_PHY
-	depends on MACH_SPEAR1340 || COMPILE_TEST
-	help
-	  Support for ST SPEAr1340 MIPHY which can be used for PCIe and SATA.
-
 config PHY_XGENE
 	tristate "APM X-Gene 15Gbps PHY support"
 	depends on HAS_IOMEM && OF && (ARM64 || COMPILE_TEST)
@@ -372,53 +49,20 @@  config PHY_XGENE
 	help
 	  This option enables support for APM X-Gene SoC multi-purpose PHY.
 
-config PHY_STIH407_USB
-	tristate "STMicroelectronics USB2 picoPHY driver for STiH407 family"
-	depends on RESET_CONTROLLER
-	depends on ARCH_STI || COMPILE_TEST
-	select GENERIC_PHY
-	help
-	  Enable this support to enable the picoPHY device used by USB2
-	  and USB3 controllers on STMicroelectronics STiH407 SoC families.
-
-config PHY_STIH41X_USB
-	tristate "STMicroelectronics USB2 PHY driver for STiH41x series"
-	depends on ARCH_STI
-	select GENERIC_PHY
-	help
-	  Enable this to support the USB transceiver that is part of
-	  STMicroelectronics STiH41x SoC series.
-
-config PHY_QCOM_UFS
-	tristate "Qualcomm UFS PHY driver"
-	depends on OF && ARCH_QCOM
-	select GENERIC_PHY
-	help
-	  Support for UFS PHY on QCOM chipsets.
-
-config PHY_TUSB1210
-	tristate "TI TUSB1210 ULPI PHY module"
-	depends on USB_ULPI_BUS
-	select GENERIC_PHY
-	help
-	  Support for TI TUSB1210 USB ULPI PHY.
-
-config PHY_BRCMSTB_SATA
-	tristate "Broadcom STB SATA PHY driver"
-	depends on ARCH_BRCMSTB || BMIPS_GENERIC
-	depends on OF
-	select GENERIC_PHY
-	help
-	  Enable this to support the SATA3 PHY on 28nm or 40nm Broadcom STB SoCs.
-	  Likely useful only with CONFIG_SATA_BRCMSTB enabled.
-
-config PHY_CYGNUS_PCIE
-	tristate "Broadcom Cygnus PCIe PHY driver"
-	depends on OF && (ARCH_BCM_CYGNUS || COMPILE_TEST)
-	select GENERIC_PHY
-	default ARCH_BCM_CYGNUS
-	help
-	  Enable this to support the Broadcom Cygnus PCIe PHY.
-	  If unsure, say N.
+menuconfig PHY_PLAT
+	bool "Platform Phy drivers"
+
+if PHY_PLAT
+source "drivers/phy/bcom/Kconfig"
+source "drivers/phy/hisi/Kconfig"
+source "drivers/phy/marvell/Kconfig"
+source "drivers/phy/qcom/Kconfig"
+source "drivers/phy/rcar/Kconfig"
+source "drivers/phy/rockchip/Kconfig"
+source "drivers/phy/samsung/Kconfig"
+source "drivers/phy/st/Kconfig"
+source "drivers/phy/sunxi/Kconfig"
+source "drivers/phy/ti/Kconfig"
+endif
 
 endmenu
diff --git a/drivers/phy/Makefile b/drivers/phy/Makefile
index 24596a9..73d563b 100644
--- a/drivers/phy/Makefile
+++ b/drivers/phy/Makefile
@@ -3,52 +3,19 @@ 
 #
 
 obj-$(CONFIG_GENERIC_PHY)		+= phy-core.o
-obj-$(CONFIG_PHY_BERLIN_USB)		+= phy-berlin-usb.o
-obj-$(CONFIG_PHY_BERLIN_SATA)		+= phy-berlin-sata.o
-obj-$(CONFIG_PHY_DM816X_USB)		+= phy-dm816x-usb.o
-obj-$(CONFIG_ARMADA375_USBCLUSTER_PHY)	+= phy-armada375-usb2.o
-obj-$(CONFIG_BCM_KONA_USB2_PHY)		+= phy-bcm-kona-usb2.o
-obj-$(CONFIG_PHY_EXYNOS_DP_VIDEO)	+= phy-exynos-dp-video.o
-obj-$(CONFIG_PHY_EXYNOS_MIPI_VIDEO)	+= phy-exynos-mipi-video.o
 obj-$(CONFIG_PHY_LPC18XX_USB_OTG)	+= phy-lpc18xx-usb-otg.o
-obj-$(CONFIG_PHY_PXA_28NM_USB2)		+= phy-pxa-28nm-usb2.o
-obj-$(CONFIG_PHY_PXA_28NM_HSIC)		+= phy-pxa-28nm-hsic.o
-obj-$(CONFIG_PHY_MVEBU_SATA)		+= phy-mvebu-sata.o
-obj-$(CONFIG_PHY_MIPHY28LP) 		+= phy-miphy28lp.o
-obj-$(CONFIG_PHY_MIPHY365X)		+= phy-miphy365x.o
-obj-$(CONFIG_PHY_RCAR_GEN2)		+= phy-rcar-gen2.o
-obj-$(CONFIG_PHY_RCAR_GEN3_USB2)	+= phy-rcar-gen3-usb2.o
-obj-$(CONFIG_OMAP_CONTROL_PHY)		+= phy-omap-control.o
-obj-$(CONFIG_OMAP_USB2)			+= phy-omap-usb2.o
-obj-$(CONFIG_TI_PIPE3)			+= phy-ti-pipe3.o
-obj-$(CONFIG_TWL4030_USB)		+= phy-twl4030-usb.o
-obj-$(CONFIG_PHY_EXYNOS5250_SATA)	+= phy-exynos5250-sata.o
-obj-$(CONFIG_PHY_HIX5HD2_SATA)		+= phy-hix5hd2-sata.o
-obj-$(CONFIG_PHY_HI6220_USB)		+= phy-hi6220-usb.o
 obj-$(CONFIG_PHY_MT65XX_USB3)		+= phy-mt65xx-usb3.o
-obj-$(CONFIG_PHY_SUN4I_USB)		+= phy-sun4i-usb.o
-obj-$(CONFIG_PHY_SUN9I_USB)		+= phy-sun9i-usb.o
-obj-$(CONFIG_PHY_SAMSUNG_USB2)		+= phy-exynos-usb2.o
-phy-exynos-usb2-y			+= phy-samsung-usb2.o
-phy-exynos-usb2-$(CONFIG_PHY_EXYNOS4210_USB2)	+= phy-exynos4210-usb2.o
-phy-exynos-usb2-$(CONFIG_PHY_EXYNOS4X12_USB2)	+= phy-exynos4x12-usb2.o
-phy-exynos-usb2-$(CONFIG_PHY_EXYNOS5250_USB2)	+= phy-exynos5250-usb2.o
-phy-exynos-usb2-$(CONFIG_PHY_S5PV210_USB2)	+= phy-s5pv210-usb2.o
-obj-$(CONFIG_PHY_EXYNOS5_USBDRD)	+= phy-exynos5-usbdrd.o
-obj-$(CONFIG_PHY_QCOM_APQ8064_SATA)	+= phy-qcom-apq8064-sata.o
-obj-$(CONFIG_PHY_ROCKCHIP_USB) += phy-rockchip-usb.o
-obj-$(CONFIG_PHY_ROCKCHIP_EMMC) += phy-rockchip-emmc.o
-obj-$(CONFIG_PHY_ROCKCHIP_DP)		+= phy-rockchip-dp.o
-obj-$(CONFIG_PHY_QCOM_IPQ806X_SATA)	+= phy-qcom-ipq806x-sata.o
-obj-$(CONFIG_PHY_ST_SPEAR1310_MIPHY)	+= phy-spear1310-miphy.o
-obj-$(CONFIG_PHY_ST_SPEAR1340_MIPHY)	+= phy-spear1340-miphy.o
 obj-$(CONFIG_PHY_XGENE)			+= phy-xgene.o
-obj-$(CONFIG_PHY_STIH407_USB)		+= phy-stih407-usb.o
-obj-$(CONFIG_PHY_STIH41X_USB)		+= phy-stih41x-usb.o
-obj-$(CONFIG_PHY_QCOM_UFS) 	+= phy-qcom-ufs.o
-obj-$(CONFIG_PHY_QCOM_UFS) 	+= phy-qcom-ufs-qmp-20nm.o
-obj-$(CONFIG_PHY_QCOM_UFS) 	+= phy-qcom-ufs-qmp-14nm.o
-obj-$(CONFIG_PHY_TUSB1210)		+= phy-tusb1210.o
-obj-$(CONFIG_PHY_BRCMSTB_SATA)		+= phy-brcmstb-sata.o
 obj-$(CONFIG_PHY_PISTACHIO_USB)		+= phy-pistachio-usb.o
-obj-$(CONFIG_PHY_CYGNUS_PCIE)		+= phy-bcm-cygnus-pcie.o
+
+# Phy drivers for different platforms.
+obj-$(CONFIG_PHY_PLAT)		+= bcom/	\
+				   hisi/	\
+				   marvell/	\
+				   qcom/	\
+				   rcar/	\
+				   rockchip/	\
+				   samsung/	\
+				   st/		\
+				   sunxi/	\
+				   ti/
diff --git a/drivers/phy/bcom/Kconfig b/drivers/phy/bcom/Kconfig
new file mode 100644
index 0000000..8243372
--- /dev/null
+++ b/drivers/phy/bcom/Kconfig
@@ -0,0 +1,27 @@ 
+#
+# PHY drivers for Broadcom platforms
+#
+config PHY_CYGNUS_PCIE
+	tristate "Broadcom Cygnus PCIe PHY driver"
+	depends on OF && (ARCH_BCM_CYGNUS || COMPILE_TEST)
+	select GENERIC_PHY
+	default ARCH_BCM_CYGNUS
+	help
+	  Enable this to support the Broadcom Cygnus PCIe PHY.
+	  If unsure, say N.
+
+config BCM_KONA_USB2_PHY
+	tristate "Broadcom Kona USB2 PHY Driver"
+	depends on HAS_IOMEM
+	select GENERIC_PHY
+	help
+	  Enable this to support the Broadcom Kona USB 2.0 PHY.
+
+config PHY_BRCMSTB_SATA
+	tristate "Broadcom STB SATA PHY driver"
+	depends on ARCH_BRCMSTB || BMIPS_GENERIC
+	depends on OF
+	select GENERIC_PHY
+	help
+	  Enable this to support the SATA3 PHY on 28nm or 40nm Broadcom STB SoCs.
+	  Likely useful only with CONFIG_SATA_BRCMSTB enabled.
diff --git a/drivers/phy/bcom/Makefile b/drivers/phy/bcom/Makefile
new file mode 100644
index 0000000..f30fa76
--- /dev/null
+++ b/drivers/phy/bcom/Makefile
@@ -0,0 +1,3 @@ 
+obj-$(CONFIG_PHY_CYGNUS_PCIE)		+= phy-bcm-cygnus-pcie.o
+obj-$(CONFIG_BCM_KONA_USB2_PHY)		+= phy-bcm-kona-usb2.o
+obj-$(CONFIG_PHY_BRCMSTB_SATA)		+= phy-brcmstb-sata.o
diff --git a/drivers/phy/phy-bcm-cygnus-pcie.c b/drivers/phy/bcom/phy-bcm-cygnus-pcie.c
similarity index 100%
rename from drivers/phy/phy-bcm-cygnus-pcie.c
rename to drivers/phy/bcom/phy-bcm-cygnus-pcie.c
diff --git a/drivers/phy/phy-bcm-kona-usb2.c b/drivers/phy/bcom/phy-bcm-kona-usb2.c
similarity index 100%
rename from drivers/phy/phy-bcm-kona-usb2.c
rename to drivers/phy/bcom/phy-bcm-kona-usb2.c
diff --git a/drivers/phy/phy-brcmstb-sata.c b/drivers/phy/bcom/phy-brcmstb-sata.c
similarity index 100%
rename from drivers/phy/phy-brcmstb-sata.c
rename to drivers/phy/bcom/phy-brcmstb-sata.c
diff --git a/drivers/phy/hisi/Kconfig b/drivers/phy/hisi/Kconfig
new file mode 100644
index 0000000..affa9ed
--- /dev/null
+++ b/drivers/phy/hisi/Kconfig
@@ -0,0 +1,20 @@ 
+#
+# PHY drivers for HiSilicon platforms
+#
+config PHY_HIX5HD2_SATA
+	tristate "HIX5HD2 SATA PHY Driver"
+	depends on ARCH_HIX5HD2 && OF && HAS_IOMEM
+	select GENERIC_PHY
+	select MFD_SYSCON
+	help
+	  Support for SATA PHY on Hisilicon hix5hd2 Soc.
+
+config PHY_HI6220_USB
+	tristate "hi6220 USB PHY support"
+	depends on (ARCH_HISI && ARM64) || COMPILE_TEST
+	select GENERIC_PHY
+	select MFD_SYSCON
+	help
+	  Enable this to support the HISILICON HI6220 USB PHY.
+
+	  To compile this driver as a module, choose M here.
diff --git a/drivers/phy/hisi/Makefile b/drivers/phy/hisi/Makefile
new file mode 100644
index 0000000..6059ed8
--- /dev/null
+++ b/drivers/phy/hisi/Makefile
@@ -0,0 +1,2 @@ 
+obj-$(CONFIG_PHY_HIX5HD2_SATA)		+= phy-hix5hd2-sata.o
+obj-$(CONFIG_PHY_HI6220_USB)		+= phy-hi6220-usb.o
diff --git a/drivers/phy/phy-hi6220-usb.c b/drivers/phy/hisi/phy-hi6220-usb.c
similarity index 100%
rename from drivers/phy/phy-hi6220-usb.c
rename to drivers/phy/hisi/phy-hi6220-usb.c
diff --git a/drivers/phy/phy-hix5hd2-sata.c b/drivers/phy/hisi/phy-hix5hd2-sata.c
similarity index 100%
rename from drivers/phy/phy-hix5hd2-sata.c
rename to drivers/phy/hisi/phy-hix5hd2-sata.c
diff --git a/drivers/phy/marvell/Kconfig b/drivers/phy/marvell/Kconfig
new file mode 100644
index 0000000..6c1576c
--- /dev/null
+++ b/drivers/phy/marvell/Kconfig
@@ -0,0 +1,50 @@ 
+#
+# PHY drivers for Marvell platforms
+#
+config ARMADA375_USBCLUSTER_PHY
+	def_bool y
+	depends on MACH_ARMADA_375 || COMPILE_TEST
+	depends on OF && HAS_IOMEM
+	select GENERIC_PHY
+
+config PHY_BERLIN_USB
+	tristate "Marvell Berlin USB PHY Driver"
+	depends on ARCH_BERLIN && RESET_CONTROLLER && HAS_IOMEM && OF
+	select GENERIC_PHY
+	help
+	  Enable this to support the USB PHY on Marvell Berlin SoCs.
+
+config PHY_BERLIN_SATA
+	tristate "Marvell Berlin SATA PHY driver"
+	depends on ARCH_BERLIN && HAS_IOMEM && OF
+	select GENERIC_PHY
+	help
+	  Enable this to support the SATA PHY on Marvell Berlin SoCs.
+
+config PHY_MVEBU_SATA
+	def_bool y
+	depends on ARCH_DOVE || MACH_DOVE || MACH_KIRKWOOD
+	depends on OF
+	select GENERIC_PHY
+
+config PHY_PXA_28NM_HSIC
+	tristate "Marvell USB HSIC 28nm PHY Driver"
+	depends on HAS_IOMEM
+	select GENERIC_PHY
+	help
+	  Enable this to support Marvell USB HSIC PHY driver for Marvell
+	  SoC. This driver will do the PHY initialization and shutdown.
+	  The PHY driver will be used by Marvell ehci driver.
+
+	  To compile this driver as a module, choose M here.
+
+config PHY_PXA_28NM_USB2
+	tristate "Marvell USB 2.0 28nm PHY Driver"
+	depends on HAS_IOMEM
+	select GENERIC_PHY
+	help
+	  Enable this to support Marvell USB 2.0 PHY driver for Marvell
+	  SoC. This driver will do the PHY initialization and shutdown.
+	  The PHY driver will be used by Marvell udc/ehci/otg driver.
+
+	  To compile this driver as a module, choose M here.
diff --git a/drivers/phy/marvell/Makefile b/drivers/phy/marvell/Makefile
new file mode 100644
index 0000000..f4fa255
--- /dev/null
+++ b/drivers/phy/marvell/Makefile
@@ -0,0 +1,6 @@ 
+obj-$(CONFIG_ARMADA375_USBCLUSTER_PHY)	+= phy-armada375-usb2.o
+obj-$(CONFIG_PHY_BERLIN_USB)		+= phy-berlin-usb.o
+obj-$(CONFIG_PHY_BERLIN_SATA)		+= phy-berlin-sata.o
+obj-$(CONFIG_PHY_MVEBU_SATA)		+= phy-mvebu-sata.o
+obj-$(CONFIG_PHY_PXA_28NM_USB2)		+= phy-pxa-28nm-usb2.o
+obj-$(CONFIG_PHY_PXA_28NM_HSIC)		+= phy-pxa-28nm-hsic.o
diff --git a/drivers/phy/phy-armada375-usb2.c b/drivers/phy/marvell/phy-armada375-usb2.c
similarity index 100%
rename from drivers/phy/phy-armada375-usb2.c
rename to drivers/phy/marvell/phy-armada375-usb2.c
diff --git a/drivers/phy/phy-berlin-sata.c b/drivers/phy/marvell/phy-berlin-sata.c
similarity index 100%
rename from drivers/phy/phy-berlin-sata.c
rename to drivers/phy/marvell/phy-berlin-sata.c
diff --git a/drivers/phy/phy-berlin-usb.c b/drivers/phy/marvell/phy-berlin-usb.c
similarity index 100%
rename from drivers/phy/phy-berlin-usb.c
rename to drivers/phy/marvell/phy-berlin-usb.c
diff --git a/drivers/phy/phy-mvebu-sata.c b/drivers/phy/marvell/phy-mvebu-sata.c
similarity index 100%
rename from drivers/phy/phy-mvebu-sata.c
rename to drivers/phy/marvell/phy-mvebu-sata.c
diff --git a/drivers/phy/phy-pxa-28nm-hsic.c b/drivers/phy/marvell/phy-pxa-28nm-hsic.c
similarity index 100%
rename from drivers/phy/phy-pxa-28nm-hsic.c
rename to drivers/phy/marvell/phy-pxa-28nm-hsic.c
diff --git a/drivers/phy/phy-pxa-28nm-usb2.c b/drivers/phy/marvell/phy-pxa-28nm-usb2.c
similarity index 100%
rename from drivers/phy/phy-pxa-28nm-usb2.c
rename to drivers/phy/marvell/phy-pxa-28nm-usb2.c
diff --git a/drivers/phy/qcom/Kconfig b/drivers/phy/qcom/Kconfig
new file mode 100644
index 0000000..9718d01
--- /dev/null
+++ b/drivers/phy/qcom/Kconfig
@@ -0,0 +1,23 @@ 
+#
+# PHY drivers for Qualcomm platforms
+#
+config PHY_QCOM_APQ8064_SATA
+	tristate "Qualcomm APQ8064 SATA SerDes/PHY driver"
+	depends on ARCH_QCOM
+	depends on HAS_IOMEM
+	depends on OF
+	select GENERIC_PHY
+
+config PHY_QCOM_IPQ806X_SATA
+	tristate "Qualcomm IPQ806x SATA SerDes/PHY driver"
+	depends on ARCH_QCOM
+	depends on HAS_IOMEM
+	depends on OF
+	select GENERIC_PHY
+
+config PHY_QCOM_UFS
+	tristate "Qualcomm UFS PHY driver"
+	depends on OF && ARCH_QCOM
+	select GENERIC_PHY
+	help
+	  Support for UFS PHY on QCOM chipsets.
diff --git a/drivers/phy/qcom/Makefile b/drivers/phy/qcom/Makefile
new file mode 100644
index 0000000..2db3e77
--- /dev/null
+++ b/drivers/phy/qcom/Makefile
@@ -0,0 +1,5 @@ 
+obj-$(CONFIG_PHY_QCOM_APQ8064_SATA)	+= phy-qcom-apq8064-sata.o
+obj-$(CONFIG_PHY_QCOM_IPQ806X_SATA)	+= phy-qcom-ipq806x-sata.o
+obj-$(CONFIG_PHY_QCOM_UFS)		+= phy-qcom-ufs.o \
+					+= phy-qcom-ufs-qmp-20nm.o \
+					+= phy-qcom-ufs-qmp-14nm.o
diff --git a/drivers/phy/phy-qcom-apq8064-sata.c b/drivers/phy/qcom/phy-qcom-apq8064-sata.c
similarity index 100%
rename from drivers/phy/phy-qcom-apq8064-sata.c
rename to drivers/phy/qcom/phy-qcom-apq8064-sata.c
diff --git a/drivers/phy/phy-qcom-ipq806x-sata.c b/drivers/phy/qcom/phy-qcom-ipq806x-sata.c
similarity index 100%
rename from drivers/phy/phy-qcom-ipq806x-sata.c
rename to drivers/phy/qcom/phy-qcom-ipq806x-sata.c
diff --git a/drivers/phy/phy-qcom-ufs-i.h b/drivers/phy/qcom/phy-qcom-ufs-i.h
similarity index 100%
rename from drivers/phy/phy-qcom-ufs-i.h
rename to drivers/phy/qcom/phy-qcom-ufs-i.h
diff --git a/drivers/phy/phy-qcom-ufs-qmp-14nm.c b/drivers/phy/qcom/phy-qcom-ufs-qmp-14nm.c
similarity index 100%
rename from drivers/phy/phy-qcom-ufs-qmp-14nm.c
rename to drivers/phy/qcom/phy-qcom-ufs-qmp-14nm.c
diff --git a/drivers/phy/phy-qcom-ufs-qmp-14nm.h b/drivers/phy/qcom/phy-qcom-ufs-qmp-14nm.h
similarity index 100%
rename from drivers/phy/phy-qcom-ufs-qmp-14nm.h
rename to drivers/phy/qcom/phy-qcom-ufs-qmp-14nm.h
diff --git a/drivers/phy/phy-qcom-ufs-qmp-20nm.c b/drivers/phy/qcom/phy-qcom-ufs-qmp-20nm.c
similarity index 100%
rename from drivers/phy/phy-qcom-ufs-qmp-20nm.c
rename to drivers/phy/qcom/phy-qcom-ufs-qmp-20nm.c
diff --git a/drivers/phy/phy-qcom-ufs-qmp-20nm.h b/drivers/phy/qcom/phy-qcom-ufs-qmp-20nm.h
similarity index 100%
rename from drivers/phy/phy-qcom-ufs-qmp-20nm.h
rename to drivers/phy/qcom/phy-qcom-ufs-qmp-20nm.h
diff --git a/drivers/phy/phy-qcom-ufs.c b/drivers/phy/qcom/phy-qcom-ufs.c
similarity index 100%
rename from drivers/phy/phy-qcom-ufs.c
rename to drivers/phy/qcom/phy-qcom-ufs.c
diff --git a/drivers/phy/rcar/Kconfig b/drivers/phy/rcar/Kconfig
new file mode 100644
index 0000000..169b5e2
--- /dev/null
+++ b/drivers/phy/rcar/Kconfig
@@ -0,0 +1,16 @@ 
+#
+# PHY drivers for Renesas's r-car platforms
+#
+config PHY_RCAR_GEN2
+	tristate "Renesas R-Car generation 2 USB PHY driver"
+	depends on ARCH_SHMOBILE
+	depends on GENERIC_PHY
+	help
+	  Support for USB PHY found on Renesas R-Car generation 2 SoCs.
+
+config PHY_RCAR_GEN3_USB2
+	tristate "Renesas R-Car generation 3 USB 2.0 PHY driver"
+	depends on OF && ARCH_SHMOBILE
+	select GENERIC_PHY
+	help
+	  Support for USB 2.0 PHY found on Renesas R-Car generation 3 SoCs.
diff --git a/drivers/phy/rcar/Makefile b/drivers/phy/rcar/Makefile
new file mode 100644
index 0000000..695241a
--- /dev/null
+++ b/drivers/phy/rcar/Makefile
@@ -0,0 +1,2 @@ 
+obj-$(CONFIG_PHY_RCAR_GEN2)		+= phy-rcar-gen2.o
+obj-$(CONFIG_PHY_RCAR_GEN3_USB2)	+= phy-rcar-gen3-usb2.o
diff --git a/drivers/phy/phy-rcar-gen2.c b/drivers/phy/rcar/phy-rcar-gen2.c
similarity index 100%
rename from drivers/phy/phy-rcar-gen2.c
rename to drivers/phy/rcar/phy-rcar-gen2.c
diff --git a/drivers/phy/phy-rcar-gen3-usb2.c b/drivers/phy/rcar/phy-rcar-gen3-usb2.c
similarity index 100%
rename from drivers/phy/phy-rcar-gen3-usb2.c
rename to drivers/phy/rcar/phy-rcar-gen3-usb2.c
diff --git a/drivers/phy/rockchip/Kconfig b/drivers/phy/rockchip/Kconfig
new file mode 100644
index 0000000..c575d1e
--- /dev/null
+++ b/drivers/phy/rockchip/Kconfig
@@ -0,0 +1,23 @@ 
+#
+# PHY drivers for Rockchip platforms
+#
+config PHY_ROCKCHIP_USB
+	tristate "Rockchip USB2 PHY Driver"
+	depends on ARCH_ROCKCHIP && OF
+	select GENERIC_PHY
+	help
+	  Enable this to support the Rockchip USB 2.0 PHY.
+
+config PHY_ROCKCHIP_EMMC
+	tristate "Rockchip EMMC PHY Driver"
+	depends on ARCH_ROCKCHIP && OF
+	select GENERIC_PHY
+	help
+	  Enable this to support the Rockchip EMMC PHY.
+
+config PHY_ROCKCHIP_DP
+	tristate "Rockchip Display Port PHY Driver"
+	depends on ARCH_ROCKCHIP && OF
+	select GENERIC_PHY
+	help
+	  Enable this to support the Rockchip Display Port PHY.
diff --git a/drivers/phy/rockchip/Makefile b/drivers/phy/rockchip/Makefile
new file mode 100644
index 0000000..c15acc1
--- /dev/null
+++ b/drivers/phy/rockchip/Makefile
@@ -0,0 +1,3 @@ 
+obj-$(CONFIG_PHY_ROCKCHIP_DP)	+= phy-rockchip-dp.o
+obj-$(CONFIG_PHY_ROCKCHIP_EMMC)	+= phy-rockchip-emmc.o
+obj-$(CONFIG_PHY_ROCKCHIP_USB)	+= phy-rockchip-usb.o
diff --git a/drivers/phy/phy-rockchip-dp.c b/drivers/phy/rockchip/phy-rockchip-dp.c
similarity index 100%
rename from drivers/phy/phy-rockchip-dp.c
rename to drivers/phy/rockchip/phy-rockchip-dp.c
diff --git a/drivers/phy/phy-rockchip-emmc.c b/drivers/phy/rockchip/phy-rockchip-emmc.c
similarity index 100%
rename from drivers/phy/phy-rockchip-emmc.c
rename to drivers/phy/rockchip/phy-rockchip-emmc.c
diff --git a/drivers/phy/phy-rockchip-usb.c b/drivers/phy/rockchip/phy-rockchip-usb.c
similarity index 100%
rename from drivers/phy/phy-rockchip-usb.c
rename to drivers/phy/rockchip/phy-rockchip-usb.c
diff --git a/drivers/phy/samsung/Kconfig b/drivers/phy/samsung/Kconfig
new file mode 100644
index 0000000..80bdea7
--- /dev/null
+++ b/drivers/phy/samsung/Kconfig
@@ -0,0 +1,87 @@ 
+#
+# PHY drivers for Samsung platforms
+#
+config PHY_SAMSUNG_USB2
+	tristate "Samsung USB 2.0 PHY driver"
+	depends on HAS_IOMEM
+	depends on USB_EHCI_EXYNOS || USB_OHCI_EXYNOS || USB_DWC2
+	select GENERIC_PHY
+	select MFD_SYSCON
+	default ARCH_EXYNOS
+	help
+	  Enable this to support the Samsung USB 2.0 PHY driver for Samsung
+	  SoCs. This driver provides the interface for USB 2.0 PHY. Support
+	  for particular PHYs will be enabled based on the SoC type in addition
+	  to this driver.
+
+config PHY_S5PV210_USB2
+	bool "Support for S5PV210"
+	depends on PHY_SAMSUNG_USB2
+	depends on ARCH_S5PV210
+	help
+	  Enable USB PHY support for S5PV210. This option requires that Samsung
+	  USB 2.0 PHY driver is enabled and means that support for this
+	  particular SoC is compiled in the driver. In case of S5PV210 two phys
+	  are available - device and host.
+
+config PHY_EXYNOS4210_USB2
+	bool
+	depends on PHY_SAMSUNG_USB2
+	default CPU_EXYNOS4210
+
+config PHY_EXYNOS4X12_USB2
+	bool
+	depends on PHY_SAMSUNG_USB2
+	default SOC_EXYNOS3250 || SOC_EXYNOS4212 || SOC_EXYNOS4412
+
+config PHY_EXYNOS5250_USB2
+	bool
+	depends on PHY_SAMSUNG_USB2
+	default SOC_EXYNOS5250 || SOC_EXYNOS5420
+
+config PHY_EXYNOS5_USBDRD
+	tristate "Exynos5 SoC series USB DRD PHY driver"
+	depends on ARCH_EXYNOS && OF
+	depends on HAS_IOMEM
+	depends on USB_DWC3_EXYNOS
+	select GENERIC_PHY
+	select MFD_SYSCON
+	default y
+	help
+	  Enable USB DRD PHY support for Exynos 5 SoC series.
+	  This driver provides PHY interface for USB 3.0 DRD controller
+	  present on Exynos5 SoC series.
+
+config PHY_EXYNOS_DP_VIDEO
+	tristate "EXYNOS SoC series Display Port PHY driver"
+	depends on OF
+	depends on ARCH_EXYNOS || COMPILE_TEST
+	default ARCH_EXYNOS
+	select GENERIC_PHY
+	help
+	  Support for Display Port PHY found on Samsung EXYNOS SoCs.
+
+config PHY_EXYNOS_MIPI_VIDEO
+	tristate "S5P/EXYNOS SoC series MIPI CSI-2/DSI PHY driver"
+	depends on HAS_IOMEM
+	depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
+	select GENERIC_PHY
+	default y if ARCH_S5PV210 || ARCH_EXYNOS
+	help
+	  Support for MIPI CSI-2 and MIPI DSI DPHY found on Samsung S5P
+	  and EXYNOS SoCs.
+
+config PHY_EXYNOS5250_SATA
+	tristate "Exynos5250 Sata SerDes/PHY driver"
+	depends on SOC_EXYNOS5250
+	depends on HAS_IOMEM
+	depends on OF
+	select GENERIC_PHY
+	select I2C
+	select I2C_S3C2410
+	select MFD_SYSCON
+	help
+	  Enable this to support SATA SerDes/Phy found on Samsung's
+	  Exynos5250 based SoCs.This SerDes/Phy supports SATA 1.5 Gb/s,
+	  SATA 3.0 Gb/s, SATA 6.0 Gb/s speeds. It supports one SATA host
+	  port to accept one SATA device.
diff --git a/drivers/phy/samsung/Makefile b/drivers/phy/samsung/Makefile
new file mode 100644
index 0000000..585dbd7
--- /dev/null
+++ b/drivers/phy/samsung/Makefile
@@ -0,0 +1,10 @@ 
+obj-$(CONFIG_PHY_SAMSUNG_USB2)		+= phy-exynos-usb2.o
+phy-exynos-usb2-y			+= phy-samsung-usb2.o
+phy-exynos-usb2-$(CONFIG_PHY_S5PV210_USB2)	+= phy-s5pv210-usb2.o
+phy-exynos-usb2-$(CONFIG_PHY_EXYNOS4210_USB2)	+= phy-exynos4210-usb2.o
+phy-exynos-usb2-$(CONFIG_PHY_EXYNOS4X12_USB2)	+= phy-exynos4x12-usb2.o
+phy-exynos-usb2-$(CONFIG_PHY_EXYNOS5250_USB2)	+= phy-exynos5250-usb2.o
+obj-$(CONFIG_PHY_EXYNOS5_USBDRD)	+= phy-exynos5-usbdrd.o
+obj-$(CONFIG_PHY_EXYNOS_DP_VIDEO)	+= phy-exynos-dp-video.o
+obj-$(CONFIG_PHY_EXYNOS_MIPI_VIDEO)	+= phy-exynos-mipi-video.o
+obj-$(CONFIG_PHY_EXYNOS5250_SATA)	+= phy-exynos5250-sata.o
diff --git a/drivers/phy/phy-exynos-dp-video.c b/drivers/phy/samsung/phy-exynos-dp-video.c
similarity index 100%
rename from drivers/phy/phy-exynos-dp-video.c
rename to drivers/phy/samsung/phy-exynos-dp-video.c
diff --git a/drivers/phy/phy-exynos-mipi-video.c b/drivers/phy/samsung/phy-exynos-mipi-video.c
similarity index 100%
rename from drivers/phy/phy-exynos-mipi-video.c
rename to drivers/phy/samsung/phy-exynos-mipi-video.c
diff --git a/drivers/phy/phy-exynos4210-usb2.c b/drivers/phy/samsung/phy-exynos4210-usb2.c
similarity index 100%
rename from drivers/phy/phy-exynos4210-usb2.c
rename to drivers/phy/samsung/phy-exynos4210-usb2.c
diff --git a/drivers/phy/phy-exynos4x12-usb2.c b/drivers/phy/samsung/phy-exynos4x12-usb2.c
similarity index 100%
rename from drivers/phy/phy-exynos4x12-usb2.c
rename to drivers/phy/samsung/phy-exynos4x12-usb2.c
diff --git a/drivers/phy/phy-exynos5-usbdrd.c b/drivers/phy/samsung/phy-exynos5-usbdrd.c
similarity index 100%
rename from drivers/phy/phy-exynos5-usbdrd.c
rename to drivers/phy/samsung/phy-exynos5-usbdrd.c
diff --git a/drivers/phy/phy-exynos5250-sata.c b/drivers/phy/samsung/phy-exynos5250-sata.c
similarity index 100%
rename from drivers/phy/phy-exynos5250-sata.c
rename to drivers/phy/samsung/phy-exynos5250-sata.c
diff --git a/drivers/phy/phy-exynos5250-usb2.c b/drivers/phy/samsung/phy-exynos5250-usb2.c
similarity index 100%
rename from drivers/phy/phy-exynos5250-usb2.c
rename to drivers/phy/samsung/phy-exynos5250-usb2.c
diff --git a/drivers/phy/phy-s5pv210-usb2.c b/drivers/phy/samsung/phy-s5pv210-usb2.c
similarity index 100%
rename from drivers/phy/phy-s5pv210-usb2.c
rename to drivers/phy/samsung/phy-s5pv210-usb2.c
diff --git a/drivers/phy/phy-samsung-usb2.c b/drivers/phy/samsung/phy-samsung-usb2.c
similarity index 100%
rename from drivers/phy/phy-samsung-usb2.c
rename to drivers/phy/samsung/phy-samsung-usb2.c
diff --git a/drivers/phy/phy-samsung-usb2.h b/drivers/phy/samsung/phy-samsung-usb2.h
similarity index 100%
rename from drivers/phy/phy-samsung-usb2.h
rename to drivers/phy/samsung/phy-samsung-usb2.h
diff --git a/drivers/phy/st/Kconfig b/drivers/phy/st/Kconfig
new file mode 100644
index 0000000..651b2bf
--- /dev/null
+++ b/drivers/phy/st/Kconfig
@@ -0,0 +1,51 @@ 
+#
+# PHY drivers for ST Micro platforms
+#
+config PHY_MIPHY28LP
+	tristate "STMicroelectronics MIPHY28LP PHY driver for STiH407"
+	depends on ARCH_STI
+	select GENERIC_PHY
+	help
+	  Enable this to support the miphy transceiver (for SATA/PCIE/USB3)
+	  that is part of STMicroelectronics STiH407 SoC.
+
+config PHY_MIPHY365X
+	tristate "STMicroelectronics MIPHY365X PHY driver for STiH41x series"
+	depends on ARCH_STI
+	depends on HAS_IOMEM
+	depends on OF
+	select GENERIC_PHY
+	help
+	  Enable this to support the miphy transceiver (for SATA/PCIE)
+	  that is part of STMicroelectronics STiH41x SoC series.
+
+config PHY_ST_SPEAR1310_MIPHY
+	tristate "ST SPEAR1310-MIPHY driver"
+	select GENERIC_PHY
+	depends on MACH_SPEAR1310 || COMPILE_TEST
+	help
+	  Support for ST SPEAr1310 MIPHY which can be used for PCIe and SATA.
+
+config PHY_ST_SPEAR1340_MIPHY
+	tristate "ST SPEAR1340-MIPHY driver"
+	select GENERIC_PHY
+	depends on MACH_SPEAR1340 || COMPILE_TEST
+	help
+	  Support for ST SPEAr1340 MIPHY which can be used for PCIe and SATA.
+
+config PHY_STIH407_USB
+	tristate "STMicroelectronics USB2 picoPHY driver for STiH407 family"
+	depends on RESET_CONTROLLER
+	depends on ARCH_STI || COMPILE_TEST
+	select GENERIC_PHY
+	help
+	  Enable this support to enable the picoPHY device used by USB2
+	  and USB3 controllers on STMicroelectronics STiH407 SoC families.
+
+config PHY_STIH41X_USB
+	tristate "STMicroelectronics USB2 PHY driver for STiH41x series"
+	depends on ARCH_STI
+	select GENERIC_PHY
+	help
+	  Enable this to support the USB transceiver that is part of
+	  STMicroelectronics STiH41x SoC series.
diff --git a/drivers/phy/st/Makefile b/drivers/phy/st/Makefile
new file mode 100644
index 0000000..907561b
--- /dev/null
+++ b/drivers/phy/st/Makefile
@@ -0,0 +1,6 @@ 
+obj-$(CONFIG_PHY_MIPHY28LP) 		+= phy-miphy28lp.o
+obj-$(CONFIG_PHY_MIPHY365X)		+= phy-miphy365x.o
+obj-$(CONFIG_PHY_ST_SPEAR1310_MIPHY)	+= phy-spear1310-miphy.o
+obj-$(CONFIG_PHY_ST_SPEAR1340_MIPHY)	+= phy-spear1340-miphy.o
+obj-$(CONFIG_PHY_STIH407_USB)		+= phy-stih407-usb.o
+obj-$(CONFIG_PHY_STIH41X_USB)		+= phy-stih41x-usb.o
diff --git a/drivers/phy/phy-miphy28lp.c b/drivers/phy/st/phy-miphy28lp.c
similarity index 100%
rename from drivers/phy/phy-miphy28lp.c
rename to drivers/phy/st/phy-miphy28lp.c
diff --git a/drivers/phy/phy-miphy365x.c b/drivers/phy/st/phy-miphy365x.c
similarity index 100%
rename from drivers/phy/phy-miphy365x.c
rename to drivers/phy/st/phy-miphy365x.c
diff --git a/drivers/phy/phy-spear1310-miphy.c b/drivers/phy/st/phy-spear1310-miphy.c
similarity index 100%
rename from drivers/phy/phy-spear1310-miphy.c
rename to drivers/phy/st/phy-spear1310-miphy.c
diff --git a/drivers/phy/phy-spear1340-miphy.c b/drivers/phy/st/phy-spear1340-miphy.c
similarity index 100%
rename from drivers/phy/phy-spear1340-miphy.c
rename to drivers/phy/st/phy-spear1340-miphy.c
diff --git a/drivers/phy/phy-stih407-usb.c b/drivers/phy/st/phy-stih407-usb.c
similarity index 100%
rename from drivers/phy/phy-stih407-usb.c
rename to drivers/phy/st/phy-stih407-usb.c
diff --git a/drivers/phy/phy-stih41x-usb.c b/drivers/phy/st/phy-stih41x-usb.c
similarity index 100%
rename from drivers/phy/phy-stih41x-usb.c
rename to drivers/phy/st/phy-stih41x-usb.c
diff --git a/drivers/phy/sunxi/Kconfig b/drivers/phy/sunxi/Kconfig
new file mode 100644
index 0000000..eb06427
--- /dev/null
+++ b/drivers/phy/sunxi/Kconfig
@@ -0,0 +1,28 @@ 
+#
+# PHY drivers for Allwinner's sunxi platforms
+#
+config PHY_SUN4I_USB
+	tristate "Allwinner sunxi SoC USB PHY driver"
+	depends on ARCH_SUNXI && HAS_IOMEM && OF
+	depends on RESET_CONTROLLER
+	depends on EXTCON
+	depends on POWER_SUPPLY
+	select GENERIC_PHY
+	help
+	  Enable this to support the transceiver that is part of Allwinner
+	  sunxi SoCs.
+
+	  This driver controls the entire USB PHY block, both the USB OTG
+	  parts, as well as the 2 regular USB 2 host PHYs.
+
+config PHY_SUN9I_USB
+	tristate "Allwinner sun9i SoC USB PHY driver"
+	depends on ARCH_SUNXI && HAS_IOMEM && OF
+	depends on RESET_CONTROLLER
+	depends on USB_COMMON
+	select GENERIC_PHY
+	help
+	  Enable this to support the transceiver that is part of Allwinner
+	  sun9i SoCs.
+
+	  This driver controls each individual USB 2 host PHY.
diff --git a/drivers/phy/sunxi/Makefile b/drivers/phy/sunxi/Makefile
new file mode 100644
index 0000000..8605529c
--- /dev/null
+++ b/drivers/phy/sunxi/Makefile
@@ -0,0 +1,2 @@ 
+obj-$(CONFIG_PHY_SUN4I_USB)		+= phy-sun4i-usb.o
+obj-$(CONFIG_PHY_SUN9I_USB)		+= phy-sun9i-usb.o
diff --git a/drivers/phy/phy-sun4i-usb.c b/drivers/phy/sunxi/phy-sun4i-usb.c
similarity index 100%
rename from drivers/phy/phy-sun4i-usb.c
rename to drivers/phy/sunxi/phy-sun4i-usb.c
diff --git a/drivers/phy/phy-sun9i-usb.c b/drivers/phy/sunxi/phy-sun9i-usb.c
similarity index 100%
rename from drivers/phy/phy-sun9i-usb.c
rename to drivers/phy/sunxi/phy-sun9i-usb.c
diff --git a/drivers/phy/ti/Kconfig b/drivers/phy/ti/Kconfig
new file mode 100644
index 0000000..1e3e307
--- /dev/null
+++ b/drivers/phy/ti/Kconfig
@@ -0,0 +1,67 @@ 
+#
+# PHY drivers for TI platforms
+#
+config PHY_DM816X_USB
+	tristate "TI dm816x USB PHY driver"
+	depends on ARCH_OMAP2PLUS
+	depends on USB_SUPPORT
+	select GENERIC_PHY
+	select USB_PHY
+	help
+	  Enable this for dm816x USB to work.
+
+config OMAP_CONTROL_PHY
+	tristate "OMAP CONTROL PHY Driver"
+	depends on ARCH_OMAP2PLUS || COMPILE_TEST
+	help
+	  Enable this to add support for the PHY part present in the control
+	  module. This driver has API to power on the USB2 PHY and to write to
+	  the mailbox. The mailbox is present only in omap4 and the register to
+	  power on the USB2 PHY is present in OMAP4 and OMAP5. OMAP5 has an
+	  additional register to power on USB3 PHY/SATA PHY/PCIE PHY
+	  (PIPE3 PHY).
+
+config OMAP_USB2
+	tristate "OMAP USB2 PHY Driver"
+	depends on ARCH_OMAP2PLUS
+	depends on USB_SUPPORT
+	select GENERIC_PHY
+	select USB_PHY
+	select OMAP_CONTROL_PHY
+	depends on OMAP_OCP2SCP
+	help
+	  Enable this to support the transceiver that is part of SOC. This
+	  driver takes care of all the PHY functionality apart from comparator.
+	  The USB OTG controller communicates with the comparator using this
+	  driver.
+
+config TI_PIPE3
+	tristate "TI PIPE3 PHY Driver"
+	depends on ARCH_OMAP2PLUS || COMPILE_TEST
+	select GENERIC_PHY
+	select OMAP_CONTROL_PHY
+	depends on OMAP_OCP2SCP
+	help
+	  Enable this to support the PIPE3 PHY that is part of TI SOCs. This
+	  driver takes care of all the PHY functionality apart from comparator.
+	  This driver interacts with the "OMAP Control PHY Driver" to power
+	  on/off the PHY.
+
+config PHY_TUSB1210
+	tristate "TI TUSB1210 ULPI PHY module"
+	depends on USB_ULPI_BUS
+	select GENERIC_PHY
+	help
+	  Support for TI TUSB1210 USB ULPI PHY.
+
+config TWL4030_USB
+	tristate "TWL4030 USB Transceiver Driver"
+	depends on TWL4030_CORE && REGULATOR_TWL4030 && USB_MUSB_OMAP2PLUS
+	depends on USB_SUPPORT
+	select GENERIC_PHY
+	select USB_PHY
+	help
+	  Enable this to support the USB OTG transceiver on TWL4030
+	  family chips (including the TWL5030 and TPS659x0 devices).
+	  This transceiver supports high and full speed devices plus,
+	  in host mode, low speed.
diff --git a/drivers/phy/ti/Makefile b/drivers/phy/ti/Makefile
new file mode 100644
index 0000000..2d16f77
--- /dev/null
+++ b/drivers/phy/ti/Makefile
@@ -0,0 +1,6 @@ 
+obj-$(CONFIG_PHY_DM816X_USB)		+= phy-dm816x-usb.o
+obj-$(CONFIG_OMAP_CONTROL_PHY)		+= phy-omap-control.o
+obj-$(CONFIG_OMAP_USB2)			+= phy-omap-usb2.o
+obj-$(CONFIG_TI_PIPE3)			+= phy-ti-pipe3.o
+obj-$(CONFIG_PHY_TUSB1210)		+= phy-tusb1210.o
+obj-$(CONFIG_TWL4030_USB)		+= phy-twl4030-usb.o