[PATCH v2 3/3] staging: mt7621-dts: add pci-phy related bindings to board's device tree

Sergio Paracuellos sergio.paracuellos at gmail.com
Thu Jan 3 06:40:38 UTC 2019


On Thu, Jan 3, 2019 at 6:15 AM NeilBrown <neil at brown.name> wrote:
>
> On Mon, Dec 24 2018, Sergio Paracuellos wrote:
>
> > New driver for pci phy has been added, as well as. pci driver has been
> > changed to use kernel's generic PHY API. Add related PCI PHY bindings
> > accordly.
> >
> > Signed-off-by: Sergio Paracuellos <sergio.paracuellos at gmail.com>
> > ---
> >  drivers/staging/mt7621-dts/mt7621.dtsi | 40 ++++++++++++++++++++++++++
> >  1 file changed, 40 insertions(+)
> >
> > diff --git a/drivers/staging/mt7621-dts/mt7621.dtsi b/drivers/staging/mt7621-dts/mt7621.dtsi
> > index 71f069d59ad8..60ddfb7699b0 100644
> > --- a/drivers/staging/mt7621-dts/mt7621.dtsi
> > +++ b/drivers/staging/mt7621-dts/mt7621.dtsi
> > @@ -424,6 +424,10 @@
> >               reset-names = "pcie0", "pcie1", "pcie2";
> >               clocks = <&clkctrl 24 &clkctrl 25 &clkctrl 26>;
> >               clock-names = "pcie0", "pcie1", "pcie2";
> > +             phys = <&pcie0_port PHY_TYPE_PCIE>,
> > +                    <&pcie1_port PHY_TYPE_PCIE>,
> > +                    <&pcie2_port PHY_TYPE_PCIE>;
>
> This doesn't compile - PHY_TYPE_PCIE is unknown.
> If I add
> #include <dt-bindings/phy/phy.h>

It seems that my device tree is not being compiled with the rest of
the kernel tree which is weird, so sorry
for this. I though it was being compiling correctly.

>
> it gets further.
>
>
> > +             phy-names = "pcie-phy0", "pcie-phy1", "pcie-phy2";
> >
> >               pcie at 0,0 {
> >                       reg = <0x0000 0 0 0 0>;
> > @@ -449,4 +453,40 @@
> >                       bus-range = <0x00 0xff>;
> >               };
> >       };
> > +
> > +     pcie0_phy: pcie-phy at 1a149000 {
> > +             compatible = "mediatek,mt7621-pci-phy";
> > +             reg = <0x1a149000 0x0700>;
> > +             #address-cells = <1>;
> > +             #size-cells = <0>;
>
> This causes warning
> drivers/staging/mt7621-dts/gbpc1.dtb: Warning (ranges_format): /pcie-phy at 1a149000:ranges: empty "ranges" property but its #size-cells (0) differs from / (1)
> drivers/staging/mt7621-dts/gbpc1.dtb: Warning (ranges_format): /pcie-phy at 1a14a000:ranges: empty "ranges" property but its #size-cells (0) differs from / (1)
>
> Whether I leave it as <0>, or change it to <1>, booting results in
>
> [    0.600602] mt7621-pci 1e140000.pcie: Parsing DT failed

Uhmmm... The only place this can fail is getting the phy here (from
PATCH 2) but the code seems to be correct:

+ snprintf(name, sizeof(name), "pcie-phy%d", slot);
+ port->phy = devm_phy_get(dev, name);
+ if (IS_ERR(port->phy))
+          return PTR_ERR(port->phy);
+

So it seems this is getting wrong stuff from DT... I'll check the DT
warnings to check if could or not be related.

>
> I haven't tried to dig into why it fails.
>
> Thanks,
> NeilBrown

Thanks for testing this.

Best regards,
    Sergio Paracuellos
>
>
> > +             ranges;
> > +             status = "disabled";
> > +
> > +             pcie0_port: pcie-phy at 0 {
> > +                     reg = <0>;
> > +                     #phy-cells = <1>;
> > +                     status = "okay";
> > +             };
> > +
> > +             pcie1_port: pcie-phy at 1 {
> > +                     reg = <1>;
> > +                     #phy-cells = <1>;
> > +                     status = "okay";
> > +             };
> > +     };
> > +
> > +     pcie1_phy: pcie-phy at 1a14a000 {
> > +             compatible = "mediatek,mt7621-pci-phy";
> > +             reg = <0x1a14a000 0x0700>;
> > +             #address-cells = <1>;
> > +             #size-cells = <0>;
> > +             ranges;
> > +             status = "disabled";
> > +
> > +             pcie2_port: pcie-phy at 0 {
> > +                     reg = <0>;
> > +                     #phy-cells = <1>;
> > +                     status = "okay";
> > +             };
> > +     };
> >  };
> > --
> > 2.19.1


More information about the devel mailing list