* [PATCH 1/9] pci-rcar-gen2: add devicetree support [not found] <1394128887-4197-1-git-send-email-ben.dooks@codethink.co.uk> @ 2014-03-06 18:01 ` Ben Dooks 2014-03-06 18:21 ` Ben Dooks ` (2 more replies) 0 siblings, 3 replies; 12+ 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, Bjorn Helgaas, linux-pci, devicetree Add OF match table for pci-rcar-gen2 driver for device tree support. Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> --- Updates since v1: - moved documentation into patch - moved to using bus-range parsing - ensured usb phy can be linked to usb devices Cc: Bjorn Helgaas <bhelgaas@google.com> Cc: Simon Horman <horms@verge.net.au> Cc: linux-pci@vger.kernel.org Cc: linux-sh@vger.kernel.org Cc: devicetree@vger.kernel.org --- .../bindings/pci/renessas,pci-rcar-gen2.txt | 52 ++++++++++++++++++++++ drivers/pci/host/pci-rcar-gen2.c | 33 +++++++++++++- 2 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 Documentation/devicetree/bindings/pci/renessas,pci-rcar-gen2.txt diff --git a/Documentation/devicetree/bindings/pci/renessas,pci-rcar-gen2.txt b/Documentation/devicetree/bindings/pci/renessas,pci-rcar-gen2.txt new file mode 100644 index 0000000..bd6d291 --- /dev/null +++ b/Documentation/devicetree/bindings/pci/renessas,pci-rcar-gen2.txt @@ -0,0 +1,52 @@ +Renesas AHB to PCI bridge +------------------------- + +This is the bridge used internally to connect the USB controllers to the +AHB. There is one bridge instance per USB port consiting of an internal +OHCI and EHCI controller. + +Required properties: + - compatible: "renesas,pci-r8a7790" for the R8A7790 SoC + - reg : A list of physical regions to access the device. The first is + the operational registers for the OHCI/EHCI controller and the + second region is for the bridge configuration and control registers. + - interrupts : interrupt for the device + - clocks : The reference to the device clock + - bus-range: The PCI bus number ranges. As this is a single bus, the range + should be specified as the same value twice. + + +Example SoC configuration: + + 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>; + }; + +Example board setup: + +&pci1 { + status = "okay"; + pinctrl-0 = <&usb1_pins>; + pinctrl-names = "default"; + + pci@0,1 { + reg = <0x800 0 0 0 0>; + device_type = "pci"; + usb-phy = <&usbphy>; + }; + + pci@0,2 { + reg = <0x1000 0 0 0 0>; + device_type = "pci"; + usb-phy = <&usbphy>; + }; +}; diff --git a/drivers/pci/host/pci-rcar-gen2.c b/drivers/pci/host/pci-rcar-gen2.c index fd3e3ab..1216784 100644 --- a/drivers/pci/host/pci-rcar-gen2.c +++ b/drivers/pci/host/pci-rcar-gen2.c @@ -16,6 +16,7 @@ #include <linux/kernel.h> #include <linux/module.h> #include <linux/pci.h> +#include <linux/of_pci.h> #include <linux/platform_device.h> #include <linux/pm_runtime.h> #include <linux/sizes.h> @@ -98,6 +99,7 @@ struct rcar_pci_priv { struct resource io_res; struct resource mem_res; struct resource *cfg_res; + unsigned busnr; int irq; unsigned long window_size; }; @@ -312,8 +314,8 @@ static int rcar_pci_setup(int nr, struct pci_sys_data *sys) pci_add_resource(&sys->resources, &priv->io_res); pci_add_resource(&sys->resources, &priv->mem_res); - /* Setup bus number based on platform device id */ - sys->busnr = to_platform_device(priv->dev)->id; + /* Setup bus number based on platform device id / of bus-range */ + sys->busnr = priv->busnr; return 1; } @@ -366,6 +368,23 @@ static int rcar_pci_probe(struct platform_device *pdev) priv->window_size = SZ_1G; + if (pdev->dev.of_node) { + struct resource busnr; + int ret; + + ret = of_pci_parse_bus_range(pdev->dev.of_node, &busnr); + if (ret < 0) { + dev_err(&pdev->dev, "failed to parse bus-range\n"); + return ret; + } + + priv->busnr = busnr.start; + if (busnr.end != busnr.start) + dev_warn(&pdev->dev, "only one bus number supported\n"); + } else { + priv->busnr = pdev->id; + } + hw_private[0] = priv; memset(&hw, 0, sizeof(hw)); hw.nr_controllers = ARRAY_SIZE(hw_private); @@ -377,11 +396,21 @@ static int rcar_pci_probe(struct platform_device *pdev) return 0; } +#ifdef CONFIG_OF +static struct of_device_id rcar_pci_of_match[] = { + { .compatible = "renesas,pci-r8a7790", }, + { }, +}; + +MODULE_DEVICE_TABLE(of, rcar_pci_of_match); +#endif + static struct platform_driver rcar_pci_driver = { .driver = { .name = "pci-rcar-gen2", .owner = THIS_MODULE, .suppress_bind_attrs = true, + .of_match_table = of_match_ptr(rcar_pci_of_match), }, .probe = rcar_pci_probe, }; -- 1.9.0 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 1/9] pci-rcar-gen2: add devicetree support 2014-03-06 18:01 ` [PATCH 1/9] pci-rcar-gen2: add devicetree support Ben Dooks @ 2014-03-06 18:21 ` Ben Dooks 2014-03-30 19:10 ` Sergei Shtylyov 2014-03-30 20:28 ` Sergei Shtylyov 2014-04-04 17:09 ` Bjorn Helgaas 2 siblings, 1 reply; 12+ messages in thread From: Ben Dooks @ 2014-03-06 18:21 UTC (permalink / raw) To: Ben Dooks Cc: linux-sh, linux-usb, linux-kernel, sergei.shtylyov, magnus.damn, horms, Bjorn Helgaas, linux-pci, devicetree On 06/03/14 18:01, Ben Dooks wrote: > Add OF match table for pci-rcar-gen2 driver for device tree support. > > diff --git a/drivers/pci/host/pci-rcar-gen2.c b/drivers/pci/host/pci-rcar-gen2.c > index fd3e3ab..1216784 100644 > --- a/drivers/pci/host/pci-rcar-gen2.c > +++ b/drivers/pci/host/pci-rcar-gen2.c > @@ -16,6 +16,7 @@ > #include <linux/kernel.h> > #include <linux/module.h> > #include <linux/pci.h> > +#include <linux/of_pci.h> > #include <linux/platform_device.h> > #include <linux/pm_runtime.h> > #include <linux/sizes.h> Apologies all, there's a missing include of <linux/of.h> which should have been added here -- Ben Dooks http://www.codethink.co.uk/ Senior Engineer Codethink - Providing Genius ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/9] pci-rcar-gen2: add devicetree support 2014-03-06 18:21 ` Ben Dooks @ 2014-03-30 19:10 ` Sergei Shtylyov 2014-03-30 19:21 ` Ben Dooks 0 siblings, 1 reply; 12+ messages in thread From: Sergei Shtylyov @ 2014-03-30 19:10 UTC (permalink / raw) To: Ben Dooks Cc: linux-sh, linux-usb, linux-kernel, magnus.damn, horms, Bjorn Helgaas, linux-pci, devicetree Hello. On 03/06/2014 09:21 PM, Ben Dooks wrote: >> Add OF match table for pci-rcar-gen2 driver for device tree support. [...] >> diff --git a/drivers/pci/host/pci-rcar-gen2.c >> b/drivers/pci/host/pci-rcar-gen2.c >> index fd3e3ab..1216784 100644 >> --- a/drivers/pci/host/pci-rcar-gen2.c >> +++ b/drivers/pci/host/pci-rcar-gen2.c >> @@ -16,6 +16,7 @@ >> #include <linux/kernel.h> >> #include <linux/module.h> >> #include <linux/pci.h> >> +#include <linux/of_pci.h> >> #include <linux/platform_device.h> >> #include <linux/pm_runtime.h> >> #include <linux/sizes.h> > Apologies all, there's a missing include of <linux/of.h> which should > have been added here Have you ever re-posted this patch fixed? If not, it's not going to be merged for 3.15 I guess... WBR, Sergei ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/9] pci-rcar-gen2: add devicetree support 2014-03-30 19:10 ` Sergei Shtylyov @ 2014-03-30 19:21 ` Ben Dooks 2014-03-30 19:26 ` Sergei Shtylyov 0 siblings, 1 reply; 12+ messages in thread From: Ben Dooks @ 2014-03-30 19:21 UTC (permalink / raw) To: Sergei Shtylyov Cc: linux-sh, linux-usb, linux-kernel, magnus.damn, horms, Bjorn Helgaas, linux-pci, devicetree On 30/03/14 20:10, Sergei Shtylyov wrote: > Hello. > > On 03/06/2014 09:21 PM, Ben Dooks wrote: > >>> Add OF match table for pci-rcar-gen2 driver for device tree support. > [...] > >>> diff --git a/drivers/pci/host/pci-rcar-gen2.c >>> b/drivers/pci/host/pci-rcar-gen2.c >>> index fd3e3ab..1216784 100644 >>> --- a/drivers/pci/host/pci-rcar-gen2.c >>> +++ b/drivers/pci/host/pci-rcar-gen2.c >>> @@ -16,6 +16,7 @@ >>> #include <linux/kernel.h> >>> #include <linux/module.h> >>> #include <linux/pci.h> >>> +#include <linux/of_pci.h> >>> #include <linux/platform_device.h> >>> #include <linux/pm_runtime.h> >>> #include <linux/sizes.h> > >> Apologies all, there's a missing include of <linux/of.h> which should >> have been added here > > Have you ever re-posted this patch fixed? If not, it's not going to > be merged for 3.15 I guess... I thought I did. I can have a look a reposting it. -- Ben Dooks http://www.codethink.co.uk/ Senior Engineer Codethink - Providing Genius ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/9] pci-rcar-gen2: add devicetree support 2014-03-30 19:21 ` Ben Dooks @ 2014-03-30 19:26 ` Sergei Shtylyov 2014-03-30 19:40 ` Ben Dooks 0 siblings, 1 reply; 12+ messages in thread From: Sergei Shtylyov @ 2014-03-30 19:26 UTC (permalink / raw) To: Ben Dooks Cc: linux-sh, linux-usb, linux-kernel, magnus.damn, horms, Bjorn Helgaas, linux-pci, devicetree Hello. On 03/30/2014 11:21 PM, Ben Dooks wrote: >>>> Add OF match table for pci-rcar-gen2 driver for device tree support. >> [...] >>>> diff --git a/drivers/pci/host/pci-rcar-gen2.c >>>> b/drivers/pci/host/pci-rcar-gen2.c >>>> index fd3e3ab..1216784 100644 >>>> --- a/drivers/pci/host/pci-rcar-gen2.c >>>> +++ b/drivers/pci/host/pci-rcar-gen2.c >>>> @@ -16,6 +16,7 @@ >>>> #include <linux/kernel.h> >>>> #include <linux/module.h> >>>> #include <linux/pci.h> >>>> +#include <linux/of_pci.h> >>>> #include <linux/platform_device.h> >>>> #include <linux/pm_runtime.h> >>>> #include <linux/sizes.h> >>> Apologies all, there's a missing include of <linux/of.h> which should >>> have been added here >> Have you ever re-posted this patch fixed? If not, it's not going to >> be merged for 3.15 I guess... > I thought I did. I don't see such repost in 'linux-sh'. > I can have a look a reposting it. It doesn't apply to the current renesas.git devel branch. What tree it was against? WBR, Sergei ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/9] pci-rcar-gen2: add devicetree support 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 0 siblings, 2 replies; 12+ messages in thread From: Ben Dooks @ 2014-03-30 19:40 UTC (permalink / raw) To: Sergei Shtylyov Cc: linux-sh, linux-usb, linux-kernel, magnus.damn, horms, Bjorn Helgaas, linux-pci, devicetree On 30/03/14 20:26, Sergei Shtylyov wrote: > Hello. > > On 03/30/2014 11:21 PM, Ben Dooks wrote: > >>>>> Add OF match table for pci-rcar-gen2 driver for device tree support. >>> [...] > >>>>> diff --git a/drivers/pci/host/pci-rcar-gen2.c >>>>> b/drivers/pci/host/pci-rcar-gen2.c >>>>> index fd3e3ab..1216784 100644 >>>>> --- a/drivers/pci/host/pci-rcar-gen2.c >>>>> +++ b/drivers/pci/host/pci-rcar-gen2.c >>>>> @@ -16,6 +16,7 @@ >>>>> #include <linux/kernel.h> >>>>> #include <linux/module.h> >>>>> #include <linux/pci.h> >>>>> +#include <linux/of_pci.h> >>>>> #include <linux/platform_device.h> >>>>> #include <linux/pm_runtime.h> >>>>> #include <linux/sizes.h> > >>>> Apologies all, there's a missing include of <linux/of.h> which should >>>> have been added here > >>> Have you ever re-posted this patch fixed? If not, it's not going to >>> be merged for 3.15 I guess... > >> I thought I did. > > I don't see such repost in 'linux-sh'. > >> I can have a look a reposting it. > > It doesn't apply to the current renesas.git devel branch. What tree > it was against? From my records it was against the -rc3 release of Horms' development tree. I know Simon's tree has been closed for the board bits, but I could re-send the rcar-pci code. -- Ben Dooks http://www.codethink.co.uk/ Senior Engineer Codethink - Providing Genius ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/9] pci-rcar-gen2: add devicetree support 2014-03-30 19:40 ` Ben Dooks @ 2014-03-30 20:10 ` Sergei Shtylyov 2014-03-31 21:23 ` Sergei Shtylyov 1 sibling, 0 replies; 12+ messages in thread From: Sergei Shtylyov @ 2014-03-30 20:10 UTC (permalink / raw) To: Ben Dooks Cc: linux-sh, linux-usb, linux-kernel, magnus.damn, horms, Bjorn Helgaas, linux-pci, devicetree On 03/30/2014 11:40 PM, Ben Dooks wrote: >>>>>> Add OF match table for pci-rcar-gen2 driver for device tree support. >>>> [...] >>>>>> diff --git a/drivers/pci/host/pci-rcar-gen2.c >>>>>> b/drivers/pci/host/pci-rcar-gen2.c >>>>>> index fd3e3ab..1216784 100644 >>>>>> --- a/drivers/pci/host/pci-rcar-gen2.c >>>>>> +++ b/drivers/pci/host/pci-rcar-gen2.c >>>>>> @@ -16,6 +16,7 @@ >>>>>> #include <linux/kernel.h> >>>>>> #include <linux/module.h> >>>>>> #include <linux/pci.h> >>>>>> +#include <linux/of_pci.h> >>>>>> #include <linux/platform_device.h> >>>>>> #include <linux/pm_runtime.h> >>>>>> #include <linux/sizes.h> >>>>> Apologies all, there's a missing include of <linux/of.h> which should >>>>> have been added here >>>> Have you ever re-posted this patch fixed? If not, it's not going to >>>> be merged for 3.15 I guess... >>> I thought I did. >> I don't see such repost in 'linux-sh'. And neither do I see it in other lists. >>> I can have a look a reposting it. >> It doesn't apply to the current renesas.git devel branch. What tree >> it was against? Looks like you had some patches to the PCI driver before this one. I've just found something in Bjorn's pci.git repo's next branch... > From my records it was against the -rc3 release of Horms' development > tree. I know Simon's tree has been closed for the board bits, but I > could re-send the rcar-pci code. The patch does applies cleanly to pci.git's next branch (it has a trailing whitespace though), so no dire need to re-post. I'm not sure if the new version of the patch could still be merged there, as Linus was going to release 3.14 and so open the merge window this weekend. WBR, Sergei ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/9] pci-rcar-gen2: add devicetree support 2014-03-30 19:40 ` Ben Dooks 2014-03-30 20:10 ` Sergei Shtylyov @ 2014-03-31 21:23 ` Sergei Shtylyov 1 sibling, 0 replies; 12+ messages in thread From: Sergei Shtylyov @ 2014-03-31 21:23 UTC (permalink / raw) To: Ben Dooks Cc: linux-sh, linux-usb, linux-kernel, magnus.damn, horms, Bjorn Helgaas, linux-pci, devicetree Hello. On 03/30/2014 11:40 PM, Ben Dooks wrote: >>>>>> Add OF match table for pci-rcar-gen2 driver for device tree support. >>>> [...] >>>>>> diff --git a/drivers/pci/host/pci-rcar-gen2.c >>>>>> b/drivers/pci/host/pci-rcar-gen2.c >>>>>> index fd3e3ab..1216784 100644 >>>>>> --- a/drivers/pci/host/pci-rcar-gen2.c >>>>>> +++ b/drivers/pci/host/pci-rcar-gen2.c >>>>>> @@ -16,6 +16,7 @@ >>>>>> #include <linux/kernel.h> >>>>>> #include <linux/module.h> >>>>>> #include <linux/pci.h> >>>>>> +#include <linux/of_pci.h> >>>>>> #include <linux/platform_device.h> >>>>>> #include <linux/pm_runtime.h> >>>>>> #include <linux/sizes.h> >>>>> Apologies all, there's a missing include of <linux/of.h> which should >>>>> have been added here >>>> Have you ever re-posted this patch fixed? If not, it's not going to >>>> be merged for 3.15 I guess... >>> I thought I did. >> I don't see such repost in 'linux-sh'. >>> I can have a look a reposting it. >> It doesn't apply to the current renesas.git devel branch. What tree >> it was against? > From my records it was against the -rc3 release of Horms' development > tree. I know Simon's tree has been closed for the board bits, but I > could re-send the rcar-pci code. Could you address my comments and re-send? Or if you don't have time, would you mind that I take this patch into my hands? WBR, Sergei ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/9] pci-rcar-gen2: add devicetree support 2014-03-06 18:01 ` [PATCH 1/9] pci-rcar-gen2: add devicetree support Ben Dooks 2014-03-06 18:21 ` Ben Dooks @ 2014-03-30 20:28 ` Sergei Shtylyov 2014-04-04 17:09 ` Bjorn Helgaas 2 siblings, 0 replies; 12+ messages in thread From: Sergei Shtylyov @ 2014-03-30 20:28 UTC (permalink / raw) To: Ben Dooks, linux-sh, linux-usb Cc: linux-kernel, magnus.damn, horms, Bjorn Helgaas, linux-pci, devicetree On 03/06/2014 09:01 PM, Ben Dooks wrote: > Add OF match table for pci-rcar-gen2 driver for device tree support. > Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> > --- > Updates since v1: > - moved documentation into patch > - moved to using bus-range parsing > - ensured usb phy can be linked to usb devices > Cc: Bjorn Helgaas <bhelgaas@google.com> > Cc: Simon Horman <horms@verge.net.au> > Cc: linux-pci@vger.kernel.org > Cc: linux-sh@vger.kernel.org > Cc: devicetree@vger.kernel.org > --- > .../bindings/pci/renessas,pci-rcar-gen2.txt | 52 ++++++++++++++++++++++ > drivers/pci/host/pci-rcar-gen2.c | 33 +++++++++++++- > 2 files changed, 83 insertions(+), 2 deletions(-) > create mode 100644 Documentation/devicetree/bindings/pci/renessas,pci-rcar-gen2.txt > diff --git a/Documentation/devicetree/bindings/pci/renessas,pci-rcar-gen2.txt b/Documentation/devicetree/bindings/pci/renessas,pci-rcar-gen2.txt > new file mode 100644 > index 0000000..bd6d291 > --- /dev/null > +++ b/Documentation/devicetree/bindings/pci/renessas,pci-rcar-gen2.txt > @@ -0,0 +1,52 @@ > +Renesas AHB to PCI bridge > +------------------------- Perhaps it makes sense to describe PCIe bindings in the same file... [...] > +Example SoC configuration: > + > + 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>; > + }; > + > +Example board setup: > + > +&pci1 { > + status = "okay"; > + pinctrl-0 = <&usb1_pins>; > + pinctrl-names = "default"; > + > + pci@0,1 { > + reg = <0x800 0 0 0 0>; > + device_type = "pci"; > + usb-phy = <&usbphy>; > + }; > + > + pci@0,2 { > + reg = <0x1000 0 0 0 0>; > + device_type = "pci"; > + usb-phy = <&usbphy>; > + }; > +}; As I said, these PCI sub-nodes belong to the SoC file. > diff --git a/drivers/pci/host/pci-rcar-gen2.c b/drivers/pci/host/pci-rcar-gen2.c > index fd3e3ab..1216784 100644 > --- a/drivers/pci/host/pci-rcar-gen2.c > +++ b/drivers/pci/host/pci-rcar-gen2.c [...] > @@ -377,11 +396,21 @@ static int rcar_pci_probe(struct platform_device *pdev) > return 0; > } > > +#ifdef CONFIG_OF I don't think it's really worth it. > +static struct of_device_id rcar_pci_of_match[] = { > + { .compatible = "renesas,pci-r8a7790", }, > + { }, > +}; > + > +MODULE_DEVICE_TABLE(of, rcar_pci_of_match); > +#endif > + > static struct platform_driver rcar_pci_driver = { > .driver = { > .name = "pci-rcar-gen2", > .owner = THIS_MODULE, > .suppress_bind_attrs = true, > + .of_match_table = of_match_ptr(rcar_pci_of_match), And so, of_match_ptr() is not needed. WBR, Sergei ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/9] pci-rcar-gen2: add devicetree support 2014-03-06 18:01 ` [PATCH 1/9] pci-rcar-gen2: add devicetree support Ben Dooks 2014-03-06 18:21 ` Ben Dooks 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 2 siblings, 2 replies; 12+ messages in thread From: Bjorn Helgaas @ 2014-04-04 17:09 UTC (permalink / raw) To: Ben Dooks Cc: linux-sh, linux-usb, linux-kernel, sergei.shtylyov, magnus.damn, horms, linux-pci, devicetree On Thu, Mar 06, 2014 at 06:01:19PM +0000, Ben Dooks wrote: > Add OF match table for pci-rcar-gen2 driver for device tree support. > > Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> I'm not sure what the status of this is. I saw comments about a missing #include, but I didn't see a fixed repost. Ben, could you please repost anything you have outstanding for me? > --- > Updates since v1: > - moved documentation into patch > - moved to using bus-range parsing > - ensured usb phy can be linked to usb devices > > Cc: Bjorn Helgaas <bhelgaas@google.com> > Cc: Simon Horman <horms@verge.net.au> > Cc: linux-pci@vger.kernel.org > Cc: linux-sh@vger.kernel.org > Cc: devicetree@vger.kernel.org > --- > .../bindings/pci/renessas,pci-rcar-gen2.txt | 52 ++++++++++++++++++++++ > drivers/pci/host/pci-rcar-gen2.c | 33 +++++++++++++- > 2 files changed, 83 insertions(+), 2 deletions(-) > create mode 100644 Documentation/devicetree/bindings/pci/renessas,pci-rcar-gen2.txt > > diff --git a/Documentation/devicetree/bindings/pci/renessas,pci-rcar-gen2.txt b/Documentation/devicetree/bindings/pci/renessas,pci-rcar-gen2.txt > new file mode 100644 > index 0000000..bd6d291 > --- /dev/null > +++ b/Documentation/devicetree/bindings/pci/renessas,pci-rcar-gen2.txt > @@ -0,0 +1,52 @@ > +Renesas AHB to PCI bridge > +------------------------- > + > +This is the bridge used internally to connect the USB controllers to the > +AHB. There is one bridge instance per USB port consiting of an internal > +OHCI and EHCI controller. > + > +Required properties: > + - compatible: "renesas,pci-r8a7790" for the R8A7790 SoC > + - reg : A list of physical regions to access the device. The first is > + the operational registers for the OHCI/EHCI controller and the > + second region is for the bridge configuration and control registers. > + - interrupts : interrupt for the device > + - clocks : The reference to the device clock > + - bus-range: The PCI bus number ranges. As this is a single bus, the range > + should be specified as the same value twice. > + > + > +Example SoC configuration: > + > + 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>; > + }; > + > +Example board setup: > + > +&pci1 { > + status = "okay"; > + pinctrl-0 = <&usb1_pins>; > + pinctrl-names = "default"; > + > + pci@0,1 { > + reg = <0x800 0 0 0 0>; > + device_type = "pci"; > + usb-phy = <&usbphy>; > + }; > + > + pci@0,2 { > + reg = <0x1000 0 0 0 0>; > + device_type = "pci"; > + usb-phy = <&usbphy>; > + }; > +}; > diff --git a/drivers/pci/host/pci-rcar-gen2.c b/drivers/pci/host/pci-rcar-gen2.c > index fd3e3ab..1216784 100644 > --- a/drivers/pci/host/pci-rcar-gen2.c > +++ b/drivers/pci/host/pci-rcar-gen2.c > @@ -16,6 +16,7 @@ > #include <linux/kernel.h> > #include <linux/module.h> > #include <linux/pci.h> > +#include <linux/of_pci.h> > #include <linux/platform_device.h> > #include <linux/pm_runtime.h> > #include <linux/sizes.h> > @@ -98,6 +99,7 @@ struct rcar_pci_priv { > struct resource io_res; > struct resource mem_res; > struct resource *cfg_res; > + unsigned busnr; > int irq; > unsigned long window_size; > }; > @@ -312,8 +314,8 @@ static int rcar_pci_setup(int nr, struct pci_sys_data *sys) > pci_add_resource(&sys->resources, &priv->io_res); > pci_add_resource(&sys->resources, &priv->mem_res); > > - /* Setup bus number based on platform device id */ > - sys->busnr = to_platform_device(priv->dev)->id; > + /* Setup bus number based on platform device id / of bus-range */ > + sys->busnr = priv->busnr; > return 1; > } > > @@ -366,6 +368,23 @@ static int rcar_pci_probe(struct platform_device *pdev) > > priv->window_size = SZ_1G; > > + if (pdev->dev.of_node) { > + struct resource busnr; > + int ret; > + > + ret = of_pci_parse_bus_range(pdev->dev.of_node, &busnr); > + if (ret < 0) { > + dev_err(&pdev->dev, "failed to parse bus-range\n"); > + return ret; > + } > + > + priv->busnr = busnr.start; > + if (busnr.end != busnr.start) > + dev_warn(&pdev->dev, "only one bus number supported\n"); > + } else { > + priv->busnr = pdev->id; > + } > + > hw_private[0] = priv; > memset(&hw, 0, sizeof(hw)); > hw.nr_controllers = ARRAY_SIZE(hw_private); > @@ -377,11 +396,21 @@ static int rcar_pci_probe(struct platform_device *pdev) > return 0; > } > > +#ifdef CONFIG_OF > +static struct of_device_id rcar_pci_of_match[] = { > + { .compatible = "renesas,pci-r8a7790", }, > + { }, > +}; > + > +MODULE_DEVICE_TABLE(of, rcar_pci_of_match); > +#endif > + > static struct platform_driver rcar_pci_driver = { > .driver = { > .name = "pci-rcar-gen2", > .owner = THIS_MODULE, > .suppress_bind_attrs = true, > + .of_match_table = of_match_ptr(rcar_pci_of_match), > }, > .probe = rcar_pci_probe, > }; > -- > 1.9.0 > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/9] pci-rcar-gen2: add devicetree support 2014-04-04 17:09 ` Bjorn Helgaas @ 2014-04-04 17:44 ` Ben Dooks 2014-04-04 17:46 ` Sergei Shtylyov 1 sibling, 0 replies; 12+ messages in thread From: Ben Dooks @ 2014-04-04 17:44 UTC (permalink / raw) To: Bjorn Helgaas Cc: linux-sh, linux-usb, linux-kernel, sergei.shtylyov, magnus.damn, horms, linux-pci, devicetree, Sergei Shtylyov On 04/04/14 18:09, Bjorn Helgaas wrote: > On Thu, Mar 06, 2014 at 06:01:19PM +0000, Ben Dooks wrote: >> Add OF match table for pci-rcar-gen2 driver for device tree support. >> >> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> > > I'm not sure what the status of this is. I saw comments about a missing > #include, but I didn't see a fixed repost. Ben, could you please repost > anything you have outstanding for me? Sergei was going to re-post this series. I can have a look at re-sending this later today if he hasn't already sorted it out. -- Ben Dooks http://www.codethink.co.uk/ Senior Engineer Codethink - Providing Genius ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/9] pci-rcar-gen2: add devicetree support 2014-04-04 17:09 ` Bjorn Helgaas 2014-04-04 17:44 ` Ben Dooks @ 2014-04-04 17:46 ` Sergei Shtylyov 1 sibling, 0 replies; 12+ messages in thread From: Sergei Shtylyov @ 2014-04-04 17:46 UTC (permalink / raw) To: Bjorn Helgaas, Ben Dooks Cc: linux-sh, linux-usb, linux-kernel, magnus.damn, horms, linux-pci, devicetree Hello. On 04/04/2014 09:09 PM, Bjorn Helgaas wrote: >> Add OF match table for pci-rcar-gen2 driver for device tree support. >> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> > I'm not sure what the status of this is. I saw comments about a missing > #include, but I didn't see a fixed repost. Since there was none. :-) > Ben, could you please repost anything you have outstanding for me? I took updating this patch into my hands with Ben's consent, so I'll repost it soonish. WBR, Sergei ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2014-04-04 17:46 UTC | newest] Thread overview: 12+ 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> 2014-03-06 18:01 ` [PATCH 1/9] pci-rcar-gen2: add devicetree support Ben Dooks 2014-03-06 18:21 ` Ben Dooks 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
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).