From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Lunn Subject: Re: DSA support for Marvell 88e6065 switch Date: Sun, 18 Nov 2018 19:20:53 +0100 Message-ID: <20181118182053.GE7446@lunn.ch> References: <20181115195111.GA9946@amd> <20181115202618.GF32274@lunn.ch> <20181118180712.GA16507@amd> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: netdev@vger.kernel.org, f.fainelli@gmail.com, buytenh@marvell.com, buytenh@wantstofly.org, nico@marvell.com To: Pavel Machek Return-path: Received: from vps0.lunn.ch ([185.16.172.187]:39617 "EHLO vps0.lunn.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726523AbeKSEly (ORCPT ); Sun, 18 Nov 2018 23:41:54 -0500 Content-Disposition: inline In-Reply-To: <20181118180712.GA16507@amd> Sender: netdev-owner@vger.kernel.org List-ID: On Sun, Nov 18, 2018 at 07:07:12PM +0100, Pavel Machek wrote: > On Thu 2018-11-15 21:26:18, Andrew Lunn wrote: > > On Thu, Nov 15, 2018 at 08:51:11PM +0100, Pavel Machek wrote: > > > Hi! > > > > > > I'm trying to create support for Marvell 88e6065 switch... and it > > > seems like drivers/net/dsa supports everything, but this model. > > > > > > Did someone work with this hardware before? Any idea if it would be > > > more suitable to support by existing 88e6060 code, or if 88e6xxx code > > > should serve as a base? > > > > Hi Pavel > > > > The 88e6xxx should be extended to support this. I think you will find > > a lot of the building blocks are already in the driver. Compare the > > various implementations of the functions in the mv88e6xxx_ops to what > > the datasheet says for the registers, and pick those that match. > > Ok, so I played a bit. > > It looks like e6065 has different register layout from those supported > by 6xxx, and is quite similar to e6060. Hi Pavel However, if you look in the mv88e6xxx, there are quite a few functions called mv88e6065_foo. Marvell keeps changing the register layout. When writing code, we try to name the functions based on which family of devices introduced those registers. But we don't have the whole history, so we probably have some names wrong. > I understand how 88e6xxx code is supposed to work... but I don't > understand how e6060 code is supposed to be probed. It does not seem > to have device tree support. It seems to be older code, but is way > simpler, and seems to be targetted at similar hardware. The e6060 code is really old, pretty much abandoned. To make it usable, you are going to have to make a lot of changes. Turn it into an mdio driver, add device tree, make it use the new dsa2.c API, etc. I still think you should be looking at the mv88e6xxx driver, but maybe taking bits of code from the 6060 driver and adding it to the mv88e6xxx driver as needed. Andrew