Hello.

On 5/12/2016 10:15 AM, Uwe Kleine-König wrote:

I have a machine here where the reset pin of the phy is connected to a
GPIO.

There are different possibilities available today to handle this
situation, here are the ones I'm aware of:

 - Use a gpio-hog to set the reset gpio to non-active
   This might result in dependency problems (and that's what I am
   currently faced with) because there is no connection in the device
   tree between the hog and the phy.

 - [Documentation/devicetree/bindings/net/fsl-fec.txt]
   The fec node supports properties

        phy-reset-gpios = <&gpio2 14 0>;
        phy-reset-duration = <200> /* milliseconds */;

   Something similar exists in TI's vendor kernel
   
(http://git.ti.com/ti-linux-kernel/ti-linux-kernel/commit/17d192b999ee904ced223c16cef76111a51c461b)
   with different (and IMHO bader) naming.
   This is the wrong place to specify the gpios; they shouldn't be in the
   mac's node, but in a phy node instead.

So what I actually want is to put the gpio specification in the right
place and let it look as follows:

        mymdiobus {
                [...]
                myfirstphy: ethernet-phy@0 {
                        compatible = "ethernet-phy-ieee802.3-c22";
                        reg = <0>;

                        reset-gpios = <&gpio2 14 0>;
                        reset-duration-ms = <200>;
                };

                mysecondphy: ethernet-phy@2 {
                        compatible = "ethernet-phy-ieee802.3-c22";
                        reg = <2>;

                        reset-gpios = <&gpio3 10 0>;
                        reset-duration-ms = <200>;
                };
        };

And with this we could defer probe of &myfirstphy if &gpio2 isn't
available yet.

Does this sound sensible? Does something like that already exist which I
missed? Any further ideas/comments?

http://patchwork.ozlabs.org/patch/616495/

   I'll post a new version RSN.

Best regards
Uwe

MBR, Sergei

Reply via email to