[PATCH] net/macb: add support for resetting PHY using GPIO

Gregory CLEMENT gregory.clement at free-electrons.com
Thu Dec 10 07:08:08 PST 2015


Hi Sascha,
 
 On jeu., déc. 10 2015, Sascha Hauer <s.hauer at pengutronix.de> wrote:

> Hi Gregory,
>
> On Wed, Dec 09, 2015 at 06:49:43PM +0100, Gregory CLEMENT wrote:
>> With device tree it is no more possible to reset the PHY at board
>> level. Furthermore, doing in the driver allow to power down the PHY when
>> the network interface is no more used.
>> 
>> The patch introduces a new optional property "phy-reset-gpio" inspired
>> from the one use for the FEC.
>
> I don't think it's a good idea to further extend the usage of this
> binding. The driver should use the phy-handle property and
> of_phy_connect() which gives you a proper device node for the phy. Then
> the phy device node should get the reset gpio. I know it's more work,

So you suggest to pass from this binding:
macb1: ethernet at fc028000 {
	phy-mode = "rmii";
	status = "okay";
	#address-cells = <1>;
	#size-cells = <0>;
	status = "okay";
	phy-reset-gpio = <&pioE 6 GPIO_ACTIVE_HIGH>;

	ethernet-phy at 1 {
		reg = <0x1>;
		interrupt-parent = <&pioB>;
		interrupts = <31 IRQ_TYPE_EDGE_FALLING>;

	};
};

to this binding
macb1: ethernet at fc028000 {
	phy-mode = "rmii";
	status = "okay";
	#address-cells = <1>;
	#size-cells = <0>;
	status = "okay";

	ethernet-phy at 1 {
		reg = <0x1>;
		interrupt-parent = <&pioB>;
		interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
                phy-reset-gpio = <&pioE 6 GPIO_ACTIVE_HIGH>;
	};
};

> but doing it like this gives you additional goodies like proper handling
> of the max-speed property, a fixed-link if necessary and picking the

Currently there is phy_connect_direct so we can already handle the
preperty of the phy.

> correct phy if there are muliple phys on the bus.

but I agree with this one.

Gregory

>
> Sascha
>
> -- 
> Pengutronix e.K.                           |                             |
> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

-- 
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com



More information about the linux-arm-kernel mailing list