From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Dooks Subject: Re: [PATCH] net: add init-regs for of_phy support Date: Mon, 17 Feb 2014 13:53:26 +0000 Message-ID: <53021456.4020404@codethink.co.uk> References: <1392642484-19938-1-git-send-email-ben.dooks@codethink.co.uk> <1392642484-19938-2-git-send-email-ben.dooks@codethink.co.uk> <20140217134448.GA19308@e106331-lin.cambridge.arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20140217134448.GA19308@e106331-lin.cambridge.arm.com> Sender: linux-sh-owner@vger.kernel.org To: Mark Rutland Cc: "netdev@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-sh@vger.kernel.org" List-Id: devicetree@vger.kernel.org On 17/02/14 13:44, Mark Rutland wrote: > On Mon, Feb 17, 2014 at 01:08:04PM +0000, Ben Dooks wrote: >> Add new init-regs field for of_phy nodes and make sure these >> get applied when the phy is configured. >> >> This allows any phy node in an fdt to initialise registers >> that may not be set as standard by the driver at initialisation >> time, such as LED controls. > > Why not have a driver for the particular PHY? If it's not standard we > don't need to pretend it is. If it has some extensions then the standard > compatible string can be a fallback entry in the compatible list. > > I think allocating a compatible string and handling it in the kernel is > better than having arbitrary register poke values in the dt. >> + prop = of_find_property(of_node, "init-regs", &len); >> + if (prop) { >> + if (len % (sizeof(__be32) * 3)) { >> + dev_err(dev, "init-regs not multiple of 3 entries\n"); >> + return -EINVAL; >> + } >> + >> + ptr = of_prop_next_u32(prop, ptr, ®); >> + while (ptr != NULL) { >> + ptr = of_prop_next_u32(prop, ptr, ®); oops, bad rebase fixup, this should have been deleted. -- Ben Dooks http://www.codethink.co.uk/ Senior Engineer Codethink - Providing Genius