From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shawn Guo Subject: Re: [PATCH 4/5] ARM: dts: imx6sx-sabreauto: add fec support Date: Fri, 4 May 2018 16:45:09 +0800 Message-ID: <20180504084508.GD3443@dragon> References: <1524455219-6736-1-git-send-email-Anson.Huang@nxp.com> <1524455219-6736-4-git-send-email-Anson.Huang@nxp.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org To: Anson Huang Cc: Fabio Estevam , Mark Rutland , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Andy Duan , linux-kernel , Rob Herring , dl-linux-imx , Sascha Hauer , Fabio Estevam , "moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE" List-Id: devicetree@vger.kernel.org On Thu, Apr 26, 2018 at 06:57:07AM +0000, Anson Huang 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; > + }; Looking at gpio-regulator bindings doc, I feel that property 'gpios' rather than 'enable-gpio' should be used to specify the MAX7320 IO0 pin. - enable-gpio : GPIO to use to enable/disable the regulator. - gpios : GPIO group used to control voltage. Shawn