devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
  • * [PATCH 3/9] phy-rcar-usb-gen2: add device tree support
           [not found] <1394128887-4197-1-git-send-email-ben.dooks@codethink.co.uk>
           [not found] ` <1394128887-4197-1-git-send-email-ben.dooks-4yDnlxn2s6sWdaTGBSpHTA@public.gmane.org>
    @ 2014-03-06 18:01 ` Ben Dooks
      2014-03-06 19:16   ` Sergei Shtylyov
      2014-03-06 18:01 ` [PATCH 5/9] ARM: shmbobile: r8a7790.dtsi: add pci0/1/2 nodes Ben Dooks
                       ` (2 subsequent siblings)
      4 siblings, 1 reply; 23+ messages in thread
    From: Ben Dooks @ 2014-03-06 18:01 UTC (permalink / raw)
      To: linux-sh, linux-usb
      Cc: linux-kernel, sergei.shtylyov, magnus.damn, horms, Ben Dooks,
    	Felipe Balbi, Magnus Damm, devicetree
    
    Add support for the phy-rcar-gen2-usb driver to be probed from device tree.
    
    Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
    Reviewed-by: Ian Molton <ian.molton@codethink.co.uk>
    ---
    Fixes from v2:
    	- fix missed of_match_ptr()
    	- fix names of channel selection booleans
    	- updated and merged documentation for dt entries
    
    Fixes from v2:
    	- fix missing of_if patch
    
    Fixes from v1:
    	- use of_property_reasd-bool()
    	- remove unused of_id variable
    
    Cc: Felipe Balbi <balbi@ti.com>
    Cc: linux-usb@vger.kernel.org
    Cc: linux-sh@vger.kernel.org
    Cc: Magnus Damm <magnus.damm@gmail.com>
    Cc: Simon Horman <horms@verge.net.au>
    Cc: devicetree@vger.kernel.org
    
    Conflicts:
    	drivers/usb/phy/phy-rcar-gen2-usb.c
    ---
     .../bindings/usb/renesas,rcar-gen2-usb-phy.txt     | 36 ++++++++++++++++++++++
     drivers/pci/host/pci-rcar-gen2.c                   |  1 +
     drivers/usb/phy/phy-rcar-gen2-usb.c                | 34 +++++++++++++++++---
     3 files changed, 66 insertions(+), 5 deletions(-)
     create mode 100644 Documentation/devicetree/bindings/usb/renesas,rcar-gen2-usb-phy.txt
    
    diff --git a/Documentation/devicetree/bindings/usb/renesas,rcar-gen2-usb-phy.txt b/Documentation/devicetree/bindings/usb/renesas,rcar-gen2-usb-phy.txt
    new file mode 100644
    index 0000000..5351a30
    --- /dev/null
    +++ b/Documentation/devicetree/bindings/usb/renesas,rcar-gen2-usb-phy.txt
    @@ -0,0 +1,36 @@
    +Renesas RCar gen2 USB PHY bindings
    +----------------------------------
    +
    +Bindings for the USB PHY block used in some Renesas SoCs.
    +
    +Required properties:
    + - compatible:  "renesas,usb-phy-r8a7790" for the R8A7790 SoC
    +		"renesas,usb-phy-r8a7791" for the R8A7791 SoC
    + - reg : A single region to access device registers
    + - clocks : The reference to the clock to use for this block
    + - clock-names : The name for the clock at index 0 (must be "usbhs")
    +
    +Optional properties:
    +
    + - renesas,usb0-device: boolean, if present USB0 is connected to HS device
    +			otherwise the USB0 is connected to OHCI/EHCI host.
    + - renesas,usb2-xhci: boolean, if present USB2 is connected to XHCI controller
    +		      otherwise the USB2 is connected to OHCI/EHCI host.
    +
    +
    +Example device node for SoC dtsi file:
    +
    +	usbphy: usbphy@e6590100 {
    +		compatible = "renesas,usb-phy-r8a7790";
    +		clocks = <&mstp7_clks R8A7790_CLK_HSUSB>;
    +		clock-names = "usbhs";
    +		reg = < 0x0 0xe6590100 0x0 0x100>;
    +		status = "disabled";
    +	};
    +
    +Example board file:
    +
    +&usbphy {
    +	status = "okay";
    +};
    +
    diff --git a/drivers/pci/host/pci-rcar-gen2.c b/drivers/pci/host/pci-rcar-gen2.c
    index 1216784..2595078 100644
    --- a/drivers/pci/host/pci-rcar-gen2.c
    +++ b/drivers/pci/host/pci-rcar-gen2.c
    @@ -15,6 +15,7 @@
     #include <linux/io.h>
     #include <linux/kernel.h>
     #include <linux/module.h>
    +#include <linux/of.h>
     #include <linux/pci.h>
     #include <linux/of_pci.h>
     #include <linux/platform_device.h>
    diff --git a/drivers/usb/phy/phy-rcar-gen2-usb.c b/drivers/usb/phy/phy-rcar-gen2-usb.c
    index 388d89f..8006c3c 100644
    --- a/drivers/usb/phy/phy-rcar-gen2-usb.c
    +++ b/drivers/usb/phy/phy-rcar-gen2-usb.c
    @@ -15,6 +15,7 @@
     #include <linux/module.h>
     #include <linux/platform_data/usb-rcar-gen2-phy.h>
     #include <linux/platform_device.h>
    +#include <linux/of_device.h>
     #include <linux/spinlock.h>
     #include <linux/usb/otg.h>
     
    @@ -167,6 +168,15 @@ out:
     	spin_unlock_irqrestore(&priv->lock, flags);
     }
     
    +#ifdef CONFIG_OF
    +static struct of_device_id rcar_gen2_usb_phy_ofmatch[] = {
    +	{ .compatible = "renesas,usb-phy-r8a7790", },
    +	{ .compatible = "renesas,usb-phy-r8a7791", },
    +	{ },
    +};
    +MODULE_DEVICE_TABLE(of, rcar_gen2_usb_phy_ofmatch);
    +#endif
    +
     static int rcar_gen2_usb_phy_probe(struct platform_device *pdev)
     {
     	struct device *dev = &pdev->dev;
    @@ -178,7 +188,7 @@ static int rcar_gen2_usb_phy_probe(struct platform_device *pdev)
     	int retval;
     
     	pdata = dev_get_platdata(dev);
    -	if (!pdata) {
    +	if (!pdata && !dev->of_node) {
     		dev_err(dev, "No platform data\n");
     		return -EINVAL;
     	}
    @@ -203,16 +213,29 @@ static int rcar_gen2_usb_phy_probe(struct platform_device *pdev)
     	spin_lock_init(&priv->lock);
     	priv->clk = clk;
     	priv->base = base;
    -	priv->ugctrl2 = pdata->chan0_pci ?
    -			USBHS_UGCTRL2_USB0_PCI : USBHS_UGCTRL2_USB0_HS;
    -	priv->ugctrl2 |= pdata->chan2_pci ?
    -			USBHS_UGCTRL2_USB2_PCI : USBHS_UGCTRL2_USB2_SS;
     	priv->phy.dev = dev;
     	priv->phy.label = dev_name(dev);
     	priv->phy.init = rcar_gen2_usb_phy_init;
     	priv->phy.shutdown = rcar_gen2_usb_phy_shutdown;
     	priv->phy.set_suspend = rcar_gen2_usb_phy_set_suspend;
     
    +	if (dev->of_node) {
    +		if (of_property_read_bool(dev->of_node, "renesas,usb0-device"))
    +			priv->ugctrl2 = USBHS_UGCTRL2_USB0_HS;
    +		else
    +			priv->ugctrl2 = USBHS_UGCTRL2_USB0_PCI;
    +
    +		if (of_property_read_bool(dev->of_node, "renesas,usb2-xhci"))
    +			priv->ugctrl2 |= USBHS_UGCTRL2_USB2_SS;
    +		else
    +			priv->ugctrl2 |= USBHS_UGCTRL2_USB2_PCI;
    +	} else {
    +		priv->ugctrl2 = pdata->chan0_pci ?
    +			USBHS_UGCTRL2_USB0_PCI : USBHS_UGCTRL2_USB0_HS;
    +		priv->ugctrl2 |= pdata->chan2_pci ?
    +			USBHS_UGCTRL2_USB2_PCI : USBHS_UGCTRL2_USB2_SS;
    +	}
    +
     	retval = usb_add_phy_dev(&priv->phy);
     	if (retval < 0) {
     		dev_err(dev, "Failed to add USB phy\n");
    @@ -236,6 +259,7 @@ static int rcar_gen2_usb_phy_remove(struct platform_device *pdev)
     static struct platform_driver rcar_gen2_usb_phy_driver = {
     	.driver = {
     		.name = "usb_phy_rcar_gen2",
    +		.of_match_table = of_match_ptr(rcar_gen2_usb_phy_ofmatch),
     	},
     	.probe = rcar_gen2_usb_phy_probe,
     	.remove = rcar_gen2_usb_phy_remove,
    -- 
    1.9.0
    
    
    ^ permalink raw reply related	[flat|nested] 23+ messages in thread
  • * [PATCH 5/9] ARM: shmbobile: r8a7790.dtsi: add pci0/1/2 nodes
           [not found] <1394128887-4197-1-git-send-email-ben.dooks@codethink.co.uk>
           [not found] ` <1394128887-4197-1-git-send-email-ben.dooks-4yDnlxn2s6sWdaTGBSpHTA@public.gmane.org>
      2014-03-06 18:01 ` [PATCH 3/9] phy-rcar-usb-gen2: add device tree support Ben Dooks
    @ 2014-03-06 18:01 ` Ben Dooks
      2014-03-31 22:18   ` Sergei Shtylyov
      2014-03-06 18:01 ` [PATCH 7/9] ARM: shmobile: r8a7790.dtsi: add usbphy node Ben Dooks
      2014-03-06 18:01 ` [PATCH 8/9] ARM: shmobile: lager.dts: add usbphy reference Ben Dooks
      4 siblings, 1 reply; 23+ messages in thread
    From: Ben Dooks @ 2014-03-06 18:01 UTC (permalink / raw)
      To: linux-sh, linux-usb
      Cc: linux-kernel, sergei.shtylyov, magnus.damn, horms, Ben Dooks,
    	devicetree, horms+renesas
    
    Add nodes for USB PCI bridge devices.
    
    Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
    Reviewed-by: Ian Molton <ian.molton@codethink.co.uk>
    ---
    Cc: devicetree@vger.kernel.org
    Cc: linux-sh@vger.kernel.org
    Cc: horms+renesas@verge.net.au
    
    Conflicts:
    	arch/arm/boot/dts/r8a7790.dtsi
    ---
     arch/arm/boot/dts/r8a7790.dtsi | 39 +++++++++++++++++++++++++++++++++++++++
     1 file changed, 39 insertions(+)
    
    diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi
    index a1e7c39..7325fee 100644
    --- a/arch/arm/boot/dts/r8a7790.dtsi
    +++ b/arch/arm/boot/dts/r8a7790.dtsi
    @@ -763,4 +763,43 @@
     		#size-cells = <0>;
     		status = "disabled";
     	};
    +
    +	pci0: pci@ee090000  {
    +		compatible = "renesas,pci-r8a7790";
    +		clocks = <&mstp7_clks R8A7790_CLK_EHCI>;
    +		reg = <0x0 0xee090000 0x0 0xc00>,
    +		      <0x0 0xee080000 0x0 0x1100>;
    +		interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
    +		status = "disabled";
    +
    +		bus-range = <0 0>;
    +		#address-cells = <3>;
    +		#size-cells = <2>;
    +	};
    +
    +	pci1: pci@ee0b0000  {
    +		compatible = "renesas,pci-r8a7790";
    +		clocks = <&mstp7_clks R8A7790_CLK_EHCI>;
    +		reg = <0x0 0xee0b0000 0x0 0xc00>,
    +		      <0x0 0xee0a0000 0x0 0x1100>;
    +		interrupts = <0 112 IRQ_TYPE_LEVEL_HIGH>;
    +		status = "disabled";
    +
    +		bus-range = <1 1>;
    +		#address-cells = <3>;
    +		#size-cells = <2>;
    +	};
    +
    +	pci2: pci@ee0d0000  {
    +		compatible = "renesas,pci-r8a7790";
    +		clocks = <&mstp7_clks R8A7790_CLK_EHCI>;
    +		reg = <0x0 0xee0d0000 0x0 0xc00>,
    +		      <0x0 0xee0c0000 0x0 0x1100>;
    +		interrupts = <0 113 IRQ_TYPE_LEVEL_HIGH>;
    +		status = "disabled";
    +
    +		bus-range = <2 2>;
    +		#address-cells = <3>;
    +		#size-cells = <2>;
    +	};
     };
    -- 
    1.9.0
    
    
    ^ permalink raw reply related	[flat|nested] 23+ messages in thread
  • * [PATCH 7/9] ARM: shmobile: r8a7790.dtsi: add usbphy node
           [not found] <1394128887-4197-1-git-send-email-ben.dooks@codethink.co.uk>
                       ` (2 preceding siblings ...)
      2014-03-06 18:01 ` [PATCH 5/9] ARM: shmbobile: r8a7790.dtsi: add pci0/1/2 nodes Ben Dooks
    @ 2014-03-06 18:01 ` Ben Dooks
      2014-03-06 18:01 ` [PATCH 8/9] ARM: shmobile: lager.dts: add usbphy reference Ben Dooks
      4 siblings, 0 replies; 23+ messages in thread
    From: Ben Dooks @ 2014-03-06 18:01 UTC (permalink / raw)
      To: linux-sh, linux-usb
      Cc: linux-kernel, sergei.shtylyov, magnus.damn, horms, Ben Dooks,
    	devicetree, Magnus Damm
    
    Add node for USB PHY driver to the base R8A7790 device tree include file.
    It is up to the board file to enable and configure it as necessary.
    
    Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
    Reviewed-by: Ian Molton <ian.molton@codethink.co.uk>
    ---
    Cc: devicetree@vger.kernel.org
    Cc: Magnus Damm <magnus.damm@gmail.com>
    Cc: Simon Horman <horms@verge.net.au>
    Cc: linux-sh@vger.kernel.org
    ---
     arch/arm/boot/dts/r8a7790.dtsi | 8 ++++++++
     1 file changed, 8 insertions(+)
    
    diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi
    index 7325fee..4c03c46 100644
    --- a/arch/arm/boot/dts/r8a7790.dtsi
    +++ b/arch/arm/boot/dts/r8a7790.dtsi
    @@ -802,4 +802,12 @@
     		#address-cells = <3>;
     		#size-cells = <2>;
     	};
    +
    +	usbphy: usbphy@e6590100 {
    +		compatible = "renesas,usb-phy-r8a7790";
    +		clocks = <&mstp7_clks R8A7790_CLK_HSUSB>;
    +		clock-names = "usbhs";
    +		reg = < 0x0 0xe6590100 0x0 0x100>;
    +		status = "disabled";
    +	};
     };
    -- 
    1.9.0
    
    
    ^ permalink raw reply related	[flat|nested] 23+ messages in thread
  • * [PATCH 8/9] ARM: shmobile: lager.dts: add usbphy reference
           [not found] <1394128887-4197-1-git-send-email-ben.dooks@codethink.co.uk>
                       ` (3 preceding siblings ...)
      2014-03-06 18:01 ` [PATCH 7/9] ARM: shmobile: r8a7790.dtsi: add usbphy node Ben Dooks
    @ 2014-03-06 18:01 ` Ben Dooks
      2014-03-30 19:28   ` Sergei Shtylyov
      4 siblings, 1 reply; 23+ messages in thread
    From: Ben Dooks @ 2014-03-06 18:01 UTC (permalink / raw)
      To: linux-sh, linux-usb
      Cc: linux-kernel, sergei.shtylyov, magnus.damn, horms, Ben Dooks,
    	devicetree, Magnus Damm
    
    Enable the usbphy node so that the phy driver is available.
    
    Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
    Reviewed-by: Ian Molton <ian.molton@codethink.co.uk>
    ---
    Cc: linux-sh@vger.kernel.org
    Cc: devicetree@vger.kernel.org
    Cc: Magnus Damm <magnus.damm@gmail.com>
    Cc: Simon Horman <horms@verge.net.au>
    ---
     arch/arm/boot/dts/r8a7790-lager.dts | 4 ++++
     1 file changed, 4 insertions(+)
    
    diff --git a/arch/arm/boot/dts/r8a7790-lager.dts b/arch/arm/boot/dts/r8a7790-lager.dts
    index fd6851f..63d58d6 100644
    --- a/arch/arm/boot/dts/r8a7790-lager.dts
    +++ b/arch/arm/boot/dts/r8a7790-lager.dts
    @@ -246,3 +246,7 @@
     	pinctrl-0 = <&usb2_pins>;
     	pinctrl-names = "default";
     };
    +
    +&usbphy {
    +	status = "okay";
    +};
    -- 
    1.9.0
    
    
    ^ permalink raw reply related	[flat|nested] 23+ messages in thread

  • end of thread, other threads:[~2014-04-04 17:46 UTC | newest]
    
    Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
    -- links below jump to the message on this page --
         [not found] <1394128887-4197-1-git-send-email-ben.dooks@codethink.co.uk>
         [not found] ` <1394128887-4197-1-git-send-email-ben.dooks-4yDnlxn2s6sWdaTGBSpHTA@public.gmane.org>
    2014-03-06 18:01   ` [PATCH 1/9] pci-rcar-gen2: add devicetree support Ben Dooks
    2014-03-06 18:21     ` Ben Dooks
         [not found]       ` <5318BCAE.7000108-4yDnlxn2s6sWdaTGBSpHTA@public.gmane.org>
    2014-03-30 19:10         ` Sergei Shtylyov
    2014-03-30 19:21           ` Ben Dooks
    2014-03-30 19:26             ` Sergei Shtylyov
    2014-03-30 19:40               ` Ben Dooks
    2014-03-30 20:10                 ` Sergei Shtylyov
    2014-03-31 21:23                 ` Sergei Shtylyov
    2014-03-30 20:28     ` Sergei Shtylyov
    2014-04-04 17:09     ` Bjorn Helgaas
    2014-04-04 17:44       ` Ben Dooks
    2014-04-04 17:46       ` Sergei Shtylyov
    2014-03-06 18:01   ` [PATCH 6/9] ARM: shmobile: lager.dts: add pci 0/1/2 Ben Dooks
    2014-03-06 18:01 ` [PATCH 3/9] phy-rcar-usb-gen2: add device tree support Ben Dooks
    2014-03-06 19:16   ` Sergei Shtylyov
    2014-03-06 18:19     ` Ben Dooks
    2014-03-06 20:54       ` Sergei Shtylyov
    2014-03-06 18:01 ` [PATCH 5/9] ARM: shmbobile: r8a7790.dtsi: add pci0/1/2 nodes Ben Dooks
    2014-03-31 22:18   ` Sergei Shtylyov
    2014-03-06 18:01 ` [PATCH 7/9] ARM: shmobile: r8a7790.dtsi: add usbphy node Ben Dooks
    2014-03-06 18:01 ` [PATCH 8/9] ARM: shmobile: lager.dts: add usbphy reference Ben Dooks
    2014-03-30 19:28   ` Sergei Shtylyov
         [not found]     ` <5338704C.2030501-M4DtvfQ/ZS1MRgGoP+s0PdBPR1lH4CV8@public.gmane.org>
    2014-03-30 19:51       ` Ben Dooks
    

    This is a public inbox, see mirroring instructions
    for how to clone and mirror all data and code used for this inbox;
    as well as URLs for NNTP newsgroup(s).