Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp247392imm; Wed, 29 Aug 2018 20:06:07 -0700 (PDT) X-Google-Smtp-Source: ANB0VdYzpEWSClS+2ma/dKZMvVvcDyqnEe8yz2yfx3EWlcfZXgwI1EK6HvZ7UeBC2zPh/m7OEGbw X-Received: by 2002:a63:fa49:: with SMTP id g9-v6mr8078836pgk.18.1535598367361; Wed, 29 Aug 2018 20:06:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1535598367; cv=none; d=google.com; s=arc-20160816; b=T3v0hVMgTQi7+NGDvHlfbd4vEvatKpfl30S0jPwWCxaZXjrh9rCt6GjleLGJoXpG/0 Ok0/CV1W2IuK4rg1Y/IVxbOvpxl+YxSJI5XpzdmiFA1KwLxqwpVNK4bv7ABg+Yk9FATl oDVZ69pJjxXbb9UUAV3rFli7jZHZ30qEo76jW1dM34E7UHdJeUUxrARNeidOyYG0UBtW uzgvJWmXmqcHpapoaJrnVyvVLacwGdpeh6rq/rRglH5QyWw7UaMuTgZhX07Fk5kj7jSJ +O9YBX9zWn4iO2v8rYWSkW4XU3V6xLvWvkWf3L9nG4wEhB+TN6bnQrgqv0reGvNBzopI zOZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:arc-authentication-results; bh=WcXLsm+jiLyHyisc+QVEb1HKqN6ECWPEaaC/NY3Kd+4=; b=j0EirhYQsGiVwwC0tZHGd9J1gFLTEIc20ZwNS3NrWFwDD8PJg0XPf6Fk1Z1ZtUGJDU 3C9wGJ7r9rUSVR666o5b4TnrmvUzH44IrJ7DOsX5LvcCQMLvKGX3w/PUtu2+87bpinNh RqS1QdF9FNP5eVu+V7R8pixtjV3X1mPEUK5Zn2nSlcDasMZwBQ5Qf/02Muk07+l9sjyX skCh4Ma1YgzE1H4GJe2KF4ukJYH7Wpy/WFokH6CAtVOldgKNEGKTXG4Z3WouHtQqTpuj N6XXfddzZq19sTN4VYkpSYTPFl13UvlPJDN3+VdzwRCPAgOOwG9GGVTO9AflEMGz8Sk2 D9rA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@lunn.ch header.s=20171124 header.b=gzcvMtK4; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l1-v6si5577855pgo.377.2018.08.29.20.05.52; Wed, 29 Aug 2018 20:06:07 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@lunn.ch header.s=20171124 header.b=gzcvMtK4; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727468AbeH3HEX (ORCPT + 99 others); Thu, 30 Aug 2018 03:04:23 -0400 Received: from vps0.lunn.ch ([185.16.172.187]:47108 "EHLO vps0.lunn.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725844AbeH3HEX (ORCPT ); Thu, 30 Aug 2018 03:04:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lunn.ch; s=20171124; h=In-Reply-To:Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date; bh=WcXLsm+jiLyHyisc+QVEb1HKqN6ECWPEaaC/NY3Kd+4=; b=gzcvMtK4uTjm8lnG6Q9vBy2BbYXFPWU1xmsGij3eSANvPsYhcG1I0FY2Me2eZYi2C30GT4Ge+UBrzHk7MfiiQGUdmoE0K1St2+G7oPgRd0OXbnXuxWOkKuV7nAL5HMtOhXeLB/i5bXuzpil1qywWx3ZYJ4OM0X5fB2Vpqo7Vkws=; Received: from andrew by vps0.lunn.ch with local (Exim 4.84_2) (envelope-from ) id 1fvDFs-0004nL-SK; Thu, 30 Aug 2018 05:04:20 +0200 Date: Thu, 30 Aug 2018 05:04:20 +0200 From: Andrew Lunn To: Moritz Fischer Cc: davem@davemloft.net, keescook@chromium.org, f.fainelli@gmail.com, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, alex.williams@ni.com Subject: Re: [PATCH net-next 1/3] net: nixge: Add support for fixed-link subnodes Message-ID: <20180830030420.GB16896@lunn.ch> References: <20180830004046.9417-1-mdf@kernel.org> <20180830004046.9417-2-mdf@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180830004046.9417-2-mdf@kernel.org> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Aug 29, 2018 at 05:40:44PM -0700, Moritz Fischer wrote: > Add support for fixed-link cases where no MDIO is > actually required to run the device. > In that case no MDIO bus is instantiated since the > actual registers are not available in hardware. Hi Moritz There are a few different use cases here: The hardware is missing MDIO - You need fixed-link. The hardware has MDIO, but you don't have a PHY connected on it, and use fixed link. The hardware has MDIO, and it is used e.g. for an Ethernet switch, or a PHY for another Ethernet interface. Plus you need fixed link. The binding typically looks like: &fec1 { phy-mode = "rmii"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_fec1>; status = "okay"; fixed-link { speed = <100>; full-duplex; }; mdio1: mdio { #address-cells = <1>; #size-cells = <0>; status = "okay"; switch0: switch0@0 { compatible = "marvell,mv88e6085"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_switch>; reg = <0>; eeprom-length = <512>; interrupt-parent = <&gpio3>; It is important you have the mdio subnode, with PHYs and switches as children. The driver currently gets this wrong, it uses pdev->dev.of_node. So the first patch should be to extend this behaviour. Look for a child node called mdio. If it exists, call nixge_mdio_setup() passing that child. Otherwise continue using pdev->dev.of_node, so you don't break backwards compatibility. Then a patch adding support for fixed-link. If the mdio child node exists, you still need to register the MDIO bus. If there is no child node, but there is a fixed-link, skip registering the mdio bus with pdev->dev.of_node. Andrew