RE: [PATCH 4/5] ARM: dts: imx6sx-sabreauto: add fec support
From: Anson Huang
Date: Thu Apr 26 2018 - 02:57:52 EST
Hi, Fabio
Anson Huang
Best Regards!
> -----Original Message-----
> From: Fabio Estevam [mailto:festevam@xxxxxxxxx]
> Sent: Wednesday, April 25, 2018 9:47 PM
> To: Anson Huang <anson.huang@xxxxxxx>
> Cc: Shawn Guo <shawnguo@xxxxxxxxxx>; Sascha Hauer
> <kernel@xxxxxxxxxxxxxx>; Fabio Estevam <fabio.estevam@xxxxxxx>; Rob
> Herring <robh+dt@xxxxxxxxxx>; Mark Rutland <mark.rutland@xxxxxxx>;
> dl-linux-imx <linux-imx@xxxxxxx>; moderated list:ARM/FREESCALE IMX / MXC
> ARM ARCHITECTURE <linux-arm-kernel@xxxxxxxxxxxxxxxxxxx>; open list:OPEN
> FIRMWARE AND FLATTENED DEVICE TREE BINDINGS
> <devicetree@xxxxxxxxxxxxxxx>; linux-kernel <linux-kernel@xxxxxxxxxxxxxxx>
> Subject: Re: [PATCH 4/5] ARM: dts: imx6sx-sabreauto: add fec support
>
> Hi Anson,
>
> On Wed, Apr 25, 2018 at 2:36 AM, Anson Huang <anson.huang@xxxxxxx>
> wrote:
>
> > Sorry, I made a mistake here, the MAX7320 IO0 is for adjusting FEC1's
> > voltage,
>
> In this case you need to pass the 'phy-supply' property inside the fec node and
> add a regulator that is controlled via MAX7320 IO0 pin.
The 'phy-supply' is for enabling/disabling phy regulator, but here the MAX7322 IO0 is NOT for
enabling/disabling PHY regulator, it is for IO voltage switch between 1.5V and 1.8V, our ENET
IO can work with both 1.5V and 1.8V, so any config is OK for ENET function.
The 1.5V/1.8V selection is a one time setting thing, that means we only need to
config it once during boot up, most of i.MX platforms does NOT provide such voltage
switch function for ENET IO, on this 6SX sabre auto board, it is more like a backup or
validation purpose. With default settings, ENET's function is NOT impacted at all.
I think we can add a gpio regulator for it and let the regulator initialization set the GPIO
Level for fec, such below, with " enable-active-high " present, GPIO will be at LOW and voltage
is 1.5V, without this property, GPIO will be HIGH and voltage will be 1.8V.
+ reg_fec: fec_io_supply {
+ compatible = "regulator-gpio";
+ regulator-name = "1.8V_1.5V_FEC";
+ regulator-min-microvolt = <1500000>;
+ regulator-max-microvolt = <1800000>;
+ states = <1500000 0x0 1800000 0x1>;
+ enable-gpio = <&max7322 0 GPIO_ACTIVE_HIGH>;
+ vin-supply = <&sw2_reg>;
+ enable-active-high;
+ };
+
Anson.