Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp2059970pxb; Mon, 8 Mar 2021 13:02:29 -0800 (PST) X-Google-Smtp-Source: ABdhPJzZBa91mBJeodWoaH2AAFllKFd57JO7vE3zaJC/EuZw10Z7EAfOnICCWBB0A1K2rISJ5ETq X-Received: by 2002:a17:906:2dda:: with SMTP id h26mr16766523eji.163.1615237348908; Mon, 08 Mar 2021 13:02:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1615237348; cv=none; d=google.com; s=arc-20160816; b=SKGO9MkUms0qEluD//dMhOu8heisjyevGXzJ2+oJKY9AvNa32SNFhnTwK3QmhJ8kwO rIgqTstNRXpfIZiLqFjPrN96eQrqk+Ndbb0pOXjn9C6OqO6yHv1epQ8XNYwKSGXx87LG cZJuCDuV8RFPenl0xlrK4w4wsf64WL8iAMx6QT2rhctnrxdsvNonBSI3lxbxkADPzg6w bC3Qb5TmxrtkCRcp2+x0xMuxDFoMeUWPHfFoF4CYRDH25evLF55XTUWjkTS1eNjiVfd7 epePZGJQi8VIgZkWAWpym0omniSismmr+SiG8S7DTsX98BtPr19/xhhxbPIFVrxNVZre B5cA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=VtS0roCen7DGnhtXCbIYZ0mL668HATU1PcKFj3e92O4=; b=cST9P+2eyJTOIWF6GMTCTo/sUYalh7d6oV9JSNjrs+8qxR/5LsNNV0Hc+1IX8UkUI5 fNdKUmEzjv+UuJuWQxbBkHliXXNjq76iBddya41HNwr0CRF17oXVT6w4bqyfcYcZzawn QhFE/5IWjs6zTVoBk+2M8TU/FS3GG4aeUnRo+XSJ7mvgrbJcaXyTRAmANyw06+RCMV41 XYPPwO0+MbwXLITh9dOUL9RYPGrP49hczsghJaFYOj6p6QGiZrI4/8zmMT9CDmL7cFk1 rL2MmNfLB1aqwc9BNFkO5L3tw7/GZV2zIQY4+kA4ykECgszdIAvcO6uUYcifg4TFNFio dBMw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t23si7216652ejj.290.2021.03.08.13.02.04; Mon, 08 Mar 2021 13:02:28 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230063AbhCHVA4 (ORCPT + 99 others); Mon, 8 Mar 2021 16:00:56 -0500 Received: from vps0.lunn.ch ([185.16.172.187]:46444 "EHLO vps0.lunn.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229446AbhCHVAm (ORCPT ); Mon, 8 Mar 2021 16:00:42 -0500 Received: from andrew by vps0.lunn.ch with local (Exim 4.94) (envelope-from ) id 1lJMzV-009sh5-SP; Mon, 08 Mar 2021 22:00:37 +0100 Date: Mon, 8 Mar 2021 22:00:37 +0100 From: Andrew Lunn To: =?iso-8859-1?Q?=C1lvaro_Fern=E1ndez?= Rojas Cc: jonas.gorski@gmail.com, "David S. Miller" , Jakub Kicinski , Rob Herring , Heiner Kallweit , Russell King , netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/2] net: mdio: Add BCM6368 MDIO mux bus controller Message-ID: References: <20210308184102.3921-1-noltari@gmail.com> <20210308184102.3921-3-noltari@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210308184102.3921-3-noltari@gmail.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > +static int bcm6368_mdiomux_probe(struct platform_device *pdev) > +{ > + struct bcm6368_mdiomux_desc *md; > + struct mii_bus *bus; > + struct resource *res; > + int rc; > + > + md = devm_kzalloc(&pdev->dev, sizeof(*md), GFP_KERNEL); > + if (!md) > + return -ENOMEM; > + md->dev = &pdev->dev; > + > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > + if (!res) > + return -EINVAL; > + > + /* Just ioremap, as this MDIO block is usually integrated into an > + * Ethernet MAC controller register range > + */ > + md->base = devm_ioremap(&pdev->dev, res->start, resource_size(res)); > + if (!md->base) { > + dev_err(&pdev->dev, "failed to ioremap register\n"); > + return -ENOMEM; > + } > + > + md->mii_bus = devm_mdiobus_alloc(&pdev->dev); > + if (!md->mii_bus) { > + dev_err(&pdev->dev, "mdiomux bus alloc failed\n"); > + return ENOMEM; > + } > + > + bus = md->mii_bus; > + bus->priv = md; > + bus->name = "BCM6368 MDIO mux bus"; > + snprintf(bus->id, MII_BUS_ID_SIZE, "%s-%d", pdev->name, pdev->id); > + bus->parent = &pdev->dev; > + bus->read = bcm6368_mdiomux_read; > + bus->write = bcm6368_mdiomux_write; > + bus->phy_mask = 0x3f; > + bus->dev.of_node = pdev->dev.of_node; > + > + rc = mdiobus_register(bus); > + if (rc) { > + dev_err(&pdev->dev, "mdiomux registration failed\n"); > + return rc; > + } So this is different to all the other mux drivers. Normally there is an MDIO driver. And there is a mux driver. Two separate drivers. The mux driver uses a phandle to reference the MDIO driver. Here we have both in one driver. Does this MDIO bus device exist as a standalone device? Without the mux? If silicon does exist like that, having two separate drivers would be better. Andrew