Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp1508229imm; Wed, 1 Aug 2018 17:55:46 -0700 (PDT) X-Google-Smtp-Source: AAOMgpcJ6WJFUSzLZcDImljEKsa7c+x1tOTJtszrjlsrliya/0iS9NNA+1V/ALFM0EZ2jH7l85T8 X-Received: by 2002:a65:5141:: with SMTP id g1-v6mr555706pgq.418.1533171346331; Wed, 01 Aug 2018 17:55:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533171346; cv=none; d=google.com; s=arc-20160816; b=Eaq5mZlB32gxWsoJo0LrhJKf3pM+uWWruW8jbeUTnlFjb14YTwl9wrC3Iez4QFAUtQ mJVE4sni0preUb+UYPtQVAPLPl1TWRYJYYJxm7Fadwhq7v4CEfJVKJmJU0IdI3Iiim26 GiHxh8GK+Bgc4X+oPzBbP9N7ESuy/kmY3Q1pObm+3PP46/Wz5uupsqOG35hq0xwavub1 eZqD8H1bBsUEwbO6ZxXDYE+Z75SD91Pz+A11vZXmvWGhv2SSVxHkZasoJFobSlPqwPaH b0Ws9oe07GJgpnOmHpEyTfEUmEP+haqpLNUfGQUaEevycOLzz13hoyKAyStNYqlmVJzy VgyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=Nf12dmutfgCfp/0jaiDAW47A5xaVfjlLX5su1g70bm4=; b=vwt5f5F7GU6tAqodmFP7HQcINvEp5F1Tr5N/4ot8MlYeQnAu9kgHJeEVz3R28I9tuU bufLQY01SHrvFXraEFUnFH5hL18+LwbnIX8otdMAuMxwyJSoxwu64FbN6MxIswuu3iNi xAUv6srY22AXWBH7hIWvftPCYCIJP3KfJ3fwNEHc8QsOomkPYbgtG4qjw3IXu6MNZPmo jOemlZBA8ATwJAhN4YmHptKpsfjxAi0VmfuTMBTEFC5qC8TZ/dMqspBEK64WhOUNE1Ex SV0ZwM48OSdbibxAax3ZsKY0DhFmn8eH8cMn2OcH7qH4mFsivkvmmdL9qt+LY/ri1XPP DXxA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=XYU820zg; 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s10-v6si382890pgm.501.2018.08.01.17.55.32; Wed, 01 Aug 2018 17:55:46 -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=@broadcom.com header.s=google header.b=XYU820zg; 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732536AbeHBCmY (ORCPT + 99 others); Wed, 1 Aug 2018 22:42:24 -0400 Received: from mail-qk0-f196.google.com ([209.85.220.196]:39267 "EHLO mail-qk0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732507AbeHBCmV (ORCPT ); Wed, 1 Aug 2018 22:42:21 -0400 Received: by mail-qk0-f196.google.com with SMTP id b5-v6so437597qkg.6 for ; Wed, 01 Aug 2018 17:53:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Nf12dmutfgCfp/0jaiDAW47A5xaVfjlLX5su1g70bm4=; b=XYU820zg1XHKnPlftT/nf8r+l7YBOPuDJ5zMrvEnp7kJ0PnUxT62LLTSaatdW4Sj24 EXGQI+goI6WOaq/ssTyesoItgHbRUm4XXikraaj41Rj58sHf8sUjiAP94M/4mnRs3SVS JydIKAlzn9Qd9wYTybwlU795Tl7msV4dFy4WM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Nf12dmutfgCfp/0jaiDAW47A5xaVfjlLX5su1g70bm4=; b=SIyF4/5KxAkXg+eDwH3gqoNiFvJqWy7yCQwWuaAJbdqGrIo7blNgXsA0bppC0WIkuC uFLJYUjK5ZniMrw10mcG73xkAyJiZFlUNYz0QwRoHfo1Iq3wddVaJ/ZCY+I9lxUd1RAJ MpnCNUSjz9OH778TzhzA9obzbP/mmlO7eqniLBBd3osh8U2ewlbv1pQzstfOZiUsNJlv v27YBGXG+k8BbngqaDOeponhrkJzuA0AxhSdW2B+fhuk+tloVFuYq4Y1b38x3KxMA98L XQjfJIXf9Tf33oPCiSsG9Mubu1nawJ7cjS0oVeYnJQ7FjNFcDiUvDIyTbVoGwT6N62VS PjYQ== X-Gm-Message-State: AOUpUlH8DiwByIaPoGLm18cybRlbQEkXrjtu2LVqWhDFGS+Eo44RR3of tbAdcIi3QHO23vyJetS5vgtaBg== X-Received: by 2002:a37:de1a:: with SMTP id h26-v6mr595757qkj.442.1533171231073; Wed, 01 Aug 2018 17:53:51 -0700 (PDT) Received: from lbrmn-lnxub86.ric.broadcom.com ([192.19.228.250]) by smtp.gmail.com with ESMTPSA id e81-v6sm325116qka.3.2018.08.01.17.53.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 01 Aug 2018 17:53:50 -0700 (PDT) From: Arun Parameswaran To: "David S. Miller" , Florian Fainelli , Andrew Lunn , Rob Herring , Mark Rutland , Ray Jui , Scott Branden , Catalin Marinas , Will Deacon Cc: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com, Arun Parameswaran Subject: [PATCH v4 4/8] net: phy: Disable external master access in bcm mdio mux driver Date: Wed, 1 Aug 2018 17:53:49 -0700 Message-Id: <1533171233-14557-5-git-send-email-arun.parameswaran@broadcom.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1533171233-14557-1-git-send-email-arun.parameswaran@broadcom.com> References: <1533171233-14557-1-git-send-email-arun.parameswaran@broadcom.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Configure the scan control register in the Broadcom iProc mdio mux driver to disable access to external master. In some SoC's, the scan control register defaults to an incorrect value. Signed-off-by: Arun Parameswaran Reviewed-by: Andrew Lunn Reviewed-by: Florian Fainelli --- drivers/net/phy/mdio-mux-bcm-iproc.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/net/phy/mdio-mux-bcm-iproc.c b/drivers/net/phy/mdio-mux-bcm-iproc.c index 48bb74a..c36ce4b 100644 --- a/drivers/net/phy/mdio-mux-bcm-iproc.c +++ b/drivers/net/phy/mdio-mux-bcm-iproc.c @@ -22,6 +22,9 @@ #include #include +#define MDIO_SCAN_CTRL_OFFSET 0x008 +#define MDIO_SCAN_CTRL_OVRIDE_EXT_MSTR 28 + #define MDIO_PARAM_OFFSET 0x23c #define MDIO_PARAM_MIIM_CYCLE 29 #define MDIO_PARAM_INTERNAL_SEL 25 @@ -53,6 +56,16 @@ struct iproc_mdiomux_desc { struct mii_bus *mii_bus; }; +static void mdio_mux_iproc_config(struct iproc_mdiomux_desc *md) +{ + u32 val; + + /* Disable external mdio master access */ + val = readl(md->base + MDIO_SCAN_CTRL_OFFSET); + val |= BIT(MDIO_SCAN_CTRL_OVRIDE_EXT_MSTR); + writel(val, md->base + MDIO_SCAN_CTRL_OFFSET); +} + static int iproc_mdio_wait_for_idle(void __iomem *base, bool result) { unsigned int timeout = 1000; /* loop for 1s */ @@ -216,6 +229,8 @@ static int mdio_mux_iproc_probe(struct platform_device *pdev) goto out_register; } + mdio_mux_iproc_config(md); + dev_info(md->dev, "iProc mdiomux registered\n"); return 0; -- 1.9.1